JP6128833B2 - Processing equipment - Google Patents

Processing equipment Download PDF

Info

Publication number
JP6128833B2
JP6128833B2 JP2012281173A JP2012281173A JP6128833B2 JP 6128833 B2 JP6128833 B2 JP 6128833B2 JP 2012281173 A JP2012281173 A JP 2012281173A JP 2012281173 A JP2012281173 A JP 2012281173A JP 6128833 B2 JP6128833 B2 JP 6128833B2
Authority
JP
Japan
Prior art keywords
cpu
clock
frequency
bus
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2012281173A
Other languages
Japanese (ja)
Other versions
JP2014126915A (en
Inventor
椿原 一志
一志 椿原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2012281173A priority Critical patent/JP6128833B2/en
Publication of JP2014126915A publication Critical patent/JP2014126915A/en
Application granted granted Critical
Publication of JP6128833B2 publication Critical patent/JP6128833B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Power Sources (AREA)

Description

本発明は処理装置に関し、特に複数のCPUを用いて処理を行う装置に関する。   The present invention relates to a processing apparatus, and more particularly to an apparatus that performs processing using a plurality of CPUs.

従来、デジタルカメラや携帯電話、スマートフォンなどの情報処理装置においては、CPUを用いて動画や静止画、或いは音声などの情報データを処理している(例えば、特許文献1参照)。また、携帯機器においては、CPUに供給する動作クロックの周波数を制御することにより消費電力を削減することが行われている。   Conventionally, in an information processing apparatus such as a digital camera, a mobile phone, and a smartphone, information data such as a moving image, a still image, or sound is processed using a CPU (see, for example, Patent Document 1). In portable devices, power consumption is reduced by controlling the frequency of an operation clock supplied to a CPU.

例えば、CPUで処理すべき作業が無くなった場合には、CPU自体を省電力なスリープモードに入れるとともに、CPUの動作クロックやCPUバスクロックの周波数を下げるようにする。   For example, when there is no work to be processed by the CPU, the CPU itself is put into a power saving sleep mode and the frequency of the CPU operation clock and CPU bus clock is lowered.

特開2010−98696JP 2010-98696 A

近年では、処理されるデータの量が増加しているため、複数のCPUを用いて処理を行うようになった。一つのCPUバスに複数のCPUが接続された場合、各CPUが自分自身の都合で、CPUバスクロックの周波数を下げるようなことができない。   In recent years, since the amount of data to be processed has increased, processing has been performed using a plurality of CPUs. When a plurality of CPUs are connected to one CPU bus, each CPU cannot reduce the frequency of the CPU bus clock for its own convenience.

そのため、消費電力を削減することができないという問題があった。   Therefore, there has been a problem that power consumption cannot be reduced.

本発明はこのような課題を解決し、複数のCPUが共通のバスに接続されている場合であっても、少ない回路規模で、消費電力を削減することができるようにすることを目的とする。   An object of the present invention is to solve such problems and to reduce power consumption with a small circuit scale even when a plurality of CPUs are connected to a common bus. .

本発明においては、バスクロックに応じてデータの転送を行うバスと、それぞれ前記バスに接続され、CPUクロックに応じて動作すると共に、それぞれが要求する、前記CPUクロックの周波数に関する第1の情報と前記バスクロックの周波数に関する第2の情報とを出力する複数のCPUと、前記複数のCPUそれぞれから出力された前記第1の情報と前記第2の情報とを記憶するレジスタを有し、前記複数のCPUから出力され、前記レジスタに記憶された前記第1の情報と前記第2の情報とに基づいて、前記複数のCPUに供給する前記CPUクロックそれぞれの周波数と、前記バスクロックの周波数とを決定し、前記複数のCPUにそれぞれ前記CPUクロックを供給すると共に、前記バスに前記バスクロックを供給するクロック管理手段とを備え、前記クロック管理手段は、前記レジスタに記憶された前記第2の情報に基づいて、前記複数のCPUがそれぞれ要求したバスクロックの周波数のうち最も高い周波数を前記バスクロックの周波数として決定し、前記決定したバスクロックの周波数と前記レジスタに記憶された前記第1の情報とに基づいて、前記CPUが要求したCPUクロックの周波数が前記決定したバスクロックの周波数以上である場合は、前記CPUが要求した周波数を当該CPUに供給する前記CPUクロックの周波数として決定し、前記CPUが要求したCPUクロックの周波数が前記決定したバスクロックの周波数よりも低い場合は、前記決定したバスクロックの周波数を当該CPUに供給する前記CPUクロックの周波数として決定する。   In the present invention, a bus that transfers data according to a bus clock, and is connected to the bus, operates according to the CPU clock, and requests the first information about the frequency of the CPU clock that each requests A plurality of CPUs for outputting second information related to the frequency of the bus clock; and a register for storing the first information and the second information output from each of the plurality of CPUs. The frequency of each of the CPU clocks supplied to the plurality of CPUs and the frequency of the bus clock based on the first information and the second information output from the CPU and stored in the register A clock that determines and supplies the CPU clock to each of the plurality of CPUs and supplies the bus clock to the bus And the clock management means determines the highest frequency among the bus clock frequencies requested by the plurality of CPUs based on the second information stored in the register. And the CPU clock frequency requested by the CPU is equal to or higher than the determined bus clock frequency based on the determined bus clock frequency and the first information stored in the register. , The frequency requested by the CPU is determined as the frequency of the CPU clock supplied to the CPU, and if the frequency of the CPU clock requested by the CPU is lower than the determined bus clock frequency, the determined bus clock Is determined as the frequency of the CPU clock supplied to the CPU.

本発明によれば、複数のCPUが共通のバスに接続されている場合であっても、少ない回路規模で、消費電力を削減することができるようになる。   According to the present invention, even when a plurality of CPUs are connected to a common bus, power consumption can be reduced with a small circuit scale.

信号処理回路の構成を示すブロック図である。It is a block diagram which shows the structure of a signal processing circuit. レジスタの構成及び要求されたクロック周波数と出力されるクロック周波数の関係を示す図である。It is a figure which shows the structure of a register | resistor, and the relationship between the requested | required clock frequency and the output clock frequency. アイドルタスクと割り込み処理を示すフローチャートである。It is a flowchart which shows an idle task and interruption processing. CPUバスの使用判定処理を示すフローチャートである。It is a flowchart which shows the use determination process of CPU bus | bath. CPUにより要求されるクロックの周波数の例を示すタイムチャートである。It is a time chart which shows the example of the frequency of the clock requested | required by CPU. CPUにより要求されるクロックの周波数と、出力されるクロックの周波数の例を示すタイムチャートである。It is a time chart which shows the example of the frequency of the clock requested | required by CPU, and the frequency of the output clock. 第2の実施形態の信号処理回路の構成を示すブロック図である。It is a block diagram which shows the structure of the signal processing circuit of 2nd Embodiment. 要求されたクロック周波数と出力されるクロック周波数の関係を示す図である。It is a figure which shows the relationship between the requested | required clock frequency and the output clock frequency. 実施形態におけるカメラの構成を示すブロック図である。It is a block diagram which shows the structure of the camera in embodiment.

以下に、添付図面を参照して本発明を実施するための形態について詳細に説明する。実施例では、本発明の処理装置をカメラに適用した場合を例として記載する。以下に説明する実施の形態は、本発明の実現するための一例であり、本発明が適用される装置の構成や各種条件によって適宜修正又は変更されるべきものであり、本発明は以下の実施の形態に限定されるものではない。図9は、本発明の実施形態によるカメラ900の構成を示す図である。   EMBODIMENT OF THE INVENTION Below, the form for implementing this invention with reference to an accompanying drawing is demonstrated in detail. In the embodiment, a case where the processing apparatus of the present invention is applied to a camera will be described as an example. The embodiment described below is an example for realizing the present invention, and should be appropriately modified or changed according to the configuration of the apparatus to which the present invention is applied and various conditions. The present invention is described below. It is not limited to the form. FIG. 9 is a diagram showing a configuration of a camera 900 according to the embodiment of the present invention.

図9において、撮像部901は信号処理回路903からの指示により被写体を撮影し、動画データや静止画データを出力する。マイク902は、被写体周囲の音声を取得し、音声データを出力する。信号処理回路903は、後述のように複数のCPUを備え、動画や静止画データ、或いは、音声データを処理する。操作部904は、電源スイッチや記録開始、停止の指示スイッチ等の、ユーザが操作可能な各種のスイッチやボタンを備える。また、操作部904は、タッチパネル等により構成されることも可能である。メモリ905は、信号処理回路903の処理のために使用されるメモリであり、動画データや静止画データ、音声データ、或いは、他のデータを記憶する。メモリ903は揮発性メモリであり、例えば、DRAMで構成される。また、メモリ905は、信号処理回路903とは別の集積回路(IC)として構成される。メモリカード906、907はそれぞれフラッシュメモリを内蔵している。メモリカード906、907はそれぞれ、不図示のカードスロット等の装着、排出機構により、カメラ900に対して容易に装着、排出が可能である。また、メモリカード906、907の一方を、無線LAN機能を持つメモリカードとしてもよい。ディスプレイ908は、撮影された動画や静止画、或いは、再生された画像、及び、操作メニューなどの各種の情報を表示する。ディスプレイ908は、液晶パネルや有機ELパネルを備える。スピーカ909は、再生された音声を出力する。   In FIG. 9, an imaging unit 901 captures a subject in response to an instruction from the signal processing circuit 903 and outputs moving image data or still image data. The microphone 902 acquires sound around the subject and outputs sound data. The signal processing circuit 903 includes a plurality of CPUs as described later, and processes moving images, still image data, or audio data. The operation unit 904 includes various switches and buttons that can be operated by the user, such as a power switch and a recording start / stop instruction switch. In addition, the operation unit 904 can be configured by a touch panel or the like. A memory 905 is a memory used for processing of the signal processing circuit 903, and stores moving image data, still image data, audio data, or other data. The memory 903 is a volatile memory, and is composed of, for example, a DRAM. The memory 905 is configured as an integrated circuit (IC) different from the signal processing circuit 903. The memory cards 906 and 907 each have a built-in flash memory. Each of the memory cards 906 and 907 can be easily attached to and removed from the camera 900 by an attachment / discharge mechanism such as a card slot (not shown). One of the memory cards 906 and 907 may be a memory card having a wireless LAN function. The display 908 displays various types of information such as captured moving images and still images, reproduced images, and operation menus. The display 908 includes a liquid crystal panel and an organic EL panel. The speaker 909 outputs the reproduced sound.

次に、信号処理回路903について説明する。図1は、信号処理回路903の構成を示す図である。図1に示す信号処理回路903の各処理ブロックは、一つの集積回路として構成される。   Next, the signal processing circuit 903 will be described. FIG. 1 is a diagram illustrating a configuration of the signal processing circuit 903. Each processing block of the signal processing circuit 903 shown in FIG. 1 is configured as one integrated circuit.

図1において、第1のCPU(Central Processing Unit)101と第2のCPU102はそれぞれ、カメラ900の全体の動作を制御する。CPU101とCPU102はそれぞれ、マイクロプロセッサやレジスタなどを備え、不図示の不揮発メモリに記憶されたソフトウエア(ファームウエア)に従って動作する。また、CPU101とCPU102は互いに処理を分担して実行する。例えば、CPU101はカードコントローラ105を制御して、メモリカード906に対する各種のデータの書き込み、読み出しを行う。また、CPU102はカードコントローラ106を制御して、メモリカード907に対する各種のデータの書き込み、読み出しを行う。このようにCPU101とCPU102が互いに異なる処理を分担し、或いは同時に処理を行うことで、カメラ900における処理パフォーマンスを上げている。CPU101とCPU102はそれぞれ、クロック管理部103より供給される動作クロック(以下CPUクロック)に従って動作する。 In FIG. 1, a first CPU (Central Processing Unit) 101 and a second CPU 102 each control the overall operation of the camera 900. Each of the CPU 101 and the CPU 102 includes a microprocessor, a register, and the like, and operates according to software (firmware) stored in a non-illustrated nonvolatile memory. In addition, the CPU 101 and the CPU 102 execute processing in a shared manner. For example, the CPU 101 controls the card controller 105 to write and read various data with respect to the memory card 906. Further, the CPU 102 controls the card controller 106 to write and read various data with respect to the memory card 907. As described above, the CPU 101 and the CPU 102 share different processes or perform the processes at the same time, thereby improving the processing performance of the camera 900. Each of the CPU 101 and the CPU 102 operates according to an operation clock (hereinafter referred to as a CPU clock) supplied from the clock management unit 103.

クロック管理部103は、CPU101とCPU102にCPUクロックを供給し、更に、CPUバスのクロック(以下CPUバスクロック)も供給する。クロック管理部103についての詳細は後述する。   The clock management unit 103 supplies a CPU clock to the CPU 101 and the CPU 102, and further supplies a CPU bus clock (hereinafter referred to as a CPU bus clock). Details of the clock management unit 103 will be described later.

メモリ104は、第1のCPU101と第2のCPU102の間のデータ通信や、またカードコントローラ106、107に対するデータの書き込み、読み出しのためのバッファメモリとして利用される。   The memory 104 is used as a buffer memory for data communication between the first CPU 101 and the second CPU 102 and for writing and reading data to and from the card controllers 106 and 107.

カードコントローラ105、106はそれぞれ、メモリカードに対しデータの読み書きを行う。カードコントローラ105、106は、CPU101、102により制御され、CPUバス113を介して入力したデータを各メモリカード906、907に記録する。また、カードコントローラ105、106は、メモリカード906、907から読み出したデータを、CPUバス113を介してメモリ104に記憶する。また、カードコントローラ105、106はそれぞれ、メモリカードに対する書き込み、或いは読み出しコマンドによりデータの書き込みや読み出しが完了すると、完了を通知する割り込み信号を各CPUに出力する。 Each of the card controllers 105 and 106 reads / writes data from / to the memory card. The card controllers 105 and 106 are controlled by the CPUs 101 and 102, and record data input via the CPU bus 113 in the memory cards 906 and 907. The card controllers 105 and 106 store the data read from the memory cards 906 and 907 in the memory 104 via the CPU bus 113. Further, each of the card controllers 105 and 106 outputs an interrupt signal for notifying the completion to each CPU when the writing or reading of data by the writing to the memory card or the reading command is completed.

画像信号処理部107は、撮像部901から出力された動画データや静止画データに対しホワイトバランスやガンマ補正等の所定の信号処理を行い、メモリバス115を介してメモリ905に記憶する。音声信号処理部108は、記録時においては、マイク902から入力される音声データに対し、ノイズ除去等の所定の信号処理を行い、メモリバス115を介してメモリ905に記憶する。また、再生時においては、メモリ905に記憶されている音声データを読み出し、スピーカ909から出力する機能を有する。   The image signal processing unit 107 performs predetermined signal processing such as white balance and gamma correction on the moving image data and still image data output from the imaging unit 901 and stores them in the memory 905 via the memory bus 115. At the time of recording, the audio signal processing unit 108 performs predetermined signal processing such as noise removal on the audio data input from the microphone 902 and stores it in the memory 905 via the memory bus 115. Further, at the time of reproduction, the audio data stored in the memory 905 is read and output from the speaker 909.

コーデック109は、記録時においては、画像信号処理部107によりメモリ905に記憶された動画データや静止画像データを読みだして、MPEGやH.264、或いはJPEGなどの所定の符号化方式に従って符号化してメモリ905に記憶する。また、コーデック109は、音声信号処理部108によりメモリ905に記憶された音声データを読み出してAAC等の符号化方式に従って符号化してメモリ905に記憶する。また、コーデック109は、再生時には、再生された動画データや静止画データ、或いは音声データを復号してメモリ905に記憶する。   At the time of recording, the codec 109 reads out moving image data and still image data stored in the memory 905 by the image signal processing unit 107, and performs MPEG or H.264 recording. H.264 or JPEG is encoded according to a predetermined encoding method and stored in the memory 905. Further, the codec 109 reads out the audio data stored in the memory 905 by the audio signal processing unit 108, encodes it according to an encoding method such as AAC, and stores the encoded data in the memory 905. Further, the codec 109 decodes the reproduced moving image data, still image data, or audio data and stores them in the memory 905 during reproduction.

表示部110は、メモリ905に記憶されている動画や音声データを表示するための処理を行い、ディスプレイ908に出力する。また、表示部110は、メニュー画面等の各種の情報をディスプレイ908に出力する。また、ディスプレイ908がタッチパネルの機能を持つ場合、ユーザによるタッチ操作を検出し、各CPUにユーザ操作を伝達する機能を有する。なお、本実施形態では、第1のCPU101がユーザの操作を受け付け、必要に応じて第2のCPU102を制御するものとする。   The display unit 110 performs processing for displaying the moving image and audio data stored in the memory 905 and outputs the processing to the display 908. The display unit 110 also outputs various information such as a menu screen to the display 908. Further, when the display 908 has a touch panel function, it has a function of detecting a touch operation by a user and transmitting the user operation to each CPU. In the present embodiment, it is assumed that the first CPU 101 receives a user operation and controls the second CPU 102 as necessary.

通信部111、通信部112はそれぞれ、信号処理回路103の外部の構成と通信を行う機能を有する。具体的には、撮像部901におけるレンズ駆動部と通信し、各CPUからの指示でレンズのフォーカス制御やズーム制御を行ったり、オートフォーカスセンサから随時データを通信により読み出し、読み出したデータを、フォーカス状態を判断するために利用したりする。   Each of the communication unit 111 and the communication unit 112 has a function of communicating with an external configuration of the signal processing circuit 103. Specifically, it communicates with the lens driving unit in the imaging unit 901, performs lens focus control and zoom control according to instructions from each CPU, or reads data from the autofocus sensor as needed, and reads the read data to the focus It is used to judge the state.

CPUバス113、114は、各CPUが各ブロックを制御するためのコマンドやデータなどを送受信するための伝送路として利用される。また、CPUバス113、114は、カードコントローラ105、106とメモリ104との間のデータ転送、あるいは、メモリバス115を介してのメモリ905へのデータ転送のための伝送路として利用される。CPUバス113、114は、クロック管理部103から供給されるCPUバスクロックに応じて動作し、各回路ブロックの間でデータの転送を行う。本実施形態では、CPUバスを二つに分けることにより、複数の回路ブロックが共通のCPUバスに接続された場合の回路規模の増加を抑えている。   The CPU buses 113 and 114 are used as transmission paths for transmitting and receiving commands and data for each CPU to control each block. The CPU buses 113 and 114 are used as transmission paths for data transfer between the card controllers 105 and 106 and the memory 104 or data transfer to the memory 905 via the memory bus 115. The CPU buses 113 and 114 operate according to the CPU bus clock supplied from the clock management unit 103, and transfer data between the circuit blocks. In this embodiment, by dividing the CPU bus into two, an increase in circuit scale when a plurality of circuit blocks are connected to a common CPU bus is suppressed.

メモリバス115は、各ブロックとメモリ905との間でデータやコマンドを送受信するための伝送路である。メモリバス115と、CPU101、CPU102、カードコントローラ105、カードコントローラ106とは、CPUバス113を介して接続されており、これらの回路ブロックからメモリ905へのアクセスが可能である。   The memory bus 115 is a transmission path for transmitting and receiving data and commands between each block and the memory 905. The memory bus 115 and the CPU 101, CPU 102, card controller 105, and card controller 106 are connected via the CPU bus 113, and the memory 905 can be accessed from these circuit blocks.

このように、CPU101、102、メモリ104、カードコントローラ105、106、画像信号処理部107、音声信号処理部108、コーデック109、表示部110の各処理回路が、CPUバス113に接続される。また、通信部111、112がCPUバス114に接続される。   In this way, the processing circuits of the CPUs 101 and 102, the memory 104, the card controllers 105 and 106, the image signal processing unit 107, the audio signal processing unit 108, the codec 109, and the display unit 110 are connected to the CPU bus 113. The communication units 111 and 112 are connected to the CPU bus 114.

次に、クロック管理部103について説明する。クロック制御部103は発振器を備え、発振器により生成されたクロックの周波数を分周することにより、異なる周波数のCPUクロックとCPUバスクロックを生成する。また、クロック管理部103は、各CPUより出力された、CPUクロックとCPUバスクロックの周波数に関する情報を記憶するためのレジスタを備えている。   Next, the clock management unit 103 will be described. The clock control unit 103 includes an oscillator, and generates a CPU clock and a CPU bus clock having different frequencies by dividing the frequency of the clock generated by the oscillator. In addition, the clock management unit 103 includes a register for storing information regarding the frequencies of the CPU clock and the CPU bus clock output from each CPU.

図2(a)はこれらのクロック周波数の情報を記憶するレジスタを示している。第1のCPUクロックレジスタ201は、CPU101から要求されたCPUクロックの周波数の情報を記憶するレジスタである。第2のCPUクロックレジスタ202も同様に、CPU102から要求されたCPUクロックの周波数の情報を記憶するレジスタである。第1のCPUバスクロックレジスタ203は、CPU101から要求されたCPUバス113、114のCPUバスクロックの周波数の情報を記憶するレジスタである。第2のCPUバスクロックレジスタ204も同様に、CPU102から要求されたCPUバス113、114のCPUバスクロックの周波数の情報を記憶するレジスタである。   FIG. 2A shows a register for storing information on these clock frequencies. The first CPU clock register 201 is a register that stores information on the frequency of the CPU clock requested from the CPU 101. Similarly, the second CPU clock register 202 is a register for storing information on the frequency of the CPU clock requested from the CPU 102. The first CPU bus clock register 203 is a register that stores information on the frequency of the CPU bus clock of the CPU buses 113 and 114 requested from the CPU 101. Similarly, the second CPU bus clock register 204 is a register for storing information on the CPU bus clock frequency of the CPU buses 113 and 114 requested from the CPU 102.

クロック管理部103は、各レジスタに記憶された周波数の情報に基づいて、CPU101、CPU102に対して出力するCPUクロックの周波数を決める。また、クロック管理部103は、各レジスタに記憶された周波数の情報に基づいて、CPUバス113、114に出力するCPUバスクロックの周波数を決める。CPU101から要求されたCPUバスクロックの周波数と、CPU102から要求されたCPUバスクロックの周波数とが異なる可能性があり、その場合にCPUバスクロックをどのように設定するのかを決めておく必要がある。また、一般に、CPUクロックの周波数とCPUバスクロックの周波数とを全く独立に制御することはできず、所定の依存関係を保つ必要がある。本実施形態では、以下のような制限、依存関係に従い、CPUクロックとCPUバスクロックの周波数を決定する。
(1)CPU101から要求されたCPUバスクロックの周波数とCPU102から要求されたCPUバスクロックの周波数とが異なる場合には、高い方の値を使用する。これは、処理パフォーマンス優先するという思想によるものである。
(2)CPUクロックの周波数≧CPUバスクロックの周波数とする。
(3)クロックの周波数は、200メガヘルツ(MHz)、100MHz、50MHzの3種類から選択される。
The clock management unit 103 determines the frequency of the CPU clock to be output to the CPU 101 and the CPU 102 based on the frequency information stored in each register. The clock management unit 103 determines the frequency of the CPU bus clock to be output to the CPU buses 113 and 114 based on the frequency information stored in each register. There is a possibility that the frequency of the CPU bus clock requested from the CPU 101 is different from the frequency of the CPU bus clock requested from the CPU 102. In this case, it is necessary to determine how to set the CPU bus clock. . In general, the frequency of the CPU clock and the frequency of the CPU bus clock cannot be controlled completely independently, and a predetermined dependency must be maintained. In the present embodiment, the frequencies of the CPU clock and the CPU bus clock are determined according to the following restrictions and dependency relationships.
(1) When the frequency of the CPU bus clock requested from the CPU 101 is different from the frequency of the CPU bus clock requested from the CPU 102, the higher value is used. This is due to the idea of giving priority to processing performance.
(2) CPU clock frequency ≧ CPU bus clock frequency.
(3) The clock frequency is selected from three types of 200 megahertz (MHz), 100 MHz, and 50 MHz.

本実施形態では、各CPUが設定したCPUバスクロックの周波数が、ともに低い方の周波数である50Hzの場合、クロック管理部103は、CPUバスクロック周波数を50MHzと決定する。また、少なくとも一方のCPUが設定したCPUバスクロック周波数が、高い方の周波数である100MHzである場合、クロック管理部103は、CPUバスクロック周波数を100MHzと決定する。言い換えると、クロック管理部103は、複数のCPUにより設定されたCPUバスクロックの周波数のうち、最も高い周波数を、CPUバスクロックの周波数として決定する。   In the present embodiment, when the frequency of the CPU bus clock set by each CPU is 50 Hz, which is the lower frequency, the clock management unit 103 determines the CPU bus clock frequency as 50 MHz. If the CPU bus clock frequency set by at least one CPU is 100 MHz, which is the higher frequency, the clock management unit 103 determines the CPU bus clock frequency as 100 MHz. In other words, the clock management unit 103 determines the highest frequency among the CPU bus clock frequencies set by a plurality of CPUs as the CPU bus clock frequency.

更に、クロック管理部103は、各CPUが設定したCPUクロック周波数が、このように決定したCPUバスクロック周波数以上である場合は、各CPUに供給するCPUクロック周波数を、要求された周波数に決定する。一方、CPUが設定したCPUクロックの周波数が、決定されたCPUバスクロックの周波数よりも低い場合は、CPUクロックの周波数が、CPUバスクロックの周波数よりも低くならないように、ここではCPUバスクロックの周波数と同じ周波数に設定する。   Furthermore, when the CPU clock frequency set by each CPU is equal to or higher than the CPU bus clock frequency determined in this way, the clock management unit 103 determines the CPU clock frequency supplied to each CPU as the requested frequency. . On the other hand, in the case where the CPU clock frequency set by the CPU is lower than the determined CPU bus clock frequency, the CPU bus clock frequency is set so that the CPU clock frequency is not lower than the CPU bus clock frequency. Set to the same frequency as the frequency.

各レジスタに記憶された値と、その時に出力されるCPUクロック、CPUバスクロックの周波数を図2(b)の表205に示す。   Table 205 in FIG. 2B shows values stored in the respective registers and the CPU clock and CPU bus clock frequencies output at that time.

例えば、各CPUから要求され、レジスタに記憶された周波数の値が206に示す状態である場合、CPUバスクロックレジスタの設定値のどちらかが200MHzであるため、(1)により、CPUバスクロックの周波数は200MHzとなる。また、(2)(3)により、CPU102とCPU102のいずれのCPUクロックの周波数も200MHzとなる。これは、第2のCPUクロックレジスタ202の設定値が100MHzであっても、クロック管理部103により、CPU102のCPUクロック周波数が200MHzに設定されることを示す。   For example, when the frequency value requested from each CPU and stored in the register is in the state indicated by 206, either of the setting values of the CPU bus clock register is 200 MHz. The frequency is 200 MHz. In addition, due to (2) and (3), the CPU clock frequency of both the CPU 102 and the CPU 102 is 200 MHz. This indicates that the CPU clock frequency of the CPU 102 is set to 200 MHz by the clock management unit 103 even if the set value of the second CPU clock register 202 is 100 MHz.

また、207のように、CPU102によりCPUクロック周波数として50Hzが要求されている場合でも、クロック管理部103は、CPUバスクロック周波数として100Hzを設定したため、CPU102には100MHzのCPUクロックが供給される。   Further, even when the CPU 102 requests 50 Hz as the CPU clock frequency as in 207, the clock management unit 103 sets 100 Hz as the CPU bus clock frequency, so that the CPU 102 is supplied with a 100 MHz CPU clock.

このように、各CPUから要求されたクロック周波数に応じて、各CPUに供給する動作クロックの周波数とバスクロックの周波数とを制御する。また、各クロックの周波数は、前述のような規則に従って決めることができるので、クロック管理部103を比較的単純な回路構成とすることができる。   In this way, the frequency of the operation clock supplied to each CPU and the frequency of the bus clock are controlled in accordance with the clock frequency requested from each CPU. Further, since the frequency of each clock can be determined according to the rules as described above, the clock management unit 103 can have a relatively simple circuit configuration.

次に各CPUで動作するソフトウェアについて説明する。各CPUでは、リアルタイムOSが動作しており、その上で動作するソフトウェアは、割り込み処理と、複数のタスク処理で構成される(リアルタイムOSの詳細については割愛する)。各CPUにおいては、各回路ブロックからの割り込み要求に応じて処理が開始され、リアルタイム性の求められる処理を行った後に、処理を終了する。割り込み処理内では、タスクを起床させるような処理が行われる場合もあり、そのような処理が行われた場合には、割り込み処理が終了後、起床したタスク処理が開始される。   Next, software that runs on each CPU will be described. Each CPU operates a real-time OS, and software that operates on the CPU includes interrupt processing and a plurality of task processing (details of the real-time OS are omitted). In each CPU, processing is started in response to an interrupt request from each circuit block, and after processing that requires real-time performance is performed, the processing ends. In the interrupt process, a process for waking up a task may be performed. When such a process is performed, the process for waking up is started after the interrupt process is completed.

タスクには優先度が設けられており、起床中のタスクが複数存在した場合には、最も優先度が高いタスクが動作する。動作したタスクは、必要な処理を行い、他のタスクを起床させたりして、処理が完了すると、スリープ状態に移行する。最も優先度の低いタスクはアイドルタスクと呼ばれ、アイドルタスクが動作可能な状態になった場合、つまりCPUが処理するものがなくなった際には、CPUを割り込み待ち状態に移行させる。この時CPU内部では、割り込み要求を受け付けるための回路のみが機能している状態となり、その他の内部ブロックに対しては、クロックの供給が遮断される。そのため、CPUの消費電力が抑えられる。   Tasks have priorities, and when there are multiple wake-up tasks, the task with the highest priority operates. The operated task performs necessary processing, wakes up another task, and transitions to a sleep state when the processing is completed. The task with the lowest priority is called an idle task, and when the idle task becomes operable, that is, when there is nothing to be processed by the CPU, the CPU is shifted to an interrupt waiting state. At this time, only the circuit for accepting the interrupt request is functioning in the CPU, and the supply of the clock is cut off to the other internal blocks. Therefore, power consumption of the CPU can be suppressed.

さらに各CPUは、CPUバスに接続された他の処理回路からの割り込み待ち状態への移行に応じて、CPUクロックやCPUバスクロックの周波数を設定し、設定した周波数を示す情報をクロック管理部103に出力する。また、各CPUは、割り込み待ち状態からタスク実行状態への移行に応じて、要求するCPUクロックやCPUバスクロックの周波数を設定し、設定した周波数を示す情報をクロック管理部103に出力する。クロック管理部103は、各CPUから出力されたCPUクロックやCPUバスクロックの周波数の値を、図2(a)のレジスタに記憶する。つまり、割り込み処理開始時と、アイドルタスク動作時に、クロック管理部103により、CPUクロックとCPUバスクロックの周波数が設定される。これらの処理について図3に示す。   Further, each CPU sets the frequency of the CPU clock and the CPU bus clock in accordance with the transition to the interrupt waiting state from another processing circuit connected to the CPU bus, and information indicating the set frequency is set in the clock management unit 103. Output to. Each CPU sets the frequency of the requested CPU clock or CPU bus clock in accordance with the transition from the interrupt wait state to the task execution state, and outputs information indicating the set frequency to the clock management unit 103. The clock management unit 103 stores the CPU clock and CPU bus clock frequency values output from each CPU in the register of FIG. That is, the frequency of the CPU clock and the CPU bus clock is set by the clock management unit 103 at the start of interrupt processing and during idle task operation. These processes are shown in FIG.

各CPUは、CPUクロックの周波数として複数の所定の周波数の何れかを設定する。そして、各CPUは、設定したCPUクロックの周波数に関する情報(第1の情報)と、CPUバスクロックの周波数に関する情報(第2の情報)を、クロック管理部103に出力する。即ち、各CPUは、CPUCLK_MAX、CPUCLK_MIN、のいずれかの周波数にCPUクロックを設定する。ここで、CPUCLK_MAXはCPUが高速に処理を実行するためのCPUクロック周波数で、CPUCLK_MINは低消費電力状態におけるCPUクロック周波数である。CPUCLK_MAXの周波数よりも、CPUCLK_MINの方が低い。   Each CPU sets one of a plurality of predetermined frequencies as the CPU clock frequency. Each CPU then outputs information about the set CPU clock frequency (first information) and information about the CPU bus clock frequency (second information) to the clock management unit 103. That is, each CPU sets the CPU clock to one of CPUCLK_MAX and CPUCLK_MIN. Here, CPUCLK_MAX is a CPU clock frequency for the CPU to execute processing at high speed, and CPUCLK_MIN is a CPU clock frequency in a low power consumption state. CPUCLK_MIN is lower than the frequency of CPUCLK_MAX.

また、各CPUは、CPUバスクロックの周波数として、複数の所定の周波数の何れかを要求する。即ち、各CPUは、CPUBCLK_MAX、CPUBCLK_MIN、CPUBCLK_DMAのいずれかの周波数にCPUバスクロックを設定する。ここで、CPUBCLK_MAXはCPUバス動作時におけるCPUバスクロック周波数である。また、CPUBCLK_MINはCPUバスが動作していない状態におけるCPUバスクロックの周波数である。また、CPUBCLK_DMAはカードコントローラ105、106がデータ転送を十分高速に行うために必要なCPUバスクロックの周波数である。CPUBCLK_MAXの周波数よりも、CPUBCLK_MINの方が低い。   Each CPU requests one of a plurality of predetermined frequencies as the frequency of the CPU bus clock. That is, each CPU sets the CPU bus clock to any frequency of CPUBCLK_MAX, CPUBCLK_MIN, and CPUBCLK_DMA. Here, CPUBCLK_MAX is the CPU bus clock frequency during the CPU bus operation. CPUBCLK_MIN is the frequency of the CPU bus clock when the CPU bus is not operating. CPUBCLK_DMA is a frequency of the CPU bus clock necessary for the card controllers 105 and 106 to perform data transfer at a sufficiently high speed. CPUBCLK_MIN is lower than the frequency of CPUBCLK_MAX.

図3(a)は、各CPUにより実行されるアイドルタスクの処理を示すフローチャートである。他のタスクの処理が全て無くなり、アイドルタスクの処理に移行した場合、CPUは、CPUクロックの周波数を、あらかじめ決定していたCPUCLK_MINに設定する(S301)。   FIG. 3A is a flowchart showing idle task processing executed by each CPU. When all the other task processes are eliminated and the process shifts to the idle task process, the CPU sets the CPU clock frequency to the predetermined CPUCLK_MIN (S301).

次に、CPUは、CPUバス113、114が使用中か否かを判別する(S302)。この判別処理について図4を用いて説明する。この判別処理のため、CPUバス使用中フラグを使用する。CPU以外のブロックがCPUバスのバスマスターとして動作する場合に、CPUバス使用中フラグとして所定値が設定される。CPU101、102はそれぞれ、内部のレジスタに、CPUバス使用中フラグの設定値を保持する。CPU101、102は、カードコントローラ105、106がメモリ104やメモリ905にデータ転送(DMA:Direct MemoryAccess)を行う場合に、CPUバス使用中フラグに所定値を設定する。   Next, the CPU determines whether or not the CPU buses 113 and 114 are in use (S302). This discrimination process will be described with reference to FIG. For this discrimination process, a CPU bus busy flag is used. When a block other than the CPU operates as a bus master of the CPU bus, a predetermined value is set as the CPU bus busy flag. Each of the CPUs 101 and 102 holds the set value of the CPU bus busy flag in an internal register. When the card controllers 105 and 106 perform data transfer (DMA: Direct Memory Access) to the memory 104 or the memory 905, the CPUs 101 and 102 set a predetermined value for the CPU bus busy flag.

図4(a)は、CPU101、102によるカードコントローラ105、106の制御処理の一部であるところのDMA開始処理のフローチャートである。処理が開始されると、CPUは、カードコントローラ105、106に対し、データ転送サイズ、アドレス等のDMA設定コマンドを送信し、更に、データ転送の開始を指示する(S401)。次に、CPUは、CPUバス使用中フラグの設定値に1を加える(立てる)(S402)。本実施形態では、カードコントローラ105と106があるため、二つのカードコントローラ105、106が共にDMA転送を行う状態と、一方だけがDMA転送を行っている状態が考えられる。そのため、カードコントローラに対するDMA転送を指示した場合に、CPUバス使用中フラグに1を加えることで、二つのカードコントローラが共にDMA転送を行っている状態を判別できるようにしている。CPUバス使用中フラグは、CPUバス113、114を用いてデータの転送を行っている処理回路の数を示す情報であるともいえる。次に、CPUは、DMA転送完了の割り込み待ち状態に移行し、処理タスクはスリープ状態となる(S403)。   FIG. 4A is a flowchart of the DMA start process which is a part of the control process of the card controllers 105 and 106 by the CPUs 101 and 102. When the processing is started, the CPU transmits a DMA setting command such as a data transfer size and an address to the card controllers 105 and 106, and further instructs the start of data transfer (S401). Next, the CPU adds 1 to the set value of the CPU bus busy flag (S402). In the present embodiment, since there are the card controllers 105 and 106, a state in which the two card controllers 105 and 106 both perform DMA transfer and a state in which only one of them performs DMA transfer can be considered. Therefore, when a DMA transfer is instructed to the card controller, 1 is added to the CPU bus busy flag so that it is possible to determine the state in which the two card controllers are both performing the DMA transfer. It can be said that the CPU bus busy flag is information indicating the number of processing circuits performing data transfer using the CPU buses 113 and 114. Next, the CPU shifts to a DMA transfer completion interrupt wait state, and the processing task enters a sleep state (S403).

図4(b)は、カードコントローラ105、106からDMA転送完了の割り込み通知を受けた場合のCPU101、102の処理を示すフローチャートである。この処理は、後述する図3(b)のS303の処理の具体例の1つである。   FIG. 4B is a flowchart showing processing of the CPUs 101 and 102 when receiving a DMA transfer completion interrupt notification from the card controllers 105 and 106. This process is one of the specific examples of the process of S303 in FIG.

割り込み処理が開始されると、CPUはCPUバス使用中フラグの設定値から1を引く(S404)。次に、CPUは、スリープ状態にあるタスクに起床(ウエイクアップ)指示を出し、割り込み処理を終了する(S405)。   When the interrupt process is started, the CPU subtracts 1 from the set value of the CPU bus busy flag (S404). Next, the CPU issues a wake-up instruction to the task in the sleep state, and ends the interrupt process (S405).

図4(c)は、S302のCPUバスが使用中であるか否かの判別処理を示すフローチャートである。まず、CPUは、CPUバス使用中フラグに設定されている値をチェックし(S406)、1以上の値が設定されているか否かを判別する(S407)。CPUバス使用中フラグに1以上の値が設定されていた場合、二つのカードコントローラ105、106の少なくとも一方がCPUバス113、114を使用してデータ転送中である。そのため、CPUは、この場合、CPUバスの使用中であると判定する(S408)。また、CPUバス使用中フラグが0に設定されていた場合、CPUは、CPUバス113、114が使用されていないと判定する(S409)。   FIG. 4C is a flowchart showing a determination process for determining whether or not the CPU bus in S302 is in use. First, the CPU checks the value set in the CPU bus busy flag (S406), and determines whether or not a value of 1 or more is set (S407). When the CPU bus busy flag is set to 1 or more, at least one of the two card controllers 105 and 106 is transferring data using the CPU buses 113 and 114. Therefore, in this case, the CPU determines that the CPU bus is being used (S408). When the CPU bus busy flag is set to 0, the CPU determines that the CPU buses 113 and 114 are not being used (S409).

ここで図3(a)のフローチャートに戻る。S302で、CPUバス113、114の使用中ではないと判定された場合には、CPUは、CPUバスクロックの周波数をあらかじめ決定していたCPUBCLK_MINに設定する。また、CPUバスの使用中と判定された場合、CPUは、CPUバスクロックの周波数をあらかじめ決定していたCPUBCLK_DMAに設定する(S305)。   Here, it returns to the flowchart of Fig.3 (a). If it is determined in S302 that the CPU buses 113 and 114 are not in use, the CPU sets the CPU bus clock frequency to the predetermined CPUBCLK_MIN. If it is determined that the CPU bus is in use, the CPU sets the CPU bus clock frequency to the previously determined CPUBCLK_DMA (S305).

次に、CPUは、割り込み待ち状態に移行し、低消費電力状態とする(S304)。CPUは割り込み要求を受けるまで、この低消費電力状態を保つことになる。またCPUバスクロックの周波数は、CPUBCLK_MINまたはCPUBCLK_DMAという周波数に設定される。   Next, the CPU shifts to an interrupt waiting state and enters a low power consumption state (S304). The CPU maintains this low power consumption state until receiving an interrupt request. The frequency of the CPU bus clock is set to a frequency of CPUBCLK_MIN or CPUBCLK_DMA.

図3(b)は各CPUにおける割り込み処理のフローチャートである。割り込み待ち状態、或いは通常の動作状態において、各処理ブロックから割り込み要求を受けた場合、CPUは、CPUクロックの周波数をあらかじめ決定していたCPUCLK_MAXに設定する(S306)。次に、CPUは、CPUバスクロックの周波数をあらかじめ決定していたCPUBCLK_MAXに設定する(S307)。これらの処理により、CPUは低消費電力状態から高速処理状態に移行する。次に、CPUは、受け取った割り込み要因に応じた割り込み処理を行った後、割り込み処理を終了する(S308)。S308の処理において、タスクを起床させるような処理があった場合には、この後、起床したタスクの処理が実行される。S308の処理の具体例として、図4(b)の処理があげられる。   FIG. 3B is a flowchart of interrupt processing in each CPU. When receiving an interrupt request from each processing block in an interrupt wait state or a normal operation state, the CPU sets the CPU clock frequency to CPUCLK_MAX determined in advance (S306). Next, the CPU sets the CPU bus clock frequency to the previously determined CPUBCLK_MAX (S307). With these processes, the CPU shifts from the low power consumption state to the high speed processing state. Next, the CPU ends the interrupt process after performing the interrupt process according to the received interrupt factor (S308). In the process of S308, if there is a process that wakes up the task, then the process of the wake up task is executed. A specific example of the process of S308 is the process of FIG.

図5は、CPU101またはCPU102における各ソフトウェアの処理と、CPUバス使用中フラグ、クロック管理部103のレジスタに設定された周波数の例を示すタイムチャートである。なお、図5では、CPUCLK_MAX=CPUBCLK_MAX=200MHz、CPUCLK_MIN=CPUBCLK_MIN=50MHz、CPUBCLK_DMA=100MHzとしている。   FIG. 5 is a time chart showing an example of the processing of each software in the CPU 101 or the CPU 102, the CPU bus busy flag, and the frequency set in the register of the clock management unit 103. In FIG. 5, CPUCLK_MAX = CPUBCLK_MAX = 200 MHz, CPUCLK_MIN = CPUBCLK_MIN = 50 MHz, and CPUBCLK_DMA = 100 MHz.

図5において、スタート時には、タスク1の処理が実行されており(符号501)、CPUクロックレジスタ、CPUバスククロックレジスタともに200MHzが設定されている。その後割り込み処理2や(符号502)、それによって起こされたタスク2の処理に切り替わるが(符号503)、レジスタ設定は変わらない。その後、処理はタスク1に戻り(符号504)、この処理の中でカードコントローラのDMA開始処理が実行されたとすると、CPUバス使用中フラグに1が加えられ(符号505)、タスク1はスリープする。タスク1のスリープにより実行すべき処理が無くなったため、アイドルタスクが動作する(符号506)。   In FIG. 5, at the start, the processing of task 1 is executed (reference numeral 501), and 200 MHz is set for both the CPU clock register and the CPU basque clock register. Thereafter, the process is switched to the interrupt process 2 (reference numeral 502) and the task 2 process caused thereby (reference numeral 503), but the register setting is not changed. Thereafter, the process returns to task 1 (reference numeral 504). If the card controller DMA start process is executed in this process, 1 is added to the CPU bus busy flag (reference numeral 505), and task 1 sleeps. . Since there is no more processing to be executed due to the sleep of task 1, the idle task operates (reference numeral 506).

アイドルタスクによりCPUクロックレジスタにはCPUCLK_MIN=50MHzに設定される。また、CPUバス使用中フラグが1であるため、CPUBCLK_DMA=100MHzに設定されて、割り込み待ちとなる。   The CPU clock register is set to CPUCLK_MIN = 50 MHz by the idle task. Further, since the CPU bus busy flag is 1, CPUBCLK_DMA = 100 MHz is set and an interrupt is waited for.

DMA完了割り込みにより割り込み処理1が実行され(符号507)、CPUクロック、CPUバスクロックの周波数がCPUCLK_MAX=CPUBCLK_MAX=200MHzに設定され、また、CPUバス使用中フラグから1が引かれて0となる。割り込み処理1が終了すると、割り込み処理1によって起床されたタスク1が動作し(符号508)、タスク1がスリープすると再びアイドルタスクが動作する(符号509)。この時CPUバス使用中フラグは0であるため、CPUクロック、CPUバスクロックの周波数は、共に50MHzに設定される。   Interrupt processing 1 is executed by the DMA completion interrupt (reference numeral 507), the frequency of the CPU clock and CPU bus clock is set to CPUCLK_MAX = CPUBCLK_MAX = 200 MHz, and 1 is subtracted from the CPU bus busy flag to 0. When the interrupt process 1 ends, the task 1 woken up by the interrupt process 1 operates (reference numeral 508), and when the task 1 sleeps, the idle task operates again (reference numeral 509). At this time, since the CPU bus busy flag is 0, both the CPU clock frequency and the CPU bus clock frequency are set to 50 MHz.

図6は、CPU101とCPU102におけるCPUバス使用中フラグ、及び、各CPUから要求されたCPUクロックとCPUバスクロックの周波数の例を示すタイムチャートである。CPU101では、図5と同様に、CPUCLK_MAX=CPUBCLK_MAX=200MHz、CPUCLK_MIN=CPUBCLK_MIN=50MHz、CPUBCLK_DMA=100MHzとする。CPU102では、CPUCLK_MAX=CPUBCLK_MAX=CPUBCLK_DMA=100MHz、CPUCLK_MIN=CPUBCLK_MIN=50MHzとする。各CPUが設定するクロック周波数は、これ以外の周波数とすることも可能である。   FIG. 6 is a time chart showing an example of the CPU bus busy flag in the CPU 101 and the CPU 102, the CPU clock requested from each CPU, and the frequency of the CPU bus clock. In the CPU 101, as in FIG. 5, CPUCLK_MAX = CPUBCLK_MAX = 200 MHz, CPUCLK_MIN = CPUBCLK_MIN = 50 MHz, and CPUBCLK_DMA = 100 MHz. In the CPU 102, CPUCLK_MAX = CPUBCLK_MAX = CPUBCLK_DMA = 100 MHz and CPUCLK_MIN = CPUBCLK_MIN = 50 MHz. The clock frequency set by each CPU may be a frequency other than this.

符号601、602はそれぞれ、CPU101、CPU102におけるCPUバス使用中フラグ、CPUクロック周波数、CPUバスクロック周波数の設定状態を示している。このように設定された場合、クロック管理部103により、符号603のように各CPUへのCPUクロック周波数と、CPUバスクロックの周波数が設定される。   Reference numerals 601 and 602 indicate the CPU bus busy flag, CPU clock frequency, and CPU bus clock frequency setting state in the CPU 101 and CPU 102, respectively. In such a case, the clock management unit 103 sets the CPU clock frequency to each CPU and the frequency of the CPU bus clock as indicated by reference numeral 603.

以上説明したとおり、本実施形態では、簡単な回路構成により、各CPUの動作状態と、CPUバスの使用状態に応じた周波数のクロックを供給することが可能となる。そのため、複数のCPU共通のバスに接続される構成において、回路規模を大きくすることなく、消費電力を抑えることが可能となる。   As described above, in this embodiment, it is possible to supply a clock having a frequency corresponding to the operation state of each CPU and the use state of the CPU bus with a simple circuit configuration. Therefore, in a configuration connected to a bus common to a plurality of CPUs, power consumption can be suppressed without increasing the circuit scale.

なお、本実施形態では、主にカードコントローラによるDMA転送完了の割り込み通知によりCPUバスが使用中であるか否かを判別する場合について説明した。これ以外にも、CPUバスに接続されているその他の回路ブロックについても、同様にCPUバス使用中フラグを設定することにより、他の回路ブロックによるCPUバスの使用中か否かを判別することが可能となる。   In the present embodiment, a case has been described in which it is determined whether or not the CPU bus is in use mainly based on a DMA transfer completion interrupt notification from the card controller. In addition to this, for other circuit blocks connected to the CPU bus, it is possible to determine whether or not the CPU bus is being used by another circuit block by setting the CPU bus busy flag in the same manner. It becomes possible.

また、本実施形態では、一つのCPUバスに二つのCPUが接続されている構成としたが、三つ以上のCPUが共通のCPUバスに接続されている構成であっても、同様にCPUクロックとCPUバスクロックを制御することが可能である。   In the present embodiment, two CPUs are connected to one CPU bus. However, even in a configuration in which three or more CPUs are connected to a common CPU bus, the CPU clock is similarly applied. And the CPU bus clock can be controlled.

また、本実施形態では、動画データや静止画データなどをメモリカードに記録する構成であったが、メモリカード以外の、ランダムアクセスの記録媒体を用いることも可能である。この場合、カードコントローラではなく、記録媒体に対して各種の情報を記録し、再生する記録再生部が設けられる。   In the present embodiment, moving image data, still image data, and the like are recorded on the memory card. However, a random access recording medium other than the memory card can be used. In this case, not a card controller but a recording / reproducing unit that records and reproduces various information on a recording medium is provided.

次に、第2の実施形態を説明する。図7は、第2の実施形態における信号処理回路903の構成を示すブロック図である。図1と同様の構成については、同一の番号を付加し、詳細な説明は省略する。   Next, a second embodiment will be described. FIG. 7 is a block diagram showing the configuration of the signal processing circuit 903 in the second embodiment. The same components as those in FIG. 1 are denoted by the same reference numerals, and detailed description thereof is omitted.

図7では、CPUバス114に第3のCPU701が接続される。CPU701は、通信部111、通信部112の制御を行う。また、CPU701は、メモリ702を使用して、CPU101、102と通信しながら、カメラ900全体の制御を行う。   In FIG. 7, the third CPU 701 is connected to the CPU bus 114. The CPU 701 controls the communication unit 111 and the communication unit 112. The CPU 701 uses the memory 702 to control the entire camera 900 while communicating with the CPUs 101 and 102.

CPU701は、CPU101、102とは異なる方法で、CPUクロックの周波数やCPUバスクロックの周波数をクロック管理部103に対して設定する。CPU701は、クロック管理部103に対し、スリープ信号701sを出力する。スリープ信号701sは、CPU701が割り込み待ちの状態(スリープ状態)に移行した場合にアサートされる信号である。   The CPU 701 sets the frequency of the CPU clock and the frequency of the CPU bus clock in the clock management unit 103 by a method different from that of the CPUs 101 and 102. The CPU 701 outputs a sleep signal 701 s to the clock management unit 103. The sleep signal 701s is a signal that is asserted when the CPU 701 shifts to an interrupt waiting state (sleep state).

クロック管理部103は、CPU701からスリープ信号701sを受けた場合、CPU701に供給する動作クロックの周波数を下げても良いと判断する。つまり、第1の実施形態における、CPUCLK_MIN、CPUBCLK_MINの設定が行われた場合と同様の扱いとなる。また逆に、スリープ状態において割り込みを受け付け、割り込み処理が開始されると、CPU701は、スリープ信号701sをデアサートする。クロック管理部103は、スリープ信号701sがデアサートされた場合、CPU701に供給する動作クロックの周波数を上げる必要があると判断する。つまり、第1の実施形態における、CPUCLK_MAX、CPUBCLK_MAXの設定が行われた場合と同様の扱いとなる。   When receiving the sleep signal 701 s from the CPU 701, the clock management unit 103 determines that the frequency of the operation clock supplied to the CPU 701 may be lowered. That is, it is handled in the same manner as when CPUCLK_MIN and CPUBCLK_MIN are set in the first embodiment. Conversely, when an interrupt is accepted in the sleep state and interrupt processing is started, the CPU 701 deasserts the sleep signal 701s. When the sleep signal 701s is deasserted, the clock management unit 103 determines that it is necessary to increase the frequency of the operation clock supplied to the CPU 701. That is, it is handled in the same manner as when CPUCLK_MAX and CPUBCLK_MAX are set in the first embodiment.

クロック管理部103は、スリープ信号701sがアサート状態の場合と、デアサート状態の場合において、それぞれ、決められた周波数のクロックをCPU701のCPUクロック周波数として設定する。   The clock management unit 103 sets a clock with a determined frequency as the CPU clock frequency of the CPU 701 when the sleep signal 701 s is in the asserted state and when it is in the deasserted state.

そして、クロック管理部103は、CPU101、CPU102により要求されたCPUクロック及びCPUバスクロックの周波数と、CPU701からのスリープ信号701sにより、各CPUへのCPUクロック周波数と、CPUバスクロックを設定する。   Then, the clock management unit 103 sets the CPU clock frequency and CPU bus clock to each CPU based on the CPU clock and CPU bus clock frequencies requested by the CPU 101 and CPU 102 and the sleep signal 701s from the CPU 701.

本実施形態では、クロック管理部103は、第3のCPU701からのスリープ信号701sのアサート状態とデアサート状態に応じたクロック周波数が設定されるレジスタを備えている。即ち、クロック管理部103は、スリープ信号701sがアサート状態とデアサート状態のときに、それぞれCPU701のCPUクロック周波数として要求される値を第3のCPUアクティブ/スリープクロックレジスタに設定する。また、クロック管理部103は、スリープ信号701sがアサート状態とデアサート状態のときに、それぞれCPU701のCPUバスクロック周波数として要求される値を第3のCPUバスアクティブ/スリープクロックレジスタに設定する。   In the present embodiment, the clock management unit 103 includes a register in which a clock frequency is set according to the asserted state and the deasserted state of the sleep signal 701s from the third CPU 701. That is, when the sleep signal 701s is in the asserted state and the deasserted state, the clock management unit 103 sets values required for the CPU clock frequency of the CPU 701 in the third CPU active / sleep clock register. In addition, when the sleep signal 701s is in the asserted state and the deasserted state, the clock management unit 103 sets a value required as the CPU bus clock frequency of the CPU 701 in the third CPU bus active / sleep clock register.

例えば、スリープ信号701sがアサート状態、即ちCPU701がスリープ状態であることを示す場合、第3のCPUアクティブ/スリープクロックレジスタと、第3のCPUバスアクティブ/スリープクロックレジスタにはそれぞれ50MHzが設定される。スリープ信号701sがデアサート状態、即ちCPU701がアクティブ状態である場合、第3のCPUアクティブ/スリープクロックレジスタには200MHzが設定され、第3のCPUバスアクティブ/スリープクロックレジスタには100MHzが設定される。   For example, when the sleep signal 701s indicates the asserted state, that is, the CPU 701 is in the sleep state, 50 MHz is set in each of the third CPU active / sleep clock register and the third CPU bus active / sleep clock register. . When the sleep signal 701s is in a deasserted state, that is, when the CPU 701 is in an active state, 200 MHz is set in the third CPU active / sleep clock register, and 100 MHz is set in the third CPU bus active / sleep clock register.

クロック管理部103は、CPU701がアクティブ状態、スリープ状態である場合に設定すべきクロック周波数を予め記憶している。そのため、CPU701は、クロック管理部103に対してクロック周波数の値を出力せずに、スリープ信号701sの状態を変えることにより、要求するクロック周波数を設定することができる。   The clock management unit 103 stores in advance clock frequencies to be set when the CPU 701 is in an active state or a sleep state. Therefore, the CPU 701 can set the requested clock frequency by changing the state of the sleep signal 701 s without outputting the clock frequency value to the clock management unit 103.

本実施形において、各レジスタに記憶された値と、その時に出力されるCPUクロック、CPUバスクロックの周波数を図8に示す。このように、各クロックの周波数を決めることができるため、クロック管理部103を比較的単純な回路構成とすることができる。   In this embodiment, the values stored in each register and the CPU clock and CPU bus clock frequencies output at that time are shown in FIG. Thus, since the frequency of each clock can be determined, the clock management unit 103 can have a relatively simple circuit configuration.

なお、第2の実施形態では、第3のCPU701をCPUバス114に接続する構成としたが、CPUバス113に第3のCPU701を接続する構成としてもよい。   In the second embodiment, the third CPU 701 is connected to the CPU bus 114, but the third CPU 701 may be connected to the CPU bus 113.

なお、第1、第2の実施形態では、本発明をカメラに適用した場合について説明したが、これ以外にも、複数のCPUを備える他の装置に対しても同様に本発明を適用可能である。   In the first and second embodiments, the case where the present invention is applied to a camera has been described. However, the present invention can be similarly applied to other devices including a plurality of CPUs. is there.

Claims (3)

バスクロックに応じてデータの転送を行うバスと、
それぞれ前記バスに接続され、CPUクロックに応じて動作すると共に、それぞれが要求する、前記CPUクロックの周波数に関する第1の情報と前記バスクロックの周波数に関する第2の情報を出力する複数のCPUと、
前記複数のCPUそれぞれから出力された前記第1の情報と前記第2の情報とを記憶するレジスタを有し、前記複数のCPUから出力され、前記レジスタに記憶された前記第1の情報と前記第2の情報とに基づいて、前記複数のCPUに供給する前記CPUクロックそれぞれの周波数と、前記バスクロックの周波数とを決定し、前記複数のCPUにそれぞれ前記CPUクロックを供給すると共に、前記バスに前記バスクロックを供給するクロック管理手段とを備え、
前記クロック管理手段は、前記レジスタに記憶された前記第2の情報に基づいて、前記複数のCPUがそれぞれ要求したバスクロックの周波数のうち最も高い周波数を前記バスクロックの周波数として決定し、前記決定したバスクロックの周波数と前記レジスタに記憶された前記第1の情報とに基づいて、前記CPUが要求したCPUクロックの周波数が前記決定したバスクロックの周波数以上である場合は、前記CPUが要求した周波数を当該CPUに供給する前記CPUクロックの周波数として決定し、前記CPUが要求したCPUクロックの周波数が前記決定したバスクロックの周波数よりも低い場合は、前記決定したバスクロックの周波数を当該CPUに供給する前記CPUクロックの周波数として決定することを特徴とする処理装置。
A bus that transfers data according to the bus clock; and
Are connected to the bus, as well as operate in accordance with the CPU clock, each requires a plurality of CPU outputs and a second information about the frequency of the first information about the frequency of the CPU clock the bus clock ,
A register for storing the first information and the second information output from each of the plurality of CPUs; and the first information output from the plurality of CPUs and stored in the registers; based on the second information, and the CPU clock respective frequency supplied to the plurality of CPU, together with the to determine the frequency of the bus clock, to supply each of the plurality of CPU said CPU clock, said bus a clock management means for supplying the bus clock,
The clock management means determines, as the bus clock frequency, the highest frequency among the bus clock frequencies requested by the plurality of CPUs based on the second information stored in the register, If the CPU clock frequency requested by the CPU is equal to or higher than the determined bus clock frequency based on the bus clock frequency and the first information stored in the register, the CPU requested If the frequency of the CPU clock requested by the CPU is lower than the determined frequency of the bus clock, the determined frequency of the bus clock is sent to the CPU. process instrumentation, characterized by determining the frequency of the supply the CPU clock .
前記複数のCPUはそれぞれ、前記バスに接続された他の処理回路からの割り込み待ち状態への移行に応じて、要求する前記CPUクロックの周波数とバスクロックの周波数とに関する情報を前記クロック管理手段に出力し、前記割り込み待ち状態からタスク実行状態への移行に応じて、前記第1の情報と前記第2の情報とを前記クロック管理手段に出力することを特徴とする請求項1に記載の処理装置。 Each of the plurality of CPUs sends to the clock management means information related to the requested CPU clock frequency and bus clock frequency in response to a transition to an interrupt wait state from another processing circuit connected to the bus. 2. The processing according to claim 1 , wherein the first information and the second information are output to the clock management unit in response to transition from the interrupt waiting state to the task execution state. apparatus. 前記バスに接続され、前記バスを介して入力したデータを記録媒体に記録する記録手段を備え、前記CPUは、前記記録手段によるデータの転送中か否かに応じて要求する前記バスクロックの周波数を決めることを特徴とする請求項1に記載の処理装置。   A bus that is connected to the bus and that records data input via the bus on a recording medium, and the CPU requests a frequency of the bus clock depending on whether the data is being transferred by the recording unit; The processing apparatus according to claim 1, wherein:
JP2012281173A 2012-12-25 2012-12-25 Processing equipment Expired - Fee Related JP6128833B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012281173A JP6128833B2 (en) 2012-12-25 2012-12-25 Processing equipment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012281173A JP6128833B2 (en) 2012-12-25 2012-12-25 Processing equipment

Publications (2)

Publication Number Publication Date
JP2014126915A JP2014126915A (en) 2014-07-07
JP6128833B2 true JP6128833B2 (en) 2017-05-17

Family

ID=51406385

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012281173A Expired - Fee Related JP6128833B2 (en) 2012-12-25 2012-12-25 Processing equipment

Country Status (1)

Country Link
JP (1) JP6128833B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105094968B (en) * 2015-07-01 2019-05-21 小米科技有限责任公司 Wake up the method and device of MCU

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5784599A (en) * 1995-12-15 1998-07-21 Compaq Computer Corporation Method and apparatus for establishing host bus clock frequency and processor core clock ratios in a multi-processor computer system
US6298448B1 (en) * 1998-12-21 2001-10-02 Siemens Information And Communication Networks, Inc. Apparatus and method for automatic CPU speed control based on application-specific criteria
JP2003091328A (en) * 2001-09-19 2003-03-28 Alps Electric Co Ltd Computer
US7966511B2 (en) * 2004-07-27 2011-06-21 Intel Corporation Power management coordination in multi-core processors
JP4837456B2 (en) * 2006-06-28 2011-12-14 パナソニック株式会社 Information processing device
JP5561374B2 (en) * 2010-11-15 2014-07-30 富士通株式会社 Information processing system

Also Published As

Publication number Publication date
JP2014126915A (en) 2014-07-07

Similar Documents

Publication Publication Date Title
JP4996519B2 (en) Virtual multiprocessor, system LSI, mobile phone device, and virtual multiprocessor control method
US9678809B2 (en) System and method for providing dynamic clock and voltage scaling (DCVS) aware interprocessor communication
EP3367212A1 (en) Hardware automatic performance state transitions in system on processor sleep and wake events
US8726056B2 (en) Clock control device, clock control method, clock control program and integrated circuit
US7277976B2 (en) Multilayer system and clock control method
JP2008530631A (en) Power supply control circuit and electronic circuit
JP6151465B1 (en) Latency-based power mode unit for controlling the power mode of a processor core, and related methods and systems
JP2007180600A (en) Electronic equipment and method of controlling data transfer rate of electronic equipment
US20050198429A1 (en) Multilayer system and clock control method
JP6128833B2 (en) Processing equipment
JP2013007974A (en) Electronic apparatus, control method of electronic apparatus, and control program of electronic apparatus
JP4773693B2 (en) Memory control system
JP2001034530A (en) Microcomputer and memory access control method
JP5783348B2 (en) Control device, control program, and image forming apparatus
JP2017041007A (en) Information processing device, power control method, program, and information processing system
JP4361842B2 (en) Mobile device
JP2011013836A (en) Memory arrangement management device and microprocessor
JP5017784B2 (en) Processor and interrupt processing control method applied to the processor
TWI772438B (en) System and method for dynamic buffer sizing in a computing device
JP2005010638A (en) Display controller and display control method
JP2011186731A (en) Electronic circuit, control method thereof and image forming apparatus
JP2012027825A (en) Information processor and suspend/resume method therefor
JP2009230172A (en) Information processor and method for controlling same
JP2001117679A (en) Information processor and method for controlling the same and storage medium
JP2009080747A (en) Multiprocessor device and information processor

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151222

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161031

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161115

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170113

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170314

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170411

R151 Written notification of patent or utility model registration

Ref document number: 6128833

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees