JP3442175B2 - 中央演算処理装置 - Google Patents
中央演算処理装置Info
- Publication number
- JP3442175B2 JP3442175B2 JP01627395A JP1627395A JP3442175B2 JP 3442175 B2 JP3442175 B2 JP 3442175B2 JP 01627395 A JP01627395 A JP 01627395A JP 1627395 A JP1627395 A JP 1627395A JP 3442175 B2 JP3442175 B2 JP 3442175B2
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- information
- operand
- instruction
- state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000012545 processing Methods 0.000 title claims description 107
- 238000012546 transfer Methods 0.000 claims description 5
- 230000007704 transition Effects 0.000 claims description 3
- 238000000034 method Methods 0.000 description 36
- 230000008569 process Effects 0.000 description 31
- 238000010586 diagram Methods 0.000 description 8
- 230000008859 change Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 101100015484 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) GPA1 gene Proteins 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000007429 general method Methods 0.000 description 2
- 101100115778 Caenorhabditis elegans dac-1 gene Proteins 0.000 description 1
- 101000869517 Homo sapiens Phosphatidylinositol-3-phosphatase SAC1 Proteins 0.000 description 1
- 102100032286 Phosphatidylinositol-3-phosphatase SAC1 Human genes 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
- G06F9/30167—Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/30149—Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3818—Decoding for concurrent execution
- G06F9/382—Pipelined decoding, e.g. using predecoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Description
含むシステムやシーケンサを含むシステム(DSP等)
に用いられる中央演算処理装置(CPU)に関する。
ログラムに従って処理を行う。プログラムは命令の集合
体であり、命令を順序的に実行することで処理が達成さ
れることになる。
ン)とオペランドの組合せで構成される。命令の種類と
は、CPUがどのような動作をするかであり、オペラン
ドとは、取り扱うデータのことである。通常、取り扱う
データは、それが置かれている場所で示されることが多
い。オペランドの場所を示すために、何通りかの表現方
法を持つ。また、オペランドは命令の種類によっては、
必要な数が異なる。例えば、論理和演算A|B→Cのよ
うな演算命令を考えると、そのオペランドは、A,B,
Cの3つが必要になる。その3つのオペランドを、それ
ぞれ制約なくアドレッシング指定できることが、最も理
想的である。
えば、命令コード長の問題である。3つのオペランドを
個々に指定しようとすると、その分命令コード長も長く
なる。命令コード長が長くなると、プログラムも大きく
なり、プログラムを格納するメモリも大きくなってしま
う。さらに命令コードが長いと、命令を読み込んだりデ
コードするのに時間がかかるため、処理の効率が下がる
場合も考えられる。内部処理を考えると3つのオペラン
ドがそれぞれのアドレッシングを持つと、アドレッシン
グの3乗通りの組み合わせが存在することになる。命令
の処理との組み合わせを考えると、命令の種類もアドレ
ッシングの種類も少なく抑えなければ、膨大な組み合わ
せの数となり、CPU内部で処理するプログラム(内部
処理プログラム=マイクロプログラム)が大きくなりす
ぎてCPUに内蔵できないこともありうる。
組み合わせが膨大になるため、例えば、論理和演算A|
B→Bのように結果を格納するオペランド(以下デステ
ィネーションオペランド)を、元データのあるオペラン
ド(以下ソースオペランド)のひとつと共通にするとい
う方法がある。この方法であれば、オペランドの指定は
2つで済み、3つの場合より組み合わせは少なくなる。
この2オペランド方法は、3オペランド方法より少し制
限があるが、市販の多くのCPUに採用されている一般
的な方法である。
には3つの状態がある。ソースオペランドのアドレス算
出の状態、デスティネーションオペランドのアドレス算
出の状態、命令処理の状態である。前述の論理和演算A
|B→Bで示すならば、Aのアドレスを算出するのがソ
ースオペランドアドレス算出であり、Bのアドレスを算
出するのがデスティネーションオペランドアドレス算出
であり、A|Bの演算を行い、結果をBに格納するのが
命令処理の状態である。しかし、命令によってはオペラ
ンド指示を必要としない命令や、ソース/デスティネー
ションのひとつだけしか必要としない命令がある。
処理装置は、多種多様な命令に対応し、それらがスムー
スに処理でき、かつ、できるだけ小さいサイズのマイク
ロプログラムを実現できることが望まれる。
命令実行がスムースに行われ、マイクロプログラムを小
さいサイズに抑えることのできる中央演算処理装置を提
供することを目的とする。
置として、第1の構成は、命令コードの内容からソース
オペランドアドレッシングの情報のみをメインデコーダ
への入力情報として保持する第1回路と、命令コードの
内容からデスティネーションオペランドアドレッシング
の情報のみをメインデコーダへの入力情報として保持す
る第2回路と、命令コードの内容からオペランドアドレ
ッシングの情報を除く命令処理の情報をメインデコーダ
への入力情報として保持する第3回路と、命令コードの
内容を解析して前記第1回路と第2回路と第3回路の状
態を制御するプリデコーダと、前記第1乃至第3回路に
保持された情報のうちどの情報をメインデコーダに入力
するかを選択する第1セレクタと、第1セレクタによる
選択を1つの命令につき基本的には第1回路、第2回
路、第3回路の順序とし、現在の選択状態から次の選択
状態に移行するタイミングをメインデコーダからの信号
に基づいて設定し、第1回路又は第2回路の状態が“処
理不要”を示すとき、当該“処理不要”の回路の選択を
せずに次の回路選択状態をとるように第1セレクタを制
御する処理選択回路と、前記第1乃至第3回路からの情
報を得て中央演算処理装置内部の各回路を制御するメイ
ンデコーダとを備えたことを特徴とする。
り選択された情報を保持する手段を備えてもよい。
り選択された情報と、割込み要求の情報のうちいずれか
を選択して前記メインデコーダに出力する第2セレクタ
を備えてもよい。
前記処理選択回路の状態を入力するようにしてもよい。
スと、この内部バスとの間でデータの入出力を行うレジ
スタと、中央演算処理装置の外部へ書き込むデータを前
記内部バスから入力して一時保持する第1保持回路と、
中央演算処理装置の外部から読み込んだデータを一時保
持して前記内部バスへ送出する第2保持回路と、プログ
ラム中にある演算データとしての”即値”のデータを一
時保持して前記内部バスへ送出する第3保持回路と、前
記メインデコーダからの信号と第1回路および第2回路
の状態とに基づき、前記レジスタ、第1保持回路、第2
保持回路、及び第3保持回路を制御するオペランド自動
選択回路とを備えてもよい。
前記処理選択回路へ伝える内容として、ソースオペラン
ドが”レジスタ”である場合とソースオペランドが存在
しない場合とを等価とし、前記第2回路の状態を前記処
理選択回路へ伝える内容として、デスティネーションオ
ペランドが”レジスタ”である場合とデスティネーショ
ンオペランドが存在しない場合とを等価するようにして
もよい。
前記オペランド自動選択回路へ伝える内容として、ソー
スオペランドが”レジスタ”である場合とソースオペラ
ンドが存在しない場合とを等価とし、前記第2回路の状
態を前記オペランド自動選択回路へ伝える内容として、
デスティネーションオペランドが”レジスタ”である場
合とデスティネーションオペランドが存在しない場合と
を等価とするようにしてもよい。
ドレッシングの情報を第1回路に、デスティネーション
オペランドアドレッシングの情報を第2回路に、命令処
理の情報を第3回路に、それぞれ設定できるため、ソー
スオペランドアドレッシングとデスティネーションオペ
ランドアドレッシングと命令処理の組み合わせが自由に
行える。
路、及び第3回路の情報のうちの一つを選択して、メイ
ンデコーダへ伝えるので、第1回路、第2回路、及び第
3回路のそれぞれがメインデコーダへの伝達経路を別々
に持つ必要がない。
路は、一つの命令につき基本的に必ず第1回路、第2回
路、及び第3回路の順序で選択するため、当該処理選択
回路を簡単に実現できる。
路の状態を監視し、当該回路が”処理不要”のとき、当
該“処理不要”の回路の選択を飛ばして次の選択に移る
ようにしているので、不要な処理を選択している時間を
解消できる。
クタで選択した情報を保持することができるので、メイ
ンデコーダが未だ命令処理の段階であっても、第1回
路、第2回路、及び第3回路を次の命令に状態遷移させ
ることができる。
処理に対応可能となる。
回路の選択状態をメインデコーダの入力情報とするの
で、処理選択回路の選択状態を含むマイクロプログラム
が可能となる。
のマイクロプログラムにおいて、ソースオペランドが”
即値”であるか、“レジスタ内のデータ”であるか、”
メモリ上のデータ”であるかを区別しないでプログラム
できることになり、マイクロプログラムのサイズを小さ
くし、マイクロプログラムの開発時間も短くすることが
できる。また、命令処理のマイクロプログラムにおい
て、デスティネーションオペランドが“レジスタ内のデ
ータ”であるか、“メモリ上のデータ”であるかを区別
しないでプログラムできることになり、上記と同様、マ
イクロプログラムの小サイズ化とその開発時間の短縮化
が図れる。
理選択回路へ伝える内容として、第1回路が“ソースオ
ペランドが存在せず”と”レジスタ”を共通とするの
で、伝達する情報量が減少し、配線など回路の縮小化が
図れる。同様に、第2回路から処理選択回路へ伝える内
容として、第2回路が”デスティネーションオペランド
が存在せず”と”レジスタ”を共通とすることで、伝達
する情報量が減少し、配線など回路の縮小化が図れる。
と同様、伝達する情報量を減少させて回路の縮小化を図
ることができる。
いて説明する。
下、CPU1という)を示すブロック図である。このC
PU1は、シーケンシャルコントロールユニット(以
下、SCUと略記する)2と、実行部(以下、EXUと
略記する)3と、バスコントロールユニット(以下、B
CUと略記する)4と、割込インターフェイス(以下、
ICUと略記する)5とから成り,これらは、各種バス
や経路(11、105〜108)にて接続される。ま
た、前記のBCU4は、コントロールバス101、デー
タバス102、及びアドレスバス103にて外部に接続
される。
ある。プログラムバス11には、CPU1が実行すべき
命令が出力される。この命令は、プリデコーダ12、ソ
ースアドレッシングコントロール回路(以下、SACと
略記する)13、デスティネーションアドレッシングコ
ントロール回路(以下、DACと略記する)14、及び
オペレーションコントロール回路(以下OPC)15に
入力される。
令コードに基づき、ソースアドレッシングの種類および
必要な情報と、デスティネーションアドレッシングの種
類および必要な情報と、命令の種類および必要な情報と
を解析する。これらの情報が1回で全て解析できないな
ら、続くコードを入力する制御を行う。そして、プリデ
コーダ12は、上記の情報が前記のSAC13、DAC
14、及びOPC15に入力されるまで動作する。
ラムバス11から1コード分の命令を取り込み、入力し
たコードの内容によって、SAC13、DAC14、及
びOPC15のセット内容を変更する。そして、例え
ば、1オペランド命令(ソースあるいはデスティネーシ
ョンのオペランドしか使用しない命令)であれば、SA
C13若しくはDAC14に対して“処理不要”の内容
をセットする。また、プログラムバス11からの情報が
1コードで十分ではないとき、必要に応じて次のコード
を、SAC13、DAC14、又はOPC15に入力す
る。その指示はプリデコーダ12がコードの内容によっ
て出力する。場合によっては(長い命令コードの場合
等)、プリデコーダ12自身が、さらに1コード以上読
み込む場合もあり得る。
13、DAC14、及びOPC15に、それぞれソース
アドレス生成に必要な情報、デスティネーションアドレ
ス生成に必要な情報、命令の種類と必要な情報をセット
する。そして、これが終わると処理選択回路21が動作
する。
C15は、それぞれ前記プリデコーダ12の指示及びプ
ログラムバス11から供給される内容に基づき、メイン
デコーダ20への入力形式に加工し、それを保持するよ
うになっている。また、SAC13、DAC14、OP
C15は、第1セレクタ16へそれぞれ保持した内容を
伝達できるようになっている。
つの情報のうち1つを選択して出力する。選択を指示す
るのは、処理選択回路21である。第1セレクタ16の
出力内容は、ラッチ17で保持されるようになってい
る。ラッチ17の出力内容は、第2セレクタ18に供給
される。
内容に、処理選択回路21の出力内容が加えられてメイ
ンデコーダ20への最終的な入力形式が得られる。具体
的には、割込み要求の有無を検査して、割込み要求がな
い場合は、ラッチ17の出力内容変化させずに出力す
る。一方、割込み要求がある場合は、ラッチ17の出力
内容に強制的に割込み要求の内容を反映させて出力す
る。第2セレクタ18で決定された最終的な内容は、バ
ッファ19を経てメインデコーダ20へと供給される。
解析し、CPU1内の各部を制御する信号を出力するよ
うになっている。この信号の一部は、プリデコーダ12
に入力され、プリデコーダ12が次のコードをプログラ
ムバス11から入力するタイミングを知ることができる
ようになっている。また、前記信号の一部は、処理選択
回路21に入力される。
14、及びOPC15の情報のうちどれを選択するかの
指示を第1セレクタ16に対し出すようになっている。
選択の方法は、基本的には、SAC13→DAC14→
OPC15の順序で行われるが、この順序を飛ばすこと
も行われる。具体的には、処理選択回路21は、SAC
13及びDAC14から、上記選択(順序飛ばし)のた
めの情報を受け取る。この情報は、SAC13またはD
AC14においてセットされた内容が処理を飛ばされる
べき内容であるか否かを示す情報である。この情報を受
けて処理選択回路は、第1セレクタ16を制御する。
指示は、メインデコーダ20から出力される信号により
行われる。従って、新しい命令の処理がスタートする
と、基本的には、SAC13が最初に選択され、次に、
DAC14が選択され、その次にOPC15が選択され
ることになるが、例えば、SAC13にセットされた内
容が処理を飛ばされるべき内容であれば、直ちにDAC
14の出力が選択されることになる。
り、データの演算や一次記憶を行う機能を有する。ま
た、CPU1外部とのデータのリード/ライトのために
BCU4との間でデータの伝達を行うための経路10
6、及び、EXU3で生成したアドレスデータをBCU
4に伝達する経路105を有している。EXU3は、S
CU2の指示により動作する。即ち、前述のメインデコ
ーダ20の出力する信号が、EXU3への動作指示信号
となる。
CPU1と外部インターフェースとの間の制御を行う。
即ち、プログラムが格納された外部メモリとのアクセス
は、BCU4がコントロールバス101、データバス1
02、及びアドレスバス103を使って行う。CPU1
にリードされたプログラムは、プログラムバス11によ
ってSCU2とEXU3に転送される。EXU3への転
送経路があるのは、プログラム内に即値のデータがあ
り、この即値データをEXU3に供給するためである。
求を受けて、その割り込みが有効であるか否かの判定
(マスク判定)などを行い、割り込みを受け付けられれ
ば、経路107によってSCU2に対して割り込み処理
動作を指示する。割り込み要求を受け付けるタイミング
は、SCU2から経路108を経て供給される信号(後
述のNEXTI,NEXTSに相当する)によって設定
される。
ンデコーダ20にプログラムされていて、その処理の一
番最後に”次の命令に移る”という指示を出す。以下こ
の指示をNEXTIと呼ぶ。NEXTIが出力されると
処理選択回路21は、基本的には最初にSAC13を選
択し、プリデコーダ12はプログラムバス11から1コ
ード分の命令を取り込む。このとき同時に、SAC1
3、DAC14、及びOPC15もプログラムバス11
から同じコードを入力する。
容によって、SAC13、DAC14、及びOPC15
のセット内容を変更する。例えば、1オペランド命令
(ソース或いはデスティネーションのオペランドしか使
用しない命令)であると、SAC13もしくはDAC1
4に“処理不要”の内容をセットする。このセットが終
わると処理選択回路21が動作する。
不要”状態でない限り、SAC13を選択するよう第1
セレクタ16に指示する。すると、SAC13の内容が
第1セレクタ16を経て、ラッチ17に伝えられて保持
される。そして、その内容は、処理選択回路21の状態
(この場合においてはソースアドレス生成状態)を伝え
る信号とともに、第2セレクタ18に送られる。割り込
み要求のない限り、第2セレクタ18は送られてきた内
容をそのままバッファ19に入力する。そして、上記内
容はバッファ19を経てメインデコーダ20に入力され
る。メインデコーダ20は、処理選択回路21からソー
スアドレス生成のステージであることと、ラッチ17か
らアドレッシングの種類などのソースアドレス生成に必
要な情報(上記内容)の提供を受け、ソースアドレス生
成のプログラムに従って、EXU3に指示を出す。
ると、メインデコーダ20は、”次のステージに移行す
る”という信号を、処理選択回路21に出力する。以
下、この信号をNEXTFと呼ぶ。処理選択回路21
は、NEXTFを受けて、DAC14が”処理不要”状
態でない限り、DAC選択(デスティネーションアドレ
ス生成時であることを示す)状態へ移行する。処理選択
回路21の指示により、第1セレクタ16は、DAC1
4を選択してその内容をラッチ17に伝える。ラッチ1
7では、上記内容を保持する。そして、その内容は、処
理選択回路21の状態(デスティネーションアドレス生
成時であることを示す)を伝える信号とともに第2セレ
クタ18に送られる。割り込み要求のない限り、第2セ
レクタ18は、送られてきた内容をそのままバッファ1
9に入力する。バッファ19は、上記内容をメインデコ
ーダ20へ入力する。メインデコーダ20は、処理選択
回路21からデスティネーションアドレス生成のステー
ジであることと、ラッチ17からアドレッシングの種類
などデスティネーションアドレス生成に必要な情報(上
記内容)の提供を受け、デスティネーションアドレス生
成のプログラムに従って、EXU3に指示を出す。
ラムが終了すると、メインデコーダは、前述のNEXT
Fを処理選択回路21に出力する。処理選択回路21
は、NEXTFを受けて、OPC選択(命令処理時であ
ることを示す)状態に遷移する。処理選択回路21の指
示により、第1セレクタ16は、OPC14の内容をラ
ッチ17に伝える。上記内容はラッチ17に保持され
る。そして、その内容は、処理選択回路21の状態(命
令処理時であることを示す)を伝える信号とともに第2
セレクタ18に送られる。割り込み要求のない限り、第
2セレクタ18は、送られてきた内容をそのままバッフ
ァ19へ入力する。バッファ19は、上記内容をメイン
デコーダ20へ入力する。メインデコーダ20は、処理
選択回路21から命令処理のステージであることと、ラ
ッチ17から命令の種類など命令処理に必要な情報(上
記内容)の提供を受け、命令処理のプログラムに従っ
て、EXU3に指示を出す。命令処理が終了すると、メ
インデコーダは、前述のNEXTIを、処理選択回路2
1、及びプリデコーダ12に出し、次の命令の最初へと
つながる。
“処理不要”でない場合についての説明である。
結果、SAC13が“処理不要”となっていれば、処理
選択回路21は、NEXTIを受けた後、直ちにDAC
選択状態になり、メインデコーダ20は、デスティネー
ションアドレス生成のプログラムからスタートすること
になる。また、プリデコーダ12によるセットの結果、
DAC14が“処理不要”となっていれば、SAC選択
状態からOPC選択(命令処理)状態に遷移する。更
に、プリデコーダによるセットの結果、SAC13およ
びDAC14が“処理不要”となっていれば、処理選択
回路21は、NEXTIを受けた後、直ちにOPC選択
(命令処理)状態となり、メインデコーダ20は、命令
処理のプログラムからスタートすることになる。
明する。
される。一般的に、CPU1は、命令の切れ目(新しい
命令に移るとき)にしか割り込みの受付を行わない。命
令処理の途中で割り込み処理が入ることはないので、こ
の実施例では、NEXTIが出力されたときのみICU
5が最新の割り込み要求情報を、第2セレクタ18に入
力するようにして、NEXTIの出ないときは前の割り
込み要求状態を保持するようICU5は動作する。これ
で、命令の切れ目以外で割り込み要求信号が変化するこ
とがないので、命令処理の途中で割り込み処理が入るこ
とはない。
り、たとえば文字列(ストリングス)転送命令のよう
な、同じ処理を繰返し、その繰返し回数が(CPU開発
時に)未定の命令は、命令の切れ目、すなわち処理終了
まで割り込み受付を待たせると、割り込み要求から受け
付けまでたいへん時間かかってしまうことがありえる。
これでは、CPUのリアルタイム性(即時性)が損なわ
れるので、このような命令に限り、繰り返される命令処
理ステージの間に割り込み検査を設けて、割り込み要求
があったなら、そこで命令処理の繰返しを打切り、割り
込み処理に入るのが、一般的な方法である。
処理について説明する。
ムで、命令を終了するか繰り返すかを判定し、命令を終
了するなら通常通りにNEXTIを出力する。一方、繰
返しをするならもう一度命令処理ステージに戻る。そし
て、この繰り返しをするときは、割り込み要求元(IC
U5)に割り込み要求検査を指示する信号(以下NEX
TSと呼ぶ)を出力する。NEXTSが出力されたとき
は、NEXTIが出力されたときと同様に、ICU5に
伝えられた最新の割り込み要求内容を第2セレクタ18
に反映するが、NEXTIと異なり、次の命令に移行す
ることはない。即ち、割り込み要求が受け付けられて、
割り込み処理を行っても、命令は次に進んでいないの
で、割り込み処理ルーチンから復帰した後は、先の繰返
し命令から再開できる。
スアドレス生成→デスティネーションアドレス生成→命
令処理の順序で処理されるようになっていて、その処理
が不要な場合のみ、その処理を飛ばして次にいくように
している。これは、処理選択回路21が基本的には必ず
上記の順番通りにしか状態遷移をしないからである。そ
して、以上の説明から明らかなように、メインデコーダ
20への入力情報やメインデコーダ20内のプログラム
は独立しているため、上記3つの各状態間の関係に制限
されることなくソース/デスティネーションの組み合わ
せが可能となり、アドレッシングの直交性を確保できる
(アドレッシングの組み合わせによる制約が無くな
る)。また、それぞれのプログラムも組み合わせの制限
を受けないため、プログラム開発が容易になる。
が不要な処理の状態にならず、直接次の状態に推移する
機能を持つため、時間的に効率よく処理が進む。
ついて説明する。
の一部を示すブロック図である。EXU3は、内部バス
109、演算実行部30、汎用レジスタ31、データア
ウトプットラッチ(以下、DOLと略記する)32、デ
ータインプットラッチ(以下、DILと略記する)3
3、及び即値用データラッチ(以下、IDLと略記す
る)34を備える。
よいが、説明の簡略化のため、図3中では単数としてい
る。
内部バス109からデータを読み込み、演算結果をデー
タバス109に出力する。
タを格納したり、演算結果を格納したりする。
にある記憶装置にライトするときに当該演算結果をBC
U4へ受け渡す窓口となるラッチであり、経路106へ
演算結果を出力する。
行うものであり、BCU4がCPU1の外部にある記憶
装置からリードしたデータを、BCU4から受け取る窓
口となるラッチであり、経路106からデータを受け取
る。なお、DIL33には、ソース用(以下、DILS
と略記する)とデスティネーション用(以下、DILD
と略記する)とがある。
33との間のデータのやりとりは、BCU4にて制御さ
れる。具体的には、ライト時において、BCU4がデー
タライトを行えるようになったら、DOL32から経路
106を経てBCU4へデータ転送を行い、また、リー
ド時において、BCU4がデータリードを完了したな
ら、経路106を経てDIL33へデータ転送する。
ータをEXU3に伝えるための窓口となるラッチであ
り、プログラムバス11からデータを受け取る。
算実行部30及び汎用レジスタ31ついては入出力、D
OL32については出力、DIL33及びIDL34に
ついては入力の関係となる。
OACと略記する)と他の回路との関係を示すブロック
図である。このOAC40は、SAC13及びDAC1
4の状態を監視し、メインデコーダ20からの信号と前
記SAC13及びDAC14の状態に応じて、汎用レジ
スタ31、DIL32、DOL33、及びIDL34と
内部バス109とのデータ入出力を制御する。
状態”とは、ソースオペランドアドレッシングの内容
が、”即値データ”であるか、”メモリ上のデータ”で
あるか、”レジスタ”であるか、である。後述するよう
に、”処理不要”状態は、”レジスタ”と共通である。
DAC14からOAC40へ伝達される”状態”とは、
デスティネーションオペランドアドレッシングの内容
が、”メモリ上のデータ”であるか、”レジスタ”であ
るか、である。後述するように、”処理不要”状態
は、”レジスタ”と共通である。
3種類あり、”ソースデータを内部バスに出力せよ”と
いう信号(以下、SDと略記する)、”デスティネーシ
ョンデータを内部バスに出力せよ”という信号(以下、
DDと略記する)、”内部バスのデータをデスティネー
ションオペランドへ格納せよ”という信号(以下、DD
Wと略記する)である。
る。
“即値データか、“メモリ上のデータ”か、”レジスタ
内のデータ”かの3通りがある。ソースアドレス算出状
態(SAC選択状態)では、アドレッシングが”即値”
なら、プログラム中の即値データをIDL34へ格納す
る。アドレッシングが”メモリ上”なら、アドレスを計
算し、必要なら目的のデータをメモリから読み出してD
IL(DILS)33へ格納する。アドレッシングが”
レジスタ”なら、ソースアドレス算出状態では何もしな
い。つまり、”レジスタ”とソースオペランドが存在し
ない”処理不要”とは等しい。
く分けて、”メモリ上のデータ”か、”レジスタ内のデ
ータ”かの2通りがある。デスティネーションアドレス
算出状態(DAC選択状態)では、アドレッシングが”
メモリ上”なら、アドレスを計算し、必要なら目的のデ
ータをメモリから読み出してDIL(DILD)33へ
格納する。アドレッシングが”レジスタ”なら、デステ
ィネーションアドレス算出状態では何もしない。つま
り、”レジスタ”とデスティネーションオペランドが存
在しない”処理不要”とは等しい。
たように、プリデコーダ12が設定する。
記信号SD,DD,DDWSを入力し、以下の表1に示
すように、汎用レジスタ31及びラッチ32〜34をコ
ントロールする。
を出力するのは、命令処理状態(OPC選択状態)であ
る。この状態ではソースアドレッシングの内容に関わら
ず、SD信号のみで、ソースデータを内部バスに呼びだ
すことができる。同様にDD信号のみでデスティネーシ
ョンデータを内部バスに呼びだすことができる。同様に
DDW信号のみで内部バス上のデータを、デスティネー
ションオペランドに格納できる。
ムにおいては、オペランドアドレッシングがどのような
種類であっても、SD,DD,DDWを用いた1通りの
プログラム記述にて実現できる。
レッシングにかかる時間をゼロとしながら、命令処理状
態で他のアドレッシングと全く同じ扱いにできるため、
スピードを犠牲にすることなくマイクロプログラムでき
る。
CやDACの状態を”レジスタ”アドレッシングの状態
と共通にすることで、”レジスタアドレッシング”の状
態と”オペランド存在せず”の状態の2通りを設けなく
て済む。
ッシングに制約がなく、命令実行がスムースに行われ、
マイクロプログラムを小さいサイズに抑えることができ
るという効果を奏する。
ある。
ントロールユニット(SCU)を示すブロック図であ
る。
の実行部(EXU)を示すブロック図である。
のオペランド自動選択回路(OAC)と他の回路との関
係を示すブロック図である。
C:第1回路) 14 デスティネーションアドレッシングコントロール
回路(DAC:第2回路) 15 オペレーションコントロール回路(OPC:第3
回路) 16 第1セレクタ 17 ラッチ 18 第2セレクタ 19 バッファ 20 メインデコーダ 21 処理選択回路 40 オペランド自動選択回路
Claims (7)
- 【請求項1】 命令コードの内容からソースオペランド
アドレッシングの情報のみをメインデコーダへの入力情
報として保持する第1回路と、命令コードの内容からデ
スティネーションオペランドアドレッシングの情報のみ
をメインデコーダへの入力情報として保持する第2回路
と、命令コードの内容からオペランドアドレッシングの
情報を除く命令処理の情報をメインデコーダへの入力情
報として保持する第3回路と、命令コードの内容を解析
して前記第1回路と第2回路と第3回路の状態を制御す
るプリデコーダと、前記第1乃至第3回路に保持された
情報のうちどの情報をメインデコーダに入力するかを選
択する第1セレクタと、第1セレクタによる選択を1つ
の命令につき基本的には第1回路、第2回路、第3回路
の順序とし、現在の選択状態から次の選択状態に移行す
るタイミングをメインデコーダからの信号に基づいて設
定し、第1回路又は第2回路の状態が“処理不要”を示
すとき、当該“処理不要”の回路の選択をせずに次の回
路選択状態をとるように第1セレクタを制御する処理選
択回路と、前記第1乃至第3回路からの情報を得て中央
演算処理装置内部の各回路を制御するメインデコーダと
を備えたことを特徴とする中央演算処理装置。 - 【請求項2】 前記第1セレクタにより選択された情報
を保持する手段を備えたことを特徴とする請求項1に記
載の中央演算処理装置。 - 【請求項3】 前記第1セレクタにより選択された情報
と、割込み要求の情報のうちいずれかを選択して前記メ
インデコーダに出力する第2セレクタを備えたことを特
徴とする請求項1又は請求項2に記載の中央演算処理装
置。 - 【請求項4】 前記メインデコーダに前記処理選択回路
の状態を入力するようにした請求項1乃至請求項3のい
ずれかに記載の中央演算処理装置。 - 【請求項5】 データ転送用の内部バスと、この内部バ
スとの間でデータの入出力を行うレジスタと、中央演算
処理装置の外部へ書き込むデータを前記内部バスから入
力して一時保持する第1保持回路と、中央演算処理装置
の外部から読み込んだデータを一時保持して前記内部バ
スへ送出する第2保持回路と、プログラム中にある演算
データとしての”即値”のデータを一時保持して前記内
部バスへ送出する第3保持回路と、前記メインデコーダ
からの信号と第1回路および第2回路の状態とに基づ
き、前記レジスタ、第1保持回路、第2保持回路、及び
第3保持回路を制御するオペランド自動選択回路とを備
えたことを特徴とする請求項1乃至請求項4のいずれか
に記載の中央演算処理装置。 - 【請求項6】 前記第1回路の状態を前記処理選択回路
へ伝える内容として、ソースオペランドが”レジスタ”
である場合とソースオペランドが存在しない場合とを等
価とし、前記第2回路の状態を前記処理選択回路へ伝え
る内容として、デスティネーションオペランドが”レジ
スタ”である場合とデスティネーションオペランドが存
在しない場合とを等価とするようになっていることを特
徴とする請求項5に記載の中央演算処理装置。 - 【請求項7】 前記第1回路の状態を前記オペランド自
動選択回路へ伝える内容として、ソースオペランドが”
レジスタ”である場合とソースオペランドが存在しない
場合とを等価とし、前記第2回路の状態を前記オペラン
ド自動選択回路へ伝える内容として、デスティネーショ
ンオペランドが”レジスタ”である場合とデスティネー
ションオペランドが存在しない場合とを等価とするよう
になっていることを特徴とする請求項5に記載の中央演
算処理装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP01627395A JP3442175B2 (ja) | 1995-02-02 | 1995-02-02 | 中央演算処理装置 |
US08/591,293 US5768554A (en) | 1995-02-02 | 1996-01-25 | Central processing unit |
US08/972,302 US5864691A (en) | 1995-02-02 | 1997-11-18 | Central processing unit with a selector that bypasses circuits where processing is not required |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP01627395A JP3442175B2 (ja) | 1995-02-02 | 1995-02-02 | 中央演算処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH08212067A JPH08212067A (ja) | 1996-08-20 |
JP3442175B2 true JP3442175B2 (ja) | 2003-09-02 |
Family
ID=11911947
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP01627395A Expired - Lifetime JP3442175B2 (ja) | 1995-02-02 | 1995-02-02 | 中央演算処理装置 |
Country Status (2)
Country | Link |
---|---|
US (2) | US5768554A (ja) |
JP (1) | JP3442175B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4913685B2 (ja) * | 2007-07-04 | 2012-04-11 | 株式会社リコー | Simd型マイクロプロセッサおよびsimd型マイクロプロセッサの制御方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
USH1291H (en) * | 1990-12-20 | 1994-02-01 | Hinton Glenn J | Microprocessor in which multiple instructions are executed in one clock cycle by providing separate machine bus access to a register file for different types of instructions |
JPH04367936A (ja) * | 1991-06-17 | 1992-12-21 | Mitsubishi Electric Corp | スーパースカラープロセッサ |
JPH05173932A (ja) * | 1991-12-24 | 1993-07-13 | Toshiba Corp | データ転送装置 |
DE69429061T2 (de) * | 1993-10-29 | 2002-07-18 | Advanced Micro Devices, Inc. | Superskalarmikroprozessoren |
-
1995
- 1995-02-02 JP JP01627395A patent/JP3442175B2/ja not_active Expired - Lifetime
-
1996
- 1996-01-25 US US08/591,293 patent/US5768554A/en not_active Expired - Lifetime
-
1997
- 1997-11-18 US US08/972,302 patent/US5864691A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US5864691A (en) | 1999-01-26 |
JPH08212067A (ja) | 1996-08-20 |
US5768554A (en) | 1998-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0241946B1 (en) | Information processing system | |
US6405302B1 (en) | Microcomputer | |
US6581152B2 (en) | Methods and apparatus for instruction addressing in indirect VLIW processors | |
CN1983167A (zh) | 将一个处理器与一个协处理器相接口的方法 | |
US4967338A (en) | Loosely coupled pipeline processor | |
US5577256A (en) | Data driven type information processor including a combined program memory and memory for queuing operand data | |
US6496924B2 (en) | Data processing apparatus including a plurality of pipeline processing mechanisms in which memory access instructions are carried out in a memory access pipeline | |
JP2001504959A (ja) | Riscアーキテクチャを有する8ビットマイクロコントローラ | |
JP3756410B2 (ja) | 述語データを提供するシステム | |
JP2009009550A (ja) | データの通信 | |
US5907693A (en) | Autonomously cycling data processing architecture | |
JPH0743648B2 (ja) | 情報処理装置 | |
US4967339A (en) | Operation control apparatus for a processor having a plurality of arithmetic devices | |
US5034879A (en) | Programmable data path width in a programmable unit having plural levels of subinstruction sets | |
JPH01271838A (ja) | マイクロプログラム分岐方法 | |
JP3442175B2 (ja) | 中央演算処理装置 | |
JP2009009549A (ja) | 一連のコンピュータでデータを処理するシステムおよび方法 | |
EP0325226B1 (en) | Information processing apparatus and method | |
JPH11259290A (ja) | マイクロプロセッサ、演算処理実行方法及び記憶媒体 | |
JP2001297074A (ja) | データ駆動型情報処理装置の実行制御装置 | |
US6219761B1 (en) | Load/store assist engine | |
JP2006134347A (ja) | マイクロコンピュータ | |
JPH0644389A (ja) | データ駆動型情報処理装置 | |
JPH06324861A (ja) | Cpu制御システム及び制御方法 | |
JP2755646B2 (ja) | データ駆動型データ処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080620 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090620 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090620 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100620 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110620 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110620 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120620 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130620 Year of fee payment: 10 |
|
EXPY | Cancellation because of completion of term |