JP3457428B2 - データ処理装置 - Google Patents
データ処理装置Info
- Publication number
- JP3457428B2 JP3457428B2 JP17201495A JP17201495A JP3457428B2 JP 3457428 B2 JP3457428 B2 JP 3457428B2 JP 17201495 A JP17201495 A JP 17201495A JP 17201495 A JP17201495 A JP 17201495A JP 3457428 B2 JP3457428 B2 JP 3457428B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- data
- cpu
- memory
- branch
- 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
Landscapes
- Detection And Correction Of Errors (AREA)
- Advance Control (AREA)
Description
【0001】
【産業上の利用分野】本発明は、計算機システムにおけ
るメモリ装置をECC(誤り検出訂正)実行により高信
頼に保ちつつ高速アクセス可能にするデータ処理装置に
関する。
るメモリ装置をECC(誤り検出訂正)実行により高信
頼に保ちつつ高速アクセス可能にするデータ処理装置に
関する。
【0002】
【従来の技術】半導体の分野では、微細化技術が著しく
進展している。各種メモリ素子では、この微細化技術の
進展によりメモリ素子1個あたりの記憶容量が増大する
反面、記憶セル1個の占める体積の縮小による蓄積電荷
量の減少や、微小欠陥の発生確率の高まり、動作の高速
化に伴う電気的なノイズの印加等の外部要因により、デ
ータ中のエラービットの発生確率が高くなる。
進展している。各種メモリ素子では、この微細化技術の
進展によりメモリ素子1個あたりの記憶容量が増大する
反面、記憶セル1個の占める体積の縮小による蓄積電荷
量の減少や、微小欠陥の発生確率の高まり、動作の高速
化に伴う電気的なノイズの印加等の外部要因により、デ
ータ中のエラービットの発生確率が高くなる。
【0003】一般に、メモリ装置におけるデータの信頼
性向上の方法としては、パリティチェック方式とECC
(誤り検出訂正)機構が知られている。
性向上の方法としては、パリティチェック方式とECC
(誤り検出訂正)機構が知られている。
【0004】パリティチェック方式では、データビット
に1ビットのパリティビットを付加し、パリティビット
によりデータビットとパリティビット中のビットの値
が"1"であるビットの数を奇数若しくは偶数に統一して
メモリ装置に書き込み、読み出し時にはデータビットと
パリティビット中のビットの値が"1"であるビットの数
をチェックすることにより誤りの検出を行う。
に1ビットのパリティビットを付加し、パリティビット
によりデータビットとパリティビット中のビットの値
が"1"であるビットの数を奇数若しくは偶数に統一して
メモリ装置に書き込み、読み出し時にはデータビットと
パリティビット中のビットの値が"1"であるビットの数
をチェックすることにより誤りの検出を行う。
【0005】ECC機構では、拡張ハミングコードを用
いてデータビットよりチェックビットを生成し、データ
ビットとチェックビットをメモリ装置に書き込み、読み
出し時にはメモリ装置から読み出したデータビットとチ
ェックビットよりシンドロームを生成し、このシンドロ
ームより1ビットの誤り訂正及び2ビットの誤り検出を
行う。
いてデータビットよりチェックビットを生成し、データ
ビットとチェックビットをメモリ装置に書き込み、読み
出し時にはメモリ装置から読み出したデータビットとチ
ェックビットよりシンドロームを生成し、このシンドロ
ームより1ビットの誤り訂正及び2ビットの誤り検出を
行う。
【0006】
【発明が解決しようとする課題】しかしながら、パリテ
ィチェック方式では奇数個ビットの誤り検出のみが可能
で偶数個ビットの誤り検出はできず、奇数個ビットの誤
り検出時もデータ中のどのビットに誤りがあるかを指定
できないため誤りが訂正できない欠点があった。
ィチェック方式では奇数個ビットの誤り検出のみが可能
で偶数個ビットの誤り検出はできず、奇数個ビットの誤
り検出時もデータ中のどのビットに誤りがあるかを指定
できないため誤りが訂正できない欠点があった。
【0007】また、ECC機構では、1ビットの誤り訂
正及び2ビットの誤り検出が可能であるが、パリティチ
ェック方式より、誤り検出訂正の手法が複雑であるた
め、ECC実行によるメモリアクセスの時間オ−バヘッ
ドが大きくなる欠点があった。
正及び2ビットの誤り検出が可能であるが、パリティチ
ェック方式より、誤り検出訂正の手法が複雑であるた
め、ECC実行によるメモリアクセスの時間オ−バヘッ
ドが大きくなる欠点があった。
【0008】本発明の目的は、これら従来技術の欠点を
解消し、ECC実行により、デ−タを高信頼に保ち、メ
モリの先読み、分岐予測、リターン命令予測、CPU内
レジスタの高速スタックへの退避により、高速にアクセ
ス可能なデータ処理制御装置を実現することである。
解消し、ECC実行により、デ−タを高信頼に保ち、メ
モリの先読み、分岐予測、リターン命令予測、CPU内
レジスタの高速スタックへの退避により、高速にアクセ
ス可能なデータ処理制御装置を実現することである。
【0009】
【課題を解決するための手段】本発明は、上記目的を達
成するため、次のように構成される。分岐命令の格納ア
ドレスを保持する分岐命令アドレステーブルと分岐命令
の飛び先アドレスを保持する分岐先アドレステーブルと
を有する分岐ウィンドウと、サブルーチン分岐処理時に
CPU内レジスタの内容を退避するレジスタ退避用スタ
ックと、サブルーチン分岐処理時にリターンアドレスを
保持するリターンアドレススタックと、メモリからのデ
ータを保持するバッファメモリと、バッファメモリ内に
保持されたデータのアドレスを保持するバッファメモリ
内データアドレステーブルと、分岐ウィンドウ、リター
ンアドレススタックに保持されたアドレス、CPUから
送出されているアドレス及び前回アクセスしたメモリの
次のアドレスの中から一つのアドレスを選択してメモリ
に送出し、CPUから送出されるアドレスを分岐ウィン
ドウ、バッファメモリ内データアドレステーブルに送る
アドレス操作部と、分岐ウィンドウ、リターンアドレス
スタック、バッファメモリ内データアドレステーブル及
びCPUから送出されているアドレスを比較するアドレ
ス比較部と、CPUに送出される命令をデコードするデ
コード部とを有し、分岐ウィンドウ、レジスタ退避用ス
タック、リターンアドレススタック、バッファメモリ、
バッファメモリ内データアドレステーブル、アドレス操
作部を制御するとともに、メモリに制御信号を送出する
制御部と、エラー検出訂正手段とを備え、サブルーチン
分岐処理時のCPU内レジスタの内容をレジスタ退避用
スタックに退避し、通常時は、アドレスを一つずつ増加
させて、メモリにアクセスし、データの先読みを行い、
CPUの命令フェッチ時にデコード部によりCPUに送
られるデータをデコードし、分岐命令である場合は分岐
ウィンドウ内に保持された分岐先アドレスを参照し、バ
ッファメモリ内に当該アドレスのデータが無い場合に
は、CPUがアクセスするよりも先にメモリの当該アド
レス以降にアクセスしデータの先読みを行い、リターン
命令である場合はリターンアドレススタック内に保持さ
れたリターンアドレスを参照し、バッファメモリ内に当
該アドレスのデータが無い場合には、CPUがアクセス
するよりも先にメモリの当該アドレス以降にアクセスし
データの先読みを行い、先読みしたデータを上記エラー
検出訂 正手段によりエラー検出訂正を行い、エラー訂正
後のデータをバッファメモリに格納する。
成するため、次のように構成される。分岐命令の格納ア
ドレスを保持する分岐命令アドレステーブルと分岐命令
の飛び先アドレスを保持する分岐先アドレステーブルと
を有する分岐ウィンドウと、サブルーチン分岐処理時に
CPU内レジスタの内容を退避するレジスタ退避用スタ
ックと、サブルーチン分岐処理時にリターンアドレスを
保持するリターンアドレススタックと、メモリからのデ
ータを保持するバッファメモリと、バッファメモリ内に
保持されたデータのアドレスを保持するバッファメモリ
内データアドレステーブルと、分岐ウィンドウ、リター
ンアドレススタックに保持されたアドレス、CPUから
送出されているアドレス及び前回アクセスしたメモリの
次のアドレスの中から一つのアドレスを選択してメモリ
に送出し、CPUから送出されるアドレスを分岐ウィン
ドウ、バッファメモリ内データアドレステーブルに送る
アドレス操作部と、分岐ウィンドウ、リターンアドレス
スタック、バッファメモリ内データアドレステーブル及
びCPUから送出されているアドレスを比較するアドレ
ス比較部と、CPUに送出される命令をデコードするデ
コード部とを有し、分岐ウィンドウ、レジスタ退避用ス
タック、リターンアドレススタック、バッファメモリ、
バッファメモリ内データアドレステーブル、アドレス操
作部を制御するとともに、メモリに制御信号を送出する
制御部と、エラー検出訂正手段とを備え、サブルーチン
分岐処理時のCPU内レジスタの内容をレジスタ退避用
スタックに退避し、通常時は、アドレスを一つずつ増加
させて、メモリにアクセスし、データの先読みを行い、
CPUの命令フェッチ時にデコード部によりCPUに送
られるデータをデコードし、分岐命令である場合は分岐
ウィンドウ内に保持された分岐先アドレスを参照し、バ
ッファメモリ内に当該アドレスのデータが無い場合に
は、CPUがアクセスするよりも先にメモリの当該アド
レス以降にアクセスしデータの先読みを行い、リターン
命令である場合はリターンアドレススタック内に保持さ
れたリターンアドレスを参照し、バッファメモリ内に当
該アドレスのデータが無い場合には、CPUがアクセス
するよりも先にメモリの当該アドレス以降にアクセスし
データの先読みを行い、先読みしたデータを上記エラー
検出訂 正手段によりエラー検出訂正を行い、エラー訂正
後のデータをバッファメモリに格納する。
【0010】好ましくは、上記データ処理装置におい
て、割り込みレベル毎の割り込みベクタに対応した割り
込みベクタテーブルのアドレスを保持するベクタテーブ
ルアドレステーブルを、さらに備え、割り込み応答時に
は、ベクタテーブルアドレステーブル内に保持された割
り込みレベル毎の割り込みベクタに対応する割り込みベ
クタテーブルのアドレスを参照し、バッファメモリ内に
当該アドレスのデータが無い場合には、CPUがアドレ
スするよりも先にメモリの当該アドレスにアクセスし、
データの先読みを行う。
て、割り込みレベル毎の割り込みベクタに対応した割り
込みベクタテーブルのアドレスを保持するベクタテーブ
ルアドレステーブルを、さらに備え、割り込み応答時に
は、ベクタテーブルアドレステーブル内に保持された割
り込みレベル毎の割り込みベクタに対応する割り込みベ
クタテーブルのアドレスを参照し、バッファメモリ内に
当該アドレスのデータが無い場合には、CPUがアドレ
スするよりも先にメモリの当該アドレスにアクセスし、
データの先読みを行う。
【0011】また、好ましくは、上記データ処理装置に
おいて、メモリは、ダイナミックランダムアクセスメモ
リからなる。
おいて、メモリは、ダイナミックランダムアクセスメモ
リからなる。
【0012】また、好ましくは、上記データ処理装置に
おいて、エラー検出訂正手段を、さらに備え、メモリに
アクセスし、データの先読みを実行し、先読みしたデー
タをエラー検出訂正手段により、エラー検出訂正を行
い、エラー訂正後のデータを上記バッファメモリに格納
する。
おいて、エラー検出訂正手段を、さらに備え、メモリに
アクセスし、データの先読みを実行し、先読みしたデー
タをエラー検出訂正手段により、エラー検出訂正を行
い、エラー訂正後のデータを上記バッファメモリに格納
する。
【0013】
【作用】本発明では、サブルーチン分岐若しくは割り込
み処理時のCPU内レジスタの退避をメモリではなくメ
モリよりも高速アクセス可能なレジスタ退避用スタック
に行うことによりCPU内レジスタの退避と復帰をメモ
リに行うよりも高速に行う。
み処理時のCPU内レジスタの退避をメモリではなくメ
モリよりも高速アクセス可能なレジスタ退避用スタック
に行うことによりCPU内レジスタの退避と復帰をメモ
リに行うよりも高速に行う。
【0014】CPUの命令フェッチ時に制御部内のデコ
ード部によりCPUに送られるデータをCPUより先に
デコードする。このとき、デコードした命令が分岐命令
である場合は、アドレス比較部によりCPUから送出さ
れているアドレスと、分岐ウィンドウ内の分岐命令アド
レステーブル内に格納してあるアドレスを比較すること
により、その分岐命令のアドレスが存在するかどうか調
べる。
ード部によりCPUに送られるデータをCPUより先に
デコードする。このとき、デコードした命令が分岐命令
である場合は、アドレス比較部によりCPUから送出さ
れているアドレスと、分岐ウィンドウ内の分岐命令アド
レステーブル内に格納してあるアドレスを比較すること
により、その分岐命令のアドレスが存在するかどうか調
べる。
【0015】分岐命令アドレステーブル内に、CPUに
送られている分岐命令のアドレスが格納してある場合
は、分岐先アドレステーブルに格納してあるその分岐命
令の分岐先アドレスを参照する。バッファメモリ内に分
岐先アドレスのデータが存在すれば、バッファメモリ内
にあるデ−タを使用することにより、メモリアクセスの
実行時間を短縮する。
送られている分岐命令のアドレスが格納してある場合
は、分岐先アドレステーブルに格納してあるその分岐命
令の分岐先アドレスを参照する。バッファメモリ内に分
岐先アドレスのデータが存在すれば、バッファメモリ内
にあるデ−タを使用することにより、メモリアクセスの
実行時間を短縮する。
【0016】バッファメモリ内に分岐先アドレスのデー
タが無い場合には、CPUがアクセスするよりも先にメ
モリの分岐先アドレス以降のアドレスにアクセスしデー
タの先読みを行いECC実行後のデータをバッファメモ
リに格納しておくことによりメモリアクセスの実行時間
を短縮する。
タが無い場合には、CPUがアクセスするよりも先にメ
モリの分岐先アドレス以降のアドレスにアクセスしデー
タの先読みを行いECC実行後のデータをバッファメモ
リに格納しておくことによりメモリアクセスの実行時間
を短縮する。
【0017】デコードした命令がリターン命令である場
合は、リターンアドレススタック内に保持されたリター
ンアドレスを参照する。バッファメモリ内にリターンア
ドレスのデータが存在すれば、バッファメモリ内にある
デ−タを使用することにより、メモリアクセスの実行時
間を短縮する。
合は、リターンアドレススタック内に保持されたリター
ンアドレスを参照する。バッファメモリ内にリターンア
ドレスのデータが存在すれば、バッファメモリ内にある
デ−タを使用することにより、メモリアクセスの実行時
間を短縮する。
【0018】リターンアドレスのデータがバッファメモ
リ内に無い場合には、CPUがアクセスするよりも先に
メモリのリターンアドレス以降にアクセスしデータの先
読みを行いECC実行後のデータをバッファメモリに格
納しておくことによりメモリアクセスの実行時間を短縮
する。
リ内に無い場合には、CPUがアクセスするよりも先に
メモリのリターンアドレス以降にアクセスしデータの先
読みを行いECC実行後のデータをバッファメモリに格
納しておくことによりメモリアクセスの実行時間を短縮
する。
【0019】CPUの割り込み応答時には、ベクタテー
ブルアドレステーブル内に保持された割り込みレベル毎
の割り込みベクタに対応する割り込みベクタテーブルの
アドレスを参照し、バッファメモリ内に当該アドレスの
データが無い場合には、CPUがアドレスするよりも先
にメモリ当該アドレスにアクセスしデータの先読みを行
いECC実行後のデータをバッファメモリに格納してお
くことによりメモリアクセスの実行時間を短縮する。
ブルアドレステーブル内に保持された割り込みレベル毎
の割り込みベクタに対応する割り込みベクタテーブルの
アドレスを参照し、バッファメモリ内に当該アドレスの
データが無い場合には、CPUがアドレスするよりも先
にメモリ当該アドレスにアクセスしデータの先読みを行
いECC実行後のデータをバッファメモリに格納してお
くことによりメモリアクセスの実行時間を短縮する。
【0020】通常時は、プログラムの連続性を利用して
アドレスを1つずつ逐次的に増加させてメモリにアクセ
スしデータの先読みを行い、先読みしたデータにECC
を実行しECC実行後のデータをバッファメモリに格納
しておく。これによりCPUの次にアクセスするデータ
がバッファメモリ内にある場合には、バッファメモリ内
にあるデ−タを使用することにより、メモリアクセスと
ECC実行時間を短縮することができる。
アドレスを1つずつ逐次的に増加させてメモリにアクセ
スしデータの先読みを行い、先読みしたデータにECC
を実行しECC実行後のデータをバッファメモリに格納
しておく。これによりCPUの次にアクセスするデータ
がバッファメモリ内にある場合には、バッファメモリ内
にあるデ−タを使用することにより、メモリアクセスと
ECC実行時間を短縮することができる。
【0021】プログラムには時間的空間的参照局所性が
あるため、バッファメモリ内にあるデ−タに対して、次
のCPUのメモリアクセスがある確率は非常に高くな
り、CPUの平均メモリアクセス時間を大幅に速くする
ことができる。
あるため、バッファメモリ内にあるデ−タに対して、次
のCPUのメモリアクセスがある確率は非常に高くな
り、CPUの平均メモリアクセス時間を大幅に速くする
ことができる。
【0022】
【実施例】以下、本発明の実施例を図面を用いて説明す
る。図1は、本発明の第1実施例の概略構成ブロック図
であり、1はCPUで、2は分岐ウィンドウであり、こ
のウィンドウ2は、少なくとも分岐命令アドレステーブ
ル21及び分岐先アドレステーブル22からなる。分岐
命令アドレステーブル21、分岐先アドレステーブル2
2は、それぞれ、CPU1に送られた分岐命令の格納さ
れているメモリ11のアドレスとその飛び先アドレスを
保持する。
る。図1は、本発明の第1実施例の概略構成ブロック図
であり、1はCPUで、2は分岐ウィンドウであり、こ
のウィンドウ2は、少なくとも分岐命令アドレステーブ
ル21及び分岐先アドレステーブル22からなる。分岐
命令アドレステーブル21、分岐先アドレステーブル2
2は、それぞれ、CPU1に送られた分岐命令の格納さ
れているメモリ11のアドレスとその飛び先アドレスを
保持する。
【0023】3はメモリ11より高速アクセス可能なレ
ジスタ退避用スタックメモリで、サブルーチン分岐及び
割り込み処理時にCPU1のレジスタの内容を退避す
る。4は、サブルーチン分岐及び割り込み処理時にリタ
ーンアドレスを保持するリターンアドレススタックメモ
リである。リターンアドレスは、サブルーチン分岐及び
割り込み処理時にCPU1から退避されるプログラムカ
ウンタと同じ値である。
ジスタ退避用スタックメモリで、サブルーチン分岐及び
割り込み処理時にCPU1のレジスタの内容を退避す
る。4は、サブルーチン分岐及び割り込み処理時にリタ
ーンアドレスを保持するリターンアドレススタックメモ
リである。リターンアドレスは、サブルーチン分岐及び
割り込み処理時にCPU1から退避されるプログラムカ
ウンタと同じ値である。
【0024】5は、割り込みレベル毎の割り込みベクタ
に対応したベクタテーブルのアドレスを保持するベクタ
テーブルアドレステーブルである。メモリ11の素子上
での割り込みベクタテーブルの行アドレスの値は、割り
込みレベル毎で同じ値に割り当てておく。6はバッファ
メモリでメモリ11からのデータ先読み時のデータを保
持する。7はバッファメモリ内データアドレステーブル
でバッファメモリ6内に保持されたデータのメモリ11
内でのアドレスを保持する。
に対応したベクタテーブルのアドレスを保持するベクタ
テーブルアドレステーブルである。メモリ11の素子上
での割り込みベクタテーブルの行アドレスの値は、割り
込みレベル毎で同じ値に割り当てておく。6はバッファ
メモリでメモリ11からのデータ先読み時のデータを保
持する。7はバッファメモリ内データアドレステーブル
でバッファメモリ6内に保持されたデータのメモリ11
内でのアドレスを保持する。
【0025】8はアドレス操作部で、分岐ウィンドウ
2、リターンアドレススタック4、ベクタテーブルアド
レステーブル5の各々に保持されたアドレス及びCPU
1から送出されているアドレス及び前回アクセスしたメ
モリ11の次のアドレスの中から一つのアドレスを選択
してメモリ11に送出する機能と、CPU1から送出さ
れるアドレスを分岐ウィンドウ2、バッファメモリ内デ
ータアドレステーブル7に送る機能を有する。
2、リターンアドレススタック4、ベクタテーブルアド
レステーブル5の各々に保持されたアドレス及びCPU
1から送出されているアドレス及び前回アクセスしたメ
モリ11の次のアドレスの中から一つのアドレスを選択
してメモリ11に送出する機能と、CPU1から送出さ
れるアドレスを分岐ウィンドウ2、バッファメモリ内デ
ータアドレステーブル7に送る機能を有する。
【0026】9は制御部で、アドレス比較部91とデコ
ード部92とからなる。アドレス比較部91は、分岐ウ
ィンドウ2、リターンアドレススタック4、ベクタテー
ブルアドレステーブル5、バッファメモリ内データアド
レステーブル4及びCPU1から送出されているアドレ
スの中の2つのアドレスの比較を行う。デコード部92
は、CPU1に送出される命令をデコードする。
ード部92とからなる。アドレス比較部91は、分岐ウ
ィンドウ2、リターンアドレススタック4、ベクタテー
ブルアドレステーブル5、バッファメモリ内データアド
レステーブル4及びCPU1から送出されているアドレ
スの中の2つのアドレスの比較を行う。デコード部92
は、CPU1に送出される命令をデコードする。
【0027】制御部9は、アドレス比較部91のアドレ
ス比較結果とデコード部92のデコード結果とCPU1
の動作状態を通知するファンクションコード線14と、
CPU1の割り込み線15との情報を基に分岐ウィンド
ウ2、レジスタ退避用スタック3、リターンアドレスス
タック4、ベクタテーブルアドレステーブル5、バッフ
ァメモリ6、バッファメモリ内データアドレステーブル
7、アドレス操作部8、ECC実行ユニット10を制御
する機能と、メモリ11に制御信号を送出する機能を有
する。
ス比較結果とデコード部92のデコード結果とCPU1
の動作状態を通知するファンクションコード線14と、
CPU1の割り込み線15との情報を基に分岐ウィンド
ウ2、レジスタ退避用スタック3、リターンアドレスス
タック4、ベクタテーブルアドレステーブル5、バッフ
ァメモリ6、バッファメモリ内データアドレステーブル
7、アドレス操作部8、ECC実行ユニット10を制御
する機能と、メモリ11に制御信号を送出する機能を有
する。
【0028】12はCPUアドレス線、13はCPUデ
ータ線、16は制御線、17はメモリアドレス線、18
はメモリ制御線、19はメモリデータ線である。この図
1の例においては、ECC実行ユニット10によりEC
Cを実行することによりメモリ11から読み出すデータ
の高信頼性を維持する。
ータ線、16は制御線、17はメモリアドレス線、18
はメモリ制御線、19はメモリデータ線である。この図
1の例においては、ECC実行ユニット10によりEC
Cを実行することによりメモリ11から読み出すデータ
の高信頼性を維持する。
【0029】CPU1は、サブルーチン分岐実行時又は
割り込み処理時、CPU1内レジスタの内容の退避を行
う。レジスタの内容の退避は、従来の方式ではメモリ1
1に行うが、図1の例においては、メモリ11ではなく
メモリ11よりも高速アクセス可能なレジスタ退避用ス
タック3に行う。
割り込み処理時、CPU1内レジスタの内容の退避を行
う。レジスタの内容の退避は、従来の方式ではメモリ1
1に行うが、図1の例においては、メモリ11ではなく
メモリ11よりも高速アクセス可能なレジスタ退避用ス
タック3に行う。
【0030】これにより、メモリ11のアクセス時間を
レジスタ退避用スタック3のアクセス時間に置き換える
とともに、ECC実行の時間を省くことができ、CPU
1内レジスタの内容の退避と復帰を高速に行うことがで
きる。レジスタ退避用スタック3には、データが一時的
に格納されるだけであるので、レジスタ退避用スタック
3内のデータにソフトエラーが起きることはほとんど考
えられない。
レジスタ退避用スタック3のアクセス時間に置き換える
とともに、ECC実行の時間を省くことができ、CPU
1内レジスタの内容の退避と復帰を高速に行うことがで
きる。レジスタ退避用スタック3には、データが一時的
に格納されるだけであるので、レジスタ退避用スタック
3内のデータにソフトエラーが起きることはほとんど考
えられない。
【0031】次に、図2、図3を用いて、通常時のCP
U1のメモリ読み出しの説明をする。CPU1のメモリ
読み出し時は、まず、CPU1がCPUアドレス線12
上に出すアドレスと、バッファメモリ内データアドレス
テーブル7に保持されたデータとをアドレス比較部91
により比較する。この比較の結果、CPU1がアクセス
するアドレスのデータがバッファメモリ6内にあるかど
うかが判定される。
U1のメモリ読み出しの説明をする。CPU1のメモリ
読み出し時は、まず、CPU1がCPUアドレス線12
上に出すアドレスと、バッファメモリ内データアドレス
テーブル7に保持されたデータとをアドレス比較部91
により比較する。この比較の結果、CPU1がアクセス
するアドレスのデータがバッファメモリ6内にあるかど
うかが判定される。
【0032】図2は、CPU1のアクセスするアドレス
のデータがバッファメモリ6に無いときのデータの流れ
を示す図である。図2では、CPU1がCPUアドレス
線12上に出すアドレスと、バッファメモリ内データア
ドレステーブル7に保持されたデータとをアドレス比較
部91により比較する動作も表してある。
のデータがバッファメモリ6に無いときのデータの流れ
を示す図である。図2では、CPU1がCPUアドレス
線12上に出すアドレスと、バッファメモリ内データア
ドレステーブル7に保持されたデータとをアドレス比較
部91により比較する動作も表してある。
【0033】アドレスの比較の結果、バッファメモリ6
内にCPU1のアクセスするデータがないので、制御部
9はアドレス操作部8によりCPU1の送出しているア
ドレスをメモリ11に入力するとともに、メモリ制御線
18によりメモリ11をリードモードとし、メモリ11
からCPU1のアクセスするデータを読み出す。次に、
メモリ11から読み出されたデータに対し、ECC実行
ユニット10により誤り検出訂正を行う。
内にCPU1のアクセスするデータがないので、制御部
9はアドレス操作部8によりCPU1の送出しているア
ドレスをメモリ11に入力するとともに、メモリ制御線
18によりメモリ11をリードモードとし、メモリ11
からCPU1のアクセスするデータを読み出す。次に、
メモリ11から読み出されたデータに対し、ECC実行
ユニット10により誤り検出訂正を行う。
【0034】その後、制御部9は、ECC実行後のデー
タをECC実行ユニット10からCPU1に送るととも
に、バッファメモリ6に格納し、バッファメモリ内デー
タアドレステーブル7にCPU1の送出しているアドレ
スを格納する。このとき同時に、制御部9では、ファン
クションコード線14上の情報を基にCPU1の動作状
態を判断し、メモリフェッチであればデコード部92に
より、CPU1に送られているデータのデコードを行
う。
タをECC実行ユニット10からCPU1に送るととも
に、バッファメモリ6に格納し、バッファメモリ内デー
タアドレステーブル7にCPU1の送出しているアドレ
スを格納する。このとき同時に、制御部9では、ファン
クションコード線14上の情報を基にCPU1の動作状
態を判断し、メモリフェッチであればデコード部92に
より、CPU1に送られているデータのデコードを行
う。
【0035】CPU1の命令フェッチ時、CPU1に送
られる命令をデコード部92によりデコードするのは、
分岐命令やリターン命令をCPU1が実行するよりも速
く検出し、分岐ウィンドウ2や、リターンアドレススタ
ック4を利用して分岐命令や、リターン命令の後に行う
命令のフェッチ時間を短縮するためである。これについ
ては後で説明する。
られる命令をデコード部92によりデコードするのは、
分岐命令やリターン命令をCPU1が実行するよりも速
く検出し、分岐ウィンドウ2や、リターンアドレススタ
ック4を利用して分岐命令や、リターン命令の後に行う
命令のフェッチ時間を短縮するためである。これについ
ては後で説明する。
【0036】CPU1にデータを送った後は、プログラ
ムの連続性を利用してアドレス操作部8によりメモリ1
1に入力するアドレスを1つずつ逐次的に増加させてメ
モリ11にアクセスし、データの先読みを行い、先読み
したデータにECCを実行しECC実行後のデータをバ
ッファメモリ6に格納しておく。
ムの連続性を利用してアドレス操作部8によりメモリ1
1に入力するアドレスを1つずつ逐次的に増加させてメ
モリ11にアクセスし、データの先読みを行い、先読み
したデータにECCを実行しECC実行後のデータをバ
ッファメモリ6に格納しておく。
【0037】これにより、CPU1が次にアクセスする
データが、バッファメモリ6内にある場合には、バッフ
ァメモリ6内にあるデ−タを使用することにより、メモ
リアクセスとECC実行時間を短縮することができる。
プログラムには時間的空間的参照局所性、つまり、プロ
グラムの各ステップの実行順序と、その処理内容が格納
されたメモリアドレスの順序とは対応関係があるため、
バッファメモリ6内にあるデ−タ対して、次にCPU1
がメモリアクセスする確率は非常に高く、CPU1の平
均メモリアクセス時間を大幅に短縮することができる。
データが、バッファメモリ6内にある場合には、バッフ
ァメモリ6内にあるデ−タを使用することにより、メモ
リアクセスとECC実行時間を短縮することができる。
プログラムには時間的空間的参照局所性、つまり、プロ
グラムの各ステップの実行順序と、その処理内容が格納
されたメモリアドレスの順序とは対応関係があるため、
バッファメモリ6内にあるデ−タ対して、次にCPU1
がメモリアクセスする確率は非常に高く、CPU1の平
均メモリアクセス時間を大幅に短縮することができる。
【0038】図3は、CPU1のアクセスするアドレス
のデータがバッファメモリ6に有る場合のデータの流れ
である。図3においても、図2と同様に、CPU1がC
PUアドレス線12上に出すアドレスと、バッファメモ
リ内データアドレステーブル7に保持されたデータをア
ドレス比較部91により比較する動作を表してある。そ
して、このアドレスの比較の結果、バッファメモリ6内
にCPU1のアクセスするデータが格納されている場合
には、バッファメモリ6内のデータをCPU1に送る。
のデータがバッファメモリ6に有る場合のデータの流れ
である。図3においても、図2と同様に、CPU1がC
PUアドレス線12上に出すアドレスと、バッファメモ
リ内データアドレステーブル7に保持されたデータをア
ドレス比較部91により比較する動作を表してある。そ
して、このアドレスの比較の結果、バッファメモリ6内
にCPU1のアクセスするデータが格納されている場合
には、バッファメモリ6内のデータをCPU1に送る。
【0039】この図3の場合も図2と同様に、CPU1
にデータを送ると同時に、制御部9では、ファンクショ
ンコード線14上の情報を基にCPU1の動作状態を判
断し、メモリフェッチであればデコード部92により、
CPU1に送られているデータのデコードを行う。
にデータを送ると同時に、制御部9では、ファンクショ
ンコード線14上の情報を基にCPU1の動作状態を判
断し、メモリフェッチであればデコード部92により、
CPU1に送られているデータのデコードを行う。
【0040】通常時のCPU1のメモリ11の読み出し
は、先読みしたデータをバッファメモリ6に格納してお
くことにより高速化できる。しかし、CPU1が分岐命
令やサブルーチンや割り込み処理のリターン命令を実行
した場合、プログラムの時間的空間的参照局所性は崩れ
る。分岐命令や、リターン命令の後に行う命令は、メモ
リ11内で分岐命令やリターン命令が格納されたアドレ
スとは離れたアドレスに格納されているためである。
は、先読みしたデータをバッファメモリ6に格納してお
くことにより高速化できる。しかし、CPU1が分岐命
令やサブルーチンや割り込み処理のリターン命令を実行
した場合、プログラムの時間的空間的参照局所性は崩れ
る。分岐命令や、リターン命令の後に行う命令は、メモ
リ11内で分岐命令やリターン命令が格納されたアドレ
スとは離れたアドレスに格納されているためである。
【0041】このため、分岐命令やリターン命令の後の
命令はバッファメモリ6内に格納されている確率が低く
なり、バッファメモリ6から読み出すことができない場
合が多く、命令フェッチの時間を短縮できない。
命令はバッファメモリ6内に格納されている確率が低く
なり、バッファメモリ6から読み出すことができない場
合が多く、命令フェッチの時間を短縮できない。
【0042】そこで、図2、図3で示したように、CP
U1の命令フェッチ時に、CPU1に送られる命令を、
デコード部92によりCPU1が行うよりも速くデコー
ドする。これにより、分岐命令やリターン命令をCPU
1が実行するよりも速く検出し、分岐ウィンドウ2や、
リターンアドレススタック4を利用して分岐命令や、リ
ターン命令の後に行う命令のフェッチ時間を短縮する。
U1の命令フェッチ時に、CPU1に送られる命令を、
デコード部92によりCPU1が行うよりも速くデコー
ドする。これにより、分岐命令やリターン命令をCPU
1が実行するよりも速く検出し、分岐ウィンドウ2や、
リターンアドレススタック4を利用して分岐命令や、リ
ターン命令の後に行う命令のフェッチ時間を短縮する。
【0043】分岐ウィンドウ2は、無条件分岐ウィンド
ウと条件分岐ウィンドウからなる。無条件分岐ウィンド
ウと条件分岐ウィンドウの例を、それぞれ図4、図5に
示す。図4の無条件分岐ウィンドウ2aでは、テーブル
置き換え情報23aを備えている。CPU1に分岐命令
が送られるたびに、分岐命令アドレステーブル21、分
岐先アドレステーブル22のそれぞれに、送られた分岐
命令のアドレスと分岐命令の飛び先のアドレスとが格納
される。
ウと条件分岐ウィンドウからなる。無条件分岐ウィンド
ウと条件分岐ウィンドウの例を、それぞれ図4、図5に
示す。図4の無条件分岐ウィンドウ2aでは、テーブル
置き換え情報23aを備えている。CPU1に分岐命令
が送られるたびに、分岐命令アドレステーブル21、分
岐先アドレステーブル22のそれぞれに、送られた分岐
命令のアドレスと分岐命令の飛び先のアドレスとが格納
される。
【0044】分岐命令アドレステーブル21、分岐先ア
ドレステーブル22に容量の制限が有る場合、格納され
ているアドレスの置き換えを行わなければならない。テ
ーブル置き換え情報23aに対応する分岐命令がCPU
1に送られた最終時間を記録しておき、テーブル置き換
え情報23aの情報を基に分岐命令アドレステーブル2
1a、分岐先アドレステーブル22aに格納されている
アドレスの置き換えを行う。
ドレステーブル22に容量の制限が有る場合、格納され
ているアドレスの置き換えを行わなければならない。テ
ーブル置き換え情報23aに対応する分岐命令がCPU
1に送られた最終時間を記録しておき、テーブル置き換
え情報23aの情報を基に分岐命令アドレステーブル2
1a、分岐先アドレステーブル22aに格納されている
アドレスの置き換えを行う。
【0045】図5の条件分岐ウィンドウ2bでは、テー
ブル置き換え情報23bに加えて分岐頻度情報24bを
備えている。条件分岐命令は分岐する場合としない場合
があるため、条件分岐ウィンドウ2bでは、分岐頻度情
報24bに過去の分岐の頻度を記録しておき、その情報
を基にCPU1に条件分岐命令が送られたときに分岐す
るかどうかを予測する。
ブル置き換え情報23bに加えて分岐頻度情報24bを
備えている。条件分岐命令は分岐する場合としない場合
があるため、条件分岐ウィンドウ2bでは、分岐頻度情
報24bに過去の分岐の頻度を記録しておき、その情報
を基にCPU1に条件分岐命令が送られたときに分岐す
るかどうかを予測する。
【0046】CPU1に送られる命令をデコード部92
によりデコードし、そのデコードした命令が、分岐命令
である場合の動作を説明する。まず、アドレス比較部9
1によりCPU1から送出されているアドレスと、分岐
ウィンドウ2内の分岐命令アドレステーブル21内に格
納してあるアドレスを比較することにより、その分岐命
令のアドレスが存在するかどうか調べる。
によりデコードし、そのデコードした命令が、分岐命令
である場合の動作を説明する。まず、アドレス比較部9
1によりCPU1から送出されているアドレスと、分岐
ウィンドウ2内の分岐命令アドレステーブル21内に格
納してあるアドレスを比較することにより、その分岐命
令のアドレスが存在するかどうか調べる。
【0047】分岐命令アドレステーブル21内に、CP
U1に送られている分岐命令のアドレスが格納してある
場合は、分岐先アドレステーブル22に格納してあるそ
の分岐命令の分岐先アドレスを参照する。
U1に送られている分岐命令のアドレスが格納してある
場合は、分岐先アドレステーブル22に格納してあるそ
の分岐命令の分岐先アドレスを参照する。
【0048】次に、分岐先アドレスとバッファメモリ内
データアドレステーブル7に保持されたデータをアドレ
ス比較部91により比較し、分岐先アドレスのデータが
バッファメモリ6内にあるか判定する。バッファメモリ
6内に分岐先アドレスのデータが存在すれば、バッファ
メモリ6内にあるデ−タを使用することにより、メモリ
アクセスとECC実行時間を短縮することができる。
データアドレステーブル7に保持されたデータをアドレ
ス比較部91により比較し、分岐先アドレスのデータが
バッファメモリ6内にあるか判定する。バッファメモリ
6内に分岐先アドレスのデータが存在すれば、バッファ
メモリ6内にあるデ−タを使用することにより、メモリ
アクセスとECC実行時間を短縮することができる。
【0049】バッファメモリ6内に分岐先アドレスのデ
ータが無い場合には、CPU1がアクセスするよりも先
にメモリ11の分岐先アドレス以降のアドレスにアクセ
スしデータの先読みを行い、ECC実行後のデータをバ
ッファメモリ6に格納しておくことによりメモリアクセ
スとECC実行時間を短縮する。バッファメモリ6内に
分岐先アドレスのデータが無い場合の動作を図6に示
す。
ータが無い場合には、CPU1がアクセスするよりも先
にメモリ11の分岐先アドレス以降のアドレスにアクセ
スしデータの先読みを行い、ECC実行後のデータをバ
ッファメモリ6に格納しておくことによりメモリアクセ
スとECC実行時間を短縮する。バッファメモリ6内に
分岐先アドレスのデータが無い場合の動作を図6に示
す。
【0050】図6では、分岐先アドレステーブル22内
の分岐先アドレスと、バッファメモリ内データアドレス
テーブル7に保持されたデータをアドレス比較部91に
より比較する動作も表してある。図7は、CPU1がサ
ブルーチン分岐命令実行によりCPU1内のレジスタを
レジスタ退避用スタック3へ退避している時の動作を示
している。レジスタ退避、リターンアドレススタック4
へのプログラムカウンタの値の格納と同時にメモリ11
にアクセスしデータの先読みを行い、ECC実行後のデ
ータをバッファメモリ6に格納しておくことができる。
の分岐先アドレスと、バッファメモリ内データアドレス
テーブル7に保持されたデータをアドレス比較部91に
より比較する動作も表してある。図7は、CPU1がサ
ブルーチン分岐命令実行によりCPU1内のレジスタを
レジスタ退避用スタック3へ退避している時の動作を示
している。レジスタ退避、リターンアドレススタック4
へのプログラムカウンタの値の格納と同時にメモリ11
にアクセスしデータの先読みを行い、ECC実行後のデ
ータをバッファメモリ6に格納しておくことができる。
【0051】CPU1に送られる命令をデコード部92
によりデコードした命令がサブルーチンや割り込み処理
のリターン命令である場合は、リターンアドレススタッ
ク4内に保持されたリターンアドレスを参照する。バッ
ファメモリ6内にリターンアドレスのデータが存在すれ
ば、バッファメモリ6内にあるデ−タを使用することに
より、メモリアクセスとECC実行時間を短縮すること
ができる。
によりデコードした命令がサブルーチンや割り込み処理
のリターン命令である場合は、リターンアドレススタッ
ク4内に保持されたリターンアドレスを参照する。バッ
ファメモリ6内にリターンアドレスのデータが存在すれ
ば、バッファメモリ6内にあるデ−タを使用することに
より、メモリアクセスとECC実行時間を短縮すること
ができる。
【0052】リターンアドレスのデータがバッファメモ
リ6内に無い場合には、CPU1がアクセスするよりも
先にメモリのリターンアドレス以降にアクセスし、デー
タの先読みを行う。そして、ECC実行後のデータをバ
ッファメモリ6に格納しておくことによりメモリアクセ
スとECC実行時間を短縮することができる。
リ6内に無い場合には、CPU1がアクセスするよりも
先にメモリのリターンアドレス以降にアクセスし、デー
タの先読みを行う。そして、ECC実行後のデータをバ
ッファメモリ6に格納しておくことによりメモリアクセ
スとECC実行時間を短縮することができる。
【0053】次に、バッファメモリ6内にリターンアド
レスのデータが無い場合の動作を図8に示す。図8で
は、リターンアドレスタック4内のリターンアドレス
と、バッファメモリ内データアドレステーブル7に保持
されたデータをアドレス比較部91により比較する動作
も表してある。
レスのデータが無い場合の動作を図8に示す。図8で
は、リターンアドレスタック4内のリターンアドレス
と、バッファメモリ内データアドレステーブル7に保持
されたデータをアドレス比較部91により比較する動作
も表してある。
【0054】図9は、CPU1がリターン命令実行によ
りレジスタ退避用スタック3からCPU1内へレジスタ
の値を復帰している時の動作を示している。レジスタ復
帰と同時にメモリ11にアクセスしデータの先読みを行
い、ECC実行後のデータをバッファメモリ6に格納し
ておくことができる。
りレジスタ退避用スタック3からCPU1内へレジスタ
の値を復帰している時の動作を示している。レジスタ復
帰と同時にメモリ11にアクセスしデータの先読みを行
い、ECC実行後のデータをバッファメモリ6に格納し
ておくことができる。
【0055】CPU1の割り込み応答時には、まず、割
り込みベクタを読み、ベクタに対応した割り込みベクタ
テーブルを読み、割り込みベクタテーブルに記録された
アドレスの命令をフェッチすることによって割り込み処
理を行う。本発明では、ベクタテーブルアドレステーブ
ル5に、割り込みレベル毎の割り込みベクタに対応した
ベクタテーブルのアドレスを保持する。
り込みベクタを読み、ベクタに対応した割り込みベクタ
テーブルを読み、割り込みベクタテーブルに記録された
アドレスの命令をフェッチすることによって割り込み処
理を行う。本発明では、ベクタテーブルアドレステーブ
ル5に、割り込みレベル毎の割り込みベクタに対応した
ベクタテーブルのアドレスを保持する。
【0056】こうすることにより、CPU1の割り込み
発生時に、割り込み線15上の割り込みレベルとCPU
データ線上の割り込みベクタを調べるだけで参照する割
り込みベクタテーブルのメモリ内でのアドレスを知るこ
とができる。CPU1の割り込みベクタフェッチ時にベ
クタテーブルアドレステーブル5内に保持された割り込
みレベル毎の割り込みベクタに対応する割り込みベクタ
テーブルのアドレスを参照し、バッファメモリ6内に割
り込みベクタテーブルのアドレスデータが存在すれば、
バッファメモリ6内にあるデータを使用することによ
り、メモリアクセスとECC実行時間を短縮する。
発生時に、割り込み線15上の割り込みレベルとCPU
データ線上の割り込みベクタを調べるだけで参照する割
り込みベクタテーブルのメモリ内でのアドレスを知るこ
とができる。CPU1の割り込みベクタフェッチ時にベ
クタテーブルアドレステーブル5内に保持された割り込
みレベル毎の割り込みベクタに対応する割り込みベクタ
テーブルのアドレスを参照し、バッファメモリ6内に割
り込みベクタテーブルのアドレスデータが存在すれば、
バッファメモリ6内にあるデータを使用することによ
り、メモリアクセスとECC実行時間を短縮する。
【0057】割り込みベクタテーブルアドレスのデータ
がバッファメモリ6内に無い場合には、CPU1がアク
セスするよりも先にメモリの割り込みベクタテーブルの
アドレスにアクセスし、データの先読みを行い、ECC
実行後のデータをバッファメモリに格納しておくことに
より、メモリアクセスとECC実行時間を短縮すること
ができる。
がバッファメモリ6内に無い場合には、CPU1がアク
セスするよりも先にメモリの割り込みベクタテーブルの
アドレスにアクセスし、データの先読みを行い、ECC
実行後のデータをバッファメモリに格納しておくことに
より、メモリアクセスとECC実行時間を短縮すること
ができる。
【0058】バッファメモリ6内に割り込みベクタテー
ブルのアドレスのデータが無い場合の動作を図11に示
す。図10では、ベクタテーブルアドレステーブル5内
に保持された割り込みレベル毎の割り込みベクタに対応
する割り込みベクタテーブルのアドレスと、バッファメ
モリ内データアドレステーブル7に保持されたデータを
アドレス比較部91により比較する動作も表してある。
ブルのアドレスのデータが無い場合の動作を図11に示
す。図10では、ベクタテーブルアドレステーブル5内
に保持された割り込みレベル毎の割り込みベクタに対応
する割り込みベクタテーブルのアドレスと、バッファメ
モリ内データアドレステーブル7に保持されたデータを
アドレス比較部91により比較する動作も表してある。
【0059】なお、メモリ11は、好ましくはDRAM
(ダイナミックランダムアクセスメモリ)により構成す
る。
(ダイナミックランダムアクセスメモリ)により構成す
る。
【0060】図11は、バッファメモリ6内に割り込み
ベクタテーブルのアドレスのデータが無い場合に、ベク
タテーブルアドレステーブル5内に保持された割り込み
レベルに対応する割り込みベクタテーブルの行アドレス
を参照し、メモリの対応する行を活性化する動作を示
す。
ベクタテーブルのアドレスのデータが無い場合に、ベク
タテーブルアドレステーブル5内に保持された割り込み
レベルに対応する割り込みベクタテーブルの行アドレス
を参照し、メモリの対応する行を活性化する動作を示
す。
【0061】メモリがDRAMの場合、そのアクセス
は、メモリの行アドレス入力、列アドレス入力の後に、
データの読み出しを行うため、ベクタテーブルへのアク
セスを高速化できる。
は、メモリの行アドレス入力、列アドレス入力の後に、
データの読み出しを行うため、ベクタテーブルへのアク
セスを高速化できる。
【0062】
【発明の効果】本発明は、以上説明したように構成され
ているため、次のような効果がある。CPUの命令フェ
ッチ時にCPUに送られるデータをCPUより先にデコ
ードする。デコードした命令が分岐命令である場合は、
分岐先アドレステーブルに格納してあるその分岐命令の
分岐先アドレスを参照し、CPUがアクセスするよりも
先にメモリの分岐先アドレス以降のアドレスにアクセス
しデータの先読みを行い、先読みを行ったデータにEC
Cを実行し、ECC実行による信頼性が保たれたデータ
をメモリに格納する。これにより、データの信頼性を保
ちつつ、メモリアクセスの実行時間を短縮することがで
きる。
ているため、次のような効果がある。CPUの命令フェ
ッチ時にCPUに送られるデータをCPUより先にデコ
ードする。デコードした命令が分岐命令である場合は、
分岐先アドレステーブルに格納してあるその分岐命令の
分岐先アドレスを参照し、CPUがアクセスするよりも
先にメモリの分岐先アドレス以降のアドレスにアクセス
しデータの先読みを行い、先読みを行ったデータにEC
Cを実行し、ECC実行による信頼性が保たれたデータ
をメモリに格納する。これにより、データの信頼性を保
ちつつ、メモリアクセスの実行時間を短縮することがで
きる。
【0063】また、デコードした命令がリターン命令で
ある場合は、リターンアドレススタック内に保持された
リターンアドレスを参照し、CPUがアクセスするより
も先にメモリのリターンアドレス以降にアクセスしデー
タの先読みを行い、先読みを行ったデータにECCを実
行し、ECC実行による信頼性が保たれたデータをメモ
リに格納する。これにより、データの信頼性を保ちつ
つ、メモリアクセスの実行時間を短縮することができ
る。
ある場合は、リターンアドレススタック内に保持された
リターンアドレスを参照し、CPUがアクセスするより
も先にメモリのリターンアドレス以降にアクセスしデー
タの先読みを行い、先読みを行ったデータにECCを実
行し、ECC実行による信頼性が保たれたデータをメモ
リに格納する。これにより、データの信頼性を保ちつ
つ、メモリアクセスの実行時間を短縮することができ
る。
【0064】また、CPUの割り込み応答時には、ベク
タテーブルアドレステーブル内に保持された割り込みレ
ベル毎の割り込みベクタに対応する割り込みベクタテー
ブルのアドレスを参照し、バッファメモリ内に当該アド
レスのデータが無い場合には、CPUがアクセスするよ
りも先に、メモリの当該アドレスにアクセスし、データ
の先読みを行い、先読みを行ったデータにECCを実行
し、ECC実行による信頼性が保たれたデータをメモリ
に格納する。これにより、データの信頼性を保ちつつ、
ことによりメモリアクセスの実効時間を短縮することが
できる。
タテーブルアドレステーブル内に保持された割り込みレ
ベル毎の割り込みベクタに対応する割り込みベクタテー
ブルのアドレスを参照し、バッファメモリ内に当該アド
レスのデータが無い場合には、CPUがアクセスするよ
りも先に、メモリの当該アドレスにアクセスし、データ
の先読みを行い、先読みを行ったデータにECCを実行
し、ECC実行による信頼性が保たれたデータをメモリ
に格納する。これにより、データの信頼性を保ちつつ、
ことによりメモリアクセスの実効時間を短縮することが
できる。
【0065】また、CPUのメモリ読み出し時は、プロ
グラムの連続性を利用してデータの先読みを行い、先読
みを行ったデータにECCを実行し、ECC実行後によ
る信頼性が保たれたデータをバッファメモリに格納す
る。これにより、CPUの次にアクセスするデータがバ
ッファメモリ内にある場合には、バッファメモリ内にあ
るデ−タを使用し、データの信頼性を保ちつつ、メモリ
アクセス時間を短縮することができる。
グラムの連続性を利用してデータの先読みを行い、先読
みを行ったデータにECCを実行し、ECC実行後によ
る信頼性が保たれたデータをバッファメモリに格納す
る。これにより、CPUの次にアクセスするデータがバ
ッファメモリ内にある場合には、バッファメモリ内にあ
るデ−タを使用し、データの信頼性を保ちつつ、メモリ
アクセス時間を短縮することができる。
【図1】本発明によるデータ処理装置の一実施例のブロ
ック図である。
ック図である。
【図2】通常のメモリ読み出し時にアクセスするデータ
がバッファメモリに無いときのデータの流れ図である。
がバッファメモリに無いときのデータの流れ図である。
【図3】通常のメモリ読み出し時にアクセスするデータ
がバッファメモリに有るときのデータの流れ図である。
がバッファメモリに有るときのデータの流れ図である。
【図4】無条件分岐ウィンドウの例を示す図である。
【図5】条件分岐ウィンドウの例を示す図である。
【図6】CPUに分岐命令が送られバッファメモリ内に
分岐先アドレスのデータが無い場合の動作を示す図であ
る。
分岐先アドレスのデータが無い場合の動作を示す図であ
る。
【図7】CPU内のレジスタをレジスタ退避用スタック
へ退避している時の動作を示す図である。
へ退避している時の動作を示す図である。
【図8】CPUにリターン命令が送られバッファメモリ
内にリターンアドレスのデータが無い場合の動作を示す
図である。
内にリターンアドレスのデータが無い場合の動作を示す
図である。
【図9】レジスタ退避用スタックからCPU内へレジス
タの値を復帰している時の動作を示す図である。
タの値を復帰している時の動作を示す図である。
【図10】バッファメモリ内に割り込みベクタテーブル
のアドレスが無い場合の動作を示す図である。
のアドレスが無い場合の動作を示す図である。
【図11】バッファメモリ内に割り込みベクタテーブル
のアドレスが無い場合の動作を示す図である。
のアドレスが無い場合の動作を示す図である。
1 CPU
2 分岐ウィンドウ
2a 無条件分岐ウィンドウ
2b 条件分岐ウィンドウ
3 レジスタ退避用スタック
4 リターンアドレススタック
5 ベクタテーブルアドレステーブル
6 バッファメモリ
7 バッファメモリ内データアドレステ
ーブル 8 アドレス操作部 9 制御部 10 ECC実行ユニット 11 メモリ 12 CPUアドレス線 13 CPUデータ線 14 ファンクションコード線 15 割り込み線 16 制御線 17 メモリアドレス線 18 メモリ制御線 19 メモリデータ線 21 分岐命令アドレステーブル 21a、21b 分岐命令アドレステーブル 22 分岐先アドレステーブル 22a、22b 分岐先アドレステーブル 23a、23b テーブル置き換え情報 24b 分岐頻度情報 91 アドレス比較部 92 デコード部
ーブル 8 アドレス操作部 9 制御部 10 ECC実行ユニット 11 メモリ 12 CPUアドレス線 13 CPUデータ線 14 ファンクションコード線 15 割り込み線 16 制御線 17 メモリアドレス線 18 メモリ制御線 19 メモリデータ線 21 分岐命令アドレステーブル 21a、21b 分岐命令アドレステーブル 22 分岐先アドレステーブル 22a、22b 分岐先アドレステーブル 23a、23b テーブル置き換え情報 24b 分岐頻度情報 91 アドレス比較部 92 デコード部
フロントページの続き
(56)参考文献 特開 平5−120013(JP,A)
特開 昭62−203236(JP,A)
特開 平4−195637(JP,A)
特開 平3−225433(JP,A)
特開 平2−255917(JP,A)
特開 昭54−54548(JP,A)
特開 平5−241827(JP,A)
特開 平3−241435(JP,A)
(58)調査した分野(Int.Cl.7,DB名)
G06F 9/38
G06F 11/10
Claims (3)
- 【請求項1】CPUが読み出し又は書き込みを行うデー
タが格納されるCPUアクセス用メモリと、 分岐命令の格納アドレスを保持する分岐命令アドレステ
ーブルと分岐命令の飛び先アドレスを保持する分岐先ア
ドレステーブルとを有する分岐ウィンドウと、 サブルーチン分岐処理時にCPU内レジスタの内容を退
避するレジスタ退避用スタックと、 サブルーチン分岐処理時にリターンアドレスを保持する
リターンアドレススタックと、上記CPUアクセス用 メモリからのデータを保持するバ
ッファメモリと、 上記バッファメモリ内に保持されたデータの上記CPU
アクセス用メモリのアドレスを保持するバッファメモリ
内データアドレステーブルと、 上記分岐ウィンドウ及び上記リターンアドレススタック
に保持されたアドレス、CPUから送出されているアド
レス及び前回アクセスした上記CPUアクセス用メモリ
の次のアドレスの中から一つのアドレスを選択して上記
CPUアクセス用メモリに送出し、CPUから送出され
るアドレスを上記分岐ウィンドウ及び上記バッファメモ
リ内データアドレステーブルに送るアドレス操作部と、 分岐ウィンドウ、リターンアドレススタック、バッファ
メモリ内データアドレステーブル及びCPUから送出さ
れているアドレスの中の2つのアドレスを比較するアド
レス比較部と、CPUに送出される命令をデコードする
デコード部とを有し、分岐ウィンドウ、レジスタ退避用
スタック、リターンアドレススタック、バッファメモ
リ、バッファメモリ内データアドレステーブル、アドレ
ス操作部を制御するとともに、上記CPUアクセス用メ
モリに制御信号を送出する制御部と、 エラー検出訂正手段と、 を備え、サブルーチン分岐処理時のCPU内レジスタの
内容をレジスタ退避用スタックに退避し、通常時は、ア
ドレスを一つずつ増加させて、上記CPUアクセス用メ
モリにアクセスし、データの先読みを行い、CPUの命
令フェッチ時に上記デコード部によりCPUに送られる
データをデコードし、 分岐命令である場合は上記分岐ウィンドウ内に保持され
た分岐先アドレスを参照し、バッファメモリ内データア
ドレステーブルに当該アドレスのデータがある場合に
は、バッファメモリ内のデータをCPUに送り、バッフ
ァメモリ内データアドレステーブルに当該アドレスのデ
ータが無い場合には、CPUがアクセスするよりも先に
上記CPUアクセス用メモリの当該アドレス以降にアク
セスしデータの先読みを行い、 リターン命令である場合は上記リターンアドレススタッ
ク内に保持されたリターンアドレスを参照し、バッファ
メモリ内に当該アドレスのデータが無い場合には、CP
Uがアクセスするよりも先に上記CPUアクセス用メモ
リの当該アドレス以降にアクセスしデータの先読みを行
い、先読みしたデータを上記エラー検出訂正手段により
エラー検出訂正を行い、エラー訂正後のデータをバッフ
ァメモリに格納することを特徴とするデータ処装置。 - 【請求項2】請求項1記載のデータ処理装置において、
割り込みレベル毎の割り込みベクタに対応した割り込み
ベクタテーブルのアドレスを保持するベクタテーブルア
ドレステーブルを、さらに備え、割り込み応答時には、
ベクタテーブルアドレステーブル内に保持された割り込
みレベル毎の割り込みベクタに対応する割り込みベクタ
テーブルのアドレスを参照し、バッファメモリ内に当該
アドレスのデータが無い場合には、CPUがアクセスす
るよりも先にCPUアクセス用メモリの当該アドレスに
アクセスし、データの先読みを行うことを特徴とするデ
ータ処理装置。 - 【請求項3】請求項2記載のデータ処理装置において、
CPUアクセス用メモリは、ダイナミックランダムアク
セスメモリからなることを特徴とするデータ処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP17201495A JP3457428B2 (ja) | 1995-07-07 | 1995-07-07 | データ処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP17201495A JP3457428B2 (ja) | 1995-07-07 | 1995-07-07 | データ処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0922355A JPH0922355A (ja) | 1997-01-21 |
JP3457428B2 true JP3457428B2 (ja) | 2003-10-20 |
Family
ID=15933935
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP17201495A Expired - Fee Related JP3457428B2 (ja) | 1995-07-07 | 1995-07-07 | データ処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3457428B2 (ja) |
-
1995
- 1995-07-07 JP JP17201495A patent/JP3457428B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH0922355A (ja) | 1997-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2275939B1 (en) | Processor and address translating method | |
JPH0581935B2 (ja) | ||
US20090327638A1 (en) | Securely clearing an error indicator | |
US8954681B1 (en) | Multi-stage command processing pipeline and method for shared cache access | |
US20040049615A1 (en) | Method and architecture capable of programming and controlling access data and instructions | |
US5594884A (en) | Cache memory system having a plurality of ports | |
JPH09282228A (ja) | 主記憶制御装置 | |
US7127643B2 (en) | Method and apparatus for fixing bit errors encountered during cache references without blocking | |
JPH09146836A (ja) | キャッシュ索引の障害訂正装置 | |
CN111639042B (zh) | 一种预取buffer数据一致性的处理方法及装置 | |
US20040172518A1 (en) | Information processing unit and information processing method | |
KR100532417B1 (ko) | 디지털 신호 처리장치의 저전력 소비형 캐시 메모리 장치및 이에 대한 제어방법 | |
US20050050280A1 (en) | Data accessing method and system for processing unit | |
JP3457428B2 (ja) | データ処理装置 | |
US8443174B2 (en) | Processor and method of performing speculative load operations of the processor | |
US7213107B2 (en) | Dedicated cache memory | |
JP2009230479A (ja) | マイクロプロセッサ | |
JP2001306334A (ja) | エミュレーション装置 | |
JP2786886B2 (ja) | プリフェッチ制御方法およびプリフェッチ制御装置 | |
JPH01194046A (ja) | メモリアクセス方式 | |
JPH10232789A (ja) | Eccパーシャルライト制御ユニット | |
US20100107038A1 (en) | Cache controller and cache controlling method | |
JPH08161226A (ja) | データ先読み制御方法,キャッシュ制御装置およびデータ処理装置 | |
JP2001154845A (ja) | キャッシュミスした後のメモリバスアクセス制御方式 | |
JPH08286914A (ja) | メモリ制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |