JP2010231542A - Semiconductor integrated circuit device - Google Patents
Semiconductor integrated circuit device Download PDFInfo
- 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
Links
Images
Landscapes
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Microcomputers (AREA)
Abstract
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).
ところで、上記命令には、上記アイドル命令の他に、割り込み命令、即ち、ある条件を満たしているか否かを判断し、その判断結果に応じて次に実行すべき命令を決定する分岐命令もあり、連続的に読み出した命令が、分岐命令、アイドル命令、アイドル命令の場合がある。 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.
以下、本発明の好ましい実施の形態について図面を参照しながら詳細に説明する。 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
(従来技術の構成)
図1は、従来技術のマイクロコントローラ100を示す構成図である。
(Construction of conventional technology)
FIG. 1 is a block diagram showing a
このマイクロコントローラ100は、クロック生成回路102(生成手段)、マスタ104(制御手段)、スレーブ106(読出入力手段)、メモリ108(記憶手段)、及びレギュレータ110で構成されている。
The
クロック生成回路102では、クロックマスク回路130(処理形態変更手段)を含んで構成されており、マイクロコントローラ100外部から供給されるクロックclk0信号に基づいて、クロック信号clk、clk1をマイクロコントローラ100内部の各ブロックに供給する機能を有している。なお、クロック信号clk、clk1は、コンピュータ内部の各回路、又は各回路の各素子間での処理の同期をとるための、データ伝送のタイミングの基準となる信号のことであり、このクロックclk、clk1信号(他のクロック信号も含む)の速さをクロック周波数(動作周波数、単にクロックとも呼ばれる)と呼ぶ。
The
さらに、クロックマスク回路130については、図6において、詳細に説明する。
Further, the
また、マスタ104では、例えば、CPUで構成され、定められたプログラム(メモリ108等に格納されている)に従って処理を行う機能を有している。即ち、マスタ104は、各々複数の半導体素子を備え、データの伝送のタイミングに影響を及ぼす予め定められたタイミング条件(クロック信号の入力タイミング)において各半導体素子間でデータを伝送する複数の半導体集積回路部を備えている。なお、このマスタ104は、データ処理のための命令(指示)を出力するものならば何でもよい。
Further, the
さらに、スレーブ106では、例えば、メモリコントローラとして命令先読み回路120を含んで構成され、マスタ104からのアクセス信号を受信し、応答を返す機能を有している。なお、スレーブ106は、システムコントローラであってもよく、DMA(Direct Memory Access)等の方式を採用してもよい。また、命令先読み回路120は、図5において、詳細に説明する。
Further, the
また、メモリ108は、データ(命令データ)及びプログラム等を記憶する装置である。
The
さらに、レギュレータ110は、マイクロコントローラ100の外部から供給される電源電圧Vdd0をマイクロコントローラ100内部の各回路ブロック(クロック生成回路102、マスタ104、スレーブ106、及びメモリ108)に供給する機能を有する。なお、レギュレータ(Regulator)110は、調整装置という意味であり、コンピュータシステムでは、電源安定装置、又は変圧装置と呼ばれる。詳細には、本願発明では、3端子レギュレータを使用しており、入力、接地、出力の3端子を持ち、入力された直流電源を平滑定電流化して出力する電圧整流素子である。
Further, the
詳細に説明すると、クロック生成回路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
このマイクロコントローラ100は所定のシーケンスによって動作する。なお、シーケンスとは、シーケンス制御(Sequental Control)のことであり、予め定められた順序又は手続きに従って、制御の各段階を逐次進めていく制御のことであるが、そのときの各段階に用いられる用語を予め説明しておく。
The
(命令フェッチ、op_fetch信号、及びready信号)
マスタ104は、実行すべきプログラムを実行するために命令フェッチ(プロセッサが処理する命令オペコード(命令データ)をメモリから取り出し、レジスタに転送すること)を行う。また、マスタ104は、命令フェッチが実行されていることを示すop_fetch信号をスレーブ106に出力する。そして、マスタ104が発行した命令及び次の命令を実行できることを示すready信号を受信する。詳細には、この命令フェッチアクセスは、スレーブ106を介してメモリ108に格納されているプログラムをリードする(読み込む)。
(Instruction fetch, op_fetch signal, and ready signal)
The
(リードアクセス)
マスタ104から命令フェッチが実行されたため、スレーブ106はメモリに対してリードアクセス(所望のデータを読み込むためのアクセス)を行う。
(Read access)
Since the instruction fetch is executed from the
(リードデータrdata1)
メモリ108は、スレーブ106からのリードアクセスに対応したアドレスに格納されているデータであるリードデータrdata1を、スレーブ106に出力する。
(Read data rdata1)
The
(リードデータrdata2)
スレーブ106は、メモリ108からリードデータrdata1が入力されると、マスタ104にリードデータrdata2を入力する。
(Read data rdata2)
When the read data rdata1 is input from the
(クロックclk1信号)
クロックclk1信号は、クロックマスク回路130から供給され、命令先読み回路120を動作させるクロック(クロック信号)である。
(Clock clk1 signal)
The clock clk1 signal is a clock (clock signal) that is supplied from the
(cri_flag信号)
cri_flag信号(指示信号)は、命令先読み回路120からクロックマスク回路130に出力され、クロック信号clk0を、所定間隔(2クロック信号に対して1つのクロック信号を)マスクすることにより、クロック周波数を遅くしてクロック信号clkを出力させる指示を信号である。
(Cri_flag signal)
The cri_flag signal (instruction signal) is output from the
(命令実行)
マスタ104は、スレーブ106を介してメモリ108から受け取ったリードデータrdata2に基づいてプログラムを実行する。詳細には、マスタ104がスレーブ106へ送信した命令フェッチ、op_fetch信号、及びready信号を基にして受信したリードデータrdata2には、マスタ104が実行すべき命令を判別できるように命令コード(図2の命令オペコード)が格納されている。そして、そのリードデータrdata2に格納されている命令コードを、該命令コードに応じて定まる半導体集積回路部を伝送させて、所定のプログラムを実行する。
(Instruction execution)
The
命令フェッチ時のリードデータには、図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
例えば、命令コードのロード命令は命令オペコード”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
マスタ104は、命令フェッチにより受信したリードデータrdata2に従ってプログラムを実行する。その際、命令の種類によってはクリティカルパス420を通る命令が存在する。
The
また、クリティカルパス420とは、上記のように信号の伝搬に最も時間のかかるパス(経路)のことであり、回路の動作を規制するパスのことである。なお、複数の半導体集積回路部の内、どの半導体集積回路部がクリティカルパス420なのかは、コンピュータ等を用いてシミュレーションして予め特定されている。なお、クリティカルパス420が特定できる手段があればどのような手段を用いてもよい。
The
従って、クリティカルパス420における信号の伝搬には、ゲート遅延及び配線遅延などがある。
Accordingly, signal propagation in the
なお、ゲート遅延とは、信号が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
図4にクリティカルパス420の概念図を示す。
FIG. 4 shows a conceptual diagram of the
フリップフロップ回路402、フリップフロップ回路404、及びフリップフロップ回路406は、クロック生成回路102で生成されたクロックclk信号の立ち上がりエッジで動作する。
The flip-
フリップフロップ回路402は、4段のバッファ410、412、414、416を介してフリップフロップ回路404に接続されている。
The flip-
そこで、フリップフロップ回路402に入力された信号Iは、4段のバッファ410、412、414、416を介して、フリップフロップ回路404に信号VIが入力され、信号VIIを出力する。
Therefore, the signal I input to the flip-
さらに、フリップフロップ回路406とフリップフロップ回路402の間に1段のバッファ418を介して接続されている。
Further, the flip-
詳細には、フリップフロップ回路402から出力された信号IIは、バッファ410に入力され、信号IIIを出力する。また、信号IIIを入力したバッファ412は信号IVを出力する。さらに、信号IVを入力したバッファ414は信号Vを出力する。そして、信号Vを入力したバッファ416は信号VIを出力し、信号VIを入力したフリップフロップ回路404は、信号VIIを出力する。
Specifically, the signal II output from the flip-
なお、クロックclk信号は、フリップフロップ回路402、フリップフロップ回路404、及びフリップフロップ回路406に入力されて同期信号として使用される。また、電源電圧Vddは、各回路(フリップフロップ回路402、フリップフロップ回路404、フリップフロップ回路406、及びバッファ410、412、414、416、418)にそれぞれ供給される。
Note that the clock clk signal is input to the flip-
ここで、この回路のクリティカルパス420はフリップフロップ回路402からフリップフロップ回路404のパスであると仮定する。
Here, it is assumed that the
また、これらの全てのセル(フリップフロップ回路402、フリップフロップ回路404、フリップフロップ回路406、及びバッファ410、412、414、416、418のセル)は、電源電圧Vddで動作する。なお、セルとは、半導体集積回路を設計する際、半導体の機能を表す最小単位のことである。
All these cells (the flip-
図5に命令先読み回路120の回路図を示す。
FIG. 5 shows a circuit diagram of the
命令先読み回路120には、op_fetch信号、ready信号、クロックマスク回路130から供給されるクロックclk1信号、及びメモリ108からのリードデータrdata1が入力され、cri_flag信号が出力される。
The
命令先読み回路120のフリップフロップ回路512、及びフリップフロップ回路514は、クロックclk1信号の立ち上がりエッジで動作する。
The flip-
AND回路520の出力端子はAND回路522の入力と接続されている。
The output terminal of the AND
op_fetch信号及びready信号が入力されるAND回路520の出力信号は、AND回路522に送信される。
An output signal of the AND
命令先読み回路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
AND回路522には、リードデータrdata1の10ビット目をインバータ530で反転した信号、リードデータrdata1の9ビット目の信号、及びリードデータrdata1の8ビット目の信号が入力される。
The AND
また、AND回路522の出力信号は、セレクタ回路540のセレクト信号(セレクタ回路540の出力信号を選択制御するためのコントロール信号)、及びインバータ534の入力信号として送信される。
The output signal of the AND
なお、AND回路522は、AND回路522へのリードデータrdata1の値が、命令フェッチのデータがクリティカルパス420を通る命令の乗算命令(図2の”011”)の場合に信号を出力する(前提条件)。
The AND
セレクタ回路540には、AND回路522の出力、1’b1(1ビットのバイナリ(2進数)の”1”)及びAND回路524の出力端子が接続されている。また、フリップフロップ回路512の入力端子にセレクタ回路540の出力端子が接続され、フリップフロップ回路512の出力端子にセレクタ回路542及びAND回路524が接続されている。
The
フリップフロップ回路512には、セレクタ回路540の出力信号が入力されている。そこで、セレクタ回路540に入力されるセレクト信号が”H”のときには、セレクタ回路540の出力信号は”H”(1’b1)となる。また、セレクタ回路540に入力されるセレクト信号が”L”のときには、セレクタ回路540の出力信号はAND回路524の出力信号が出力される。
The output signal of the
なお、フリップフロップ回路512の出力信号は、cri_flag信号として、命令先読み回路120から出力されると共に、AND回路524の入力信号及びセレクタ回路542のセレクト信号となって送信される。
Note that the output signal of the flip-
セレクタ回路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
フリップフロップ回路514には、セレクタ回路542の出力信号が入力されている。そこで、セレクタ回路542に入力されるセレクト信号が”H”のときには、セレクタ回路542の出力信号は、カウンタ回路560によって、フリップフロップ回路514の出力信号+1の値となる。また、セレクタ回路542に入力されるセレクト信号が”L”のときには、セレクタ回路542の出力信号は、フリップフロップ回路514の出力信号が出力される。
The output signal of the
そして、フリップフロップ回路514は、非同期リセット信号(反転リセットを示すネガリセット信号)が、インバータ534及びネガリセット端子rnを介して入力され、”L”のとき”0”を保持し、リセットを行う。また、比較回路550は、フリップフロップ回路514の出力信号と固定値の10進数の”100”と比較し、フリップフロップ回路514の値が100になったときに出力信号”H”とし、それ以外の場合は出力を”L”とする回路である。詳細には、フリップフロップ回路514の値が100になり、出力信号”H”となったときには、フリップフロップ回路514の値はリセットされ、出力信号”L”のときには、フリップフロップ回路514の値は+1ずつカウントを続行する。
Then, the flip-
また、フリップフロップ回路512、フリップフロップ回路514には、それぞれ同期して動作するようにクロックclk1信号が入力されている。
The clock clk1 signal is input to the flip-
さらに、非同期リセット信号については、一番はじめは、AND回路522のパルスが立ち上がったときをトリガーとして非同期にリセットをかける。
Further, the asynchronous reset signal is first reset asynchronously with a trigger of the AND
なお、インバータ530、AND回路523を備えるように構成したのは、クリティカルパス420を通る乗算命令データが”011”であるとしているからである。従って、クリティカルパス420を通る際、乗算命令でない場合、例えば、AND命令”101”の場合には、リードデータrdata1[10]に入力される場所にインバータ530はなく、リードデータrdata1[9]に入力される場所にインバータ530が設置される。以上、述べたようにクリティカルパス420において、どんな命令に時間がかかるか、どの程度の頻度で関わるかなどの条件を基に、ある程度の場所が分かって、はじめて、素子や配線等の遅延が大きくなることが前提条件となるので、本願発明のような乗算命令が前提条件とならない場合もある。
The reason why the
図6にクロックマスク回路130の回路図を示す。
FIG. 6 shows a circuit diagram of the
セレクタ回路630には、コントローラ信号として命令先読み回路120からの出力(cri_flag信号)、固定値”0”、及びインバータ620の出力の出力端子が接続されている。また、セレクタ回路630の出力端子は、フリップフロップ回路610の入力端子に接続されている。さらに、フリップフロップ回路610では、フリップフロップ回路610の出力端子はインバータ620の入力及びOR回路640の入力端子に接続されている。なお、クロックclk0信号端子が、マイクロコントローラ100の外部から、フリップフロップ回路610の入力、及びOR回路640の入力の入力端子に接続されている。
The
クロックマスク回路130は、マイクロコントローラ100の外部から供給されるクロックclk0信号、及び命令先読み回路120からの出力信号であるcri_flag信号が入力される。また、クロックマスク回路130は、命令先読み回路120を動作させるクロックclk1信号を出力する。さらに、クロックマスク回路130は、マスタ104、スレーブ106、メモリ108、及びレギュレータ110を動作させるクロックclk信号を出力する。
The
入力信号cri_flag信号は、セレクタ回路630のセレクト信号として送信される。
The input signal cri_flag signal is transmitted as a select signal of the
セレクタ回路630は、セレクト信号(cri_flag信号)が”0”のときにはセレクタ回路630の出力は”0”で固定される。セレクト信号(cri_flag信号)が”1”のときにはセレクタ回路630の出力信号はインバータ620の出力信号を選択する。
In the
フリップフロップ回路610の出力信号は、インバータ620を介して、セレクタ回路630に送信される。また、フリップフロップ回路610の出力信号は、OR回路640の入力信号として入力される。なお、フリップフロップ回路610には、クロックclk0信号がマイクロコントローラ100の外部から入っているので、初期値”0”が保持されている。
The output signal of the flip-
OR回路640のもう一方の入力には、クロックclk0信号が入力され、出力信号はクロックclk信号としてクロックマスク回路130から出力される。なお、もう一方の出力信号クロックclk1信号はクロックclk0信号がそのまま送信される(クロックclk1信号=クロックclk0信号)。
The clock clk0 signal is input to the other input of the
(従来技術の作用)
次に、以下、従来技術の作用を説明する。
(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
時刻T2において、スレーブ106からメモリ108に対してリードアクセスが発生する。
At time T2, a read access from the
時刻T3において、メモリ108からリードデータrdata1が出力され、スレーブ106がリードデータrdata1を受信する。このときの命令は、クリティカルパスの乗算命令”011”である。
At time T3, the read data rdata1 is output from the
時刻T4において、スレーブ106からマスタ104に対してリードデータrdata2を出力する。それと同時に命令先読み回路120のAND回路522、セレクタ回路540、及びready信号が”H”となる(トリガーとなる)。
At time T4, the read data rdata2 is output from the
時刻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
時刻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-
時刻T7において、命令先読み回路120のフリップフロップ回路514は’d100(10進数の100)となり、命令先読み回路120のフリップフロップ回路512の入力信号は”L”となる。
At time T7, the flip-
時刻T8において、命令先読み回路120のフリップフロップ回路512は”L”となるため、cri_flag信号も”L”となり、通常のクロック周波数の半分の速度に変更されたクロックclk信号は通常のクロック周波数に戻って動作する。
At time T8, since the flip-
次に、図8を参照して、クリティカルパス420を介したタイムチャート800を示す。
Next, referring to FIG. 8, a
タイムチャート800は、図4の回路のタイムチャートである。
A
(経過1−1)時刻T1において、クロックclk信号の立ち上がりによりフリップフロップ回路402の信号Iが”1”に変化する。
(Proceeding 1-1) At time T1, the signal I of the flip-
(経過1−2)時刻T2において、クロックclk信号の立ち上がりで信号Iがフリップフロップ回路402に保持される。
(Progress 1-2) At time T2, the signal I is held in the flip-
(経過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-
(経過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-
(経過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-
このように上記従来技術では、クリティカルパス420を通る命令を先読みすることにより、クリティカルパス420を通るときのみクロック周波数の周波数を遅くすることができる。
As described above, in the conventional technique, the frequency of the clock frequency can be reduced only when passing through the
次に、図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
時刻T2において、スレーブ106からメモリ108に対してリードアクセスが発生する。
At time T2, a read access from the
時刻T3において、メモリ108からリードデータrdata1が出力され、スレーブ106がリードデータrdata1を受信する。このときの命令は、分岐命令”100”である。
At time T3, the read data rdata1 is output from the
時刻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
At time T5, the
時刻T6において、スレーブ106からメモリ108に対してリードアクセスが発生する。
At time T6, read access from the
時刻T7において、メモリ108からリードデータrdata1が出力され、スレーブ106がリードデータrdata1を受信する。このときの命令は、クリティカルパスの乗算命令”011”である。
At time T7, the read data rdata1 is output from the
時刻T8において、スレーブ106からマスタ104に対してリードデータrdata2を出力する。それと同時に命令先読み回路120のAND回路522、セレクタ回路540、及びready信号が”H”となる(トリガーとなる)。
At time T8, the read data rdata2 is output from the
時刻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
時刻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-
時刻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
時刻T14において、スレーブ106からメモリ108に対してリードアクセスが発生する。
At time T14, a read access from the
時刻T15において、命令先読み回路120のフリップフロップ回路514は’d100(10進数の100)となり、命令先読み回路120のフリップフロップ回路512の入力信号セレクタ540の出力は”L”となる。それと同時に、メモリ108からリードデータrdata1が出力され、スレーブ106がリードデータrdata1を受信する。このときの命令は、クリティカルパスの乗算命令”011”である。
At time T15, the flip-
時刻T16において、命令先読み回路120のフリップフロップ回路512は”L”となるため、cri_flag信号も”L”となり、通常のクロック周波数の半分の速度に変更されたクロックclk信号は通常のクロック周波数に戻って動作する。また、スレーブ106からマスタ104に対してリードデータrdata2を出力する。それと同時に命令先読み回路120のAND回路522、セレクタ回路540、及びready信号が”H”となる(トリガーとなる)。
At time T16, since the flip-
時刻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
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
第1の実施の形態における命令先読み回路120には、上記の従来技術の命令先読み回路120の回路に図10の点線で囲まれた命令先読み付加回路121を付している。
The
第1の実施の形態における命令先読み付加回路121のフリップフロップ回路730は、クロックclk1信号の立ち上がりエッジで動作する。
The flip-
AND回路700には、AND回路520の出力信号、外部からリードデータrdata1の10ビット目の信号、外部からリードデータrdata1の9ビット目をインバータ回路711で反転した信号、及び外部からのリードデータrdata1の8ビット目をインバータ回路710で反転した信号を入力している。よって、AND回路700は、リードデータrdata1に、分岐命令データ”100”が存在する場合に、信号(H)を出力する。
In the AND
またAND回路700の出力信号端子は、OR回路740に接続され、OR回路740のもう一方の入力端子にはインバータ回路712の出力信号端子が接続されている。
The output signal terminal of the AND
インバータ回路712は、フリップフロップ回路730の出力信号が0の時に“H”となる信号が入力される。
The
OR回路740の出力信号は、セレクタ回路720のセレクト信号に接続される。また、セレクタ回路720には、フリップフロップ回路730の出力信号及びその出力に+1した信号が接続されている。
The output signal of the
セレクタ回路721には、セレクタ回路720の出力、フリップフロップ回路730の出力信号が5の時に“H”となる信号及び3‘b000(3ビットのバイナリ(2進数)の”000”)の各端子が接続されている。セレクタ回路721のセレクト信号はフリップフロップ回路730の出力信号が5の時に“H”となる信号である。
In the
また、フリップフロップ回路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
インバータ回路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-
(第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
At time T1, instruction fetch from the
時刻T2において、スレーブ106からメモリ108に対してリードアクセスが発生する。
At time T2, a read access from the
時刻T3において、メモリ108からリードデータrdata1が出力され、スレーブ106がリードデータrdata1を受信する。このときの命令データが、分岐命令データ”100”であるとする。
At time T3, the read data rdata1 is output from the
時刻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
At time T5, the
ところで、このとき、フリップフロップ回路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-
時刻T6において、スレーブ106からメモリ108に対してリードアクセスが発生する。なお、命令フェッチを示す信号op_fetch信号は”H”のままである。
At time T6, read access from the
時刻T7において、メモリ108からリードデータrdata1が出力され、スレーブ106がリードデータrdata1を受信する。このときの命令が、クリティカルパスの乗算命令データ”011”であるとする。
At time T7, the read data rdata1 is output from the
時刻T8において、スレーブ106からマスタ104及び命令先読み回路120に対してリードデータrdata2(10〜8ビット目がそれぞれ、0、1、1である)を出力し、上記のように、ready信号は”L”から”H”に変化される。
At time T8, the
リードデータ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
このようにセレクト回路540から出力信号(H)が命令先読み回路120のフリップフロップ回路512に入力されたので、フリップフロップ回路512の出力信号は”H”となる。このため、時刻T9直後にcri_flag信号が”H”となり、フリップフロップ回路514は0からカウントアップを開始する。
Thus, since the output signal (H) is input from the
ところで、上記のように時刻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-
一方、マスタ104は、分岐命令データに応じて次のアドレス0xD000_0000(Hexadecimal)に対する命令フェッチを出力する。このアドレスは、時刻T1でマスタ104が発行した命令フェッチアドレスの分岐命令により分岐したアドレスである。マスタ104は、分岐命令を実行するので、分岐命令の次の命令である0x0000_0014(Hexadecimal)の命令は実行しない。
On the other hand, the
上記のように、時刻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-
時刻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
一方、メモリ108からリードデータrdata1が出力され、スレーブ106がリードデータrdata1を受信する。
On the other hand, read data rdata1 is output from the
時刻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
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
時刻T2において、スレーブ106からメモリ108に対してリードアクセスが発生する。
At time T2, a read access from the
時刻T3において、メモリ108からリードデータrdata1が出力され、スレーブ106がリードデータrdata1を受信する。このときの命令は、クリティカルパスの乗算命令”011”であるとする。
At time T3, the read data rdata1 is output from the
時刻T4において、スレーブ106からマスタ104に対してリードデータrdata2を出力する。それと同時に命令先読み回路120のAND回路522、セレクタ回路540、及びready信号が”H”となる(トリガーとなる)。
At time T4, the read data rdata2 is output from the
時刻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
時刻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-
時刻T7において、メモリ108からリードデータrdata1が出力され、スレーブ106がリードデータrdata1を受信する。このときの命令は、分岐命令”100”であるとする。また、それと同時にクロックマスク回路130のフリップフロップ回路610は”L”となり、クロックclk0信号(=クロックclk1信号)の立ち上がりに合わせて1サイクル(周期)ずつclk信号をマスクしていく。
At time T7, the read data rdata1 is output from the
時刻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
At time T9, the
時刻T10において、スレーブ106からメモリ108に対してリードアクセスが発生する。
At time T10, read access from the
時刻T11において、メモリ108からリードデータrdata1が出力され、スレーブ106がリードデータrdata1を受信する。このときの命令は、ロード命令”000”であるとする。
At time T11, the read data rdata1 is output from the
時刻T12において、スレーブ106からマスタ104に対してリードデータrdata2を出力する。それと同時にready信号が”H”となる。
At time T <b> 12, the read data rdata <b> 2 is output from the
時刻T13において、マスタ104は、次のアドレス0xD000_0004(Hexadecimal)に対する命令フェッチを出力する。このアドレスは、時刻T5
でマスタ104が発行した命令フェッチアドレスの分岐命令により分岐したアドレスである。マスタ104は、分岐命令を実行することにより、分岐命令の次の命令である0x0000_0018(Hexadecimal)の命令は実行しない。
At time T13, the
This is the address branched by the branch instruction of the instruction fetch address issued by the
時刻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-
時刻T15において、時刻T14でフリップフロップ回路512の入力信号は“L”となるため、cri_flag信号も”L”となる。また、時刻T14でセレクタ回路721のセレクト信号が“H”となるため、フリップフロップ回路730の出力は“0”となる。
At time T15, since the input signal of the flip-
時刻T16において、マスタ104は、分岐命令を実行しているため、クリティカルパスがある乗算命令は実行していない。したがって、クロック周波数を遅くする必要もないため、フリップフロップ回路514のカウントアップは停止し、クロック周波数は元に戻る。以降、クリティカルパスによるクロック周波数変更は行われずに、通常の動作を行う。
以上説明したように、本願発明の第1の実施の形態によれば、クリティカルパス命令前後に分岐命令がある場合でも、分岐命令を実行する際にはクロック周波数を元に戻して命令を実行するため、分岐命令を実行している期間は、通常のクロック周波数で動作することとなり、LSI全体の性能低下を防ぐことが出来る。この結果、マスタの処理時間の低減、及びLSI全体の性能向上が期待できる。
At time T16, since the
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
マイクロコントローラ100は、アドレス150(addr)を、マスタ104から出力し、スレーブ106へ入力する。
図14に本願発明の第2の実施の形態における命令先読み回路120の回路図を示す。なお、図10の第1の実施の形態における命令先読み回路120の回路を示す構成図と、同一の構成には、同一の符号を付す。
The
FIG. 14 is a circuit diagram of the
命令先読み回路120には、図10の第1の実施の形態における命令先読み回路120に図14の点線で囲まれた命令先読み付加回路122を更に付している。
The
第2の実施の形態における命令先読み付加回路122のフリップフロップ回路800は、クロックclk1信号の立ち上がりエッジで動作する。
The flip-
フリップフロップ回路800には、外部からのアドレスaddrの出力端子が接続されている。
The flip-
外部からのアドレス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-
また比較回路810の出力信号端子は、OR回路820に接続され、OR回路820のもう一方の入力にはインバータ回路713の出力信号端子が接続されている。
The output signal terminal of the
OR回路820の出力信号端子は、AND回路830に接続されている。このAND回路830の接続は、本願発明の図10の第1の実施の形態における命令先読み回路120の回路のAND回路701と前記1つの接続のみ異なるが、それ以外は、本願発明の図10の第1の実施の形態における命令先読み回路120のAND回路701と同様の構成である。
An output signal terminal of the
(第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
At time T1, instruction fetch from the
時刻T2において、スレーブ106からメモリ108に対してリードアクセスが発生する。それと同時にフリップフロップ800は、アドレスaddrの値0x0000_0010を保持する。また、比較回路810の出力は、アドレスaddrとフリップフロップ800の出力信号の値が同じであるため“H”となる。
At time T2, a read access from the
時刻T3において、メモリ108からリードデータrdata1が出力され、スレーブ106がリードデータrdata1を受信する。このときの命令は、分岐命令”100”である。ただし、この分岐命令は条件分岐命令である。
At time T3, the read data rdata1 is output from the
時刻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
At time T5, the
時刻T6において、スレーブ106からメモリ108に対してリードアクセスが発生する。それと同時にフリップフロップ800は、アドレスaddrの値0x0000_0014を保持する。また、比較回路810の出力は、アドレスaddrとフリップフロップ800の出力信号の値が同じであるため“H”となる。
At time T6, read access from the
時刻T7において、メモリ108からリードデータrdata1が出力され、スレーブ106がリードデータrdata1を受信する。このときの命令は、クリティカルパスの乗算命令”011”である。
At time T7, the read data rdata1 is output from the
時刻T8において、スレーブ106からマスタ104に対してリードデータrdata2を出力する。それと同時に命令先読み回路120のAND回路522、セレクタ回路540、及びready信号が”H”となる(トリガーとなる)。
At time T8, the read data rdata2 is output from the
時刻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
時刻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-
時刻T11において、メモリ108からリードデータrdata1が出力され、スレーブ106がリードデータrdata1を受信する。以降、乗算命令が実行されている間は、クロック周波数を変更して動作する。
At time T11, the read data rdata1 is output from the
以上説明したように、本願発明の第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
なお、第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
420
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.
前記第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.
前記制御手段が、前記第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の命令データ、前記第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:
前記制御手段が、前記第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:
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)
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)
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 |
-
2009
- 2009-03-27 JP JP2009078921A patent/JP5414323B2/en not_active Expired - Fee Related
Patent Citations (3)
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)
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 |