JP2796590B2 - メモリ装置及びそれを使用したデータ処理装置 - Google Patents
メモリ装置及びそれを使用したデータ処理装置Info
- Publication number
- JP2796590B2 JP2796590B2 JP3197688A JP19768891A JP2796590B2 JP 2796590 B2 JP2796590 B2 JP 2796590B2 JP 3197688 A JP3197688 A JP 3197688A JP 19768891 A JP19768891 A JP 19768891A JP 2796590 B2 JP2796590 B2 JP 2796590B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- instruction
- data
- address
- value
- 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
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/18—Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
- G11C29/24—Accessing extra cells, e.g. dummy cells or redundant cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
Description
えたデータ処理装置に関し、更に詳述すれば、予備回路
を備えることにより部分的な故障を救済可能なメモリ装
置及びそれを備えたデータ処理装置に関する。
能化に従ってデータ処理装置のメモリも大容量化し、こ
れに伴ってメモリの故障が原因でデータ処理装置が不良
になる確率が増大するという問題があった。特に、デー
タ処理装置の演算処理部,制御部及びメモリ部を単一の
LSI チップに実装するマイクロコンピュータあるいは高
速のキャッシュメモリを演算部と同一のLSI に実装する
キャッシュメモリ内蔵マイクロプロセッサ等のデータ処
理装置では、同一LSI 上に実装されるメモリ容量の増大
に伴ってメモリ部分の歩留りがLSI 全体の歩留りを左右
するため、メモリの歩留りを向上しない限りLSI 全体の
歩留りが向上しないという問題がある。
に、冗長なメモリ回路を予備回路としてLSI に内蔵し、
ポリシリコンヒューズあるいはレーザによる配線の切断
により故障回路を予備回路に置き換える技術が既に提案
されている。また、不揮発性メモリではポリシリコンヒ
ューズあるいはレーザによる配線の切断は行わずに、不
揮発性ラッチに置き換え情報をセットしておくことによ
り故障回路を予備回路に切り替える技術が例えば特願平
1-1302591号「不揮発性半導体記憶装置」として提案さ
れている。
にメモリの故障診断を行う診断回路及び故障部分の予備
回路への置き換えを行う置き換え回路を内蔵し、セルフ
テストモードでチップを動作させて診断を行い、不揮発
性ラッチに置き換え情報をセットすることによりチップ
単体の動作で故障回路の救済を行うメモリ装置も例えば
特願平1-1300348号「不揮発性半導体記憶装置」, 特願
平1-1300349号「不揮発性半導体記憶装置」, 特願平1
-1300350号「不揮発性半導体記憶装置」等として提案さ
れている。
備回路を備え、レーザーによりフューズを切断して故障
回路を救済する方法も既に提案されており、例えば「R.
Allmonn etc.,"System, Process, and Design Implica
tions of a Reduced SupplyVoltage Microprocessor,"
DIGEST OF TECHNICAL PAPERS 1990 IEEE ISSCC, Februa
ry 1990. 」に詳しく記載されている。
やあるいはレーザによる配線の切断等の物理的な加工に
より故障回路を予備回路に置き換える場合は、不良と判
断された装置の救済可能性をテストした上で通常の装置
の動作としては行わない物理的な加工処理が必要にな
る。また、不揮発性ラッチに置き換え情報をセットする
ことにより故障回路を予備回路に置き換える場合は、特
願平1-1302591号「不揮発性半導体記憶装置」に示され
ているように不揮発性ラッチをその他の回路と同様に構
成できる場合は付加コストは少ないが、通常の動作では
不揮発性メモリを使用しない装置では故障回路の救済の
みの目的で不揮発性メモリを追加する必要がある。特
に、1つのLSI 上に実装される揮発性メモリ装置あるい
はデータ処理装置の製造に際しては、不揮発性ラッチを
実装するための特別な工程を追加する必要が生じる。
回路に置き換える従来の方法では、故障診断と故障回路
の予備回路への置き換えとのために通常の動作以外の処
置を外部から行う必要があった。不揮発性ラッチを使用
する場合は、紫外線を照射して不揮発性ラッチに記憶さ
れているデータを書き換える際に故障回路を予備回路に
置き換えるための不揮発性ラッチの置き換え情報も消去
されてしまうため、メモリ内容の消去を行った後には必
ずセルフテストモードに切り替えて診断動作と故障救済
動作とを行う必要がある。このため、故障が全くない装
置と故障回路を予備回路で救済した装置は製造工程また
は利用中になんらかの異なる処置を行う必要があり、両
者を同一に扱うことはできなかった。
ものであり、揮発性メモリをリセットシーケンスにおい
て診断し、故障部分がある場合には回路の電気的接続を
切替えて予備回路に置き替えることを可能としたメモリ
装置及びそれを使用したデータ処理装置の提供を主たる
目的とする。また本発明は、メモリ装置またはそれを使
用したデータ処理装置のメモリ部分の故障を救済して製
造歩留りを向上させることを目的とする。
装置及びデータ処理装置は、リセット信号が入力される
リセット信号入力端子と、クロックが入力されるクロッ
ク入力端子と、第1,第2,第3のメモリからなるメモ
リ部と、第4のメモリと、前記第4のメモリに書込まれ
た情報に従って前記メモリ部の各メモリ間の電気的接続
を切換えることにより前記第1のメモリ又は前記第2の
メモリを前記第3のメモリと置き換える制御部とを有す
るメモリ機構と、前記リセット信号入力端子から前記リ
セット信号が入力された場合に前記クロック入力端子か
ら入力されるクロックに同期して前記メモリ機構の故障
診断を行い、前記第1のメモリに故障があると診断され
た第1の場合は、前記第4のメモリに第1の値を書き込
むことにより前記制御部に前記第1のメモリを前記第3
のメモリに置き換えさせる処理を所定クロック数で行わ
せることにより、前記第2のメモリに故障があると診断
された第2の場合は、前記第4のメモリに第2の値を書
き込むことにより前記制御部に前記第2のメモリを前記
第3のメモリに置き換えさせる処理を前記第1の場合と
同一クロック数で行わせることにより、前記メモリ機構
に故障がないと診断された第3の場合は、前記第4のメ
モリに第3の値を書き込む処理を前記第1及び第2の場
合と同一クロック数で行わせることにより前記メモリ部
の初期化を行う診断回路とを備えたことを特徴とする。
ータ処理装置は、バリッドビットとタグフィールドとデ
ータフィールドとから構成されるエントリ複数からなる
メモリ部と、前記メモリ部に接続し前記メモリ部の各エ
ントリに対応するアクセス許可ビットの値を記憶する制
御メモリと、前記アクセス許可ビットが第1の値である
場合は前記バリッドビットと前記タグフィールドとの値
に従って前記データフィールドの値の有効/無効を判断
して有効である場合にはヒットと判定し、無効である場
合にはミスと判定し、前記アクセス許可ビットが第2の
値である場合は前記データフィールドの値に拘わらずミ
スと判定するヒットミス判定部とを有するバッファメモ
リ機構と、前記バッファメモリ機構に接続し、レジスタ
と演算回路とを有し、前記バッファメモリ機構へのデー
タの書き込み,前記バッファメモリ機構からのデータの
読み出し及びデータ間の演算を行う演算機構と前記メモ
リ部の各エントリの故障診断を行い、故障がないと診断
されたエントリに対応するアクセス許可ビットを前記第
1の値とすることにより、ヒット又はミスと判定し、ま
た故障があると診断されたエントリに対応するアクセス
許可ビットを前記第2の値とすることによりデータフィ
ールド値に拘わらずミスと判定し、故障があると診断さ
れたエントリを無効化し、この部分を切り放すことで前
記バッファメモリ機構の故障救済を行う診断回路とを備
えたことを特徴とする。
タ処理装置は、リセット信号入力端子からリセット割り
込みが入力されると、クロック入力端子から入力される
クロック信号に同期して、データバッファの故障診断を
行い、第1のメモリに故障がある場合は第4のメモリの
アクセス有効指定ビットに”0”を、第3のメモリのア
クセス有効指定ビットに”1”をそれぞれ書き込み、更
にメモリアドレス連想記憶に第1のメモリのアドレスを
書き込むことにより第1のメモリを第3のメモリに置き
換え、第2のメモリに故障がある場合は第4のメモリの
アクセス有効指定ビットに”0”を、第3のメモリのア
クセス有効指定ビットに”1”をそれぞれ書き込み、更
にメモリアドレス連想記憶に第2のメモリのアドレスを
書き込むことにより第2のメモリを第3のメモリに置き
換えて故障の救済を行ってデータバッファを初期化し、
第1のメモリにも第2のメモリにも故障がない場合は第
1のメモリと第2のメモリとのアクセス有効指定ビット
に共に”1”を書き込み、第3のメモリのアクセス有効
指定ビットに”0”を書き込んで故障救済を行わなずに
データバッファを初期化し、故障救済の位置と故障救済
の有無によらず常に一定クロック数で故障診断と初期化
とを終了する。
データ処理装置は、データキャッシュとして使用するメ
モリ部の各エントリの故障診断を行い、故障したエント
リに対応するアクセス有効指定ビットに”0”を、故障
していないエントリに対応するアクセス有効指定ビット
に”1”を書き込むことにより故障したエントリをアク
セス禁止にしてメモリ部内の故障した部分を切り放して
データキャッシュの故障救済を行う。
いて詳述する。
ステムの構成」 図1は本発明のデータ処理装置100 を用いたシステム構
成の一実施例を示すブロック図である。
0, 命令キャッシュ106, データキャッシュ107, 108及
び主メモリ109 がアドレスバス101, データバス102,
命令バス103, メモリアドレスバス104 及びモリデータ
バス105 で相互に結合されている。
置100から出力されるアドレスを命令キャッシュ106 と
データキャッシュ107, 108とに入力する。命令バス103
は命令キャッシュ106 から出力される命令コードを本発
明のデータ処理装置100 に転送する。データバス102 は
本発明のデータ処理装置100 から出力されるデータをデ
ータキャッシュ107, 108に転送し、またデータキャッシ
ュ107, 108から出力されるデータを本発明のデータ処理
装置100 に転送する。メモリアドレスバス104は命令キ
ャッシュ106 またはデータキャッシュ107, 108から出力
されるアドレスを主メモリ109 に転送する。メモリデー
タバス105 は主メモリ109 と命令キャッシュ106 または
データキャッシュ107, 108間で命令またはデータを転送
する。
7, 108がミスした場合はそれぞれのキャッシュ106, 107
または108 がメモリアドレスバス104 とメモリデータバ
ス105 とのバス権を調停して主メモリ109 をアクセスす
る。
タ処理装置100 側では64ビットのバスに結合しているた
め、両データキャッシュ107, 108が協調して動作する。
各64ビットデータ単位のデータの内の上位32ビットのデ
ータをデータキャッシュ107が、下位32ビットのデータ
をデータキャッシュ108 がそれぞれ分担して受け持つ。
変更することにより、図1に示されているような命令バ
スとデータバスとを別々に有するディアルバスモードの
他、8バイトのデータバスまたは4バイトのデータバス
で命令とデータとを共にアクセスする2種類のシングル
バスモードでも外部のメモリをアクセスすることができ
る。
体系及び処理機構、故障救済機構を備えた内蔵メモリの
詳細について説明する。
ット単位で可変長となっており、奇数バイト長の命令は
ない。
使用される命令を短いフォーマットとするため、特に工
夫された命令フォーマット体系を有する。たとえば、2
オペランド命令に対しては基本的に「4バイト+拡張
部」の構成を有し、全てのアドレッシングモードが利用
できる一般形フォーマットと、頻度の高い命令とアドレ
ッシングモードとのみを使用できる短縮形フォーマット
との2つのフォーマットとを有する。
処理装置100 の命令フォーマットを示す模式図である。
これらの模式図中に現われる記号の意味は以下の通りで
ある。
ンドを指定する部分 Sh:6ビットの短縮形のアドレッシングモードでオペラ
ンドを指定する部分 Rn:レジスタファイル上のオペランドをレジスタ番号で
指定する部分
LSB側で、かつ高いアドレスになっている。アドレスN
とアドレスN+1との2バイトを見た後でないと命令フォ
ーマットが判別できないようになっているが、これは命
令が必ず16ビット(ハーフワード)単位でフェッチ及び
デコードされることを前提としたためである。
いずれのフォーマットの場合も、各オペランドのEaまた
はShの拡張部は必ずそのEaまたはShの基本部を含むハー
フワードの直後に置かれる。これは、命令により暗黙に
指定される即値データ及び命令の拡張部に優先する。従
って、4バイト以上の命令では、Eaの拡張部によって命
令のオペレーションコードが分断される場合がある。
フォーマットについては特開昭64-91253号公報に詳しく
記載されている。
ード指定方法には、レジスタを含めて6ビットで指定す
る短縮形と、8ビットで指定する一般形とがある。
場合、あるいは意味的に考えて明らかに不合理なアドレ
ッシングモードの組み合わせが指定された場合には、未
定義命令を実行した場合と同様に予約命令例外が発生
し、例外処理が起動される。これに該当するのは、デス
ティネーションが即値モードである場合、アドレス計算
を伴うべきアドレッシングモード指定フィールドで即値
モードが使用された場合などである。
々のアドレッシングモードをサポートする。本発明のデ
ータ処理装置100 でサポートされるアドレッシングモー
ドには、レジスタ直接モード,レジスタ間接モード,レ
ジスタ相対間接モード,即値モード,絶対モード,PC相
対間接モード,スタックポップモード,スタックプッシ
ュモード,多段間接モードがある。
そのままオペランドとするアドレッシングモードであ
る。
容をアドレスとするメモリの内容をオペランドとするア
ドレッシングモードである。
スメント値が16ビットであるか32ビットであるかによ
り、2種類に分かれる。いずれも、汎用レジスタの内容
に16ビットまたは32ビットのディスプレースメント値を
加えた値をアドレスとするメモリの内容をオペランドと
するアドレッシングモードである。なお、ディスプレー
スメント値は符号付きとして扱われる。
ビットパターンをそのまま2進数と見なしてオペランド
とするアドレッシングモードである。フォーマット中の
即値データのサイズはオペランドサイズとして命令中で
指定される。
されるか32ビットで示されるかにより2種類に分かれ
る。いずれも、命令コード中で指定される16ビットまた
は32ビットのビットパターンをアドレスとしたメモリの
内容をオペランドとするアドレッシングモードである。
16ビットでアドレスが示される場合は指定されたアドレ
ス値が32ビットに符号拡張される。
ト値が16ビットであるか32ビットであるかにより、2種
類に分かれる。いずれも、プログラムカウンタの内容に
16ビットまたは32ビットのディスプレースメント値を加
えた値をアドレスとするメモリの内容をオペランドとす
るアドレッシングモードである。なお、ディスプレース
メント値は符号付きとして扱われる。PC相対間接モード
において参照されるプログラムカウンタの値は、そのオ
ペランドを含む命令の先頭アドレスである。
SPの内容をアドレスとするメモリの内容をオペランドと
するアドレッシングモードである。オペランドアクセス
後、スタックポインタSPをオペランドサイズだけインク
リメントする。例えば、32ビットデータを扱う場合に
は、オペランドアクセス後にSPが+4だけ更新される。
8, 16, 64ビットのサイズのオペランドに対するスタッ
クポップモードの指定も可能であり、それぞれSPが+1,
+2, +8だけ更新される。
タSPの内容をオペランドサイズだけデクリメントした内
容をアドレスとするメモリの内容をオペランドとするア
ドレッシングモードである。スタックプッシュモードで
はオペランドアクセス前にスタックポインタSPがデクリ
メントされる。例えば、32ビットデータを扱う場合に
は、オペランドアクセス前にSPが-4だけ更新される。
8, 16, 64ビットのサイズのオペランドに対するスタッ
クプッシュモードの指定も可能であり、それぞれSPが-
1, -2, -8だけ更新される。
ログラムカウンタPCの値をベースアドレスとし、その値
にインデックスレジスタ値やディスプレースメント値を
加算した値をアドレスとするか、あるいはそのアドレス
をもとにメモリ間接アドレッシングをするアドレッシン
グモードである。
のアドレッシングモードについては本発明の命令フォー
マットと同様に特開昭64-91253号公報に詳しく記載され
ている。
チ」 本発明のデータ処理装置100 はプログラム及びデータを
格納するメモリ空間である論理空間と、各種のレジスタ
及び一部の命令で操作するデータを格納するメモリ空間
である制御空間との2つのメモリ空間をサポートする。
プログラム及びデータが格納されるメモリ空間と同じで
ある。制御空間には各種のレジスタがバイトアドレスで
マップされているレジスタ領域とデータを格納するため
のデータ領域とがあり、制御空間操作命令でデータを書
き込み、また読み出すことが出来る。制御空間のデータ
領域はコンテキスト操作命令でもアクセス出来る。本発
明のデータ処理装置100 と類似した手法で論理空間と制
御空間とをサポートし、制御空間にコンテキストを保持
する手法については、たとえば特開昭64-91253号公報に
詳しく開示されている。
ト」 図6は本発明のデータ処理装置100 のコンテキストスイ
ッチ命令である LDCTX命令と STCTX命令とで操作される
コンテキストブロックのフォーマットを示す模式図であ
る。なお、コンテキストブロックの先頭アドレスは CTX
BBレジスタに保持される。
ンテキストブロックのフォーマットは図7に示す CSWレ
ジスタで指定される。 CSWレジスタのFRビット13とRGビ
ット14とが共に”1”である場合は図6に示すコンテキ
ストブロックフォーマットとなる。
が”1”である場合は図6の浮動小数点レジスタ12が L
DCTX命令と STCTX命令とでの操作対象とならない。
ある場合は図6の浮動小数点レジスタ12, 汎用レジスタ
10, 11が LDCTX命令と STCTX命令とによる操作対象には
ならない。この場合は CSWレジスタと4つのスタックポ
インタSPI, SP0, SP1, SP2,SP3 及びアドレス変換テー
ブルベースを示すUATBレジスタと論理空間IDを示すLSID
レジスタとが操作対象になる。
ドすべきコンテキストブロックの先頭アドレスを8ビッ
トの一般形アドレッシングモードで指定するフィールド
である。Xビット15はロードすべきコンテキストブロッ
クが論理空間にあるのか制御空間にあるのかを示すビッ
トである。具体的には、Xビット15が”0”であればコ
ンテキストブロックは論理空間にあり、Xビット15が”
1”であればコンテキストブロックは制御空間にあるこ
とをそれぞれ示す。 LDCTX命令が実行されるとCTXBADR
フィールド16で指定されるアドレスが CTXBBレジスタに
ロードされ、Xビット15で指定される空間の CTXBADRフ
ィールド16で指定されるアドレスにあり、先頭の CSW値
で指定されるフォーマットの操作対象コンテキストブロ
ックが対応するレジスタにロードされる。
図に示す。
ロックをストアすべき空間を指定する。具体的には、X
ビット17が”0”であればコンテキストブロックを論理
空間にストアすることが指定され、Xビット17が”1”
であればコンテキストブロックを制御空間にストアする
ことがそれぞれ指定される。ストアすべきメモリアドレ
スは CTXBBレジスタで指定される。 STCTX命令が実行さ
れると、Xビット17で指定される空間の CTXBBレジスタ
で指定されるアドレスに CSWレジスタで指定されるフォ
ーマットのコンテキストブロックに含まれるレジスタの
内容が退避される。
ック」 図10は本発明のデータ処理装置100 の機能構成を示す
ブロック図である。
的に大きく分けると、命令フェッチ部(IFU)111, 命令デ
コード部(DU)117, IROM部(IRU)118, FROM部(FRU)119,
アドレス生成部(AGU)114, PC生成部(PCU)113, 整数演算
部(IU)115, 浮動小数点演算部(FPU)116, オペランドア
クセス部(OAU)112, バスインタフェイス部(BIU)110に分
かれる。なお、バスインタフェイス部110 は外部とアド
レスバス(A00:31), データバス(D00:63),命令バス(I00:
31)を通じて各種制御信号により結合している。
ッシュ51あるいは外部のメモリからフェッチする。命令
デコード部117 は命令フェッチ部111 からIIバス726 を
通じて転送された命令をデコードする。IROM部118 はマ
イクロプログラムに従って整数演算の制御を行う。FROM
部119 は整数演算とは独立のマイクロプログラムにより
浮動小数点演算を制御する。PC生成部113 は命令のPC値
を計算する。アドレス生成部114 はオペランドのアドレ
スを計算する。オペランドアクセス部112 は内蔵データ
キャッシュ107, 108あるいは外部のメモリからオペラン
ドフェッチし、また外部のメモリへオペランドをストア
する処理を行う。
れ、命令デコード部117 でデコードされ、IROM部118 あ
るいはFROM部119 のマイクロプログラム制御により整数
演算部115 あるいは浮動小数点演算部116 で実行され
る。命令のPC値の計算、オペランドのアドレス計算、オ
ペランドのアクセスは整数演算及び浮動小数点演算とは
独立したブロックでハードワイヤード制御により行われ
る。
るいはAAバス731 で各部から命令フェッチ部111 及びオ
ペランドアクセス部112 に転送される。各部とオペラン
ドアクセス部112 との間のオペランドの転送はDDバス71
0 により行われる。
はオペランドアクセス部112 の要求に従って外部のメモ
リをアクセスする。本発明のデータ処理装置100 のメモ
リアクセスはクロック同期のプロトコルで行われる。1
回のメモリアクセスサイクルには最小2クロックサイク
ルが必要である。リードサイクルには命令コードあるい
はデータを1つずつフェッチする標準アクセスと、命令
コードあるいはデータを4回連続フェッチするブロック
アクセスとがある。更に、ブロックアクセスにはアドレ
スを1回出力することにより命令コードあるいはデータ
を4回連続フェッチするバースト転送と、アドレスを4
回出力することにより命令コードあるいはデータを4回
連続フェッチするクワッド転送とがある。ライトサイク
ルはアドレスを1回出力してデータを1回出力する標準
ライトアクセスのみである。
ックアクセスでライトアクセスを行うことはない。各メ
モリサイクルの制御及び各種信号の入出力はバスインタ
フェイスでハードワイヤード制御により行われる。
のブロック図に示す。
チ部111 とアドレスパッド(A-pad)1101とはBAバス721
で結合されている。DADINF 1102, IADINF 1103はそれぞ
れデータあるいは命令のブロック転送時にアドレスをイ
ンクリメントする回路である。
クセス部112 とはBDバス722 で結合されている。データ
パッド(D-pad)1104 とBDバス722 との間には32ビットシ
ングルバスモードにおいて外部の32ビットデータバスと
64ビットのBDバス722 のバス幅変換を行うバス幅変換回
路(64TO32-32TO64)1105 が介装されている。
の TLBの値をメモリに書き戻すために、BDバス722 には
ページテーブルアクセスを行う際にページテーブルエン
トリの参照状態フラグ及び変更状態フラグを更新した場
合にリードモディファイライトを行うためのページテー
ブルエントリ変更回路(PTERMW)1106が接続されている。
111 とはBIバス723 で結合されている。命令パッド(I-p
ad)1107 とBIバス723 との間にはデュアルバスモードに
おいて外部の32ビット命令バスと64ビットのBIバス723
のバス幅変換を行うバス幅変換回路(32TO64)1108が介装
されている。BIバス723 とBDバス722 との間にはシング
ルバスモードにおいて外部のデータバスからBDバス722
へ入力された命令コードをBIバス723 を介して命令フェ
ッチ部111 へ転送するためのインタフェイス回路(D TO
I)1109が介装されている。
フェイス部110 へのアクセス要求はデータアクセスと、
TLBがミスした際のアドレス変換テーブルアクセスとの
2種類がある。
部112 からBAバス721 を通じてアドレスバスに出力され
たアドレスに従ってデータバスからデータがフェッチさ
れ、BDバス722 を通じてオペランドアクセス部112 へ転
送される。この際、32ビットバスモードではバス変換回
路(64TO32-32TO64)1105 によりデータバス上の32ビット
データがBDバス722 の上位32ビットと下位32ビットとの
両方に出力される。データキャッシュがミスしてブロッ
クアクセスでデータをフェッチする際は、オペランドア
クセス部112からは1つのアドレスが出力され、残り3
つのアドレスはDADINF回路1102で下位ビットをラップア
ラウンドして出力する。
部112 からBAバス721 を通じてアドレスバスにアドレス
が出力され、BDバス722 を通じてデータバスにデータが
出力される。この際、32ビットバスモードではバス変換
回路(64TO32-32TO64)1105 によりBDバス722 の上位32ビ
ットまたは下位32ビットの内の指定された方のデータが
データバスに出力される。
換テーブルアクセスの際は、データバスを通じてアドレ
ス変換テーブルがアクセスされる。アドレス変換テーブ
ルエントリの読み込みの場合、オペランドアクセス部11
2 からBAバス721 を通じてアドレスバスに出力されたア
ドレスに従ってデータバスからテーブルのエントリがフ
ェッチされ、BDバス722 を通じてオペランドアクセス部
112 へ転送される。ページテーブルエントリのリードモ
ディファイライトの場合、オペランドアクセス部112 か
らBAバス721 を通じてアドレスバスに出力されたアドレ
スに従ってデータバスからテーブルのエントリがフェッ
チされ、BDバス722 を通じてオペランドアクセス部112
へ転送されると同時にページテーブルエントリのコピー
がPTERMW回路1106に保持され、PTERMW回路1106内でペー
ジテーブルエントリの変更が行われる。従って、ページ
テーブルエントリを書き戻す場合は、オペランドアクセ
ス部112 からBAバス721 を通じてアドレスバスにアドレ
スが出力され、PTERMW回路1106からBDバス722 を通じて
外部のデータバスにページテーブルエントリが出力され
る。
ス部110 へのアクセス要求は、命令フェッチと TLBがミ
スした際のアドレス変換テーブルアクセスとの2種類が
ある。
合、命令フェッチ部111 からBAバス721 を通じてアドレ
スバスに出力されたアドレスに従って命令バスから命令
コードがフェッチされ、BIバス723 を通じて命令フェッ
チ部111 へ転送される。この際、32ビットの命令コード
はバス幅変換回路(32TO64)1108を通じてBIバス723 の上
位32ビットと下位32ビットとの両方に出力される。
合、命令フェッチ部111 からBAバス721 を通じてアドレ
スバスに出力されたアドレスに従ってデータバスから命
令コードがフェッチされ、BDバス722, D TOI回路110
9, BIバス723 を通じて命令フェッチ部111 へ転送され
る。
データバスから入力された32ビットの命令コードがバス
幅変換回路(64TO32-32TO64)1105 を通じてBDバス722 の
上位32ビットと下位32ビットとの両方に出力される。命
令キャッシュ106 がミスしてブロックアクセスで命令コ
ードをフェッチする場合は、命令フェッチ部111 からは
1つのアドレスが出力され、残り3つのアドレスはIADI
NF回路1103で下位ビットをラップアラウンドして出力す
る。
テーブルアクセスの際は、デュアルバスモードあるいは
シングルバスモードのいずれの場合もデータバスを通じ
てアドレス変換テーブルがアクセスされる。
の場合、命令フェッチ部111 からBAバス721 を通じてア
ドレスバスに出力されたアドレスに従ってデータバスか
らテーブルのエントリがフェッチされ、BDバス722, D
TOI回路1109, BIバス723 を通じて命令フェッチ部111
へ転送される。
ァイライトの場合、命令フェッチ部111 からBAバス721
を通じてアドレスバスに出力されたアドレスに従ってデ
ータバスからテーブルのエントリがフェッチされ、BDバ
ス722, D TOI回路1109、BIバス723 を通じて命令フェ
ッチ部111 へ転送されると同時にページテーブルエント
リのコピーがPTERMW回路1106に保持され、PTERMW回路11
06内でページテーブルエントリの変更が行われる。従っ
て、ページテーブルエントリを書き戻す場合は、命令フ
ェッチ部111 からBAバス721 を通じてアドレスバスにア
ドレスが出力され、PTERMW回路1106からBDバス722 を通
じて外部のデータバスにページテーブルエントリが出力
される。
スの他、外部割り込みの受け付け及びバスアービトレイ
ションの制御も行う。
バイスがバスマスタになっていて本発明のデータ処理装
置100 がバススヌープ動作中である場合は、外部デバイ
スがデータライトを実行した際のアドレスバス上に出力
されたアドレスが取り込まれてBAバス721 を通じて命令
フェッチ部111 とオペランドアクセス部112 とに転送さ
れる。バススヌープ動作でのアドレスのとり込み動作
は、データライトサイクルに DS#信号がアサートされた
場合 (クロック非同期、エッジセンス) と、 MREQ#信号
がアサート中に MS#信号がアサートされた場合 (クロッ
ク同期、レベルセンス) とに行われる。
す。
ドレス変換機構(DAT機構)1111, 8KBの内蔵命令キャッ
シュ51, 64エントリの命令用TLB 1112, 二つの32バイト
の命令キュー1113, 1114とそれらの制御部がある。次に
フェッチすべき命令の論理アドレスがTLB 1112により物
理アドレスに変換され、内蔵命令キャッシュ51から命令
コードがフェッチされて命令キュー1113, 1114を介して
命令デコード部117 へ転送される。
ッシュ51とは32ビットのアドレスバス (BAバス721)と64
ビットの命令バス (BIバス723)とで結合されており、内
蔵命令キャッシュ51と命令キュー1113, 1114とは 128ビ
ットの ICOUTバス734 で結合されている。バスインタフ
ェイス部110 から出力された命令は内蔵命令キャッシュ
51へ転送される他、内蔵命令キャッシュ51をバイパスし
て2つの命令キュー1113, 1114のいずれか、更には命令
キュー1113, 1114もバイパスして直接命令デコード部11
7 へ転送される場合もある。
常に16entry×4way の構成をとる。命令TLB 1112はJA
バス724 または非ジャンプアドレスバス725 から論理AD
DR1115を経由して転送された論理アドレス (変換前アド
レス) の下位に従ってTLB アドレスタグと物理アドレス
を出力する。TLB アドレスタグと論理アドレスの上位と
が一致すればTLB 1112はヒットしたことになり、出力さ
れた物理アドレスが有効である。TLB アドレスタグと論
理アドレスの上位とが一致しなければTLB 1112はミスし
たことになり、出力された物理アドレスは無効である。
TLB1112がミスした場合はDAT 機構1111によりページン
グを行ってアドレス変換を行い、TLB 1112のエントリを
更新する。
コードをフェッチする場合とデータバスを32ビット幅で
動作させて命令コードをフェッチする場合とは16byte×
128entry×4way の構成で動作し、データバスを64ビッ
ト幅で動作させて命令コードをフェッチする場合は32by
te×128entry×2way の構成で動作する。
非ジャンプアドレスバス725 から論理ADDR1115を経由し
て転送された論理アドレス (変換前アドレス) に従って
キャッシュアドレスタグと命令コードとを出力する。キ
ャッシュアドレスタグはTLB1112から出力された物理ア
ドレスと比較され、TLB 1112がヒットでTLB 1112から出
力された物理アドレスが有効でかつアドレスタグと同じ
値ならば内蔵命令キャッシュ51はヒットとなり、 ICOUT
バス734 を経由して命令コードが命令キュー1113, 1114
あるいは命令デコード部117 へ転送される。TLB 1112が
ミスした場合またはTLB 1112から出力された物理アドレ
スとキャッシュアドレスタグとが不一致の場合は命令キ
ャッシュミスとなる。TLB 1112がヒットで内蔵命令キャ
ッシュ51がミスした場合はバスインタフェイス部110 へ
物理アドレスが出力され、外部のメモリをブロックアク
セスすることにより命令コードがフェッチされ、内蔵命
令キャッシュ51のエントリが更新される。TLB 1112もキ
ャッシュもミスの場合には、キャッシュのエントリは更
新せず、TLB 1112のエントリを更新した後に再びキャッ
シュをアクセスする。
R, IOMASKのコピーがあり、命令用TLB 1112がミスした
場合のページングによるアドレス変換, メモリアクセス
例外あるいはページ不在例外のチェック, 命令用TLB 11
12の更新を行い、更に外部のメモリへの命令アクセスの
物理アドレスがI/O 領域に入るか否かのチェックも行
う。
条件分岐命令に連続する命令コードをプリフェッチして
キューイングし、もう1つは条件分岐命令の分岐先の命
令コードをプリフェッチしてキューイングする。2つの
命令キュー1113, 1114が共に命令をフェッチした状態で
更に条件分岐命令をデコードした場合の分岐先アドレス
は分岐先アドレスレジスタ(Bcc ADDR)1116に保持され、
先行する条件分岐命令が実行されていずれかの命令キュ
ー1113又は1114がクリアされた後にこのアドレスから新
たに命令がフェッチされる。
命令キュー1113, 1114の専用カウンタで計算される。ジ
ャンプが発生した場合には、新たな命令の論理アドレス
がアドレス生成部114, PC生成部113 あるいは整数演算
部115 からJAバス724 により各命令キュー1113, 1114の
カウンタにロードされる。
スヌープ動作中はバスインタフェイス部110 が外部のア
ドレスバス101 上のアドレスをモニタし、図12に示す
物理アドレスバス (BAバス)721で内蔵命令キャッシュ51
へ転送する。バスインタフェイス部110 は本発明のデー
タ処理装置100 自身がライト動作を行ったメモリのアド
レスも内蔵命令キャッシュ51に転送する。
ように2バイト単位の可変長命令であり、基本的には
「2バイトの命令基本部+0〜4バイトのアドレッシン
グ修飾部」を1〜3回反復することにより命令が構成さ
れている。また、浮動小数点命令で倍精度数の即値が指
定された場合にのみ、8バイトのアドレッシング修飾部
が用いられる。
アドレッシングモード指定部とがあり、インデックスア
ドレッシングあるいはメモリ間接アドレッシングが必要
な場合にはアドレッシング修飾部に代えて「2バイトの
多段間接モード指定部+0〜4バイトのアドレッシング
修飾部」が必要なだけ拡張される。また、命令により2
または4バイトの命令固有の拡張部が最後に付く場合も
ある。
可変長フォーマットの命令を効率よく処理するために、
命令デコード段階で1つの命令を1つまたは複数の処理
単位(ステップコード) に分解する。基本的には「2バ
イトの命令基本部+0〜4バイトのアドレッシング修飾
部」または「多段間接モード指定部+アドレッシング修
飾部」のデコード結果が1つのステップコードになり、
命令デコーダは1クロックに1つのステップコードを出
力する。しかし、第1オペランドにアドレッシング修飾
部がない命令あるいは先頭の命令基本部にオペランド指
定子がない命令では1クロックに2つの命令基本部 (32
ビット長) をデコードする。
部のレジスタ間演算命令は先行する命令と並列にデコー
ドされ、2命令を同時にデコードすることもできる。
ド部117 の構成を図14のブロック図に示す。
ジ (Dステージ)32 とDステージ32に引き続くオペラン
ドのアドレス生成ステージ (Aステージ)33 との2つの
パイプラインステージで動作する。
ックは、分岐予測部1171, メインデコーダ1172, 第1サ
ブデコーダ1173, 第2サブデコーダ1174, アドレッシン
グモードデコーダ1175及び拡張データ処理部1176であ
る。また、Aステージで動作する命令デコードブロック
はAステージデコーダ1177及びサブコード転送部1178で
ある。
の条件分岐命令の分岐履歴を保持しており、条件分岐命
令の直前にデコードした命令のPC値の下位アドレスに従
って分岐予測ビットを出力する。
基本部と1ビットの分岐予測ビットとをデコードする。
メインデコーダ1172の出力 (Dコード) はAステージデ
コーダ1177へ転送される。
ダ1174はメインデコーダ1172でデコードされる命令に引
き続く16ビットのレジスタ間演算命令をデコードする。
第1サブデコーダ1173はメインデコーダ1172でデコード
される命令の命令長を16ビットと仮定してIIバス726 の
3バイト目と4バイト目とをデコードする。第2サブデ
コーダ1174はメインデコーダ1172でデコードされる命令
の命令長を32ビットと仮定してIIバス726 の5バイト目
と6バイト目とをデコードする。メインデコーダ1172で
デコードされた命令と両サブデコーダ1173, 1174とでデ
コードされた命令が並列デコード条件を満足する場合、
2つのサブデコーダ1173, 1174の出力の内のいずれか1
つががサブデコード転送部1178に転送される。
ットのオペランド指定あるいは多段間接モードで指定さ
れる命令のアドレッシングモードフィールド部をデコー
ドしてアドレス生成部114 を制御するAコードを出力す
る。
ントあるいは即値などのアドレッシング修飾部を命令コ
ードから取り出し、DISPバス727 を通じてアドレス生成
部114 あるいはPC生成部113 に転送する。拡張データ処
理部1176は一度に最大4バイトのデータしか扱えないた
め、8バイトの即値は2回に分けて転送する。
1172から出力される命令の中間デコード結果であるDコ
ードを詳細にデコードし、マイクロプログラムのエント
リ番地及びパラメータをFROM部119 とIROM部118 とに出
力する。FROM部119 には浮動小数点演算命令のデコード
結果 (FRコード) のみが転送され、IROM部118 には浮動
小数点命令を含む全命令のデコード結果が転送される。
また、Aステージデコーダ1177にはプライオリティエン
コーダが備えられており、LDM, STM等のレジスタリスト
に従って複数のオペランドをレジスタとメモリとの間で
転送する命令を複数の1度に8バイト以下のデータを転
送するメモリ−レジスタ間転送命令に分解する。
3, 1174から出力されたデコード結果をAステージデコ
ーダ1177でデコードされる命令と同期させてIROM部118
に転送する。
ド転送部1178からはオペランドを書き込むレジスタの番
号がアドレス生成部114 のスコアボードレジスタへ転送
され、パイプラインインターロック機構により書き込み
が終了していないレジスタ値あるいはメモリ値を後続命
令がオペランドアドレス計算に使用してRAWデータハ
ザード(Read-after-write data hazard)を起こさないよ
うに制御する。
での先行ジャンプ先アドレスを計算する分岐先アドレス
計算部1131, デコードした命令のPC値を計算するPC計算
部1132, パイプライン中で処理される命令の流れに同期
してPC値を転送するPC転送部1134, サブルーチンからの
プリリターン先アドレスを管理するPCスタック1135から
なる。
ステージ32でPC相対ジャンプまたは絶対アドレスジャン
プが発生した場合にジャンプ先命令のアドレスを計算す
る。この分岐先アドレス計算部1131にはIIバス726 とPI
バス741 とに結合した4つの加算器901, 902, 903, 904
があり、IIバス726の分岐変位フィールドとなり得る4
種類のフィールド(8:15, 24:30, 16:30, 16:46の各ビッ
ト) とPIバス741 から転送されたデコード開始命令アド
レスとを命令デコードと平行して加算する。
命令(BRA, BSR,分岐すると予測したBcc, JMP @(disp, P
C), JSR @(disp, PC))あるいは絶対アドレスジャンプを
行う命令(JMP @abs, JSR @abs)である場合、分岐先アド
レス計算部1131は4つの加算器901, 902, 903, 904の加
算結果とIIバス726 から転送された絶対アドレスとなり
得る3つのフィールド(24:30, 16:30, 16:46の各ビッ
ト) の符号拡張結果との中から正しいジャンプ先アドレ
ス1つを選択してJAバス724 に出力する。また、命令デ
コードと同時に行った4つのジャンプ先アドレス以外に
ブランチする一部の分岐命令(ACB, SCB,分岐すると予測
したFBcc) に対しては、分岐先アドレス計算部1131は命
令デコード後にいずれか1つの加算器901, 902, 903 又
は904 で新たにDISPバス727 から転送される分岐変位と
PC値とを加算してジャンプ先アドレスを求め、JAバス72
4 に出力する。
令(BSR, JSR)からのリターン先アドレスのコピーを16エ
ントリのスタックに保持しており、サブルーチンリター
ン命令(RTS, EXITD)がデコードされた場合にリターン先
アドレスをJAバス724 に出力する。PCスタック1135では
サブルーチンジャンプ命令が実行されると、リターン先
アドレスがS1バス701 から転送されプッシュされる。タ
スクスイッチによりスタックが切り替えられたり、ある
いは16レベル以上のサブルーチンのネスティングなどが
発生するとPCスタック1135からJAバス724 に出力される
リターン先アドレスは正しいリターン先アドレスではな
くなる。このためサブルーチンリターン命令がパイプラ
インの命令実行ステージ35に到達した時点で正しいリタ
ーン先アドレスとJAバス724 にPCスタック1135から読み
出したプリリターンアドレスを再びS1バス701 へ読み出
して比較する。
スタ(TPC, ATPC, DPC)906 とからなり、命令デコード部
117 でデコードする命令のPC値を計算する。PC値の計算
は1サイクル前にデコードした命令のアドレスに命令デ
コード部117 で消費した命令コード長を加算することに
より行われる。ジャンプ命令あるいはEIT(例外、割り込
み、トラップ) により命令実行のシーケンスが変更され
た場合は、JAバス724からジャンプ先命令のアドレスが
転送されて来る。PC計算部1132の計算結果は命令のデコ
ード結果と共にパイプラインの流れに同期してPC転送部
1134へ出力される他、PC相対アドレス計算のためIXバス
728 からアドレス生成部114 に転送され、また命令アド
レスの計算のためP1バス741 から分岐先アドレス計算部
1131に転送される。
置100 の各パイプラインステージに対応する多数のPC保
持用レジスタがある。PC計算部1132で計算された命令の
先頭アドレスであるPC値は本発明のデータ処理装置100
の各パイプラインステージで処理されるステップコード
と共にPC転送部1134のレジスタ中を転送される。PC転送
部1134ではデバッグサポートのための命令アドレスブレ
イクあるいはトレース動作の起動のために、転送される
PC値と命令ブレイクポイントアドレス(IBA0, IBA1)の値
あるいはトリガ開始命令アドレス(TGIA)の値との比較動
作も行う。
シングモードデコーダ1175から出力されたオペランドの
アドレス生成に関係する制御情報によりハードワイヤー
ド制御され、オペランドのアドレスを計算する。また、
命令デコード部117 では先行ジャンプを行わないレジス
タ間接アドレッシングあるいはメモリ間接アドレッシン
グのジャンプ命令による先行ジャンプ処理、更には分岐
しないと予測した条件ジャンプ命令の分岐先アドレスの
計算及びサブルーチンジャンプ命令の戻り先アドレスの
計算も行う。
ドレス生成部114 の構成を示すブロック図である。
レッシング(@SP+) とスタックプッシュアドレッシング
(@-SP)とが連続して発生してもパイプラインインターロ
ックの発生なしに命令を処理するためのオペランドアド
レス生成部専用スタックポインタ(ASP)911と、オペラン
ドアクセス段階で更新したSPの値を命令の流れに同期し
てパイプライン中で転送するレジスタ群 (SP転送部)912
とからなるSP先行更新部1141と、@SP+あるいは@-SP以外
のアドレッシングモードに従って3入力加算器923 でオ
ペランドのアドレス計算を行うアドレス計算部1142とが
ある。
れている部分がアドレス生成部114に、IU内と記されて
いる部分が整数演算部115 にある。
プレースメント値は命令デコード部117 からDISPバス72
7 によりアドレス計算部1142に転送されてDISPレジスタ
921に保持される。サブルーチンジャンプ命令の戻り先
番地あるいは分岐すると予測した条件分岐命令の非分岐
側命令アドレスの計算のためにDISPレジスタ921 には命
令デコード部117 から転送された命令コード長 (補正
値) を入力することも出来る。
対しては整数演算部115 のレジスタからIXバス728 で転
送された値が INDEXレジスタ922 に入力されれ保持され
る。INDEXレジスタ922 では入力された値の1, 2, 4, 8
倍を3入力加算器923 へ出力することが出来る。
レッシングモードまでのアドレス計算結果を次の多段間
接モードのベースアドレスとする場合は3入力加算器92
3 の出力がAOレジスタ924 からBASEレジスタ925 へ転送
される。
スタベース多段間接モード及びPCベース多段間接モード
では、ベースアドレスとして指定された汎用レジスタあ
るいはPCの値がIXバス728 からBASEレジスタ925 にロー
ドされる。また、メモリ間接アドレッシングでは3入力
加算器923 でのアドレス計算結果がAOレジスタ924 から
AAバス731 へ出力されることにより、オペランドアクセ
ス部112 からDDバス710 を通じてBASE ADDR 913 にアド
レスがフェッチされ、AGバス733 を経由してAOレジスタ
924 に目的アドレスがフェッチされる。DISPレジスタ92
1, INDEXレジスタ922, BASE レジスタ925 にそれぞれ保
持された3つの値は3入力加算器923 で加算されてAOレ
ジスタ924 に出力される。
AAバス731 に出力されオペランドをアクセスするための
アドレスとして使用される。また、AOレジスタ924 から
出力されたオペランドアドレス自体はOA転送部926 へ渡
され、パイプライン中の命令の流れに同期してOA転送部
26で管理される。4バイト以下の即値も命令デコード部
117 からDISPレジスタ921, 3入力加算器923, AOレジ
スタ924 を順に経由してOA転送部926 へ入力され、オペ
ランドアドレスと同様にパイプライン中の命令の流れに
同期してOA転送部926 で管理される。
いられた場合、その上位32ビットはAOレジスタ924 から
Imm転送部914 へ入力されてOA転送部926 の下位32ビッ
トとペアにして管理される。
グ以外のジャンプ命令のジャンプ先アドレスの計算結果
はAOバス733 からJAバス724 に出力され、パイプライン
の第3ステージであるアドレス生成段階での先行ジャン
プに使用される。また、分岐しないと予測した条件分岐
命令の分岐先アドレスや分岐すると予測した条件分岐命
令の非分岐先アドレスの計算結果はAOバス733 からJAバ
ス724 に出力され、分岐予測が間違っていた場合のバッ
クアップ用命令キューの命令プリフェッチ先アドレスと
して使用される。
シングモードに対して専用の作業用スタックポインタで
あるASP911でSP値の更新を行い、更新したSP値をパイプ
ライン中の命令の流れに同期してSP転送部912 内で管理
する。従って、ASP911は1, 2, 4, 8のインクリメントと
ディクリメント機能を有する。@SP+アドレッシングモー
ドにおいてはASP911の値をIXバス728, BASEレジスタ92
5,、3入力加算器923,AOレジスタ924 を順に経由してAA
バス731 に出力してオペランドをアクセスする。また、
アドレス計算部1142がSPの値を参照する際にはIXバス72
8 を経由してASP911の値を参照する。
@SP+あるいは@-SPアドレッシングモードにおいてSP値を
更新する命令に引き続く命令はパイプラインストールな
しにSP値を用いたアドレス計算を行うことができる。命
令実行段階でSPに書き込みが行われた場合、同時にD1バ
ス711 またはD3バス713 から更新する値がASP911とSP転
送部912 との命令実行段階作業用スタックポインタ(CS
P) に書き込まれる。命令実行段階でジャンプが発生し
てパイプラインがクリアされた場合にはCSP の値がASP9
11へ転送される。
成図に示す。
ドレスのアドレス変換機構(DAT機構)1121, 8KBのデータ
バッファ52, 64エントリのデータ用TLB1122, 2エントリ
のオペランドプリフェッチキュー(SD, SDA)1123, 1124,
3エントリのストアバッファ(WBDATA, WBPA)1125, 112
6, 整数演算部115 とのインタフェイス回路(AA, DDR,DD
W)1127, 1128, 1129, オペランドブレイクチェック回路
(OBA)1130 等にて構成されている。
アドレスを出力するためのレジスタである。 DDRレジス
タ1128は整数演算部115 へリードデータを転送するため
のレジスタである。 DDW1129は整数演算部115 がライト
データを出力するためのレジスタである。BaseADDRレジ
スタ913 はオペランドアドレス生成部114 へメモリ間接
アドレスを転送するためのレジスタである。
×4way である。
R, IOMASKの各レジスタがあり、データ用TLB1122 がミ
スした場合のページングによるアドレス変換, メモリア
クセス関連EIT のチェック及びデータ用TLB1122 の更新
を行う。また、メモリアクセスがI/O 領域に入るか否か
のチェックも行う。
り、32byte×64entry ×4way の内蔵データキャッシュ
として、又は8KBのコンテキスト退避用メモリの内のい
ずれか1つとして動作する。
レス生成部114 あるいは整数演算部115 のアドレスレジ
スタであるAA部から出力されたリードすべきデータの論
理アドレスをTLB1122 で物理アドレスに変換し、データ
キャッシュからDDバス710 を通じてデータをフェッチし
てBaseADDRレジスタ913 あるいはSDレジスタ1123,DDRレ
ジスタ1128へ転送する。SDレジスタ1123へデータをフェ
ッチする場合はストアオペランドとのオーバーラップチ
ェックのためにフェッチデータの8バイト境界ごとの物
理アドレスを SDAレジスタ1124に転送して保持する。
れた論理アドレス (変換前アドレス) の下位11ビット
(物理アドレスの下位11ビットと同じ) に従ってキャッ
シュアドレスタグとデータを出力する。キャッシュアド
レスタグはTLB1122 から出力された物理アドレスと比較
され、TLB1122 がヒットでTLB1122 から出力された物理
アドレスが有効でありかつ両者が同じ値ならばデータキ
ャッシュはヒットとなる。TLB1122 がミスした場合また
はTLB1122 から出力された物理アドレスとキャッシュア
ドレスタグとが不一致ならばデータキャッシュミスとな
る。
スした場合はバスインタフェイス部110 へ物理アドレス
を出力し、外部のメモリをブロックアクセスしてデータ
をフェッチし、データキャッシュのエントリを更新す
る。
データを1回のブロックリードでフェッチしてキャッシ
ュに登録する。4バイトデータバスモードでは16バイト
のブロックリードを2回行って32バイトのデータをフェ
ッチし、キャッシュに登録する。ブロックリードはオペ
ランドとして必要なデータからアドレスを昇順にラップ
アラウンドして行われ、オペランドとして必要なデータ
はデータキャッシュへの登録と平行してBaseADDRレジス
タ913,SDレジスタ1123または DDRレジスタ1128に転送す
る。
ッシュのエントリは更新せず、TLB1122 のエントリを更
新した後再びキャッシュをアクセスする。
ら出力されたストアすべきデータの論理アドレスをTLB1
122 で物理アドレスに変換し、物理アドレスをストアバ
ッファアドレス部(WBPA)1126を介してバスインタフェイ
ス部110 に転送し、DDW1129から出力されたデータをDD
バス710, ストアバッファデータ部(WBD)1125 を介して
バスインタフェイス部110 に転送する。
動作させてデータ用TLB1122 のエントリを更新した後、
再びTLB1122 をアクセスする。TLB1122 がヒットした場
合、DDW1129 からストアバッファへの転送時にSD1123あ
るいはデータキャッシュにストアデータとオーバーラッ
プするデータが保持されている場合にはその内容を書き
換える。
4 で、データキャッシュのオーバーラップチェックはキ
ャッシュ内のタグで、両方とも物理アドレスをもとに行
われる。なお、データキャッシュはライトスルー方式で
あり、ライト動作でミスした(オーバーラップがない)
ときキャッシュの内容は変化しない。
物理アドレスを出力してセクションテーブルエントリあ
るいはページテーブルエントリをアクセスしてアドレス
変換を行う。 TLB1122ではデータライトアクセスのヒッ
トにより各エントリのMフラグ (変更状態) が変更され
た際にメモリ中のMフラグも即座に変更する。
のアドレスとデータの転送中もデータキャッシュはオペ
ランドアクセス部112 その他のリードアクセスあるいは
ライトアクセスを受け付ける。従って、ストアバッファ
に未処理のデータが存在してもTLB1122 とキャッシュと
がヒットする限りオペランドアクセス部112 は後続の処
理を続けることができる。
アドレッシングのためのリード, TLB ミスによるリード
あるいはライトは全てI/O 領域に入るか否かのチェック
が行われる。 I/O領域に対するメモリ間接アクセスはア
ドレス変換例外となる。また、 I/O領域からのオペラン
ドプリフェッチはパイプライン中の先行命令の実行が全
て完了するまで抑止される。また、 TLB1122あるいはキ
ャッシュがミスした場合は、条件分岐命令(Bcc, ACB, S
CB) に引き続く命令のオペランドプリフェッチのための
メモリアクセスも先行する条件分岐命令の実行が完了す
るまで抑止される。
プ動作中はバスインタフェイス部110 から無効化すべき
データの物理アドレスがオペランドアクセス部112 へ転
送される。データキャッシュはこのアドレスがヒットす
る32バイトブロックのデータをすべて無効化する。
イクロプログラムルーチンが格納されているマイクロRO
M(IROM),マイクロシーケンサ及びマイクロ命令デコーダ
が含まれる。IROM部118 では、命令デコード部117 から
出力されたRコードとサブRコードに従ってマイクロプ
ログラムにより整数演算部115 の動作を制御する。マイ
クロシーケンサは命令実行に関するマイクロプログラム
実行のためのシーケンス処理の他に、例外, 割込及びト
ラップ(EIT) の受付けと、各EIT に対応するマイクロプ
ログラムのシーケンス処理も行う。
示す。
トリ番地(RADDR0:1)とパラメータ(RPARM0:1)とで構成さ
れ、2エントリのキューになっている。サブRコードは
Rコードのパラメータの一部として扱われる。
イクロプログラムルーチンのエントリ番地を出力するデ
コーダである。
けた場合に、命令に依存した EIT前処理を行うマイクロ
プログラムルーチンのエントリ番地を保持するためのレ
ジスタであり、任意長ビットフィールド命令又はストリ
ング操作命令などのような命令実行途中でEIT を受け付
ける命令を実行する際に命令依存の番地がセットされ
る。
ックであり、マイクロプログラムのサブルーチンからの
戻り先番地を保持する。その戻り先番地としては URINC
1185からセットされるサブルーチンコール命令の次番地
と、マイクロプログラムでURDR1186から明示的にセット
される番地とが可能である。
ある。 URINC1185はUNAR187 の値をインクリメントする
インクリメンタである。URDR1186はマイクロ命令の出力
ラッチである。条件ジャンプをディレイスロットなしで
行うために、マクロプログラムのジャンプ時はマイクロ
ROM から4ワードが一度に読み出され、 MUX1189でその
内の1つを選択するようになっている。
KワードのROM である。また、マイクロ (μ) 命令デコ
ーダ1180はURDR1186から出力されるマイクロ命令と入力
ラッチ1181のRPARM0:1から出力されるパラメータとをデ
コードして整数演算部115 の制御信号を出力する。
ードされた場合は、その内の先行命令のデコード結果は
Rコードとして出力され、後続命令のデコード結果はサ
ブRコードとして入力ラッチ1181に保持されるRPARM 中
に含まれてマイクロ命令デコーダに入力される。サブR
コードは先行命令の最終マイクロ命令と共にマイクロ命
令デコーダによりデコードされ、サブALU またはサブバ
レルシフタで実行される。
ロックに1度読み出され、1つのマイクロ命令で1つの
レジスタ間演算が行われる。従って、転送, 比較, 加
算, 減算, 論理演算などの基本命令は1クロックで終了
する。基本命令のパラメータ(RPARM) にサブRコードが
含まれる場合には、1クロックにRコードに対する基本
命令とサブRコードに対するレジスタ間演算命令とが実
行され、命令実行速度が2命令/クロックとなる。
PREEIT1183の値がUNAR87に転送され、マイクロプルグラ
ムがPREEIT1183に保持されたマイクロ番地へジャンプし
てEIT の前処理を行い、その後EITDEC1182から出力され
る各EIT の処理ルーチンにジャンプする。命令完了段階
でEIT を受け付けた場合は、PREEIT1183は使用されず、
直接EITDEC1182から出力されるEIT 処理ルーチンへジャ
ンプする。
々のマイクロプログラムルーチンが格納されているマイ
クロROM(FROM), マイクロシーケンサ及びマイクロ命令
デコーダなどが含まれる。FROM部119 では、浮動小数点
演算の他、IROM部118 と協調して整数乗算, 整数除算及
び整数剰余の各演算(MUL, MULU, MULX,DIV, DIVU, DIV
X, REM, REMU命令) 、更にはコンテキストスイッチ命令
などの浮動小数点演算部116 のレジスタを操作する命令
が実行される。
がデコードされた場合は、そのデコード結果はIROM部11
8 とFROM部119 とへ同時に出力され、最初の1マイクロ
ステップは整数演算部115 と浮動小数点演算部116 とが
協調して動作する。第2マイクロステップ以降はFROM部
119 のマイクロシーケンサとIROM部118 のマイクロシー
ケンサとが独立に制御され、浮動小数点演算部116 は引
き続く処理を行い、整数演算部115 は次の整数演算命令
を実行するため、両演算部が並列動作する。浮動小数点
演算部116 を使用する整数演算命令またはコンテキスト
スイッチ命令がデコードされた場合は、そのデコード結
果はIROM部118 とFROM部119とへ同時に出力され、整数
演算部115 と浮動小数点演算部116 とが全ステップで協
調して動作する。
を示す。FRコードはIROM部118 の入力ラッチ1181のRADD
R0:1とRPARH0:1からラッチ1191のFRADDRとFRPARMとに入
力される。FRADDRとFRPARMとは浮動小数点演算命令のオ
ペランドに非正規化数が入力されたり、浮動小数点演算
トラップ(FET) が検出された場合にマイクロプログラム
のエントリアドレスとそのパラメータとを一時退避して
おくためのラッチ1191である。
類に応じて対応するマイクロプログラムルーチンのエン
トリ番地を出力するデコーダである。FCALL1192は FET
に対する EIT処理が起動される場合に、IROM部118 がFR
OM部119 を起動して浮動小数点演算部116 を動作させる
ためのエントリアドレスを格納するレジスタである。
ある。また、 MRINC1194はMNAR1195の値をインクリメン
トするインクリメンタである。MRDR1196はマイクロ命令
の出力ラッチである。マイクロ命令の条件ジャンプをデ
ィレイスロットなしで行うために、マクロプログラムの
ジャンプ時はマイクロROM 1197から4ワードを一度に読
み出し、MUX 1198でその内の1つを選択するようになっ
ている。MNAR1195, MRINC1194, MRDR1196はそれぞれIR
OM部118 のUNAR1187, URINC1185, URDR1186 に相当す
る。
ワードのROM である。また、マイクロ命令デコーダ1199
はMRDR1196から出力されるマイクロ命令とラッチ1191の
FRPARMから出力されるパラメータとをデコードして浮動
小数点演算部116 の制御信号を出力する。
ロックに1度読み出され、1つの浮動小数点演算は最小
2マイクロ命令で完了する。マイクロシーケンサはマイ
クロプログラムで示されるシーケンス処理の他、浮動小
数点演算に関係するトラップの処理も行う。 FETが検出
された場合には、FETDEC1193から FETの種類に対応する
FET処理ルーチンのエントリ番地が出力されてMNAR1195
に転送される。マスクされた FETに対しては FET処理ル
ーチンでデフォルトの処理がなされ、 EITは起動されな
い。一方、マスクされていない FETに対しては FET処理
ルーチンがIROM部118 へ EIT処理を要求する。IROM部11
8 は FETに対する EITがFROM部119 から要求された場
合、 PSWのFEビットの値に従って命令の切れ目で即座に
EITを起動するか、または次の浮動小数点演算命令の直
前でEIT を起動する。
されているマイクロプログラムにより制御され、各整数
演算命令の機能を実現するために必要な演算を整数演算
部115 の内部にあるレジスタファイルと演算器とで実行
する。
ック図である。
ージ35でジャンプを実行する際にジャンプ先アドレスを
格納するレジスタである。 EITを検出したりあるいは分
岐予測が外れた条件分岐命令を実行した場合、マイクロ
プログラムにより本レジスタにジャンプ先アドレスを入
力した上で実行ステージジャンプを行う。実行ステージ
ジャンプではパイプラインがフラッシュされるため、再
度パイプラインを充填するために3〜4クロックの無駄
時間が発生する。
とがあり、主演算器1158には主ALU,主バレルシフタ, プ
ライオリティエンコーダ, カウンタなどがある。副演算
器1152と主演算器1158とは汎用レジスタ, 作業用レジス
タとそれぞれ3本の32ビットバスで結合されており、2
つのレジスタ間演算を同時に実行することが可能であ
る。
算器1158用のバスであり、S3, S4,D3の各バス703, 704,
713 が副演算器1152用のバスである。命令デコード部1
17で同時にデコードされた2つの命令は副演算器1152と
主演算器1158とで同時に実行される。また、高機能命令
を実行する際にマイクロプログラムにより副演算器1152
と主演算器1158とを並列に動作させることにより、8バ
イトデータを一度に処理したり、2つのオペレーション
を並列に行ったりすることも可能である。
オペランドアクセス部112 と通信を行うためのレジスタ
であり、AA部1153がアドレスを、DD部1154がデータをそ
れぞれ扱う。AA部1153には2つのインクリメントデクリ
メント機能付きアドレスレジスタと、ベースアドレスと
ビットオフセットから操作対象のビットのバイトアドレ
スを計算するビットアドレス計算回路とがある。DD部11
54には8バイトのデータレジスタがあり、DDバス710 に
よりオペランドアクセス部112 と8バイト単位にデータ
をやりとりする。
用スタックポインタとリングごとのスタックポインタ(S
PI, SP0, SP1, SP2, SP3) とがある。命令実行ステージ
35のSP値はアドレス生成部(AGU)114から命令と同期して
パイプライン中を転送されてくる。
種の制御レジスタと定数ROM とがある。
であるR15 以外の14本の汎用レジスタがある。汎用レジ
スタは主演算器1158と副演算器1152とに同時に2つずつ
のデータを出力し、2つの演算結果を同時に書き込むた
め4つの出力ポートと2つの入力ポートとがある。更
に、汎用レジスタにはオペランドのアドレス計算のため
にデータをアドレス生成部114 に転送するIXバス728 に
接続するもう1つの出力ポートがある。
用レジスタと同じく主演算器1158と副演算1152とに接続
するため4つの出力ポートと2つの入力ポートがある。
で操作される整数演算部115 の周辺の構成を示すブロッ
ク図である。
るいはEIT 処理のために、S1, S2,D1, D3バス701, 702,
711, 713を通じて各周辺ブロックをアクセスする。
てくる。 EITにより実行中命令のPC値あるいは次命令の
PC値が必要な場合にはPC転送部1134からそれらの値が読
み出される。
る際にプリリターンアドレスを読み出してメモリからフ
ェッチした真のリターン先アドレスとの比較を行い、プ
リリターンが正しいアドレスへ行われたか否かをチェッ
クする。
計算されたオペランドアドレスあるいは即値が読み出さ
れる。また、 Imm転送部914 からは倍精度の浮動小数点
即値オペランドの上位32ビットが読み出されてFPU へ転
送される。ASP911はオペランド生成部の作業用スタック
ポインタであり、命令の実行あるいは EIT処理によりス
タックポインタが書換えられた場合に図20のSP部1154
のスタックポインタと同時に書き換えられる。
ランドアクセス部112 両方のDAT 機構を含んでいる。 D
AT機構1006にはメモリアクセス関連のレジスタ(LSID, S
ATB,UATB, IOADDR, IOMASK)があり、マイクロプログラ
ムでこれらのレジスタをアクセスする。
力される。32ビット以下のプリフェッチオペランドはS1
バス701 またはS2バス702 のいずれのバスへも出力する
ことが可能である。64ビットのプリフェッチオペランド
の出力に際してはS1, S2バス01, 702 を連結して使用す
る。
のアドレスとデータとを保持するレジスタであり、スト
アバッファで EITが発生した場合にその内容がマイクロ
プログラムで読み出される。
格納されたマイクロプログラムにより制御され、各浮動
小数点演算命令の機能を実現するために必要な演算を浮
動小数点演算部116 の内部にあるレジスタファイルと演
算器とで実行する。浮動小数点演算部116 は演算結果を
浮動小数点レジスタに格納する演算を行う場合、FROM部
119 の制御により整数演算部115 と独立に動作する。ま
た、浮動小数点演算部116 では浮動小数点演算の他、整
数乗算, 整数除算及び整数剰余の演算も行う。
すブロック図である。浮動小数点演算部116 には、浮動
小数点ALU(FALU)1165, 乗算回路(FMUL)1164及び除算回
路(FDIV)1163の演算器があり、浮動小数点レジスタ部11
66とFS1, FS2, FDO の3つの64ビットバスで結合してい
る。
る場合に加算と乗算とを並列に実行するために、FS1, F
S2, FDO バス751, 752, 750 以外に FR0バス760 または
FR1バス761 と専用の64ビットバスで結合している。
データをバイパスさせる機能を有する他、各演算器への
入力オペランドが非正規化数, qNaN、sNaN、±∞である
か否かのチェックを行う。また、 FPASS1167は各演算器
での演算の結果、浮動小数点演算トラップ(FET) が発生
して EITを起動する場合に備えて、各演算器への入力オ
ペランドのコピーを保持する動作も行う。
2, 713またはS1, D1バス701, 711により整数演算部115
と結合しており、LDC, STCまたはFSTFSW命令を実行する
場合に整数演算部115 からアクセスされる。
7 は入力オペランドの一方をオペランドアクセス部112,
汎用レジスタあるいは即値保持用レジスタ (OA転送部
926,Imm 転送部914)から転送するためS1バス701, S2バ
ス702 からの入力経路を有し、また演算結果をオペラン
ドアクセス部112 あるいは汎用レジスタへ転送するため
にD1バス711, D3バス713 への出力経路を有する。 64
ビットのデータを転送する場合は、S1, S2バス701, 70
2、D1, D3バス711, 713はそれぞれ連結して動作し、32
ビット×2=64ビットのバスとなる。浮動小数点演算部
116 がオペランドアクセス部112 との間でメモリオペラ
ンドを入出力する場合、オペランドはすべて整数演算部
115 のDD部1159を経由して転送される。またアドレスは
すべて整数演算部115 が出力する。
はそれぞれ別々のマイクロプロググラムで制御されて独
立に命令を処理することが可能である。しかし、本発明
のデータ処理装置100 が浮動小数点演算命令を実行する
場合は、その浮動小数点演算命令に対する最初のマイク
ロステップはIROM部118 とFROM部119 とからそれぞれマ
イクロ命令が出力され、そのマイクロ命令に従って整数
演算部115 と浮動小数点演算部116 とが協調して動作す
る。この際、整数演算部115 では浮動小数点演算命令に
対するPC値の専用レジスタへの退避、更に必要であれば
スタックポインタの更新あるいはS1, S2バス701, 702で
の即値, メモリオペランドの転送を行う。このため、整
数演算部115 が整数演算を実行中の場合には、たとえ浮
動小数点演算部116 が次の浮動小数点演算命令を実行開
始可能な状態であっても、整数演算部115 が整数演算を
終了するまでの間は、次の浮動小数点演算命令の実行は
開始されない。
タに書き込む場合、第2マイクロステップからは浮動小
数点演算部116 と整数演算部115 とは独立に動作し、浮
動小数点演算部116 は浮動小数点命令の実行を継続し、
整数演算部115 は次の整数演算を実行する。しかし、浮
動小数点演算の結果を汎用レジスタあるいはメモリに書
き込む場合、整数演算部115 は第2マイクロステップ以
降も浮動小数点演算部116 と協調して動作し、その浮動
小数点演算命令の実行完了までの間は次の命令の処理を
行うことはない。整数乗算命令, 整数除算命令などに際
して整数演算部115 が浮動小数点演算部116 の演算器を
使用して結果を汎用レジスタ, メモリに書き込む場合
も、整数演算部115 と浮動小数点演算部116 とは協調し
て動作し、命令は逐次的に実行される。
を図23の模式図に示す。
テージ (IFステージ) 31, 命令のデコードを行うデコー
ドステージ (Dステージ) 32, オペランドのアドレス生
成を行うアドレス生成ステージ (Aステージ) 33, μRO
M アクセス (特にRステージという) とメモリオペラン
ドのプリフェッチ (特にOFステージという) とを行うオ
ペランドフェッチステージ (Fステージ) 34, 命令の実
行を行う実行ステージ(Eステージ) 35, メモリオペラ
ンドのストアを行うストアステージ (Sステージ)36の
6段構成でパイプライン処理を行う。
ッチキューが、Fステージ34には2段のオペランドプリ
フェッチキューが、Sステージ36には3段のストアバッ
ファがそれぞれある。
し、理論上は6つのステージが完全に独立動作する。S
ステージ36以外の各ステージは1回の処理を最小1クロ
ックで行う。Sステージ36は1回のオペランドストア処
理を最小2クロックで行う。従ってメモリオペランドの
ストア処理がない場合、理想的には1クロックごとに次
々とパイプライン処理が進行する。
メモリ間演, メモリ間接アドレッシングなどの基本パイ
プライン処理1回のみでは処理が行えない命令がある
が、これらの処理に対してもなるべく均衡したパイプラ
イン処理が行えるように構成されている。また本発明の
データ処理装置100では、複数のメモリオペランドを有
する命令に対してはメモリオペランドの数に基づいてデ
コード段階で1つの命令を複数のパイプライン処理単位
(ステップコード) に分解してパイプライン処理する。
コードには図23に示したように便宜上名前が付けられ
ている。また各ステップコードはオペレーションコード
に関する処理を行い、μROM のエントリ番地あるいはE
ステージ35に対するパラメータなどになる系列と、Eス
テージ35の処理対象のオペランドになる系列との2系列
がある。
の間では処理中命令のプログラムカウンタ値が順次受け
渡され、Aステージ33からEステージ35までの間ではス
タックポインタ値が受け渡される。
情報は命令コードそのものである。Dステージ32からA
ステージ33に渡される情報は命令で指定された演算に関
する情報 (Dコード41という) と、オペランドのアドレ
ス生成に関する情報 (Aコード42という) と命令のプロ
グラムカウンタ値の3つである。Aステージ33からFス
テージ34に渡される情報はマイクロプログラムルーチン
のエントリ番地, マイクロプログラムへのパラメータな
どを含むRコード43、オペランドのアドレスとアクセス
方法指示情報などを含むFコード44、それに処理中命令
のプログラムカウンタ値とスタックポインタ値との4つ
である。Fステージ34からEステージ35に渡される情報
は演算制御情報とリテラルなどを含むEコード45と、オ
ペランド, オペランドアドレスなどを含むSコード46
と、それに処理中命令のプログラムカウンタ値とスタッ
クポインタ値との4つである。Sコード46はアドレスと
データとからなる。Eステージ35からSステージ36に渡
される情報はストアすべき演算結果であるWコード47と
その演算結果を出力した命令のプログラムカウンタ値と
の2つである。Wコード47はアドレスとデータとからな
る。
テージである。IF, D, A, Fステージ31, 32, 33, 34
は命令実行のための前処理を行うステージであり、命令
コード及びオペランドの読み出しは行うが、メモリ及び
レジスタの内容の変更は一切行わない。このため、これ
らの各ステージでの処理は途中でキャンセル可能であ
る。
チ部111 が動作する。IFステージ31では内蔵命令キャッ
シュ51あるいは外部から命令をフェッチし、命令キュー
に入力してDステージ32に対して2〜8バイト単位で命
令コードを出力する。
51がヒットした場合は整置された16バイト単位で、ミス
した場合は整置された4バイト単位で行われる。命令キ
ューは条件分岐命令に引き続く命令と分岐先命令との両
方をフェッチするために2個準備されている。
ッチする場合は整置された4バイトにつき最小2クロッ
クを要する。バーストモードでは16バイトにつき最小5
クロックを要する。命令を外部からフェッチする際は、
フェッチ先の物理アドレスがI/O 領域であるか否かのチ
ェックも行う。なお、 I/O領域からの命令フェッチは禁
止されおり、 EITとなる。
整置された16バイトにつき1クロックで命令がフェッチ
される。命令キューの出力単位は2バイトごとに可変で
あり、1クロックの間に最大8バイトまで出力できる。
命令の論理アドレスの物理アドレスへの変換, 内蔵命令
キャッシュ51及び命令用TLB の制御, プリフェッチ先命
令アドレスの管理及び命令キューの制御もIFステージ31
で行われる。
ド部117 とPC生成部113 とが動作する。
れた命令のオペレーションコードの前段デコードとアド
レッシングモードのデコードとを行う。
命令デコード部117 のメインデコーダ1172, 第1サブデ
コーダ1173, 第2サブデコーダ1174, アドレッシングモ
ードデコーダ1175, 拡張データ処理部1176が動作する。
回のデコード処理で0〜8バイトの命令コードが消費さ
れる (但し、サブルーチンリターン命令の復帰先アドレ
スを含むステップコードの出力処理などでは命令コード
を消費しない) 。2つのメモリオペランドを有する命令
あるいは多段間接モードを使用する命令などのように1
回のデコード処理ではデコードできない命令はこのDス
テージ32でステップコードに分解される。このため、命
令全体のデコードが完了しなくても、各クロックのデコ
ード処理でDコード41とAコード42と命令のPC値とが出
力される。
費した命令長に基づいてPC生成部113 が各命令のPC値を
計算する。条件分岐命令, 絶対アドレスまたはPC相対ア
ドレスへのジャンプ命令(サブルーチンジャンプ命令を
含む) 及びサブルーチンリターン命令に対してはPC生成
部113 で先行ジャンプ処理 (Dステージジャンプ) を行
う。
ャンプを行った場合は、IFステージ31に対して現在使用
中の命令キューの内容をキャンセルした上でジャンプ先
から命令をフェッチしてキューに入力することを指示す
る。分岐すると予測される条件分岐命令をデコードした
場合は、IFステージ31に対して現在使用中のキューはそ
のままにしておき、もう一方の命令キューに分岐先から
命令をフェッチして入力することを要求する。
ドレス計算情報であるAコード42とオペレーションコー
ドの中間デコード結果であるDコード41及び命令のPC値
とを出力する。
ド部117 とアドレス生成部114 とが動作する。
たDコード41をデコードしてRコード43を出力し、Aコ
ード42に従ってオペランドアドレスの生成を行ってFコ
ード44を出力する。Dステージ32から転送されてきたPC
値はそのままFステージ34へ転送される。また、Aステ
ージ33は命令実行ステージ35とは独立に処理中命令のス
タックポインタ値を計算してFステージ34へ転送する。
令デコード部117 のAステージデコーダ1177とサブコー
ド転送部1178とが動作する。Dステージ32から出力され
たオペレーションコードの中間デコード結果は更に詳細
にデコードされ、μROM のエントリアドレスとマイクロ
プログラムへのパラメータとがRコード43として出力さ
れる。
オペランドのアドレスを生成する。
モードに対してはIXバス728 を通じて汎用レジスタの値
を参照する。ディスプレースメント値, 即値, 絶対アド
レス値はAコード42の一部として命令デコード部117 か
らDISPバス727 を通じて転送されてくる。メモリ間接モ
ードに対してはオペランドアクセス部112 がアクセスさ
れる。PC相対モードではDステージ32から転送されて来
た処理中命令のPC値(APC) が用いられる。スタックポッ
プモードあるいはプッシュモードに対しては専用の作業
用スタックポインタでSP値が計算される。計算されたSP
値はFコード44と共にFステージ34へ出力される。
ャンプなどのような絶対ジャンプとPC相対ジャンプ以外
のジャンプ命令に対しては、アドレス生成部114 が飛び
先アドレスを計算して先行ジャンプ処理 (Aステージジ
ャンプ) を行う。分岐すると予測した条件分岐命令に対
してはDISPバス727 から転送されて来た命令長とAPC値
とが加算されてその分岐命令の次命令のアドレスが計算
される。
スの計算もDISPバス727 から転送されて来た命令長と A
PC値とを加算することにより計算される。分岐しないと
予測した条件分岐命令に対しては分岐先アドレスが計算
されて命令フェッチ部111 へ転送され、現在使用中でな
い方の命令キューに対してその分岐先アドレスから命令
フェッチを行うことが指示される。
用するためのレジスタ及びメモリがコンフリクトしてデ
ータハザードが発生した場合に、それを検出してパイプ
ラインをインターロックするためのスコアボードレジス
タがある。
へのデスティネーションオペランドの登録 (書き込み予
約) 及びアドレス生成のためにレジスタまたはメモリか
らデータを読み出す際のデータハザードのチェックも行
う。スコアボードレジスタでは、16個の汎用レジスタに
対して16個のフラグが、メモリに対して1個のフラグが
それぞれ準備されており、上述の登録とコンフリクトチ
ェックとに使用される。
モードを使用しているため、Dステージ32で複数のステ
ップコードに分解された命令はAステージ33でオペラン
ドのアドレスが計算されて1つのステップコードに縮退
する。
ジスタ番号を示す命令(LDM, STM, ENTER, EXITD, FLDM,
FSTM)はAステージ33で複数のステップコードに分解さ
れる。これらの命令はAステージ33で1つまたは2つの
レジスタのデータを転送する命令に分解されてF, E,
Sステージ34, 35, 36でパイプライン処理される。分解
された各ステップコードにより転送すべきレジスタ番号
は、レジスタリストをAステージデコーダ1177中に備え
られているプライオリティエンコーダでエンコードして
得られる。
部118, FROM部119 とオペランドアクセス部112 とが動
作する。
9 とでのμROM アクセス動作とオペランドアクセス部11
2 の動作とは独立した制御のもとで行われる。これら2
つの動作を別々に扱う場合、IROM部118 とFROM部119 と
のμROM アクセス処理を特にRステージ37といい、オペ
ランドアクセス部112 の処理を特にOFステージ38とい
う。
コード45を出力する。OFステージ38はFコード44を入力
としてSコード46を出力する。Fコード44はキューング
されないがRコード43は2つまでキューイングされ、E
コード45はキューイングされないがSコード46は2つま
でキューイングされる。
処理はRコード43に対して次のEステージ45での実行に
使用する実行制御コードであるEコード45を作り出すた
めのμROM アクセスとマイクロ命令デコード処理とであ
る。
のマイクロプログラムステップに分解される場合、IROM
部118 及びFROM部119 がEステージ35で使用され、次の
Rコード43がμROM アクセス待ちになることがある。R
コード43に対するμROM アクセスが行われるのはEステ
ージ35でのμROM アクセスが行われない場合である。本
発明のデータ処理装置100 では多くの整数演算命令が1
マイクロプログラムステップで完了し、多くの浮動小数
点演算命令が2マイクロプログラムステップで完了する
ため、実際にはRコード43に対するμROM アクセスが次
々と行われることが多い。
部116 を使用しない命令に対してIROM部118 のみが動作
し、FROM部119 は他の処理を実行できる。このため、浮
動小数点演算命令の処理が終了する前に次の整数演算命
令をオーバーラップして開始すること可能である。オペ
ランドフェッチステージ34ではFコード44の論理アドレ
スをデータTLB 1122で物理アドレスに変換し、その物理
アドレスで内蔵データキャッシュをアクセスしてオペラ
ンドをフェッチし、そのオペランドとFコード44の論理
アドレスとを組み合わせて、Sコード46として出力す
る。
スしてもよいが、8バイト以下のオペランドフェッチが
指定される。Fコード44にはオペランドのアクセスを行
うか否かの指定も含まれており、Aステージ33で計算し
たオペランドアドレス自体または即値をEステージ35に
転送する場合にはオペランドのフェッチは行われず、F
コード44の内容がSコード46として転送される。Sコー
ド46は2つまでキューイング可能であるため、オペラン
ドは2つまでプリフェッチ可能である。
をフェッチする場合は整置された8バイトにつき最小2
クロックを要する。バーストモードでは32バイトにつき
最小5クロックを要する。オペランドを外部からフェッ
チする際にはフェッチ先の物理アドレスが I/O領域であ
るか否かのチェックも行われる。 I/O領域からはオペラ
ンドのプリフェッチは行われない。この場合、先行命令
がすべて実行を完了し、 I/O領域をアクセスする命令が
実行されることが確実になってからオペランドのフェッ
チが行われる。また、条件分岐命令に引き続く命令で
は、先行する条件分岐命令が実行されるまではオペラン
ドのフェッチは行われない。これは論理的に実行され得
ない命令のオペランドプリフェッチを抑止するためであ
る。
整置された8バイトにつき1クロックでオペランドがフ
ェッチされる。
への変換、内蔵データキャッシュ52, データ用TLB の制
御、プリフェッチ先オペランドアドレスの管理、更にS
コード46のキューの制御もOFステージ38で行われる。
ード46を入力として整数演算部115 と浮動小数点演算部
116 とが動作する。
ジであり、Fステージ34以前の各ステージで行われた処
理はすべてEステージ35のための前処理である。Eステ
ージ35でジャンプが実行されたり、あるいは EIT処理が
起動されたりした場合は、IFステージ31〜Fステージ34
までで実行された処理は全て無効化される。Eステージ
35はマイクロプログラムにより制御され、Rコード43に
示されたマイクロプログラムルーチンのエントリ番地か
らの一連のマイクロ命令を実行することにより命令を実
行する。
コード (特にEIコードという) と浮動小数点演算部116
を制御するコード (特にEFコードという) とがあり、EI
コードとEFコードとは独立に出力することが可能であ
る。EIコードとEFコードとが同時に出力された場合は、
Eステージ35では整数演算部115 と浮動小数点演算部11
6 とが並列に動作する。たとえば、浮動小数点演算部11
6 でデスティネーションオペランドが浮動小数点レジス
タである浮動小数点演算命令を実行する場合、浮動小数
点演算部116 は第2マイクロステップの動作から整数演
算部115 と切り放され、整数演算部115 と独立して並行
動作する。なお、浮動小数点演算命令を含む全命令で整
数演算部115 は最小1マイクロ命令を実行する (浮動小
数点演算命令でも最初の1クロックは必ず整数演算部11
5 が動作する) 。
ロROM の読み出しとマイクロ命令の実行とはパイプライ
ン化されて行われる。マイクロプログラムの条件分岐は
μROM のYデコーダ (μROM から同時に読み出した複数
のマイクロ命令から目的のマイクロ命令をセレクトする
ためのデコーダ) で行われるため、条件分岐が発生した
場合にも1クロックの空きもなしにマイクロプログラム
が実行される。Eステージ35ではAステージ33で行った
スコアボードレジスタへの書き込み予約の解除、Dステ
ージ32での分岐予測が間違っていた場合の分岐予測テー
ブルの書換え、及びプリリターンアドレスが正しいか否
かのチェックも行う。
ジ35で直接受け付けられ、マイクロプログラムにより必
要な処理が実行される。その他の各種EIT の処理もEス
テージ35でマイクロプログラムにより行われる。
る場合は、Eステージ35はSステージ36へWコード47と
ストア処理を行う命令のプログラムカウンタ値との両方
を出力する。メモリへのオペランドストアは整数演算の
結果と浮動小数点演算の結果とに拘わらずプログラムで
論理的に指定された順序で行われる。浮動小数点演算部
116 からメモリへデータをストアする場合には、整数演
算部115 はその命令が終了するまで、即ち命令実行のス
テージがストアステージ36に移るまで、引き続く全ての
命令を実行しない。
ス部112 が動作する。
をデータTLB 1122で物理アドレスに変換し、そのアドレ
スでWコード47のデータを内蔵データキャッシュにスト
アする。同時にWコード47とプログラムカウンタ値とが
ストアバッファに入力され、データTLB 1122から出力さ
れた物理アドレスを用いて外部のメモリへWコード47の
データをストアする処理が行われる。ストアバッファは
3段あり、3つまでのストア要求をキューイングでき
る。ストアバッファから外部のメモリへのオペランドの
ストアは最小2クロックに1回行われる。
部112 で行われ、データTLB 1122及び内蔵データキャッ
シュがミスした際のアドレス変換処理及び内蔵データキ
ャッシュの入れ替え処理も行われる。
た場合はストアバッファにWコード47とプログラムカウ
ンタ値を保持したままでEステージ35にEIT を通知す
る。ストアバッファでEIT が発生した場合、ヒットした
データキャッシュのエントリはすでに書き変わっていて
次の命令で使用されいるかどうかは特定できない。ま
た、そのヒットしたデータキャッシュのエントリはスト
アバッファのEIT によりハードウエアで自動的にインバ
リデートされることはない。
有し、他のステージとは独立に動作することを基本とす
る。各ステージは1つ前に行った処理が終了してその処
理結果を出力ラッチから次のステージの入力ラッチに転
送し、自分のステージの入力ラッチに次の処理に必要な
入力信号が全てそろえば次の処理を開始する。
から出力されてくる次の処理に対する入力信号がすべて
有効となり、今の処理結果を後段のステージの入力ラッ
チに転送して出力ラッチが空になると次の処理を開始す
る。換言すれば、各ステージが動作を開始する直前のタ
イミングで入力信号が全てそろっている必要がある。入
力信号がそろっていないと、そのステージは待機状態
(入力待ち) になる。
への転送を行う際は次のステージの入力ラッチが空き状
態になっている必要があり、次のステージの入力ラッチ
が空きでない場合もパイプラインステージは待機状態
(出力待ち) になる。また、キャッシュあるいはTLB が
ミスしたり、パイプラインで処理中の命令間にデータ干
渉が生じると、1つのステージの処理に複数クロック必
要となり、パイプライン処理が遅延する。
のウエイ構成を示す模式図である。
ッシュとして動作するため、WAY0 220, WAY1 221, WAY2
222, WAY3 223の4つメモリブロックにて構成されてい
る。DDバス710 からデータバッファ52をアクセスする際
は、 WAYマルチプレクサ224を介していずれか1つが選
択されてアクセスされる。データバッファ52がデータキ
ャッシュとして動作する場合、 WAYマルチプレクサ224
はウエイ選択制御回路225 によりヒット/ミスあるいは
LRUアルゴリズムに従って各ウエイWAY0 220, WAY1 22
1, WAY2 222, WAY3 223を選択する。また、データバッ
ファ52がコンテキスト退避用の制御空間メモリとして動
作する場合、 WAYマルチプレクサ224はLAバス742 から
転送されるアドレスのビット19:20 に従って各ウエイWA
Y0 220, WAY1 221, WAY2 222, WAY3 223を選択する。
221, WAY2 222, WAY3 223の詳細構成を示すブロック図
である。4つのウエイブロックWAY0 220, WAY1 221, WA
Y2 222, WAY3 223は全て図25に示す同一の構成となっ
ている。
204 と、主アレイ206 とからなるメモリ部61と、メモリ
部61の行アドレスをデコードする行デコード部62と、列
マルチプレクサ207 と、入出力レジスタ210 と、データ
マルチプレクサ211 と、比較器212 と、列レジスタ209
と、列デコーダ208 とで構成されている。
64エントリからなる。各エントリは1ビットのバリッド
ビットと、20ビットのタグアドレスとからなるタグ部
と、8×32バイト= 256ビットのデータ部とからなる。
バリッドビットに対応する列のビット線には全エントリ
のクロックド NOR論理があり、バリッドビットに対応す
るビット線はいずれのエントリからも”1”が出力され
ない場合、またはいずれのエントリもアクセスされない
場合に”0”を出力し、いずれか1つのエントリから”
1”が出力されると”1”を出力する。
ロック構成のウエイ部から目的とする8バイトまたはそ
の中のバイトデータを選択するための回路である。
ャッシュとして動作する場合にタグアドレスとDTLBとか
ら入力されるアドレスを比較してヒット/ミス判定をす
る動作と、 EDAバス743 から転送されて来たタグアドレ
スを入出力レジスタ210 へ転送する動作とを行う。
えるための冗長な回路である。また、予備列205 は故障
があるビットを置き換えるための冗長な回路である。予
備行204 と予備列205 とにより、主アレイ206 の一部に
故障がある場合でも、メモリ部61全体では故障がない場
合と同様の動作が可能になる。
リアドレスをデコードする行デコーダ203 と、故障した
エントリを予備行204 で置き換えた場合にLAバス742 の
ビット21:27 から入力された故障したエントリのアドレ
スで予備行204 をアクセスするために有効ビット201 と
行CAM202とが備えられている。
トリと予備行204 のエントリとが有効か無効かを示す。
行CAM202は連想記憶回路であり、記憶している内容と同
じアドレスがLAバス742のビット21:27 から入力された
か否かを判断する。主アレイ206 に故障がなく且つ予備
行204 を使用していない場合には主アレイ206 の64個の
エントリに対応する有効ビット201 が全て”1”とな
り、予備行204 に対応する有効ビットが”0”となる。
主アレイ206 に部分故障があり、このため故障したエン
トリを予備行204 で置き換えた場合、故障したエントリ
に対応する有効ビット201 が”0”に、予備行204 に対
応する有効ビット201 が”1”にそれぞれなる。この
際、行CAM202には故障したエントリのアドレスが記憶さ
れており、LAバス742 のビット21:27 から故障したエン
トリのアドレスが入力されると、主アレイ206 の故障し
たエントリの代わりに予備行204 がアクセスされる。
ビット列を予備列205 で置き換えた場合に、置き換えた
列の番号を保持する。列レジスタ209 の内容は列デコー
ダ208 でデコードされ、列マルチプレクサ207 が故障し
た列の代わりに予備列205 を入出力レジスタ210 に結合
する。列マルチプレクサ207 は列デコーダ208 から出力
される列番号の主アレイ206 の列を予備列205 に置き換
えるためのセレクタである。
スのアドレス変換対象となる上位20ビットの内の下位側
4ビットでDTLB1122のエントリが指定される。DTLB1122
は4ウエイ構成であるため、論理アドレスタグ16ビット
と物理アドレス20ビットとが4組出力される。この際、
論理アドレスの上位側16ビットとバリッドビットとが”
1”である論理アドレスタグのいずれか1つが一致すれ
ばDTLB1122はヒットしたことになり、DTLB1122から出力
されたその論理アドレスタグに対応する物理アドレスは
有効となる。
として動作する場合は、論理アドレスの内のページオフ
セットを示し且つ物理アドレスに変換されない下位ビッ
ト12ビットがデータバッファ52のエントリを指定する。
データバッファ52の指定されたエントリからは物理アド
レスタグ20ビットと32バイトのデータとが4組出力され
る。この際、DTLB1122から出力された有効な物理アドレ
スがバリッドビットが”1”の物理アドレスタグのいず
れか1つと一致すればデータバッファ52はヒットしたこ
とになり、一致した物理アドレスタグに対応する32バイ
トのデータは有効となる。
タ処理装置100 の外部のメモリにあるアドレス変換テー
ブルを DAT機構1121によりアクセスし、論理アドレスが
物理アドレスに変換され、DTLB1122のエントリが更新さ
れる。DTLB1122のエントリが更新された後、再びDTLB11
22がアクセスされてDTLB1122はヒットする。
ッシュとして動作したデータバッファ52がミスした場合
はデータバッファ52のエントリが更新される。
読み出された物理アドレスとデータバッファ52の物理ア
ドレスタグとが一致してもデータバッファ52はヒットと
ならない。この場合、データバッファ52のヒット/ミス
の判定はDTLB1122のエントリが更新されてDTLB1122がヒ
ットした後に行われる。
て動作する場合は論理空間のアクセスでデータバッファ
52がアクセスされることはない。論理空間のアクセスに
対してはDTLB1122で変換された物理アドレスが本発明の
データ処理装置100 の外部に出力され、外部からデータ
がフェッチされる。
はDTLB1122のアクセスに関してはデータリード動作と同
じである。
として動作する場合、データバッファ52のアクセスに関
してもデータリード動作と類似しているが、データバッ
ファ52からデータが読み出されることはない。データラ
イト動作ではデータバッファ52がヒットした場合はヒッ
トしたエントリにデータが書き込まれ、ミスした場合は
データバッファ52にはデータを書き込まず、エントリの
更新動作もしない。
タバッファ52はライトスルー制御のデータキャッシュと
して動作し、データライト動作でデータバッファ52がヒ
ットした場合もミスした場合もストアデータが外部へ出
力される。
て動作する場合は、データバッファ52が論理空間へのオ
ペランドライトでアクセスされることはない。論理空間
アクセスに対してDTLB1122で変換された物理アドレスが
本発明のデータ処理装置100の外部に出力され、ストア
データが外部へ出力される。
クロックを必要とし、本発明のデータ処理装置100 のE
ステージ35のストア動作速度に比べ低速である。このた
め、ストアデータはそのストア動作を行った命令のPC
値, ストア先の物理アドレス及びストア先の論理アドレ
スと共にストアバッファに一旦登録され、ストアバッフ
ァがストア動作を行う。ストアバッファに登録されるス
トア動作を行った命令のPC値はPC生成部113 で計算され
た命令のPC値である。
F”のアドレス範囲の制御空間用メモリとして動作する
場合、”H ’FFFFE000”〜”H ’FFFFFFFF”のアドレス
範囲の制御空間に対するアクセスはデータバッファ52に
対して行われる。制御空間のアクセスではアドレス変換
は行われず、DTLB1122は動作しない。データバッファ52
はアドレス範囲が”H ’FFFFE000”〜”H ’FFFFFFFF”
のランダムアクセスメモリとして動作する。
ドレスタグとバリッドビットとは使用されず、データ部
が使用される。リード動作ではAAバス731 から与えられ
たアドレスに従って、データバッファ52の内容が入出力
レジスタ210 及びデータマルチプレクサ211 を介して読
み出され、DDバス710 から整数演算部115 へ転送され
る。一方、ライト動作ではAAバス731 から与えられたア
ドレスに従って、DDバス710 を通じて入力されたデータ
がデータバッファ52に書き込まれる。
FFFFFFFF”以外の領域の制御空間に対するアクセスは本
発明のデータ処理装置100 の外部に対して行われる。制
御空間のアクセスをデータバッファ52に対して行うか、
外部に対して行うかの判断は制御空間アドレスの上位20
ビットに従ってオペランドアクセス部112 内で判断され
る。
す模式図である。
と接地GND 、64本のデータピン(D0:63) と32本のアドレ
スピン(A0:31) と32本の命令ピン(I0:31) 、入力クロッ
クCLK の他に様々な制御信号を入出力する。
合も、アドレスピンには物理アドレスが出力される。 C
LKは外部入力クロックであり、本発明のデータ処理装置
100の動作クロックと同一周波数のクロックである。
ピンに出力されたデータアドレスが有効であることを示
す。
イクルが入力か出力かを区別する。データストローブDS
# は本発明のデータ処理装置100 がデータ入力準備を完
了したこと、または本発明のデータ処理装置100 からデ
ータが出力されたことを示す。
タアクセスサイクルを終了してもよいことを通知する信
号である。
スの種類を示す。命令アドレスストローブIAS#はアドレ
スピンに出力された命令アドレスが有効であることを示
す。
装置100 が命令入力準備を完了したことを示す。IC#は
本発明のデータ処理装置100 に命令アクセスサイクルを
終了してもよいことを通知する信号である。
タ処理装置100 にバス権を要求する信号であり、 HACK#
は本発明のデータ処理装置100 がホールドリクエストHR
EQ#を受け付けてバス権を他のデバイスに渡したことを
示す信号である。
け付け、割込みベクトルアクセスサイクルを行っている
ことを示す信号である。
を要求する信号で、 MS#はバススヌープのためアドレス
ピンの値を本発明のデータ処理装置100 がサンプリング
するタイミングを示す信号である。
ムの例では、本発明のデータ処理装置100 とデータキャ
ッシュ107, 108とがデータピンにつながるデータバス10
2 及びアドレスピンにつながるアドレスバス101 の他、
BAT0:2, DAS#,R/W#, DS#, DC#, MREQ#, MS#とでも接続
されている。本発明のデータ処理装置100 と命令キャッ
シュ106 とは命令ピンにつながる命令バス103 及びアド
レスバス101 の他、BAT0:2, IAS#, IS#, IC#とでも接続
されている。 CLKはシステム全体に供給されシステムの
基本タイミングを決定する。
は、データバス102 を用いたデータアクセスと命令バス
103 を用いた命令アクセスとをそれぞれ十分高速な外部
のメモリに対して外部入力クロックCLK の2サイクルに
1度の速度で行う。
では、データバス102 を用いたデータアクセスと命令バ
ス103 を用いた命令アクセスとをそれぞれ十分高速な外
部のメモリに対して外部入力クロックCLK の5サイクル
に4度の速度で行う。
108のアクセスと命令キャッシュ106 のアクセスとの両
方に利用される。
にあるプロセッサ状態語(PSW) の構成を示す模式図であ
る。
理用スタックポインタを使用中であるか、リング0用ス
タックポインタを使用中であるかを示す。
れているリングの番号を示す。
保護とのモードを示す。FEビット523 は浮動小数点演算
トラップの起動モードを示す。
であればデバッグサポート機構がオンであってデバッグ
条件が成立すればセルフデバッグトラップが起動され、
DB=0であればデバッグサポート機構がオフであってデバ
ッグ条件が成立してもセルフデバッグトラップは起動さ
れない。
クレベルを示す。 IMASKフィールド525 で示されたマス
クレベルよりも優先度が高い外部割込みが本発明のデー
タ処理装置100 に入力されると割込み処理が起動され
る。
したリングのリング番号を示す。
ラグを示す。この図27に示されているPSW はリセット
時にはオールゼロにクリアされる。LDC命令と STC命令
とでその内容を読み出すこと及び指定した内容を書き込
むことができる。
ファ52と内蔵命令キャッシュ51との制御を行うバッファ
メモリ制御レジスタの構成を示す模式図である。
ファ52の制御を行うフィールドで以下に示す意味を有す
る。
い。 DM=01 データバッファ52をアドレスが”H ’FFFFE00
0”〜”H ’FFFFFFFF”である制御空間のメモリとして
動作させる。 DM=10 データバッファ52をライトスルー制御のデー
タキャッシュとして動作させる。 DM=11 未定義。
ータキャッシュとして動作する場合の制御を行うフィー
ルドで以下に示す意味を有する。
態にする。 RP=01 未定義。 RP=10 未定義。 RP=11 データキャッシュをラインサイズ32バイトで
動作させる。
の制御を行うフィールドで以下に示す意味を有する。
い。 IM=01 未定義。 IM=11 未定義。 IM=11 命令キャッシュをラインサイズ16バイトのキ
ャッシュとして動作させる。
ファ52と内蔵命令キャッシュ51とのパージ動作を制御す
るパージ指定レジスタの構成を示す模式図である。
蔵データバッファ52と内蔵命令キャッシュ51とのパージ
動作を制御するビットであり、これらの各ビットに”
1”を書き込むとそれぞれのビットに対応するバッファ
メモリの内容がパージされる。一方、これらの各ビット
に”0”を書き込むとそれぞれのビットに対応するバッ
ファメモリの内容はパージされない。また、このレジス
タの値を読み出した場合は全ビットがゼロである。
い。 DP=1 データバッファ52の全エントリをパージす
る。 IP=0 内蔵命令キャッシュ51の全エントリをパージ
しない。 IP=1 内蔵命令キャッシュ51の全エントリをパージ
する。
0 のリセットシーケンスのフローチャートである。
みが入力されると、IROM部118 が初期化される (ステッ
プS1)。
トシーケンスのマイクロプログラムのエントリ番地を生
成し、その値をマイクロプログラムUNAR1187に転送する
ことにより、リセットシーケンスのマイクロプログラム
処理が開始される (ステップS2)。
ら制御信号が送られ、整数演算部115 が初期化される
(ステップS3)。
リメントカウンタにリセット処理時間の最長値Nがセッ
トされ、各クロックごとにこのデクリメントカウンタが
デクリメントされる (ステップS4)。なお、この最長値
Nはリセットシーケンスのマイクロプログラムのなかで
データバッファ52の診断と故障部分の救済とを行うため
に必要な最大実行時間の理論クロック以上の値であれば
よい。
ドビットが”0” (無効) にされてデータバッファがパ
ージされ、行デコード部62の有効ビット201 の内の行CA
M202に対応するビットのみが”0” (無効) にされ、そ
の他のビットが”1” (有効) にされる (ステップS
5)。このステップS5によってデータバッファ52は行に関
する故障救済を行っていない状態にセットされる。
リ部61の列数より大きな値”300 ”がセットされ、列マ
ルチプレクサ207 の全列が主アレイ側に切り替えられる
(ステップS6)。このステップS6によってデータバッフ
ァ52は列に関する故障救済を行っていない状態にセット
される。
あるいはオール”1”などの種々のテストデータを発生
し、それらをデータバッファ52に書き込んでは読み出す
ことにより、書き込みデータと読み出しデータとが一致
するか否かを調べてデータバッファ52のテストが行われ
る (ステップS7)。この際、故障のある列の番号とその
故障ビット数とが整数演算部115 の作業用レジスタに記
憶され、列救済のための判断情報となる。
ップS9に進み、故障がない場合はステップS13 に進む
(ステップS8)。
合は最も故障の多い列の番号が列レジスタ209 にセット
された上で予備列205 と置き換えられ、置き換えられた
列の番号が汎用レジスタ4、置き換えられた列の故障数
が汎用レジスタ3にそれぞれ記憶される (ステップS
9)。ステップS9により最も故障ビットが多い列が予備列
205 により救済される。
したあとのメモリ部61に対して再度ステップS7と同様の
テストが行われ、故障したエントリに対応する有効ビッ
ト201 が全て”0” (無効)にされ、故障したエントリ
の数が汎用レジスタ1に書き込まれ、最後に発見した故
障したエントリの番号が整数演算部115 の汎用レジスタ
2に書き込まれる (ステップS10)。
があった場合はステップS12 に進み、故障がない場合は
ステップS13 に進む (ステップS11)。
場合はレジスタ2にセットされているエントリ番号が予
備行204 にセットされ、行CAM202に対応する有効ビット
201が”1”にされて故障したエントリの1つが予備行2
04 で置き換えられる (ステップS12)。ステップS10 で
故障が見つかったエントリの1つは予備行204 で救済さ
れるが、その他の故障が見つかったエントリは有効ビッ
ト201 の無効化によりアクセス禁止となる。このため、
メモリ部61のバリッドビットが”0”のままでデータバ
ッファ52がデータキャッシュとして動作する場合に有効
なエントリとなることがない。
依存せずリセットシーケンスの実行クロック数を一定に
するため、整数演算部115 の主演算器1158にあるデクリ
メントカウンタの値がゼロになるまで待って次のステッ
プに進む (ステップS13)。
数演算部115 とのデータバッファ52以外の未初期化部分
が初期化される (ステップS14)。
クセスされてリセット直後に実行すべき命令のPC値とス
タックポインタSPI の初期値とからなる8バイトのデー
タがフェッチされる (ステップS15)。このアクセスが本
発明のデータ処理装置100 以外への最初のアクセスであ
り、リセット割り込みが入力されてからこのステップが
実行されるまでのクロック数はデータバッファ52の故障
内容及び救済の有無に拘わらず一定である。
にセットされ、リセット直後の命令のPC値が整数演算部
115 からPC生成部113 と命令フェッチ部111 とに転送さ
れてリセット直後に実行する命令にジャンプし、リセッ
トシーケンスのマイクロプログラムが終了する (ステッ
プS16)。
チャートに示されているように、本発明のデータ処理装
置100 はマイクロプログラムによるリセット処理に際し
てデータバッファ52の診断および故障部分の予備回路へ
の置き換えを行う。リセットシーケンスはデータバッフ
ァ52の故障の有無に拘わらず常に同一クロック数で行な
われる。従って、本発明のデータ処理装置100 はデータ
バッファ52に故障がない場合も部分故障があって予備回
路によりその故障を救済した場合も、外部から見た製品
仕様は全く同じである。ただし、製品仕様には無関係で
ある汎用レジスタ1, 2, 3, 4にリセットシーケンスで発
見された故障に関する情報が記憶されるので、リセット
直後のプログラムでこれらのレジスタの内容を読み出す
ことにより LSI設計者は必要に応じて真の故障の有無を
知ることが可能である。
ュとして使用する場合には、データバッファにいくつか
の故障があり、予備回路で一部分を救済してもなお故障
が残る場合、故障があるエントリへのアクセスが禁止さ
れるためそのエントリのバリッドビットを”1”にする
ことが出来ない。従って、データバッファ52は疑似的に
エントリ数が削減されたデータキャッシュとして動作
し、本発明のデータ処理装置100 は故障がない場合また
は故障が全て予備回路で救済された場合に比べデータキ
ャッシュのヒット率が異なるが、全体として間違った動
作をすることはない。
1つの予備列205 とを設けて故障を救済する例を述べた
が、予備行及び予備列の数を増加することにより救済の
可能性を高めてもよい。また、データバッファ52以外に
内蔵命令キャッシュ51に対しても同様に予備行及び予備
列を設けて故障を救済してもよい。
演算部にあるカウンタでリセットシーケンスの実行クロ
ック数を決定することによりデータバッファ52の故障の
有無に拘わらず常にリセットシーケンスの処理時間を一
定にしたが、リセット処理を行うマイクロプログラム自
体を故障の有無に拘わらず常に同一処理時間で終了する
ように記述してもよい。
を使用することによりリセットシーケンスでデータバッ
ファ52の故障を救済する例を述べたが、システムのブー
トストラップメモリなどに記憶されたリセット直後の初
期化プログラムでデータバッファ52の故障を救済しても
よい。この場合、データ処理装置単体の製品仕様には故
障の有無による動作の違いを定義する必要があるが、デ
ータ処理装置と初期化プログラムとを併せたたシステム
全体としては予備回路で故障が救済できる限り、製品仕
様は同じである。
装置は、メモリの全ビットに故障がなかった場合も、ま
た故障救済によりメモリ全体として故障がない状態とな
った場合も、リセット後は全く同様に動作するので、い
ずれの場合にも製品仕様上は良品となり、不良製品が減
少する。データ処理装置を1チップのLSI 上に実現する
場合、従来は故障メモリの部分修理が困難なため、本効
果は直接LSI の歩留り向上につながり、データ処理装置
を安価に提供することが可能になる効果が特に大きい。
装置は、故障救済の結果を必要に応じてリセット後のプ
ログラムで読み出すことができ、潜在的な故障の傾向を
知って、その後に製造するデータ処理装置の歩留りを更
に向上させることができる。なお、汎用レジスタは製品
仕様としては初期値が定義されないため、故障救済を行
ったデータ処理装置は故障救済情報の内容に拘わらず製
品仕様としてはすべて良品で、故障救済による製品製造
上の歩留り低下はない。
処理装置は、マイクロプログラムの内容に自由度を持た
せながらリセットルーチンの処理時間を一定にすること
ができ、高性能でコンパクトなマイクロプロラムで故障
救済を行うことができる。
処理装置は、故障したエントリが故障救済のために用意
された予備エントリの数より多い場合でも、使用可能な
エントリ数に違いはあるがキャッシュメモリとしては常
に正しい動作するデータキャッシュを歩留りよく実現
し、装置全体を安価に実現することができる。
の一実施例を示すブロック図である。
示す模式図である。
示す模式図である。
示す模式図である。
示す模式図である。
チ命令である LDCTX命令と STCTX命令とで操作されるコ
ンテキストブロックのフォーマットを示す模式図であ
る。
キストブロックのフォーマットを指定する CSWレジスタ
の構成を示す模式図である。
る。
る。
ロック図である。
図である。
る。
ングモードのフォーマットを示す模式図である。
構成を示すブロック図である。
示すブロック図である。
構成を示すブロック図である。
ス部の構成を示すブロック図である。
すブロック図である。
すブロック図である。
を示すブロック図である。
プログラムで操作される整数演算部周辺の構成を示すブ
ロック図である。
の構成を示すブロック図である。
の構成を示す模式図である。
ス部のデータバッファのウエイ構成を示す模式図であ
る。
ス部のデータバッファの各ウェイブロックの詳細構成を
示すブロック図である。
模式図である。
プロセッサ状態語(PSW) の構成を示す模式図である。
ァと内蔵命令キャッシュとの制御を行うバッファメモリ
制御レジスタの構成を示す模式図である。
ァと内蔵命令キャッシュとのパージ動作を制御するパー
ジ指定レジスタの構成を示す模式図である。
スのフローチャートである。
スのフローチャートである。
スのフローチャートである。
Claims (8)
- 【請求項1】 リセット信号が入力されるリセット信号
入力端子と、クロックが入力されるクロック入力端子と、 第1,第2,第3のメモリからなるメモリ部と、第4の
メモリと、前記第4のメモリに書込まれた情報に従って
前記メモリ部の各メモリ間の電気的接続を切換えること
により前記第1のメモリ又は前記第2のメモリを前記第
3のメモリと置き換える制御部とを有するメモリ機構
と、 前記リセット信号入力端子から前記リセット信号が入力
された場合に前記クロック入力端子から入力されるクロ
ックに同期して前記メモリ機構の故障診断を行い、 前記第1のメモリに故障があると診断された第1の場合
は、前記第4のメモリに第1の値を書き込むことにより
前記制御部に前記第1のメモリを前記第3のメモリに置
き換えさせる処理を所定クロック数で行わせることによ
り、 前記第2のメモリに故障があると診断された第2の場合
は、前記第4のメモリに第2の値を書き込むことにより
前記制御部に前記第2のメモリを前記第3のメモリに置
き換えさせる処理を前記第1の場合と同一クロック数で
行わせることにより、 前記メモリ機構に故障がないと診断された第3の場合
は、前記第4のメモリに第3の値を書き込む処理を前記
第1及び第2の場合と同一クロック数で行わせることに
より 前記メモリ部の初期化を行う 診断回路とを備えたこ
とを特徴とするメモリ装置。 - 【請求項2】 診断回路はレジスタを有し、第1の場合
は該レジスタに第1の初期値を書き込み、第2の場合は
前記レジスタに第2の初期値を書き込み、第3の場合は
前記レジスタに第3の初期値を書き込むことにより、リ
セット時のメモリ部の各メモリの置き換え結果を前記レ
ジスタに保持してリセット時の処理を終了することを特
徴とする請求項1に記載のメモリ装置。 - 【請求項3】 リセット信号入力端子とクロック入力端
子と診断回路とに接続し、故障診断及びメモリ部の初期
化のリセットルーチンを実行するためのマイ クロプログ
ラムを保持する制御プログラム記憶手段を有していて前
記診断回路の動作を制御する診断制御機構と、 前記診断制御機構に接続し、マイクロプログラムの実行
に要するクロック数を計数するカウンタとを備え、 該制御プログラム記憶手段に記憶されたリセットルーチ
ンを前記リセット信号入力端子からの前記リセット信号
の入力により起動して前記リセットルーチンを実行し、
その実行に要するクロック数を前記カウンタにより制御
することを特徴とする請求項1に記載のメモリ装置。 - 【請求項4】 バリッドビットとタグフィールドとデー
タフィールドとから構成されるエントリ複数からなるメ
モリ部と、前記メモリ部に接続し前記メモリ部の各エン
トリに対応するアクセス許可ビットの値を記憶する制御
メモリと、前記アクセス許可ビットが第1の値である場
合は前記バリッドビットと前記タグフィールドとの値に
従って前記データフィールドの値の有効/無効を判断し
て有効である場合にはヒットと判定し、無効である場合
にはミスと判定し、前記アクセス許可ビットが第2の値
である場合は前記データフィールドの値に拘わらずミス
と判定するヒットミス判定部とを有するバッファメモリ
機構と、 前記バッファメモリ機構に接続し、レジスタと演算回路
とを有し、前記バッファメモリ機構へのデータの書き込
み,前記バッファメモリ機構からのデータの読み出し及
びデータ間の演算を行う演算機構と 前記メモリ部の各エ
ントリの故障診断を行い、 故障がないと診断されたエントリに対応するアクセス許
可ビットを前記第1の値とすることにより、ヒット又は
ミスと判定し、また 故障があると診断されたエントリに
対応するアクセス許可ビットを前記第2の値とすること
によりデータフィールド値に拘わらずミスと判定し、 故障があると診断されたエントリを無効化し、この部分
を切り放すことで前記バッファメモリ機構の故障救済を
行う診断回路と を備えた ことを特徴とするメモリ装置。 - 【請求項5】 リセット信号が入力されるリセット信号
入力端子と、 クロックが入力されるクロック入力端子と、 第1,第2,第3のメモリからなるメモリ部と、第4の
メモリと、前記第4のメモリに書込まれた情報に従って
前記メモリ部の各メモリ間の電気的接続を切換えること
により前記第1のメモリ又は前記第2のメモリを前記第
3のメモリと置き換える制御部とを有するメモリ機構
と、 前記メモリ機構と前記クロック入力端子と前記信号入力
端子とに接続し、レジスタと演算回路とを有し、前記メ
モリ機構へのデータの書き込み,前記メモリ機構からの
データの読み出し及びデータ間の演算を行う演算機構と
を備え、 前記演算機構は、 前記リセット信号入力端子から前記リセット信号が入力
された場合に前記クロック入力端子から入力されるクロ
ックに同期して前記メモリ機構の故障診断を行い、 前記第1のメモリに故障があると診断された第1の場合
は前記第4のメモリに第1の値を書き込むことにより前
記制御部に前記第1のメモリを前記第3のメモリに置き
換えさせる処理を所定クロック数で行わせることによ
り、 前記第2のメモリに故障があると診断された第2の場合
は前記第4のメモリに第2の値を書き込むことにより前
記制御部に前記第2のメモリを前記第3のメモリに置き
換えさせる処理を前記第1の場合と同一クロック数で行
わせることにより、 前記メモリ機構に故障がないと診断された第3の場合は
前記第4のメモリに第3の値を書き込む処理を前記第1
及び第2の場合と同一クロック数で行わせることにより
前記メモリ部の初期化を行う べくなしてある ことを特徴
とするデータ処理装置。 - 【請求項6】 演算機構は、第1の場合はレジスタに第
1の初期値を書き込み、第2の場合は前記レジスタに第
2の初期値を書き込み、第3の場合は前記レジスタに第
3の初期値を書き込むことにより、リセット時のメモリ
部の各メモリの置き換え結果を前記レジスタに保持して
リセット時の処理を終了することを特徴とする請求項5
に記載のデータ処理装置。 - 【請求項7】 リセット信号入力端子とクロック入力端
子と演算機構とに接続し、故障診断及びメモリ部の初期
化のリセットルーチンを実行するためのマイクロプログ
ラムを保持する制御プログラム記憶手段を有していて前
記演算機構の動作を制御する演算制御機構と、 前記演算制御機構に接続し、前記マイクロプログラムの
実行に要するクロック数を計数するカウンタとを備え、 前記制御プログラム記憶手段に記憶されたリセットルー
チンを前記リセット信号入力端子からの前記リセット信
号の入力により起動して前記リセットルーチンを実行
し、その実行に要するクロック数を前記カウンタにより
制御する ことを特徴とする請求項5に記載のデータ処理
装置。 - 【請求項8】 バリッドビットとタグフィールドとデー
タフィールドとから構成されるエントリ複数からなるメ
モリ部と、前記メモリ部に接続し前記メモリ部の各エン
トリに対応するアクセス許可ビットの値を記憶する制御
メモリと、前記アクセス許可ビットが第1の値である場
合は前記バリッドビットと前記タグフィールドとの値に
従って前記データフィールドの値の有効/無効を判断し
て有効である場合にはヒットと判定し、無効である場合
にはミスと判定し、前記アクセス許可ビットが第2の値
である場合は前記データフィールドの値に拘わらずミス
と判定するヒットミス判定部とを有するバッファメモリ
機構と、 前記バッファメモリ機構に接続し、レジスタと演算回路
とを有し、前記バッファメモリ機構へのデータの書き込
み,前記バッファメモリ機構からのデータの読み出し及
びデータ間の演算を行う演算機構と を備え、 前記演算機構は、 前記メモリ部の各エントリの故障診断を行い、 故障がないと診断されたエントリに対応するアクセス許
可ビットを前記第1の値とすることにより、ヒット又は
ミスの判定を行なわせ、また 故障があると診断されたエ
ントリに対応するアクセス許可ビットを前記第2の値と
することによりデータフィールドの値に拘わらずミスと
する判定を行なわせ、 故障があると診断されたエントリを無効化し、この部分
を切り放すことで前記バッファメモリ機構の故障救済を
行う べくなして あることを特徴とするデータ処理装置。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3197688A JP2796590B2 (ja) | 1991-08-07 | 1991-08-07 | メモリ装置及びそれを使用したデータ処理装置 |
US08/403,558 US5644699A (en) | 1991-08-07 | 1995-03-13 | Memory apparatus and data processor using the same |
US08/768,021 US5954435A (en) | 1991-08-07 | 1996-12-13 | Memory apparatus and data processor using the same |
US08/812,464 US5991902A (en) | 1991-08-07 | 1997-03-06 | Memory apparatus and data processor using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3197688A JP2796590B2 (ja) | 1991-08-07 | 1991-08-07 | メモリ装置及びそれを使用したデータ処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0540702A JPH0540702A (ja) | 1993-02-19 |
JP2796590B2 true JP2796590B2 (ja) | 1998-09-10 |
Family
ID=16378700
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3197688A Expired - Lifetime JP2796590B2 (ja) | 1991-08-07 | 1991-08-07 | メモリ装置及びそれを使用したデータ処理装置 |
Country Status (2)
Country | Link |
---|---|
US (3) | US5644699A (ja) |
JP (1) | JP2796590B2 (ja) |
Families Citing this family (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2850953B2 (ja) * | 1996-07-30 | 1999-01-27 | 日本電気株式会社 | 半導体装置 |
US6032264A (en) | 1997-04-22 | 2000-02-29 | Micron Technology, Inc. | Apparatus and method implementing repairs on a memory device |
US5872946A (en) * | 1997-06-11 | 1999-02-16 | Advanced Micro Devices, Inc. | Instruction alignment unit employing dual instruction queues for high frequency instruction dispatch |
JP2001505340A (ja) * | 1997-08-18 | 2001-04-17 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 相対飛び越し命令を伴うデータ処理装置 |
DE19737182A1 (de) * | 1997-08-26 | 1999-03-04 | Bosch Gmbh Robert | Verfahren zum Ändern von Daten |
US6011733A (en) * | 1998-02-26 | 2000-01-04 | Lucent Technologies Inc. | Adaptive addressable circuit redundancy method and apparatus |
DE69923769T2 (de) | 1998-04-01 | 2006-02-02 | Mosaid Technologies Incorporated, Kanata | Asynchrones halbleiterspeicher-fliessband |
US6324666B1 (en) * | 1998-04-20 | 2001-11-27 | Mitsubishi Denki Kabushiki Kaisha | Memory test device and method capable of achieving fast memory test without increasing chip pin number |
US6120552A (en) * | 1998-05-27 | 2000-09-19 | International Business Machines Corporation | Method to exhibit parallelism for computer implementation of computational processing |
US6145123A (en) * | 1998-07-01 | 2000-11-07 | Advanced Micro Devices, Inc. | Trace on/off with breakpoint register |
US6408401B1 (en) * | 1998-11-13 | 2002-06-18 | Compaq Information Technologies Group, L.P. | Embedded RAM with self-test and self-repair with spare rows and columns |
US6732229B1 (en) * | 1999-02-24 | 2004-05-04 | Monolithic System Technology, Inc. | Method and apparatus for memory redundancy with no critical delay-path |
US6438672B1 (en) | 1999-06-03 | 2002-08-20 | Agere Systems Guardian Corp. | Memory aliasing method and apparatus |
US6275426B1 (en) * | 1999-10-18 | 2001-08-14 | Netlogic Microsystems, Inc. | Row redundancy for content addressable memory |
US6249467B1 (en) | 1999-10-18 | 2001-06-19 | Netlogic Microsystems, Inc | Row redundancy in a content addressable memory |
JP4600792B2 (ja) * | 2000-07-13 | 2010-12-15 | エルピーダメモリ株式会社 | 半導体装置 |
JP2002073129A (ja) * | 2000-08-30 | 2002-03-12 | Mitsubishi Electric Corp | レーザトリミング用プログラム作成装置、方法、記録媒体およびレーザトリミング装置 |
US6629281B1 (en) | 2000-09-26 | 2003-09-30 | International Business Machines Corporation | Method and system for at speed diagnostics and bit fail mapping |
US6675319B2 (en) * | 2000-12-27 | 2004-01-06 | Han-Ping Chen | Memory access and data control |
DE10124735C1 (de) * | 2001-05-21 | 2002-11-14 | Infineon Technologies Ag | Verfahren zum Testen von Halbleiter-Chips |
US6773083B2 (en) | 2001-08-29 | 2004-08-10 | Lexmark International, Inc. | Method and apparatus for non-volatile memory usage in an ink jet printer |
JP2003162433A (ja) * | 2001-11-27 | 2003-06-06 | Fujitsu Ltd | メモリシステム |
US7007210B2 (en) * | 2002-01-30 | 2006-02-28 | International Business Machines Corporation | Method and system for handling multiple bit errors to enhance system reliability |
JP4134637B2 (ja) * | 2002-08-27 | 2008-08-20 | 株式会社日立製作所 | 半導体装置 |
EP1590678B1 (en) * | 2003-01-28 | 2009-11-25 | Nxp B.V. | Boundary scan circuit with integrated sensor for sensing physical operating parameters |
DE10334520B4 (de) * | 2003-07-29 | 2008-08-21 | Infineon Technologies Ag | Verfahren und Vorrichtung zur Fehlerkorrektur bei einem digitalen Speicher |
JP2006065440A (ja) * | 2004-08-25 | 2006-03-09 | Evolium Sas | プロセス管理システム |
US8661289B2 (en) * | 2005-02-18 | 2014-02-25 | Hewlett-Packard Development Company, L.P. | Systems and methods for CPU repair |
US7607038B2 (en) | 2005-02-18 | 2009-10-20 | Hewlett-Packard Development Company, L.P. | Systems and methods for CPU repair |
US7533293B2 (en) * | 2005-02-18 | 2009-05-12 | Hewlett-Packard Development Company, L.P. | Systems and methods for CPU repair |
US7603582B2 (en) * | 2005-02-18 | 2009-10-13 | Hewlett-Packard Development Company, L.P. | Systems and methods for CPU repair |
US7673171B2 (en) * | 2005-02-18 | 2010-03-02 | Hewlett-Packard Development Company, L.P. | Systems and methods for CPU repair |
US7523346B2 (en) * | 2005-02-18 | 2009-04-21 | Hewlett-Packard Development Company, L.P. | Systems and methods for CPU repair |
US7917804B2 (en) * | 2005-02-18 | 2011-03-29 | Hewlett-Packard Development Company, L.P. | Systems and methods for CPU repair |
US7607040B2 (en) * | 2005-02-18 | 2009-10-20 | Hewlett-Packard Development Company, L.P. | Methods and systems for conducting processor health-checks |
US20060236035A1 (en) * | 2005-02-18 | 2006-10-19 | Jeff Barlow | Systems and methods for CPU repair |
US8667324B2 (en) * | 2005-02-18 | 2014-03-04 | Hewlett-Packard Development Company, L.P. | Systems and methods for CPU repair |
US7694175B2 (en) * | 2005-02-18 | 2010-04-06 | Hewlett-Packard Development Company, L.P. | Methods and systems for conducting processor health-checks |
US7694174B2 (en) * | 2005-02-18 | 2010-04-06 | Hewlett-Packard Development Company, L.P. | Systems and methods for CPU repair |
US7624313B2 (en) * | 2005-03-28 | 2009-11-24 | Hewlett-Packard Development Company, L.P. | TCAM BIST with redundancy |
JP2006294103A (ja) | 2005-04-07 | 2006-10-26 | Matsushita Electric Ind Co Ltd | 半導体記憶装置 |
US20060282821A1 (en) * | 2005-06-10 | 2006-12-14 | Renno Erik K | Efficient subprogram return in microprocessors |
WO2007112083A2 (en) * | 2006-03-24 | 2007-10-04 | University Of Mississippi | High-speed data compression based on set associative cache mapping techniques |
US20080059753A1 (en) * | 2006-08-30 | 2008-03-06 | Sebastien Hily | Scheduling operations corresponding to store instructions |
US7647538B2 (en) * | 2007-03-21 | 2010-01-12 | Advantest Corporation | Test apparatus and electronic device for generating test signal by using repeated interval in a test instruction stream |
US10020037B2 (en) * | 2007-12-10 | 2018-07-10 | Intel Corporation | Capacity register file |
KR102101304B1 (ko) * | 2013-03-15 | 2020-04-16 | 삼성전자주식회사 | 메모리 컨트롤러 및 메모리 컨트롤러의 동작 방법 |
US20150074474A1 (en) * | 2013-09-06 | 2015-03-12 | Broadcom Corporation | System and method for on-the-fly incremental memory repair |
US10686539B2 (en) * | 2015-05-29 | 2020-06-16 | Avago Technologies International Sales Pte. Limited | Flexible debug observation point insertion in pipeline designs |
JP6660285B2 (ja) * | 2016-12-14 | 2020-03-11 | 株式会社ソフイア | 遊技機 |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4357656A (en) * | 1977-12-09 | 1982-11-02 | Digital Equipment Corporation | Method and apparatus for disabling and diagnosing cache memory storage locations |
US4414665A (en) * | 1979-11-21 | 1983-11-08 | Nippon Telegraph & Telephone Public Corp. | Semiconductor memory device test apparatus |
US4736373A (en) * | 1981-08-03 | 1988-04-05 | Pacific Western Systems, Inc. | Memory tester having concurrent failure data readout and memory repair analysis |
JPS59127286A (ja) * | 1983-01-05 | 1984-07-23 | Hitachi Ltd | 主記憶制御方式 |
US4584681A (en) * | 1983-09-02 | 1986-04-22 | International Business Machines Corporation | Memory correction scheme using spare arrays |
US4639915A (en) * | 1983-10-06 | 1987-01-27 | Eaton Corporation | High speed redundancy processor |
JPH0666120B2 (ja) * | 1983-11-09 | 1994-08-24 | 株式会社東芝 | 半導体記憶装置の冗長部 |
EP0198935A1 (de) * | 1985-04-23 | 1986-10-29 | Deutsche ITT Industries GmbH | Elektrisch umprogrammierbarer Halbleiterspeicher mit Redundanz |
JPS6238599A (ja) * | 1985-08-13 | 1987-02-19 | Mitsubishi Electric Corp | 半導体記憶装置 |
US4757474A (en) * | 1986-01-28 | 1988-07-12 | Fujitsu Limited | Semiconductor memory device having redundancy circuit portion |
JPS62250599A (ja) * | 1986-04-23 | 1987-10-31 | Hitachi Ltd | 半導体メモリ装置 |
US5019971A (en) * | 1987-04-13 | 1991-05-28 | Prime Computer, Inc. | High availability cache organization |
JPH01177656A (ja) * | 1988-01-08 | 1989-07-13 | Tokyo Electric Co Ltd | メモリの使用領域設定装置 |
US5157664A (en) * | 1989-09-21 | 1992-10-20 | Texas Instruments Incorporated | Tester for semiconductor memory devices |
JPH03160696A (ja) * | 1989-11-17 | 1991-07-10 | Mitsubishi Electric Corp | 不揮発性半導体記憶装置 |
JPH03160698A (ja) * | 1989-11-17 | 1991-07-10 | Mitsubishi Electric Corp | 不揮発性半導体記憶装置 |
JPH03160697A (ja) * | 1989-11-17 | 1991-07-10 | Mitsubishi Electric Corp | 不揮発性半導体記憶装置 |
JPH03162798A (ja) * | 1989-11-20 | 1991-07-12 | Mitsubishi Electric Corp | 不揮発性半導体記憶装置 |
JP2900451B2 (ja) * | 1989-11-30 | 1999-06-02 | ソニー株式会社 | メモリ装置 |
JPH03214500A (ja) * | 1990-01-18 | 1991-09-19 | Sony Corp | メモリ装置 |
JP2862948B2 (ja) * | 1990-04-13 | 1999-03-03 | 三菱電機株式会社 | 半導体記憶装置 |
US5278839A (en) * | 1990-04-18 | 1994-01-11 | Hitachi, Ltd. | Semiconductor integrated circuit having self-check and self-repair capabilities |
ATE104465T1 (de) * | 1990-05-10 | 1994-04-15 | Siemens Ag | Integrierter halbleiterspeicher mit paralleltestmoeglichkeit und redundanzverfahren. |
JP2632076B2 (ja) * | 1990-08-02 | 1997-07-16 | 三菱電機株式会社 | 半導体記憶装置 |
US5267242A (en) * | 1991-09-05 | 1993-11-30 | International Business Machines Corporation | Method and apparatus for substituting spare memory chip for malfunctioning memory chip with scrubbing |
JP2741824B2 (ja) * | 1992-10-14 | 1998-04-22 | 三菱電機株式会社 | 半導体記憶装置 |
US5471415A (en) * | 1993-06-30 | 1995-11-28 | Sgs-Thomson Microelectronics, Inc. | Cache tag memory |
US5550974A (en) * | 1994-04-15 | 1996-08-27 | Motorola, Inc. | Testable memory array which is immune to multiple wordline assertions during scan testing |
-
1991
- 1991-08-07 JP JP3197688A patent/JP2796590B2/ja not_active Expired - Lifetime
-
1995
- 1995-03-13 US US08/403,558 patent/US5644699A/en not_active Expired - Lifetime
-
1996
- 1996-12-13 US US08/768,021 patent/US5954435A/en not_active Expired - Lifetime
-
1997
- 1997-03-06 US US08/812,464 patent/US5991902A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US5954435A (en) | 1999-09-21 |
US5644699A (en) | 1997-07-01 |
US5991902A (en) | 1999-11-23 |
JPH0540702A (ja) | 1993-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2796590B2 (ja) | メモリ装置及びそれを使用したデータ処理装置 | |
US5826074A (en) | Extenstion of 32-bit architecture for 64-bit addressing with shared super-page register | |
EP0465321B1 (en) | Ensuring data integrity in multiprocessor or pipelined processor system | |
US5367705A (en) | In-register data manipulation using data shift in reduced instruction set processor | |
US5778423A (en) | Prefetch instruction for improving performance in reduced instruction set processor | |
US5995746A (en) | Byte-compare operation for high-performance processor | |
US6351789B1 (en) | Built-in self-test circuit and method for validating an associative data array | |
US5454091A (en) | Virtual to physical address translation scheme with granularity hint for identifying subsequent pages to be accessed | |
TWI541658B (zh) | 資料處理裝置及半導體積體電路裝置 | |
US5167026A (en) | Simultaneously or sequentially decoding multiple specifiers of a variable length pipeline instruction based on detection of modified value of specifier registers | |
US5481734A (en) | Data processor having 2n bits width data bus for context switching function | |
US6167509A (en) | Branch performance in high speed processor | |
EP0463973A2 (en) | Branch prediction in high performance processor | |
US5509137A (en) | Store processing method in a pipelined cache memory | |
US5940858A (en) | Cache circuit with programmable sizing and method of operation | |
US5404560A (en) | Microprocessor having external control store | |
JPH0583932B2 (ja) | ||
US4569018A (en) | Digital data processing system having dual-purpose scratchpad and address translation memory | |
JPH0578050B2 (ja) | ||
US5469551A (en) | Method and apparatus for eliminating branches using conditional move instructions | |
JPH0810428B2 (ja) | データ処理装置 | |
US6757809B1 (en) | Data processor having 2n bits width data bus for context switching functions | |
JPH044618B2 (ja) | ||
JPH07120284B2 (ja) | データ処理装置 | |
EP0509558A2 (en) | Information processing system with support means responsive to an overall system control |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080703 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080703 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090703 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100703 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110703 Year of fee payment: 13 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110703 Year of fee payment: 13 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110703 Year of fee payment: 13 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120703 Year of fee payment: 14 |
|
EXPY | Cancellation because of completion of term | ||
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120703 Year of fee payment: 14 |