JP3211750B2 - 情報処理装置及びパイプライン処理方法 - Google Patents
情報処理装置及びパイプライン処理方法Info
- Publication number
- JP3211750B2 JP3211750B2 JP28999497A JP28999497A JP3211750B2 JP 3211750 B2 JP3211750 B2 JP 3211750B2 JP 28999497 A JP28999497 A JP 28999497A JP 28999497 A JP28999497 A JP 28999497A JP 3211750 B2 JP3211750 B2 JP 3211750B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- stage
- read
- instructions
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 230000010365 information processing Effects 0.000 title claims description 28
- 238000003672 processing method Methods 0.000 title claims description 6
- 238000000034 method Methods 0.000 claims description 8
- 230000006870 function Effects 0.000 claims description 4
- 230000004044 response Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 7
- 101001106432 Homo sapiens Rod outer segment membrane protein 1 Proteins 0.000 description 2
- 102100021424 Rod outer segment membrane protein 1 Human genes 0.000 description 2
- 239000013256 coordination polymer Substances 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 101100087530 Caenorhabditis elegans rom-1 gene Proteins 0.000 description 1
- 101100305983 Mus musculus Rom1 gene Proteins 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- 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/3802—Instruction prefetching
-
- 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/3824—Operand accessing
-
- 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
- G06F9/3869—Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
-
- 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
- G06F9/3875—Pipelining a single stage, e.g. superpipelining
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Description
【0001】
【発明の属する技術分野】本発明は、パイプライン処理
方法及びその方法を採用した情報処理装置に関するもの
である。
方法及びその方法を採用した情報処理装置に関するもの
である。
【0002】
【従来の技術】従来より、演算機能を複数種類のステー
ジに分け、並列して異なるステージの処理を行うことに
より、複数の命令処理サイクルを部分的に重複したタイ
ミングで実行するパイプライン処理方式を採用した情報
処理装置が知られている。
ジに分け、並列して異なるステージの処理を行うことに
より、複数の命令処理サイクルを部分的に重複したタイ
ミングで実行するパイプライン処理方式を採用した情報
処理装置が知られている。
【0003】ここで、こうした従来の情報処理装置につ
いて、一般的な5段パイプライン処理を実行するCPU
(マイクロプロセッサ)を例に挙げて説明する。このC
PUでは、演算機能を、IF(命令読出:フェッチ)、
ID(命令解読:デコード)、EX(命令実行)、MA
(メモリアクセス)、WB(ライトバツク)の5つのス
テージに分割し、図7に示す如き並列関係にてパイプラ
イン処理が実行されている。
いて、一般的な5段パイプライン処理を実行するCPU
(マイクロプロセッサ)を例に挙げて説明する。このC
PUでは、演算機能を、IF(命令読出:フェッチ)、
ID(命令解読:デコード)、EX(命令実行)、MA
(メモリアクセス)、WB(ライトバツク)の5つのス
テージに分割し、図7に示す如き並列関係にてパイプラ
イン処理が実行されている。
【0004】即ち、IFステージでは、予めプログラム
が格納されているROMやRAM等のメモリから命令を
読み出し、IDステージでは、IFステージで取り込ん
だ命令を解読(デコード)し、EXステージでは、ID
ステージで解読した内容に基づきレジスタ間演算を行
う。また、MAステージでは、IDステージで解読した
内容に基づき、EXステージでの演算結果をアドレスと
してROMやRAM等のメモリにアクセス(読み出し或
いは書き込み)を行い、WBステージでは、IDステー
ジで解読した内容に基づき、メモリやレジスタにデータ
を書き込む。
が格納されているROMやRAM等のメモリから命令を
読み出し、IDステージでは、IFステージで取り込ん
だ命令を解読(デコード)し、EXステージでは、ID
ステージで解読した内容に基づきレジスタ間演算を行
う。また、MAステージでは、IDステージで解読した
内容に基づき、EXステージでの演算結果をアドレスと
してROMやRAM等のメモリにアクセス(読み出し或
いは書き込み)を行い、WBステージでは、IDステー
ジで解読した内容に基づき、メモリやレジスタにデータ
を書き込む。
【0005】そして、図7に示すように、n番目の命令
処理サイクルのIFステージでメモリからn番目の命令
を読み出し、該n番目の命令処理サイクルのIDステー
ジで上記n番目の命令を解読しているときに、n+1番
目の命令処理サイクルのIFステージでメモリからn+
1番目の命令を読み出し、更に、n番目の命令処理サイ
クルのEXステージでn番目の命令に基づく演算を行っ
ているときに、n+1番目の命令処理サイクルのIDス
テージでn+1番目の命令を解読すると共に、n+2番
目の命令処理サイクルのIFステージでメモリからn+
2番目の命令を読み出す、といった具合に、複数の命令
処理サイクルの異なるステージ動作を並列に行うこと
で、命令処理の高速化を図っている。
処理サイクルのIFステージでメモリからn番目の命令
を読み出し、該n番目の命令処理サイクルのIDステー
ジで上記n番目の命令を解読しているときに、n+1番
目の命令処理サイクルのIFステージでメモリからn+
1番目の命令を読み出し、更に、n番目の命令処理サイ
クルのEXステージでn番目の命令に基づく演算を行っ
ているときに、n+1番目の命令処理サイクルのIDス
テージでn+1番目の命令を解読すると共に、n+2番
目の命令処理サイクルのIFステージでメモリからn+
2番目の命令を読み出す、といった具合に、複数の命令
処理サイクルの異なるステージ動作を並列に行うこと
で、命令処理の高速化を図っている。
【0006】また、全てのステージ動作は、当該CPU
のシステムクロック(以下、CPUの動作クロックとも
いう)に同期して行われ、基本的に、システムクロック
1つの時間Tで、1つのステージが終了するようになっ
ている。一方、図8に示すように、こうしたパイプライ
ン処理を行う従来のCPUは、ROM10やRAM12
等のメモリのデータ線に接続されているデータバス2か
ら、該データバス2に接続された入力バス3を介して、
例えばROM10に格納されているプログラム中の命令
を読み込み、その命令を解読するデコーダ部4と、デー
タバス2にデータ入出力用の入出力バス6を介して接続
されると共に、デコーダ部4からの制御バス5によって
制御されるデータパス部7とから構成されている。
のシステムクロック(以下、CPUの動作クロックとも
いう)に同期して行われ、基本的に、システムクロック
1つの時間Tで、1つのステージが終了するようになっ
ている。一方、図8に示すように、こうしたパイプライ
ン処理を行う従来のCPUは、ROM10やRAM12
等のメモリのデータ線に接続されているデータバス2か
ら、該データバス2に接続された入力バス3を介して、
例えばROM10に格納されているプログラム中の命令
を読み込み、その命令を解読するデコーダ部4と、デー
タバス2にデータ入出力用の入出力バス6を介して接続
されると共に、デコーダ部4からの制御バス5によって
制御されるデータパス部7とから構成されている。
【0007】そして、データパス部7は、EXステージ
で論理,算術,シフト演算等を行う演算ユニット7−1
と、演算結果を一時的に格納するレジスタユニット7−
2と、ROM10やRAM12等のメモリのアドレス線
に接続されているアドレスバス8へIFステージで出力
すべきアドレス値を、保持及びカウントするプログラム
カウンタユニット7−3とを備えている。尚、上記各ユ
ニット7−1,7−2,7−3は、3つのバス13,1
4,15により互いに接続されて、データのやり取りが
可能となっている。
で論理,算術,シフト演算等を行う演算ユニット7−1
と、演算結果を一時的に格納するレジスタユニット7−
2と、ROM10やRAM12等のメモリのアドレス線
に接続されているアドレスバス8へIFステージで出力
すべきアドレス値を、保持及びカウントするプログラム
カウンタユニット7−3とを備えている。尚、上記各ユ
ニット7−1,7−2,7−3は、3つのバス13,1
4,15により互いに接続されて、データのやり取りが
可能となっている。
【0008】また、デコーダ部4は、IFステージでR
OM10からデータバス2に出力された命令を、上記入
力バス3を介し取得して記憶する記憶素子4−1と、こ
の記憶素子4−1に記憶された命令をIDステージで解
読するデコーダユニット4−2とを備えている。
OM10からデータバス2に出力された命令を、上記入
力バス3を介し取得して記憶する記憶素子4−1と、こ
の記憶素子4−1に記憶された命令をIDステージで解
読するデコーダユニット4−2とを備えている。
【0009】そして、このようなCPUでは、デコーダ
部4とデータパス部7とが、図示されないシステムクロ
ックに同期して動作し、デコーダ部4が、IFステージ
でROM10から記憶素子4−1に転送・記憶される命
令を、IDステージのときにデコーダユニット4−2に
て解読すると共に、その解読した内容に応じてデータパ
ス部7側の各ユニット7−1,7−2,7−3を制御す
ることで、パイプライン処理の各ステージを制御する。
部4とデータパス部7とが、図示されないシステムクロ
ックに同期して動作し、デコーダ部4が、IFステージ
でROM10から記憶素子4−1に転送・記憶される命
令を、IDステージのときにデコーダユニット4−2に
て解読すると共に、その解読した内容に応じてデータパ
ス部7側の各ユニット7−1,7−2,7−3を制御す
ることで、パイプライン処理の各ステージを制御する。
【0010】
【発明が解決しようとする課題】ところで、この種のパ
イプライン処理を行う情報処理装置では、IFステージ
の長さ(即ち、IFステージの実行時間)を、プログラ
ムを格納しているメモリの応答速度よりも長い時間に設
定しておく必要がある。即ち、メモリから命令を確実に
読み出すためには、図7に示すように、IFステージの
実行時間Tを、アドレスバス8上のアドレスを変化させ
てからデータバス2上のデータが確定するまでの時間以
上に設定しておかなければならない。
イプライン処理を行う情報処理装置では、IFステージ
の長さ(即ち、IFステージの実行時間)を、プログラ
ムを格納しているメモリの応答速度よりも長い時間に設
定しておく必要がある。即ち、メモリから命令を確実に
読み出すためには、図7に示すように、IFステージの
実行時間Tを、アドレスバス8上のアドレスを変化させ
てからデータバス2上のデータが確定するまでの時間以
上に設定しておかなければならない。
【0011】そして、従来のパイプライン処理では、全
てのステージの長さが同じであり、各ステージの長さ
は、最も時間の長いステージに支配される。従って、従
来の情報処理装置では、情報処理装置の処理速度(つま
り、EXステージの実行間隔)を、プログラムを格納す
るメモリの応答速度以上には高速化することができない
という問題がある。
てのステージの長さが同じであり、各ステージの長さ
は、最も時間の長いステージに支配される。従って、従
来の情報処理装置では、情報処理装置の処理速度(つま
り、EXステージの実行間隔)を、プログラムを格納す
るメモリの応答速度以上には高速化することができない
という問題がある。
【0012】特に、この種の情報処理装置では、一般的
に、ROMにプログラムが格納され、そのROMの応答
速度よりも高速の動作クロックで動作することが可能で
あるものの、IFステージ以外の他のステージの時間
を、ROMの応答速度よりも短く設定することができ
ず、結局、情報処理装置の処理速度をROMの応答速度
よりも高速化することはできなかったのである。
に、ROMにプログラムが格納され、そのROMの応答
速度よりも高速の動作クロックで動作することが可能で
あるものの、IFステージ以外の他のステージの時間
を、ROMの応答速度よりも短く設定することができ
ず、結局、情報処理装置の処理速度をROMの応答速度
よりも高速化することはできなかったのである。
【0013】一方、この問題を解決するために、応答速
度が高速なキャッシュメモリを搭載し、低速なROMと
のアクセス時間を減らすことによって、処理の高速化を
図ることが考えられる。しかしながら、このようなキャ
ッシュメモリを追加すると、装置の規模(チップサイ
ズ)が大きくなってしまうという問題がある。
度が高速なキャッシュメモリを搭載し、低速なROMと
のアクセス時間を減らすことによって、処理の高速化を
図ることが考えられる。しかしながら、このようなキャ
ッシュメモリを追加すると、装置の規模(チップサイ
ズ)が大きくなってしまうという問題がある。
【0014】本発明は、こうした問題に鑑みなされたも
のであり、キャッシュメモリを用いることなく、且つ、
プログラムを格納するメモリの応答速度に依存すること
なく、処理速度を高速化することのできる情報処理装置
及びパイプライン処理方法を提供することを目的として
いる。
のであり、キャッシュメモリを用いることなく、且つ、
プログラムを格納するメモリの応答速度に依存すること
なく、処理速度を高速化することのできる情報処理装置
及びパイプライン処理方法を提供することを目的として
いる。
【0015】
【課題を解決するための手段、及び発明の効果】上記目
的を達成するため、パイプライン処理を行う本発明の情
報処理装置においては、メモリから1回のアクセスで複
数の命令を読み出せるように、命令セットの基本ビット
長が前記メモリのデータ線のバス幅よりも小さく設定さ
れており、また、前記メモリから命令を読み出す命令読
出ステージ(IFステージ)の実行時間が、他のステー
ジの実行時間よりも長く設定されている。
的を達成するため、パイプライン処理を行う本発明の情
報処理装置においては、メモリから1回のアクセスで複
数の命令を読み出せるように、命令セットの基本ビット
長が前記メモリのデータ線のバス幅よりも小さく設定さ
れており、また、前記メモリから命令を読み出す命令読
出ステージ(IFステージ)の実行時間が、他のステー
ジの実行時間よりも長く設定されている。
【0016】そして、本発明の情報処理装置では、1回
の命令読出ステージで、前記メモリから複数の命令を同
時に読み出し、その読み出した複数の命令の各々を、そ
の命令読出ステージを持つ命令処理サイクルと該命令処
理サイクル以降の命令処理サイクルとで順次解読して実
行すると共に、命令読出ステージを、1回で読み出す命
令の数と同数の命令処理サイクル毎に、且つ、1回で読
み出す命令の数と同数の命令解読ステージ(IDステー
ジ)が存在する期間に亘って実行する。
の命令読出ステージで、前記メモリから複数の命令を同
時に読み出し、その読み出した複数の命令の各々を、そ
の命令読出ステージを持つ命令処理サイクルと該命令処
理サイクル以降の命令処理サイクルとで順次解読して実
行すると共に、命令読出ステージを、1回で読み出す命
令の数と同数の命令処理サイクル毎に、且つ、1回で読
み出す命令の数と同数の命令解読ステージ(IDステー
ジ)が存在する期間に亘って実行する。
【0017】このため、本発明の情報処理装置によれ
ば、応答速度が低いメモリから命令を確実に読み出しつ
つ、命令読出ステージ以外の他のステージの実行時間
を、上記メモリの応答速度よりも短くすることができ
る。よって、従来必要であったキャッシュメモリを用い
ることなく、命令の処理速度を、メモリの応答速度より
も高速化することができる。
ば、応答速度が低いメモリから命令を確実に読み出しつ
つ、命令読出ステージ以外の他のステージの実行時間
を、上記メモリの応答速度よりも短くすることができ
る。よって、従来必要であったキャッシュメモリを用い
ることなく、命令の処理速度を、メモリの応答速度より
も高速化することができる。
【0018】ところで、この情報処理装置において、命
令読出ステージでメモリから読み出した複数の命令を各
命令処理サイクルの命令解読ステージのときに順次解読
するデコーダ部としては、入力された命令を解読するデ
コーダユニットに加えて、前記メモリから前記データ線
に出力された複数の命令の各々を、互いに並列に入力し
て記憶する複数の記憶手段と、その複数の記憶手段に夫
々記憶された命令を、前記デコーダユニットへ択一的に
切り替えて入力させる切替制御手段とを備えるように構
成すれば、1度に読み出された命令の各々を、確実に順
次解読することができる。
令読出ステージでメモリから読み出した複数の命令を各
命令処理サイクルの命令解読ステージのときに順次解読
するデコーダ部としては、入力された命令を解読するデ
コーダユニットに加えて、前記メモリから前記データ線
に出力された複数の命令の各々を、互いに並列に入力し
て記憶する複数の記憶手段と、その複数の記憶手段に夫
々記憶された命令を、前記デコーダユニットへ択一的に
切り替えて入力させる切替制御手段とを備えるように構
成すれば、1度に読み出された命令の各々を、確実に順
次解読することができる。
【0019】この場合、前記切替制御手段が、複数の記
憶手段に夫々記憶された命令を、プログラムカウンタの
値に応じて、前記デコーダユニットへ択一的に切り替え
て入力させるようにすれば、簡単な構成で複数の命令の
各々を確実に解読することができる。
憶手段に夫々記憶された命令を、プログラムカウンタの
値に応じて、前記デコーダユニットへ択一的に切り替え
て入力させるようにすれば、簡単な構成で複数の命令の
各々を確実に解読することができる。
【0020】また更に、デコーダ部にダミー命令供給手
段を設け、そのダミー命令供給手段が、デコーダユニッ
トにより前回解読された命令(即ち、前回の命令解読ス
テージで解読された命令)と今回解読された命令(即
ち、今回の命令解読ステージで解読された命令)とが特
定の関係にある場合に、デコーダユニットにより今回解
読された命令に代えて、処理に影響を及ぼさないダミー
命令を、当該情報処理装置の命令実行部(図8のデータ
パス部7に相当)へ出力するように構成すれば、より効
果的である。
段を設け、そのダミー命令供給手段が、デコーダユニッ
トにより前回解読された命令(即ち、前回の命令解読ス
テージで解読された命令)と今回解読された命令(即
ち、今回の命令解読ステージで解読された命令)とが特
定の関係にある場合に、デコーダユニットにより今回解
読された命令に代えて、処理に影響を及ぼさないダミー
命令を、当該情報処理装置の命令実行部(図8のデータ
パス部7に相当)へ出力するように構成すれば、より効
果的である。
【0021】例えば、前回解読された命令が、ROMや
RAM等からデータを読み出す所謂ロード命令であり、
今回解読された命令が、そのロード命令の実行により読
み出されるデータを用いて処理を行う命令であった場合
には、少なくとも、前回解読されたロード命令に基づく
MA(メモリアクセス)ステージの処理が完了してから
でないと、今回解読された命令に基づくEX(命令実
行)ステージの処理を行うことができないこととなる。
RAM等からデータを読み出す所謂ロード命令であり、
今回解読された命令が、そのロード命令の実行により読
み出されるデータを用いて処理を行う命令であった場合
には、少なくとも、前回解読されたロード命令に基づく
MA(メモリアクセス)ステージの処理が完了してから
でないと、今回解読された命令に基づくEX(命令実
行)ステージの処理を行うことができないこととなる。
【0022】そこで、ダミー命令供給手段を設ければ、
上記例のような場合に、デコーダユニットにより今回解
読された本来の命令に代えて、処理に影響を及ぼさない
ダミー命令を、当該情報処理装置の命令実行部へ出力し
て、その回の命令処理サイクルのEXステージ以降の各
ステージでダミー命令を実行させることができる。この
ため、その後の命令処理サイクルのEXステージであっ
て、前回解読されたロード命令に基づくMAステージの
処理が完了した後のEXステージで、上記本来の命令を
実行させることができるようになり、様々な組み合せの
命令を確実に実行することができるようになるのであ
る。
上記例のような場合に、デコーダユニットにより今回解
読された本来の命令に代えて、処理に影響を及ぼさない
ダミー命令を、当該情報処理装置の命令実行部へ出力し
て、その回の命令処理サイクルのEXステージ以降の各
ステージでダミー命令を実行させることができる。この
ため、その後の命令処理サイクルのEXステージであっ
て、前回解読されたロード命令に基づくMAステージの
処理が完了した後のEXステージで、上記本来の命令を
実行させることができるようになり、様々な組み合せの
命令を確実に実行することができるようになるのであ
る。
【0023】尚、本発明の情報処理装置において、前記
メモリから1回の命令読出ステージで読み出される命令
の数を、2のn乗(但しnは自然数)に設定しておけ
ば、特に効果的である。つまり、通常、命令セットの基
本ビット長と、メモリのデータ線のバス幅とは、8ビッ
ト,16ビット,32ビット,64ビット,…といった
具合に、2の階乗ビットであるため、1回で読み出され
る命令の数を2のn乗に設定しておくことにより、メモ
リのデータ線を有効に活用することができる。
メモリから1回の命令読出ステージで読み出される命令
の数を、2のn乗(但しnは自然数)に設定しておけ
ば、特に効果的である。つまり、通常、命令セットの基
本ビット長と、メモリのデータ線のバス幅とは、8ビッ
ト,16ビット,32ビット,64ビット,…といった
具合に、2の階乗ビットであるため、1回で読み出され
る命令の数を2のn乗に設定しておくことにより、メモ
リのデータ線を有効に活用することができる。
【0024】一方、本発明のパイプライン処理方法は、
メモリから1回のアクセスで複数の命令を読み出せるよ
うに、命令セットの基本ビット長を前記メモリのデータ
線のバス幅よりも小さく設定しておくと共に、前記メモ
リから命令を読み出す命令読出ステージの実行時間を、
他のステージの実行時間よりも常に長く、且つ、1回の
命令読出ステージで、前記メモリから複数の命令を同時
に読み出すようにし、更に、1回の命令読出ステージで
読み出した複数の命令の各々を、その命令読出ステージ
を持つ命令処理サイクルと該命令処理サイクル以降の命
令処理サイクルとで順次解読して実行すると共に、命令
読出ステージを、1回で読み出す命令の数と同数の命令
処理サイクル毎に、且つ、1回で読み出す命令の数と同
数の命令解読ステージが存在する期間に亘って実行する
ことにより、実施することができる。
メモリから1回のアクセスで複数の命令を読み出せるよ
うに、命令セットの基本ビット長を前記メモリのデータ
線のバス幅よりも小さく設定しておくと共に、前記メモ
リから命令を読み出す命令読出ステージの実行時間を、
他のステージの実行時間よりも常に長く、且つ、1回の
命令読出ステージで、前記メモリから複数の命令を同時
に読み出すようにし、更に、1回の命令読出ステージで
読み出した複数の命令の各々を、その命令読出ステージ
を持つ命令処理サイクルと該命令処理サイクル以降の命
令処理サイクルとで順次解読して実行すると共に、命令
読出ステージを、1回で読み出す命令の数と同数の命令
処理サイクル毎に、且つ、1回で読み出す命令の数と同
数の命令解読ステージが存在する期間に亘って実行する
ことにより、実施することができる。
【0025】そして、このパイプライン処理方法を実施
すれば、前述したように、応答速度が低いメモリから命
令を確実に読み出しつつ、命令読出ステージ以外の他の
ステージの実行時間をメモリの応答速度よりも短くで
き、キャッシュメモリを用いることなく、命令の処理速
度を高速化することができる。
すれば、前述したように、応答速度が低いメモリから命
令を確実に読み出しつつ、命令読出ステージ以外の他の
ステージの実行時間をメモリの応答速度よりも短くで
き、キャッシュメモリを用いることなく、命令の処理速
度を高速化することができる。
【0026】
【発明の実施の形態】以下、本発明の実施形態について
図面を用いて説明する。尚、本発明の実施形態は、下記
のものに何ら限定されることなく、本発明の技術的範囲
に属する限り、種々の形態を採り得ることは言うまでも
ない。
図面を用いて説明する。尚、本発明の実施形態は、下記
のものに何ら限定されることなく、本発明の技術的範囲
に属する限り、種々の形態を採り得ることは言うまでも
ない。
【0027】[第1実施形態]まず、図1は、第1実施
形態のCPUで行われるパイプライン処理の流れを表す
タイムチャートであり、図2は、図1のパイプライン処
理を行うCPUの構成を表すブロック図である。
形態のCPUで行われるパイプライン処理の流れを表す
タイムチャートであり、図2は、図1のパイプライン処
理を行うCPUの構成を表すブロック図である。
【0028】図2に示すように、本第1実施形態のCP
Uでは、ROM10及びRAM12のデータ線10d,
12dと、そのデータ線10d,12dに接続されたデ
ータバス2とのバス幅が、32ビットであるのに対し
て、ROM10に格納されたプログラムの命令セットの
基本ビット長が16ビットに設定されており、ROM1
0に対する1回のリードアクセスで2つの命令を同時に
読み出すことが可能となっている点、及び、デコーダ部
4が、2つの記憶素子4−1a,4−1bと切替ユニッ
ト4−3を備えている点で、図8に示した従来のものと
大きく相違している。
Uでは、ROM10及びRAM12のデータ線10d,
12dと、そのデータ線10d,12dに接続されたデ
ータバス2とのバス幅が、32ビットであるのに対し
て、ROM10に格納されたプログラムの命令セットの
基本ビット長が16ビットに設定されており、ROM1
0に対する1回のリードアクセスで2つの命令を同時に
読み出すことが可能となっている点、及び、デコーダ部
4が、2つの記憶素子4−1a,4−1bと切替ユニッ
ト4−3を備えている点で、図8に示した従来のものと
大きく相違している。
【0029】尚、図3に示すように、本第1実施形態に
おけるROM10のメモリ構成は、1つのアドレスが1
6ビットのデータに対応すると共に、所謂リトルエンデ
ィアンとなっている。そして、ROM10は、CPUか
らアドレスバス8へ、アドレスN(Nは偶数)が出力さ
れると、そのアドレスNに対応する16ビットデータと
アドレスN+1に対応する16ビットデータとの、合計
32ビットのデータをデータバス2へ出力するようにな
っている。
おけるROM10のメモリ構成は、1つのアドレスが1
6ビットのデータに対応すると共に、所謂リトルエンデ
ィアンとなっている。そして、ROM10は、CPUか
らアドレスバス8へ、アドレスN(Nは偶数)が出力さ
れると、そのアドレスNに対応する16ビットデータと
アドレスN+1に対応する16ビットデータとの、合計
32ビットのデータをデータバス2へ出力するようにな
っている。
【0030】そして、図2に示すように、本第1実施形
態のCPUでは、データバス2からデコーダ部4への入
力バス3が、デコーダ部4の内部において、上位16ビ
ットと下位16ビットとの2本に分割されており、その
分割された2本の入力バス3a,3bが、2つの記憶素
子4−1a,4−1bに夫々入力されている。
態のCPUでは、データバス2からデコーダ部4への入
力バス3が、デコーダ部4の内部において、上位16ビ
ットと下位16ビットとの2本に分割されており、その
分割された2本の入力バス3a,3bが、2つの記憶素
子4−1a,4−1bに夫々入力されている。
【0031】よって、記憶素子4−1bには、ROM1
0からデータバス2の下位16ビットに出力された命令
が記憶され、記憶素子4−1aには、ROM10からデ
ータバス2の上位16ビットに出力された命令、即ち、
記憶素子4−1bに記憶される命令の次に実行されるべ
き命令が記憶される。
0からデータバス2の下位16ビットに出力された命令
が記憶され、記憶素子4−1aには、ROM10からデ
ータバス2の上位16ビットに出力された命令、即ち、
記憶素子4−1bに記憶される命令の次に実行されるべ
き命令が記憶される。
【0032】そして更に、デコーダ部4では、各記憶素
子4−1a,4−1bに夫々記憶された16ビットの命
令が切替ユニット4−3に入力され、この切替ユニット
4−3が、プログラムカウンタユニット7−3から制御
線9を介して入力される切替信号応じて、上記2つの記
憶素子4−1a,4−1bに記憶された命令のうちの何
れか一方を、デコーダユニット4−2に入力させて解読
させる。
子4−1a,4−1bに夫々記憶された16ビットの命
令が切替ユニット4−3に入力され、この切替ユニット
4−3が、プログラムカウンタユニット7−3から制御
線9を介して入力される切替信号応じて、上記2つの記
憶素子4−1a,4−1bに記憶された命令のうちの何
れか一方を、デコーダユニット4−2に入力させて解読
させる。
【0033】また、本第1実施形態のCPUでは、図1
に示すように、IDステージ,EXステージ,MAステ
ージ,及びWBステージの各実行時間がシステムクロッ
ク1つ分の時間となっているのに対して、IFステージ
の実行時間Tはシステムクロック2つ分の時間となって
いる。そして、IFステージの実行時間Tは、図7,8
に示した従来例の場合と同じ時間である。
に示すように、IDステージ,EXステージ,MAステ
ージ,及びWBステージの各実行時間がシステムクロッ
ク1つ分の時間となっているのに対して、IFステージ
の実行時間Tはシステムクロック2つ分の時間となって
いる。そして、IFステージの実行時間Tは、図7,8
に示した従来例の場合と同じ時間である。
【0034】つまり、IFステージの実行時間Tは、前
述したようにROM10の応答速度によって決まるた
め、本実施形態のものと従来例のものとで同じである
が、本第1実施形態のCPUでは、IFステージ以外の
他のステージの実行時間が、IFステージの実行時間T
の半分の時間(T/2)に設定されているのである。換
言すれば、本第1実施形態のCPUでは、その動作クロ
ックの周波数を、従来装置に対して2倍にしている。
述したようにROM10の応答速度によって決まるた
め、本実施形態のものと従来例のものとで同じである
が、本第1実施形態のCPUでは、IFステージ以外の
他のステージの実行時間が、IFステージの実行時間T
の半分の時間(T/2)に設定されているのである。換
言すれば、本第1実施形態のCPUでは、その動作クロ
ックの周波数を、従来装置に対して2倍にしている。
【0035】この第1実施形態のCPUにおいては、基
本的に、システムクロック(CPU動作クロック)が立
ち上がる毎に、プログラムカウンタユニット7−3で保
持されるアドレス値が1インクリメントされ、そのアド
レス値が偶数になる毎に、プログラムカウンタユニット
7−3からアドレスバス8へ、そのアドレス値が出力さ
れる。
本的に、システムクロック(CPU動作クロック)が立
ち上がる毎に、プログラムカウンタユニット7−3で保
持されるアドレス値が1インクリメントされ、そのアド
レス値が偶数になる毎に、プログラムカウンタユニット
7−3からアドレスバス8へ、そのアドレス値が出力さ
れる。
【0036】すると、そのアドレスバス8上のアドレス
値に応答して、ROM10がデータバス2へ32ビット
分の2つの命令を出力することとなり、その後、図1に
おける「データバス」の行に示すように、データバス2
上のデータが確定すると見なされるタイミング(本実施
形態では、アドレスバス8へアドレスを出力してからシ
ステムクロックが2回目に立ち下がったタイミング)
で、前述したように、ROM10からデータバス2の下
位16ビットに出力された最初に実行されるべき命令が
記憶素子4−1bに記憶されると共に、ROM10から
データバス2の上位16ビットに出力された次に実行さ
れるべき命令が記憶素子4−1aに記憶される。
値に応答して、ROM10がデータバス2へ32ビット
分の2つの命令を出力することとなり、その後、図1に
おける「データバス」の行に示すように、データバス2
上のデータが確定すると見なされるタイミング(本実施
形態では、アドレスバス8へアドレスを出力してからシ
ステムクロックが2回目に立ち下がったタイミング)
で、前述したように、ROM10からデータバス2の下
位16ビットに出力された最初に実行されるべき命令が
記憶素子4−1bに記憶されると共に、ROM10から
データバス2の上位16ビットに出力された次に実行さ
れるべき命令が記憶素子4−1aに記憶される。
【0037】そして、このようなシステムクロック2つ
分毎の動作によって、IFステージの動作が実現され
る。一方、デコーダ部4においては、切替ユニット4−
3が、プログラムカウンタユニット7−3で保持される
アドレス値が偶数になる毎に、記憶素子4−1bに記憶
されている命令をデコーダユニット4−2に解読させ、
また、プログラムカウンタユニット7−3で保持される
アドレス値が奇数になる毎に、記憶素子4−1aに記憶
されている命令をデコーダユニット4−2に解読させ、
これによってIDステージの動作が実現される。
分毎の動作によって、IFステージの動作が実現され
る。一方、デコーダ部4においては、切替ユニット4−
3が、プログラムカウンタユニット7−3で保持される
アドレス値が偶数になる毎に、記憶素子4−1bに記憶
されている命令をデコーダユニット4−2に解読させ、
また、プログラムカウンタユニット7−3で保持される
アドレス値が奇数になる毎に、記憶素子4−1aに記憶
されている命令をデコーダユニット4−2に解読させ、
これによってIDステージの動作が実現される。
【0038】そして、システムクロックが立ち上がる毎
に、データパス部7の演算ユニット7−1が、システム
クロックの前回の立ち上り時にデコーダユニット4−2
で解読された命令に応じてレジスタ間演算を行い、これ
によってEXステージの動作が実現される。また、この
EXステージでの演算結果に応じて、データパス部7の
各ユニット7−1,7−2,7−3が動作して、MAス
テージ及びWBステージの動作が実現される。
に、データパス部7の演算ユニット7−1が、システム
クロックの前回の立ち上り時にデコーダユニット4−2
で解読された命令に応じてレジスタ間演算を行い、これ
によってEXステージの動作が実現される。また、この
EXステージでの演算結果に応じて、データパス部7の
各ユニット7−1,7−2,7−3が動作して、MAス
テージ及びWBステージの動作が実現される。
【0039】よって、本第1実施形態のCPUにて行わ
れるパイプライン処理では、図1に示すように、n番目
の命令処理サイクルのIFステージifn でROM10
からn番目とn+1番目の命令を同時に読み出し、その
命令処理サイクルのIDステージidn で上記n番目の
命令を解読して、続くEXステージexn で上記n番目
の命令に基づく演算を行い、n番目の命令処理サイクル
のEXステージexnで演算を行っているときに、n+
1番目の命令処理サイクルのIDステージidn+1 で上
記n+1番目の命令を解読して、続くEXステージex
n+1 で上記n+1番目の命令に基づく演算を行い、一
方、n番目の命令処理サイクルのIDステージidn と
n+1番目の命令処理サイクルのIDステージidn+1
との期間に亘って、n+2番目の命令処理サイクルのI
Fステージifn+2 でROM10からn+2番目とn+
3番目の命令を同時に読み出す、といった処理を繰り返
すこととなる。
れるパイプライン処理では、図1に示すように、n番目
の命令処理サイクルのIFステージifn でROM10
からn番目とn+1番目の命令を同時に読み出し、その
命令処理サイクルのIDステージidn で上記n番目の
命令を解読して、続くEXステージexn で上記n番目
の命令に基づく演算を行い、n番目の命令処理サイクル
のEXステージexnで演算を行っているときに、n+
1番目の命令処理サイクルのIDステージidn+1 で上
記n+1番目の命令を解読して、続くEXステージex
n+1 で上記n+1番目の命令に基づく演算を行い、一
方、n番目の命令処理サイクルのIDステージidn と
n+1番目の命令処理サイクルのIDステージidn+1
との期間に亘って、n+2番目の命令処理サイクルのI
Fステージifn+2 でROM10からn+2番目とn+
3番目の命令を同時に読み出す、といった処理を繰り返
すこととなる。
【0040】以上詳述したように、本第1実施形態のC
PUでは、ROM10から1回のアクセスで2つの命令
を読み出せるように、命令セットの基本ビット長をRO
M10のデータ線10dのバス幅の半分に設定してお
き、また、IFステージの実行時間Tを他のステージの
実行時間の2倍に設定している。そして更に、1回のI
Fステージで、ROM10から2つの命令を同時に読み
出し、その読み出した2つの命令の各々を、そのIFス
テージを持つ命令処理サイクルとその次の命令処理サイ
クルとで順次解読して実行すると共に、IFステージ
を、2つの命令処理サイクル毎に、且つ、2つのIDス
テージが存在する期間に亘って実行するようにしてい
る。
PUでは、ROM10から1回のアクセスで2つの命令
を読み出せるように、命令セットの基本ビット長をRO
M10のデータ線10dのバス幅の半分に設定してお
き、また、IFステージの実行時間Tを他のステージの
実行時間の2倍に設定している。そして更に、1回のI
Fステージで、ROM10から2つの命令を同時に読み
出し、その読み出した2つの命令の各々を、そのIFス
テージを持つ命令処理サイクルとその次の命令処理サイ
クルとで順次解読して実行すると共に、IFステージ
を、2つの命令処理サイクル毎に、且つ、2つのIDス
テージが存在する期間に亘って実行するようにしてい
る。
【0041】このため、本第1実施形態CPUによれ
ば、IFステージの実行時間Tを従来例と同様の値に設
定して、応答速度が低いROM10から命令を確実に読
み出すことができるようにしつつ、IFステージ以外の
他のステージの実行時間を、IFステージの半分の時間
(T/2)にすることができる。よって、命令の処理速
度、即ちEXステージの実行間隔を、従来必要であった
キャッシュメモリを用いることなく、ROM10の応答
速度よりも高速化することができる。
ば、IFステージの実行時間Tを従来例と同様の値に設
定して、応答速度が低いROM10から命令を確実に読
み出すことができるようにしつつ、IFステージ以外の
他のステージの実行時間を、IFステージの半分の時間
(T/2)にすることができる。よって、命令の処理速
度、即ちEXステージの実行間隔を、従来必要であった
キャッシュメモリを用いることなく、ROM10の応答
速度よりも高速化することができる。
【0042】尚、上記第1実施形態は、命令セットの基
本ビット長が16ビットであり、データバス2のバス幅
が32ビットのものであったが、例えば、命令セットの
基本ビット長が32ビットであれば、データバス2のバ
ス幅を64ビットに設定することにより、全く同様の効
果を得ることができる。
本ビット長が16ビットであり、データバス2のバス幅
が32ビットのものであったが、例えば、命令セットの
基本ビット長が32ビットであれば、データバス2のバ
ス幅を64ビットに設定することにより、全く同様の効
果を得ることができる。
【0043】一方、第1実施形態のCPUは、1回のI
FステージでROM10から2つの命令を同時に読み出
すものであったが、同時に読み出す命令の数は2つに限
るものではない。 [第2実施形態]そこで次に、第2実施形態として、1
回のIFステージでROM10から4つの命令を同時に
読み出す場合について説明する。
FステージでROM10から2つの命令を同時に読み出
すものであったが、同時に読み出す命令の数は2つに限
るものではない。 [第2実施形態]そこで次に、第2実施形態として、1
回のIFステージでROM10から4つの命令を同時に
読み出す場合について説明する。
【0044】まず図4は、第2実施形態のCPUで行わ
れるパイプライン処理の流れを表すタイムチャートであ
る。そして、特に図示はしていないが、図4のパイプラ
イン処理を行うCPUの構成としては、第1実施形態の
CPUに対して、主に以下の(1)〜(5)の点が異な
っている。
れるパイプライン処理の流れを表すタイムチャートであ
る。そして、特に図示はしていないが、図4のパイプラ
イン処理を行うCPUの構成としては、第1実施形態の
CPUに対して、主に以下の(1)〜(5)の点が異な
っている。
【0045】(1)命令セットの基本ビット長は第1実
施形態の場合と同じ16ビットであるが、ROM10及
びRAM12のデータ線10d,12dと、そのデータ
線10d,12dに接続されたデータバス2とのバス幅
が、64ビットに設定されており、ROM10に対する
1回のリードアクセスで4つの命令を同時に読み出すこ
とが可能となっている。
施形態の場合と同じ16ビットであるが、ROM10及
びRAM12のデータ線10d,12dと、そのデータ
線10d,12dに接続されたデータバス2とのバス幅
が、64ビットに設定されており、ROM10に対する
1回のリードアクセスで4つの命令を同時に読み出すこ
とが可能となっている。
【0046】尚、図5に示すように、本第2実施形態に
おけるROM10のメモリ構成も、第1実施形態の場合
と同様に、1つのアドレスが16ビットのデータに対応
すると共に、所謂リトルエンディアンとなっている。そ
して、ROM10は、CPUからアドレスバス8へ、ア
ドレスN(Nは4で割り切れる整数)が出力されると、
そのアドレスNに対応する16ビットデータと、アドレ
スN+1に対応する16ビットデータと、アドレスN+
2に対応する16ビットデータと、アドレスN+3に対
応する16ビットデータとの、合計64ビットのデータ
をデータバス2へ出力するようになっている。
おけるROM10のメモリ構成も、第1実施形態の場合
と同様に、1つのアドレスが16ビットのデータに対応
すると共に、所謂リトルエンディアンとなっている。そ
して、ROM10は、CPUからアドレスバス8へ、ア
ドレスN(Nは4で割り切れる整数)が出力されると、
そのアドレスNに対応する16ビットデータと、アドレ
スN+1に対応する16ビットデータと、アドレスN+
2に対応する16ビットデータと、アドレスN+3に対
応する16ビットデータとの、合計64ビットのデータ
をデータバス2へ出力するようになっている。
【0047】(2)デコーダ部4の記憶素子が2個増加
して4個となっている。そして、データバス2からデコ
ーダ部4への入力バス3が、デコーダ部4の内部におい
て、16ビット毎の4本に分割されており、その分割さ
れた4本の入力バスが、上記4つの記憶素子に夫々入力
されている。
して4個となっている。そして、データバス2からデコ
ーダ部4への入力バス3が、デコーダ部4の内部におい
て、16ビット毎の4本に分割されており、その分割さ
れた4本の入力バスが、上記4つの記憶素子に夫々入力
されている。
【0048】(3)IFステージの実行時間Tは、第1
実施形態及び図7,8に示した従来例の場合と同じ時間
であるが、図4に示すように、本第2実施形態では、シ
ステムクロック4つ分の時間となっている。つまり、本
第2実施形態のCPUでは、その動作クロックの周波数
を、従来装置に対して4倍にし、IFステージ以外の他
のステージの実行時間を、IFステージの実行時間Tの
4分の1(T/4)に設定している。
実施形態及び図7,8に示した従来例の場合と同じ時間
であるが、図4に示すように、本第2実施形態では、シ
ステムクロック4つ分の時間となっている。つまり、本
第2実施形態のCPUでは、その動作クロックの周波数
を、従来装置に対して4倍にし、IFステージ以外の他
のステージの実行時間を、IFステージの実行時間Tの
4分の1(T/4)に設定している。
【0049】(4)第2実施形態のCPUにおいても、
基本的に、システムクロックが立ち上がる毎に、プログ
ラムカウンタユニット7−3で保持されるアドレス値が
1インクリメントされるが、そのアドレス値を4で割っ
た余りが「0」になる毎に、プログラムカウンタユニッ
ト7−3からアドレスバス8へ、そのアドレス値が出力
される。
基本的に、システムクロックが立ち上がる毎に、プログ
ラムカウンタユニット7−3で保持されるアドレス値が
1インクリメントされるが、そのアドレス値を4で割っ
た余りが「0」になる毎に、プログラムカウンタユニッ
ト7−3からアドレスバス8へ、そのアドレス値が出力
される。
【0050】すると、そのアドレスバス8上のアドレス
値に応答して、ROM10がデータバス2へ64ビット
分の4つの命令を出力することとなり、その後、図4に
おける「データバス」の行に示すように、データバス2
上のデータが確定すると見なされるタイミング(本実施
形態では、アドレスバス8へアドレスを出力してからシ
ステムクロックが4回目に立ち下がったタイミング)
で、ROM10からデータバス2に出力された4つの命
令が、デコーダ部4の4つの記憶素子に夫々並列に記憶
される。
値に応答して、ROM10がデータバス2へ64ビット
分の4つの命令を出力することとなり、その後、図4に
おける「データバス」の行に示すように、データバス2
上のデータが確定すると見なされるタイミング(本実施
形態では、アドレスバス8へアドレスを出力してからシ
ステムクロックが4回目に立ち下がったタイミング)
で、ROM10からデータバス2に出力された4つの命
令が、デコーダ部4の4つの記憶素子に夫々並列に記憶
される。
【0051】(5)デコーダ部4の切替ユニット4−3
は、プログラムカウンタユニット7−3で保持されるア
ドレス値を4で割った余りが「0」になる毎に、アドレ
スバス2上の最下位の命令を記憶する記憶素子内の命令
をデコーダユニット4−2に解読させ、上記余りが
「1」になる毎に、アドレスバス2上の最下位から2番
目の命令を記憶する記憶素子内の命令をデコーダユニッ
ト4−2に解読させ、上記余りが「2」になる毎に、ア
ドレスバス2上の最下位から3番目の命令を記憶する記
憶素子内の命令をデコーダユニット4−2に解読させ、
上記余りが「3」になる毎に、アドレスバス2上の最上
位の命令を記憶する記憶素子内の命令をデコーダユニッ
ト4−2に解読させる。
は、プログラムカウンタユニット7−3で保持されるア
ドレス値を4で割った余りが「0」になる毎に、アドレ
スバス2上の最下位の命令を記憶する記憶素子内の命令
をデコーダユニット4−2に解読させ、上記余りが
「1」になる毎に、アドレスバス2上の最下位から2番
目の命令を記憶する記憶素子内の命令をデコーダユニッ
ト4−2に解読させ、上記余りが「2」になる毎に、ア
ドレスバス2上の最下位から3番目の命令を記憶する記
憶素子内の命令をデコーダユニット4−2に解読させ、
上記余りが「3」になる毎に、アドレスバス2上の最上
位の命令を記憶する記憶素子内の命令をデコーダユニッ
ト4−2に解読させる。
【0052】よって、この第2実施形態のCPUにて行
われるパイプライン処理では、図4に示すように、n番
目の命令処理サイクルのIFステージで、ROM10か
らn番目,n+1番目,n+2番目,及びn+3番目の
命令が同時に読み出されて、その4つの命令の各々が、
n番目からn+3番目までの各命令処理サイクルで順次
解読されて実行され、また、n番目の命令処理サイクル
のIDステージとn+3番目の命令処理サイクルのID
ステージとの期間に亘るn+4番目の命令処理サイクル
のIFステージで、ROM10からn+4番目,n+5
番目,n+6番目,及びn+7番目の命令が同時に読み
出される、といった処理が繰り返されることとなる。
われるパイプライン処理では、図4に示すように、n番
目の命令処理サイクルのIFステージで、ROM10か
らn番目,n+1番目,n+2番目,及びn+3番目の
命令が同時に読み出されて、その4つの命令の各々が、
n番目からn+3番目までの各命令処理サイクルで順次
解読されて実行され、また、n番目の命令処理サイクル
のIDステージとn+3番目の命令処理サイクルのID
ステージとの期間に亘るn+4番目の命令処理サイクル
のIFステージで、ROM10からn+4番目,n+5
番目,n+6番目,及びn+7番目の命令が同時に読み
出される、といった処理が繰り返されることとなる。
【0053】そして、このような第2実施形態のCPU
によれば、前述した第1実施例のCPUに対して、命令
の処理速度を2倍にすることができる。 [第3実施形態]次に、第3実施形態のCPUについ
て、図6を用いて説明する。尚、図6は、第3実施形態
のCPUにおけるデコーダ部4の構成を表すブロック図
である。
によれば、前述した第1実施例のCPUに対して、命令
の処理速度を2倍にすることができる。 [第3実施形態]次に、第3実施形態のCPUについ
て、図6を用いて説明する。尚、図6は、第3実施形態
のCPUにおけるデコーダ部4の構成を表すブロック図
である。
【0054】図6に示すように、本第3実施形態のCP
Uでは、図2に示した第1実施形態のCPUに対して、
デコーダ部4が、NOP命令制御信号格納ブロック4−
4,切替ブロック4−5,及び制御信号選択制御ブロッ
ク4−6を追加して備えている。尚、本第3実施形態で
は、上記追加された3つのブロック4−4,4−5,4
−6がダミー命令供給手段に相当している。
Uでは、図2に示した第1実施形態のCPUに対して、
デコーダ部4が、NOP命令制御信号格納ブロック4−
4,切替ブロック4−5,及び制御信号選択制御ブロッ
ク4−6を追加して備えている。尚、本第3実施形態で
は、上記追加された3つのブロック4−4,4−5,4
−6がダミー命令供給手段に相当している。
【0055】ここで、NOP命令制御信号格納ブロック
4−4には、命令実行部としてのデータパス部7による
EXステージ,MAステージ,及びWBステージの各処
理に影響を及ぼさない、ダミー命令としてのNOP(no
n operation )命令を解読したコード(以下、このコー
ドを改めてNOP命令制御信号という)が格納されてい
る。そして、NOP命令制御信号格納ブロック4−4
は、上記NOP命令制御信号を常時出力する。
4−4には、命令実行部としてのデータパス部7による
EXステージ,MAステージ,及びWBステージの各処
理に影響を及ぼさない、ダミー命令としてのNOP(no
n operation )命令を解読したコード(以下、このコー
ドを改めてNOP命令制御信号という)が格納されてい
る。そして、NOP命令制御信号格納ブロック4−4
は、上記NOP命令制御信号を常時出力する。
【0056】また、切替ブロック4−5は、デコーダユ
ニット4−2によって解読された本来の命令制御信号
と、NOP命令制御信号格納ブロック4−4から出力さ
れる上記NOP命令制御信号との何れか一方を、制御信
号選択制御ブロック4−6からの選択信号に応じて選択
し、その選択した方の命令制御信号をデータパス部7へ
制御バス5を介して出力する。
ニット4−2によって解読された本来の命令制御信号
と、NOP命令制御信号格納ブロック4−4から出力さ
れる上記NOP命令制御信号との何れか一方を、制御信
号選択制御ブロック4−6からの選択信号に応じて選択
し、その選択した方の命令制御信号をデータパス部7へ
制御バス5を介して出力する。
【0057】そして、制御信号選択制御ブロック4−6
は、デコーダユニット4−2により前回解読された命令
(即ち、前回のIDステージで解読された命令)と今回
解読された命令(即ち、今回のIDステージで解読され
た命令)とが予め定められた特定の関係になければ、デ
コーダユニット4−2により今回解読された命令制御信
号がデータパス部7へ出力されるように、切替ブロック
4−5へ選択信号を出力し、逆に、デコーダユニット4
−2により前回解読された命令と今回解読された命令と
が特定の関係にある場合には、デコーダユニット4−2
により今回解読された命令制御信号に代えて、NOP命
令制御信号格納ブロック4−4からのNOP命令制御信
号がデータパス部7へ出力されるように、切替ブロック
4−5へ選択信号を出力する。
は、デコーダユニット4−2により前回解読された命令
(即ち、前回のIDステージで解読された命令)と今回
解読された命令(即ち、今回のIDステージで解読され
た命令)とが予め定められた特定の関係になければ、デ
コーダユニット4−2により今回解読された命令制御信
号がデータパス部7へ出力されるように、切替ブロック
4−5へ選択信号を出力し、逆に、デコーダユニット4
−2により前回解読された命令と今回解読された命令と
が特定の関係にある場合には、デコーダユニット4−2
により今回解読された命令制御信号に代えて、NOP命
令制御信号格納ブロック4−4からのNOP命令制御信
号がデータパス部7へ出力されるように、切替ブロック
4−5へ選択信号を出力する。
【0058】このような本第3実施形態のCPUでは、
例えば、前回のIDステージでデコーダユニット4−2
により解読された命令が、ROM10やRAM12から
データを読み出すロード命令であり、今回のIDステー
ジでデコーダユニット4−2により解読された命令が、
前回解読されたロード命令の実行により読み出されるデ
ータを用いて処理を行う命令(以下、ロードデータ使用
命令という)であった場合に、制御信号選択制御ブロッ
ク4−6が、切替ブロック4−5に、NOP命令制御信
号格納ブロック4−4からのNOP命令制御信号をデー
タパス部7へ出力させる。
例えば、前回のIDステージでデコーダユニット4−2
により解読された命令が、ROM10やRAM12から
データを読み出すロード命令であり、今回のIDステー
ジでデコーダユニット4−2により解読された命令が、
前回解読されたロード命令の実行により読み出されるデ
ータを用いて処理を行う命令(以下、ロードデータ使用
命令という)であった場合に、制御信号選択制御ブロッ
ク4−6が、切替ブロック4−5に、NOP命令制御信
号格納ブロック4−4からのNOP命令制御信号をデー
タパス部7へ出力させる。
【0059】すると、今回のIDステージに続くEXス
テージ,MAステージ,及びWBステージでは、デコー
ダユニット4−2によって解読されたロードデータ使用
命令ではなく、NOP命令が実行されることとなる。具
体例を挙げて説明すると、例えば図1のパイプライン処
理において、n番目の命令処理サイクルのIDステージ
idn で解読された命令がロード命令であり、n+1番
目の命令処理サイクルのIDステージidn+1 で解読さ
れた命令がロードデータ使用命令であった場合には、n
+1番目の命令処理サイクルのEXステージ,MAステ
ージ,及びWBステージでNOP命令が実行され、その
n+1番目の命令処理サイクルでは実質的な処理が行わ
れないこととなる。
テージ,MAステージ,及びWBステージでは、デコー
ダユニット4−2によって解読されたロードデータ使用
命令ではなく、NOP命令が実行されることとなる。具
体例を挙げて説明すると、例えば図1のパイプライン処
理において、n番目の命令処理サイクルのIDステージ
idn で解読された命令がロード命令であり、n+1番
目の命令処理サイクルのIDステージidn+1 で解読さ
れた命令がロードデータ使用命令であった場合には、n
+1番目の命令処理サイクルのEXステージ,MAステ
ージ,及びWBステージでNOP命令が実行され、その
n+1番目の命令処理サイクルでは実質的な処理が行わ
れないこととなる。
【0060】このため、本第3実施形態のCPUによれ
ば、ロード命令に続くロードデータ使用命令を確実に実
行することができるようになる。即ち、上記具体例の場
合において、仮に、n+1番目の命令処理サイクルのE
Xステージexn+1 でロードデータ使用命令に基づく演
算処理を行うようにすると、その時点では、前回のID
ステージidn で解読されたロード命令に基づくMAス
テージの処理(つまり、データの読み出し)が未だ完了
していないため、ロードデータ使用命令を確実に実行す
ることができない。
ば、ロード命令に続くロードデータ使用命令を確実に実
行することができるようになる。即ち、上記具体例の場
合において、仮に、n+1番目の命令処理サイクルのE
Xステージexn+1 でロードデータ使用命令に基づく演
算処理を行うようにすると、その時点では、前回のID
ステージidn で解読されたロード命令に基づくMAス
テージの処理(つまり、データの読み出し)が未だ完了
していないため、ロードデータ使用命令を確実に実行す
ることができない。
【0061】これに対して、本第3実施形態のCPUに
よれば、デコーダ部4に設けたNOP命令制御信号格納
ブロック4−4,切替ブロック4−5,及び制御信号選
択制御ブロック4−6の作用により、n+1番目の命令
処理サイクルのIDステージidn+1 で、データパス部
7へNOP命令制御信号が出力され、そのn+1番目の
命令処理サイクルのEXステージ,MAステージ,及び
WBステージで、NOP命令が実行されるようになるた
め、ロードデータ使用命令の不確実な実行を回避するこ
とができる。
よれば、デコーダ部4に設けたNOP命令制御信号格納
ブロック4−4,切替ブロック4−5,及び制御信号選
択制御ブロック4−6の作用により、n+1番目の命令
処理サイクルのIDステージidn+1 で、データパス部
7へNOP命令制御信号が出力され、そのn+1番目の
命令処理サイクルのEXステージ,MAステージ,及び
WBステージで、NOP命令が実行されるようになるた
め、ロードデータ使用命令の不確実な実行を回避するこ
とができる。
【0062】そして、n番目の命令処理サイクルのMA
ステージでロード命令に基づくデータの読み出しが完了
した後の、例えばn+2番目の命令処理サイクルのEX
ステージで、上記ロードデータ使用命令を確実に実行さ
せることができるようになるのである。
ステージでロード命令に基づくデータの読み出しが完了
した後の、例えばn+2番目の命令処理サイクルのEX
ステージで、上記ロードデータ使用命令を確実に実行さ
せることができるようになるのである。
【0063】尚、本第3実施形態のCPUにおいては、
データパス部7へNOP命令制御信号を出力すること
が、命令実行部へダミー命令を出力することに相当して
いる。また、データパス部7へNOP命令制御信号を出
力する条件としては、前述したものに限らず、デコーダ
ユニット4−2によりIDステージで解読された命令を
そのIDステージが所属する命令処理サイクルで即座に
実行すると不都合が生じる場合に、データパス部7へN
OP命令制御信号が出力されるようにすれば良い。
データパス部7へNOP命令制御信号を出力すること
が、命令実行部へダミー命令を出力することに相当して
いる。また、データパス部7へNOP命令制御信号を出
力する条件としては、前述したものに限らず、デコーダ
ユニット4−2によりIDステージで解読された命令を
そのIDステージが所属する命令処理サイクルで即座に
実行すると不都合が生じる場合に、データパス部7へN
OP命令制御信号が出力されるようにすれば良い。
【0064】一方、NOP命令制御信号格納ブロック4
−4,切替ブロック4−5,及び制御信号選択制御ブロ
ック4−6は、第1実施形態のCPUだけではなく、第
2実施形態のCPUに対しても全く同様に設けることが
できる。 [その他]前述した第1〜第3実施形態のCPUは、1
回のIFステージでROM10から2のn乗個(但しn
は自然数)の命令を同時に読み出すものであったが、そ
れ以外の個数の命令を同時に読み出すようにしても良
い。但し、通常、命令セットの基本ビット長とROM1
0やRAM12のデータ線10d,12dのバス幅は2
の階乗ビットであるため、1回で読み出す命令の数を2
のn乗個に設定すれば、データ線10d,12dの全て
を有効に活用できる、という点で有利である。
−4,切替ブロック4−5,及び制御信号選択制御ブロ
ック4−6は、第1実施形態のCPUだけではなく、第
2実施形態のCPUに対しても全く同様に設けることが
できる。 [その他]前述した第1〜第3実施形態のCPUは、1
回のIFステージでROM10から2のn乗個(但しn
は自然数)の命令を同時に読み出すものであったが、そ
れ以外の個数の命令を同時に読み出すようにしても良
い。但し、通常、命令セットの基本ビット長とROM1
0やRAM12のデータ線10d,12dのバス幅は2
の階乗ビットであるため、1回で読み出す命令の数を2
のn乗個に設定すれば、データ線10d,12dの全て
を有効に活用できる、という点で有利である。
【0065】また、前述した第1〜第3実施形態では、
メモリ構成がリトルエンディアンとなっているが、これ
に限られるものではなくビッグエンディアンでも良い。
メモリ構成がリトルエンディアンとなっているが、これ
に限られるものではなくビッグエンディアンでも良い。
【図1】 第1実施形態のCPUで行われるパイプライ
ン処理の流れを表すタイムチャートである。
ン処理の流れを表すタイムチャートである。
【図2】 第1実施形態のCPUの構成を表すブロック
図である。
図である。
【図3】 第1実施形態のROMのメモリ構成を説明す
る説明図である。
る説明図である。
【図4】 第2実施形態のCPUで行われるパイプライ
ン処理の流れを表すタイムチャートである。
ン処理の流れを表すタイムチャートである。
【図5】 第2実施形態のROMのメモリ構成を説明す
る説明図である。
る説明図である。
【図6】 第3実施形態のCPUにおけるデコーダ部の
構成を表すブロック図である。
構成を表すブロック図である。
【図7】 従来例のCPUで行われるパイプライン処理
の流れを表すタイムチャートである。
の流れを表すタイムチャートである。
【図8】 従来例のCPUの構成を表すブロック図であ
る。
る。
2…データバス 3,3a,3b…入力バス 4…
デコーダ部 4−1,4−1a,4−1b…記憶素子 4−2…デ
コーダユニット 4−3…切替ユニット 5…制御バス 6…入出力
バス 7…データパス部 7−1…演算ユニット 7−2
…レジスタユニット 7−3…プログラムカウンタユニット 8…アドレス
バス 9…制御線 10…ROM 12…RAM 10d,12d…デ
ータ線 4−4…NOP命令制御信号格納ブロック 4−5…
切替ブロック 4−6…制御信号選択制御ブロック
デコーダ部 4−1,4−1a,4−1b…記憶素子 4−2…デ
コーダユニット 4−3…切替ユニット 5…制御バス 6…入出力
バス 7…データパス部 7−1…演算ユニット 7−2
…レジスタユニット 7−3…プログラムカウンタユニット 8…アドレス
バス 9…制御線 10…ROM 12…RAM 10d,12d…デ
ータ線 4−4…NOP命令制御信号格納ブロック 4−5…
切替ブロック 4−6…制御信号選択制御ブロック
───────────────────────────────────────────────────── フロントページの続き (72)発明者 田中 裕章 愛知県刈谷市昭和町1丁目1番地 株式 会社デンソー内 (56)参考文献 特開 平5−165636(JP,A) 特開 平1−213719(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 9/38
Claims (6)
- 【請求項1】 演算機能を複数種類のステージに分け、
並列して異なるステージの処理を行うことにより、複数
の命令処理サイクルを部分的に重複したタイミングで実
行するようにしたパイプライン処理を行う情報処理装置
において、 メモリから1回のアクセスで複数の命令を読み出せるよ
うに、命令セットの基本ビット長が前記メモリのデータ
線のバス幅よりも小さく設定されていると共に、 前記メモリから命令を読み出す命令読出ステージの実行
時間が、他のステージの実行時間よりも常に長く、且
つ、1回の命令読出ステージで、前記メモリから複数の
命令を同時に読み出すように構成され、 更に、前記1回の命令読出ステージで読み出した複数の
命令の各々を、当該命令読出ステージを持つ命令処理サ
イクルと該命令処理サイクル以降の命令処理サイクルと
で順次解読して実行すると共に、前記命令読出ステージ
は、前記1回で読み出す命令の数と同数の命令処理サイ
クル毎に、且つ、前記1回で読み出す命令の数と同数の
命令解読ステージが存在する期間に亘って実行されるこ
と、 を特徴とする情報処理装置。 - 【請求項2】 請求項1に記載の情報処理装置におい
て、 前記命令読出ステージで前記メモリから読み出した複数
の命令を、前記各命令処理サイクルの命令解読ステージ
のときに順次解読するデコーダ部は、 前記メモリから前記データ線に出力された複数の命令の
各々を、互いに並列に入力して記憶する複数の記憶手段
と、 入力された命令を解読するデコーダユニットと、 前記複数の記憶手段に夫々記憶された命令を、前記デコ
ーダユニットへ択一的に切り替えて入力させる切替制御
手段と、 を備えていることを特徴とする情報処理装置。 - 【請求項3】 請求項2に記載の情報処理装置におい
て、 前記切替制御手段は、前記複数の記憶手段に夫々記憶さ
れた命令を、プログラムカウンタの値に応じて、前記デ
コーダユニットへ択一的に切り替えて入力させるように
構成されていること、 を特徴とする情報処理装置。 - 【請求項4】 請求項2又は請求項3に記載の情報処理
装置において、 前記デコーダ部は、 前記デコーダユニットにより前回解読された命令と今回
解読された命令とが特定の関係にある場合に、前記デコ
ーダユニットにより今回解読された命令に代えて、処理
に影響を及ぼさないダミー命令を、当該情報処理装置の
命令実行部へ出力するダミー命令供給手段を備えている
こと、 を特徴とする情報処理装置。 - 【請求項5】 請求項1ないし請求項4の何れかに記載
の情報処理装置において、 前記メモリから1回の命令読出ステージで読み出される
命令の数は、2のn乗(但しnは自然数)であること、 を特徴とする情報処理装置。 - 【請求項6】 演算機能を複数種類のステージに分け、
並列して異なるステージの処理を行うことにより、複数
の命令処理サイクルを部分的に重複したタイミングで実
行するパイプライン処理方法において、 メモリから1回のアクセスで複数の命令を読み出せるよ
うに、命令セットの基本ビット長を前記メモリのデータ
線のバス幅よりも小さく設定しておくと共に、 前記メモリから命令を読み出す命令読出ステージの実行
時間を、他のステージの実行時間よりも常に長く、且
つ、1回の命令読出ステージで、前記メモリから複数の
命令を同時に読み出すようにし、 更に、前記1回の命令読出ステージで読み出した複数の
命令の各々を、当該命令読出ステージを持つ命令処理サ
イクルと該命令処理サイクル以降の命令処理サイクルと
で順次解読して実行すると共に、前記命令読出ステージ
を、前記1回で読み出す命令の数と同数の命令処理サイ
クル毎に、且つ、前記1回で読み出す命令の数と同数の
命令解読ステージが存在する期間に亘って実行するこ
と、 を特徴とするパイプライン処理方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP28999497A JP3211750B2 (ja) | 1997-02-27 | 1997-10-22 | 情報処理装置及びパイプライン処理方法 |
EP19980102737 EP0862112B1 (en) | 1997-02-27 | 1998-02-17 | Data processing system having an instruction pipeline |
DE1998631622 DE69831622T2 (de) | 1997-02-27 | 1998-02-17 | Datenverarbeitungssystem mit Befehlspipeline |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4406497 | 1997-02-27 | ||
JP9-44064 | 1997-02-27 | ||
JP28999497A JP3211750B2 (ja) | 1997-02-27 | 1997-10-22 | 情報処理装置及びパイプライン処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10301776A JPH10301776A (ja) | 1998-11-13 |
JP3211750B2 true JP3211750B2 (ja) | 2001-09-25 |
Family
ID=26383909
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP28999497A Expired - Fee Related JP3211750B2 (ja) | 1997-02-27 | 1997-10-22 | 情報処理装置及びパイプライン処理方法 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP0862112B1 (ja) |
JP (1) | JP3211750B2 (ja) |
DE (1) | DE69831622T2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7825935B1 (en) * | 2001-11-30 | 2010-11-02 | Nvidia Corporation | System, method and computer program product for using textures as instructions for graphics processing |
US9965323B2 (en) | 2015-03-11 | 2018-05-08 | Western Digital Technologies, Inc. | Task queues |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4079455A (en) * | 1976-12-13 | 1978-03-14 | Rca Corporation | Microprocessor architecture |
-
1997
- 1997-10-22 JP JP28999497A patent/JP3211750B2/ja not_active Expired - Fee Related
-
1998
- 1998-02-17 EP EP19980102737 patent/EP0862112B1/en not_active Expired - Lifetime
- 1998-02-17 DE DE1998631622 patent/DE69831622T2/de not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0862112A2 (en) | 1998-09-02 |
EP0862112B1 (en) | 2005-09-21 |
DE69831622D1 (de) | 2005-10-27 |
DE69831622T2 (de) | 2006-06-22 |
EP0862112A3 (en) | 2000-12-06 |
JPH10301776A (ja) | 1998-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0238090B1 (en) | Microcomputer capable of accessing internal memory at a desired variable access time | |
US7769909B2 (en) | Device and method for access time reduction by speculatively decoding non-memory read commands on a serial interface | |
US4541045A (en) | Microprocessor architecture employing efficient operand and instruction addressing | |
EP0114191B1 (en) | Microword control system utilizing overlapped programmable logic arrays | |
US20070245127A1 (en) | Reconfigurable control structure for cpus and method of operating same | |
JP3710262B2 (ja) | コプロセッサを使用するための電子回路及び方法 | |
JP3211750B2 (ja) | 情報処理装置及びパイプライン処理方法 | |
US6510480B1 (en) | Data transfer circuit and data processing method using data transfer circuit for handling interruption processing | |
JP3825709B2 (ja) | パイプライン処理方法及びプロセッサ装置 | |
JPH09101889A (ja) | パイプライン演算装置 | |
JP2504263B2 (ja) | デ―タ処理装置 | |
JP3446603B2 (ja) | 情報処理装置及びパイプライン処理方法 | |
JP2730013B2 (ja) | 座標データ転送方法およびその装置 | |
JP2777133B2 (ja) | 中央演算処理装置 | |
JP2924004B2 (ja) | 命令コード転送方式 | |
JPH0792902A (ja) | プログラマブルコントローラ | |
JP2002268876A (ja) | パイプライン処理方法、及び情報処理装置 | |
JPS6362065A (ja) | デ−タ転送制御方式 | |
JP2002287956A (ja) | マイクロコンピュータ | |
KR20040008714A (ko) | 마이크로 제어 시스템에 있어서 메모리 정보를 읽는 장치 | |
JPS63823B2 (ja) | ||
JPH0412491B2 (ja) | ||
JPH0522934B2 (ja) | ||
JPH08161170A (ja) | マイクロプロセッサとその制御方法 | |
JPH0877003A (ja) | Dspプログラム並列制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110719 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120719 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120719 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130719 Year of fee payment: 12 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |