JPH08212069A - データプロセッサ - Google Patents
データプロセッサInfo
- Publication number
- JPH08212069A JPH08212069A JP7304258A JP30425895A JPH08212069A JP H08212069 A JPH08212069 A JP H08212069A JP 7304258 A JP7304258 A JP 7304258A JP 30425895 A JP30425895 A JP 30425895A JP H08212069 A JPH08212069 A JP H08212069A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- instruction data
- cache memory
- buffer memory
- data
- 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
Landscapes
- Advance Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】
【課題】キャッシュメモリのリフィルに使用される命令
データ数がバッファメモリのレジスタ数によって制約さ
れなくする。 【解決手段】複数の命令データを格納するキャッシュメ
モリ4と、キャッシュメモリ4をリフィルするために外
部メモリ2から読出される複数の命令データを一時的に
格納するバッファメモリ5と、キャッシュメモリ4から
順次フェッチされる命令データを実行するパイプライン
処理を行ない、実行すべき命令データがキャッシュメモ
リ4に存在しない場合にバッファメモリ5から順次フェ
ッチされる所定数の命令データでキャッシュメモリをリ
フィルするCPU3とを設け、特にCPU3がバッファ
メモリ5から各命令データをフェッチするためにバッフ
ァメモリ5をモニターし、フェッチされた命令データを
キャッシュメモリ4に転送させる一方でパイプライン処
理で実行させるバス制御ユニット21を含む。
データ数がバッファメモリのレジスタ数によって制約さ
れなくする。 【解決手段】複数の命令データを格納するキャッシュメ
モリ4と、キャッシュメモリ4をリフィルするために外
部メモリ2から読出される複数の命令データを一時的に
格納するバッファメモリ5と、キャッシュメモリ4から
順次フェッチされる命令データを実行するパイプライン
処理を行ない、実行すべき命令データがキャッシュメモ
リ4に存在しない場合にバッファメモリ5から順次フェ
ッチされる所定数の命令データでキャッシュメモリをリ
フィルするCPU3とを設け、特にCPU3がバッファ
メモリ5から各命令データをフェッチするためにバッフ
ァメモリ5をモニターし、フェッチされた命令データを
キャッシュメモリ4に転送させる一方でパイプライン処
理で実行させるバス制御ユニット21を含む。
Description
【0001】
【発明の属する技術分野】本発明は、一般にデータ処理
を行なうデータプロセッサに関し、特にキャッシュメモ
リが組み込まれたデータプロセッサに関する。
を行なうデータプロセッサに関し、特にキャッシュメモ
リが組み込まれたデータプロセッサに関する。
【0002】
【従来の技術】近年では、CPUがコンピュータの中枢
となるよう多数の論理ゲートを集積した単一半導体チッ
プのデータプロセッサとして製造されるようになった。
一般に、CPUは20−40MHz程度のクロック周波
数で動作する。一部のデータプロセッサでは、CPUが
100MHzという極めて高速なクロック周波数で動作
可能である。しかし、CPUは100−200ns程度
のアクセス時間で動作するDRAM等で構成される外部
のメインメモリを頻繁にアクセスする必要性からその処
理能力を十分発揮できないことがあった。メモリアクセ
スに要する時間を低減するため、現在では、このCPU
の動作に追随可能なSRAM等で構成されるキャッシュ
メモリを備えたデータプロセッサが開発されている。
となるよう多数の論理ゲートを集積した単一半導体チッ
プのデータプロセッサとして製造されるようになった。
一般に、CPUは20−40MHz程度のクロック周波
数で動作する。一部のデータプロセッサでは、CPUが
100MHzという極めて高速なクロック周波数で動作
可能である。しかし、CPUは100−200ns程度
のアクセス時間で動作するDRAM等で構成される外部
のメインメモリを頻繁にアクセスする必要性からその処
理能力を十分発揮できないことがあった。メモリアクセ
スに要する時間を低減するため、現在では、このCPU
の動作に追随可能なSRAM等で構成されるキャッシュ
メモリを備えたデータプロセッサが開発されている。
【0003】このキャッシュメモリは高価であることか
ら、通常使用されるものは1kバイトから32kバイト
という小容量である。このため、必要なデータが常にこ
のキャッシュメモリ内に用意されているとは限らない。
このときは、1ブロックの必要データが外部メモリ(メ
インメモリ)から取り出される。利用可能領域がキャッ
シュメモリにない場合には、既に格納されたデータがキ
ャッシュメモリの内容を更新するために放棄されなくて
はならない。
ら、通常使用されるものは1kバイトから32kバイト
という小容量である。このため、必要なデータが常にこ
のキャッシュメモリ内に用意されているとは限らない。
このときは、1ブロックの必要データが外部メモリ(メ
インメモリ)から取り出される。利用可能領域がキャッ
シュメモリにない場合には、既に格納されたデータがキ
ャッシュメモリの内容を更新するために放棄されなくて
はならない。
【0004】例えば命令データの実行において、CPU
は命令データおよびこの命令データに続く複数の命令デ
ータのブロックをメインメモリから転送することにより
キャッシュメモリをリフィルし、これら命令データをパ
イプライン処理により順次実行する。CPUがこれら全
ての命令データを実行した後、あるいはキャッシュメモ
リ内に存在しない命令にジャンプする命令データを実行
した後、上述したキャッシュメモリのブロックリフィル
が再び行われる。これは、各命令データの実行毎にメイ
ンメモリをアクセスする場合よりも合計メモリアクセス
時間を短縮できる。
は命令データおよびこの命令データに続く複数の命令デ
ータのブロックをメインメモリから転送することにより
キャッシュメモリをリフィルし、これら命令データをパ
イプライン処理により順次実行する。CPUがこれら全
ての命令データを実行した後、あるいはキャッシュメモ
リ内に存在しない命令にジャンプする命令データを実行
した後、上述したキャッシュメモリのブロックリフィル
が再び行われる。これは、各命令データの実行毎にメイ
ンメモリをアクセスする場合よりも合計メモリアクセス
時間を短縮できる。
【0005】ところで、上述のパイプライン処理は、キ
ャッシュメモリのブロックリフィルを行なう間停止され
る。これはCPUの動作を遅らせる原因となる。このた
め、CPUがキャッシュメモリをリフィルするために命
令データをフェッチできるようにリードバッファメモリ
をCPUとメインメモリとの間に設けることが考えられ
る。このリードバッファメモリはメインメモリから読出
されキャッシュメモリのリフィルに用いられる命令デー
タを予め格納し、CPUによって行われる命令フェッチ
に合わせてこれら命令データの各々を出力し、これによ
りCPUおよびメインメモリ間の速度差を緩衝する。
ャッシュメモリのブロックリフィルを行なう間停止され
る。これはCPUの動作を遅らせる原因となる。このた
め、CPUがキャッシュメモリをリフィルするために命
令データをフェッチできるようにリードバッファメモリ
をCPUとメインメモリとの間に設けることが考えられ
る。このリードバッファメモリはメインメモリから読出
されキャッシュメモリのリフィルに用いられる命令デー
タを予め格納し、CPUによって行われる命令フェッチ
に合わせてこれら命令データの各々を出力し、これによ
りCPUおよびメインメモリ間の速度差を緩衝する。
【0006】
【発明が解決しようとする課題】しかし、このような構
成では、キャッシュメモリのリフィルに使用される命令
データ数がリードバッファメモリのレジスタ数によって
制限される。もし、命令データ数がリードバッファメモ
リのレジスタ数を越える数に設定されると、リードバッ
ファメモリはCPUによって行われる命令データのフェ
ッチ前にこの命令データを用意することができなくな
る。リードバッファメモリのレジスタ数を増大すればこ
れを解消できるが、これはデータプロセッサのコストお
よびチップ面積を増大させてしまう結果となる。
成では、キャッシュメモリのリフィルに使用される命令
データ数がリードバッファメモリのレジスタ数によって
制限される。もし、命令データ数がリードバッファメモ
リのレジスタ数を越える数に設定されると、リードバッ
ファメモリはCPUによって行われる命令データのフェ
ッチ前にこの命令データを用意することができなくな
る。リードバッファメモリのレジスタ数を増大すればこ
れを解消できるが、これはデータプロセッサのコストお
よびチップ面積を増大させてしまう結果となる。
【0007】本発明の目的はキャッシュメモリのリフィ
ルに使用される命令データ数がバッファメモリのレジス
タ数によって制約されないデータプロセッサを提供する
ことにある。
ルに使用される命令データ数がバッファメモリのレジス
タ数によって制約されないデータプロセッサを提供する
ことにある。
【0008】
【課題を解決するための手段】本発明によれば、複数の
命令データを格納するキャッシュメモリと、このキャッ
シュメモリをリフィルするために外部メモリから読出さ
れる複数の命令データを一時的に格納するバッファメモ
リと、キャッシュメモリから順次フェッチされる命令デ
ータを実行するパイプライン処理を行ない、実行すべき
命令データがこのキャッシュメモリに存在しない場合に
バッファメモリから順次フェッチされる所定数の命令デ
ータでキャッシュメモリをリフィルする処理部とを備
え、処理部はバッファメモリから各命令データをフェッ
チするためにバッファメモリをモニターし、フェッチさ
れた命令データをキャッシュメモリに転送させる一方で
パイプライン処理で実行させる制御回路を含むデータプ
ロセッサが提供される。
命令データを格納するキャッシュメモリと、このキャッ
シュメモリをリフィルするために外部メモリから読出さ
れる複数の命令データを一時的に格納するバッファメモ
リと、キャッシュメモリから順次フェッチされる命令デ
ータを実行するパイプライン処理を行ない、実行すべき
命令データがこのキャッシュメモリに存在しない場合に
バッファメモリから順次フェッチされる所定数の命令デ
ータでキャッシュメモリをリフィルする処理部とを備
え、処理部はバッファメモリから各命令データをフェッ
チするためにバッファメモリをモニターし、フェッチさ
れた命令データをキャッシュメモリに転送させる一方で
パイプライン処理で実行させる制御回路を含むデータプ
ロセッサが提供される。
【0009】本発明のデータプロセッサにおいて、制御
回路はバッファメモリから各命令データをフェッチする
ためにバッファメモリをモニターし、フェッチされた命
令データをキャッシュメモリに転送させる一方でパイプ
ライン処理で実行させる。バッファメモリがキャッシュ
メモリをリフィルするために外部メモリから読出される
所定数の命令データよりも少ない数のレジスタを持つよ
うに設定された場合、バッファメモリはキャッシュメモ
リに転送される命令データを予め用意できないことがあ
る。このようなとき、命令データはバッファメモリから
フェッチできないが、バッファメモリに用意されると速
やかにパイプライン処理で実行される。この場合、この
パイプライン処理が持続的に停止することがないうえ、
キャッシュメモリのリフィルに使用される命令データ数
がバッファメモリのレジスタ数によって制約されない。
この結果、パイプライン処理の持続的な停止による処理
速度の低下を防止でき、さらにバッファメモリのレジス
タ数の増大によるコストおよび回路規模の増大を防止で
きる。
回路はバッファメモリから各命令データをフェッチする
ためにバッファメモリをモニターし、フェッチされた命
令データをキャッシュメモリに転送させる一方でパイプ
ライン処理で実行させる。バッファメモリがキャッシュ
メモリをリフィルするために外部メモリから読出される
所定数の命令データよりも少ない数のレジスタを持つよ
うに設定された場合、バッファメモリはキャッシュメモ
リに転送される命令データを予め用意できないことがあ
る。このようなとき、命令データはバッファメモリから
フェッチできないが、バッファメモリに用意されると速
やかにパイプライン処理で実行される。この場合、この
パイプライン処理が持続的に停止することがないうえ、
キャッシュメモリのリフィルに使用される命令データ数
がバッファメモリのレジスタ数によって制約されない。
この結果、パイプライン処理の持続的な停止による処理
速度の低下を防止でき、さらにバッファメモリのレジス
タ数の増大によるコストおよび回路規模の増大を防止で
きる。
【0010】
【発明の実施の形態】以下、本発明の一実施例に係るデ
ータプロセッサを図面を参照して説明する。
ータプロセッサを図面を参照して説明する。
【0011】図1はこのデータプロセッサ1の回路構成
を概略的に示し、図2は外部メモリ2に接続されたデー
タプロセッサ1を示す。
を概略的に示し、図2は外部メモリ2に接続されたデー
タプロセッサ1を示す。
【0012】データプロセッサ1は多数の論理ゲートを
集積した単一半導体チップで構成され、RISCコンピ
ュータを構成するCPU3、CPU3に接続されるキャ
ッシュメモリ4、およびCPU3に接続されるバッファ
メモリ5を有する。CPU3はクロック信号CIRに同
期したサイクルでパイプライン処理を行なうことにより
命令データを順次実行する。キャッシュメモリ4はCP
U3によって実行される命令データ等を一時的に格納す
る。バッファメモリ5はCPU3および外部メモリ2間
で転送されるデータを一時的に格納する。
集積した単一半導体チップで構成され、RISCコンピ
ュータを構成するCPU3、CPU3に接続されるキャ
ッシュメモリ4、およびCPU3に接続されるバッファ
メモリ5を有する。CPU3はクロック信号CIRに同
期したサイクルでパイプライン処理を行なうことにより
命令データを順次実行する。キャッシュメモリ4はCP
U3によって実行される命令データ等を一時的に格納す
る。バッファメモリ5はCPU3および外部メモリ2間
で転送されるデータを一時的に格納する。
【0013】CPU3はラッチ回路10、命令フェッチ
デコーダ11、アドレス生成ユニット12、プログラム
カウンタ13、ラッチ回路14、ラッチ回路15、レジ
スタファイル16、ラッチ回路17、ラッチ回路18、
ALU(またはシフタ)19、ラッチ回路20、バス制
御ユニット21、およびマルチプレクサ22を備える。
ラッチ回路10は実行すべき命令データをクロック信号
CIRの立ち上がりに応答してラッチする。命令フェッ
チデコーダ11はラッチ回路10によってラッチされた
命令データの命令コードをデコードし、このデコード結
果およびオペランドをバス制御ユニット21に供給する
と共に、次の命令データのフェッチに関する制御信号を
アドレス生成ユニット12に供給する。アドレス生成ユ
ニット12は命令フェッチデコーダ11、レジスタファ
イル16、およびプログラムカウンタ13からの制御信
号に基づいてアドレスデータを生成する。このアドレス
データはプログラムカウンタ13に供給されると共に、
バッファメモリ5にメモリアドレスデータとして供給さ
れる。プログラムカウンタ13はアドレス生成ユニット
12からのアドレスデータを例えば”1”だけインクリ
メントし、ラッチ回路14に供給すると共に、制御信号
としてアドレス生成ユニット12に供給する。ラッチ回
路14はプログラムカウンタ13からのアドレスデータ
をクロック信号CIRの立ち上がりに応答してラッチ
し、キャッシュアドレスデータとしてキャッシュメモリ
4に供給する。ラッチ回路15はレジスタファイル16
に格納すべきデータをクロック信号CIRの立ち上がり
に応答してラッチする。レジスタファイル16はラッチ
回路15によってラッチされたデータを格納し、バス制
御ユニット21の制御により格納データをラッチ回路1
7および18に供給する。ラッチ回路17および18は
レジスタファイル16から供給されるデータをクロック
信号CIRの立ち上がりに応答してそれぞれラッチし、
ALU19に供給する。ALU19はバス制御ユニット
21の制御によりラッチ回路17および18から供給さ
れるデータについて演算を行ない、この演算結果のデー
タをラッチ回路20に供給する。ラッチ回路20はAL
U19から供給されるデータをクロック信号CIRの立
ち上がりに応答してラッチし、バッファメモリ5および
ラッチ回路15に供給する。バス制御ユニット21は命
令フェッチデコーダ11、プログラムカウンタ13、レ
ジスタファイル16、ALU19にパイプライン処理を
許可するRUN信号を供給すると共に各動作を制御す
る。また、バス制御ユニット21はバッファメモリ5お
よびマルチプレクサ22によるデータ転送を制御する。
この制御により、バッファメモリ5は外部メモリ2から
供給される命令データをキャッシュメモリ4に供給す
る。マルチプレクサ22はキャッシュメモリ4およびバ
ッファメモリ5から供給される命令データを選択的にラ
ッチ回路10に供給する。
デコーダ11、アドレス生成ユニット12、プログラム
カウンタ13、ラッチ回路14、ラッチ回路15、レジ
スタファイル16、ラッチ回路17、ラッチ回路18、
ALU(またはシフタ)19、ラッチ回路20、バス制
御ユニット21、およびマルチプレクサ22を備える。
ラッチ回路10は実行すべき命令データをクロック信号
CIRの立ち上がりに応答してラッチする。命令フェッ
チデコーダ11はラッチ回路10によってラッチされた
命令データの命令コードをデコードし、このデコード結
果およびオペランドをバス制御ユニット21に供給する
と共に、次の命令データのフェッチに関する制御信号を
アドレス生成ユニット12に供給する。アドレス生成ユ
ニット12は命令フェッチデコーダ11、レジスタファ
イル16、およびプログラムカウンタ13からの制御信
号に基づいてアドレスデータを生成する。このアドレス
データはプログラムカウンタ13に供給されると共に、
バッファメモリ5にメモリアドレスデータとして供給さ
れる。プログラムカウンタ13はアドレス生成ユニット
12からのアドレスデータを例えば”1”だけインクリ
メントし、ラッチ回路14に供給すると共に、制御信号
としてアドレス生成ユニット12に供給する。ラッチ回
路14はプログラムカウンタ13からのアドレスデータ
をクロック信号CIRの立ち上がりに応答してラッチ
し、キャッシュアドレスデータとしてキャッシュメモリ
4に供給する。ラッチ回路15はレジスタファイル16
に格納すべきデータをクロック信号CIRの立ち上がり
に応答してラッチする。レジスタファイル16はラッチ
回路15によってラッチされたデータを格納し、バス制
御ユニット21の制御により格納データをラッチ回路1
7および18に供給する。ラッチ回路17および18は
レジスタファイル16から供給されるデータをクロック
信号CIRの立ち上がりに応答してそれぞれラッチし、
ALU19に供給する。ALU19はバス制御ユニット
21の制御によりラッチ回路17および18から供給さ
れるデータについて演算を行ない、この演算結果のデー
タをラッチ回路20に供給する。ラッチ回路20はAL
U19から供給されるデータをクロック信号CIRの立
ち上がりに応答してラッチし、バッファメモリ5および
ラッチ回路15に供給する。バス制御ユニット21は命
令フェッチデコーダ11、プログラムカウンタ13、レ
ジスタファイル16、ALU19にパイプライン処理を
許可するRUN信号を供給すると共に各動作を制御す
る。また、バス制御ユニット21はバッファメモリ5お
よびマルチプレクサ22によるデータ転送を制御する。
この制御により、バッファメモリ5は外部メモリ2から
供給される命令データをキャッシュメモリ4に供給す
る。マルチプレクサ22はキャッシュメモリ4およびバ
ッファメモリ5から供給される命令データを選択的にラ
ッチ回路10に供給する。
【0014】図2に示すように、バッファメモリ5はリ
ード用バッファメモリ5Aおよびライト用バッファメモ
リ5Bに区分され、各々例えば32個のレジスタで構成
される。バス制御ユニット21は4,8,16,32個
という4種類の組み合わせのうちの1つを選択してこれ
らレジスタを使用可能である。
ード用バッファメモリ5Aおよびライト用バッファメモ
リ5Bに区分され、各々例えば32個のレジスタで構成
される。バス制御ユニット21は4,8,16,32個
という4種類の組み合わせのうちの1つを選択してこれ
らレジスタを使用可能である。
【0015】図3はバス制御ユニット21に設けられる
RUN信号発生部を示す。このRUN信号発生部は、実
行すべき命令データがないというようなキャッシュエラ
ーがキャッシュメモリ4で発生したときに出力されるエ
ラー信号を検出するキャッシュエラー検出器31、バッ
ファメモリ5がリードビジー状態であるときに出力され
るウェイト信号を検出するウェイト信号検出器32、バ
ッファメモリ5がライトビジー状態であるときに出力さ
れるライトビジー信号を検出するライトビジー信号検出
器33、その他の検出器と、これら検出器に接続された
NORゲート34とで構成される。このNORゲート3
4から出力されるRUN信号はこれら検出器のいずれか
が出力する検出信号により立ち下がり、パイプライン処
理を停止させる。
RUN信号発生部を示す。このRUN信号発生部は、実
行すべき命令データがないというようなキャッシュエラ
ーがキャッシュメモリ4で発生したときに出力されるエ
ラー信号を検出するキャッシュエラー検出器31、バッ
ファメモリ5がリードビジー状態であるときに出力され
るウェイト信号を検出するウェイト信号検出器32、バ
ッファメモリ5がライトビジー状態であるときに出力さ
れるライトビジー信号を検出するライトビジー信号検出
器33、その他の検出器と、これら検出器に接続された
NORゲート34とで構成される。このNORゲート3
4から出力されるRUN信号はこれら検出器のいずれか
が出力する検出信号により立ち下がり、パイプライン処
理を停止させる。
【0016】図4はバッファメモリ5からのウェイト信
号に応答して検出信号を出力する検出器の例を示す。こ
の検出器はD型フリップフロップ32A、ANDゲート
32B、およびインバータ32Cで構成される。AND
ゲート32Bはバッファメモリ5がリードビジー状態で
あるクロックサイクル数だけHレベル(=”1”)に維
持されるウェイト信号を受け取る第1入力端およびバス
制御ユニット21においてキャッシュエラーの検出に伴
ってリフィル要求として発生されキャッシュメモリ4の
リフィルに必要なクロックサイクル数だけHレベルに維
持されるRUNリフィルサイクル信号を受け取る第2入
力端を有し、RUNリフィルサイクル信号がHレベルに
ある状態でウェイト信号の立ち上がりに応答してHレベ
ルのトリガ信号をフリップフロップ32Aに供給する。
これにより、フリップフロップ32AはVCC(=Hレ
ベル)の信号をラッチし、その出力端からHレベルの検
出信号を発生する。インバータ32CはRUNリフィル
サイクル信号の立ち下がりに応答してフリップフロップ
32AをLレベル(=”0”)にリセットする。従っ
て、パイプライン処理はウェイト信号の検出からキャッ
シュメモリ4のリフィル完了まで持続的に停止されてし
まう。
号に応答して検出信号を出力する検出器の例を示す。こ
の検出器はD型フリップフロップ32A、ANDゲート
32B、およびインバータ32Cで構成される。AND
ゲート32Bはバッファメモリ5がリードビジー状態で
あるクロックサイクル数だけHレベル(=”1”)に維
持されるウェイト信号を受け取る第1入力端およびバス
制御ユニット21においてキャッシュエラーの検出に伴
ってリフィル要求として発生されキャッシュメモリ4の
リフィルに必要なクロックサイクル数だけHレベルに維
持されるRUNリフィルサイクル信号を受け取る第2入
力端を有し、RUNリフィルサイクル信号がHレベルに
ある状態でウェイト信号の立ち上がりに応答してHレベ
ルのトリガ信号をフリップフロップ32Aに供給する。
これにより、フリップフロップ32AはVCC(=Hレ
ベル)の信号をラッチし、その出力端からHレベルの検
出信号を発生する。インバータ32CはRUNリフィル
サイクル信号の立ち下がりに応答してフリップフロップ
32AをLレベル(=”0”)にリセットする。従っ
て、パイプライン処理はウェイト信号の検出からキャッ
シュメモリ4のリフィル完了まで持続的に停止されてし
まう。
【0017】このため、ウェイト信号検出器32は例え
ば図5に示すように構成される。この検出器では、図4
に示すインバータ32CがNANDゲート32Dに置き
換えられる。このNANDゲート32Dはバッファメモ
リ5から発生されるウェイト信号を受け取る第1入力端
およびバス制御ユニット21内で発生されるRUNリフ
ィルサイクル信号を受け取る第2入力端を有し、RUN
リフィルサイクル信号がHレベルにある状態でウェイト
信号の立ち下がりに応答してフリップフロップ32Aを
リセットする。これにより、パイプライン処理がウェイ
ト信号の検出に伴って停止されても、バッファメモリ5
がリードビジー状態でなくなってウェイト信号が立ち下
がると、パイプライン処理が再開される。
ば図5に示すように構成される。この検出器では、図4
に示すインバータ32CがNANDゲート32Dに置き
換えられる。このNANDゲート32Dはバッファメモ
リ5から発生されるウェイト信号を受け取る第1入力端
およびバス制御ユニット21内で発生されるRUNリフ
ィルサイクル信号を受け取る第2入力端を有し、RUN
リフィルサイクル信号がHレベルにある状態でウェイト
信号の立ち下がりに応答してフリップフロップ32Aを
リセットする。これにより、パイプライン処理がウェイ
ト信号の検出に伴って停止されても、バッファメモリ5
がリードビジー状態でなくなってウェイト信号が立ち下
がると、パイプライン処理が再開される。
【0018】以下、このデータプロセッサの動作を説明
する。
する。
【0019】このデータプロセッサはキャッシュメモリ
4に格納された命令データについて図6に示すようなパ
イプライン処理を行なう。このパイプライン処理では、
次の5つのステージPがクロック信号CIRのクロック
サイクルに同期して並列化される。
4に格納された命令データについて図6に示すようなパ
イプライン処理を行なう。このパイプライン処理では、
次の5つのステージPがクロック信号CIRのクロック
サイクルに同期して並列化される。
【0020】1:命令フェッチステージ(IF) ラッチ回路14がプログラムカウンタ13からのアドレ
スデータをラッチし、キャッシュメモリ4のアドレスを
指定することにより命令フェッチ(IF)を行なう。命
令データがキャッシュメモリ4の指定アドレスからフェ
ッチされると、マルチプレクサ22を介してラッチ回路
10に供給される。
スデータをラッチし、キャッシュメモリ4のアドレスを
指定することにより命令フェッチ(IF)を行なう。命
令データがキャッシュメモリ4の指定アドレスからフェ
ッチされると、マルチプレクサ22を介してラッチ回路
10に供給される。
【0021】2:解読ステージ(RD) 上述の命令データはラッチ回路10によりラッチされ、
さらに命令データの命令コードおよびオペランドが命令
フェッチデコーダ11により解読される。レジスタファ
イル16は解読結果に基づくデータをラッチ回路17お
よび18とアドレス生成ユニット12に供給する。
さらに命令データの命令コードおよびオペランドが命令
フェッチデコーダ11により解読される。レジスタファ
イル16は解読結果に基づくデータをラッチ回路17お
よび18とアドレス生成ユニット12に供給する。
【0022】3:演算ステージ(ALU) ラッチ回路17および18は供給データをラッチし、A
LU19に供給する。ALU19は供給データについて
演算を行ない、演算結果をラッチ回路20に供給する。
他方、アドレス生成ユニット12は供給データについて
アドレス計算を行なう。
LU19に供給する。ALU19は供給データについて
演算を行ない、演算結果をラッチ回路20に供給する。
他方、アドレス生成ユニット12は供給データについて
アドレス計算を行なう。
【0023】4:メモリアクセスステージ(MEM) ラッチ回路20は演算結果をラッチし、バッファメモリ
5およびラッチ回路15に供給する。バッファメモリ5
はこのラッチ回路20からの演算結果およびアドレス生
成ユニット12からのアドレスデータを格納し、外部メ
モリ2をアクセスする。(ロード命令あるいはストア命
令であれば、キャッシュメモリ4がアクセスされる。) 5:ライトバックステージ(WB) ラッチ回路15はラッチ回路20からの演算結果または
バッファメモリ5からのロードデータをラッチし、レジ
スタファイル16に供給する。レジスタファイル16は
この演算結果を格納する。
5およびラッチ回路15に供給する。バッファメモリ5
はこのラッチ回路20からの演算結果およびアドレス生
成ユニット12からのアドレスデータを格納し、外部メ
モリ2をアクセスする。(ロード命令あるいはストア命
令であれば、キャッシュメモリ4がアクセスされる。) 5:ライトバックステージ(WB) ラッチ回路15はラッチ回路20からの演算結果または
バッファメモリ5からのロードデータをラッチし、レジ
スタファイル16に供給する。レジスタファイル16は
この演算結果を格納する。
【0024】上述のパイプライン処理で、キャッシュメ
モリ4をリフィルする必要が生じると、図5に示すRU
Nリフィルサイクル信号がHレベルに設定され所定数の
命令データを外部メモリ2からキャッシュメモリ4に転
送する一方でパイプライン処理を行なうランリフィル動
作を許可する。バッファメモリ5のレジスタ数がこのリ
フィルで転送される例えば6個の命令データよりも多い
数に設定された場合、このランリフィル動作は図7に示
すように行われる。すなわち、命令データI0−I5は
それぞれ第1−第6クロックサイクルで順次フェッチさ
れ、キャッシュメモリ4に転送される一方で実行され
る。
モリ4をリフィルする必要が生じると、図5に示すRU
Nリフィルサイクル信号がHレベルに設定され所定数の
命令データを外部メモリ2からキャッシュメモリ4に転
送する一方でパイプライン処理を行なうランリフィル動
作を許可する。バッファメモリ5のレジスタ数がこのリ
フィルで転送される例えば6個の命令データよりも多い
数に設定された場合、このランリフィル動作は図7に示
すように行われる。すなわち、命令データI0−I5は
それぞれ第1−第6クロックサイクルで順次フェッチさ
れ、キャッシュメモリ4に転送される一方で実行され
る。
【0025】ここで、本実施例のランリフィル動作を従
来のブロックリフィル動作と比較する。このブロックリ
フィル動作では、RUN信号が図8に示すようにLレベ
ルに設定されため、この間にフェッチされる命令データ
I0−I3は順次キャッシュメモリ4に転送されるが、
パイプライン処理は停止してしまう。従って、動作速度
がランリフィル動作の場合よりも低下することになる。
来のブロックリフィル動作と比較する。このブロックリ
フィル動作では、RUN信号が図8に示すようにLレベ
ルに設定されため、この間にフェッチされる命令データ
I0−I3は順次キャッシュメモリ4に転送されるが、
パイプライン処理は停止してしまう。従って、動作速度
がランリフィル動作の場合よりも低下することになる。
【0026】次に、バッファメモリ5のレジスタ数がこ
のリフィルで転送される例えば4個の命令データよりも
少ない数に設定された場合を考える。この場合、CPU
3が命令データをフェッチしようとしたときに、バッフ
ァメモリ5がリードビジー状態であることがある。すな
わち、命令データはこの状態においてバッファメモリ5
にまだ用意されていないため、バッファメモリ5はCP
U3に対してウェイト信号を発生する。
のリフィルで転送される例えば4個の命令データよりも
少ない数に設定された場合を考える。この場合、CPU
3が命令データをフェッチしようとしたときに、バッフ
ァメモリ5がリードビジー状態であることがある。すな
わち、命令データはこの状態においてバッファメモリ5
にまだ用意されていないため、バッファメモリ5はCP
U3に対してウェイト信号を発生する。
【0027】もし、このウェイト信号が図4に示すよう
な検出器で検出されると、図9に示すようにRUN信号
がウェイト信号の最初の立ち上がりに応答してLレベル
に変化し、命令データI0−I3の全てがキャッシュメ
モリ4に転送されることによりリフィルが終了するまで
Hレベルに戻らない。従って、この間パイプライン処理
が進行せず、実質的にブロックリフィル動作と同様に命
令データの転送のみが行われる結果となる。
な検出器で検出されると、図9に示すようにRUN信号
がウェイト信号の最初の立ち上がりに応答してLレベル
に変化し、命令データI0−I3の全てがキャッシュメ
モリ4に転送されることによりリフィルが終了するまで
Hレベルに戻らない。従って、この間パイプライン処理
が進行せず、実質的にブロックリフィル動作と同様に命
令データの転送のみが行われる結果となる。
【0028】これに対して、バッファメモリ5からのウ
ェイト信号が図5に示す検出器で検出された場合、図1
0に示すようにRUN信号がウェイト信号の立ち上がり
に応答してLレベルに変化ても、ウェイト信号の立ち下
がりに応答して再びHレベルに戻る。このため、パイプ
ライン処理が断続的に進行する。
ェイト信号が図5に示す検出器で検出された場合、図1
0に示すようにRUN信号がウェイト信号の立ち上がり
に応答してLレベルに変化ても、ウェイト信号の立ち下
がりに応答して再びHレベルに戻る。このため、パイプ
ライン処理が断続的に進行する。
【0029】本実施例のデータプロセッサによれば、キ
ャッシュメモリ4のリフィルのために外部メモリ2から
バッファメモリ5に供給された命令データがキャッシュ
メモリに供給されるだけでなく、パイプライン処理によ
り実行される。このため、CPU3の処理効率を向上さ
せることができる。さらに、ウェイト信号検出器32が
バッファメモリ5からのウェイト信号の立ち下がりに応
答してRUN信号をHレベルに戻すため、キャッシュメ
モリ4のリフィルで転送される命令データ数がバッファ
メモリ5のレジスタ数を越える場合でも、パイプライン
処理を断続的に進行させることができる。
ャッシュメモリ4のリフィルのために外部メモリ2から
バッファメモリ5に供給された命令データがキャッシュ
メモリに供給されるだけでなく、パイプライン処理によ
り実行される。このため、CPU3の処理効率を向上さ
せることができる。さらに、ウェイト信号検出器32が
バッファメモリ5からのウェイト信号の立ち下がりに応
答してRUN信号をHレベルに戻すため、キャッシュメ
モリ4のリフィルで転送される命令データ数がバッファ
メモリ5のレジスタ数を越える場合でも、パイプライン
処理を断続的に進行させることができる。
【0030】尚、ウェイト信号検出器32は図5に示す
構造に限定されない。この検出器32は例えば図11に
示すように変形することもできる。この変形例の検出器
はRUNリフィルサイクル信号がHレベルであるときに
用いられ、ラッチ回路32EがANDゲート32Fおよ
びインバータ32Gと共に設けられる。RUNリフィル
サイクル信号はANDゲート32Fの第1入力端に供給
され、ウェイト信号はインバータ32Gを介してAND
ゲート32Fの第2入力端に供給される。ラッチ回路3
2EはこのANDゲート32Fの出力信号をクロック信
号CIRに応答してラッチし、図12に示すようにRU
Nリフィルサイクル信号およびウェイト信号の組み合わ
せに対応して変化する出力信号を発生する。
構造に限定されない。この検出器32は例えば図11に
示すように変形することもできる。この変形例の検出器
はRUNリフィルサイクル信号がHレベルであるときに
用いられ、ラッチ回路32EがANDゲート32Fおよ
びインバータ32Gと共に設けられる。RUNリフィル
サイクル信号はANDゲート32Fの第1入力端に供給
され、ウェイト信号はインバータ32Gを介してAND
ゲート32Fの第2入力端に供給される。ラッチ回路3
2EはこのANDゲート32Fの出力信号をクロック信
号CIRに応答してラッチし、図12に示すようにRU
Nリフィルサイクル信号およびウェイト信号の組み合わ
せに対応して変化する出力信号を発生する。
【0031】本発明において、重要なことはバッファメ
モリ5がリードビジー状態でなくなったときにパイプラ
イン処理を再開させる処理制御回路を設けることにあ
る。一般的な処理制御回路は図13に示すようにリフィ
ル要求がないことをリフィルの終了として検出してパイ
プライン処理が停止するブロックリフィル(ストール)
状態からパイプライン処理が進行するランリフィル状態
に移行させる。これに対し、本発明の処理制御回路は、
図14に示すようにリフィル要求無しをリフィルの終了
として検出するだけでなくウェイト信号無しのリフィル
要求をウェイト信号の中断として検出してブロックリフ
ィル(ストール)状態からランリフィル状態に移行させ
ることを特徴とする。
モリ5がリードビジー状態でなくなったときにパイプラ
イン処理を再開させる処理制御回路を設けることにあ
る。一般的な処理制御回路は図13に示すようにリフィ
ル要求がないことをリフィルの終了として検出してパイ
プライン処理が停止するブロックリフィル(ストール)
状態からパイプライン処理が進行するランリフィル状態
に移行させる。これに対し、本発明の処理制御回路は、
図14に示すようにリフィル要求無しをリフィルの終了
として検出するだけでなくウェイト信号無しのリフィル
要求をウェイト信号の中断として検出してブロックリフ
ィル(ストール)状態からランリフィル状態に移行させ
ることを特徴とする。
【0032】また、CPU3、キャッシュメモリ4、お
よびバッファメモリ5が単一の半導体チップ内に設けら
れたが、本発明はこれらが半導体チップ以外の回路基板
上に設けられる場合にも適用可能である。
よびバッファメモリ5が単一の半導体チップ内に設けら
れたが、本発明はこれらが半導体チップ以外の回路基板
上に設けられる場合にも適用可能である。
【0033】
【発明の効果】本発明によれば、キャッシュメモリのリ
フィルに使用される命令データ数がバッファメモリのレ
ジスタ数によって制約されなくすることができる。
フィルに使用される命令データ数がバッファメモリのレ
ジスタ数によって制約されなくすることができる。
【図1】本発明の一実施例に係るデータプロセッサの回
路構成を概略的に示す図である。
路構成を概略的に示す図である。
【図2】外部メモリに接続されたデータプロセッサを示
す図である。
す図である。
【図3】図1に示すバス制御ユニットに設けられるRU
N信号発生部を示す図である。
N信号発生部を示す図である。
【図4】図1に示すバッファメモリからのウェイト信号
に応答して検出信号を出力する検出器の例を示す図であ
る。
に応答して検出信号を出力する検出器の例を示す図であ
る。
【図5】図3に示すウェイト信号検出器の構成をさらに
詳しく示す図である。
詳しく示す図である。
【図6】図1に示すデータプロセッサで行われるパイプ
ライン処理を示すタイムチャートである。
ライン処理を示すタイムチャートである。
【図7】図1に示すデータプロセッサのランリフィル動
作を説明するためのタイムチャートである。
作を説明するためのタイムチャートである。
【図8】図7で説明されたランリフィル動作をブロック
リフィル動作と比較するためのタイムチャートである。
リフィル動作と比較するためのタイムチャートである。
【図9】図4に示す検出器を用いた場合にパイプライン
処理が持続的に停止することを説明するためのタイムチ
ャートである。
処理が持続的に停止することを説明するためのタイムチ
ャートである。
【図10】図5に示す検出器を用いた場合にパイプライ
ン処理が断続的に進行することを説明するためのタイム
チャートである。
ン処理が断続的に進行することを説明するためのタイム
チャートである。
【図11】図5に示す検出器の変形例を示す回路図であ
る。
る。
【図12】図11に示す変形例の動作を示す図である。
【図13】一般的な処理制御回路によって制御されるパ
イプライン処理の状態遷移図である。
イプライン処理の状態遷移図である。
【図14】本発明の処理制御回路によって制御されるパ
イプライン処理の状態遷移図である。
イプライン処理の状態遷移図である。
1…データプロセッサ、2…外部メモリ、3…CPU、
4…キャッシュメモリ、5…バッファメモリ、10,1
4,15,17,18,20…ラッチ回路、11…命令
フェッチデコーダ、12…アドレス生成ユニット、13
…プログラムカウンタ、16…レジスタファイル、19
…ALU、21…バス制御ユニット、22…マルチプレ
クサ、32…ウェイト信号検出器。
4…キャッシュメモリ、5…バッファメモリ、10,1
4,15,17,18,20…ラッチ回路、11…命令
フェッチデコーダ、12…アドレス生成ユニット、13
…プログラムカウンタ、16…レジスタファイル、19
…ALU、21…バス制御ユニット、22…マルチプレ
クサ、32…ウェイト信号検出器。
Claims (4)
- 【請求項1】 複数の命令データを格納するキャッシュ
メモリと、 前記キャッシュメモリをリフィルするために外部メモリ
から読出される複数の命令データを一時的に格納するバ
ッファメモリと、 前記キャッシュメモリから順次フェッチされる命令デー
タを実行するパイプライン処理を行ない、実行すべき命
令データが前記キャッシュメモリに存在しない場合に前
記バッファメモリから順次フェッチされる所定数の命令
データでキャッシュメモリをリフィルする処理部とを備
え、 前記処理部は前記バッファメモリから各命令データをフ
ェッチするために前記バッファメモリをモニターし、フ
ェッチされた命令データを前記キャッシュメモリに転送
させる一方でパイプライン処理で実行させる制御手段を
含むことを特徴とするデータプロセッサ。 - 【請求項2】 前記制御手段はパイプライン処理のクロ
ックサイクル毎に前記バッファメモリをチェックし、前
記バッファメモリが前記キャッシュメモリに転送される
べき命令データを格納していない状態でパイプライン処
理を停止し、前記バッファメモリが前記キャッシュメモ
リに転送されるべき命令データを格納している状態でパ
イプライン処理を再開する処理進行手段を含むことを特
徴とする請求項1に記載のデータプロセッサ。 - 【請求項3】 前記処理進行手段は、前記バッファメモ
リがリードビジー状態であるときに発生されるウェイト
信号を検出するウェイト信号検出器と、少なくとも前記
ウェイト信号検出器からの検出信号に基づいてパイプラ
イン処理を停止する停止手段を含むことを特徴とする請
求項2に記載のデータプロセッサ。 - 【請求項4】 前記ウェイト信号検出器は前記キャッシ
ュメモリをリフィルするために必要なクロックサイクル
数だけ前記検出信号を持続的に発生するフリップフロッ
プ回路と、前記ウェイト信号が発生されないクロックサ
イクルの間前記フリップフロップ回路が前記検出信号を
発生することを禁止するゲート回路とを含むことを特徴
とする請求項3に記載のデータプロセッサ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP7304258A JPH08212069A (ja) | 1994-11-30 | 1995-11-22 | データプロセッサ |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP29756194 | 1994-11-30 | ||
JP6-297561 | 1994-11-30 | ||
JP7304258A JPH08212069A (ja) | 1994-11-30 | 1995-11-22 | データプロセッサ |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH08212069A true JPH08212069A (ja) | 1996-08-20 |
Family
ID=26561172
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP7304258A Pending JPH08212069A (ja) | 1994-11-30 | 1995-11-22 | データプロセッサ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH08212069A (ja) |
-
1995
- 1995-11-22 JP JP7304258A patent/JPH08212069A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR970008187B1 (ko) | 명령 연속흐름을 갖는 프로세서 제어된 인터페이스 | |
US7284092B2 (en) | Digital data processing apparatus having multi-level register file | |
JP3739797B2 (ja) | 縮小命令セット・コンピューター・マイクロプロセッサーの構造 | |
TW448366B (en) | Zero overhead computer interrupts with task switching | |
US5440747A (en) | Data processor with control logic for storing operation mode status and associated method | |
JPS61165154A (ja) | パイプライン・カッシェ・メモリー及びそれを備えたデータ処理システム | |
JPH10275100A (ja) | マルチスレッド・プロセッサ内でパフォーマンスを監視する方法およびシステム | |
JPH10283203A (ja) | マルチスレッド・プロセッサにおけるスレッド切換え待ち時間を減少させる方法および装置 | |
US6963962B2 (en) | Memory system for supporting multiple parallel accesses at very high frequencies | |
CA2016532C (en) | Serializing system between vector instruction and scalar instruction in data processing system | |
JPH0212541A (ja) | コンピユーテイング・システム及びその動作方法 | |
US9342474B2 (en) | Switching a computer system from a high performance mode to a low power mode | |
US10209991B2 (en) | Instruction set and micro-architecture supporting asynchronous memory access | |
KR100210205B1 (ko) | 스톨캐쉬를 제공하기 위한 장치 및 방법 | |
JPH04153734A (ja) | 並列処理装置 | |
US5526500A (en) | System for operand bypassing to allow a one and one-half cycle cache memory access time for sequential load and branch instructions | |
US6993674B2 (en) | System LSI architecture and method for controlling the clock of a data processing system through the use of instructions | |
KR100457478B1 (ko) | 메모리액세스방법및데이터처리시스템 | |
EP0333231B1 (en) | Microcomputer system capable of accessing to memory at high speed | |
JPH08212069A (ja) | データプロセッサ | |
US5717891A (en) | Digital signal processor with caching of instructions that produce a memory conflict | |
EP0633521B1 (en) | Microprocessor including circuit for generating signal used for tracing executed instruction stream | |
JP3956698B2 (ja) | メモリ制御装置 | |
JPH0212358A (ja) | データ転送方式 | |
JPH04372030A (ja) | プロセッサのメモリアクセス方式 |