JP2010231542A - Semiconductor integrated circuit device - Google Patents

Semiconductor integrated circuit device Download PDF

Info

Publication number
JP2010231542A
JP2010231542A JP2009078921A JP2009078921A JP2010231542A JP 2010231542 A JP2010231542 A JP 2010231542A JP 2009078921 A JP2009078921 A JP 2009078921A JP 2009078921 A JP2009078921 A JP 2009078921A JP 2010231542 A JP2010231542 A JP 2010231542A
Authority
JP
Japan
Prior art keywords
instruction
data
signal
input
circuit
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.)
Granted
Application number
JP2009078921A
Other languages
Japanese (ja)
Other versions
JP5414323B2 (en
Inventor
Koji Muranishi
公二 村西
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.)
Lapis Semiconductor Co Ltd
Original Assignee
Oki Semiconductor Co Ltd
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 Oki Semiconductor Co Ltd filed Critical Oki Semiconductor Co Ltd
Priority to JP2009078921A priority Critical patent/JP5414323B2/en
Publication of JP2010231542A publication Critical patent/JP2010231542A/en
Application granted granted Critical
Publication of JP5414323B2 publication Critical patent/JP5414323B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Microcomputers (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To execute an instruction in which the timing conditions of transmission of the data of a semiconductor element is changed, and read by a branch instruction, under predetermined timing conditions. <P>SOLUTION: Instruction data (100) of a branch instruction are read, and instruction data (011) passing through a critical path are read, and one of two clock signals clk1 is masked for preparing the passage of the instruction data (011) through the critical path, and even when the decrease of the frequency of the clock signal clk to be input to the semiconductor element of the critical path is started (T9), the masking of the clock signal clk1 is stopped (T10) in the case of reading and executing the instruction data according to the instruction data (100) of a branch instruction. Thus, the instruction read according to the branch instruction is executed under predetermined timing conditions. <P>COPYRIGHT: (C)2011,JPO&INPIT

Description

本発明は、半導体集積回路装置及び半導体集積回路装置のデータ伝送方法に係り、特に、第1の半導体集積回路部と、第2の半導体集積回路部と、を備え、複数の命令データを順に読み出し、読み出した複数の命令データ各々を、各命令データに応じて定まる該第1の半導体集積回路部又は該第2の半導体集積回路部に伝送させる半導体集積回路装置及び半導体集積回路装置のデータ伝送方法に関するものである。   The present invention relates to a semiconductor integrated circuit device and a data transmission method of the semiconductor integrated circuit device, and in particular, includes a first semiconductor integrated circuit unit and a second semiconductor integrated circuit unit, and sequentially reads a plurality of instruction data. , A semiconductor integrated circuit device for transmitting each of a plurality of read command data to the first semiconductor integrated circuit unit or the second semiconductor integrated circuit unit determined according to each command data, and a data transmission method for the semiconductor integrated circuit device It is about.

従来、半導体集積回路装置の中には、クロック生成回路、中央処理装置(Central Processing Unitであり、以下、CPUと呼ぶ)、メモリコントローラ、メモリ、及びレギュレータで構成されているものがある。   2. Description of the Related Art Conventionally, some semiconductor integrated circuit devices include a clock generation circuit, a central processing unit (hereinafter referred to as a CPU), a memory controller, a memory, and a regulator.

このような半導体集積回路装置のメモリには、処理の実行を命ずる命令を識別する各々異なる複数の命令データが記憶されている。CPUは、各々複数の半導体素子を備えた複数の半導体集積回路部を備え、メモリコントローラを制御して、メモリから読み出された命令データを、該命令データに応じて定まる半導体集積回路部を伝送して、命令データにより識別される命令を実行するようにしている。   The memory of such a semiconductor integrated circuit device stores a plurality of different instruction data for identifying instructions for instructing execution of processing. The CPU includes a plurality of semiconductor integrated circuit units each including a plurality of semiconductor elements, and controls the memory controller to transmit the instruction data read from the memory to the semiconductor integrated circuit unit determined according to the instruction data. Thus, an instruction identified by the instruction data is executed.

このような半導体集積回路装置は、コンピュータシステムを1つの集積回路に組み込んだものであり、電子機器の制御用に最適化されている。パーソナルコンピュータに用いられる汎用マイクロプロセッサと比較すると、自己充足性と低価格性を重視したタイプのマイクロプロセッサと言える。   Such a semiconductor integrated circuit device incorporates a computer system in one integrated circuit and is optimized for controlling electronic devices. Compared to general-purpose microprocessors used in personal computers, this is a type of microprocessor that emphasizes self-sufficiency and low cost.

ところで、上記中央処理装置が備える複数の半導体集積回路部各々は、データの伝送のタイミングに影響を及ぼす予め定められたタイミング条件(例えば、所定周期で入力されるクロック信号の入力タイミング)において各半導体素子間でデータを所定の時間で伝送可能である。しかし、中には、このような予め定められたタイミング条件では各半導体素子間でデータを該所定の時間よりも長い時間でなければ伝送し終わらないものも存在する。このような半導体集積回路部のデータが伝送されるルートはクリティカルパスと言われる。   By the way, each of the plurality of semiconductor integrated circuit units included in the central processing unit has each semiconductor in a predetermined timing condition (for example, input timing of a clock signal input at a predetermined period) that affects the timing of data transmission. Data can be transmitted between elements in a predetermined time. However, there are some cases where data transmission between the semiconductor elements is not completed unless the time is longer than the predetermined time under such a predetermined timing condition. Such a route through which data of the semiconductor integrated circuit portion is transmitted is called a critical path.

ここで、CPUがメモリから読み出された命令データを上記クリティカルパスに、上記予め定められたタイミング条件で伝送しようとする場合に、次のようなことが生ずる。即ち、上記のようにクリティカルパスでは各半導体素子間でデータを該所定の時間よりも長い時間でなければ伝送し終わらない。よって、ある半導体素子が、上記タイミング条件でデータを伝送しなければならない次の半導体素子にデータを伝送しても、次の半導体素子がデータを伝送するタイミングまでに、当該ある半導体素子から伝送されたデータが間に合わないことがある。   Here, when the CPU tries to transmit the instruction data read from the memory to the critical path under the predetermined timing condition, the following occurs. That is, as described above, in the critical path, data is not transmitted between the semiconductor elements unless the time is longer than the predetermined time. Therefore, even if a certain semiconductor element transmits data to the next semiconductor element that must transmit data under the above timing condition, the data is transmitted from the certain semiconductor element by the timing at which the next semiconductor element transmits data. The data may not be in time.

そこで、このような事実に鑑み、従来、命令データがクリティカルパスを伝送されるときのみタイミング条件の変更として、例えば、クロック信号の入力間隔を長くする技術が提案されている(例えば特許文献1参照)。   Therefore, in view of such a fact, conventionally, as a change in the timing condition only when instruction data is transmitted on a critical path, for example, a technique for increasing the input interval of a clock signal has been proposed (for example, see Patent Document 1). ).

ところで、クロック信号の入力間隔を長くする技術として次のものもある。   By the way, there are the following techniques for increasing the input interval of the clock signal.

即ち、携帯用のコンピュータでは、電池で使用している場合、電池が消耗して来ているのを知らずに使用していると、コンピュータが突然システムダウンしてしまうことがあることに鑑み、電池の電圧を監視し、ある程度まで電池が消耗してくると、その後の電池の消耗を抑制してシステムダウンに至るのを防止するため、コンピュータを動作させるクロックの周波数を低下させる技術が提案されている(例えば、特許文献2参照)。しかしながら、クロック周波数を低下させる措置を、電池がある程度消耗して来てから初めて取るので、電池の寿命を長くするという観点から見た場合、不充分である。   In other words, in the case of a portable computer, if the battery is used without knowing that the battery is exhausted, the computer may suddenly go down. In order to prevent the system from going down by suppressing the battery exhaustion after the battery is exhausted to some extent, a technology to reduce the frequency of the clock that operates the computer has been proposed. (For example, refer to Patent Document 2). However, since the measure for lowering the clock frequency is not taken until the battery is depleted to some extent, it is insufficient from the viewpoint of extending the life of the battery.

そこで、従来、CPUが実行する命令を識別する命令データが格納されているメモリから、直近に実行する命令データばかりではなく、続けて実行する命令データも複数連続して予め読み出し、それら連続する命令データが、CPUをアイドル状態にすることが可能なアイドル命令である場合には、クロック発生器に周波数変更指令を送って、クロック周波数を予め定めてある低い周波数に低下させる技術が提案されている(例えば、特許文献3参照)。   Therefore, conventionally, not only the most recently executed instruction data but also a plurality of consecutively executed instruction data are read in advance from a memory in which instruction data for identifying an instruction executed by the CPU is stored. When the data is an idle instruction that can put the CPU in an idle state, a technique for sending a frequency change command to the clock generator to reduce the clock frequency to a predetermined low frequency has been proposed. (For example, refer to Patent Document 3).

特開2009−48264号公報JP 2009-48264 A 特開平3−269711号公報JP-A-3-269711 特開平6-332562号公報JP-A-6-332562

ところで、上記命令には、上記アイドル命令の他に、割り込み命令、即ち、ある条件を満たしているか否かを判断し、その判断結果に応じて次に実行すべき命令を決定する分岐命令もあり、連続的に読み出した命令が、分岐命令、アイドル命令、アイドル命令の場合がある。   By the way, in addition to the idle instruction, the instruction includes an interrupt instruction, that is, a branch instruction that determines whether a certain condition is satisfied and determines an instruction to be executed next according to the determination result. The instructions read continuously may be a branch instruction, an idle instruction, or an idle instruction.

しかし、この場合、分岐命令による判断結果に応じて読み出した命令を実行する際に、上記のようにアイドル命令が連続して読み出されてクロック周波数が低下されてしまうので、分岐命令の読出しに応じて読み出した命令を、低下したクロック周波数で実行することになり、動作性能が遅くなる。   However, in this case, when the instruction read according to the determination result by the branch instruction is executed, the idle instruction is continuously read as described above, and the clock frequency is lowered. Accordingly, the read instruction is executed at a reduced clock frequency, and the operation performance becomes slow.

本発明は、上記事実に鑑みなされたもので、半導体素子のデータの伝送のタイミング条件が変更され、分岐命令により読み出された命令を、予め定められたタイミング条件で実行することが可能な半導体集積回路装置及び半導体集積回路装置のデータ伝送方法を提供することを目的とする。   The present invention has been made in view of the above-described facts, and is a semiconductor in which a timing condition for data transmission of a semiconductor element is changed and an instruction read by a branch instruction can be executed under a predetermined timing condition. An object of the present invention is to provide an integrated circuit device and a data transmission method for a semiconductor integrated circuit device.

上記目的を達成するために、請求項1記載の発明の半導体集積回路装置は、処理の実行を命ずる命令を識別する各々異なる複数の命令データを記憶する記憶手段と、複数の半導体素子を備え、データの伝送のタイミングに影響を及ぼす予め定められたタイミング条件において各半導体素子間でデータを第1の時間で伝送可能な第1の半導体集積回路部と、複数の半導体素子を備え、該予め定められたタイミング条件では各半導体素子間でデータを該第1の時間よりも長い第2の時間でなければ伝送し終わらない第2の半導体集積回路部と、を備え、実行する命令及び該命令の次に実行予定の命令の命令データを含む複数の命令データを順に読み出す指示を与え、該指示に応じて順に読み出された複数の命令データ各々が入力されて、各命令データに応じて定まる該第1の半導体集積回路部又は該第2の半導体集積回路部に伝送させる制御手段と、前記制御手段により前記読み出す指示が与えられ、該指示に応じて前記複数の命令データを順に前記記憶手段から読み出して、前記制御手段に入力する読出入力手段と、前記第1の時間間隔で前記各半導体素子にデータの伝送のタイミングの基準となる基準信号を生成して前記各半導体素子に入力する生成手段と、所定の指示信号が入力され続ける間、前記基準信号の入力間隔に応じて定まる所定時間以内に、前記第2の半導体集積回路部が前記データの伝送を終了するように、前記第2の半導体集積回路部に対する前記タイミング条件を変更する変更手段と、前記読出入力手段により出力される前記複数の命令データが順に入力され、該入力された命令データが、前記第2の半導体集積回路部に伝送されるものであると予め定められた第1の命令データである場合、前記制御手段により前記第2の半導体集積回路部を該第1の命令データが伝送され始めるときから、前記指示信号を前記変更手段に入力し続ける指示手段と、次に実行すべき命令を識別する第2の命令データを前記記憶手段から次に読み出すことを内容とする分岐命令を識別する第3の命令データが予め定められ、前記読出入力手段により出力される前記複数の命令データが順に入力され、該入力された命令データが前記第3の命令データでありかつ前記指示手段が前記指示信号を前記変更手段に入力している場合、前記記憶手段から読み出された前記第2の命令データが前記制御手段により前記第1の半導体集積回路部に伝送される際に、前記指示手段による前記指示信号の入力を停止させて前記変更されたタイミング条件を前記予め定められたタイミング条件に戻す停止手段と、を備えている。   In order to achieve the above object, a semiconductor integrated circuit device according to a first aspect of the present invention comprises storage means for storing a plurality of different instruction data for identifying instructions instructing execution of processing, and a plurality of semiconductor elements, A first semiconductor integrated circuit unit capable of transmitting data between the semiconductor elements in a first time under a predetermined timing condition that affects the timing of data transmission; and a plurality of semiconductor elements. And a second semiconductor integrated circuit unit that does not finish transmitting data between the semiconductor elements unless the second time is longer than the first time. Next, an instruction for sequentially reading a plurality of instruction data including the instruction data of the instruction to be executed is given, and each of the plurality of instruction data read in order according to the instruction is input to each instruction data. Control means to be transmitted to the first semiconductor integrated circuit portion or the second semiconductor integrated circuit portion determined in accordance with the data, and the read instruction is given by the control means, and the plurality of instruction data according to the instruction Are sequentially read out from the storage means and input to the control means, and a reference signal serving as a reference for data transmission timing is generated in each semiconductor element at the first time interval. The second semiconductor integrated circuit unit completes the transmission of the data within a predetermined time determined according to the input interval of the reference signal while the generation means for inputting to the element and the predetermined instruction signal are continuously input. A change means for changing the timing condition for the second semiconductor integrated circuit portion, and the plurality of instruction data output by the read input means are sequentially input, When the input command data is the first command data that is predetermined to be transmitted to the second semiconductor integrated circuit unit, the control means causes the second semiconductor integrated circuit unit to When the first instruction data starts to be transmitted, the instruction means for continuously inputting the instruction signal to the changing means and the second instruction data for identifying the instruction to be executed next are read out from the storage means. Is determined in advance, the plurality of instruction data output by the read input means are sequentially input, and the input instruction data is the third instruction data. And the instruction means inputs the instruction signal to the changing means, the second command data read from the storage means is transferred to the first semiconductor collection by the control means. Stop means for stopping the input of the instruction signal by the instruction means and returning the changed timing condition to the predetermined timing condition when transmitted to the product circuit section.

請求項2記載の発明の半導体集積回路装置は、請求項1に記載の発明において、前記分岐命令には、予め定められた実行条件が満たされている場合にのみ、前記第2の命令データを前記記憶手段から次に読み出すことを命ずる条件付き分岐命令が含まれ、前記第3の命令データには、前記条件付き分岐命令を識別する第4の命令データが含まれ、前記制御手段は、前記第4の命令データの入力に応じて前記実行条件が満たされているか否かを判断し、前記実行条件が満たされていないと判断した場合には、前記停止手段による前記中断が無効となるように制御することを特徴とする。   A semiconductor integrated circuit device according to a second aspect of the present invention is the semiconductor integrated circuit device according to the first aspect, wherein the second instruction data is stored in the branch instruction only when a predetermined execution condition is satisfied. A conditional branch instruction to be read next from the storage means is included; and the third instruction data includes fourth instruction data for identifying the conditional branch instruction; It is determined whether or not the execution condition is satisfied in response to the input of the fourth instruction data, and when it is determined that the execution condition is not satisfied, the interruption by the stop unit is invalidated. It is characterized by controlling to.

請求項3記載の発明の半導体集積回路装置は、請求項1又は請求項2に記載の発明において、前記変更手段は、前記タイミング条件の変更として、前記基準信号の入力間隔を長くする第1の変更処理及び各半導体素子へ印加する電圧を大きくする第2の変更処理の少なくとも一方を行なうことを特徴とする。   According to a third aspect of the present invention, there is provided the semiconductor integrated circuit device according to the first or second aspect, wherein the changing means increases the input interval of the reference signal as the change of the timing condition. At least one of the changing process and the second changing process for increasing the voltage applied to each semiconductor element is performed.

請求項4記載の発明は、請求項1に記載の半導体集積回路装置のデータ伝送方法であって、前記制御手段が、前記第3の命令データ、前記第1の命令データ、及び前記第2の命令データを順に読み出す指示を与えると共に、前記読出入力手段が、前記指示に応じて前記第3の命令データ、前記第1の命令データ、及び前記第2の命令データを順に前記記憶手段から読み出して、前記制御手段、前記指示手段、及び前記停止手段に入力する場合、前記指示手段が、前記第1の命令データの入力に応じて前記指示信号を前記変更手段に入力するステップと、前記変更手段が、前記指示信号が入力され続ける間、前記基準信号の入力間隔に応じて定まる所定時間以内に、前記第2の半導体集積回路部が前記データの伝送を終了するように、前記第2の半導体集積回路部に対する前記タイミング条件を変更するステップと、前記制御手段が、前記第3の命令データの次に入力された前記第1の命令データを無視して、前記第2の命令データを、前記第1の半導体集積回路部に伝送するステップと、前記停止手段が、前記制御手段により前記第2の命令データが前記第1の半導体集積回路部に伝送される際に、前記指示手段による前記指示信号の入力を停止させて前記変更されたタイミング条件を前記予め定められたタイミング条件に戻すステップと、を備えている。   According to a fourth aspect of the present invention, there is provided a data transmission method for a semiconductor integrated circuit device according to the first aspect, wherein the control means includes the third command data, the first command data, and the second command data. An instruction for sequentially reading instruction data is given, and the reading input means reads out the third instruction data, the first instruction data, and the second instruction data from the storage means in order according to the instruction. When the control means, the instruction means, and the stop means are input, the instruction means inputs the instruction signal to the change means in response to the input of the first command data; and the change means However, while the instruction signal continues to be input, the second semiconductor integrated circuit unit finishes the transmission of the data within a predetermined time determined according to the input interval of the reference signal. A step of changing the timing condition for the semiconductor integrated circuit unit; and the control means ignores the first instruction data input next to the third instruction data, and outputs the second instruction data. The step of transmitting to the first semiconductor integrated circuit section; and the stopping means when the second command data is transmitted to the first semiconductor integrated circuit section by the control means. Stopping the input of the instruction signal and returning the changed timing condition to the predetermined timing condition.

請求項5記載の発明は、請求項1に記載の半導体集積回路装置のデータ伝送方法であって、前記制御手段が、前記第1の命令データ、前記第3の命令データ、及び前記第2の命令データを順に読み出す指示を与えると共に、前記読出入力手段が、前記指示に応じて前記第1の命令データ、前記第3の命令データ、及び前記第2の命令データを順に前記記憶手段から読み出して、前記制御手段、前記指示手段、及び前記停止手段に入力する場合、前記制御手段が、前記第1の命令データを前記第2の半導体集積回路部に伝送するステップと、前記指示手段が、前記第1の命令データの入力に応じて前記指示信号を前記変更手段に入力するステップと、前記変更手段が、前記指示信号が入力され続ける間、前記基準信号の入力間隔に応じて定まる所定時間以内に、前記第2の半導体集積回路部が前記データの伝送を終了するように、前記第2の半導体集積回路部に対する前記タイミング条件を変更するステップと、前記制御手段が、前記第1の命令データを前記第2の半導体集積回路部に伝送した後、前記読出入力手段により入力された第2の命令データを、前記第1の半導体集積回路部に伝送するステップと、前記停止手段が、前記制御手段により前記第2の命令データが前記第1の半導体集積回路部に伝送される際に、前記指示手段による前記指示信号の入力を停止させて前記変更されたタイミング条件を前記予め定められたタイミング条件に戻すステップと、を備えている。   A fifth aspect of the present invention is the data transmission method of the semiconductor integrated circuit device according to the first aspect, wherein the control means includes the first command data, the third command data, and the second command data. An instruction to sequentially read out the instruction data is given, and the reading input means reads out the first instruction data, the third instruction data, and the second instruction data from the storage means in order according to the instruction. When the control means, the instruction means, and the stop means are input, the control means transmits the first command data to the second semiconductor integrated circuit unit, and the instruction means includes the The step of inputting the instruction signal to the changing means in response to the input of the first command data, and the changing means is determined according to the input interval of the reference signal while the instruction signal is continuously input. Changing the timing condition for the second semiconductor integrated circuit unit so that the second semiconductor integrated circuit unit finishes transmission of the data within a predetermined time; and the control means includes the first The command data is transmitted to the second semiconductor integrated circuit unit, and then the second command data input by the read input unit is transmitted to the first semiconductor integrated circuit unit; When the second command data is transmitted to the first semiconductor integrated circuit unit by the control unit, the input of the instruction signal by the instruction unit is stopped and the changed timing condition is determined in advance. Returning to the set timing condition.

請求項6記載の発明は、請求項2に記載の半導体集積回路装置のデータ伝送方法であって、前記制御手段が、前記第4の命令データ及び前記第1の命令データを順に読み出す指示を与えると共に、前記読出入力手段が、前記指示に応じて前記第4の命令データ及び前記第1の命令データを順に前記記憶手段から読み出して、前記制御手段、前記指示手段、及び前記停止手段に入力する場合、前記指示手段が、前記第1の命令データの入力に応じて前記指示信号を前記変更手段に入力するステップと、前記変更手段が、前記指示信号が入力され続ける間、前記基準信号の入力間隔に応じて定まる所定時間以内に、前記第2の半導体集積回路部が前記データの伝送を終了するように、前記第2の半導体集積回路部に対する前記タイミング条件を変更するステップと、前記制御手段が、前記第4の命令データの入力に応じて前記予め定められた実行条件が満たされているか否かを判断し、該実行条件が満たされていないと判断した場合、前記停止手段による前記中断が無効となるように制御すると共に、前記第1の命令データを前記第2の半導体集積回路部に伝送するステップと、を備えている。   A sixth aspect of the present invention is the data transmission method of the semiconductor integrated circuit device according to the second aspect, wherein the control means gives an instruction to sequentially read the fourth instruction data and the first instruction data. At the same time, the read input means reads the fourth command data and the first command data from the storage means in order according to the instruction, and inputs them to the control means, the instruction means, and the stop means. The instruction means inputs the instruction signal to the change means in response to the input of the first command data; and the change means inputs the reference signal while the instruction signal is continuously input. The timing condition for the second semiconductor integrated circuit unit is changed so that the second semiconductor integrated circuit unit completes the transmission of the data within a predetermined time determined according to the interval. And the control means determines whether or not the predetermined execution condition is satisfied according to the input of the fourth instruction data, and determines that the execution condition is not satisfied And the step of controlling the interruption by the stopping means to be invalid and transmitting the first command data to the second semiconductor integrated circuit unit.

請求項7記載の発明の半導体集積回路装置のデータ伝送方法は、請求項4〜請求項6の何れか1項に記載の発明において、前記変更手段は、前記タイミング条件の変更として、前記基準信号の入力間隔を長くする第1の変更処理及び各半導体素子へ印加する電圧を大きくする第2の変更処理の少なくとも一方を行なうことを特徴とする。   A data transmission method for a semiconductor integrated circuit device according to a seventh aspect of the present invention is the data transmission method according to any one of the fourth to sixth aspects, wherein the changing means is configured to change the reference signal as the change of the timing condition. At least one of a first changing process for increasing the input interval and a second changing process for increasing the voltage applied to each semiconductor element.

本発明によれば、分岐命令データが読み出されかつタイミング条件が変更されている場合、分岐命令データに応じた命令データが半導体集積回路部に伝送される際に、変更されたタイミング条件を予め定められたタイミング条件に戻すようにしているので、当該分岐命令に応じて読み出された命令を、予め定められたタイミング条件で実行することができる、という効果を奏する。   According to the present invention, when the branch instruction data is read and the timing condition is changed, when the instruction data corresponding to the branch instruction data is transmitted to the semiconductor integrated circuit unit, the changed timing condition is set in advance. Since the timing is returned to the predetermined timing condition, there is an effect that the instruction read according to the branch instruction can be executed under the predetermined timing condition.

従来技術のマイクロコントローラ100を示す構成図である。It is a block diagram which shows the microcontroller 100 of a prior art. 従来技術の命令フェッチ時のリードデータ例200を示す図である。It is a figure which shows the read data example 200 at the time of the instruction fetch of a prior art. 従来技術の命令オペコード例300を示す図である。It is a figure which shows the example instruction opcode 300 of a prior art. クリティカルパスの概念図である。It is a conceptual diagram of a critical path. 従来技術の命令先読み回路120の回路図である。It is a circuit diagram of the command prefetch circuit 120 of a prior art. 従来技術のクロックマスク回路130の回路図である。It is a circuit diagram of the clock mask circuit 130 of a prior art. 従来技術のタイムチャートである。It is a time chart of a prior art. クリティカルパスを介したタイムチャートである。It is a time chart through a critical path. 従来技術の他のタイムチャートである。It is another time chart of a prior art. 本願発明の第1の実施の形態における命令先読み回路120の回路図である。FIG. 2 is a circuit diagram of an instruction prefetch circuit 120 in the first embodiment of the present invention. 本願発明の第1の実施の形態における分岐命令後のクリティカルパス命令のタイムチャートである。It is a time chart of the critical path instruction after the branch instruction in 1st Embodiment of this invention. 本願発明の第1の実施の形態におけるクリティカルパス命令後の分岐命令のタイムチャートである。It is a time chart of the branch instruction after the critical path instruction in the first embodiment of the present invention. 本願発明の第2の実施の形態におけるマイクロコントローラ100の構成図である。It is a block diagram of the microcontroller 100 in 2nd Embodiment of this invention. 本願発明の第2の実施の形態における命令先読み回路120の回路図である。It is a circuit diagram of the instruction prefetch circuit 120 in the 2nd Embodiment of this invention. 本願発明の第2の実施の形態における分岐命令後のクリティカルパス命令のタイムチャートである。It is a time chart of the critical path instruction after the branch instruction in the second embodiment of the present invention.

以下、本発明の好ましい実施の形態について図面を参照しながら詳細に説明する。   Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the drawings.

本願発明の以下の第1の実施の形態及び第2の実施の形態は、上記従来技術の特許文献1の内容を前提としているので、以下、この技術を詳細に説明する。   Since the following first embodiment and second embodiment of the present invention are based on the contents of Patent Document 1 of the above prior art, this technique will be described in detail below.

(従来技術の構成)
図1は、従来技術のマイクロコントローラ100を示す構成図である。
(Construction of conventional technology)
FIG. 1 is a block diagram showing a conventional microcontroller 100.

このマイクロコントローラ100は、クロック生成回路102(生成手段)、マスタ104(制御手段)、スレーブ106(読出入力手段)、メモリ108(記憶手段)、及びレギュレータ110で構成されている。   The microcontroller 100 includes a clock generation circuit 102 (generation means), a master 104 (control means), a slave 106 (read input means), a memory 108 (storage means), and a regulator 110.

クロック生成回路102では、クロックマスク回路130(処理形態変更手段)を含んで構成されており、マイクロコントローラ100外部から供給されるクロックclk0信号に基づいて、クロック信号clk、clk1をマイクロコントローラ100内部の各ブロックに供給する機能を有している。なお、クロック信号clk、clk1は、コンピュータ内部の各回路、又は各回路の各素子間での処理の同期をとるための、データ伝送のタイミングの基準となる信号のことであり、このクロックclk、clk1信号(他のクロック信号も含む)の速さをクロック周波数(動作周波数、単にクロックとも呼ばれる)と呼ぶ。   The clock generation circuit 102 includes a clock mask circuit 130 (processing mode changing means). Based on a clock clk0 signal supplied from the outside of the microcontroller 100, the clock signals clk and clk1 are supplied to the inside of the microcontroller 100. It has a function to supply to each block. The clock signals clk and clk1 are signals serving as a reference for data transmission timing to synchronize processing between each circuit in the computer or between each element of each circuit. The clock clk, The speed of the clk1 signal (including other clock signals) is called a clock frequency (an operating frequency, also simply called a clock).

さらに、クロックマスク回路130については、図6において、詳細に説明する。   Further, the clock mask circuit 130 will be described in detail with reference to FIG.

また、マスタ104では、例えば、CPUで構成され、定められたプログラム(メモリ108等に格納されている)に従って処理を行う機能を有している。即ち、マスタ104は、各々複数の半導体素子を備え、データの伝送のタイミングに影響を及ぼす予め定められたタイミング条件(クロック信号の入力タイミング)において各半導体素子間でデータを伝送する複数の半導体集積回路部を備えている。なお、このマスタ104は、データ処理のための命令(指示)を出力するものならば何でもよい。   Further, the master 104 is constituted by a CPU, for example, and has a function of performing processing according to a predetermined program (stored in the memory 108 or the like). That is, the master 104 includes a plurality of semiconductor elements, and a plurality of semiconductor integrated circuits that transmit data between the respective semiconductor elements under a predetermined timing condition (clock signal input timing) that affects the data transmission timing. A circuit part is provided. The master 104 may be anything that outputs a command (instruction) for data processing.

さらに、スレーブ106では、例えば、メモリコントローラとして命令先読み回路120を含んで構成され、マスタ104からのアクセス信号を受信し、応答を返す機能を有している。なお、スレーブ106は、システムコントローラであってもよく、DMA(Direct Memory Access)等の方式を採用してもよい。また、命令先読み回路120は、図5において、詳細に説明する。   Further, the slave 106 includes, for example, an instruction prefetch circuit 120 as a memory controller, and has a function of receiving an access signal from the master 104 and returning a response. The slave 106 may be a system controller, and may employ a system such as DMA (Direct Memory Access). The instruction prefetch circuit 120 will be described in detail with reference to FIG.

また、メモリ108は、データ(命令データ)及びプログラム等を記憶する装置である。   The memory 108 is a device that stores data (command data), a program, and the like.

さらに、レギュレータ110は、マイクロコントローラ100の外部から供給される電源電圧Vdd0をマイクロコントローラ100内部の各回路ブロック(クロック生成回路102、マスタ104、スレーブ106、及びメモリ108)に供給する機能を有する。なお、レギュレータ(Regulator)110は、調整装置という意味であり、コンピュータシステムでは、電源安定装置、又は変圧装置と呼ばれる。詳細には、本願発明では、3端子レギュレータを使用しており、入力、接地、出力の3端子を持ち、入力された直流電源を平滑定電流化して出力する電圧整流素子である。   Further, the regulator 110 has a function of supplying a power supply voltage Vdd0 supplied from the outside of the microcontroller 100 to each circuit block (clock generation circuit 102, master 104, slave 106, and memory 108) inside the microcontroller 100. In addition, the regulator (Regulator) 110 means an adjustment device, and is called a power supply stabilization device or a transformer device in a computer system. Specifically, the present invention is a voltage rectifying element that uses a three-terminal regulator, has three terminals of input, ground, and output, and outputs an input DC power supply by making it a smooth constant current.

詳細に説明すると、クロック生成回路102は、マスタ104、スレーブ106、メモリ108、及びレギュレータ110に接続されており、クロック生成回路102から出力されるクロックclk信号は、マスタ104、スレーブ106、メモリ108、及びレギュレータ110に送信されている。また、レギュレータ110は、クロック生成回路102、マスタ104、スレーブ106、及びメモリ108に接続されており、レギュレータ110から出力される電源電圧Vddは、クロック生成回路102、マスタ104、スレーブ106、及びメモリ108に供給される。   More specifically, the clock generation circuit 102 is connected to the master 104, the slave 106, the memory 108, and the regulator 110, and the clock clk signal output from the clock generation circuit 102 is the master 104, the slave 106, and the memory 108. , And to the regulator 110. The regulator 110 is connected to the clock generation circuit 102, the master 104, the slave 106, and the memory 108. The power supply voltage Vdd output from the regulator 110 is the clock generation circuit 102, the master 104, the slave 106, and the memory. 108.

このマイクロコントローラ100は所定のシーケンスによって動作する。なお、シーケンスとは、シーケンス制御(Sequental Control)のことであり、予め定められた順序又は手続きに従って、制御の各段階を逐次進めていく制御のことであるが、そのときの各段階に用いられる用語を予め説明しておく。   The microcontroller 100 operates according to a predetermined sequence. The sequence is sequence control (Sequential Control), and is control in which each step of control is sequentially advanced according to a predetermined order or procedure, and is used for each step at that time. Terminology will be explained in advance.

(命令フェッチ、op_fetch信号、及びready信号)
マスタ104は、実行すべきプログラムを実行するために命令フェッチ(プロセッサが処理する命令オペコード(命令データ)をメモリから取り出し、レジスタに転送すること)を行う。また、マスタ104は、命令フェッチが実行されていることを示すop_fetch信号をスレーブ106に出力する。そして、マスタ104が発行した命令及び次の命令を実行できることを示すready信号を受信する。詳細には、この命令フェッチアクセスは、スレーブ106を介してメモリ108に格納されているプログラムをリードする(読み込む)。
(Instruction fetch, op_fetch signal, and ready signal)
The master 104 performs instruction fetch (takes out an instruction opcode (instruction data) processed by the processor from the memory and transfers it to a register) in order to execute a program to be executed. In addition, the master 104 outputs an op_fetch signal indicating that instruction fetch is being executed to the slave 106. Then, an instruction issued by the master 104 and a ready signal indicating that the next instruction can be executed are received. Specifically, this instruction fetch access reads (reads) a program stored in the memory 108 via the slave 106.

(リードアクセス)
マスタ104から命令フェッチが実行されたため、スレーブ106はメモリに対してリードアクセス(所望のデータを読み込むためのアクセス)を行う。
(Read access)
Since the instruction fetch is executed from the master 104, the slave 106 performs read access (access for reading desired data) to the memory.

(リードデータrdata1)
メモリ108は、スレーブ106からのリードアクセスに対応したアドレスに格納されているデータであるリードデータrdata1を、スレーブ106に出力する。
(Read data rdata1)
The memory 108 outputs read data rdata1 that is data stored at an address corresponding to read access from the slave 106 to the slave 106.

(リードデータrdata2)
スレーブ106は、メモリ108からリードデータrdata1が入力されると、マスタ104にリードデータrdata2を入力する。
(Read data rdata2)
When the read data rdata1 is input from the memory 108, the slave 106 inputs the read data rdata2 to the master 104.

(クロックclk1信号)
クロックclk1信号は、クロックマスク回路130から供給され、命令先読み回路120を動作させるクロック(クロック信号)である。
(Clock clk1 signal)
The clock clk1 signal is a clock (clock signal) that is supplied from the clock mask circuit 130 and operates the instruction prefetch circuit 120.

(cri_flag信号)
cri_flag信号(指示信号)は、命令先読み回路120からクロックマスク回路130に出力され、クロック信号clk0を、所定間隔(2クロック信号に対して1つのクロック信号を)マスクすることにより、クロック周波数を遅くしてクロック信号clkを出力させる指示を信号である。
(Cri_flag signal)
The cri_flag signal (instruction signal) is output from the instruction prefetch circuit 120 to the clock mask circuit 130, and the clock frequency is slowed by masking the clock signal clk0 at a predetermined interval (one clock signal for two clock signals). The instruction to output the clock signal clk is a signal.

(命令実行)
マスタ104は、スレーブ106を介してメモリ108から受け取ったリードデータrdata2に基づいてプログラムを実行する。詳細には、マスタ104がスレーブ106へ送信した命令フェッチ、op_fetch信号、及びready信号を基にして受信したリードデータrdata2には、マスタ104が実行すべき命令を判別できるように命令コード(図2の命令オペコード)が格納されている。そして、そのリードデータrdata2に格納されている命令コードを、該命令コードに応じて定まる半導体集積回路部を伝送させて、所定のプログラムを実行する。
(Instruction execution)
The master 104 executes a program based on the read data rdata2 received from the memory 108 via the slave 106. Specifically, an instruction code (see FIG. 2) is provided in the read data rdata2 received on the basis of the instruction fetch, op_fetch signal, and ready signal transmitted from the master 104 to the slave 106 so that the master 104 can determine the instruction to be executed. Instruction opcode) is stored. Then, the instruction code stored in the read data rdata2 is transmitted to the semiconductor integrated circuit unit determined according to the instruction code, and a predetermined program is executed.

命令フェッチ時のリードデータには、図2に示すような命令オペコード等のデータが格納されている。命令オペコードとは、マスタ104が実行すべき命令がコード化されているものであり、リードデータrdata1の8ビット目から10ビット目に格納されているものとする(図3の命令オペコード例300参照)。   The read data at the time of instruction fetch stores data such as an instruction opcode as shown in FIG. The instruction opcode is a code in which an instruction to be executed by the master 104 is stored in the 8th to 10th bits of the read data rdata1 (refer to the instruction opcode example 300 in FIG. 3). ).

例えば、命令コードのロード命令は命令オペコード”000”であり、命令コードのストア命令は命令オペコード”001”であるというように、命令コードと命令オペコードの関係を示している。なお、命令オペコードの上記各値は左から、リードデータrdata1における10〜8ビット目に位置する。   For example, the instruction code load instruction is the instruction opcode “000”, and the instruction code store instruction is the instruction opcode “001”, indicating the relationship between the instruction code and the instruction opcode. Note that each value of the instruction opcode is located at the 10th to 8th bits in the read data rdata1 from the left.

なお、リードデータrdata1の他のビットには、図2に示すように、マスタ104が命令を実行する際に使用するソースアドレス及びディスティネーションアドレス等が格納されている。即ち、0ビット目から3ビット目までは、ソースアドレスRs(典拠アドレスであり、処理に使うデータの参照先とするアドレスのことである)を示しており、rdata1[3:0]と表す。また、4ビット目から7ビット目までは、ディスティネーションアドレスRd(目的地アドレスであり、処理結果の格納先とするアドレスのことである)を示しており、rdata1[7:4]と表す。さらに、上記のように、8ビット目から10ビット目までは、Opcode(命令オペコード)を示しており、rdata1[10:8]と表す。また、11ビット目から31ビット目までは、その他のコードetcを示しており、rdata1[31:11]と表す。このように命令フェッチ時のリードデータrdata1例300は”0”及び”1”のコードで表される32ビットバス構成で示されている。   As shown in FIG. 2, the other bits of the read data rdata1 store a source address and a destination address used when the master 104 executes an instruction. That is, the 0th to 3rd bits indicate a source address Rs (which is an authority address and is an address to which data used for processing is referred) and is represented as rdata1 [3: 0]. The fourth to seventh bits indicate the destination address Rd (the destination address, which is the address where the processing result is stored), and is represented as rdata1 [7: 4]. Further, as described above, the 8th to 10th bits indicate Opcode (instruction opcode), which is represented as rdata1 [10: 8]. The 11th to 31st bits indicate other codes etc, which are represented as rdata1 [31:11]. As described above, the read data rdata1 example 300 at the time of instruction fetch is shown by a 32-bit bus configuration represented by codes of “0” and “1”.

マスタ104は、命令フェッチにより受信したリードデータrdata2に従ってプログラムを実行する。その際、命令の種類によってはクリティカルパス420を通る命令が存在する。   The master 104 executes the program according to the read data rdata2 received by the instruction fetch. At that time, depending on the type of instruction, there is an instruction passing through the critical path 420.

また、クリティカルパス420とは、上記のように信号の伝搬に最も時間のかかるパス(経路)のことであり、回路の動作を規制するパスのことである。なお、複数の半導体集積回路部の内、どの半導体集積回路部がクリティカルパス420なのかは、コンピュータ等を用いてシミュレーションして予め特定されている。なお、クリティカルパス420が特定できる手段があればどのような手段を用いてもよい。   The critical path 420 is a path (path) that takes the most time for signal propagation as described above, and is a path that regulates the operation of the circuit. Note that which semiconductor integrated circuit unit is the critical path 420 among the plurality of semiconductor integrated circuit units is specified in advance by simulation using a computer or the like. Any means that can identify the critical path 420 may be used.

従って、クリティカルパス420における信号の伝搬には、ゲート遅延及び配線遅延などがある。   Accordingly, signal propagation in the critical path 420 includes gate delay and wiring delay.

なお、ゲート遅延とは、信号がAND回路等のゲートを通る際に発生する遅延のことである。さらに、配線遅延とは、文字通り、配線に信号が伝わるタイミングの遅れのことであり、微細化が進み、トランジスタ性能が極限まで高速化した結果、トランジスタ同士を接続配線で起こる信号の送信の遅れが、マイクロコントローラ100全体の高性能化を阻害する要因になってきている。   The gate delay is a delay generated when a signal passes through a gate such as an AND circuit. Furthermore, the wiring delay is literally a delay in the timing at which a signal is transmitted to the wiring. As a result of the progress in miniaturization and the increase in transistor performance to the limit, there is a delay in signal transmission that occurs between the transistors on the connection wiring. Therefore, the performance of the entire microcontroller 100 has been hindered.

図4にクリティカルパス420の概念図を示す。   FIG. 4 shows a conceptual diagram of the critical path 420.

フリップフロップ回路402、フリップフロップ回路404、及びフリップフロップ回路406は、クロック生成回路102で生成されたクロックclk信号の立ち上がりエッジで動作する。   The flip-flop circuit 402, the flip-flop circuit 404, and the flip-flop circuit 406 operate at the rising edge of the clock clk signal generated by the clock generation circuit 102.

フリップフロップ回路402は、4段のバッファ410、412、414、416を介してフリップフロップ回路404に接続されている。   The flip-flop circuit 402 is connected to the flip-flop circuit 404 via four stages of buffers 410 412 414 416.

そこで、フリップフロップ回路402に入力された信号Iは、4段のバッファ410、412、414、416を介して、フリップフロップ回路404に信号VIが入力され、信号VIIを出力する。   Therefore, the signal I input to the flip-flop circuit 402 is input to the flip-flop circuit 404 via the four stages of buffers 410, 412, 414, and 416, and the signal VII is output.

さらに、フリップフロップ回路406とフリップフロップ回路402の間に1段のバッファ418を介して接続されている。   Further, the flip-flop circuit 406 and the flip-flop circuit 402 are connected via a one-stage buffer 418.

詳細には、フリップフロップ回路402から出力された信号IIは、バッファ410に入力され、信号IIIを出力する。また、信号IIIを入力したバッファ412は信号IVを出力する。さらに、信号IVを入力したバッファ414は信号Vを出力する。そして、信号Vを入力したバッファ416は信号VIを出力し、信号VIを入力したフリップフロップ回路404は、信号VIIを出力する。   Specifically, the signal II output from the flip-flop circuit 402 is input to the buffer 410 and outputs the signal III. Further, the buffer 412 to which the signal III is input outputs the signal IV. Further, the buffer 414 to which the signal IV is input outputs the signal V. The buffer 416 to which the signal V is input outputs the signal VI, and the flip-flop circuit 404 to which the signal VI is input outputs the signal VII.

なお、クロックclk信号は、フリップフロップ回路402、フリップフロップ回路404、及びフリップフロップ回路406に入力されて同期信号として使用される。また、電源電圧Vddは、各回路(フリップフロップ回路402、フリップフロップ回路404、フリップフロップ回路406、及びバッファ410、412、414、416、418)にそれぞれ供給される。   Note that the clock clk signal is input to the flip-flop circuit 402, the flip-flop circuit 404, and the flip-flop circuit 406 and used as a synchronization signal. The power supply voltage Vdd is supplied to each circuit (the flip-flop circuit 402, the flip-flop circuit 404, the flip-flop circuit 406, and the buffers 410, 412, 414, 416, and 418).

ここで、この回路のクリティカルパス420はフリップフロップ回路402からフリップフロップ回路404のパスであると仮定する。   Here, it is assumed that the critical path 420 of this circuit is a path from the flip-flop circuit 402 to the flip-flop circuit 404.

また、これらの全てのセル(フリップフロップ回路402、フリップフロップ回路404、フリップフロップ回路406、及びバッファ410、412、414、416、418のセル)は、電源電圧Vddで動作する。なお、セルとは、半導体集積回路を設計する際、半導体の機能を表す最小単位のことである。   All these cells (the flip-flop circuit 402, the flip-flop circuit 404, the flip-flop circuit 406, and the cells of the buffers 410, 412, 414, 416, and 418) operate with the power supply voltage Vdd. Note that a cell is a minimum unit representing a function of a semiconductor when designing a semiconductor integrated circuit.

図5に命令先読み回路120の回路図を示す。   FIG. 5 shows a circuit diagram of the instruction prefetch circuit 120.

命令先読み回路120には、op_fetch信号、ready信号、クロックマスク回路130から供給されるクロックclk1信号、及びメモリ108からのリードデータrdata1が入力され、cri_flag信号が出力される。   The instruction prefetch circuit 120 receives the op_fetch signal, the ready signal, the clock clk1 signal supplied from the clock mask circuit 130, and the read data rdata1 from the memory 108, and outputs a cri_flag signal.

命令先読み回路120のフリップフロップ回路512、及びフリップフロップ回路514は、クロックclk1信号の立ち上がりエッジで動作する。   The flip-flop circuit 512 and the flip-flop circuit 514 of the instruction prefetch circuit 120 operate at the rising edge of the clock clk1 signal.

AND回路520の出力端子はAND回路522の入力と接続されている。   The output terminal of the AND circuit 520 is connected to the input of the AND circuit 522.

op_fetch信号及びready信号が入力されるAND回路520の出力信号は、AND回路522に送信される。   An output signal of the AND circuit 520 to which the op_fetch signal and the ready signal are input is transmitted to the AND circuit 522.

命令先読み回路120の外部からリードデータrdata1[10](10ビット目)が、インバータ530を介し、AND回路522の入力と接続されている。また、命令先読み回路120の外部からリードデータrdata1[9](9ビット目)及びリードデータrdata1[8](8ビット目)が、AND回路522の入力と接続されている。さらに、AND回路522の出力端子は、セレクタ回路540の入力、及びインバータ534の入力に接続されている。   Read data rdata1 [10] (10th bit) from the outside of the instruction prefetch circuit 120 is connected to the input of the AND circuit 522 via the inverter 530. Read data rdata1 [9] (9th bit) and read data rdata1 [8] (8th bit) are connected to the input of the AND circuit 522 from the outside of the instruction prefetch circuit 120. Further, the output terminal of the AND circuit 522 is connected to the input of the selector circuit 540 and the input of the inverter 534.

AND回路522には、リードデータrdata1の10ビット目をインバータ530で反転した信号、リードデータrdata1の9ビット目の信号、及びリードデータrdata1の8ビット目の信号が入力される。   The AND circuit 522 receives a signal obtained by inverting the 10th bit of the read data rdata1 by the inverter 530, a 9th bit signal of the read data rdata1, and an 8th bit signal of the read data rdata1.

また、AND回路522の出力信号は、セレクタ回路540のセレクト信号(セレクタ回路540の出力信号を選択制御するためのコントロール信号)、及びインバータ534の入力信号として送信される。   The output signal of the AND circuit 522 is transmitted as a select signal of the selector circuit 540 (a control signal for selecting and controlling the output signal of the selector circuit 540) and an input signal of the inverter 534.

なお、AND回路522は、AND回路522へのリードデータrdata1の値が、命令フェッチのデータがクリティカルパス420を通る命令の乗算命令(図2の”011”)の場合に信号を出力する(前提条件)。   The AND circuit 522 outputs a signal when the value of the read data rdata1 to the AND circuit 522 is a multiplication instruction (“011” in FIG. 2) of an instruction fetch data passing through the critical path 420 (premise) conditions).

セレクタ回路540には、AND回路522の出力、1’b1(1ビットのバイナリ(2進数)の”1”)及びAND回路524の出力端子が接続されている。また、フリップフロップ回路512の入力端子にセレクタ回路540の出力端子が接続され、フリップフロップ回路512の出力端子にセレクタ回路542及びAND回路524が接続されている。   The selector circuit 540 is connected to the output of the AND circuit 522, 1'b1 ("1" of 1-bit binary (binary number)), and the output terminal of the AND circuit 524. Further, the output terminal of the selector circuit 540 is connected to the input terminal of the flip-flop circuit 512, and the selector circuit 542 and the AND circuit 524 are connected to the output terminal of the flip-flop circuit 512.

フリップフロップ回路512には、セレクタ回路540の出力信号が入力されている。そこで、セレクタ回路540に入力されるセレクト信号が”H”のときには、セレクタ回路540の出力信号は”H”(1’b1)となる。また、セレクタ回路540に入力されるセレクト信号が”L”のときには、セレクタ回路540の出力信号はAND回路524の出力信号が出力される。   The output signal of the selector circuit 540 is input to the flip-flop circuit 512. Therefore, when the select signal input to the selector circuit 540 is “H”, the output signal of the selector circuit 540 is “H” (1′b1). When the select signal input to the selector circuit 540 is “L”, the output signal of the selector circuit 540 is the output signal of the AND circuit 524.

なお、フリップフロップ回路512の出力信号は、cri_flag信号として、命令先読み回路120から出力されると共に、AND回路524の入力信号及びセレクタ回路542のセレクト信号となって送信される。   Note that the output signal of the flip-flop circuit 512 is output from the instruction prefetch circuit 120 as a cri_flag signal, and is also transmitted as an input signal of the AND circuit 524 and a select signal of the selector circuit 542.

セレクタ回路542には、フリップフロップ回路512の出力、カウンタ回路560の出力、及びフリップフロップ回路514の出力の各々の端子が接続されている。また、インバータ534の出力端子が非同期リセット端子(ネガリセット端子)rnを介し、フリップフロップ回路514の入力端子に接続されており、セレクタ回路542の出力端子もフリップフロップ回路514の入力端子に接続されている。さらに、フリップフロップ回路514の出力端子は、セレクタ回路542の入力、カウンタ回路560の入力、及び比較回路550の入力端子に接続されている。そして、比較回路550では、フリップフロップ回路514の出力、及び’d100(decimal digits(10進数)の”100”)が入力されている。また、AND回路524のもう一方の入力端子には、比較回路550の出力端子がインバータ532を介して接続されている。   The selector circuit 542 is connected to terminals of the output of the flip-flop circuit 512, the output of the counter circuit 560, and the output of the flip-flop circuit 514. The output terminal of the inverter 534 is connected to the input terminal of the flip-flop circuit 514 via the asynchronous reset terminal (negative reset terminal) rn, and the output terminal of the selector circuit 542 is also connected to the input terminal of the flip-flop circuit 514. ing. Further, the output terminal of the flip-flop circuit 514 is connected to the input of the selector circuit 542, the input of the counter circuit 560, and the input terminal of the comparison circuit 550. In the comparison circuit 550, the output of the flip-flop circuit 514 and ‘d100 (“ 100 ”in decimal digits) are input. The output terminal of the comparison circuit 550 is connected to the other input terminal of the AND circuit 524 via the inverter 532.

フリップフロップ回路514には、セレクタ回路542の出力信号が入力されている。そこで、セレクタ回路542に入力されるセレクト信号が”H”のときには、セレクタ回路542の出力信号は、カウンタ回路560によって、フリップフロップ回路514の出力信号+1の値となる。また、セレクタ回路542に入力されるセレクト信号が”L”のときには、セレクタ回路542の出力信号は、フリップフロップ回路514の出力信号が出力される。   The output signal of the selector circuit 542 is input to the flip-flop circuit 514. Therefore, when the select signal input to the selector circuit 542 is “H”, the output signal of the selector circuit 542 becomes the value of the output signal + 1 of the flip-flop circuit 514 by the counter circuit 560. When the select signal input to the selector circuit 542 is “L”, the output signal of the selector circuit 542 is the output signal of the flip-flop circuit 514.

そして、フリップフロップ回路514は、非同期リセット信号(反転リセットを示すネガリセット信号)が、インバータ534及びネガリセット端子rnを介して入力され、”L”のとき”0”を保持し、リセットを行う。また、比較回路550は、フリップフロップ回路514の出力信号と固定値の10進数の”100”と比較し、フリップフロップ回路514の値が100になったときに出力信号”H”とし、それ以外の場合は出力を”L”とする回路である。詳細には、フリップフロップ回路514の値が100になり、出力信号”H”となったときには、フリップフロップ回路514の値はリセットされ、出力信号”L”のときには、フリップフロップ回路514の値は+1ずつカウントを続行する。   Then, the flip-flop circuit 514 receives an asynchronous reset signal (a negative reset signal indicating an inverted reset) via the inverter 534 and the negative reset terminal rn, holds “0” when “L”, and performs a reset. . Further, the comparison circuit 550 compares the output signal of the flip-flop circuit 514 with a fixed decimal number “100” and sets the output signal “H” when the value of the flip-flop circuit 514 reaches 100, otherwise In this case, the output is “L”. Specifically, when the value of the flip-flop circuit 514 becomes 100 and becomes the output signal “H”, the value of the flip-flop circuit 514 is reset, and when the output signal is “L”, the value of the flip-flop circuit 514 is Continue counting by +1.

また、フリップフロップ回路512、フリップフロップ回路514には、それぞれ同期して動作するようにクロックclk1信号が入力されている。   The clock clk1 signal is input to the flip-flop circuit 512 and the flip-flop circuit 514 so as to operate in synchronization with each other.

さらに、非同期リセット信号については、一番はじめは、AND回路522のパルスが立ち上がったときをトリガーとして非同期にリセットをかける。   Further, the asynchronous reset signal is first reset asynchronously with a trigger of the AND circuit 522 rising.

なお、インバータ530、AND回路523を備えるように構成したのは、クリティカルパス420を通る乗算命令データが”011”であるとしているからである。従って、クリティカルパス420を通る際、乗算命令でない場合、例えば、AND命令”101”の場合には、リードデータrdata1[10]に入力される場所にインバータ530はなく、リードデータrdata1[9]に入力される場所にインバータ530が設置される。以上、述べたようにクリティカルパス420において、どんな命令に時間がかかるか、どの程度の頻度で関わるかなどの条件を基に、ある程度の場所が分かって、はじめて、素子や配線等の遅延が大きくなることが前提条件となるので、本願発明のような乗算命令が前提条件とならない場合もある。   The reason why the inverter 530 and the AND circuit 523 are provided is that the multiplication instruction data passing through the critical path 420 is “011”. Accordingly, when it is not a multiplication instruction when passing through the critical path 420, for example, in the case of the AND instruction “101”, there is no inverter 530 at the place where the read data rdata1 [10] is input, and the read data rdata1 [9] is input. An inverter 530 is installed at the input location. As described above, in the critical path 420, the delay of elements, wiring, etc. is large only after a certain place is known based on conditions such as what instruction takes time and how often it is involved. Therefore, a multiplication instruction as in the present invention may not be a precondition.

図6にクロックマスク回路130の回路図を示す。   FIG. 6 shows a circuit diagram of the clock mask circuit 130.

セレクタ回路630には、コントローラ信号として命令先読み回路120からの出力(cri_flag信号)、固定値”0”、及びインバータ620の出力の出力端子が接続されている。また、セレクタ回路630の出力端子は、フリップフロップ回路610の入力端子に接続されている。さらに、フリップフロップ回路610では、フリップフロップ回路610の出力端子はインバータ620の入力及びOR回路640の入力端子に接続されている。なお、クロックclk0信号端子が、マイクロコントローラ100の外部から、フリップフロップ回路610の入力、及びOR回路640の入力の入力端子に接続されている。   The selector circuit 630 is connected with an output terminal from the instruction prefetch circuit 120 (cri_flag signal), a fixed value “0”, and an output terminal of the inverter 620 as a controller signal. The output terminal of the selector circuit 630 is connected to the input terminal of the flip-flop circuit 610. Further, in the flip-flop circuit 610, the output terminal of the flip-flop circuit 610 is connected to the input of the inverter 620 and the input terminal of the OR circuit 640. The clock clk0 signal terminal is connected to the input terminal of the flip-flop circuit 610 and the input terminal of the OR circuit 640 from the outside of the microcontroller 100.

クロックマスク回路130は、マイクロコントローラ100の外部から供給されるクロックclk0信号、及び命令先読み回路120からの出力信号であるcri_flag信号が入力される。また、クロックマスク回路130は、命令先読み回路120を動作させるクロックclk1信号を出力する。さらに、クロックマスク回路130は、マスタ104、スレーブ106、メモリ108、及びレギュレータ110を動作させるクロックclk信号を出力する。   The clock mask circuit 130 receives a clock clk0 signal supplied from the outside of the microcontroller 100 and a cri_flag signal that is an output signal from the instruction prefetch circuit 120. The clock mask circuit 130 outputs a clock clk1 signal for operating the instruction prefetch circuit 120. Further, the clock mask circuit 130 outputs a clock clk signal for operating the master 104, the slave 106, the memory 108, and the regulator 110.

入力信号cri_flag信号は、セレクタ回路630のセレクト信号として送信される。   The input signal cri_flag signal is transmitted as a select signal of the selector circuit 630.

セレクタ回路630は、セレクト信号(cri_flag信号)が”0”のときにはセレクタ回路630の出力は”0”で固定される。セレクト信号(cri_flag信号)が”1”のときにはセレクタ回路630の出力信号はインバータ620の出力信号を選択する。   In the selector circuit 630, when the select signal (cri_flag signal) is “0”, the output of the selector circuit 630 is fixed at “0”. When the select signal (cri_flag signal) is “1”, the output signal of the selector circuit 630 selects the output signal of the inverter 620.

フリップフロップ回路610の出力信号は、インバータ620を介して、セレクタ回路630に送信される。また、フリップフロップ回路610の出力信号は、OR回路640の入力信号として入力される。なお、フリップフロップ回路610には、クロックclk0信号がマイクロコントローラ100の外部から入っているので、初期値”0”が保持されている。   The output signal of the flip-flop circuit 610 is transmitted to the selector circuit 630 via the inverter 620. Further, the output signal of the flip-flop circuit 610 is input as an input signal of the OR circuit 640. The flip-flop circuit 610 holds the initial value “0” because the clock clk0 signal is input from outside the microcontroller 100.

OR回路640のもう一方の入力には、クロックclk0信号が入力され、出力信号はクロックclk信号としてクロックマスク回路130から出力される。なお、もう一方の出力信号クロックclk1信号はクロックclk0信号がそのまま送信される(クロックclk1信号=クロックclk0信号)。   The clock clk0 signal is input to the other input of the OR circuit 640, and the output signal is output from the clock mask circuit 130 as the clock clk signal. The other output signal clock clk1 signal is the same as the clock clk0 signal (clock clk1 signal = clock clk0 signal).

(従来技術の作用)
次に、以下、従来技術の作用を説明する。
(Operation of conventional technology)
Next, the operation of the prior art will be described below.

最初に、図7を参照して、分岐命令データの読み出しが指示されていない場合の作用を説明する。   First, with reference to FIG. 7, an operation in the case where reading of branch instruction data is not instructed will be described.

時刻T1において、マスタ104からアドレス0x0000_0000(Hexadecimal)に対する命令フェッチが実行される。このとき、命令フェッチを示す信号op_fetch信号は”H”となる。なお、同時にready信号は”H”から”L”に変化する。   At time T1, instruction fetch from the master 104 to the address 0x0000_0000 (Hexadecimal) is executed. At this time, the signal op_fetch signal indicating the instruction fetch becomes “H”. At the same time, the ready signal changes from “H” to “L”.

時刻T2において、スレーブ106からメモリ108に対してリードアクセスが発生する。   At time T2, a read access from the slave 106 to the memory 108 occurs.

時刻T3において、メモリ108からリードデータrdata1が出力され、スレーブ106がリードデータrdata1を受信する。このときの命令は、クリティカルパスの乗算命令”011”である。   At time T3, the read data rdata1 is output from the memory 108, and the slave 106 receives the read data rdata1. The instruction at this time is the critical path multiplication instruction “011”.

時刻T4において、スレーブ106からマスタ104に対してリードデータrdata2を出力する。それと同時に命令先読み回路120のAND回路522、セレクタ回路540、及びready信号が”H”となる(トリガーとなる)。   At time T4, the read data rdata2 is output from the slave 106 to the master 104. At the same time, the AND circuit 522, the selector circuit 540, and the ready signal of the instruction prefetch circuit 120 become “H” (trigger).

時刻T5において、命令先読み回路120のAND回路522の出力信号が”L”となり、命令先読み回路120のフリップフロップ回路512は”H”となるため、cri_flag信号も”H”となり、フリップフロップ回路514は0からカウントアップを開始する。詳細には、時刻T4において、AND回路522の”H”信号がトリガーパルスとなってカウント開始している。さらに、マスタ104は、次のアドレス0x0000_0004(Hexadecimal)に対する命令フェッチを出力する。   At time T5, the output signal of the AND circuit 522 of the instruction prefetch circuit 120 becomes “L”, and the flip-flop circuit 512 of the instruction prefetch circuit 120 becomes “H”, so that the cri_flag signal also becomes “H”, and the flip-flop circuit 514 Starts counting up from zero. Specifically, at time T4, the “H” signal of the AND circuit 522 is triggered to start counting. Further, the master 104 outputs an instruction fetch for the next address 0x0000_0004 (Hexadecimal).

時刻T6において、時刻T5でcri_flag信号が”H”になることにより、クロックマスク回路130のフリップフロップ回路610も”H”となり、クロックclk0信号(=クロックclk1信号)の立ち上がりに合わせて1サイクル(周期)ずつマスクしていく。通常のクロック周波数であるクロックclk1信号(クロックclk0信号)の周期は遅くなり、クリティカルパスを通っても誤動作を起こさないように、通常のクロック周波数の半分の速度に落としたクロックclk信号に変更される。   At time T6, when the cri_flag signal becomes “H” at time T5, the flip-flop circuit 610 of the clock mask circuit 130 also becomes “H”, and one cycle (= clock clk1 signal) follows the rising edge of the clock clk0 signal (= clock clk1 signal). (Period) masks one by one. The period of the clock clk1 signal (clock clk0 signal), which is the normal clock frequency, is delayed and changed to the clock clk signal that has been reduced to half the normal clock frequency so as not to cause a malfunction even if it passes through the critical path. The

時刻T7において、命令先読み回路120のフリップフロップ回路514は’d100(10進数の100)となり、命令先読み回路120のフリップフロップ回路512の入力信号は”L”となる。   At time T7, the flip-flop circuit 514 of the instruction prefetch circuit 120 becomes' d100 (decimal number 100), and the input signal of the flip-flop circuit 512 of the instruction prefetch circuit 120 becomes "L".

時刻T8において、命令先読み回路120のフリップフロップ回路512は”L”となるため、cri_flag信号も”L”となり、通常のクロック周波数の半分の速度に変更されたクロックclk信号は通常のクロック周波数に戻って動作する。   At time T8, since the flip-flop circuit 512 of the instruction prefetch circuit 120 becomes “L”, the cri_flag signal also becomes “L”, and the clock clk signal changed to half the normal clock frequency becomes the normal clock frequency. Work back.

次に、図8を参照して、クリティカルパス420を介したタイムチャート800を示す。   Next, referring to FIG. 8, a time chart 800 through the critical path 420 is shown.

タイムチャート800は、図4の回路のタイムチャートである。   A time chart 800 is a time chart of the circuit of FIG.

(経過1−1)時刻T1において、クロックclk信号の立ち上がりによりフリップフロップ回路402の信号Iが”1”に変化する。   (Proceeding 1-1) At time T1, the signal I of the flip-flop circuit 402 changes to “1” by the rise of the clock clk signal.

(経過1−2)時刻T2において、クロックclk信号の立ち上がりで信号Iがフリップフロップ回路402に保持される。   (Progress 1-2) At time T2, the signal I is held in the flip-flop circuit 402 at the rising edge of the clock clk signal.

(経過1−3)時刻T3において、信号IIが”1”に変化する。   (Progress 1-3) At time T3, the signal II changes to “1”.

(経過1−4)時刻T4において、信号IIIが”1”に変化する。   (Progress 1-4) At time T4, the signal III changes to “1”.

(経過1−5)時刻T5において、信号IVが”1”に変化する。   (Progress 1-5) At time T5, the signal IV changes to “1”.

(経過1−6)時刻T6において、信号Vが”1”に変化する。   (Progress 1-6) At time T6, the signal V changes to “1”.

(経過1−7)時刻T7において、信号VIが”1”に変化する。   (Progress 1-7) At time T7, the signal VI changes to “1”.

(経過1−8)時刻T8において、信号VIが”1”に変化するとき、クロックclk信号の立ち上がりエッジはないため、フリップフロップ回路402で保持したクロックclk信号の次の立ち上がりエッジはない。   (Progress 1-8) When the signal VI changes to “1” at time T8, since there is no rising edge of the clock clk signal, there is no next rising edge of the clock clk signal held by the flip-flop circuit 402.

(経過1−9)時刻T9において、クロックclk信号の立ち上がりで入力データを保持するのでフリップフロップ回路404は信号VIを保持する。   (Progress 1-9) At time T9, since the input data is held at the rising edge of the clock clk signal, the flip-flop circuit 404 holds the signal VI.

(経過1−10)時刻T10において、信号VIIが”1”と出力されるため、フリップフロップ回路402からフリップフロップ回路404までの信号伝搬時間が、クロックclk信号のクロック周波数の所定周期である1周期(1サイクル)以内に収まる。   (Progress 1-10) Since the signal VII is output as “1” at time T10, the signal propagation time from the flip-flop circuit 402 to the flip-flop circuit 404 is 1 which is a predetermined cycle of the clock frequency of the clock clk signal. Within a cycle (1 cycle).

このように上記従来技術では、クリティカルパス420を通る命令を先読みすることにより、クリティカルパス420を通るときのみクロック周波数の周波数を遅くすることができる。   As described above, in the conventional technique, the frequency of the clock frequency can be reduced only when passing through the critical path 420 by prefetching the instruction passing through the critical path 420.

次に、図9を参照して、上記従来技術において、分岐命令データの読み出しが指示された場合の作用を説明する。
ここで、上記のように分岐命令とは、割り込み命令、即ち、次に実行すべき命令をメモリから次に読み出すことを内容とする命令である。したがって、通常マスタから命令フェッチが実行された場合、そのアドレスはインクリメントされるが、分岐命令により一連の命令から離れたアドレスに制御が移ると命令アドレスは単なるインクリメントとならない。一例として、ARM926の命令フェッチでは、命令フェッチする場合、命令フェッチアドレスは0x0000_0010(Hexadecimal)の後0x0000_0014(Hexadecimal)のように+4されるが、分岐命令の場合は0x0000_0010(Hexadecimal)の後0xD000_0000(Hexadecimal)のように単なるインクリメントではなく離れたアドレスに制御が移る。
時刻T1において、マスタ104からアドレス0x0000_0010(Hexadecimal)に対する命令フェッチが実行される。このとき、命令フェッチを示す信号op_fetch信号は”H”となる。なお、同時にready信号は”H”から”L”に変化する。
Next, referring to FIG. 9, the operation when the reading of the branch instruction data is instructed in the above-described prior art will be described.
Here, as described above, the branch instruction is an interrupt instruction, that is, an instruction whose content is to read the next instruction to be executed next from the memory. Accordingly, when an instruction fetch is executed from the normal master, the address is incremented. However, when control is transferred to an address away from a series of instructions by a branch instruction, the instruction address is not simply incremented. As an example, in the instruction fetch of ARM926, when fetching an instruction, the instruction fetch address is +4 such as 0x0000_0014 (Hexadecimal) after 0x0000_0010 (Hexadecimal), but 0xD000_0000 (after 0x0000_0010 (Hexadecimal) for a branch instruction Control is transferred to a distant address, not just an increment, as in (Hexadecimal).
At time T1, instruction fetch from the master 104 to the address 0x0000_0010 (Hexadecimal) is executed. At this time, the signal op_fetch signal indicating the instruction fetch becomes “H”. At the same time, the ready signal changes from “H” to “L”.

時刻T2において、スレーブ106からメモリ108に対してリードアクセスが発生する。   At time T2, a read access from the slave 106 to the memory 108 occurs.

時刻T3において、メモリ108からリードデータrdata1が出力され、スレーブ106がリードデータrdata1を受信する。このときの命令は、分岐命令”100”である。   At time T3, the read data rdata1 is output from the memory 108, and the slave 106 receives the read data rdata1. The instruction at this time is a branch instruction “100”.

時刻T4において、スレーブ106からマスタ104に対してリードデータrdata2を出力する。それと同時にready信号が”H”となる。
時刻T5において、マスタ104は、次のアドレス0x0000_0014(Hexadecimal)に対する命令フェッチを出力する。このとき、命令フェッチを示す信号op_fetch信号は”H”となる。なお、同時にready信号は”H”から”L”に変化する。
At time T4, the read data rdata2 is output from the slave 106 to the master 104. At the same time, the ready signal becomes “H”.
At time T5, the master 104 outputs an instruction fetch for the next address 0x0000_0014 (Hexadecimal). At this time, the signal op_fetch signal indicating the instruction fetch becomes “H”. At the same time, the ready signal changes from “H” to “L”.

時刻T6において、スレーブ106からメモリ108に対してリードアクセスが発生する。   At time T6, read access from the slave 106 to the memory 108 occurs.

時刻T7において、メモリ108からリードデータrdata1が出力され、スレーブ106がリードデータrdata1を受信する。このときの命令は、クリティカルパスの乗算命令”011”である。   At time T7, the read data rdata1 is output from the memory 108, and the slave 106 receives the read data rdata1. The instruction at this time is the critical path multiplication instruction “011”.

時刻T8において、スレーブ106からマスタ104に対してリードデータrdata2を出力する。それと同時に命令先読み回路120のAND回路522、セレクタ回路540、及びready信号が”H”となる(トリガーとなる)。   At time T8, the read data rdata2 is output from the slave 106 to the master 104. At the same time, the AND circuit 522, the selector circuit 540, and the ready signal of the instruction prefetch circuit 120 become “H” (trigger).

時刻T9において、命令先読み回路120のAND回路522の出力信号が”L”となり、命令先読み回路120のフリップフロップ回路512は”H”となるため、cri_flag信号も”H”となり、フリップフロップ回路514は0からカウントアップを開始する。詳細には、時刻T8において、AND回路522の”H”信号がトリガーパルスとなってカウント開始している。さらに、マスタ104は、次のアドレス0xD000_0000(Hexadecimal)に対する命令フェッチを出力する。このアドレスは、時刻T1でマスタ104が受け取った分岐命令により分岐したアドレスである。マスタ104は、分岐命令を実行することにより、分岐命令の次の命令である0x0000_0014(Hexadecimal)の命令は実行しない。この命令0x0000_0014(Hexadecimal)は分岐命令から戻ってきた際に再度命令フェッチすることにより実行される。   At time T9, the output signal of the AND circuit 522 of the instruction prefetch circuit 120 becomes “L”, and the flip-flop circuit 512 of the instruction prefetch circuit 120 becomes “H”, so that the cri_flag signal also becomes “H”, and the flip-flop circuit 514 Starts counting up from zero. Specifically, at time T8, the “H” signal of the AND circuit 522 becomes a trigger pulse and starts counting. Further, the master 104 outputs an instruction fetch for the next address 0xD000_0000 (Hexadecimal). This address is an address branched by the branch instruction received by the master 104 at time T1. By executing the branch instruction, the master 104 does not execute the instruction 0x0000_0014 (Hexadecimal) that is the instruction next to the branch instruction. This instruction 0x0000_0014 (Hexadecimal) is executed by fetching the instruction again when returning from the branch instruction.

時刻T10において、時刻T9でcri_flag信号が”H”になることにより、クロックマスク回路130のフリップフロップ回路610も”H”となり、クロックclk0信号(=クロックclk1信号)の立ち上がりに合わせて1サイクル(周期)ずつマスクしていく。通常のクロック周波数であるクロックclk1信号(クロックclk0信号)の周期は遅くなり、クリティカルパスを通っても誤動作を起こさないように、通常のクロック周波数の半分の速度に落としたクロックclk信号に変更される。   At time T10, when the cri_flag signal becomes “H” at time T9, the flip-flop circuit 610 of the clock mask circuit 130 also becomes “H”, and one cycle (= clock clk1 signal) follows the rising edge of the clock clk0 signal (= clock clk1 signal). (Period) masks one by one. The period of the clock clk1 signal (clock clk0 signal), which is the normal clock frequency, is delayed and changed to the clock clk signal that has been reduced to half the normal clock frequency so as not to cause a malfunction even if it passes through the critical path. The

時刻T11において、クロック周波数を遅くしても、分岐命令によりクリティカルパスがある乗算命令は実行されないため、LSI全体としてみるとクロック周波数のみ遅くなる。したがって、LSI全体の性能が落ちるという問題がある。   Even at the time T11, even if the clock frequency is slowed down, the multiplication instruction with a critical path is not executed by the branch instruction, so that only the clock frequency slows down as a whole LSI. Therefore, there is a problem that the performance of the entire LSI is degraded.

時刻T13において、アドレス0x0000_0010(Hexadecimal)に対する分岐命令が完了し、マスタ104は、次のアドレス0x0000_0014(Hexadecimal)に対する命令フェッチを出力する。なお、同時にready信号は”H”から”L”に変化する。   At time T13, the branch instruction for the address 0x0000_0010 (Hexadecimal) is completed, and the master 104 outputs an instruction fetch for the next address 0x0000_0014 (Hexadecimal). At the same time, the ready signal changes from “H” to “L”.

時刻T14において、スレーブ106からメモリ108に対してリードアクセスが発生する。   At time T14, a read access from the slave 106 to the memory 108 occurs.

時刻T15において、命令先読み回路120のフリップフロップ回路514は’d100(10進数の100)となり、命令先読み回路120のフリップフロップ回路512の入力信号セレクタ540の出力は”L”となる。それと同時に、メモリ108からリードデータrdata1が出力され、スレーブ106がリードデータrdata1を受信する。このときの命令は、クリティカルパスの乗算命令”011”である。   At time T15, the flip-flop circuit 514 of the instruction prefetch circuit 120 becomes' d100 (decimal number 100), and the output of the input signal selector 540 of the flip-flop circuit 512 of the instruction prefetch circuit 120 becomes "L". At the same time, read data rdata1 is output from the memory 108, and the slave 106 receives the read data rdata1. The instruction at this time is the critical path multiplication instruction “011”.

時刻T16において、命令先読み回路120のフリップフロップ回路512は”L”となるため、cri_flag信号も”L”となり、通常のクロック周波数の半分の速度に変更されたクロックclk信号は通常のクロック周波数に戻って動作する。また、スレーブ106からマスタ104に対してリードデータrdata2を出力する。それと同時に命令先読み回路120のAND回路522、セレクタ回路540、及びready信号が”H”となる(トリガーとなる)。   At time T16, since the flip-flop circuit 512 of the instruction prefetch circuit 120 becomes “L”, the cri_flag signal also becomes “L”, and the clock clk signal changed to half the normal clock frequency becomes the normal clock frequency. Work back. Further, read data rdata2 is output from the slave 106 to the master 104. At the same time, the AND circuit 522, the selector circuit 540, and the ready signal of the instruction prefetch circuit 120 become “H” (trigger).

時刻T17において、命令先読み回路120のAND回路522の出力信号が”L”となり、命令先読み回路120のフリップフロップ回路512は”H”となるため、cri_flag信号も”H”となり、フリップフロップ回路514は0からカウントアップを開始する。詳細には、時刻T16において、AND回路522の”H”信号がトリガーパルスとなってカウント開始している。
このように、分岐命令を実行している時刻T9から時刻T16の期間に、クロック周波数が遅くなり、LSI全体の性能が低下することとなる。
At time T17, the output signal of the AND circuit 522 of the instruction prefetch circuit 120 becomes “L” and the flip-flop circuit 512 of the instruction prefetch circuit 120 becomes “H”, so that the cri_flag signal also becomes “H”, and the flip-flop circuit 514 Starts counting up from zero. Specifically, at time T16, the “H” signal of the AND circuit 522 becomes a trigger pulse and starts counting.
Thus, during the period from time T9 to time T16 when the branch instruction is executed, the clock frequency is slowed down, and the performance of the entire LSI is degraded.

(第1実施の形態)
次に、本願発明の第1の実施の形態を説明する。
(First embodiment)
Next, a first embodiment of the present invention will be described.

(第1実施の形態の構成)
図10に、第1の実施の形態における命令先読み回路120の回路図を示す。なお、上記の従来技術の命令先読み回路120の回路を示す構成図と、同一の構成には、同一の符号を付して、その説明を省略する。
(Configuration of the first embodiment)
FIG. 10 shows a circuit diagram of the instruction prefetch circuit 120 in the first embodiment. The same components as those in the above-described prior art instruction prefetch circuit 120 are designated by the same reference numerals, and the description thereof is omitted.

第1の実施の形態における命令先読み回路120には、上記の従来技術の命令先読み回路120の回路に図10の点線で囲まれた命令先読み付加回路121を付している。   The instruction prefetch circuit 120 in the first embodiment is provided with an instruction prefetch addition circuit 121 surrounded by a dotted line in FIG. 10 in addition to the circuit of the prior art instruction prefetch circuit 120 described above.

第1の実施の形態における命令先読み付加回路121のフリップフロップ回路730は、クロックclk1信号の立ち上がりエッジで動作する。   The flip-flop circuit 730 of the instruction prefetch addition circuit 121 in the first embodiment operates at the rising edge of the clock clk1 signal.

AND回路700には、AND回路520の出力信号、外部からリードデータrdata1の10ビット目の信号、外部からリードデータrdata1の9ビット目をインバータ回路711で反転した信号、及び外部からのリードデータrdata1の8ビット目をインバータ回路710で反転した信号を入力している。よって、AND回路700は、リードデータrdata1に、分岐命令データ”100”が存在する場合に、信号(H)を出力する。   In the AND circuit 700, an output signal of the AND circuit 520, a 10th bit signal of the read data rdata1 from the outside, a signal obtained by inverting the 9th bit of the read data rdata1 from the outside by the inverter circuit 711, and a read data rdata1 from the outside A signal obtained by inverting the eighth bit of the inverter circuit 710 is input. Therefore, the AND circuit 700 outputs a signal (H) when the branch instruction data “100” exists in the read data rdata1.

またAND回路700の出力信号端子は、OR回路740に接続され、OR回路740のもう一方の入力端子にはインバータ回路712の出力信号端子が接続されている。   The output signal terminal of the AND circuit 700 is connected to the OR circuit 740, and the output signal terminal of the inverter circuit 712 is connected to the other input terminal of the OR circuit 740.

インバータ回路712は、フリップフロップ回路730の出力信号が0の時に“H”となる信号が入力される。   The inverter circuit 712 receives a signal that becomes “H” when the output signal of the flip-flop circuit 730 is zero.

OR回路740の出力信号は、セレクタ回路720のセレクト信号に接続される。また、セレクタ回路720には、フリップフロップ回路730の出力信号及びその出力に+1した信号が接続されている。   The output signal of the OR circuit 740 is connected to the select signal of the selector circuit 720. The selector circuit 720 is connected to an output signal of the flip-flop circuit 730 and a signal obtained by adding +1 to the output signal.

セレクタ回路721には、セレクタ回路720の出力、フリップフロップ回路730の出力信号が5の時に“H”となる信号及び3‘b000(3ビットのバイナリ(2進数)の”000”)の各端子が接続されている。セレクタ回路721のセレクト信号はフリップフロップ回路730の出力信号が5の時に“H”となる信号である。   In the selector circuit 721, each of the output of the selector circuit 720, a signal that becomes “H” when the output signal of the flip-flop circuit 730 is 5, and 3′b000 (3-bit binary (binary) “000”) terminals Is connected. The select signal of the selector circuit 721 is a signal that becomes “H” when the output signal of the flip-flop circuit 730 is “5”.

また、フリップフロップ回路730の入力端子に、セレクタ回路721の出力端子が接続されている。そこで、セレクタ回路721に入力されるセレクト信号が“H”のときには、セレクタ回路721の出力信号は3‘b000となる。また、セレクタ回路721に入力されるセレクト信号が“L”のときには、セレクタ回路721の出力信号はセレクタ回路720の出力信号が出力される。すなわち、セレクタ回路721に入力されるセレクト信号が“L”かつセレクタ回路720に入力されるセレクト信号が“H”のときには、セレクタ回路721の出力信号はフリップフロップ730の出力に+1した信号が出力され、セレクタ回路721に入力されるセレクト信号が“L”かつセレクタ回路720に入力されるセレクト信号が“L”のときには、セレクタ回路721の出力信号はフリップフロップ730の出力信号が出力される。なお、フリップフロップ730の初期値は“0”である。   Further, the output terminal of the selector circuit 721 is connected to the input terminal of the flip-flop circuit 730. Therefore, when the select signal input to the selector circuit 721 is “H”, the output signal of the selector circuit 721 is 3′b000. When the select signal input to the selector circuit 721 is “L”, the output signal of the selector circuit 721 is the output signal of the selector circuit 720. That is, when the select signal input to the selector circuit 721 is “L” and the select signal input to the selector circuit 720 is “H”, the output signal of the selector circuit 721 is a signal obtained by adding 1 to the output of the flip-flop 730. When the select signal input to the selector circuit 721 is “L” and the select signal input to the selector circuit 720 is “L”, the output signal of the flip-flop 730 is output as the output signal of the selector circuit 721. Note that the initial value of the flip-flop 730 is “0”.

インバータ回路713には、フリップフロップ回路730の出力信号が5の時に“H”となる信号が入力され、AND回路701に接続されている。AND回路701は、上記従来の命令先読み回路のAND回路524の代わりとなるが、AND回路701は入力にインバータ回路713の出力信号が入力されること以外は、AND回路524と同様の構成である。   A signal that becomes “H” when the output signal of the flip-flop circuit 730 is 5 is input to the inverter circuit 713 and connected to the AND circuit 701. The AND circuit 701 replaces the AND circuit 524 of the conventional instruction prefetch circuit, but the AND circuit 701 has the same configuration as the AND circuit 524 except that the output signal of the inverter circuit 713 is input to the input. .

(第1実施の形態の作用)
次に、第1の実施の形態の作用を説明する。図11に、本願発明の第1の実施の形態における分岐命令後のクリティカルパス命令のタイムチャートを示す。
(Operation of the first embodiment)
Next, the operation of the first embodiment will be described. FIG. 11 shows a time chart of the critical path instruction after the branch instruction in the first embodiment of the present invention.

本願発明の第1の実施の形態において、乗算命令時にクリティカルパスを通ると仮定する(前提条件)。また、マスタ104は、リードデータrdata2(分岐命令)を受け取った後、5サイクル後に分岐命令を実行すると仮定する。
時刻T1において、マスタ104からアドレス0x0000_0010(Hexadecimal)に対する命令フェッチが実行される。このとき、命令フェッチを示す信号op_fetch信号は”H”となる。このように、マスタ104により命令フェッチが実行されたので、スレーブ106により、この命令に従うため、同時にready信号は”H”から”L”に変化する。
In the first embodiment of the present invention, it is assumed that a critical path is passed during a multiplication instruction (precondition). Further, it is assumed that the master 104 executes the branch instruction after 5 cycles after receiving the read data rdata2 (branch instruction).
At time T1, instruction fetch from the master 104 to the address 0x0000_0010 (Hexadecimal) is executed. At this time, the signal op_fetch signal indicating the instruction fetch becomes “H”. As described above, since the instruction fetch is executed by the master 104, the ready signal simultaneously changes from “H” to “L” in order to follow this instruction by the slave 106.

時刻T2において、スレーブ106からメモリ108に対してリードアクセスが発生する。   At time T2, a read access from the slave 106 to the memory 108 occurs.

時刻T3において、メモリ108からリードデータrdata1が出力され、スレーブ106がリードデータrdata1を受信する。このときの命令データが、分岐命令データ”100”であるとする。   At time T3, the read data rdata1 is output from the memory 108, and the slave 106 receives the read data rdata1. It is assumed that the instruction data at this time is branch instruction data “100”.

時刻T4において、スレーブ106は、マスタ104及び命令先読み回路120に対してリードデータrdata2を出力する。このようにスレーブ106は、マスタ104による命令フェッチを実行したので、次の命令フェッチが可能にするため、ready信号を”H”とする。上記のように、リードデータrdata2の10〜8ビット目はそれぞれ、分岐命令データの1、0、0であるので、当該10ビット目の1、9ビット目の0がインバータ711で反転し、8ビット目の0がインバータ710で反転して、命令先読み回路120のAND回路700に入力され、AND回路700の出力信号も“H”となる。
時刻T5において、マスタ104は、次のアドレス0x0000_0014(Hexadecimal)に対する命令フェッチを出力する。このとき、命令フェッチを示す信号op_fetch信号は”H”のままである。なお、上記のようにready信号は”H”から”L”に変化される。
At time T4, the slave 106 outputs read data rdata2 to the master 104 and the instruction prefetch circuit 120. Thus, since the slave 106 has executed the instruction fetch by the master 104, the ready signal is set to “H” in order to enable the next instruction fetch. As described above, since the 10th to 8th bits of the read data rdata2 are 1, 0 and 0 of the branch instruction data, the 1st and 9th bits of the 10th bit are inverted by the inverter 711, and 8th The bit 0 is inverted by the inverter 710 and input to the AND circuit 700 of the instruction prefetch circuit 120, and the output signal of the AND circuit 700 also becomes “H”.
At time T5, the master 104 outputs an instruction fetch for the next address 0x0000_0014 (Hexadecimal). At this time, the signal op_fetch signal indicating the instruction fetch remains “H”. As described above, the ready signal is changed from “H” to “L”.

ところで、このとき、フリップフロップ回路730の信号は、0であり、5ではないので、Lの信号がセレクト信号としてセレクタ721に入力される。また、+1回路で+1された信号がセレクタ回路720の1(H)側に入力されている。そして、上記のように、AND回路700の出力信号が“H”となることにより、OR回路740を介してセレクタ回路720のセレクト信号が“H”となり、+1された信号がセレクタ回路720、セレクタ回路721を介して、フリップフロップ回路730に入力され、フリップフロップ回路730は、初期値“0”からカウントアップを開始する。   At this time, since the signal of the flip-flop circuit 730 is 0 and not 5, the L signal is input to the selector 721 as the select signal. Further, the signal added by +1 circuit is input to the 1 (H) side of the selector circuit 720. Then, as described above, when the output signal of the AND circuit 700 becomes “H”, the select signal of the selector circuit 720 becomes “H” via the OR circuit 740, and the +1 signal becomes the selector circuit 720, the selector The signal is input to the flip-flop circuit 730 via the circuit 721, and the flip-flop circuit 730 starts counting up from the initial value “0”.

時刻T6において、スレーブ106からメモリ108に対してリードアクセスが発生する。なお、命令フェッチを示す信号op_fetch信号は”H”のままである。   At time T6, read access from the slave 106 to the memory 108 occurs. Note that the signal op_fetch signal indicating the instruction fetch remains “H”.

時刻T7において、メモリ108からリードデータrdata1が出力され、スレーブ106がリードデータrdata1を受信する。このときの命令が、クリティカルパスの乗算命令データ”011”であるとする。   At time T7, the read data rdata1 is output from the memory 108, and the slave 106 receives the read data rdata1. It is assumed that the instruction at this time is critical path multiplication instruction data “011”.

時刻T8において、スレーブ106からマスタ104及び命令先読み回路120に対してリードデータrdata2(10〜8ビット目がそれぞれ、0、1、1である)を出力し、上記のように、ready信号は”L”から”H”に変化される。   At time T8, the slave 106 outputs the read data rdata2 (the 10th to 8th bits are 0, 1, 1) to the master 104 and the instruction prefetch circuit 120, and the ready signal is “ It is changed from “L” to “H”.

リードデータrdata2の10ビット目(0)がインバータ530で反転し、9ビット目(1)、8ビット目(1)がそれぞれ命令先読み回路120のAND回路522に入力され、また、上記のように、命令フェッチを示す信号op_fetch信号は”H”のままであり、ready信号も”H”であるので、AND回路522の出力信号が”H”となる(トリガーとなる)。これにより、セレクト回路540から出力信号(H)が命令先読み回路120のフリップフロップ回路512に入力される。   The 10th bit (0) of the read data rdata2 is inverted by the inverter 530, and the 9th bit (1) and the 8th bit (1) are respectively input to the AND circuit 522 of the instruction prefetch circuit 120, and as described above Since the signal op_fetch signal indicating instruction fetch remains “H” and the ready signal is also “H”, the output signal of the AND circuit 522 becomes “H” (trigger). As a result, the output signal (H) is input from the select circuit 540 to the flip-flop circuit 512 of the instruction prefetch circuit 120.

このようにセレクト回路540から出力信号(H)が命令先読み回路120のフリップフロップ回路512に入力されたので、フリップフロップ回路512の出力信号は”H”となる。このため、時刻T9直後にcri_flag信号が”H”となり、フリップフロップ回路514は0からカウントアップを開始する。   Thus, since the output signal (H) is input from the select circuit 540 to the flip-flop circuit 512 of the instruction prefetch circuit 120, the output signal of the flip-flop circuit 512 becomes “H”. Therefore, the cri_flag signal becomes “H” immediately after time T9, and the flip-flop circuit 514 starts counting up from zero.

ところで、上記のように時刻T4で0からクロック信号clk1の入力毎にカウントアップし始めたフリップフロップ回路730の出力は、時刻T9に至って“5”となるため、当該信号が5のとき信号(H)を出力する回路から信号(H)が出力され、セレクタ回路721のセレクト信号は“H”となり、セレクト回路721から0(3’b000)が出力され、フリップフロップ730はカウントを停止され、かつ、インバータ回路713の出力は“L”となる。インバータ回路713の出力が“L”となることによりAND回路701の出力も“L”となり、セレクタ回路540の出力も“L”となる。それと同時に、フリップフロップ回路512の入力信号は“L”となる。   By the way, as described above, the output of the flip-flop circuit 730 that starts counting up from 0 at time T4 every time the clock signal clk1 is input becomes “5” at time T9. The signal (H) is output from the circuit that outputs H), the select signal of the selector circuit 721 becomes “H”, 0 (3′b000) is output from the select circuit 721, and the flip-flop 730 stops counting, The output of the inverter circuit 713 is “L”. When the output of the inverter circuit 713 becomes “L”, the output of the AND circuit 701 also becomes “L”, and the output of the selector circuit 540 also becomes “L”. At the same time, the input signal of the flip-flop circuit 512 becomes “L”.

一方、マスタ104は、分岐命令データに応じて次のアドレス0xD000_0000(Hexadecimal)に対する命令フェッチを出力する。このアドレスは、時刻T1でマスタ104が発行した命令フェッチアドレスの分岐命令により分岐したアドレスである。マスタ104は、分岐命令を実行するので、分岐命令の次の命令である0x0000_0014(Hexadecimal)の命令は実行しない。   On the other hand, the master 104 outputs an instruction fetch for the next address 0xD000_0000 (Hexadecimal) according to the branch instruction data. This address is an address branched by the branch instruction of the instruction fetch address issued by the master 104 at time T1. Since the master 104 executes the branch instruction, it does not execute the instruction 0x0000_0014 (Hexadecimal) that is the instruction next to the branch instruction.

上記のように、時刻T9でcri_flag信号が”H”になったので、クロックマスク回路130のフリップフロップ回路610も”H”となり、クロックclk0信号(=クロックclk1信号)の立ち上がりに合わせて1サイクル(周期)ずつマスクすることを開始したが、上記のように、時刻T9直後でフリップフロップ回路512の入力信号は“L”となるため、時刻T10直後において、cri_flag信号も”L”となる。また、時刻T9直後でセレクタ回路721へのセレクト信号が“H”となったため、セレクト回路721から0が出力されて、フリップフロップ回路730の出力は“0”となる。   As described above, since the cri_flag signal becomes “H” at time T9, the flip-flop circuit 610 of the clock mask circuit 130 also becomes “H”, and one cycle follows the rising of the clock clk0 signal (= clock clk1 signal). As described above, since the input signal to the flip-flop circuit 512 is “L” immediately after time T9, the cri_flag signal is also “L” immediately after time T10. Since the select signal to the selector circuit 721 becomes “H” immediately after time T9, 0 is output from the select circuit 721 and the output of the flip-flop circuit 730 is “0”.

時刻T11において、分岐命令の実行により乗算命令は実行されないため(クリティカルパスを通過しない)、クロック周波数を低下させる必要はない。この点、まず、時刻T8直後に、AND回路522の出力がHとなり、時刻T9直後にcri_flag信号がHとなるが、フリップフロップ730の出力が5となり、5のとき信号(H)を出力する回路から信号(H)が出力され、インバータ713で反転され、AND回路701に入力され、AND回路701の出力がLとなり、フリップフロップ回路512に入力され、フリップフロップ回路512のcri_flag信号も”L”となり、フリップフロップ610が停止し、クロック周波数は元に戻る。   At time T11, the multiplication instruction is not executed due to the execution of the branch instruction (does not pass through the critical path), so there is no need to reduce the clock frequency. In this regard, first, immediately after time T8, the output of the AND circuit 522 becomes H, and immediately after time T9, the cri_flag signal becomes H, but the output of the flip-flop 730 becomes 5, and when it is 5, the signal (H) is output. A signal (H) is output from the circuit, inverted by the inverter 713, input to the AND circuit 701, the output of the AND circuit 701 becomes L, input to the flip-flop circuit 512, and the cri_flag signal of the flip-flop circuit 512 is also “L”. ", The flip-flop 610 is stopped, and the clock frequency is restored.

一方、メモリ108からリードデータrdata1が出力され、スレーブ106がリードデータrdata1を受信する。   On the other hand, read data rdata1 is output from the memory 108, and the slave 106 receives the read data rdata1.

時刻T12において、スレーブ106からマスタ104に対してリードデータrdata2を出力する。それと同時にready信号が”H”となる。以降、クリティカルパスによるクロック周波数変更は行われずに、時刻T9において指定され、読み出された命令(命令コード000(ロード))を通常の条件で実行する。
また、図12に本願発明の第1の実施の形態におけるクリティカルパス命令後の分岐命令のタイムチャートを示す。
At time T <b> 12, the read data rdata <b> 2 is output from the slave 106 to the master 104. At the same time, the ready signal becomes “H”. Thereafter, the clock frequency is not changed by the critical path, and the instruction (instruction code 000 (load)) designated and read at time T9 is executed under normal conditions.
FIG. 12 shows a time chart of the branch instruction after the critical path instruction in the first embodiment of the present invention.

時刻T1において、マスタ104からアドレス0x0000_0010(Hexadecimal)に対する命令フェッチが実行される。このとき、命令フェッチを示す信号op_fetch信号は”H”となる。なお、同時にready信号は”H”から”L”に変化する。   At time T1, instruction fetch from the master 104 to the address 0x0000_0010 (Hexadecimal) is executed. At this time, the signal op_fetch signal indicating the instruction fetch becomes “H”. At the same time, the ready signal changes from “H” to “L”.

時刻T2において、スレーブ106からメモリ108に対してリードアクセスが発生する。   At time T2, a read access from the slave 106 to the memory 108 occurs.

時刻T3において、メモリ108からリードデータrdata1が出力され、スレーブ106がリードデータrdata1を受信する。このときの命令は、クリティカルパスの乗算命令”011”であるとする。   At time T3, the read data rdata1 is output from the memory 108, and the slave 106 receives the read data rdata1. The instruction at this time is assumed to be a critical path multiplication instruction “011”.

時刻T4において、スレーブ106からマスタ104に対してリードデータrdata2を出力する。それと同時に命令先読み回路120のAND回路522、セレクタ回路540、及びready信号が”H”となる(トリガーとなる)。   At time T4, the read data rdata2 is output from the slave 106 to the master 104. At the same time, the AND circuit 522, the selector circuit 540, and the ready signal of the instruction prefetch circuit 120 become “H” (trigger).

時刻T5において、命令先読み回路120のAND回路522の出力信号が”L”となり、命令先読み回路120のフリップフロップ回路512は”H”となるため、cri_flag信号も”H”となり、フリップフロップ回路514は0からカウントアップを開始する。詳細には、時刻T4において、AND回路522の”H”信号がトリガーパルスとなってカウント開始している。さらに、マスタ104は、次のアドレス0x0000_0014(Hexadecimal)に対する命令フェッチを出力する。このとき、命令フェッチを示す信号op_fetch信号は”H”となる。なお、同時にready信号は”H”から”L”に変化する。   At time T5, the output signal of the AND circuit 522 of the instruction prefetch circuit 120 becomes “L”, and the flip-flop circuit 512 of the instruction prefetch circuit 120 becomes “H”, so that the cri_flag signal also becomes “H”, and the flip-flop circuit 514 Starts counting up from zero. Specifically, at time T4, the “H” signal of the AND circuit 522 is triggered to start counting. Further, the master 104 outputs an instruction fetch for the next address 0x0000_0014 (Hexadecimal). At this time, the signal op_fetch signal indicating the instruction fetch becomes “H”. At the same time, the ready signal changes from “H” to “L”.

時刻T6において、時刻T5でcri_flag信号が”H”になることにより、クロックマスク回路130のフリップフロップ回路610も”H”となり、クロックclk0信号(=クロックclk1信号)の立ち上がりに合わせて1サイクル(周期)ずつマスクしていく。通常のクロック周波数であるクロックclk1信号(クロックclk0信号)の周期は遅くなり、クリティカルパスを通っても誤動作を起こさないように、通常のクロック周波数の半分の速度に落としたクロックclk信号に変更される。また、スレーブ106からメモリ108に対してリードアクセスが発生する。   At time T6, when the cri_flag signal becomes “H” at time T5, the flip-flop circuit 610 of the clock mask circuit 130 also becomes “H”, and one cycle (= clock clk1 signal) follows the rising edge of the clock clk0 signal (= clock clk1 signal). (Period) masks one by one. The period of the clock clk1 signal (clock clk0 signal), which is the normal clock frequency, is delayed and changed to the clock clk signal that has been reduced to half the normal clock frequency so as not to cause a malfunction even if it passes through the critical path. The Also, read access from the slave 106 to the memory 108 occurs.

時刻T7において、メモリ108からリードデータrdata1が出力され、スレーブ106がリードデータrdata1を受信する。このときの命令は、分岐命令”100”であるとする。また、それと同時にクロックマスク回路130のフリップフロップ回路610は”L”となり、クロックclk0信号(=クロックclk1信号)の立ち上がりに合わせて1サイクル(周期)ずつclk信号をマスクしていく。   At time T7, the read data rdata1 is output from the memory 108, and the slave 106 receives the read data rdata1. It is assumed that the instruction at this time is a branch instruction “100”. At the same time, the flip-flop circuit 610 of the clock mask circuit 130 becomes “L”, and the clk signal is masked one cycle (period) at the rising edge of the clock clk0 signal (= clock clk1 signal).

時刻T8において、スレーブ106からマスタ104に対してリードデータrdata2を出力する。それと同時にready信号が”H”となる。また、命令先読み回路120のAND回路700も“H”となる。
時刻T9において、マスタ104は、次のアドレス0x0000_0018(Hexadecimal)に対する命令フェッチを出力する。このとき、命令フェッチを示す信号op_fetch信号は”H”となる。なお、同時にready信号は”H”から”L”に変化する。また、フリップフロップ回路730は、AND回路700が“H”となることにより、セレクタ回路720のセレクト信号が“H”、セレクタ回路721のセレクト信号が“L”であるため、初期値“0”からカウントアップを開始する。
At time T8, the read data rdata2 is output from the slave 106 to the master 104. At the same time, the ready signal becomes “H”. Further, the AND circuit 700 of the instruction prefetch circuit 120 is also set to “H”.
At time T9, the master 104 outputs an instruction fetch for the next address 0x0000_0018 (Hexadecimal). At this time, the signal op_fetch signal indicating the instruction fetch becomes “H”. At the same time, the ready signal changes from “H” to “L”. Further, the flip-flop circuit 730 has an initial value “0” because the select signal of the selector circuit 720 is “H” and the select signal of the selector circuit 721 is “L” when the AND circuit 700 becomes “H”. Start counting up.

時刻T10において、スレーブ106からメモリ108に対してリードアクセスが発生する。   At time T10, read access from the slave 106 to the memory 108 occurs.

時刻T11において、メモリ108からリードデータrdata1が出力され、スレーブ106がリードデータrdata1を受信する。このときの命令は、ロード命令”000”であるとする。   At time T11, the read data rdata1 is output from the memory 108, and the slave 106 receives the read data rdata1. The instruction at this time is assumed to be a load instruction “000”.

時刻T12において、スレーブ106からマスタ104に対してリードデータrdata2を出力する。それと同時にready信号が”H”となる。   At time T <b> 12, the read data rdata <b> 2 is output from the slave 106 to the master 104. At the same time, the ready signal becomes “H”.

時刻T13において、マスタ104は、次のアドレス0xD000_0004(Hexadecimal)に対する命令フェッチを出力する。このアドレスは、時刻T5
でマスタ104が発行した命令フェッチアドレスの分岐命令により分岐したアドレスである。マスタ104は、分岐命令を実行することにより、分岐命令の次の命令である0x0000_0018(Hexadecimal)の命令は実行しない。
At time T13, the master 104 outputs an instruction fetch for the next address 0xD000_0004 (Hexadecimal). This address is at time T5
This is the address branched by the branch instruction of the instruction fetch address issued by the master 104. By executing the branch instruction, the master 104 does not execute the instruction 0x0000_0018 (Hexadecimal) that is the instruction next to the branch instruction.

時刻T14において、フリップフロップ回路730の出力は“5”となるため、セレクタ回路721のセレクト信号は“H”となり、インバータ回路713の出力は“L”となる。インバータ回路713の出力が“L”となることによりAND回路701の出力も“L”となり、セレクタ回路540の出力も“L”となる。それと同時に、フリップフロップ回路512の入力信号は“L”となる。   At time T14, since the output of the flip-flop circuit 730 becomes “5”, the select signal of the selector circuit 721 becomes “H” and the output of the inverter circuit 713 becomes “L”. When the output of the inverter circuit 713 becomes “L”, the output of the AND circuit 701 also becomes “L”, and the output of the selector circuit 540 also becomes “L”. At the same time, the input signal of the flip-flop circuit 512 becomes “L”.

時刻T15において、時刻T14でフリップフロップ回路512の入力信号は“L”となるため、cri_flag信号も”L”となる。また、時刻T14でセレクタ回路721のセレクト信号が“H”となるため、フリップフロップ回路730の出力は“0”となる。   At time T15, since the input signal of the flip-flop circuit 512 is “L” at time T14, the cri_flag signal is also “L”. At time T14, since the select signal of the selector circuit 721 becomes “H”, the output of the flip-flop circuit 730 becomes “0”.

時刻T16において、マスタ104は、分岐命令を実行しているため、クリティカルパスがある乗算命令は実行していない。したがって、クロック周波数を遅くする必要もないため、フリップフロップ回路514のカウントアップは停止し、クロック周波数は元に戻る。以降、クリティカルパスによるクロック周波数変更は行われずに、通常の動作を行う。
以上説明したように、本願発明の第1の実施の形態によれば、クリティカルパス命令前後に分岐命令がある場合でも、分岐命令を実行する際にはクロック周波数を元に戻して命令を実行するため、分岐命令を実行している期間は、通常のクロック周波数で動作することとなり、LSI全体の性能低下を防ぐことが出来る。この結果、マスタの処理時間の低減、及びLSI全体の性能向上が期待できる。
At time T16, since the master 104 executes the branch instruction, the multiplication instruction with the critical path is not executed. Therefore, since it is not necessary to slow down the clock frequency, the count-up of the flip-flop circuit 514 is stopped and the clock frequency is restored. Thereafter, normal operation is performed without changing the clock frequency by the critical path.
As described above, according to the first embodiment of the present invention, even when there are branch instructions before and after the critical path instruction, when executing the branch instruction, the instruction is executed with the clock frequency restored. Therefore, during the period in which the branch instruction is executed, the operation is performed at a normal clock frequency, and the performance of the entire LSI can be prevented from being deteriorated. As a result, the master processing time can be reduced and the performance of the entire LSI can be improved.

(第2実施形態)
(第2実施形態の構成)
図13に本願発明の第2の実施の形態における構成図を示すが、上記従来技術のマイクロコントローラ100を示す構成図と同一の構成には同一の符号を付してその説明を省略する。
(Second Embodiment)
(Configuration of Second Embodiment)
FIG. 13 shows a configuration diagram according to the second embodiment of the present invention. The same components as those in the above-described prior art microcontroller 100 are designated by the same reference numerals and their description is omitted.

マイクロコントローラ100は、アドレス150(addr)を、マスタ104から出力し、スレーブ106へ入力する。
図14に本願発明の第2の実施の形態における命令先読み回路120の回路図を示す。なお、図10の第1の実施の形態における命令先読み回路120の回路を示す構成図と、同一の構成には、同一の符号を付す。
The microcontroller 100 outputs the address 150 (addr) from the master 104 and inputs it to the slave 106.
FIG. 14 is a circuit diagram of the instruction prefetch circuit 120 according to the second embodiment of the present invention. The same reference numerals are given to the same components as those in the configuration diagram showing the circuit of the instruction prefetch circuit 120 in the first embodiment in FIG.

命令先読み回路120には、図10の第1の実施の形態における命令先読み回路120に図14の点線で囲まれた命令先読み付加回路122を更に付している。   The instruction prefetch circuit 120 is further provided with an instruction prefetch addition circuit 122 surrounded by a dotted line in FIG. 14 to the instruction prefetch circuit 120 in the first embodiment of FIG.

第2の実施の形態における命令先読み付加回路122のフリップフロップ回路800は、クロックclk1信号の立ち上がりエッジで動作する。   The flip-flop circuit 800 of the instruction prefetch addition circuit 122 in the second embodiment operates at the rising edge of the clock clk1 signal.

フリップフロップ回路800には、外部からのアドレスaddrの出力端子が接続されている。   The flip-flop circuit 800 is connected to an output terminal for an address addr from the outside.

外部からのアドレスaddr及びフリップフロップ800の出力信号に+4した信号は、比較回路810に接続されている。比較回路810は、外部からのアドレスaddrがフリップフロップ800の出力信号又はフリップフロップ800の出力信号に+4した信号と同じ値であるときには“H”を出力し、それ以外の値である時には“L”を出力する。   The address addr from the outside and a signal obtained by adding +4 to the output signal of the flip-flop 800 are connected to the comparison circuit 810. The comparison circuit 810 outputs “H” when the address addr from the outside is the same value as the output signal of the flip-flop 800 or a signal obtained by adding +4 to the output signal of the flip-flop 800, and outputs “L” when the value is other than that. "Is output.

また比較回路810の出力信号端子は、OR回路820に接続され、OR回路820のもう一方の入力にはインバータ回路713の出力信号端子が接続されている。   The output signal terminal of the comparison circuit 810 is connected to the OR circuit 820, and the output signal terminal of the inverter circuit 713 is connected to the other input of the OR circuit 820.

OR回路820の出力信号端子は、AND回路830に接続されている。このAND回路830の接続は、本願発明の図10の第1の実施の形態における命令先読み回路120の回路のAND回路701と前記1つの接続のみ異なるが、それ以外は、本願発明の図10の第1の実施の形態における命令先読み回路120のAND回路701と同様の構成である。   An output signal terminal of the OR circuit 820 is connected to the AND circuit 830. The connection of the AND circuit 830 is different from the AND circuit 701 of the circuit of the instruction prefetch circuit 120 in the first embodiment of FIG. 10 of the present invention only in the one connection, but other than that, the connection of the AND circuit 830 of FIG. The configuration is the same as that of the AND circuit 701 of the instruction prefetch circuit 120 in the first embodiment.

(第2実施形態の作用)
以下、本願発明の第2の実施の形態の作用を説明する。図15に、本願発明の第2の実施の形態における分岐命令後のクリティカルパス命令のタイムチャートを示す。
(Operation of Second Embodiment)
The operation of the second embodiment of the present invention will be described below. FIG. 15 shows a time chart of a critical path instruction after a branch instruction in the second embodiment of the present invention.

図13に本願発明の第2の実施の形態における分岐命令後のクリティカルパス命令のタイムチャートを示す。なお、この分岐命令は条件分岐命令であり、図11のタイムチャートにおいて条件分岐命令の条件を満たさなかった場合のものである。ここで、条件分岐命令とは、ある条件が成り立った場合のみ分岐(次の命令データを読出)し、ある条件が成り立たなかった場合は分岐しない命令である。   FIG. 13 shows a time chart of a critical path instruction after a branch instruction in the second embodiment of the present invention. This branch instruction is a conditional branch instruction, and is a case where the condition of the conditional branch instruction is not satisfied in the time chart of FIG. Here, the conditional branch instruction is an instruction that branches (reads the next instruction data) only when a certain condition is satisfied, and does not branch when a certain condition is not satisfied.

本願発明の第2の実施の形態において、乗算命令時にクリティカルパスを通ると仮定する(前提条件)。また、マスタ104は、リードデータrdata2(分岐命令)を受け取った後、5サイクル後に分岐命令を実行すると仮定する。
時刻T1において、マスタ104からアドレス0x0000_0010(Hexadecimal)に対する命令フェッチが実行される。このとき、命令フェッチを示す信号op_fetch信号は”H”となる。なお、同時にready信号は”H”から”L”に変化する。
In the second embodiment of the present invention, it is assumed that a critical path is taken during a multiplication instruction (precondition). Further, it is assumed that the master 104 executes the branch instruction after 5 cycles after receiving the read data rdata2 (branch instruction).
At time T1, instruction fetch from the master 104 to the address 0x0000_0010 (Hexadecimal) is executed. At this time, the signal op_fetch signal indicating the instruction fetch becomes “H”. At the same time, the ready signal changes from “H” to “L”.

時刻T2において、スレーブ106からメモリ108に対してリードアクセスが発生する。それと同時にフリップフロップ800は、アドレスaddrの値0x0000_0010を保持する。また、比較回路810の出力は、アドレスaddrとフリップフロップ800の出力信号の値が同じであるため“H”となる。   At time T2, a read access from the slave 106 to the memory 108 occurs. At the same time, the flip-flop 800 holds the value 0x0000_0010 of the address addr. The output of the comparison circuit 810 is “H” because the address addr and the output signal value of the flip-flop 800 are the same.

時刻T3において、メモリ108からリードデータrdata1が出力され、スレーブ106がリードデータrdata1を受信する。このときの命令は、分岐命令”100”である。ただし、この分岐命令は条件分岐命令である。   At time T3, the read data rdata1 is output from the memory 108, and the slave 106 receives the read data rdata1. The instruction at this time is a branch instruction “100”. However, this branch instruction is a conditional branch instruction.

時刻T4において、スレーブ106からマスタ104に対してリードデータrdata2を出力する。それと同時にready信号が”H”となる。また、命令先読み回路120のAND回路700も“H”となる。
時刻T5において、マスタ104は、次のアドレス0x0000_0014(Hexadecimal)に対する命令フェッチを出力する。このとき、命令フェッチを示す信号op_fetch信号は”H”となる。なお、同時にready信号は”H”から”L”に変化する。また、フリップフロップ回路730は、AND回路700が“H”となることにより、セレクタ回路720のセレクト信号が“H”、セレクタ回路721のセレクト信号が“L”であるため、初期値“0”からカウントアップを開始する。このとき、比較回路810の出力は、アドレスaddrとフリップフロップ800の出力信号に+4した値が同じであるため“H”となる。
At time T4, the read data rdata2 is output from the slave 106 to the master 104. At the same time, the ready signal becomes “H”. Further, the AND circuit 700 of the instruction prefetch circuit 120 is also set to “H”.
At time T5, the master 104 outputs an instruction fetch for the next address 0x0000_0014 (Hexadecimal). At this time, the signal op_fetch signal indicating the instruction fetch becomes “H”. At the same time, the ready signal changes from “H” to “L”. Further, the flip-flop circuit 730 has an initial value “0” because the select signal of the selector circuit 720 is “H” and the select signal of the selector circuit 721 is “L” when the AND circuit 700 becomes “H”. Start counting up. At this time, the output of the comparison circuit 810 becomes “H” because the value added to the address addr and the output signal of the flip-flop 800 is +4.

時刻T6において、スレーブ106からメモリ108に対してリードアクセスが発生する。それと同時にフリップフロップ800は、アドレスaddrの値0x0000_0014を保持する。また、比較回路810の出力は、アドレスaddrとフリップフロップ800の出力信号の値が同じであるため“H”となる。   At time T6, read access from the slave 106 to the memory 108 occurs. At the same time, the flip-flop 800 holds the value 0x0000_0014 of the address addr. The output of the comparison circuit 810 is “H” because the address addr and the output signal value of the flip-flop 800 are the same.

時刻T7において、メモリ108からリードデータrdata1が出力され、スレーブ106がリードデータrdata1を受信する。このときの命令は、クリティカルパスの乗算命令”011”である。   At time T7, the read data rdata1 is output from the memory 108, and the slave 106 receives the read data rdata1. The instruction at this time is the critical path multiplication instruction “011”.

時刻T8において、スレーブ106からマスタ104に対してリードデータrdata2を出力する。それと同時に命令先読み回路120のAND回路522、セレクタ回路540、及びready信号が”H”となる(トリガーとなる)。   At time T8, the read data rdata2 is output from the slave 106 to the master 104. At the same time, the AND circuit 522, the selector circuit 540, and the ready signal of the instruction prefetch circuit 120 become “H” (trigger).

時刻T9において、命令先読み回路120のAND回路522の出力信号が”L”となり、命令先読み回路120のフリップフロップ回路512は”H”となるため、cri_flag信号も”H”となり、フリップフロップ回路514は0からカウントアップを開始する。詳細には、時刻T8において、AND回路522の”H”信号がトリガーパルスとなってカウント開始している。また、フリップフロップ回路730の出力は“5”となるため、セレクタ回路721のセレクト信号は“H”となり、インバータ回路713の出力は“L”となる。インバータ回路713の出力が“L”となるが、比較回路810の出力は“H”であるため、OR回路820の出力も“H”となり、AND回路701の出力、セレクタ回路540の出力、及びフリップフロップ回路512の入力信号は“H”のままである。ここで、マスタ104は、次のアドレス0x0000_0018(Hexadecimal)に対する命令フェッチを出力する。このアドレスは、時刻T1でマスタ104が発行した命令フェッチアドレスの分岐命令により分岐するアドレスであるが、この場合条件分岐命令の条件が成立しなかったため、分岐アドレスではなくインクリメントしたアドレス0x0000_0018(Hexadecimal)を発行する。   At time T9, the output signal of the AND circuit 522 of the instruction prefetch circuit 120 becomes “L”, and the flip-flop circuit 512 of the instruction prefetch circuit 120 becomes “H”, so that the cri_flag signal also becomes “H”, and the flip-flop circuit 514 Starts counting up from zero. Specifically, at time T8, the “H” signal of the AND circuit 522 becomes a trigger pulse and starts counting. Since the output of the flip-flop circuit 730 is “5”, the select signal of the selector circuit 721 is “H”, and the output of the inverter circuit 713 is “L”. Although the output of the inverter circuit 713 is “L”, the output of the comparison circuit 810 is “H”, so the output of the OR circuit 820 is also “H”, the output of the AND circuit 701, the output of the selector circuit 540, and The input signal of the flip-flop circuit 512 remains “H”. Here, the master 104 outputs an instruction fetch for the next address 0x0000_0018 (Hexadecimal). This address is an address that is branched by the branch instruction of the instruction fetch address issued by the master 104 at time T1. In this case, since the condition of the conditional branch instruction is not satisfied, the incremented address 0x0000_0018 (Hexadecimal) Issue.

時刻T10において、時刻T9でcri_flag信号が”H”になることにより、クロックマスク回路130のフリップフロップ回路610も”H”となり、クロックclk0信号(=クロックclk1信号)の立ち上がりに合わせて1サイクル(周期)ずつマスクしていく。また、時刻T9でセレクタ回路721のセレクト信号が“H”となるため、フリップフロップ回路730の出力は“0”となる。   At time T10, when the cri_flag signal becomes “H” at time T9, the flip-flop circuit 610 of the clock mask circuit 130 also becomes “H”, and one cycle (= clock clk1 signal) follows the rising edge of the clock clk0 signal (= clock clk1 signal). (Period) masks one by one. Further, since the select signal of the selector circuit 721 becomes “H” at time T9, the output of the flip-flop circuit 730 becomes “0”.

時刻T11において、メモリ108からリードデータrdata1が出力され、スレーブ106がリードデータrdata1を受信する。以降、乗算命令が実行されている間は、クロック周波数を変更して動作する。   At time T11, the read data rdata1 is output from the memory 108, and the slave 106 receives the read data rdata1. Thereafter, while the multiplication instruction is being executed, the clock frequency is changed to operate.

以上説明したように、本願発明の第2の実施の形態によれば、本願発明の第1の実施の形態の効果に加えて、条件分岐命令により、分岐しない場合でも、最適なクロック周波数で動作することが可能となり、LSI全体の性能低下を防ぐことが出来る。この結果、マスタの処理時間の低減、及びLSI全体の性能向上が期待できる。   As described above, according to the second embodiment of the present invention, in addition to the effect of the first embodiment of the present invention, even when not branching by a conditional branch instruction, the operation is performed at the optimum clock frequency. It is possible to prevent the performance of the entire LSI from being degraded. As a result, the master processing time can be reduced and the performance of the entire LSI can be improved.

(第1の実施形態及び第2実施形態の変形例)
以上説明した第1の実施形態及び第2実施形態では、タイミング条件の変更として、クロック信号の入力間隔を長くする処理(第1の変更処理)を実行するようにしているが、本発明は、これに限定されるものではない。即ち、上記特許文献1においても示されているように、クリティカルパスにおける各半導体素子へ印加する電圧を大きくすれば、各半導体素子のデータの伝送速度が速くなるので、クロック信号の入力間隔を長くしなくとも、各半導体素子のデータの伝送速度を速くすることにより、1サイクル内でデータの伝送を完了させることができる。そこで、上記第1の変更処理に代えて、クリティカルパスにおける各半導体素子へ印加する電圧を大きくする処理(第2の変更処理)を行なってもよい。
(Modification of the first embodiment and the second embodiment)
In the first embodiment and the second embodiment described above, the process of increasing the input interval of the clock signal (first change process) is executed as the change of the timing condition. It is not limited to this. That is, as shown in Patent Document 1 described above, if the voltage applied to each semiconductor element in the critical path is increased, the data transmission speed of each semiconductor element is increased. Therefore, the input interval of the clock signal is increased. Even if it is not, data transmission can be completed within one cycle by increasing the data transmission speed of each semiconductor element. Therefore, instead of the first change process, a process for increasing the voltage applied to each semiconductor element in the critical path (second change process) may be performed.

なお、第2の変更処理では電圧を大きくするので、その分消費電力が大きくなる。一方、第1の変更処理ではクロック信号の入力間隔を長くするので、その分処理性能が低下する。そこで、消費電力の増加をある程度抑えかつ処理性能が低下することもある程度抑えるため、上記例よりクロック信号の入力間隔を短くした第1の変更処理と、上記例よりクリティカルパスにおける各半導体素子へ印加する電圧の増加を小さくした第2の変更処理と、を同時に行なうようにしてもよい。   In the second change process, since the voltage is increased, the power consumption is increased accordingly. On the other hand, since the input interval of the clock signal is lengthened in the first change processing, the processing performance is lowered accordingly. Therefore, in order to suppress the increase in power consumption to some extent and to suppress the degradation in processing performance to some extent, the first change processing in which the input interval of the clock signal is made shorter than in the above example and the application to each semiconductor element in the critical path from the above example. The second change process in which the increase in voltage to be reduced is reduced may be performed simultaneously.

100 マイクロコントローラ
120 命令先読み回路
130 クロックマスク回路(変更手段)
420 クリティカルパス
420 クリティカルパス(第2の半導体集積回路部)
100 Microcontroller 120 Instruction prefetch circuit 130 Clock mask circuit (changing means)
420 critical path 420 critical path (second semiconductor integrated circuit section)

Claims (7)

処理の実行を命ずる命令を識別する各々異なる複数の命令データを記憶する記憶手段と、
複数の半導体素子を備え、データの伝送のタイミングに影響を及ぼす予め定められたタイミング条件において各半導体素子間でデータを第1の時間で伝送可能な第1の半導体集積回路部と、複数の半導体素子を備え、該予め定められたタイミング条件では各半導体素子間でデータを該第1の時間よりも長い第2の時間でなければ伝送し終わらない第2の半導体集積回路部と、を備え、実行する命令及び該命令の次に実行予定の命令の命令データを含む複数の命令データを順に読み出す指示を与え、該指示に応じて順に読み出された複数の命令データ各々が入力されて、各命令データに応じて定まる該第1の半導体集積回路部又は該第2の半導体集積回路部に伝送させる制御手段と、
前記制御手段により前記読み出す指示が与えられ、該指示に応じて前記複数の命令データを順に前記記憶手段から読み出して、前記制御手段に入力する読出入力手段と、
前記第1の時間間隔で前記各半導体素子にデータの伝送のタイミングの基準となる基準信号を生成して前記各半導体素子に入力する生成手段と、
所定の指示信号が入力され続ける間、前記基準信号の入力間隔に応じて定まる所定時間以内に、前記第2の半導体集積回路部が前記データの伝送を終了するように、前記第2の半導体集積回路部に対する前記タイミング条件を変更する変更手段と、
前記読出入力手段により出力される前記複数の命令データが順に入力され、該入力された命令データが、前記第2の半導体集積回路部に伝送されるものであると予め定められた第1の命令データである場合、前記制御手段により前記第2の半導体集積回路部を該第1の命令データが伝送され始めるときから、前記指示信号を前記変更手段に入力し続ける指示手段と、
次に実行すべき命令を識別する第2の命令データを前記記憶手段から次に読み出すことを内容とする分岐命令を識別する第3の命令データが予め定められ、前記読出入力手段により出力される前記複数の命令データが順に入力され、該入力された命令データが前記第3の命令データでありかつ前記指示手段が前記指示信号を前記変更手段に入力している場合、前記記憶手段から読み出された前記第2の命令データが前記制御手段により前記第1の半導体集積回路部に伝送される際に、前記指示手段による前記指示信号の入力を停止させて前記変更されたタイミング条件を前記予め定められたタイミング条件に戻す停止手段と、
を備えた半導体集積回路装置。
Storage means for storing a plurality of different instruction data for identifying instructions instructing execution of processing;
A first semiconductor integrated circuit section including a plurality of semiconductor elements and capable of transmitting data between the semiconductor elements in a first time under a predetermined timing condition that affects a data transmission timing; and a plurality of semiconductors A second semiconductor integrated circuit unit that includes an element, and that transmits data between the semiconductor elements only in a second time longer than the first time under the predetermined timing condition, An instruction for sequentially reading a plurality of instruction data including an instruction to be executed and instruction data of an instruction scheduled to be executed next to the instruction is given, and each of the plurality of instruction data read in accordance with the instruction is input, Control means for transmitting to the first semiconductor integrated circuit unit or the second semiconductor integrated circuit unit determined according to the command data;
The reading instruction is given by the control means, and in response to the instruction, the plurality of instruction data are sequentially read out from the storage means and input to the control means;
Generating means for generating a reference signal serving as a reference for data transmission timing to each semiconductor element at the first time interval and inputting the reference signal to each semiconductor element;
While the predetermined instruction signal is continuously input, the second semiconductor integrated circuit is configured so that the second semiconductor integrated circuit unit finishes the data transmission within a predetermined time determined according to the input interval of the reference signal. Changing means for changing the timing condition for the circuit unit;
The plurality of command data output by the read input means are sequentially input, and a first command that is predetermined to be transmitted to the second semiconductor integrated circuit unit. In the case of data, the instruction means continues to input the instruction signal to the changing means from the time when the first instruction data starts to be transmitted to the second semiconductor integrated circuit unit by the control means;
Third instruction data for identifying a branch instruction whose content is to read the second instruction data for identifying the next instruction to be executed next from the storage means is predetermined and output by the read input means. When the plurality of instruction data are sequentially input, and the input instruction data is the third instruction data, and the instruction unit inputs the instruction signal to the change unit, read from the storage unit When the second command data is transmitted to the first semiconductor integrated circuit unit by the control means, the input of the instruction signal by the instruction means is stopped and the changed timing condition is set in advance. Stop means for returning to a defined timing condition;
A semiconductor integrated circuit device.
前記分岐命令には、予め定められた実行条件が満たされている場合にのみ、前記第2の命令データを前記記憶手段から次に読み出すことを命ずる条件付き分岐命令が含まれ、
前記第3の命令データには、前記条件付き分岐命令を識別する第4の命令データが含まれ、
前記制御手段は、前記第4の命令データの入力に応じて前記実行条件が満たされているか否かを判断し、前記実行条件が満たされていないと判断した場合には、前記停止手段による前記中断が無効となるように制御する
ことを特徴とする請求項1に記載の半導体集積回路装置。
The branch instruction includes a conditional branch instruction that instructs to read the second instruction data from the storage means only when a predetermined execution condition is satisfied,
The third instruction data includes fourth instruction data for identifying the conditional branch instruction;
The control means determines whether or not the execution condition is satisfied in response to the input of the fourth command data, and when determining that the execution condition is not satisfied, the control means by the stop means The semiconductor integrated circuit device according to claim 1, wherein the interruption is controlled to be invalid.
前記変更手段は、前記タイミング条件の変更として、前記基準信号の入力間隔を長くする第1の変更処理及び各半導体素子へ印加する電圧を大きくする第2の変更処理の少なくとも一方を行なうことを特徴とする請求項1又は請求項2に記載の半導体集積回路装置。   The change means performs at least one of a first change process for increasing the input interval of the reference signal and a second change process for increasing the voltage applied to each semiconductor element as the change of the timing condition. The semiconductor integrated circuit device according to claim 1 or 2. 請求項1に記載の半導体集積回路装置のデータ伝送方法であって、
前記制御手段が、前記第3の命令データ、前記第1の命令データ、及び前記第2の命令データを順に読み出す指示を与えると共に、前記読出入力手段が、前記指示に応じて前記第3の命令データ、前記第1の命令データ、及び前記第2の命令データを順に前記記憶手段から読み出して、前記制御手段、前記指示手段、及び前記停止手段に入力する場合、
前記指示手段が、前記第1の命令データの入力に応じて前記指示信号を前記変更手段に入力するステップと、
前記変更手段が、前記指示信号が入力され続ける間、前記基準信号の入力間隔に応じて定まる所定時間以内に、前記第2の半導体集積回路部が前記データの伝送を終了するように、前記第2の半導体集積回路部に対する前記タイミング条件を変更するステップと、
前記制御手段が、前記第3の命令データの次に入力された前記第1の命令データを無視して、前記第2の命令データを、前記第1の半導体集積回路部に伝送するステップと、
前記停止手段が、前記制御手段により前記第2の命令データが前記第1の半導体集積回路部に伝送される際に、前記指示手段による前記指示信号の入力を停止させて前記変更されたタイミング条件を前記予め定められたタイミング条件に戻すステップと、
を備えた半導体集積回路装置のデータ伝送方法。
A data transmission method for a semiconductor integrated circuit device according to claim 1,
The control means gives an instruction to read the third instruction data, the first instruction data, and the second instruction data in order, and the read input means responds to the instruction with the third instruction data. When reading data, the first instruction data, and the second instruction data from the storage means in order and inputting them to the control means, the instruction means, and the stop means,
The instruction means inputs the instruction signal to the changing means in response to the input of the first instruction data;
While the instruction signal continues to be input, the changing means ends the transmission of the data within a predetermined time determined according to the input interval of the reference signal. Changing the timing condition for the semiconductor integrated circuit portion of 2;
The control means ignoring the first command data input next to the third command data and transmitting the second command data to the first semiconductor integrated circuit unit;
When the second instruction data is transmitted to the first semiconductor integrated circuit unit by the control means, the stop means stops the input of the instruction signal by the instruction means and the changed timing condition Returning to the predetermined timing condition;
A data transmission method for a semiconductor integrated circuit device comprising:
請求項1に記載の半導体集積回路装置のデータ伝送方法であって、
前記制御手段が、前記第1の命令データ、前記第3の命令データ、及び前記第2の命令データを順に読み出す指示を与えると共に、前記読出入力手段が、前記指示に応じて前記第1の命令データ、前記第3の命令データ、及び前記第2の命令データを順に前記記憶手段から読み出して、前記制御手段、前記指示手段、及び前記停止手段に入力する場合、
前記制御手段が、前記第1の命令データを前記第2の半導体集積回路部に伝送するステップと、
前記指示手段が、前記第1の命令データの入力に応じて前記指示信号を前記変更手段に入力するステップと、
前記変更手段が、前記指示信号が入力され続ける間、前記基準信号の入力間隔に応じて定まる所定時間以内に、前記第2の半導体集積回路部が前記データの伝送を終了するように、前記第2の半導体集積回路部に対する前記タイミング条件を変更するステップと、
前記制御手段が、前記第1の命令データを前記第2の半導体集積回路部に伝送した後、前記読出入力手段により入力された第2の命令データを、前記第1の半導体集積回路部に伝送するステップと、
前記停止手段が、前記制御手段により前記第2の命令データが前記第1の半導体集積回路部に伝送される際に、前記指示手段による前記指示信号の入力を停止させて前記変更されたタイミング条件を前記予め定められたタイミング条件に戻すステップと、
を備えた半導体集積回路装置のデータ伝送方法。
A data transmission method for a semiconductor integrated circuit device according to claim 1,
The control means gives an instruction to read out the first instruction data, the third instruction data, and the second instruction data in order, and the read input means responds to the instruction with the first instruction data. When reading data, the third instruction data, and the second instruction data from the storage means in order, and inputting them to the control means, the instruction means, and the stop means,
The control means transmitting the first command data to the second semiconductor integrated circuit unit;
The instruction means inputs the instruction signal to the changing means in response to the input of the first instruction data;
While the instruction signal continues to be input, the changing means ends the transmission of the data within a predetermined time determined according to the input interval of the reference signal. Changing the timing condition for the semiconductor integrated circuit portion of 2;
The control unit transmits the first command data to the second semiconductor integrated circuit unit, and then transmits the second command data input by the read input unit to the first semiconductor integrated circuit unit. And steps to
When the second instruction data is transmitted to the first semiconductor integrated circuit unit by the control means, the stop means stops the input of the instruction signal by the instruction means and the changed timing condition Returning to the predetermined timing condition;
A data transmission method for a semiconductor integrated circuit device comprising:
請求項2に記載の半導体集積回路装置のデータ伝送方法であって、
前記制御手段が、前記第4の命令データ及び前記第1の命令データを順に読み出す指示を与えると共に、前記読出入力手段が、前記指示に応じて前記第4の命令データ及び前記第1の命令データを順に前記記憶手段から読み出して、前記制御手段、前記指示手段、及び前記停止手段に入力する場合、
前記指示手段が、前記第1の命令データの入力に応じて前記指示信号を前記変更手段に入力するステップと、
前記変更手段が、前記指示信号が入力され続ける間、前記基準信号の入力間隔に応じて定まる所定時間以内に、前記第2の半導体集積回路部が前記データの伝送を終了するように、前記第2の半導体集積回路部に対する前記タイミング条件を変更するステップと、
前記制御手段が、前記第4の命令データの入力に応じて前記予め定められた実行条件が満たされているか否かを判断し、該実行条件が満たされていないと判断した場合、前記停止手段による前記中断が無効となるように制御すると共に、前記第1の命令データを前記第2の半導体集積回路部に伝送するステップと、
を備えた半導体集積回路装置のデータ伝送方法。
A data transmission method for a semiconductor integrated circuit device according to claim 2,
The control means gives an instruction to sequentially read the fourth instruction data and the first instruction data, and the read input means responds to the instruction with the fourth instruction data and the first instruction data. Are sequentially read from the storage means and input to the control means, the instruction means, and the stop means,
The instruction means inputs the instruction signal to the changing means in response to the input of the first instruction data;
While the instruction signal continues to be input, the changing means ends the transmission of the data within a predetermined time determined according to the input interval of the reference signal. Changing the timing condition for the semiconductor integrated circuit portion of 2;
When the control means determines whether or not the predetermined execution condition is satisfied in response to the input of the fourth command data, and determines that the execution condition is not satisfied, the stop means And the step of transmitting the first command data to the second semiconductor integrated circuit unit, and controlling so that the interruption by
A data transmission method for a semiconductor integrated circuit device comprising:
前記変更手段は、前記タイミング条件の変更として、前記基準信号の入力間隔を長くする第1の変更処理及び各半導体素子へ印加する電圧を大きくする第2の変更処理の少なくとも一方を行なうことを特徴とする請求項4〜請求項6の何れか1項に記載の半導体集積回路装置のデータ伝送方法。   The change means performs at least one of a first change process for increasing the input interval of the reference signal and a second change process for increasing the voltage applied to each semiconductor element as the change of the timing condition. A data transmission method for a semiconductor integrated circuit device according to any one of claims 4 to 6.
JP2009078921A 2009-03-27 2009-03-27 Semiconductor integrated circuit device Expired - Fee Related JP5414323B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009078921A JP5414323B2 (en) 2009-03-27 2009-03-27 Semiconductor integrated circuit device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009078921A JP5414323B2 (en) 2009-03-27 2009-03-27 Semiconductor integrated circuit device

Publications (2)

Publication Number Publication Date
JP2010231542A true JP2010231542A (en) 2010-10-14
JP5414323B2 JP5414323B2 (en) 2014-02-12

Family

ID=43047285

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009078921A Expired - Fee Related JP5414323B2 (en) 2009-03-27 2009-03-27 Semiconductor integrated circuit device

Country Status (1)

Country Link
JP (1) JP5414323B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130044956A (en) * 2011-10-25 2013-05-03 에스케이하이닉스 주식회사 Integrated circuit chip and system including the same

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63153634A (en) * 1986-12-17 1988-06-27 Hitachi Ltd Data processor
JP2009037608A (en) * 2007-07-11 2009-02-19 Internatl Business Mach Corp <Ibm> Method, system and processor for controlling adaptive performance cycle for enhanced instruction throughput
JP2009048264A (en) * 2007-08-14 2009-03-05 Oki Electric Ind Co Ltd Semiconductor integrated circuit device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63153634A (en) * 1986-12-17 1988-06-27 Hitachi Ltd Data processor
JP2009037608A (en) * 2007-07-11 2009-02-19 Internatl Business Mach Corp <Ibm> Method, system and processor for controlling adaptive performance cycle for enhanced instruction throughput
JP2009048264A (en) * 2007-08-14 2009-03-05 Oki Electric Ind Co Ltd Semiconductor integrated circuit device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130044956A (en) * 2011-10-25 2013-05-03 에스케이하이닉스 주식회사 Integrated circuit chip and system including the same
KR101898150B1 (en) * 2011-10-25 2018-09-13 에스케이하이닉스 주식회사 Integrated circuit chip and system including the same

Also Published As

Publication number Publication date
JP5414323B2 (en) 2014-02-12

Similar Documents

Publication Publication Date Title
US7178046B2 (en) Halting clock signals to input and result latches in processing path upon fetching of instruction not supported
CN112230992B (en) Instruction processing device, processor and processing method thereof comprising branch prediction loop
US20100228955A1 (en) Method and apparatus for improved power management of microprocessors by instruction grouping
WO2007122596A1 (en) Method and system for power-state transition controllers
US20070288724A1 (en) Microprocessor
US6125440A (en) Storing executing instruction sequence for re-execution upon backward branch to reduce power consuming memory fetch
JP5926655B2 (en) Central processing unit and arithmetic unit
US7725843B2 (en) Behavioral synthesis apparatus, behavioral synthesis method, method for manufacturing digital circuit, behavioral synthesis control program and computer-readable recording medium
US20060200692A1 (en) Microprocessor
JP5414323B2 (en) Semiconductor integrated circuit device
WO2002050666A2 (en) Method and apparatus for processing program loops in parallel
JP2009048264A (en) Semiconductor integrated circuit device
US8271820B2 (en) Micro-processor
JP3906865B2 (en) Low power microprocessor and microprocessor system
JP2007200106A (en) Data processor, control method, and program
KR100891390B1 (en) Micro controller and method of updating the same
JP2014044509A (en) Arithmetic processing unit and control method of the same
EP4339781A1 (en) Processor and method of detecting soft error from processor
JP2002189591A (en) Processor
US20100064174A1 (en) Data processing system and debug method
JP2016110400A (en) Arithmetic processing unit, and control method for arithmetic processing unit
JP2004334641A (en) Information processor, storage medium, and processor
JP6015294B2 (en) Semiconductor integrated circuit and power consumption suppressing method
CN113407239A (en) Assembly line processor based on asynchronous single track
WO2011010183A1 (en) Signal processing system and integrated circuit comprising a prefetch module and method therefor

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120327

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130730

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130806

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130909

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130924

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131001

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131015

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131021

TRDD Decision of grant or rejection written
A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131112

R150 Certificate of patent or registration of utility model

Ref document number: 5414323

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees