JP2009163338A - Information processor - Google Patents
Information processor Download PDFInfo
- Publication number
- JP2009163338A JP2009163338A JP2007340051A JP2007340051A JP2009163338A JP 2009163338 A JP2009163338 A JP 2009163338A JP 2007340051 A JP2007340051 A JP 2007340051A JP 2007340051 A JP2007340051 A JP 2007340051A JP 2009163338 A JP2009163338 A JP 2009163338A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- information processing
- processing apparatus
- signal
- outputs
- 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.)
- Pending
Links
Images
Abstract
Description
本発明は、CPU等の主演算部と所定の演算を実行する拡張演算部とを有する情報処理装置に関する。 The present invention relates to an information processing apparatus having a main calculation unit such as a CPU and an extended calculation unit that executes a predetermined calculation.
基本性能向上のために、主として処理を行うCPUに加えて、所定の演算を実行する拡張演算器を有する情報処理装置の例が、特許文献1に開示されている。拡張演算器は、受け取った命令が実行可能である場合には、CPUから演算に係わるデータを受け取って演算を実行し、その結果をCPUに出力する。拡張演算器を有することにより、CPUが実行できない特別な命令が実行可能となり、拡張演算器を持たない場合よりプログラムのコードサイズを小さくすることができる。これにより命令メモリの容量を小さくすることができる。また、拡張演算器が演算を実行している間はCPUは別の命令を実行することができるので、情報処理装置の基本性能が向上する。
In order to improve basic performance, an example of an information processing apparatus having an extended arithmetic unit that executes a predetermined calculation in addition to a CPU that mainly performs processing is disclosed in
用途に応じた構成の拡張演算器を用いるようにすることにより、CPUの物理的構成を変更することなく、情報処理装置としての性能を上げることが容易となる。また、拡張演算器のみを用途によって改変すればよいので、一から専用の情報処理装置を作成する場合に比べて、開発に要する時間を短縮することができるという利点もある。
このような情報処理装置においても、CPUの処理を一定期間待たせる場合には、CPUにNOP命令やループ命令を実行させている。しかし、CPUによる命令フェッチ時のバスにおける競合によって、予定していた待ち時間と実際の待ち時間との間に誤差が生じてしまい、プログラムの修正が必要になるという問題があった。 Even in such an information processing apparatus, when the CPU processing is to be waited for a certain period, the CPU is caused to execute a NOP instruction or a loop instruction. However, there is a problem that an error occurs between the scheduled waiting time and the actual waiting time due to competition in the bus at the time of instruction fetch by the CPU, and the program needs to be corrected.
また、一定時間経過後に割り込みや外部回路の制御を行うことは、CPUから直接行うことはできないので、外部のタイマを操作してその出力信号によって制御する必要があった。すなわち、複雑な手順で操作することが必要であり、そのための機能を加えることで回路面積が増加するという問題があった。 Also, since interrupts and control of external circuits cannot be performed directly from the CPU after a certain period of time has elapsed, it has been necessary to operate an external timer and control it according to its output signal. That is, it is necessary to operate in a complicated procedure, and there is a problem that the circuit area is increased by adding a function therefor.
本発明は、命令によってCPU等の主演算部に処理を待たせる場合に、待たせる時間を正確に制御することを目的とする。 It is an object of the present invention to accurately control the waiting time when a main processing unit such as a CPU waits for processing according to an instruction.
前記課題を解決するため、本発明が講じた手段は、情報処理装置として、メモリから読み出された命令に従って処理を行う主演算部と、前記メモリから読み出された命令のうちの所定の命令に従って処理を行う拡張演算部とを有するものである。前記拡張演算部は、クロック信号のパルスをカウントし、前記メモリから読み出された命令が前記主演算部を待機させる待機命令である場合には、待機すべきであることを示す信号を、前記待機命令において指定された待機カウント数に相当するカウントが完了するまで出力する信号生成回路を有する。前記主演算部は、前記待機すべきであることを示す信号が出力されている間は、処理を停止する。 In order to solve the above problems, the means taken by the present invention includes an information processing device as a main operation unit that performs processing according to an instruction read from a memory, and a predetermined instruction among the instructions read from the memory. And an extended arithmetic unit that performs processing according to the above. The extended arithmetic unit counts pulses of a clock signal, and when the instruction read from the memory is a standby instruction that causes the main arithmetic unit to wait, a signal indicating that it should wait It has a signal generation circuit that outputs until the count corresponding to the standby count number specified in the standby instruction is completed. The main arithmetic unit stops the process while the signal indicating that the standby should be performed is output.
これによると、拡張演算部が所定の命令において指定された待機カウント数に基づいて生成した信号によって、主演算部が処理を停止する。処理を待機させるために主演算部に命令を実行させる必要がないので、命令フェッチの際に外部バスを用いることに起因して生じる予測待ち時間と実際の待ち時間との間の誤差がなくなる。また、このような処理を1つの命令で実現するので、プログラムのコードサイズを小さくすることができ、プログラムの作成を容易にすることができる。 According to this, the main arithmetic unit stops the processing by the signal generated by the extended arithmetic unit based on the standby count number specified in the predetermined instruction. Since it is not necessary to cause the main arithmetic unit to execute an instruction in order to wait for processing, there is no error between the predicted waiting time and the actual waiting time caused by using the external bus at the time of instruction fetch. In addition, since such processing is realized by one instruction, the code size of the program can be reduced, and the creation of the program can be facilitated.
本発明によれば、命令によってCPU等に処理を待たせる場合に、バスの状態の影響を受けることがなく、待たせる時間を正確に制御することができる。1つの命令を用い、クロック信号のサイクル数を指定すればよいので、プログラムの作成が容易になる。 According to the present invention, when the CPU or the like is caused to wait for processing by an instruction, it is possible to accurately control the waiting time without being affected by the state of the bus. Since it is sufficient to use one instruction and specify the number of cycles of the clock signal, it is easy to create a program.
以下、本発明の実施の形態について、図面を参照しながら説明する。 Hereinafter, embodiments of the present invention will be described with reference to the drawings.
(第1の実施形態)
図1は、本発明の第1の実施形態に係る情報処理装置の構成を示すブロック図である。図1の情報処理装置100は、主演算部としてのCPU(central processing unit)110と、拡張演算部としての拡張演算器120と、ROM(read-only memory)130とを有している。CPU110は、CPU命令デコーダ111と、CPU制御回路112と、汎用レジスタ113と、演算器114とを有している。拡張演算器120は、拡張命令デコーダ121と、拡張命令制御回路122と、演算器123,124と、信号生成回路としての制御信号発生回路125と、セレクタ126と、論理和回路127とを有している。
(First embodiment)
FIG. 1 is a block diagram showing the configuration of the information processing apparatus according to the first embodiment of the present invention. The
CPU110及び拡張演算器120は、クロック信号CLKに同期して動作する。CPU110は、各種情報処理を実行する機能を有しており、命令アドレスをROM130に出力する。ROM130は、受け取った命令アドレスに対応する命令を、命令バス141を経由して命令デコーダ111及び拡張命令デコーダ121に供給する。
The
CPU命令デコーダ111は、命令バス141から供給された命令をデコードし、デコード結果を出力する。CPU制御回路112は、CPU命令デコーダ111のデコード結果であるデコード信号CDCの内容と、拡張演算器120から供給される制御信号ECPとに基づいて、各種制御信号PCNを生成し、CPU110の各回路に出力する。
The
汎用レジスタ113は、データを格納するレジスタD0,D1,D2,D3を有している。演算器114は、CPU制御回路112から供給される制御信号に従って、データ入力バス143及びデータ入力バス144から入力された値に対する演算を行い、演算処理結果をデータ出力バス145に出力する。
The general-
拡張演算器120は、ROM130から供給される命令が拡張命令の場合に、その拡張命令に従って各種情報処理を実行する機能を有している。拡張命令デコーダ121は、命令バス141から供給された拡張命令をデコードし、デコード結果を出力する。拡張命令制御回路122は、拡張命令デコーダ121のデコード結果であるデコード信号EDCの内容に従って、制御信号IC1,IC2,IC3,ICSを生成し出力する。
The extended
演算器123は、制御信号IC1に従って、データ入力バス143及びデータ入力バス144から入力された値に対して演算処理を行い、得られた演算処理結果PO1及び制御信号EC1を出力する。演算器124は、制御信号IC2に従って、データ入力バス143及びデータ入力バス144から入力された値に対して演算処理を行い、得られた演算処理結果PO2及び制御信号EC2を出力する。制御信号発生回路125は、制御信号IC3と、データ入力バス143から入力された値に基づいて演算処理を行い、制御信号EC3を出力する。
The
セレクタ126は、制御信号ICSに従って、演算器123の演算処理結果PO1と、演算器124の演算処理結果PO2とのいずれか1つを選択し、選択された値をデータ出力バス145に出力する。論理和回路127は、制御信号EC1,EC2及びEC3の論理和を求め、制御信号ECPとして出力する。
The
図2は、図1の制御信号発生回路125の構成例を示すブロック図である。制御信号発生回路125は、制御回路62と、比較値保持回路64と、カウンタ回路66と、比較器68とを有している。
FIG. 2 is a block diagram showing a configuration example of the control
制御回路62は、制御信号IC3と、データ入力バス143の値と、比較器68から供給される一致信号CMRとに従って、比較値保持回路64を制御するための制御信号CHと、カウンタ回路66を制御するための制御信号CCと、制御信号EC3とを生成し、出力する。比較値保持回路64は、制御信号CHに従って、データ入力バス143からの入力値の出力データCMVとしての出力、データ入力バス143からの入力値の保持、及び保持している値の出力データCMVとしての出力を行う。
The
カウンタ回路66は、制御信号CCに従って、クロック信号CLKのパルスのカウントアップ、リセット、及びカウント値の出力データCNTとしての出力を行う。比較器68は、比較値保持回路64の出力データCMVと、カウンタ回路66の出力データCNTとを比較し、比較結果を一致信号CMRとして制御回路62に出力する。
The
図3は、図1の情報処理装置100の動作の例を示すタイミングチャートである。ウェイト命令(待機命令)は、その命令に指定された時間だけCPU110の処理を待機させる拡張命令であり、待機させる時間は例えば待機カウント数で表される。ウェイト命令は、例えば「WAIT Dm」(DmはレジスタD0〜D3のいずれかを示す)と記述される。この場合、レジスタDmに格納された値(待機カウント数)だけカウンタ回路66がカウントアップするまで、CPU110の処理が待たされる。
FIG. 3 is a timing chart showing an example of the operation of the
図3において、IFステージとは、命令がROM130から読み出される処理が行われている段階を示す。DECステージとは、ROM130から読み出された命令を、CPU命令デコーダ111及び拡張命令デコーダ121がデコード処理を行い、制御信号を出力する処理が行われている段階を示す。EXステージとは、デコードの結果得られた制御信号によって、CPU110及び拡張演算器120が演算を実行する処理が行われている段階を示す。各ステージの「W」は、ウェイト命令の処理中であることを示し、「N」は、ウェイト命令の後続の命令の処理中であることを示す。
In FIG. 3, the IF stage indicates a stage where a process for reading an instruction from the
CPU110は、ROM130から命令バス141を経由してウェイト命令を読み出す。時刻T1からCPU命令デコーダ111は、ウェイト命令をデコードし、得られたデコード信号CDCを出力する。CPU制御回路112は、デコード信号CDCに基づいて各種制御信号PCNを生成し、CPU110の各回路に出力する。
The
CPU命令デコーダ111とほぼ同じタイミングで、拡張演算器120の拡張命令デコーダ121は、ウェイト命令をデコードし、得られたデコード信号EDCを出力する。拡張命令制御回路122は、ウェイト命令が実行されたことをデコード信号EDCから判定し、時刻T1〜T2の間、制御信号IC3として「1」を出力する。また、拡張命令制御回路122は、ウェイト命令以外の命令が実行されないように、制御信号IC1,IC2,ICSとして「0」を出力する。
At substantially the same timing as the
時刻T2から、CPU110は、ウェイト命令のデコードの結果得られた各種制御信号PCNに従って、ウェイト命令で指定された、汎用レジスタ113のレジスタDmから値を読み出し、データ入力バス143に出力する。例として、レジスタDmが格納している値は3であるとする。制御信号発生回路125内の制御回路62は、制御信号IC3が「1」なので、ウェイト命令動作を開始し、制御信号CH,CCを出力する。
From
制御信号CHに従って、比較値保持回路64は、データ入力バス143の値を保持して、出力データCMVとして値「3」を出力する。制御信号CCに従って、カウンタ回路66は、出力データCNTとして「0」を出力し、カウント値を「1」カウントアップする。比較器68は、出力データCMVと出力データCNTの値を比較し、一致しないので一致信号CMRとして「0」を出力する。制御回路62は、一致信号CMRが「0」なので、待機すべきであることを示す信号として、制御信号EC3を「1」にして出力する。
In accordance with the control signal CH, the comparison
論理和回路127は、制御信号ECPとして「1」を出力する。CPU制御回路112は、制御信号ECPが「1」なので、各種制御信号PCNを出力し、時刻T3からCPU110のパイプライン動作を停止させる。
The OR
時刻T3以降、制御信号発生回路125は動作を続け、サイクル毎にカウンタ回路66をカウントアップし、比較値保持回路64の出力データCMVとカウンタ回路66の出力データCNTとを比較し、値が一致するまで動作を継続する。時刻T5で、比較値保持回路64の出力データCMVとカウンタ回路66の出力データCNTとが一致するので、比較器68は一致信号CMRとして「1」を出力する。
After time T3, the control
制御回路62は、一致信号CMRが「1」なので、ウェイト命令動作の終了と判断し、制御信号EC3として「0」を出力する。すると、論理和回路127は、制御信号ECPとして「0」を出力する。CPU制御回路112は、制御信号ECPが「0」なので、各種制御信号PCNを出力し、時刻T6からCPU110のパイプライン動作を再開させる。
Since the coincidence signal CMR is “1”, the
図3に示すように、ウェイト命令に指定されたレジスタDmの値を3に設定すれば、4サイクルの期間、CPUの処理を待たせることができる。レジスタDmへのサイクル数の設定値は、「待ち時間×動作周波数−1」とすればよく、容易に求めることができる。 As shown in FIG. 3, if the value of the register Dm specified in the wait instruction is set to 3, the CPU processing can be made to wait for a period of 4 cycles. The set value of the number of cycles in the register Dm may be “waiting time × operation frequency−1” and can be easily obtained.
以上説明したように、情報処理装置100においては、CPUの処理を一定期間、待たせる必要があるときには、レジスタDmに値を設定してウェイト命令を実行すればよい。拡張演算器120においてカウントを行うので、バスの状態の影響を受けることなく、CPU等に処理を待たせる時間を正確に制御することができる。
As described above, in the
なお、第1の実施形態では、カウント回路66はカウントアップを行うと説明したが、カウントダウンを行うことによって、制御信号発生回路125の機能を実現することもできる。また、信号の論理は上記とは逆であってもよい。
In the first embodiment, it has been described that the
また、ウェイト命令に記述されたレジスタDmが格納する値を待機カウント数として用いる場合について説明したが、ウェイト命令に値を直接記述し、その値を、待機カウント数として用いるようにしてもよい。 Although the case where the value stored in the register Dm described in the wait instruction is used as the wait count number has been described, the value may be directly described in the wait instruction and the value may be used as the wait count number.
また、拡張演算器120内に複数のサイクル数設定レジスタを設けることとし、ウェイト命令にDmとして記述された値に従って、サイクル数設定レジスタを1つ選択し、そのレジスタの値を、待機カウント数として用いるようにしてもよい。
Further, a plurality of cycle number setting registers are provided in the extended
(第2の実施形態)
図1の装置によると、CPU等に処理を待たせるために制御信号発生回路125が必要であり、回路規模が増大する。そこで、本実施形態では、拡張演算器120内のウェイト命令実行中に動作をしない演算器のリソースを用いることにより、回路規模の増大を抑えるようにする。
(Second Embodiment)
According to the apparatus shown in FIG. 1, the control
図4は、本発明の第2の実施形態に係る情報処理装置の構成を示すブロック図である。図4の情報処理装置200は、拡張演算器120に代えて拡張演算器220を有する点以外は、図1の情報処理装置100と同様である。拡張演算器220は、演算器124に代えて演算器224を有し、制御信号発生回路125を有しない点以外は、拡張演算器120と同様である。情報処理装置100の構成要素と同一の構成要素については、同一の参照番号を付してその説明を省略する。
FIG. 4 is a block diagram showing the configuration of the information processing apparatus according to the second embodiment of the present invention. The
図5は、図4の演算器224の構成例を示すブロック図である。演算器224は、制御回路262と、乗算器263と、セレクタ264,267,269と、レジスタ265,266と、加算器268とを有している。乗算器263、セレクタ264,267、レジスタ265,266、及び加算器268は、積和演算を行う演算回路を構成している。
FIG. 5 is a block diagram illustrating a configuration example of the
演算器224は、積和演算を行う回路である。演算器224は、拡張命令制御回路122から供給される制御信号IC2に従って、データ入力バス143から入力された値と、データ入力バス144から入力された値との間で乗算又は積和演算を行い、得られた結果を演算処理結果PO2として出力し、パイプライン制御のために制御信号EC2を出力する。更に、演算器224は、制御信号IC3に従って、データ入力バス143から入力された値に基づいて演算処理を行い、図1の制御信号発生回路125と同様の処理を行い、その結果を、制御信号EC3として出力する。
The
乗算命令は、乗算のための拡張命令であり、例えば「MUL Dm,Dn」(Dm及びDnはレジスタD0〜D3のいずれかを示す)と記述される。積和命令は、積和のための拡張命令であり、例えば「MAC Dm,Dn」(Dm及びDnはレジスタD0〜D3のいずれかを示す)と記述される。積和結果取得命令は、積和の結果を取得するための拡張命令であり、例えば「GETMAC Dn」(Dm及びDnはレジスタD0〜D3のいずれかを示す)と記述される。 The multiplication instruction is an extension instruction for multiplication, and is described as, for example, “MUL Dm, Dn” (Dm and Dn indicate any of registers D0 to D3). The product-sum instruction is an extension instruction for product-sum, and is described as, for example, “MAC Dm, Dn” (Dm and Dn indicate any of registers D0 to D3). The product-sum result acquisition instruction is an extension instruction for acquiring the product-sum result, and is described as, for example, “GETMAC Dn” (Dm and Dn indicate any of registers D0 to D3).
乗算命令が実行される際の情報処理装置200の動作について説明する。ウェイト命令の場合と同様に、CPU110は、ROM130から乗算命令を読み出し、デコードを行い、得られたデコード信号CDCを出力する。CPU制御回路112は、デコード信号CDCに基づいて各種制御信号PCNを生成し、CPU110の各回路に出力する。
An operation of the
CPU命令デコーダ111とほぼ同じタイミングで、拡張演算器220の拡張命令デコーダ121は、乗算命令をデコードし、得られたデコード信号EDCを出力する。拡張命令制御回路122は、乗算命令が実行されたことをデコード信号EDCから判定し、制御信号IC2,ICSを出力する。また、拡張命令制御回路122は、乗算命令以外の命令が実行されないように、制御信号IC1,IC3を出力する。
At substantially the same timing as the
CPU110は、乗算命令のデコードの結果得られた各種制御信号PCNに従って、汎用レジスタ113のレジスタDmから値を読み出してデータ入力バス143に出力し、汎用レジスタ113のレジスタDnから値を読み出してデータ入力バス144に出力する。乗算器263は、データ入力バス143の値とデータ入力バス144の値とを乗算し、その乗算結果を出力する。
The
演算器224の制御回路262は、制御信号IC2に従って乗算処理を開始し、制御信号SL3を出力する。セレクタ269は、制御信号SL3に従って乗算器263の出力を選択し、演算処理結果PO2として出力する。セレクタ126は、制御信号ICSに従って、演算器224の演算処理結果PO2を選択し、選択された値をデータ出力バス145に出力する。CPU110は、データ出力バス145の値を、汎用レジスタ113のレジスタDnに格納する。
The
次に、積和命令及び積和結果取得命令が実行される際の情報処理装置200の動作について説明する。積和命令の処理の際も、乗算命令の場合と同様に、ROM130から命令が読み出されてデコードされ、各種制御信号PCNが出力される。
Next, the operation of the
CPU命令デコーダ111とほぼ同じタイミングで、拡張命令デコーダ121は、積和命令をデコードし、得られたデコード信号EDCを出力する。拡張命令制御回路122は、積和命令が実行されたことをデコード信号EDCから判定し、制御信号IC2を出力する。また、拡張命令制御回路122は、積和命令以外の命令が実行されないように、制御信号IC1,IC3,ICSを出力する。CPU110は、積和命令のデコードの結果得られた各種制御信号PCNに従って、汎用レジスタ113のレジスタDmから値を読み出してデータ入力バス143に出力し、汎用レジスタ113のレジスタDnから値を読み出してデータ入力バス144に出力する。
At substantially the same timing as the
制御回路262は、制御信号IC2に従って積和処理を開始し、制御信号SL1,SL2,SL3,SR1,SR2,EC2を生成して出力する。セレクタ264は、制御信号SL1に従って、乗算器263の出力を選択し、出力する。レジスタ265は、制御信号SR1に従って、セレクタ264から出力された値を格納し、出力する。レジスタ266は、制御信号SR2に従って、保持している値を出力する。セレクタ267は、制御信号SL2に従って、レジスタ266から出力された値を選択し、出力する。
The
次のサイクルで、加算器268は、レジスタ265から出力された値とセレクタ267から出力された値とを加算し、得られた結果を出力する。レジスタ266は、制御信号SR2に従って、加算器268から出力された値を格納する。
In the next cycle, the
積和命令実行後に、積和結果取得命令を実行する。積和結果取得命令の処理の際も、乗算命令の場合と同様に、ROM130から命令が読み出されてデコードされ、各種制御信号PCNが出力される。
After execution of the product-sum instruction, the product-sum result acquisition instruction is executed. Also in the case of processing the product-sum result acquisition instruction, the instruction is read out from the
CPU命令デコーダ111とほぼ同じタイミングで、拡張命令デコーダ121は、積和結果取得命令をデコードし、得られたデコード信号EDCを出力する。拡張命令制御回路122は、積和結果取得命令が実行されたことをデコード信号EDCから判定し、制御信号IC2,ICSを出力する。また、拡張命令制御回路122は、積和結果取得命令以外の命令が実行されないように、制御信号IC1,IC3を出力する。
At substantially the same timing as the
制御回路262は、制御信号IC2に従って積和結果取得処理を開始し、制御信号SL3を生成して出力する。セレクタ269は、制御信号SL3に従って、レジスタ266から出力された値を選択し、出力する。セレクタ126は、制御信号ICSに従って、演算器224から出力された演算処理結果PO2を選択し、データ出力バス145に出力する。CPU110は、データ出力バス145の値を、汎用レジスタ113のレジスタDnに格納する。
The
次に、ウェイト命令が実行される際の情報処理装置200の動作について説明する。ここでは演算器224の動作についてのみ説明する。その他の構成要素の動作は、第1の実施形態と同様である。汎用レジスタ113のレジスタDmから読み出された値が、データ入力バス143に出力されているとする。制御回路262は、制御信号IC3に従ってウェイト処理を開始し、制御信号SL1,SR1,SL2,EC3を生成して出力する。
Next, the operation of the
セレクタ264は、制御信号SL1に従ってデータ入力バス143の値を選択し、出力する。レジスタ265は、制御信号SR1に従って、セレクタ264から出力された値を格納し、出力する。セレクタ267は、制御信号SL2に従って、「−1」を選択し、出力する。加算器268は、レジスタ265から出力された値とセレクタ267から出力された値とを加算し、得られた結果をセレクタ264及びレジスタ266に出力し、キャリーアウトを制御回路262に出力する。
The
制御信号SL1が「1」の間はウェイト命令が実行される。制御回路262は、加算器268のキャリーアウトが「1」の間は制御信号EC3として「1」を出力する。このとき、制御信号ECPとして「1」が出力される。CPU制御回路112は、制御信号ECPが「1」なので、各種制御信号PCNによってCPU110のパイプライン動作を停止させる。
While the control signal SL1 is “1”, a wait instruction is executed. The
ウェイト命令実行中は、セレクタ264は、制御信号SL1に従って、加算器268から出力される値を選択して出力し、レジスタ265は、制御信号SR1に従って、セレクタ264から出力される値を保持し、出力する。加算器268は、前述のようなレジスタ265から出力された値とセレクタ267から出力された値との加算をサイクル毎に繰り返す。
During the execution of the wait instruction, the
制御回路262は、加算器268のキャリーアウトが「0」になったとき、ウェイト処理を終了すべきであると判定し、制御信号EC3として「0」を出力する。CPU制御回路112は、制御信号EC3によって制御信号ECPが「0」になるので、各種制御信号146によってCPU110のパイプライン動作を再開させる。
When the carry-out of the
(第3の実施形態)
図1の装置によると、パイプラインを停止させるので、待機状態を解除する必要がある場合に、CPU110は外部からの割り込みを受け付けることができない。そこで本実施形態では、拡張演算器120の制御信号発生回路125にも割り込み信号を与えることにより、ウェイト命令を実行中であっても割り込みが可能となるようにする。
(Third embodiment)
According to the apparatus of FIG. 1, since the pipeline is stopped, the
図6は、本発明の第3の実施形態に係る情報処理装置の構成を示すブロック図である。図6の情報処理装置200は、拡張演算器120に代えて拡張演算器320を有する点以外は、図1の情報処理装置100と同様である。拡張演算器320は、制御信号発生回路125に代えて制御信号発生回路325を有する点以外は、拡張演算器120と同様である。割り込み制御回路302は、情報処理装置200の外部から供給される割り込みのための制御信号INRが「0」になると、CPU110に割り込みを行う。情報処理装置100の構成要素と同一の構成要素については、同一の参照番号を付してその説明を省略する。
FIG. 6 is a block diagram showing the configuration of the information processing apparatus according to the third embodiment of the present invention. The
図7は、図6の制御信号発生回路325の構成例を示すブロック図である。制御信号発生回路325は、論理和回路369を更に有している点以外は、図2の制御信号発生回路125と同様である。
FIG. 7 is a block diagram illustrating a configuration example of the control
図8は、図6の情報処理装置300の動作の例を示すタイミングチャートである。例として、制御信号INRは負論理であるとして説明する。この場合、制御信号INRが「0」になることにより、割り込み処理が開始される。第1の実施形態と同様にウェイト命令「WAIT Dm」が実行される場合について、図3の場合と異なる点についてのみ説明する。
FIG. 8 is a timing chart showing an example of the operation of the
レジスタDmが格納している値は5であるとし、制御信号INRは「1」であるとする。時刻T4までの動作は、図3の場合と同様である。ただし、論理和回路369は、比較器68から出力される一致信号CMRと、制御信号INRを反転させた結果との論理和を求め、その結果を信号CINとして一致信号CMRに代えて制御回路62に与える。
Assume that the value stored in the register Dm is 5, and the control signal INR is “1”. The operation up to time T4 is the same as in FIG. However, the
時刻T4〜T5において、割り込み要求が発生したとする。このとき、制御信号INRが「0」になる。割り込み制御回路302は、CPU110に割り込みを行う。しかし、CPU110は、ウェイト命令実行中であってパイプラインを停止しているため、割り込みを受け付けない。
Assume that an interrupt request occurs at times T4 to T5. At this time, the control signal INR becomes “0”. The interrupt
論理和回路369は、制御信号INRが「0」になると、信号CINとして「1」を出力する。制御回路62は、信号CINが「1」になると、第1の実施形態において比較器68が一致と判定したときと同様に、ウェイト命令動作の終了と判断し、制御信号EC3として「0」を出力する。すると、論理和回路127は、制御信号ECPとして「0」を出力する。
The OR
CPU制御回路112は、制御信号ECPが「0」なので、各種制御信号PCNを出力し、時刻T5からCPU110のパイプライン動作を再開させる。すると、割り込み制御回路302から割り込みが行われている状態であるので、CPU110は割り込み処理を開始する。
Since the control signal ECP is “0”, the
以上のように、図6の情報処理装置によると、ウェイト命令の実行中であっても、CPU110が割り込み処理を実行することができる。
As described above, according to the information processing apparatus of FIG. 6, even when a wait instruction is being executed, the
なお、割り込み信号は負論理であるとして説明したが、正論理であってもよい。この場合には、論理和回路369の構成を変えればよい。また、割り込み信号が複数ある場合には、それらの論理和を制御信号発生回路325へ供給するようにすればよい。
Although the interrupt signal has been described as being negative logic, it may be positive logic. In this case, the configuration of the
(第4の実施形態)
図1の装置によると、CPU110が待機している間にも、CPU110は電力を消費する。そこで本実施形態では、拡張演算器120から出力される制御信号ECPを用いて、待機中にはCPU110へのクロック信号の供給を停止し、無駄な電力消費を抑えるようにする。
(Fourth embodiment)
According to the apparatus of FIG. 1, the
図9は、本発明の第4の実施形態に係る情報処理装置の構成を示すブロック図である。図9の情報処理装置400は、クロック制御回路480を更に有する点以外は、図1の情報処理装置100と同様である。情報処理装置100の構成要素と同一の構成要素については、同一の参照番号を付してその説明を省略する。
FIG. 9 is a block diagram showing the configuration of the information processing apparatus according to the fourth embodiment of the present invention. The
図10は、図9のクロック制御回路480の構成例を示すブロック図である。クロック制御回路480は、インバータ482と、フリップフロップ(FF)484と、論理積回路486とを有している。
FIG. 10 is a block diagram illustrating a configuration example of the
インバータ482は、情報処理装置400の外部から供給されるクロック信号CLKを、その論理を反転させて出力する。FF484は、インバータ482の出力に同期して、拡張演算器120から供給される制御信号ECPの値を保持し、その値を制御信号FECとして出力する。論理積回路486は、制御信号FECを反転した値とクロック信号CLKとの論理積を求め、クロック信号CKPとしてCPU110に出力する。CPU110は、クロック信号CKPに従って動作する。
The
図11は、図9の情報処理装置400の動作の例を示すタイミングチャートである。ウェイト命令の実行中ではない場合には、制御信号ECPが「0」であるので、クロック信号CLKとクロック信号CKPとはほぼ同じ波形となる。第1の実施形態と同様にウェイト命令「WAIT Dm」が実行される場合について、図3の場合と異なる点についてのみ説明する。レジスタDmが格納している値は5であるとする。時刻T2までの動作は、図3の場合と同様である。
FIG. 11 is a timing chart showing an example of the operation of the
時刻T2において制御信号ECPが「1」になるので、時刻T2〜T3において、FF484は、制御信号FECを「1」にする。制御信号FECが「1」なので、論理積回路486は、クロック信号CKPとして「0」を出力する。この状態は、時刻T8の前まで続く。クロック制御回路480から供給されるクロック信号CKPが「0」のままであるので、CPU110は、その全体の動作を停止する。
Since the control signal ECP becomes “1” at time T2, the
時刻T7において、比較値保持回路64の出力データCMVとカウンタ回路66の出力データCNTとが一致するので、比較器68は一致信号CMRとして「1」を出力する。制御回路62は、一致信号CMRが「1」なので、ウェイト命令動作の終了と判断し、制御信号EC3として「0」を出力する。すると、論理和回路127は、制御信号ECPとして「0」を出力する。
At time T7, since the output data CMV of the comparison
制御信号ECPが「0」なので、クロック制御回路480のFF484は、制御信号FECとして「0」を出力する。論理積回路486は、クロック信号CKPとしてクロック信号CLKをそのまま出力する。したがって、時刻T8から、CPU110へのクロック信号CKPの供給が再開され、CPU110は通常のパイプライン動作を開始する。
Since the control signal ECP is “0”, the
以上のように、図9の情報処理装置はクロック制御回路480を有しているので、ウェイト命令実行中にCPU110に無駄なクロック信号を供給することがなくなり、電力消費を抑えることができる。
As described above, since the information processing apparatus of FIG. 9 includes the
なお、演算器123又は124が、拡張命令によって複数サイクルCPU110を待たせて演算処理をする場合にも、同様にCPU110へのクロック信号CKPの供給を制御することができ、拡張演算実行時の電力消費を抑えることができる。
Note that when the
(第5の実施形態)
本実施形態では、拡張演算器が外部の回路を制御する例について説明する。
(Fifth embodiment)
In this embodiment, an example in which an extended arithmetic unit controls an external circuit will be described.
図12は、本発明の第5の実施形態に係る情報処理装置の構成を示すブロック図である。図12の情報処理装置500は、拡張演算器120に代えて拡張演算器520を有する点以外は、図1の情報処理装置100と同様である。拡張演算器520は、制御信号発生回路125に代えて制御信号発生回路525を有する点以外は、拡張演算器120と同様である。情報処理装置100の構成要素と同一の構成要素については、同一の参照番号を付してその説明を省略する。
FIG. 12 is a block diagram showing the configuration of the information processing apparatus according to the fifth embodiment of the present invention. The
図13は、図12の制御信号発生回路525の構成例を示すブロック図である。制御信号発生回路525は、制御回路62に代えて制御回路562を有している点以外は、図2の制御信号発生回路125と同様である。
FIG. 13 is a block diagram illustrating a configuration example of the control
図14は、図12の情報処理装置500の動作の例を示すタイミングチャートである。外部信号出力命令A(信号生成命令)は、拡張演算器520に、CPUが設定した時間の経過後に、情報処理装置500の外部へ制御信号を出力させるための拡張命令である。外部信号出力命令B(信号生成命令)は、拡張演算器520に、CPUが設定した時間の間隔で、情報処理装置500の外部へ制御信号を繰り返し出力させるための拡張命令である。信号生成終了命令は、外部信号出力命令Bのための動作を終了するための拡張命令である。
FIG. 14 is a timing chart showing an example of the operation of the
以下では、例として、外部信号出力命令A及び外部信号出力命令Bが出力させる制御信号が、割り込み要求のための制御信号であり、信号生成終了命令として割り込み終了命令を用いる場合について説明する。外部信号出力命令A、外部信号出力命令B及び割り込み終了命令は、それぞれ、例えば「SWIO Dm」、「SWII Dm」、「SWIE」(DmはレジスタD0〜D3のいずれかを示す)と記述される。 Hereinafter, as an example, a case will be described in which the control signal output by the external signal output command A and the external signal output command B is a control signal for an interrupt request, and the interrupt end command is used as the signal generation end command. The external signal output command A, the external signal output command B, and the interrupt end command are described as, for example, “SWIO Dm”, “SWII Dm”, and “SWIE” (Dm indicates one of the registers D0 to D3). .
図14において、各ステージの「IO」は、外部信号出力命令Aの処理中であることを示し、「II」は、外部信号出力命令Bの処理中であることを示し、「IE」は、割り込み終了命令の処理中であることを示す。 In FIG. 14, “IO” of each stage indicates that the external signal output instruction A is being processed, “II” indicates that the external signal output instruction B is being processed, and “IE” Indicates that an interrupt end instruction is being processed.
外部信号出力命令Aが実行される際の情報処理装置500の動作について説明する。ウェイト命令の場合と同様に、CPU110は、ROM130から外部信号出力命令Aを読み出し、デコードを行い、得られたデコード信号CDCを出力する。CPU制御回路112は、デコード信号CDCに基づいて各種制御信号PCNを生成し、CPU110の各回路に出力する。
The operation of the
拡張演算器520の拡張命令デコーダ121は、外部信号出力命令Aをデコードし、得られたデコード信号EDCを出力する。拡張命令制御回路122は、外部信号出力命令Aが実行されたことをデコード信号EDCから判定し、時刻T1〜T2において制御信号IC3を出力する。
The
時刻T2において、CPU110は、外部信号出力命令Aのデコードの結果得られた各種制御信号PCNに従って、汎用レジスタ113のレジスタDmから値を読み出してデータ入力バス143に出力する。制御信号発生回路525の制御回路562は、制御信号IC3に従って外部信号出力命令Aの処理を開始する。制御回路562は、図2の制御回路62と同様に、比較値保持回路64及びカウンタ回路66を制御する。比較器68は、比較値保持回路64の出力データCMVと、カウンタ回路66の出力データCNTとを比較し、両者が一致しないので、一致信号CMRとして「0」を出力する。
At time T2, the
外部信号出力命令Aを実行中は、制御回路562は、常に制御信号EC3として「0」を出力し、CPU110のパイプライン動作を停止させることはない。また、一致信号CMRが「0」なので、制御回路562は、制御信号INRとして「1」を出力する。外部信号出力命令Aの実行中は、比較値保持回路64は値を保持し、カウンタ回路66はカウントアップを続ける。比較器68は、出力データCMVと出力データCNTとが一致するまで一致信号CMRとして「0」を出力するので、制御回路562は、制御信号INRとして「1」を出力し続ける。
During execution of the external signal output instruction A, the
時刻T5において、出力データCMVと出力データCNTとが一致するので、比較器68は、一致信号CMRとして「1」を出力する。制御回路562は、一致信号CMRが「1」なので、制御信号INRとして「0」を出力し、時刻T6において外部信号出力命令Aのための動作を終了する。割り込み制御回路302は、拡張演算器520から供給される制御信号INRが「0」になるので、割り込み信号をCPU110に出力し、CPU110は割り込み処理を開始する。
At time T5, since the output data CMV and the output data CNT match, the
以上のように、拡張演算器520が、その外部に制御信号INRを出力するので、外部信号出力命令Aを実行することにより、レジスタDmに設定されたサイクル数の経過後に、CPU110に割り込みを行うことができる。
As described above, since the extended
外部信号出力命令Bが実行される際の情報処理装置500の動作について説明する。時刻T6,T7において、CPU110は、ROM130から外部信号出力命令Bを読み出し、デコードを行う。CPU制御回路112は、CPU110内部の各回路に各種制御信号PCNを出力する。
An operation of the
拡張演算器520の拡張命令デコーダ121は、外部信号出力命令Bをデコードし、得られたデコード信号EDCを出力する。拡張命令制御回路122は、外部信号出力命令Bが実行されたことをデコード信号EDCから判定し、拡張演算器520内の各回路に制御信号を出力する。
The
時刻T8において、制御信号発生回路525の制御回路562は、制御信号IC3に従って外部信号出力命令Bの処理を開始する。制御回路562は、図2の制御回路62と同様に、比較値保持回路64及びカウンタ回路66を制御する。また、制御回路562は、外部信号出力命令Bが実行中であるという情報を保持する。
At time T8, the
比較器68は、比較値保持回路64の出力データCMVと、カウンタ回路66の出力データCNTとを比較する。時刻T8〜T10においては、両者が一致しないので、比較器68は、一致信号CMRとして「0」を出力し、制御回路562は、制御信号INRとして「1」を出力する。
The
時刻T10において、出力データCMVと出力データCNTとが一致するので、比較器68は、一致信号CMRとして「1」を出力し、制御回路562は、制御信号INRとして「0」を出力する。制御回路562は、外部信号出力命令Bが実行中であるという情報を保持しているので、一致信号CMRが「1」になっても、カウンタ回路66の出力データCNTの値を「0」にリセットするだけで、動作を終了せず、時刻T11以降も同じ動作を繰り返し実行する。
At time T10, since the output data CMV and the output data CNT match, the
外部信号出力命令Bを実行中に、新たな外部信号出力命令Bを実行した場合には、図14の時刻T19に示すように、比較値保持回路64の出力データCMVが書き換えられるが、外部信号出力命令Bの処理は継続される。この場合には、出力データCMVが書き換えられた時点から、制御回路562は、新たな外部信号出力命令Bに設定されたサイクル数毎に、割り込み要求を繰り返し出力する動作を繰り返す。
When a new external signal output command B is executed while the external signal output command B is being executed, the output data CMV of the comparison
また、図14の時刻T26に示すように、割り込み終了命令を実行した時点で、制御信号発生回路525の制御回路562は動作を終了し、カウンタ回路66をリセットする。
Further, as shown at time T26 in FIG. 14, when the interrupt end instruction is executed, the
このように、外部信号出力命令Bを実行することにより、レジスタDmに設定したサイクル数毎に割り込み要求を出力することができ、割り込み終了命令を実行することにより、外部信号出力命令Bのための動作を終了させることができる。 As described above, by executing the external signal output instruction B, an interrupt request can be output for each number of cycles set in the register Dm, and by executing the interrupt end instruction, The operation can be terminated.
なお、拡張演算器520から出力される制御信号INRは、CPU110への割り込みの制御を行う割り込み制御回路302に与えられているが、情報処理装置500の外部にある回路、例えばプロセッサ、タイマ、A/D変換器等に与えるようにしてもよい。すると、制御信号INRによってこれらの回路を制御することができる。
Note that the control signal INR output from the extended
以上のように、拡張演算器520は、制御信号発生回路525の制御信号INRを情報処理装置500の外部の回路に出力しているので、情報処理装置500は、1つの拡張命令を実行することによって、情報処理装置500の外部の回路を直接制御することができる。
As described above, the
(第6の実施形態)
図12の装置によると外部回路の制御が可能となるが、外部回路の制御には特定の波形を有する制御信号が必要な場合が多い。そこで本実施形態では、拡張演算器120に供給される2つのデータを用いて、制御信号が「0」である期間の長さと、「1」である期間の長さとを設定するようにし、任意の波形の制御信号を出力することができるようにする。
(Sixth embodiment)
Although the external circuit can be controlled with the apparatus shown in FIG. 12, a control signal having a specific waveform is often required to control the external circuit. Therefore, in this embodiment, the length of the period in which the control signal is “0” and the length of the period in which “1” is set are set using two pieces of data supplied to the extended
図15は、本発明の第6の実施形態に係る情報処理装置の構成を示すブロック図である。図15の情報処理装置600は、拡張演算器120に代えて拡張演算器620を有する点以外は、図1の情報処理装置100と同様である。拡張演算器620は、制御信号発生回路125に代えて制御信号発生回路625を有する点以外は、拡張演算器120と同様である。A/D変換器602は、情報処理装置600の外部にあり、拡張演算器620の制御信号発生回路625から供給される制御信号CADに従ってA/D変換処理を行う。情報処理装置100の構成要素と同一の構成要素については、同一の参照番号を付してその説明を省略する。
FIG. 15 is a block diagram showing the configuration of the information processing apparatus according to the sixth embodiment of the present invention. The
図16は、図15の制御信号発生回路625の構成例を示すブロック図である。制御信号発生回路625は、制御回路62に代えて制御回路662を有し、比較値保持回路665と、セレクタ667とを更に有している点以外は、図2の制御信号発生回路125と同様である。
FIG. 16 is a block diagram showing a configuration example of the control
図17は、図15の情報処理装置600の動作の例を示すタイミングチャートである。信号生成命令は、CPUが設定したサイクル数を用いて、値が「0」である期間の長さと、値が「1」である期間の長さとが指定された制御信号を生成するための拡張命令である。信号生成命令は、例えば「SWSG Dm,Dn」(Dm,DnはレジスタD0〜D3のいずれかを示す)と記述される。図17において、各ステージの「SG」は、信号生成命令の処理中であることを示す。
FIG. 17 is a timing chart showing an example of the operation of the
信号生成命令が実行される際の情報処理装置600の動作について説明する。ウェイト命令の場合と同様に、CPU110は、ROM130から信号生成命令を読み出し、デコードを行い、得られたデコード信号CDCを出力する。CPU制御回路112は、デコード信号CDCに基づいて各種制御信号PCNを生成し、CPU110の各回路に出力する。
An operation of the
拡張演算器620の拡張命令デコーダ121は、信号生成命令をデコードし、得られたデコード信号EDCを出力する。拡張命令制御回路122は、信号生成命令が実行されたことをデコード信号EDCから判定し、時刻T1〜T2において制御信号IC3を出力する。
The
時刻T2において、CPU110は、信号生成命令のデコードの結果得られた各種制御信号PCNに従って、汎用レジスタ113のレジスタDmから値を読み出してデータ入力バス143に出力し、汎用レジスタ113のレジスタDnから値を読み出してデータ入力バス144に出力する。制御信号発生回路625内の制御回路662は、制御信号IC3に従って、信号生成命令の処理を開始し、制御信号CH,CC,CSを生成して出力する。
At time T2, the
比較値保持回路64は、制御信号CHに従って、データ入力バス143の値を保持し、出力データCM1として出力する。比較値保持回路665は、制御信号CHに従って、データ入力バス144の値を保持し、出力データCM2として出力する。セレクタ667は、制御信号CSに従って、出力データCM1を選択して出力する。カウンタ回路66は、制御信号CCに従って、カウントアップを開始し、カウント値を出力データCNTとして出力する。
The comparison
比較器68は、セレクタ667の出力データと出力データCNTとを比較し、両者が一致しないので、一致信号CMRとして「0」を出力する。制御回路662は、信号生成命令を実行中は、常に、制御信号EC3として「0」を出力し、CPU110のパイプライン動作を停止させることはない。また、一致信号CMRが「0」なので、制御回路662は、制御信号CADとして「1」を出力する。
The
信号生成命令の実行中は、比較値保持回路64及び665は値を保持し、カウンタ回路66はカウントアップを続ける。比較器68は、セレクタ667の出力データと出力データCNTとが一致するまで、一致信号CMRとして「0」を出力するので、制御回路662は、制御信号CADとして「1」を出力し続ける。
During the execution of the signal generation instruction, the comparison
時刻T5において、セレクタ667の出力データと出力データCNTとが一致するので、比較器68は、一致信号CMRとして「1」を出力する。制御回路662は、一致信号CMRが「1」なので、時刻T6において制御信号CADとして「0」を出力し、セレクタ667への制御信号を切り替え、カウンタ回路66をリセットしてカウンタ回路66の保持する値を「0」にする。
At time T5, the output data of the
セレクタ667は、制御回路662からの制御信号に従って、出力データCM2を選択して出力する。カウンタ回路66は、制御回路662からの制御信号に従って、再びカウントアップを開始し、カウント値を出力データCNTとして出力する。比較器68は、セレクタ667の出力データと出力データCNTとを比較し、両者が一致しないので、一致信号CMRとして「0」を出力する。
The
制御回路662の制御によって、比較値保持回路64,665は値を保持し、カウンタ回路66はカウントアップを続ける。比較器68は、セレクタ667の出力データと出力データCNTとが一致するまで、一致信号CMRとして「0」を出力するので、制御回路662は、制御信号CADとして「1」を出力し続ける。
Under the control of the
時刻T8において、セレクタ667の出力データと出力データCNTとが一致するので、比較器68は、一致信号CMRとして「1」を出力する。制御回路662は、一致信号CMRが「1」なので、制御信号CADとして「0」を出力し、時刻T9において信号生成命令のための動作を終了する。A/D変換器602は、拡張演算器620から供給される制御信号CADの波形に基づいて、A/D変換処理を実行する。
At time T8, the output data of the
以上のように、拡張演算器620は、信号生成命令を実行することにより、CPU110の汎用レジスタ113から読み出された2つのデータを用いて、値が「0」である期間の長さと、値が「1」である期間の長さとが指定された制御信号を生成することができる。
As described above, the extended
なお、第5の実施形態で説明した外部信号出力命令Bのように、信号生成命令の動作を繰り返し実行する命令を実装することは、制御回路662を用いれば容易に実現できる。また、本実施形態では、レジスタDmが「1」の期間、レジスタDnが「0」の期間のサイクル数を指定する場合について説明したが、逆であってもよい。
Note that it is possible to easily implement an instruction for repeatedly executing the operation of the signal generation instruction, such as the external signal output instruction B described in the fifth embodiment, by using the
(第7の実施形態)
以上の実施形態では、拡張命令に関する期間の長さをクロック信号のサイクル数で指定しているが、クロック信号の周波数を変更すると、指定するサイクル数を変更する必要がある。そこで本実施形態では、クロック信号の周波数を変更しても、ソフトウェアプログラムの変更をしなくても済むようにする。
(Seventh embodiment)
In the above embodiment, the length of the period related to the extension instruction is designated by the number of cycles of the clock signal. However, when the frequency of the clock signal is changed, the number of designated cycles needs to be changed. Therefore, in this embodiment, even if the frequency of the clock signal is changed, it is not necessary to change the software program.
図18は、本発明の第7の実施形態に係る情報処理装置の構成を示すブロック図である。図18の情報処理装置700は、拡張演算器120に代えて拡張演算器720を有する点以外は、図1の情報処理装置100と同様である。拡張演算器720は、制御信号発生回路125に代えて制御信号発生回路725を有する点以外は、拡張演算器120と同様である。情報処理装置100の構成要素と同一の構成要素については、同一の参照番号を付してその説明を省略する。
FIG. 18 is a block diagram showing the configuration of the information processing apparatus according to the seventh embodiment of the present invention. The
図19は、図18の制御信号発生回路725の構成例を示すブロック図である。制御信号発生回路725は、制御回路62及びカウンタ回路66に代えて制御回路762及びカウンタ回路766を有し、基準サイクル保持回路774と、カウンタ回路776と、比較器778と、論理積回路769とを更に有している点以外は、図2の制御信号発生回路125と同様である。カウンタ回路766は、比較器778から出力される制御信号CMR2が「1」である場合に、クロック信号CLKのパルスのカウントを行う。その他の点は、カウンタ回路66と同様である。
FIG. 19 is a block diagram showing a configuration example of the control
図20は、図18の情報処理装置700の動作の例を示すタイミングチャートである。基準サイクル設定命令は、制御信号発生回路725の基準サイクル保持回路774に、CPUが設定したサイクル数を保持させる拡張命令である。基準サイクル設定命令は、例えば「PUTD Dm」(DmはレジスタD0〜D3のいずれかを示す)と記述される。図20において、各ステージの「PD」は、基準サイクル設定命令の処理中であることを示す。
FIG. 20 is a timing chart showing an example of the operation of the
基準サイクル設定命令が実行される際の情報処理装置700の動作について説明する。ウェイト命令の場合と同様に、CPU110は、ROM130から基準サイクル設定命令を読み出し、デコードを行い、得られたデコード信号CDCを出力する。CPU制御回路112は、デコード信号CDCに基づいて各種制御信号PCNを生成し、CPU110の各回路に出力する。
An operation of the
拡張演算器720の拡張命令デコーダ121は、基準サイクル設定命令をデコードし、得られたデコード信号EDCを出力する。拡張命令制御回路122は、基準サイクル設定命令が実行されたことをデコード信号EDCから判定し、時刻T1〜T2において制御信号IC3を出力する。
The
時刻T2で、CPU110は、基準サイクル設定命令で指定された、汎用レジスタ113のレジスタDmから値を読み出し、データ入力バス143に出力する。制御信号発生回路725内の制御回路762は、制御信号IC3に従って制御信号CSHを出力し、基準サイクル設定命令のための動作を終了する。基準サイクル保持回路774は、制御信号CSHに従って、レジスタDmから読み出されたデータ入力バス143の値を基準サイクル数として保持し、これを出力データRCとして出力する。
At time T <b> 2, the
基準サイクル設定命令の場合と同様に、CPU110は、次の命令であるウェイト命令の読み出し、デコードを行い、CPU制御回路112は、各種制御信号PCNを生成する。拡張命令デコーダ121は、ウェイト命令をデコードし、得られたデコード信号EDCを出力する。拡張命令制御回路122は、ウェイト命令が実行されたことをデコード信号EDCから判定し、時刻T2〜T3において制御信号IC3を出力する。
As in the case of the reference cycle setting instruction, the
時刻T3において、CPU110は、ウェイト命令のデコードの結果得られた各種制御信号PCNに従って、汎用レジスタ113のレジスタDmから値を読み出してデータ入力バス143に出力する。制御回路762は、制御信号IC3に従って、ウェイト命令の処理を開始し、制御信号CH,CC,CSH,CC2を生成して出力する。
At time T3, the
基準サイクル保持回路774は、制御信号CSHに従って、保持している値を出力データRCとして出力する。カウンタ回路776は、制御信号CC2に従って、クロック信号CLKのパルスのカウントアップ動作を行い、カウント値を出力データCNT2として出力する。比較器778は、出力データRCと出力データCNT2とを比較し、両者が一致しないので、「0」を制御信号CMR2として出力する。
Reference
比較値保持回路64は、制御信号CHに従って、レジスタDmから読み出されたデータ入力バス143の値をウェイトサイクル数として保持し、これを出力データCMVとして出力する。カウンタ回路766は、制御信号CMR2が「0」なので、カウントアップ動作は行わず、保持している値を出力データCNTとして出力する。比較器68は、出力データCMVと出力データCNTとを比較し、両者が一致しないので、「0」を制御信号CMRとして出力する。
The comparison
論理積回路769は、制御信号CMRと制御信号CMR2との間の論理積を求め、得られた「0」を制御信号CMPとして出力する。制御回路762は、制御信号CMPが「0」なので、制御信号EC3として「1」を出力する。このとき、論理和回路127は、制御信号ECPとして「1」を出力する。CPU制御回路112は、制御信号ECPが「1」なので、各種制御信号PCNを出力し、時刻T3からCPU110のパイプライン動作を停止させる。
The
時刻T4では、制御信号CMR2が「0」なので、カウンタ回路766は、カウントアップ動作は行わず、保持している値を出力データCNTとして出力する。出力データCMVと出力データCNTとは一致しないので、比較器68は制御信号CMRとして「0」を出力する。カウンタ回路776がカウントアップ動作を行うが、出力データRCと出力データCNT2とは一致しないので、制御信号CMR2,CMPは「0」であり、制御回路762から出力される制御信号EC3は変わらない。
At time T4, since the control signal CMR2 is “0”, the
時刻T5では、制御信号CMR2が「0」なので、カウンタ回路766は、カウントアップ動作は行わず、保持している値を出力データCNTとして出力する。出力データCMVと出力データCNTとは一致しないので、比較器68は制御信号CMRとして「0」を出力する。カウンタ回路776がカウントアップ動作を行い、出力データRCと出力データCNT2とが一致するので、比較器778は、「1」を制御信号CMR2として出力する。論理積回路769は、制御信号CMRと制御信号CMR2との間の論理積を求め、得られた「0」を制御信号CMPとして出力する。このため、制御信号EC3は変わらない。
At time T5, since the control signal CMR2 is “0”, the
時刻T6では、制御信号CMR2が「1」なので、カウンタ回路766は、カウントアップ動作を行い、カウント値を出力データCNTとして出力する。出力データCMVと出力データCNTとは一致しないので、比較器68は制御信号CMRとして「0」を出力する。カウンタ回路776は、制御信号CMR2によってリセットされ、カウント値が「0」になる。再び出力データRCと出力データCNT2とは一致しなくなるので、比較器778は、制御信号CMR2として「0」を出力する。制御信号CMPは「0」なので、制御信号EC3は変わらない。同様の動作が時刻T14まで繰り返される。
Since the control signal CMR2 is “1” at time T6, the
時刻T14では、制御信号CMR2が「0」なので、カウンタ回路766は、カウントアップ動作は行わず、保持している値を出力データCNTとして出力する。出力データCMVと出力データCNTとが一致するので、比較器68は制御信号CMRとして「1」を出力する。カウンタ回路776がカウントアップ動作を行い、出力データRCと出力データCNT2とが一致するので、比較器778は、「1」を制御信号CMR2として出力する。論理積回路769は、制御信号CMRと制御信号CMR2との間の論理積を求め、得られた「1」を制御信号CMPとして出力する。
At time T14, since the control signal CMR2 is “0”, the
制御回路762は、制御信号CMPが「1」なので、ウェイト命令動作の終了と判断し、制御信号EC3として「0」を出力する。このとき、論理和回路127は、制御信号ECPとして「0」を出力する。CPU制御回路112は、制御信号ECPが「0」なので、各種制御信号PCNを出力し、時刻T15からCPU110のパイプライン動作を再開させる。
Since the control signal CMP is “1”, the
図20に示されているように、基準サイクル設定命令によってレジスタDmの値を基準サイクル保持回路774に設定した後、ウェイト命令を実行すると、「(基準サイクル数+1)×(ウェイトサイクル数+1)」サイクルの期間、CPU110の処理を待たせることができる。したがって、クロック信号CLKの周波数に応じて基準サイクル数の設定を変更すれば、ウェイトサイクル数の設定を変更しなくても、CPU110の待機時間を一定に保つことができる。したがって、クロック信号CLKの周波数を変更しても、ソフトウェアプログラムを変更する必要がなくなる。
As shown in FIG. 20, when the wait instruction is executed after the value of the register Dm is set in the reference
例えば、クロック信号CLKが10MHzのときには、汎用レジスタ113に9を設定して基準サイクル数が9となるようにし、クロック信号CLKが15MHzのときには、汎用レジスタ113に14を設定して基準サイクル数が14となるようにすればよい。汎用レジスタ113に9を設定してウェイト命令を実行する場合には、いずれの場合にも、CPU110の処理を10マイクロ秒の間待たせることができる。
For example, when the clock signal CLK is 10 MHz, 9 is set in the general-
以上のように、図18の情報処理装置によると、クロック信号の周波数を変更してCPU110の動作周波数を変更した場合でも、ソフトウェアプログラムの変更をせずに、CPU110を一定時間待たせるようにすることができる。
As described above, according to the information processing apparatus of FIG. 18, even when the operating frequency of the
なお、制御信号発生回路725を、第1〜第6の実施形態において用いるようにしてもよい。
The control
図21は、図19の制御信号発生回路725の変形例を示すブロック図である。図19の制御信号発生回路725に代えて、図21の制御信号発生回路825を用いるようにしてもよい。制御信号発生回路825は、制御回路62、カウンタ回路66及び比較器68に代えて制御回路862、カウンタ回路866及び比較器868を有し、基準サイクル保持回路774を更に有している点以外は、図2の制御信号発生回路125と同様である。
FIG. 21 is a block diagram showing a modification of the control
基準サイクル保持回路774は、制御信号CSHに従って、レジスタDmから読み出されたデータ入力バス143の値を基準サイクル数として保持し、これを出力データRCとして出力する。カウンタ回路866は、制御信号CCに従って、クロック信号CLKのパルス毎に、基準サイクル保持回路774から供給される出力データRCの値を加算し、得られたカウント値を出力データCNTとして出力する。比較器868は、比較値保持回路64の出力データCMVと、カウンタ回路866の出力データCNTとを比較し、出力データCNTの値が出力データCMVの値以上になったときに、「1」を制御信号CMRとして制御回路862に出力する。
In accordance with the control signal CSH, the reference
制御信号発生回路825によると、基準サイクル設定命令によって基準サイクル数を基準サイクル保持回路774に設定した後、ウェイト命令を実行すると、「ウェイトサイクル数÷基準サイクル数」で求められる数のサイクルの期間、CPU110の処理を待たせることができる。
According to the control
例えば、クロック信号CLKが10MHzの場合には基準サイクル設定命令により基準サイクル数を2に設定し、クロック信号CLKが20MHzの場合には基準サイクル設定命令により基準サイクル数を1に設定すれば、ウェイトサイクル数を100にしてウェイト命令を実行するときに、いずれの場合でもCPU110の処理を5マイクロ秒の間待たせることができる。したがって、クロック信号CLKの周波数を変更しても、ソフトウェアプログラムを変更する必要がなくなる。
For example, when the clock signal CLK is 10 MHz, the reference cycle number is set to 2 by the reference cycle setting command, and when the clock signal CLK is 20 MHz, the reference cycle number is set to 1 by the reference cycle setting command. In any case, when the wait instruction is executed with the number of cycles set to 100, the processing of the
また、制御信号発生回路825を用いた方が、制御信号発生回路725を用いる場合よりも回路規模を小さくすることができる。
In addition, the circuit scale can be reduced by using the control
以上説明したように、本発明は、CPU等の主演算部に処理を待たせる場合に、待たせる時間を正確に制御することができるので、情報処理装置等について有用である。 As described above, the present invention is useful for an information processing apparatus and the like because it can accurately control the waiting time when a main processing unit such as a CPU waits for processing.
62,262,562,662,762,862 制御回路
64 比較値保持回路
66,766,776,866 カウンタ回路
68,778,868 比較器
110 CPU(主演算部)
120,220,320,520,620,720 拡張演算器(拡張演算部)
113 汎用レジスタ
125,325,525,625,725,825 制御信号発生回路(信号生成回路)
224 演算器(信号生成回路)
480 クロック制御回路
762 基準サイクル保持回路
62, 262, 562, 662, 762, 862
120, 220, 320, 520, 620, 720 extended arithmetic unit (extended arithmetic unit)
113 General-purpose registers 125, 325, 525, 625, 725, 825 Control signal generation circuit (signal generation circuit)
224 arithmetic unit (signal generation circuit)
480
Claims (15)
前記メモリから読み出された命令のうちの所定の命令に従って処理を行う拡張演算部とを備え、
前記拡張演算部は、
クロック信号のパルスをカウントし、前記メモリから読み出された命令が前記主演算部を待機させる待機命令である場合には、待機すべきであることを示す信号を、前記待機命令において指定された待機カウント数に相当するカウントが完了するまで出力する信号生成回路を有し、
前記主演算部は、
前記待機すべきであることを示す信号が出力されている間は、処理を停止する
ことを特徴とする情報処理装置。 A main arithmetic unit that performs processing in accordance with an instruction read from the memory;
An extended arithmetic unit that performs processing according to a predetermined instruction among the instructions read from the memory,
The extended arithmetic unit is:
When the instruction read from the memory is a standby instruction that waits for the main arithmetic unit to count pulses of the clock signal, a signal indicating that the instruction should be waited is designated in the standby instruction. It has a signal generation circuit that outputs until the count corresponding to the standby count is completed,
The main arithmetic unit is
The information processing apparatus is characterized in that the processing is stopped while the signal indicating that the standby should be performed.
前記主演算部は、
値を格納するレジスタを有し、
前記信号生成回路は、
前記待機命令において前記レジスタが指定されている場合には、前記レジスタに格納されている値を前記待機カウント数として用いる
ことを特徴とする情報処理装置。 The information processing apparatus according to claim 1,
The main arithmetic unit is
Has a register to store the value,
The signal generation circuit includes:
When the register is specified in the standby instruction, the information stored in the register is used as the standby count number.
前記信号生成回路は、
前記待機命令において記述されている値を前記待機カウント数として用いる
ことを特徴とする情報処理装置。 The information processing apparatus according to claim 1,
The signal generation circuit includes:
An information processing apparatus using a value described in the standby instruction as the standby count number.
前記拡張演算部は、
値を格納するレジスタを有し、
前記信号生成回路は、
前記待機命令において前記レジスタが指定されている場合には、前記レジスタに格納されている値を前記待機カウント数として用いる
ことを特徴とする情報処理装置。 The information processing apparatus according to claim 1,
The extended arithmetic unit is:
Has a register to store the value,
The signal generation circuit includes:
When the register is specified in the standby instruction, the information stored in the register is used as the standby count number.
前記信号生成回路は、
前記待機カウント数を保持する比較値保持回路と、
前記クロック信号のパルスをカウントするカウンタと、
前記カウンタのカウント値と前記比較値保持回路に保持された前記待機カウント数とを比較し、比較結果を出力する比較器と、
前記待機すべきであることを示す信号を、一致するという結果を前記比較結果が示すまで出力する制御回路とを有する
ことを特徴とする情報処理装置。 The information processing apparatus according to claim 1,
The signal generation circuit includes:
A comparison value holding circuit for holding the standby count number;
A counter for counting pulses of the clock signal;
A comparator that compares the count value of the counter with the standby count number held in the comparison value holding circuit and outputs a comparison result;
An information processing apparatus comprising: a control circuit that outputs a signal indicating that the standby should be performed until the comparison result indicates a match result.
前記信号生成回路は、
前記メモリから読み出された命令が演算命令である場合には、前記演算命令で指示された演算を行い、
前記メモリから読み出された命令が前記待機命令である場合には、前記クロック信号のパルスをカウントし、前記待機すべきであることを示す信号を、前記待機命令において指定された待機カウント数に相当するカウントが完了するまで出力する
ことを特徴とする情報処理装置。 The information processing apparatus according to claim 1,
The signal generation circuit includes:
If the instruction read from the memory is an operation instruction, perform the operation indicated by the operation instruction,
When the instruction read from the memory is the standby instruction, the clock signal pulses are counted, and a signal indicating that the instruction should be waited is set to the standby count number specified in the standby instruction. An information processing apparatus that outputs until a corresponding count is completed.
前記信号生成回路は、
前記所定の演算を行う演算回路を有し、前記メモリから読み出された命令が前記待機命令である場合には、前記待機命令において指定された待機カウント数に相当するカウントを前記演算回路を用いて行う
ことを特徴とする情報処理装置。 The information processing apparatus according to claim 1,
The signal generation circuit includes:
When the arithmetic circuit that performs the predetermined arithmetic operation and the instruction read from the memory is the standby instruction, the arithmetic circuit uses a count corresponding to the standby count number specified in the standby instruction. An information processing apparatus characterized by being performed.
前記信号生成回路は、
前記主演算部に対して割り込み要求信号が与えられた場合には、前記待機すべきであることを示す信号の出力を終了する
ことを特徴とする情報処理装置。 The information processing apparatus according to claim 1,
The signal generation circuit includes:
When an interrupt request signal is given to the main arithmetic unit, the information processing apparatus ends output of a signal indicating that it should wait.
前記主演算部に前記クロック信号を供給するクロック制御回路を更に備え、
前記クロック制御回路は、
前記信号生成回路から前記待機すべきであることを示す信号が出力されると、前記主演算部への前記クロック信号の供給を停止する
ことを特徴とする情報処理装置。 The information processing apparatus according to claim 1,
A clock control circuit for supplying the clock signal to the main arithmetic unit;
The clock control circuit includes:
An information processing apparatus that stops supply of the clock signal to the main arithmetic unit when a signal indicating that the standby should be performed is output from the signal generation circuit.
前記信号生成回路は、
前記メモリから読み出された命令が制御信号を生成する第1の信号生成命令である場合には、前記第1の信号生成命令において指定されたカウント数に相当するカウントが完了すると、
前記制御信号を当該情報処理装置の外部に出力する
ことを特徴とする情報処理装置。 The information processing apparatus according to claim 1,
The signal generation circuit includes:
When the instruction read from the memory is a first signal generation instruction for generating a control signal, when the count corresponding to the count number specified in the first signal generation instruction is completed,
An information processing apparatus that outputs the control signal to the outside of the information processing apparatus.
前記信号生成回路は、
前記メモリから読み出された命令が前記制御信号を繰り返し生成する第2の信号生成命令である場合には、前記第2の信号生成命令において指定されたカウント数に相当するカウントを行う毎に、
前記制御信号を当該情報処理装置の外部に出力し、
前記メモリから読み出された命令が前記制御信号の生成を終了する信号生成終了命令である場合には、前記制御信号の出力を終了する
ことを特徴とする情報処理装置。 The information processing apparatus according to claim 10,
The signal generation circuit includes:
When the instruction read from the memory is a second signal generation instruction that repeatedly generates the control signal, every time a count corresponding to the count number specified in the second signal generation instruction is performed,
Outputting the control signal to the outside of the information processing apparatus;
The information processing apparatus, wherein the output of the control signal is ended when the instruction read from the memory is a signal generation end instruction for ending generation of the control signal.
前記信号生成回路は、
前記第1の信号生成命令が割り込み命令である場合には、前記主演算部に対して割り込みを行うための割り込み要求信号を前記制御信号として出力する
ことを特徴とする情報処理装置。 The information processing apparatus according to claim 10,
The signal generation circuit includes:
When the first signal generation instruction is an interrupt instruction, the information processing apparatus outputs an interrupt request signal for interrupting the main arithmetic unit as the control signal.
前記信号生成回路は、
前記メモリから読み出された命令が制御信号を生成する信号生成命令である場合には、
前記信号生成命令において指定された第1のカウント数に相当するカウントが完了するまでは、
前記制御信号として第1の値を当該情報処理装置の外部に出力し、
前記信号生成命令において指定された第2のカウント数に相当するカウントが完了するまでは、
前記制御信号として第2の値を当該情報処理装置の外部に出力する
ことを特徴とする情報処理装置。 The information processing apparatus according to claim 1,
The signal generation circuit includes:
When the instruction read from the memory is a signal generation instruction for generating a control signal,
Until the count corresponding to the first count number specified in the signal generation instruction is completed,
Outputting a first value as the control signal to the outside of the information processing apparatus;
Until the count corresponding to the second count number specified in the signal generation instruction is completed,
An information processing apparatus that outputs a second value as the control signal to the outside of the information processing apparatus.
前記信号生成回路は、
前記クロック信号の設定された基準サイクル数毎に、前記クロック信号のパルスをカウントする
ことを特徴とする情報処理装置。 The information processing apparatus according to claim 1,
The signal generation circuit includes:
An information processing apparatus that counts pulses of the clock signal for each set reference cycle number of the clock signal.
前記信号生成回路は、
前記待機カウント数を保持する比較値保持回路と、
前記クロック信号のパルスをカウントする第1のカウンタと、
前記第1のカウンタのカウント値と前記比較値保持回路に保持された前記待機カウント数とを比較し、その結果を第1の比較結果として出力する第1の比較器と、
前記基準サイクル数を保持する基準サイクル保持回路と、
前記クロック信号のパルスをカウントし、第2の比較結果に従ってリセットされる第2のカウンタと、
前記第2のカウンタのカウント値と前記基準サイクル保持回路に保持された前記基準サイクル数とを比較し、その結果を前記第2の比較結果として出力する第2の比較器と、
前記待機すべきであることを示す信号を、前記第2のカウンタのカウント値が前記基準サイクル数以上になったことを前記第1の比較結果が示すまで出力する制御回路とを有し、
前記第1のカウンタは、一致するという結果を前記第2の比較結果が示す場合にのみカウントを行う
ことを特徴とする情報処理装置。 The information processing apparatus according to claim 14,
The signal generation circuit includes:
A comparison value holding circuit for holding the standby count number;
A first counter for counting pulses of the clock signal;
A first comparator that compares the count value of the first counter with the standby count number held in the comparison value holding circuit and outputs the result as a first comparison result;
A reference cycle holding circuit for holding the reference cycle number;
A second counter that counts pulses of the clock signal and is reset according to a second comparison result;
A second comparator that compares the count value of the second counter with the reference cycle number held in the reference cycle holding circuit and outputs the result as the second comparison result;
A control circuit that outputs a signal indicating that the standby should be performed until the first comparison result indicates that the count value of the second counter is equal to or greater than the reference cycle number;
The information processing apparatus according to claim 1, wherein the first counter counts only when the second comparison result indicates a match result.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007340051A JP2009163338A (en) | 2007-12-28 | 2007-12-28 | Information processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007340051A JP2009163338A (en) | 2007-12-28 | 2007-12-28 | Information processor |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009163338A true JP2009163338A (en) | 2009-07-23 |
Family
ID=40965919
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007340051A Pending JP2009163338A (en) | 2007-12-28 | 2007-12-28 | Information processor |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009163338A (en) |
-
2007
- 2007-12-28 JP JP2007340051A patent/JP2009163338A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5411587B2 (en) | Multi-thread execution device and multi-thread execution method | |
US8341436B2 (en) | Method and system for power-state transition controllers | |
JP2009104675A (en) | Method and apparatus for affecting subsequent instruction processing in data processor | |
JP5231800B2 (en) | Semiconductor integrated circuit device and clock control method for semiconductor integrated circuit device | |
US10936005B2 (en) | Event controlled clock switching | |
JP2000112585A (en) | System lsi and power management method | |
CN105988400B (en) | Microcontroller unit | |
JP2013025590A (en) | Arithmetic processing unit and microcomputer | |
US10983551B2 (en) | Clock management unit, integrated circuit including the clock management unit, system on chip, and method of operating the system on chip | |
JP2009163338A (en) | Information processor | |
CN111158758A (en) | Method and device for waking up central processing unit | |
JP5414323B2 (en) | Semiconductor integrated circuit device | |
JP2005100017A (en) | Processor simulator, interruption delay count program and simulation method of processor | |
JPH09231195A (en) | Micro computer | |
US10338665B2 (en) | Microcontroller power reduction system and method | |
JP6260394B2 (en) | Processing system | |
US20120173775A1 (en) | Port control apparatus and associated methods | |
JP2009199424A (en) | Microcomputer | |
JP2968749B2 (en) | Microprogram speed control circuit | |
JP2010140398A (en) | Apparatus and method for data process | |
JP2011150636A (en) | Microprocessor and control method thereof | |
WO2007004323A1 (en) | Information processing device | |
JP2014123267A (en) | Microcomputer and sd card | |
JPH1165838A (en) | Arithmetic and logic unit and setting method for wait time of the same | |
JPH0713763A (en) | Microcomputer |