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
Application number
JP3197688A
Other languages
English (en)
Other versions
JPH0540702A (ja
Inventor
豊彦 吉田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP3197688A priority Critical patent/JP2796590B2/ja
Publication of JPH0540702A publication Critical patent/JPH0540702A/ja
Priority to US08/403,558 priority patent/US5644699A/en
Priority to US08/768,021 priority patent/US5954435A/en
Priority to US08/812,464 priority patent/US5991902A/en
Application granted granted Critical
Publication of JP2796590B2 publication Critical patent/JP2796590B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • G11C29/24Accessing extra cells, e.g. dummy cells or redundant cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はメモリ装置及びそれを備
えたデータ処理装置に関し、更に詳述すれば、予備回路
を備えることにより部分的な故障を救済可能なメモリ装
置及びそれを備えたデータ処理装置に関する。
【0002】
【従来の技術】近年、データ処理装置の高性能化,高機
能化に従ってデータ処理装置のメモリも大容量化し、こ
れに伴ってメモリの故障が原因でデータ処理装置が不良
になる確率が増大するという問題があった。特に、デー
タ処理装置の演算処理部,制御部及びメモリ部を単一の
LSI チップに実装するマイクロコンピュータあるいは高
速のキャッシュメモリを演算部と同一のLSI に実装する
キャッシュメモリ内蔵マイクロプロセッサ等のデータ処
理装置では、同一LSI 上に実装されるメモリ容量の増大
に伴ってメモリ部分の歩留りがLSI 全体の歩留りを左右
するため、メモリの歩留りを向上しない限りLSI 全体の
歩留りが向上しないという問題がある。
【0003】LSIのメモリ部の歩留り低下を防ぐため
に、冗長なメモリ回路を予備回路としてLSI に内蔵し、
ポリシリコンヒューズあるいはレーザによる配線の切断
により故障回路を予備回路に置き換える技術が既に提案
されている。また、不揮発性メモリではポリシリコンヒ
ューズあるいはレーザによる配線の切断は行わずに、不
揮発性ラッチに置き換え情報をセットしておくことによ
り故障回路を予備回路に切り替える技術が例えば特願平
1-1302591号「不揮発性半導体記憶装置」として提案さ
れている。
【0004】また、上述の不揮発性半導体記憶装置に更
にメモリの故障診断を行う診断回路及び故障部分の予備
回路への置き換えを行う置き換え回路を内蔵し、セルフ
テストモードでチップを動作させて診断を行い、不揮発
性ラッチに置き換え情報をセットすることによりチップ
単体の動作で故障回路の救済を行うメモリ装置も例えば
特願平1-1300348号「不揮発性半導体記憶装置」, 特願
平1-1300349号「不揮発性半導体記憶装置」, 特願平1
-1300350号「不揮発性半導体記憶装置」等として提案さ
れている。
【0005】マイクロプロセッサの内蔵キャッシュに予
備回路を備え、レーザーによりフューズを切断して故障
回路を救済する方法も既に提案されており、例えば「R.
Allmonn etc.,"System, Process, and Design Implica
tions of a Reduced SupplyVoltage Microprocessor,"
DIGEST OF TECHNICAL PAPERS 1990 IEEE ISSCC, Februa
ry 1990. 」に詳しく記載されている。
【0006】
【発明が解決しようとする課題】ポリシリコンヒューズ
やあるいはレーザによる配線の切断等の物理的な加工に
より故障回路を予備回路に置き換える場合は、不良と判
断された装置の救済可能性をテストした上で通常の装置
の動作としては行わない物理的な加工処理が必要にな
る。また、不揮発性ラッチに置き換え情報をセットする
ことにより故障回路を予備回路に置き換える場合は、特
願平1-1302591号「不揮発性半導体記憶装置」に示され
ているように不揮発性ラッチをその他の回路と同様に構
成できる場合は付加コストは少ないが、通常の動作では
不揮発性メモリを使用しない装置では故障回路の救済の
みの目的で不揮発性メモリを追加する必要がある。特
に、1つのLSI 上に実装される揮発性メモリ装置あるい
はデータ処理装置の製造に際しては、不揮発性ラッチを
実装するための特別な工程を追加する必要が生じる。
【0007】また、物理的な加工により故障回路を予備
回路に置き換える従来の方法では、故障診断と故障回路
の予備回路への置き換えとのために通常の動作以外の
置を外部から行う必要があった。不揮発性ラッチを使用
する場合は、紫外線を照射して不揮発性ラッチに記憶さ
れているデータを書き換える際に故障回路を予備回路に
置き換えるための不揮発性ラッチの置き換え情報も消去
されてしまうため、メモリ内容の消去を行った後には必
ずセルフテストモードに切り替えて診断動作と故障救済
動作とを行う必要がある。このため、故障が全くない装
置と故障回路を予備回路で救済した装置は製造工程また
は利用中になんらかの異なる処置を行う必要があり、両
者を同一に扱うことはできなかった。
【0008】本発明はこのような事情に鑑みてなされた
ものであり、揮発性メモリをリセットシーケンスにおい
て診断し、故障部分がある場合には回路の電気的接続を
切替えて予備回路に置き替えることを可能としたメモリ
装置及びそれを使用したデータ処理装置の提供を主たる
目的とする。また本発明は、メモリ装置またはそれを使
用したデータ処理装置のメモリ部分の故障を救済して製
造歩留りを向上させることを目的とする。
【0009】
【課題を解決するための手段】第1,第3発明のメモリ
装置及びデータ処理装置は、リセット信号が入力される
リセット信号入力端子と、クロックが入力されるクロッ
ク入力端子と、第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の場
合と同一クロック数で行わせることにより前記メモリ部
の初期化を行う診断回路とを備えたことを特徴とする。
【0010】また、第2,第4発明のメモリ装置及びデ
ータ処理装置は、バリッドビットとタグフィールドとデ
ータフィールドとから構成されるエントリ複数からなる
メモリ部と、前記メモリ部に接続し前記メモリ部の各エ
ントリに対応するアクセス許可ビットの値を記憶する制
御メモリと、前記アクセス許可ビットが第1の値である
場合は前記バリッドビットと前記タグフィールドとの値
に従って前記データフィールドの値の有効/無効を判断
して有効である場合にはヒットと判定し、無効である場
合にはミスと判定し、前記アクセス許可ビットが第2の
値である場合は前記データフィールドの値に拘わらずミ
スと判定するヒットミス判定部とを有するバッファメモ
リ機構と、前記バッファメモリ機構に接続し、レジスタ
と演算回路とを有し、前記バッファメモリ機構へのデー
タの書き込み,前記バッファメモリ機構からのデータの
読み出し及びデータ間の演算を行う演算機構と前記メモ
リ部の各エントリの故障診断を行い、故障がないと診断
されたエントリに対応するアクセス許可ビットを前記第
1の値とすることにより、ヒット又はミスと判定し、ま
た故障があると診断されたエントリに対応するアクセス
許可ビットを前記第2の値とすることによりデータフィ
ールド値に拘わらずミスと判定し、故障があると診断さ
れたエントリを無効化し、この部分を切り放すことで前
記バッファメモリ機構の故障救済を行う診断回路とを備
たことを特徴とする
【0011】
【0012】
【0013】
【0014】
【0015】
【0016】
【作用】また、第1,第3の発明のメモリ装置及びデー
タ処理装置は、リセット信号入力端子からリセット割り
込みが入力されると、クロック入力端子から入力される
クロック信号に同期して、データバッファの故障診断を
行い、第1のメモリに故障がある場合は第メモリ
アクセス有効指定ビットに”0”を、第3のメモリのア
クセス有効指定ビットに”1”をそれぞれ書き込み、更
メモリアドレス連想記憶に第1のメモリのアドレスを
書き込むことにより第1のメモリ第3のメモリに置き
換え、第2のメモリに故障がある場合は第メモリ
アクセス有効指定ビットに”0”を、第3のメモリのア
クセス有効指定ビットに”1”をそれぞれ書き込み、更
メモリアドレス連想記憶に第2のメモリのアドレスを
書き込むことにより第2のメモリ第3のメモリに置き
換えて故障の救済を行ってデータバッファを初期化し、
第1のメモリにも第2のメモリにも故障がない場合は第
1のメモリと第2のメモリとのアクセス有効指定ビット
に共に”1”を書き込み、第3のメモリのアクセス有効
指定ビットに”0”を書き込んで故障救済行わなずに
データバッファを初期化し、故障救済の位置と故障救済
の有無によらず常に一定クロック数で故障診断と初期化
とを終了する。
【0017】
【0018】
【0019】また、第2,第4の発明のメモリ装置及び
データ処理装置は、データキャッシュとして使用するメ
モリ部の各エントリの故障診断を行い、故障したエント
リに対応するアクセス有効指定ビットに”0”を、故障
していないエントリに対応するアクセス有効指定ビット
に”1”を書き込むことにより故障したエントリをアク
セス禁止にしてメモリ部内の故障した部分を切り放して
データキャッシュの故障救済を行う。
【0020】
【0021】
【0022】
【実施例】以下、本発明をその実施例を示す図面に基づ
いて詳述する。
【0023】(1) 「本発明のデータ処理装置を用いたシ
ステムの構成」 図1は本発明のデータ処理装置100 を用いたシステム構
成の一実施例を示すブロック図である。
【0024】本実施例では、本発明のデータ処理装置10
0, 命令キャッシュ106, データキャッシュ107, 108及
び主メモリ109 がアドレスバス101, データバス102,
命令バス103, メモリアドレスバス104 及びモリデータ
バス105 で相互に結合されている。
【0025】アドレスバス101 は本発明のデータ処理装
置100から出力されるアドレスを命令キャッシュ106 と
データキャッシュ107, 108とに入力する。命令バス103
は命令キャッシュ106 から出力される命令コードを本発
明のデータ処理装置100 に転送する。データバス102 は
本発明のデータ処理装置100 から出力されるデータをデ
ータキャッシュ107, 108に転送し、またデータキャッシ
ュ107, 108から出力されるデータを本発明のデータ処理
装置100 に転送する。メモリアドレスバス104は命令キ
ャッシュ106 またはデータキャッシュ107, 108から出力
されるアドレスを主メモリ109 に転送する。メモリデー
タバス105 は主メモリ109 と命令キャッシュ106 または
データキャッシュ107, 108間で命令またはデータを転送
する。
【0026】命令キャッシュ106, データキャッシュ10
7, 108がミスした場合はそれぞれのキャッシュ106, 107
または108 がメモリアドレスバス104 とメモリデータバ
ス105 とのバス権を調停して主メモリ109 をアクセスす
る。
【0027】データキャッシュ107, 108は本発明のデー
タ処理装置100 側では64ビットのバスに結合しているた
め、両データキャッシュ107, 108が協調して動作する。
各64ビットデータ単位のデータの内の上位32ビットのデ
ータをデータキャッシュ107が、下位32ビットのデータ
をデータキャッシュ108 がそれぞれ分担して受け持つ。
【0028】本発明のデータ処理装置100 は初期設定を
変更することにより、図1に示されているような命令バ
スとデータバスとを別々に有するディアルバスモードの
他、8バイトのデータバスまたは4バイトのデータバス
で命令とデータとを共にアクセスする2種類のシングル
バスモードでも外部のメモリをアクセスすることができ
る。
【0029】以下、本発明のデータ処理装置100 の命令
体系及び処理機構、故障救済機構を備えた内蔵メモリの
詳細について説明する。
【0030】(2) 「本発明のデータ処理装置の命令」 (2.1) 「命令フォーマット」
【0031】本発明のデータ処理装置100 の命令は16ビ
ット単位で可変長となっており、奇数バイト長の命令は
ない。
【0032】本発明のデータ処理装置100 では高頻度に
使用される命令を短いフォーマットとするため、特に工
夫された命令フォーマット体系を有する。たとえば、2
オペランド命令に対しては基本的に「4バイト+拡張
部」の構成を有し、全てのアドレッシングモードが利用
できる一般形フォーマットと、頻度の高い命令とアドレ
ッシングモードとのみを使用できる短縮形フォーマット
との2つのフォーマットとを有する。
【0033】図2,図3,図4,図5は本発明のデータ
処理装置100 の命令フォーマットを示す模式図である。
これらの模式図中に現われる記号の意味は以下の通りで
ある。
【0034】−:オペレーションコードが入る部分 Ea:8ビットの一般形のアドレッシングモードでオペラ
ンドを指定する部分 Sh:6ビットの短縮形のアドレッシングモードでオペラ
ンドを指定する部分 Rn:レジスタファイル上のオペランドをレジスタ番号で
指定する部分
【0035】フォーマットは、図2に示すように右側が
LSB側で、かつ高いアドレスになっている。アドレスN
とアドレスN+1との2バイトを見た後でないと命令フォ
ーマットが判別できないようになっているが、これは命
令が必ず16ビット(ハーフワード)単位でフェッチ及び
デコードされることを前提としたためである。
【0036】本発明のデータ処理装置100 の命令では、
いずれのフォーマットの場合も、各オペランドのEaまた
はShの拡張部は必ずそのEaまたはShの基本部を含むハー
フワードの直後に置かれる。これは、命令により暗黙に
指定される即値データ及び命令の拡張部に優先する。従
って、4バイト以上の命令では、Eaの拡張部によって命
令のオペレーションコードが分断される場合がある。
【0037】なお、本発明のデータ処理装置100 の命令
フォーマットについては特開昭64-91253号公報に詳しく
記載されている。
【0038】(2.2) 「アドレッシングモード」 本発明のデータ処理装置100 の命令のアドレッシングモ
ード指定方法には、レジスタを含めて6ビットで指定す
る短縮形と、8ビットで指定する一般形とがある。
【0039】未定義のアドレッシングモードを指定した
場合、あるいは意味的に考えて明らかに不合理なアドレ
ッシングモードの組み合わせが指定された場合には、未
定義命令を実行した場合と同様に予約命令例外が発生
し、例外処理が起動される。これに該当するのは、デス
ティネーションが即値モードである場合、アドレス計算
を伴うべきアドレッシングモード指定フィールドで即値
モードが使用された場合などである。
【0040】本発明のデータ処理装置100 の命令では種
々のアドレッシングモードをサポートする。本発明のデ
ータ処理装置100 でサポートされるアドレッシングモー
ドには、レジスタ直接モード,レジスタ間接モード,レ
ジスタ相対間接モード,即値モード,絶対モード,PC相
対間接モード,スタックポップモード,スタックプッシ
ュモード,多段間接モードがある。
【0041】レジスタ直接モードは、レジスタの内容を
そのままオペランドとするアドレッシングモードであ
る。
【0042】レジスタ間接モードは、汎用レジスタの内
容をアドレスとするメモリの内容をオペランドとするア
ドレッシングモードである。
【0043】レジスタ相対間接モードは、ディスプレー
スメント値が16ビットであるか32ビットであるかによ
り、2種類に分かれる。いずれも、汎用レジスタの内容
に16ビットまたは32ビットのディスプレースメント値を
加えた値をアドレスとするメモリの内容をオペランドと
するアドレッシングモードである。なお、ディスプレー
スメント値は符号付きとして扱われる。
【0044】即値モードは、命令コード中で指定される
ビットパターンをそのまま2進数と見なしてオペランド
とするアドレッシングモードである。フォーマット中の
即値データのサイズはオペランドサイズとして命令中で
指定される。
【0045】絶対モードは、アドレス値が16ビットで示
されるか32ビットで示されるかにより2種類に分かれ
る。いずれも、命令コード中で指定される16ビットまた
は32ビットのビットパターンをアドレスとしたメモリの
内容をオペランドとするアドレッシングモードである。
16ビットでアドレスが示される場合は指定されたアドレ
ス値が32ビットに符号拡張される。
【0046】PC相対間接モードは、ディスプレースメン
ト値が16ビットであるか32ビットであるかにより、2種
類に分かれる。いずれも、プログラムカウンタの内容に
16ビットまたは32ビットのディスプレースメント値を加
えた値をアドレスとするメモリの内容をオペランドとす
るアドレッシングモードである。なお、ディスプレース
メント値は符号付きとして扱われる。PC相対間接モード
において参照されるプログラムカウンタの値は、そのオ
ペランドを含む命令の先頭アドレスである。
【0047】スタックポップモードはスタックポインタ
SPの内容をアドレスとするメモリの内容をオペランドと
するアドレッシングモードである。オペランドアクセス
後、スタックポインタSPをオペランドサイズだけインク
リメントする。例えば、32ビットデータを扱う場合に
は、オペランドアクセス後にSPが+4だけ更新される。
8, 16, 64ビットのサイズのオペランドに対するスタッ
クポップモードの指定も可能であり、それぞれSPが+1,
+2, +8だけ更新される。
【0048】スタックプッシュモードはスタックポイン
タSPの内容をオペランドサイズだけデクリメントした内
容をアドレスとするメモリの内容をオペランドとするア
ドレッシングモードである。スタックプッシュモードで
はオペランドアクセス前にスタックポインタSPがデクリ
メントされる。例えば、32ビットデータを扱う場合に
は、オペランドアクセス前にSPが-4だけ更新される。
8, 16, 64ビットのサイズのオペランドに対するスタッ
クプッシュモードの指定も可能であり、それぞれSPが-
1, -2, -8だけ更新される。
【0049】多段間接モードは汎用レジスタあるいはプ
ログラムカウンタPCの値をベースアドレスとし、その値
にインデックスレジスタ値やディスプレースメント値を
加算した値をアドレスとするか、あるいはそのアドレス
をもとにメモリ間接アドレッシングをするアドレッシン
グモードである。
【0050】なお、本発明のデータ処理装置100 の命令
のアドレッシングモードについては本発明の命令フォー
マットと同様に特開昭64-91253号公報に詳しく記載され
ている。
【0051】(3) 「メモリ空間とコンテキストスイッ
チ」 本発明のデータ処理装置100 はプログラム及びデータを
格納するメモリ空間である論理空間と、各種のレジスタ
及び一部の命令で操作するデータを格納するメモリ空間
である制御空間との2つのメモリ空間をサポートする。
【0052】論理空間は従来のデータ処理装置において
プログラム及びデータが格納されるメモリ空間と同じで
ある。制御空間には各種のレジスタがバイトアドレスで
マップされているレジスタ領域とデータを格納するため
のデータ領域とがあり、制御空間操作命令でデータを書
き込み、また読み出すことが出来る。制御空間のデータ
領域はコンテキスト操作命令でもアクセス出来る。本発
明のデータ処理装置100 と類似した手法で論理空間と制
御空間とをサポートし、制御空間にコンテキストを保持
する手法については、たとえば特開昭64-91253号公報に
詳しく開示されている。
【0053】(3.1) 「コンテキストブロックフォーマッ
ト」 図6は本発明のデータ処理装置100 のコンテキストスイ
ッチ命令である LDCTX命令と STCTX命令とで操作される
コンテキストブロックのフォーマットを示す模式図であ
る。なお、コンテキストブロックの先頭アドレスは CTX
BBレジスタに保持される。
【0054】LDCTX命令と STCTX命令とで操作されるコ
ンテキストブロックのフォーマットは図7に示す CSWレ
ジスタで指定される。 CSWレジスタのFRビット13とRGビ
ット14とが共に”1”である場合は図6に示すコンテキ
ストブロックフォーマットとなる。
【0055】FRビット13が”0”であり且つRGビット14
が”1”である場合は図6の浮動小数点レジスタ12が L
DCTX命令と STCTX命令とでの操作対象とならない。
【0056】FRビット13とRGビット14とが共に”0”で
ある場合は図6の浮動小数点レジスタ12, 汎用レジスタ
10, 11が LDCTX命令と STCTX命令とによる操作対象には
ならない。この場合は CSWレジスタと4つのスタックポ
インタSPI, SP0, SP1, SP2,SP3 及びアドレス変換テー
ブルベースを示すUATBレジスタと論理空間IDを示すLSID
レジスタとが操作対象になる。
【0057】(3.2) 「コンテキスト操作命令」 LDCTX 命令のビットパターンを図8の模式図に示す。
【0058】LDCTX命令の CTXBADRフィールド16はロー
ドすべきコンテキストブロックの先頭アドレスを8ビッ
トの一般形アドレッシングモードで指定するフィールド
である。Xビット15はロードすべきコンテキストブロッ
クが論理空間にあるのか制御空間にあるのかを示すビッ
トである。具体的には、Xビット15が”0”であればコ
ンテキストブロックは論理空間にあり、Xビット15が”
1”であればコンテキストブロックは制御空間にあるこ
とをそれぞれ示す。 LDCTX命令が実行されるとCTXBADR
フィールド16で指定されるアドレスが CTXBBレジスタに
ロードされ、Xビット15で指定される空間の CTXBADRフ
ィールド16で指定されるアドレスにあり、先頭の CSW値
で指定されるフォーマットの操作対象コンテキストブロ
ックが対応するレジスタにロードされる。
【0059】STCTX命令のビットパターンを図9の模式
図に示す。
【0060】STCTX命令のXビット17はコンテキストブ
ロックをストアすべき空間を指定する。具体的には、X
ビット17が”0”であればコンテキストブロックを論理
空間にストアすることが指定され、Xビット17が”1”
であればコンテキストブロックを制御空間にストアする
ことがそれぞれ指定される。ストアすべきメモリアドレ
スは CTXBBレジスタで指定される。 STCTX命令が実行さ
れると、Xビット17で指定される空間の CTXBBレジスタ
で指定されるアドレスに CSWレジスタで指定されるフォ
ーマットのコンテキストブロックに含まれるレジスタの
内容が退避される。
【0061】(4) 「本発明のデータ処理装置の機能ブロ
ック」 図10は本発明のデータ処理装置100 の機能構成を示す
ブロック図である。
【0062】本発明のデータ処理装置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)を通じて各種制御信号により結合している。
【0063】命令フェッチ部111 は命令を内蔵命令キャ
ッシュ51あるいは外部のメモリからフェッチする。命令
デコード部117 は命令フェッチ部111 からIIバス726 を
通じて転送された命令をデコードする。IROM部118 はマ
イクロプログラムに従って整数演算の制御を行う。FROM
部119 は整数演算とは独立のマイクロプログラムにより
浮動小数点演算を制御する。PC生成部113 は命令のPC値
を計算する。アドレス生成部114 はオペランドのアドレ
スを計算する。オペランドアクセス部112 は内蔵データ
キャッシュ107, 108あるいは外部のメモリからオペラン
ドフェッチし、また外部のメモリへオペランドをストア
する処理を行う。
【0064】命令は命令フェッチ部111 から取り込ま
れ、命令デコード部117 でデコードされ、IROM部118 あ
るいはFROM部119 のマイクロプログラム制御により整数
演算部115 あるいは浮動小数点演算部116 で実行され
る。命令のPC値の計算、オペランドのアドレス計算、オ
ペランドのアクセスは整数演算及び浮動小数点演算とは
独立したブロックでハードワイヤード制御により行われ
る。
【0065】命令及びデータのアドレスはJAバス724 あ
るいはAAバス731 で各部から命令フェッチ部111 及びオ
ペランドアクセス部112 に転送される。各部とオペラン
ドアクセス部112 との間のオペランドの転送はDDバス71
0 により行われる。
【0066】(4.1) 「バスインタフェイス部」 バスインタフェイス部110 は命令フェッチ部111 あるい
はオペランドアクセス部112 の要求に従って外部のメモ
リをアクセスする。本発明のデータ処理装置100 のメモ
リアクセスはクロック同期のプロトコルで行われる。1
回のメモリアクセスサイクルには最小2クロックサイク
ルが必要である。リードサイクルには命令コードあるい
はデータを1つずつフェッチする標準アクセスと、命令
コードあるいはデータを4回連続フェッチするブロック
アクセスとがある。更に、ブロックアクセスにはアドレ
スを1回出力することにより命令コードあるいはデータ
を4回連続フェッチするバースト転送と、アドレスを4
回出力することにより命令コードあるいはデータを4回
連続フェッチするクワッド転送とがある。ライトサイク
ルはアドレスを1回出力してデータを1回出力する標準
ライトアクセスのみである。
【0067】なお、本発明のデータ処理装置100 はブロ
ックアクセスでライトアクセスを行うことはない。各メ
モリサイクルの制御及び各種信号の入出力はバスインタ
フェイスでハードワイヤード制御により行われる。
【0068】バスインタフェイス部110 の構成を図11
のブロック図に示す。
【0069】オペランドアクセス部112 及び命令フェッ
チ部111 とアドレスパッド(A-pad)1101とはBAバス721
で結合されている。DADINF 1102, IADINF 1103はそれぞ
れデータあるいは命令のブロック転送時にアドレスをイ
ンクリメントする回路である。
【0070】データバッド(D-pad)1104 とオペランドア
クセス部112 とはBDバス722 で結合されている。データ
パッド(D-pad)1104 とBDバス722 との間には32ビットシ
ングルバスモードにおいて外部の32ビットデータバスと
64ビットのBDバス722 のバス幅変換を行うバス幅変換回
路(64TO32-32TO64)1105 が介装されている。
【0071】本発明のデータ処理装置100 では常に最新
の TLBの値をメモリに書き戻すために、BDバス722 には
ページテーブルアクセスを行う際にページテーブルエン
トリの参照状態フラグ及び変更状態フラグを更新した場
合にリードモディファイライトを行うためのページテー
ブルエントリ変更回路(PTERMW)1106が接続されている。
【0072】命令パッド(I-pad)1107 と命令フェッチ部
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が介装されている。
【0073】オペランドアクセス部112 からバスインタ
フェイス部110 へのアクセス要求はデータアクセスと、
TLBがミスした際のアドレス変換テーブルアクセスとの
2種類がある。
【0074】データリードの際は、オペランドアクセス
部112 からBAバス721 を通じてアドレスバスに出力され
たアドレスに従ってデータバスからデータがフェッチさ
れ、BDバス722 を通じてオペランドアクセス部112 へ転
送される。この際、32ビットバスモードではバス変換回
路(64TO32-32TO64)1105 によりデータバス上の32ビット
データがBDバス722 の上位32ビットと下位32ビットとの
両方に出力される。データキャッシュがミスしてブロッ
クアクセスでデータをフェッチする際は、オペランドア
クセス部112からは1つのアドレスが出力され、残り3
つのアドレスはDADINF回路1102で下位ビットをラップア
ラウンドして出力する。
【0075】データライトの際は、オペランドアクセス
部112 からBAバス721 を通じてアドレスバスにアドレス
が出力され、BDバス722 を通じてデータバスにデータが
出力される。この際、32ビットバスモードではバス変換
回路(64TO32-32TO64)1105 によりBDバス722 の上位32ビ
ットまたは下位32ビットの内の指定された方のデータが
データバスに出力される。
【0076】データアドレスの変換のためのアドレス変
換テーブルアクセスの際は、データバスを通じてアドレ
ス変換テーブルがアクセスされる。アドレス変換テーブ
ルエントリの読み込みの場合、オペランドアクセス部11
2 からBAバス721 を通じてアドレスバスに出力されたア
ドレスに従ってデータバスからテーブルのエントリがフ
ェッチされ、BDバス722 を通じてオペランドアクセス部
112 へ転送される。ページテーブルエントリのリードモ
ディファイライトの場合、オペランドアクセス部112 か
らBAバス721 を通じてアドレスバスに出力されたアドレ
スに従ってデータバスからテーブルのエントリがフェッ
チされ、BDバス722 を通じてオペランドアクセス部112
へ転送されると同時にページテーブルエントリのコピー
がPTERMW回路1106に保持され、PTERMW回路1106内でペー
ジテーブルエントリの変更が行われる。従って、ページ
テーブルエントリを書き戻す場合は、オペランドアクセ
ス部112 からBAバス721 を通じてアドレスバスにアドレ
スが出力され、PTERMW回路1106からBDバス722 を通じて
外部のデータバスにページテーブルエントリが出力され
る。
【0077】命令フェッチ部111 からバスインタフェイ
ス部110 へのアクセス要求は、命令フェッチと TLBがミ
スした際のアドレス変換テーブルアクセスとの2種類が
ある。
【0078】デュアルバスモードでの命令フェッチの場
合、命令フェッチ部111 からBAバス721 を通じてアドレ
スバスに出力されたアドレスに従って命令バスから命令
コードがフェッチされ、BIバス723 を通じて命令フェッ
チ部111 へ転送される。この際、32ビットの命令コード
はバス幅変換回路(32TO64)1108を通じてBIバス723 の上
位32ビットと下位32ビットとの両方に出力される。
【0079】シングルバスモードでの命令フェッチの場
合、命令フェッチ部111 からBAバス721 を通じてアドレ
スバスに出力されたアドレスに従ってデータバスから命
令コードがフェッチされ、BDバス722, D TOI回路110
9, BIバス723 を通じて命令フェッチ部111 へ転送され
る。
【0080】32ビットシングルバスモードにおいては、
データバスから入力された32ビットの命令コードがバス
幅変換回路(64TO32-32TO64)1105 を通じてBDバス722 の
上位32ビットと下位32ビットとの両方に出力される。命
令キャッシュ106 がミスしてブロックアクセスで命令コ
ードをフェッチする場合は、命令フェッチ部111 からは
1つのアドレスが出力され、残り3つのアドレスはIADI
NF回路1103で下位ビットをラップアラウンドして出力す
る。
【0081】命令アドレスの変換のためのアドレス変換
テーブルアクセスの際は、デュアルバスモードあるいは
シングルバスモードのいずれの場合もデータバスを通じ
てアドレス変換テーブルがアクセスされる。
【0082】アドレス変換テーブルエントリの読み込み
の場合、命令フェッチ部111 からBAバス721 を通じてア
ドレスバスに出力されたアドレスに従ってデータバスか
らテーブルのエントリがフェッチされ、BDバス722, D
TOI回路1109, BIバス723 を通じて命令フェッチ部111
へ転送される。
【0083】ページテーブルエントリのリードモディフ
ァイライトの場合、命令フェッチ部111 からBAバス721
を通じてアドレスバスに出力されたアドレスに従ってデ
ータバスからテーブルのエントリがフェッチされ、BDバ
ス722, D TOI回路1109、BIバス723 を通じて命令フェ
ッチ部111 へ転送されると同時にページテーブルエント
リのコピーがPTERMW回路1106に保持され、PTERMW回路11
06内でページテーブルエントリの変更が行われる。従っ
て、ページテーブルエントリを書き戻す場合は、命令フ
ェッチ部111 からBAバス721 を通じてアドレスバスにア
ドレスが出力され、PTERMW回路1106からBDバス722 を通
じて外部のデータバスにページテーブルエントリが出力
される。
【0084】バスインタフェイス部110 はメモリアクセ
スの他、外部割り込みの受け付け及びバスアービトレイ
ションの制御も行う。
【0085】本発明のデータ処理装置100 以外の外部デ
バイスがバスマスタになっていて本発明のデータ処理装
置100 がバススヌープ動作中である場合は、外部デバイ
スがデータライトを実行した際のアドレスバス上に出力
されたアドレスが取り込まれてBAバス721 を通じて命令
フェッチ部111 とオペランドアクセス部112 とに転送さ
れる。バススヌープ動作でのアドレスのとり込み動作
は、データライトサイクルに DS#信号がアサートされた
場合 (クロック非同期、エッジセンス) と、 MREQ#信号
がアサート中に MS#信号がアサートされた場合 (クロッ
ク同期、レベルセンス) とに行われる。
【0086】(4.2) 「命令フェッチ部」 命令フェッチ部111 の構成を図12のブロック図に示
す。
【0087】命令フェッチ部111 には命令アドレスのア
ドレス変換機構(DAT機構)1111, 8KBの内蔵命令キャッ
シュ51, 64エントリの命令用TLB 1112, 二つの32バイト
の命令キュー1113, 1114とそれらの制御部がある。次に
フェッチすべき命令の論理アドレスがTLB 1112により物
理アドレスに変換され、内蔵命令キャッシュ51から命令
コードがフェッチされて命令キュー1113, 1114を介して
命令デコード部117 へ転送される。
【0088】バスインタフェイス部110 と内蔵命令キャ
ッシュ51とは32ビットのアドレスバス (BAバス721)と64
ビットの命令バス (BIバス723)とで結合されており、内
蔵命令キャッシュ51と命令キュー1113, 1114とは 128ビ
ットの ICOUTバス734 で結合されている。バスインタフ
ェイス部110 から出力された命令は内蔵命令キャッシュ
51へ転送される他、内蔵命令キャッシュ51をバイパスし
て2つの命令キュー1113, 1114のいずれか、更には命令
キュー1113, 1114もバイパスして直接命令デコード部11
7 へ転送される場合もある。
【0089】命令TLB 1112は動作バスモードに拘わらず
常に16entry×4way の構成をとる。命令TLB 1112はJA
バス724 または非ジャンプアドレスバス725 から論理AD
DR1115を経由して転送された論理アドレス (変換前アド
レス) の下位に従ってTLB アドレスタグと物理アドレス
を出力する。TLB アドレスタグと論理アドレスの上位と
が一致すればTLB 1112はヒットしたことになり、出力さ
れた物理アドレスが有効である。TLB アドレスタグと論
理アドレスの上位とが一致しなければTLB 1112はミスし
たことになり、出力された物理アドレスは無効である。
TLB1112がミスした場合はDAT 機構1111によりページン
グを行ってアドレス変換を行い、TLB 1112のエントリを
更新する。
【0090】内蔵命令キャッシュ51は命令バスから命令
コードをフェッチする場合とデータバスを32ビット幅で
動作させて命令コードをフェッチする場合とは16byte×
128entry×4way の構成で動作し、データバスを64ビッ
ト幅で動作させて命令コードをフェッチする場合は32by
te×128entry×2way の構成で動作する。
【0091】内蔵命令キャッシュ51はJAバス724 または
非ジャンプアドレスバス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のエントリを更新した後に再びキャッ
シュをアクセスする。
【0092】DAT機構1111にはLSID, SATB, UATB, IOADD
R, IOMASKのコピーがあり、命令用TLB 1112がミスした
場合のページングによるアドレス変換, メモリアクセス
例外あるいはページ不在例外のチェック, 命令用TLB 11
12の更新を行い、更に外部のメモリへの命令アクセスの
物理アドレスがI/O 領域に入るか否かのチェックも行
う。
【0093】2つの命令キュー1113, 1114のうち1つは
条件分岐命令に連続する命令コードをプリフェッチして
キューイングし、もう1つは条件分岐命令の分岐先の命
令コードをプリフェッチしてキューイングする。2つの
命令キュー1113, 1114が共に命令をフェッチした状態で
更に条件分岐命令をデコードした場合の分岐先アドレス
は分岐先アドレスレジスタ(Bcc ADDR)1116に保持され、
先行する条件分岐命令が実行されていずれかの命令キュ
ー1113又は1114がクリアされた後にこのアドレスから新
たに命令がフェッチされる。
【0094】ジャンプ先以外の命令の論理アドレスは各
命令キュー1113, 1114の専用カウンタで計算される。ジ
ャンプが発生した場合には、新たな命令の論理アドレス
がアドレス生成部114, PC生成部113 あるいは整数演算
部115 からJAバス724 により各命令キュー1113, 1114の
カウンタにロードされる。
【0095】また、本発明のデータ処理装置100 がバス
スヌープ動作中はバスインタフェイス部110 が外部のア
ドレスバス101 上のアドレスをモニタし、図12に示す
物理アドレスバス (BAバス)721で内蔵命令キャッシュ51
へ転送する。バスインタフェイス部110 は本発明のデー
タ処理装置100 自身がライト動作を行ったメモリのアド
レスも内蔵命令キャッシュ51に転送する。
【0096】(4.3) 「命令デコード部」 本発明のデータ処理装置の命令は図13の模式図に示す
ように2バイト単位の可変長命令であり、基本的には
「2バイトの命令基本部+0〜4バイトのアドレッシン
グ修飾部」を1〜3回反復することにより命令が構成さ
れている。また、浮動小数点命令で倍精度数の即値が指
定された場合にのみ、8バイトのアドレッシング修飾部
が用いられる。
【0097】命令基本部にはオペレーションコード部と
アドレッシングモード指定部とがあり、インデックスア
ドレッシングあるいはメモリ間接アドレッシングが必要
な場合にはアドレッシング修飾部に代えて「2バイトの
多段間接モード指定部+0〜4バイトのアドレッシング
修飾部」が必要なだけ拡張される。また、命令により2
または4バイトの命令固有の拡張部が最後に付く場合も
ある。
【0098】本発明のデータ処理装置100 では上述した
可変長フォーマットの命令を効率よく処理するために、
命令デコード段階で1つの命令を1つまたは複数の処理
単位(ステップコード) に分解する。基本的には「2バ
イトの命令基本部+0〜4バイトのアドレッシング修飾
部」または「多段間接モード指定部+アドレッシング修
飾部」のデコード結果が1つのステップコードになり、
命令デコーダは1クロックに1つのステップコードを出
力する。しかし、第1オペランドにアドレッシング修飾
部がない命令あるいは先頭の命令基本部にオペランド指
定子がない命令では1クロックに2つの命令基本部 (32
ビット長) をデコードする。
【0099】また、本発明のデータ処理装置100 では一
部のレジスタ間演算命令は先行する命令と並列にデコー
ドされ、2命令を同時にデコードすることもできる。
【0100】本発明のデータ処理装置100 の命令デコー
ド部117 の構成を図14のブロック図に示す。
【0101】命令デコード部117 は命令デコードステー
ジ (Dステージ)32 とDステージ32に引き続くオペラン
ドのアドレス生成ステージ (Aステージ)33 との2つの
パイプラインステージで動作する。
【0102】Dステージ32で動作する命令デコードブロ
ックは、分岐予測部1171, メインデコーダ1172, 第1サ
ブデコーダ1173, 第2サブデコーダ1174, アドレッシン
グモードデコーダ1175及び拡張データ処理部1176であ
る。また、Aステージで動作する命令デコードブロック
はAステージデコーダ1177及びサブコード転送部1178で
ある。
【0103】分岐予測部1171は1ビット×1Kエントリ
の条件分岐命令の分岐履歴を保持しており、条件分岐命
令の直前にデコードした命令のPC値の下位アドレスに従
って分岐予測ビットを出力する。
【0104】メインデコーダ1172は最大4バイトの命令
基本部と1ビットの分岐予測ビットとをデコードする。
メインデコーダ1172の出力 (Dコード) はAステージデ
コーダ1177へ転送される。
【0105】第1サブデコーダ1173及び第2サブデコー
ダ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に転送される。
【0106】アドレッシングモードデコーダ1175は8ビ
ットのオペランド指定あるいは多段間接モードで指定さ
れる命令のアドレッシングモードフィールド部をデコー
ドしてアドレス生成部114 を制御するAコードを出力す
る。
【0107】拡張データ処理部1176はディスプレースメ
ントあるいは即値などのアドレッシング修飾部を命令コ
ードから取り出し、DISPバス727 を通じてアドレス生成
部114 あるいはPC生成部113 に転送する。拡張データ処
理部1176は一度に最大4バイトのデータしか扱えないた
め、8バイトの即値は2回に分けて転送する。
【0108】Aステージデコーダ1177はメインデコーダ
1172から出力される命令の中間デコード結果であるDコ
ードを詳細にデコードし、マイクロプログラムのエント
リ番地及びパラメータをFROM部119 とIROM部118 とに出
力する。FROM部119 には浮動小数点演算命令のデコード
結果 (FRコード) のみが転送され、IROM部118 には浮動
小数点命令を含む全命令のデコード結果が転送される。
また、Aステージデコーダ1177にはプライオリティエン
コーダが備えられており、LDM, STM等のレジスタリスト
に従って複数のオペランドをレジスタとメモリとの間で
転送する命令を複数の1度に8バイト以下のデータを転
送するメモリ−レジスタ間転送命令に分解する。
【0109】サブコード転送部1178はサブデコーダ117
3, 1174から出力されたデコード結果をAステージデコ
ーダ1177でデコードされる命令と同期させてIROM部118
に転送する。
【0110】また、Aステージデコーダ1177とサブコー
ド転送部1178からはオペランドを書き込むレジスタの番
号がアドレス生成部114 のスコアボードレジスタへ転送
され、パイプラインインターロック機構により書き込み
が終了していないレジスタ値あるいはメモリ値を後続命
令がオペランドアドレス計算に使用してRAWデータハ
ザード(Read-after-write data hazard)を起こさないよ
うに制御する。
【0111】(4.4) 「PC生成部」 PC生成部113 の構成を図15のブロック図に示す。
【0112】PC 生成部113 は命令デコードステージ32
での先行ジャンプ先アドレスを計算する分岐先アドレス
計算部1131, デコードした命令のPC値を計算するPC計算
部1132, パイプライン中で処理される命令の流れに同期
してPC値を転送するPC転送部1134, サブルーチンからの
プリリターン先アドレスを管理するPCスタック1135から
なる。
【0113】分岐先アドレス計算部1131は命令デコード
ステージ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 から転送されたデコード開始命令アド
レスとを命令デコードと平行して加算する。
【0114】デコードした命令がPC相対ジャンプを行う
命令(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 に出力する。
【0115】PCスタック1135はサブルーチンジャンプ命
令(BSR, JSR)からのリターン先アドレスのコピーを16エ
ントリのスタックに保持しており、サブルーチンリター
ン命令(RTS, EXITD)がデコードされた場合にリターン先
アドレスをJAバス724 に出力する。PCスタック1135では
サブルーチンジャンプ命令が実行されると、リターン先
アドレスがS1バス701 から転送されプッシュされる。タ
スクスイッチによりスタックが切り替えられたり、ある
いは16レベル以上のサブルーチンのネスティングなどが
発生するとPCスタック1135からJAバス724 に出力される
リターン先アドレスは正しいリターン先アドレスではな
くなる。このためサブルーチンリターン命令がパイプラ
インの命令実行ステージ35に到達した時点で正しいリタ
ーン先アドレスとJAバス724 にPCスタック1135から読み
出したプリリターンアドレスを再びS1バス701 へ読み出
して比較する。
【0116】PC計算部1132はPC加算器905 と作業用レジ
スタ(TPC, ATPC, DPC)906 とからなり、命令デコード部
117 でデコードする命令のPC値を計算する。PC値の計算
は1サイクル前にデコードした命令のアドレスに命令デ
コード部117 で消費した命令コード長を加算することに
より行われる。ジャンプ命令あるいはEIT(例外、割り込
み、トラップ) により命令実行のシーケンスが変更され
た場合は、JAバス724からジャンプ先命令のアドレスが
転送されて来る。PC計算部1132の計算結果は命令のデコ
ード結果と共にパイプラインの流れに同期してPC転送部
1134へ出力される他、PC相対アドレス計算のためIXバス
728 からアドレス生成部114 に転送され、また命令アド
レスの計算のためP1バス741 から分岐先アドレス計算部
1131に転送される。
【0117】PC転送部1134には、本発明のデータ処理装
置100 の各パイプラインステージに対応する多数のPC保
持用レジスタがある。PC計算部1132で計算された命令の
先頭アドレスであるPC値は本発明のデータ処理装置100
の各パイプラインステージで処理されるステップコード
と共にPC転送部1134のレジスタ中を転送される。PC転送
部1134ではデバッグサポートのための命令アドレスブレ
イクあるいはトレース動作の起動のために、転送される
PC値と命令ブレイクポイントアドレス(IBA0, IBA1)の値
あるいはトリガ開始命令アドレス(TGIA)の値との比較動
作も行う。
【0118】(4.5) 「アドレス生成部」 アドレス生成部114 は、命令デコード部117 のアドレッ
シングモードデコーダ1175から出力されたオペランドの
アドレス生成に関係する制御情報によりハードワイヤー
ド制御され、オペランドのアドレスを計算する。また、
命令デコード部117 では先行ジャンプを行わないレジス
タ間接アドレッシングあるいはメモリ間接アドレッシン
グのジャンプ命令による先行ジャンプ処理、更には分岐
しないと予測した条件ジャンプ命令の分岐先アドレスの
計算及びサブルーチンジャンプ命令の戻り先アドレスの
計算も行う。
【0119】図16は本発明のデータ処理装置100 のア
ドレス生成部114 の構成を示すブロック図である。
【0120】アドレス生成部114 はスタックポップアド
レッシング(@SP+) とスタックプッシュアドレッシング
(@-SP)とが連続して発生してもパイプラインインターロ
ックの発生なしに命令を処理するためのオペランドアド
レス生成部専用スタックポインタ(ASP)911と、オペラン
ドアクセス段階で更新したSPの値を命令の流れに同期し
てパイプライン中で転送するレジスタ群 (SP転送部)912
とからなるSP先行更新部1141と、@SP+あるいは@-SP以外
のアドレッシングモードに従って3入力加算器923 でオ
ペランドのアドレス計算を行うアドレス計算部1142とが
ある。
【0121】なお、図10では図16中でAGU 内と記さ
れている部分がアドレス生成部114に、IU内と記されて
いる部分が整数演算部115 にある。
【0122】アドレッシングモードで指定されたディス
プレースメント値は命令デコード部117 からDISPバス72
7 によりアドレス計算部1142に転送されてDISPレジスタ
921に保持される。サブルーチンジャンプ命令の戻り先
番地あるいは分岐すると予測した条件分岐命令の非分岐
側命令アドレスの計算のためにDISPレジスタ921 には命
令デコード部117 から転送された命令コード長 (補正
値) を入力することも出来る。
【0123】スケールドインデックスアドレッシングに
対しては整数演算部115 のレジスタからIXバス728 で転
送された値が INDEXレジスタ922 に入力されれ保持され
る。INDEXレジスタ922 では入力された値の1, 2, 4, 8
倍を3入力加算器923 へ出力することが出来る。
【0124】多段間接アドレッシングにより前段のアド
レッシングモードまでのアドレス計算結果を次の多段間
接モードのベースアドレスとする場合は3入力加算器92
3 の出力がAOレジスタ924 からBASEレジスタ925 へ転送
される。
【0125】レジスタ相対モード, PC相対モード, レジ
スタベース多段間接モード及び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 に出力される。
【0126】アドレス計算の結果はAOレジスタ924 から
AAバス731 に出力されオペランドをアクセスするための
アドレスとして使用される。また、AOレジスタ924 から
出力されたオペランドアドレス自体はOA転送部926 へ渡
され、パイプライン中の命令の流れに同期してOA転送部
26で管理される。4バイト以下の即値も命令デコード部
117 からDISPレジスタ921, 3入力加算器923, AOレジ
スタ924 を順に経由してOA転送部926 へ入力され、オペ
ランドアドレスと同様にパイプライン中の命令の流れに
同期してOA転送部926 で管理される。
【0127】浮動小数点演算命令で64ビットの即値が用
いられた場合、その上位32ビットはAOレジスタ924 から
Imm転送部914 へ入力されてOA転送部926 の下位32ビッ
トとペアにして管理される。
【0128】PC相対アドレッシングと絶対アドレッシン
グ以外のジャンプ命令のジャンプ先アドレスの計算結果
AOバス733 からJAバス724 に出力され、パイプライン
の第3ステージであるアドレス生成段階での先行ジャン
プに使用される。また、分岐しないと予測した条件分岐
命令の分岐先アドレスや分岐すると予測した条件分岐命
令の非分岐先アドレスの計算結果はAOバス733 からJAバ
ス724 に出力され、分岐予測が間違っていた場合のバッ
クアップ用命令キューの命令プリフェッチ先アドレスと
して使用される。
【0129】SP先行更新部は@SP+と@-SPとの両アドレッ
シングモードに対して専用の作業用スタックポインタで
ある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の値を参照する。
【0130】
【0131】従って、本発明のデータ処理装置100 では
@SP+あるいは@-SPアドレッシングモードにおいてSP値を
更新する命令に引き続く命令はパイプラインストールな
しにSP値を用いたアドレス計算を行うことができる。命
令実行段階でSPに書き込みが行われた場合、同時にD1バ
ス711 またはD3バス713 から更新する値がASP911とSP転
送部912 との命令実行段階作業用スタックポインタ(CS
P) に書き込まれる。命令実行段階でジャンプが発生し
てパイプラインがクリアされた場合にはCSP の値がASP9
11へ転送される。
【0132】(4.6) 「オペランドアクセス部」 オペランドアクセス部112 の構成を図17のブロック構
成図に示す。
【0133】オペランドアクセス部112 はオペランドア
ドレスのアドレス変換機構(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 等にて構成されている。
【0134】なお、AAレジスタ1127は整数演算部115 が
アドレスを出力するためのレジスタである。 DDRレジス
タ1128は整数演算部115 へリードデータを転送するため
のレジスタである。 DDW1129は整数演算部115 がライト
データを出力するためのレジスタである。BaseADDRレジ
スタ913 はオペランドアドレス生成部114 へメモリ間接
アドレスを転送するためのレジスタである。
【0135】データ用TLB(DTLB)1122 の構成は 16entry
×4way である。
【0136】DAT機構1121にはLSID, SATB, UATB, IOADD
R, IOMASKの各レジスタがあり、データ用TLB1122 がミ
スした場合のページングによるアドレス変換, メモリア
クセス関連EIT のチェック及びデータ用TLB1122 の更新
を行う。また、メモリアクセスがI/O 領域に入るか否か
のチェックも行う。
【0137】データバッファ52はモード切り替えによ
り、32byte×64entry ×4way の内蔵データキャッシュ
として、又は8KBのコンテキスト退避用メモリの内のい
ずれか1つとして動作する。
【0138】データのリード動作では、オペランドアド
レス生成部114 あるいは整数演算部115 のアドレスレジ
スタであるAA部から出力されたリードすべきデータの論
理アドレスをTLB1122 で物理アドレスに変換し、データ
キャッシュからDDバス710 を通じてデータをフェッチし
てBaseADDRレジスタ913 あるいはSDレジスタ1123,DDRレ
ジスタ1128へ転送する。SDレジスタ1123へデータをフェ
ッチする場合はストアオペランドとのオーバーラップチ
ェックのためにフェッチデータの8バイト境界ごとの物
理アドレスを SDAレジスタ1124に転送して保持する。
【0139】データキャッシュはAAバス731 から転送さ
れた論理アドレス (変換前アドレス) の下位11ビット
(物理アドレスの下位11ビットと同じ) に従ってキャッ
シュアドレスタグとデータを出力する。キャッシュアド
レスタグはTLB1122 から出力された物理アドレスと比較
され、TLB1122 がヒットでTLB1122 から出力された物理
アドレスが有効でありかつ両者が同じ値ならばデータキ
ャッシュはヒットとなる。TLB1122 がミスした場合また
はTLB1122 から出力された物理アドレスとキャッシュア
ドレスタグとが不一致ならばデータキャッシュミスとな
る。
【0140】TLB1122 がヒットでデータキャッシュがミ
スした場合はバスインタフェイス部110 へ物理アドレス
を出力し、外部のメモリをブロックアクセスしてデータ
をフェッチし、データキャッシュのエントリを更新す
る。
【0141】8バイトデータバスモードでは32バイトの
データを1回のブロックリードでフェッチしてキャッシ
ュに登録する。4バイトデータバスモードでは16バイト
のブロックリードを2回行って32バイトのデータをフェ
ッチし、キャッシュに登録する。ブロックリードはオペ
ランドとして必要なデータからアドレスを昇順にラップ
アラウンドして行われ、オペランドとして必要なデータ
はデータキャッシュへの登録と平行してBaseADDRレジス
913,SDレジスタ1123または DDRレジスタ1128に転送す
る。
【0142】TLB1122 もキャッシュもミスの場合、キャ
ッシュのエントリは更新せず、TLB1122 のエントリを更
新した後再びキャッシュをアクセスする。
【0143】データのストア動作ではAAレジスタ1127か
ら出力されたストアすべきデータの論理アドレスをTLB1
122 で物理アドレスに変換し、物理アドレスをストアバ
ッファアドレス部(WBPA)1126を介してバスインタフェイ
ス部110 に転送し、DDW1129から出力されたデータをDD
バス710, ストアバッファデータ部(WBD)1125 を介して
バスインタフェイス部110 に転送する。
【0144】TLB1122 がミスした場合は DAT機構1121を
動作させてデータ用TLB1122 のエントリを更新した後、
再びTLB1122 をアクセスする。TLB1122 がヒットした場
合、DDW1129 からストアバッファへの転送時にSD1123
るいはデータキャッシュにストアデータとオーバーラッ
プするデータが保持されている場合にはその内容を書き
換える。
【0145】SD1123のオーバーラップチェックはSDA112
4 で、データキャッシュのオーバーラップチェックはキ
ャッシュ内のタグで、両方とも物理アドレスをもとに行
われる。なお、データキャッシュはライトスルー方式で
あり、ライト動作でミスした(オーバーラップがない)
ときキャッシュの内容は変化しない。
【0146】TLB1122がミスした場合、 DAT機構1121が
物理アドレスを出力してセクションテーブルエントリあ
るいはページテーブルエントリをアクセスしてアドレス
変換を行う。 TLB1122ではデータライトアクセスのヒッ
トにより各エントリのMフラグ (変更状態) が変更され
た際にメモリ中のMフラグも即座に変更する。
【0147】ストアバッファからバスインタフェイスへ
のアドレスとデータの転送中もデータキャッシュはオペ
ランドアクセス部112 その他のリードアクセスあるいは
ライトアクセスを受け付ける。従って、ストアバッファ
に未処理のデータが存在してもTLB1122 とキャッシュと
がヒットする限りオペランドアクセス部112 は後続の処
理を続けることができる。
【0148】オペランドのリードやライト、メモリ間接
アドレッシングのためのリード, TLB ミスによるリード
あるいはライトは全てI/O 領域に入るか否かのチェック
が行われる。 I/O領域に対するメモリ間接アクセスはア
ドレス変換例外となる。また、 I/O領域からのオペラン
ドプリフェッチはパイプライン中の先行命令の実行が全
て完了するまで抑止される。また、 TLB1122あるいはキ
ャッシュがミスした場合は、条件分岐命令(Bcc, ACB, S
CB) に引き続く命令のオペランドプリフェッチのための
メモリアクセスも先行する条件分岐命令の実行が完了す
るまで抑止される。
【0149】本発明のデータ処理装置100 がバススヌー
プ動作中はバスインタフェイス部110 から無効化すべき
データの物理アドレスがオペランドアクセス部112 へ転
送される。データキャッシュはこのアドレスがヒットす
る32バイトブロックのデータをすべて無効化する。
【0150】(4.7) 「IROM部」 IROM部118 には、整数演算部115 の制御を行う種々のマ
イクロプログラムルーチンが格納されているマイクロRO
M(IROM),マイクロシーケンサ及びマイクロ命令デコーダ
が含まれる。IROM部118 では、命令デコード部117 から
出力されたRコードとサブRコードに従ってマイクロプ
ログラムにより整数演算部115 の動作を制御する。マイ
クロシーケンサは命令実行に関するマイクロプログラム
実行のためのシーケンス処理の他に、例外, 割込及びト
ラップ(EIT) の受付けと、各EIT に対応するマイクロプ
ログラムのシーケンス処理も行う。
【0151】図18のブロック図にIROM部118 の構成を
示す。
【0152】Rコードの入力ラッチ1181はマイクロエン
トリ番地(RADDR0:1)とパラメータ(RPARM0:1)とで構成さ
れ、2エントリのキューになっている。サブRコードは
Rコードのパラメータの一部として扱われる。
【0153】EITDEC1182はEIT の種類に応じて対するマ
イクロプログラムルーチンのエントリ番地を出力するデ
コーダである。
【0154】PREEIT1183は命令実行途中でEIT を受け付
けた場合に、命令に依存した EIT前処理を行うマイクロ
プログラムルーチンのエントリ番地を保持するためのレ
ジスタであり、任意長ビットフィールド命令又はストリ
ング操作命令などのような命令実行途中でEIT を受け付
ける命令を実行する際に命令依存の番地がセットされ
る。
【0155】USTACK1184はマイクロプログラム用のスタ
ックであり、マイクロプログラムのサブルーチンからの
戻り先番地を保持する。その戻り先番地としては URINC
1185からセットされるサブルーチンコール命令の次番地
と、マイクロプログラムでURDR1186から明示的にセット
される番地とが可能である。
【0156】UNAR1187はマイクロプログラムカウンタで
ある。 URINC1185はUNAR187 の値をインクリメントする
インクリメンタである。URDR1186はマイクロ命令の出力
ラッチである。条件ジャンプをディレイスロットなしで
行うために、マクロプログラムのジャンプ時はマイクロ
ROM から4ワードが一度に読み出され、 MUX1189でその
内の1つを選択するようになっている。
【0157】マイクロROM(IROM)1190 は 155ビット×4
KワードのROM である。また、マイクロ (μ) 命令デコ
ーダ1180はURDR1186から出力されるマイクロ命令と入力
ラッチ1181のRPARM0:1から出力されるパラメータとをデ
コードして整数演算部115 の制御信号を出力する。
【0158】命令デコード部117 で2命令が同時にデコ
ードされた場合は、その内の先行命令のデコード結果は
Rコードとして出力され、後続命令のデコード結果はサ
ブRコードとして入力ラッチ1181に保持されるRPARM 中
に含まれてマイクロ命令デコーダに入力される。サブR
コードは先行命令の最終マイクロ命令と共にマイクロ命
令デコーダによりデコードされ、サブALU またはサブバ
レルシフタで実行される。
【0159】マイクロ命令はマイクロROM1190 から1ク
ロックに1度読み出され、1つのマイクロ命令で1つの
レジスタ間演算が行われる。従って、転送, 比較, 加
算, 減算, 論理演算などの基本命令は1クロックで終了
する。基本命令のパラメータ(RPARM) にサブRコードが
含まれる場合には、1クロックにRコードに対する基本
命令とサブRコードに対するレジスタ間演算命令とが実
行され、命令実行速度が2命令/クロックとなる。
【0160】命令実行途中で EITを受け付けた場合は、
PREEIT1183の値がUNAR87に転送され、マイクロプルグラ
ムがPREEIT1183に保持されたマイクロ番地へジャンプし
てEIT の前処理を行い、その後EITDEC1182から出力され
る各EIT の処理ルーチンにジャンプする。命令完了段階
でEIT を受け付けた場合は、PREEIT1183は使用されず、
直接EITDEC1182から出力されるEIT 処理ルーチンへジャ
ンプする。
【0161】(4.8) 「FROM部」 FROM部119 には、浮動小数点演算部116 の制御を行う種
々のマイクロプログラムルーチンが格納されているマイ
クロROM(FROM), マイクロシーケンサ及びマイクロ命令
デコーダなどが含まれる。FROM部119 では、浮動小数点
演算の他、IROM部118 と協調して整数乗算, 整数除算及
び整数剰余の各演算(MUL, MULU, MULX,DIV, DIVU, DIV
X, REM, REMU命令) 、更にはコンテキストスイッチ命令
などの浮動小数点演算部116 のレジスタを操作する命令
が実行される。
【0162】命令デコード部117 で浮動小数点演算命令
がデコードされた場合は、そのデコード結果はIROM部11
8 とFROM部119 とへ同時に出力され、最初の1マイクロ
ステップは整数演算部115 と浮動小数点演算部116 とが
協調して動作する。第2マイクロステップ以降はFROM部
119 のマイクロシーケンサとIROM部118 のマイクロシー
ケンサとが独立に制御され、浮動小数点演算部116 は引
き続く処理を行い、整数演算部115 は次の整数演算命令
を実行するため、両演算部が並列動作する。浮動小数点
演算部116 を使用する整数演算命令またはコンテキスト
スイッチ命令がデコードされた場合は、そのデコード結
果はIROM部118 とFROM部119とへ同時に出力され、整数
演算部115 と浮動小数点演算部116 とが全ステップで協
調して動作する。
【0163】図19のブロック図にFROM部119 の構成を
を示す。FRコードはIROM部118 の入力ラッチ1181のRADD
R0:1とRPARH0:1からラッチ1191のFRADDRとFRPARMとに入
力される。FRADDRとFRPARMとは浮動小数点演算命令のオ
ペランドに非正規化数が入力されたり、浮動小数点演算
トラップ(FET) が検出された場合にマイクロプログラム
のエントリアドレスとそのパラメータとを一時退避して
おくためのラッチ1191である。
【0164】FETDEC1193は FETが発生した際に、その種
類に応じて対応するマイクロプログラムルーチンのエン
トリ番地を出力するデコーダである。FCALL1192は FET
に対する EIT処理が起動される場合に、IROM部118 がFR
OM部119 を起動して浮動小数点演算部116 を動作させる
ためのエントリアドレスを格納するレジスタである。
【0165】MNAR1195はマイクロプログラムカウンタで
ある。また、 MRINC1194はMNAR1195の値をインクリメン
トするインクリメンタである。MRDR1196はマイクロ命令
の出力ラッチである。マイクロ命令の条件ジャンプをデ
ィレイスロットなしで行うために、マクロプログラムの
ジャンプ時はマイクロROM 1197から4ワードを一度に読
み出し、MUX 1198でその内の1つを選択するようになっ
ている。MNAR1195, MRINC1194, MRDR1196はそれぞれIR
OM部118 のUNAR1187, URINC1185, URDR1186 に相当す
る。
【0166】マイクロROM(FROM) 1197は50ビット×1K
ワードのROM である。また、マイクロ命令デコーダ1199
はMRDR1196から出力されるマイクロ命令とラッチ1191の
FRPARMから出力されるパラメータとをデコードして浮動
小数点演算部116 の制御信号を出力する。
【0167】マイクロ命令はマイクロROM 1197から1ク
ロックに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 を起動する。
【0168】(4.9) 「整数演算部」 整数演算部115 はIROM部118 のマイクロROM 1190に格納
されているマイクロプログラムにより制御され、各整数
演算命令の機能を実現するために必要な演算を整数演算
部115 の内部にあるレジスタファイルと演算器とで実行
する。
【0169】図20は整数演算部115 の構成を示すブロ
ック図である。
【0170】EJUMP 1151はパイプラインの命令実行ステ
ージ35でジャンプを実行する際にジャンプ先アドレスを
格納するレジスタである。 EITを検出したりあるいは分
岐予測が外れた条件分岐命令を実行した場合、マイクロ
プログラムにより本レジスタにジャンプ先アドレスを入
力した上で実行ステージジャンプを行う。実行ステージ
ジャンプではパイプラインがフラッシュされるため、再
度パイプラインを充填するために3〜4クロックの無駄
時間が発生する。
【0171】副演算器1152には副ALU と副バレルシフタ
とがあり、主演算器1158には主ALU,主バレルシフタ, プ
ライオリティエンコーダ, カウンタなどがある。副演算
器1152と主演算器1158とは汎用レジスタ, 作業用レジス
タとそれぞれ3本の32ビットバスで結合されており、2
つのレジスタ間演算を同時に実行することが可能であ
る。
【0172】S1, S2, D1の各バス701, 702, 711が主演
算器1158用のバスであり、S3, S4,D3の各バス703, 704,
713 が副演算器1152用のバスである。命令デコード部1
17で同時にデコードされた2つの命令は副演算器1152と
主演算器1158とで同時に実行される。また、高機能命令
を実行する際にマイクロプログラムにより副演算器1152
と主演算器1158とを並列に動作させることにより、8バ
イトデータを一度に処理したり、2つのオペレーション
を並列に行ったりすることも可能である。
【0173】AA部1153とDD部1154とは整数演算部115 が
オペランドアクセス部112 と通信を行うためのレジスタ
であり、AA部1153がアドレスを、DD部1154がデータをそ
れぞれ扱う。AA部1153には2つのインクリメントデクリ
メント機能付きアドレスレジスタと、ベースアドレスと
ビットオフセットから操作対象のビットのバイトアドレ
スを計算するビットアドレス計算回路とがある。DD部11
54には8バイトのデータレジスタがあり、DDバス710 に
よりオペランドアクセス部112 と8バイト単位にデータ
をやりとりする。
【0174】SP部1154には命令実行ステージ35用の作業
用スタックポインタとリングごとのスタックポインタ(S
PI, SP0, SP1, SP2, SP3) とがある。命令実行ステージ
35のSP値はアドレス生成部(AGU)114から命令と同期して
パイプライン中を転送されてくる。
【0175】制御レジスタ部1157にはPSW, DMCなどの各
種の制御レジスタと定数ROM とがある。
【0176】汎用レジスタ部1155にはスタックポインタ
であるR15 以外の14本の汎用レジスタがある。汎用レジ
スタは主演算器1158と副演算器1152とに同時に2つずつ
のデータを出力し、2つの演算結果を同時に書き込むた
め4つの出力ポートと2つの入力ポートとがある。更
に、汎用レジスタにはオペランドのアドレス計算のため
にデータをアドレス生成部114 に転送するIXバス728 に
接続するもう1つの出力ポートがある。
【0177】作業用レジスタ1156は全部で16本あり、汎
用レジスタと同じく主演算器1158と副演算1152とに接続
するため4つの出力ポートと2つの入力ポートがある。
【0178】図21はIROM部118 のマイクロプログラム
で操作される整数演算部115 の周辺の構成を示すブロッ
ク図である。
【0179】整数演算部115 では命令を実行したり、あ
るいはEIT 処理のために、S1, S2,D1, D3バス701, 702,
711, 713を通じて各周辺ブロックをアクセスする。
【0180】PC転送部1134からは命令のPC値が転送され
てくる。 EITにより実行中命令のPC値あるいは次命令の
PC値が必要な場合にはPC転送部1134からそれらの値が読
み出される。
【0181】PCスタック1135はRTS, EXITD命令を実行す
る際にプリリターンアドレスを読み出してメモリからフ
ェッチした真のリターン先アドレスとの比較を行い、プ
リリターンが正しいアドレスへ行われたか否かをチェッ
クする。
【0182】OA転送部926 からはアドレス生成部114 で
計算されたオペランドアドレスあるいは即値が読み出さ
れる。また、 Imm転送部914 からは倍精度の浮動小数点
即値オペランドの上位32ビットが読み出されてFPU へ転
送される。ASP911はオペランド生成部の作業用スタック
ポインタであり、命令の実行あるいは EIT処理によりス
タックポインタが書換えられた場合に図20のSP部1154
のスタックポインタと同時に書き換えられる。
【0183】DAT機構1006は命令フェッチ部111 とオペ
ランドアクセス部112 両方のDAT 機構を含んでいる。 D
AT機構1006にはメモリアクセス関連のレジスタ(LSID, S
ATB,UATB, IOADDR, IOMASK)があり、マイクロプログラ
ムでこれらのレジスタをアクセスする。
【0184】SD1123からはプリフェッチオペランドが出
力される。32ビット以下のプリフェッチオペランドはS1
バス701 またはS2バス702 のいずれのバスへも出力する
ことが可能である。64ビットのプリフェッチオペランド
の出力に際してはS1, S2バス01, 702 を連結して使用す
る。
【0185】WBPA1126とWBDATA1125とはストアバッファ
のアドレスとデータとを保持するレジスタであり、スト
アバッファで EITが発生した場合にその内容がマイクロ
プログラムで読み出される。
【0186】(4.10)「浮動小数点演算部」 浮動小数点演算部116 は、FROM部119 のマイクロROM に
格納されたマイクロプログラムにより制御され、各浮動
小数点演算命令の機能を実現するために必要な演算を浮
動小数点演算部116 の内部にあるレジスタファイルと演
算器とで実行する。浮動小数点演算部116 は演算結果を
浮動小数点レジスタに格納する演算を行う場合、FROM部
119 の制御により整数演算部115 と独立に動作する。ま
た、浮動小数点演算部116 では浮動小数点演算の他、整
数乗算, 整数除算及び整数剰余の演算も行う。
【0187】図22は浮動小数点演算部116 の構成を示
ブロック図である。浮動小数点演算部116 には、浮動
小数点ALU(FALU)1165, 乗算回路(FMUL)1164及び除算回
路(FDIV)1163の演算器があり、浮動小数点レジスタ部11
66とFS1, FS2, FDO の3つの64ビットバスで結合してい
る。
【0188】FALU1165とFMUL1164とはFMAC命令を実行す
る場合に加算と乗算とを並列に実行するために、FS1, F
S2, FDO バス751, 752, 750 以外に FR0バス760 または
FR1バス761 と専用の64ビットバスで結合している。
【0189】FPASS1167はバス間で演算器を経由せずに
データをバイパスさせる機能を有する他、各演算器への
入力オペランドが非正規化数, qNaN、sNaN、±∞である
か否かのチェックを行う。また、 FPASS1167は各演算器
での演算の結果、浮動小数点演算トラップ(FET) が発生
して EITを起動する場合に備えて、各演算器への入力オ
ペランドのコピーを保持する動作も行う。
【0190】FSW1161, FMC1162はそれぞれS2, D3バス70
2, 713またはS1, D1バス701, 711により整数演算部115
と結合しており、LDC, STCまたはFSTFSW命令を実行する
場合に整数演算部115 からアクセスされる。
【0191】FDIV1163, FMUL1164, FALU1165, FPASS116
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 が出力する。
【0192】浮動小数点演算部116 と整数演算部115 と
はそれぞれ別々のマイクロプロググラムで制御されて独
立に命令を処理することが可能である。しかし、本発明
のデータ処理装置100 が浮動小数点演算命令を実行する
場合は、その浮動小数点演算命令に対する最初のマイク
ロステップはIROM部118 とFROM部119 とからそれぞれマ
イクロ命令が出力され、そのマイクロ命令に従って整数
演算部115 と浮動小数点演算部116 とが協調して動作す
る。この際、整数演算部115 では浮動小数点演算命令に
対するPC値の専用レジスタへの退避、更に必要であれば
スタックポインタの更新あるいはS1, S2バス701, 702で
の即値, メモリオペランドの転送を行う。このため、整
数演算部115 が整数演算を実行中の場合には、たとえ浮
動小数点演算部116 が次の浮動小数点演算命令を実行開
始可能な状態であっても、整数演算部115 が整数演算を
終了するまでの間は、次の浮動小数点演算命令の実行は
開始されない。
【0193】浮動小数点演算の結果を浮動小数点レジス
タに書き込む場合、第2マイクロステップからは浮動小
数点演算部116 と整数演算部115 とは独立に動作し、浮
動小数点演算部116 は浮動小数点命令の実行を継続し、
整数演算部115 は次の整数演算を実行する。しかし、浮
動小数点演算の結果を汎用レジスタあるいはメモリに書
き込む場合、整数演算部115 は第2マイクロステップ以
降も浮動小数点演算部116 と協調して動作し、その浮動
小数点演算命令の実行完了までの間は次の命令の処理を
行うことはない。整数乗算命令, 整数除算命令などに際
して整数演算部115 が浮動小数点演算部116 の演算器を
使用して結果を汎用レジスタ, メモリに書き込む場合
も、整数演算部115 と浮動小数点演算部116 とは協調し
て動作し、命令は逐次的に実行される。
【0194】(5) 「パイプライン処理」 本発明のデータ処理装置100 の命令パイプラインの構成
を図23の模式図に示す。
【0195】命令のプリフェッチを行う命令フェッチス
テージ (IFステージ) 31, 命令のデコードを行うデコー
ドステージ (Dステージ) 32, オペランドのアドレス生
成を行うアドレス生成ステージ (Aステージ) 33, μRO
M アクセス (特にRステージという) とメモリオペラン
ドのプリフェッチ (特にOFステージという) とを行うオ
ペランドフェッチステージ (Fステージ) 34, 命令の実
行を行う実行ステージ(Eステージ) 35, メモリオペラ
ンドのストアを行うストアステージ (Sステージ)36の
6段構成でパイプライン処理を行う。
【0196】IFステージ31には32バイトの命令プリフェ
ッチキューが、Fステージ34には2段のオペランドプリ
フェッチキューが、Sステージ36には3段のストアバッ
ファがそれぞれある。
【0197】各ステージは他のステージとは独立に動作
し、理論上は6つのステージが完全に独立動作する。S
ステージ36以外の各ステージは1回の処理を最小1クロ
ックで行う。Sステージ36は1回のオペランドストア処
理を最小2クロックで行う。従ってメモリオペランドの
ストア処理がない場合、理想的には1クロックごとに次
々とパイプライン処理が進行する。
【0198】本発明のデータ処理装置100 にはメモリ−
メモリ間演, メモリ間接アドレッシングなどの基本パイ
プライン処理1回のみでは処理が行えない命令がある
が、これらの処理に対してもなるべく均衡したパイプラ
イン処理が行えるように構成されている。また本発明の
データ処理装置100では、複数のメモリオペランドを有
する命令に対してはメモリオペランドの数に基づいてデ
コード段階で1つの命令を複数のパイプライン処理単位
(ステップコード) に分解してパイプライン処理する。
【0199】各パイプラインステージの入出力ステップ
コードには図23に示したように便宜上名前が付けられ
ている。また各ステップコードはオペレーションコード
に関する処理を行い、μROM のエントリ番地あるいはE
ステージ35に対するパラメータなどになる系列と、Eス
テージ35の処理対象のオペランドになる系列との2系列
がある。
【0200】また、Dステージ32からSステージ36まで
の間では処理中命令のプログラムカウンタ値が順次受け
渡され、Aステージ33からEステージ35までの間ではス
タックポインタ値が受け渡される。
【0201】IFステージ31からDステージ32に渡される
情報は命令コードそのものである。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はアドレスとデータとからな
る。
【0202】Eステージ35が本来の命令実行のためのス
テージである。IF, D, A, Fステージ31, 32, 33, 34
は命令実行のための前処理を行うステージであり、命令
コード及びオペランドの読み出しは行うが、メモリ及び
レジスタの内容の変更は一切行わない。このため、これ
らの各ステージでの処理は途中でキャンセル可能であ
る。
【0203】(5.1) 「命令フェッチステージ」 命令フェッチステージ (IFステージ) 31では命令フェッ
チ部111 が動作する。IFステージ31では内蔵命令キャッ
シュ51あるいは外部から命令をフェッチし、命令キュー
に入力してDステージ32に対して2〜8バイト単位で命
令コードを出力する。
【0204】命令キューの入力は、内蔵命令キャッシュ
51がヒットした場合は整置された16バイト単位で、ミス
した場合は整置された4バイト単位で行われる。命令キ
ューは条件分岐命令に引き続く命令と分岐先命令との両
方をフェッチするために2個準備されている。
【0205】標準アクセスモードで外部から命令をフェ
ッチする場合は整置された4バイトにつき最小2クロッ
クを要する。バーストモードでは16バイトにつき最小5
クロックを要する。命令を外部からフェッチする際は、
フェッチ先の物理アドレスがI/O 領域であるか否かのチ
ェックも行う。なお、 I/O領域からの命令フェッチは禁
止されおり、 EITとなる。
【0206】内蔵命令キャッシュ51がヒットした場合は
整置された16バイトにつき1クロックで命令がフェッチ
される。命令キューの出力単位は2バイトごとに可変で
あり、1クロックの間に最大8バイトまで出力できる。
命令の論理アドレスの物理アドレスへの変換, 内蔵命令
キャッシュ51及び命令用TLB の制御, プリフェッチ先命
令アドレスの管理及び命令キューの制御もIFステージ31
で行われる。
【0207】(5.2) 「命令デコードステージ」 命令デコードステージ (Dステージ) 32では命令デコー
ド部117 とPC生成部113 とが動作する。
【0208】Dステージ32ではIFステージ31から入力さ
れた命令のオペレーションコードの前段デコードとアド
レッシングモードのデコードとを行う。
【0209】Dステージ32での命令デコード処理では、
命令デコード部117 のメインデコーダ1172, 第1サブデ
コーダ1173, 第2サブデコーダ1174, アドレッシングモ
ードデコーダ1175, 拡張データ処理部1176が動作する。
【0210】デコードは1クロックに1度行なわれ、1
回のデコード処理で0〜8バイトの命令コードが消費さ
れる (但し、サブルーチンリターン命令の復帰先アドレ
スを含むステップコードの出力処理などでは命令コード
を消費しない) 。2つのメモリオペランドを有する命令
あるいは多段間接モードを使用する命令などのように1
回のデコード処理ではデコードできない命令はこのDス
テージ32でステップコードに分解される。このため、命
令全体のデコードが完了しなくても、各クロックのデコ
ード処理でDコード41とAコード42と命令のPC値とが出
力される。
【0211】Dステージ32では命令デコードに伴って消
費した命令長に基づいてPC生成部113 が各命令のPC値を
計算する。条件分岐命令, 絶対アドレスまたはPC相対ア
ドレスへのジャンプ命令(サブルーチンジャンプ命令を
含む) 及びサブルーチンリターン命令に対してはPC生成
部113 で先行ジャンプ処理 (Dステージジャンプ) を行
う。
【0212】無条件ジャンプ命令をデコードして先行ジ
ャンプを行った場合は、IFステージ31に対して現在使用
中の命令キューの内容をキャンセルした上でジャンプ先
から命令をフェッチしてキューに入力することを指示す
る。分岐すると予測される条件分岐命令をデコードした
場合は、IFステージ31に対して現在使用中のキューはそ
のままにしておき、もう一方の命令キューに分岐先から
命令をフェッチして入力することを要求する。
【0213】1回のデコードでAステージ33に対してア
ドレス計算情報であるAコード42とオペレーションコー
ドの中間デコード結果であるDコード41及び命令のPC値
とを出力する。
【0214】(5.3) 「アドレス生成ステージ」 アドレス生成ステージ (Aステージ) 33では命令デコー
ド部117 とアドレス生成部114 とが動作する。
【0215】Aステージ33はDステージ32から転送され
たDコード41をデコードしてRコード43を出力し、Aコ
ード42に従ってオペランドアドレスの生成を行ってFコ
ード44を出力する。Dステージ32から転送されてきたPC
値はそのままFステージ34へ転送される。また、Aステ
ージ33は命令実行ステージ35とは独立に処理中命令のス
タックポインタ値を計算してFステージ34へ転送する。
【0216】Aステージ33での命令デコード処理では命
令デコード部117 のAステージデコーダ1177とサブコー
ド転送部1178とが動作する。Dステージ32から出力され
たオペレーションコードの中間デコード結果は更に詳細
にデコードされ、μROM のエントリアドレスとマイクロ
プログラムへのパラメータとがRコード43として出力さ
れる。
【0217】アドレス生成部114 はAコード42に従って
オペランドのアドレスを生成する。
【0218】レジスタ間接モードあるいはレジスタ相対
モードに対してはIXバス728 を通じて汎用レジスタの値
を参照する。ディスプレースメント値, 即値, 絶対アド
レス値はAコード42の一部として命令デコード部117 か
らDISPバス727 を通じて転送されてくる。メモリ間接モ
ードに対してはオペランドアクセス部112 がアクセスさ
れる。PC相対モードではDステージ32から転送されて来
た処理中命令のPC値(APC) が用いられる。スタックポッ
プモードあるいはプッシュモードに対しては専用の作業
用スタックポインタでSP値が計算される。計算されたSP
値はFコード44と共にFステージ34へ出力される。
【0219】レジスタ間接ジャンプまたはメモリ間接ジ
ャンプなどのような絶対ジャンプとPC相対ジャンプ以外
のジャンプ命令に対しては、アドレス生成部114 が飛び
先アドレスを計算して先行ジャンプ処理 (Aステージジ
ャンプ) を行う。分岐すると予測した条件分岐命令に対
してはDISPバス727 から転送されて来た命令長とAPC値
とが加算されてその分岐命令の次命令のアドレスが計算
される。
【0220】サブルーチンジャンプ命令の戻り先アドレ
スの計算もDISPバス727 から転送されて来た命令長と A
PC値とを加算することにより計算される。分岐しないと
予測した条件分岐命令に対しては分岐先アドレスが計算
されて命令フェッチ部111 へ転送され、現在使用中でな
い方の命令キューに対してその分岐先アドレスから命令
フェッチを行うことが指示される。
【0221】アドレス生成部114 にはアドレス計算に使
用するためのレジスタ及びメモリがコンフリクトしてデ
ータハザードが発生した場合に、それを検出してパイプ
ラインをインターロックするためのスコアボードレジス
タがある。
【0222】Aステージ33では、スコアボードレジスタ
へのデスティネーションオペランドの登録 (書き込み予
約) 及びアドレス生成のためにレジスタまたはメモリか
らデータを読み出す際のデータハザードのチェックも行
う。スコアボードレジスタでは、16個の汎用レジスタに
対して16個のフラグが、メモリに対して1個のフラグが
それぞれ準備されており、上述の登録とコンフリクトチ
ェックとに使用される。
【0223】本発明のデータ処理装置100 では多段間接
モードを使用しているため、Dステージ32で複数のステ
ップコードに分解された命令はAステージ33でオペラン
ドのアドレスが計算されて1つのステップコードに縮退
する。
【0224】レジスタリストにより転送オペランドのレ
ジスタ番号を示す命令(LDM, STM, ENTER, EXITD, FLDM,
FSTM)はAステージ33で複数のステップコードに分解さ
れる。これらの命令はAステージ33で1つまたは2つの
レジスタのデータを転送する命令に分解されてF, E,
Sステージ34, 35, 36でパイプライン処理される。分解
された各ステップコードにより転送すべきレジスタ番号
は、レジスタリストをAステージデコーダ1177中に備え
られているプライオリティエンコーダでエンコードして
得られる。
【0225】(5.4) 「オペランドフェッチステージ」 オペランドフェッチステージ (Fステージ) 34ではIROM
部118, FROM部119 とオペランドアクセス部112 とが動
作する。
【0226】Rコード43に対するIROM部118 とFROM部11
9 とでのμROM アクセス動作とオペランドアクセス部11
2 の動作とは独立した制御のもとで行われる。これら2
つの動作を別々に扱う場合、IROM部118 とFROM部119 と
のμROM アクセス処理を特にRステージ37といい、オペ
ランドアクセス部112 の処理を特にOFステージ38とい
う。
【0227】Rステージ37はRコード43を入力としてE
コード45を出力する。OFステージ38はFコード44を入力
としてSコード46を出力する。Fコード44はキューング
されないがRコード43は2つまでキューイングされ、E
コード45はキューイングされないがSコード46は2つま
でキューイングされる。
【0228】Rステージ37の処理であるμROM アクセス
処理はRコード43に対して次のEステージ45での実行に
使用する実行制御コードであるEコード45を作り出すた
めのμROM アクセスとマイクロ命令デコード処理とであ
る。
【0229】1つのRコード43に対する処理が2つ以上
のマイクロプログラムステップに分解される場合、IROM
部118 及びFROM部119 がEステージ35で使用され、次の
Rコード43がμROM アクセス待ちになることがある。R
コード43に対するμROM アクセスが行われるのはEステ
ージ35でのμROM アクセスが行われない場合である。本
発明のデータ処理装置100 では多くの整数演算命令が1
マイクロプログラムステップで完了し、多くの浮動小数
点演算命令が2マイクロプログラムステップで完了する
ため、実際にはRコード43に対するμROM アクセスが次
々と行われることが多い。
【0230】Rステージ37の処理では、浮動小数点演算
部116 を使用しない命令に対してIROM部118 のみが動作
し、FROM部119 は他の処理を実行できる。このため、浮
動小数点演算命令の処理が終了する前に次の整数演算命
令をオーバーラップして開始すること可能である。オペ
ランドフェッチステージ34ではFコード44の論理アドレ
スをデータTLB 1122で物理アドレスに変換し、その物理
アドレスで内蔵データキャッシュをアクセスしてオペラ
ンドをフェッチし、そのオペランドとFコード44の論理
アドレスとを組み合わせて、Sコード46として出力す
る。
【0231】1つのFコード44では8バイト境界をクロ
スしてもよいが、8バイト以下のオペランドフェッチが
指定される。Fコード44にはオペランドのアクセスを行
うか否かの指定も含まれており、Aステージ33で計算し
たオペランドアドレス自体または即値をEステージ35に
転送する場合にはオペランドのフェッチは行われず、F
コード44の内容がSコード46として転送される。Sコー
ド46は2つまでキューイング可能であるため、オペラン
ドは2つまでプリフェッチ可能である。
【0232】標準アクセスモードで外部からオペランド
をフェッチする場合は整置された8バイトにつき最小2
クロックを要する。バーストモードでは32バイトにつき
最小5クロックを要する。オペランドを外部からフェッ
チする際にはフェッチ先の物理アドレスが I/O領域であ
るか否かのチェックも行われる。 I/O領域からはオペラ
ンドのプリフェッチは行われない。この場合、先行命令
がすべて実行を完了し、 I/O領域をアクセスする命令が
実行されることが確実になってからオペランドのフェッ
チが行われる。また、条件分岐命令に引き続く命令で
は、先行する条件分岐命令が実行されるまではオペラン
ドのフェッチは行われない。これは論理的に実行され得
ない命令のオペランドプリフェッチを抑止するためであ
る。
【0233】内蔵データキャッシュがヒットした場合は
整置された8バイトにつき1クロックでオペランドがフ
ェッチされる。
【0234】オペランドの論理アドレスの物理アドレス
への変換、内蔵データキャッシュ52, データ用TLB の制
御、プリフェッチ先オペランドアドレスの管理、更にS
コード46のキューの制御もOFステージ38で行われる。
【0235】(5.5) 「実行ステージ」 実行ステージ (Eステージ) 35ではEコード45及びSコ
ード46を入力として整数演算部115 と浮動小数点演算部
116 とが動作する。
【0236】このEステージ35が命令を実行するステー
ジであり、Fステージ34以前の各ステージで行われた処
理はすべてEステージ35のための前処理である。Eステ
ージ35でジャンプが実行されたり、あるいは EIT処理が
起動されたりした場合は、IFステージ31〜Fステージ34
までで実行された処理は全て無効化される。Eステージ
35はマイクロプログラムにより制御され、Rコード43に
示されたマイクロプログラムルーチンのエントリ番地か
らの一連のマイクロ命令を実行することにより命令を実
行する。
【0237】Eコード45には整数演算部115 を制御する
コード (特にEIコードという) と浮動小数点演算部116
を制御するコード (特にEFコードという) とがあり、EI
コードとEFコードとは独立に出力することが可能であ
る。EIコードとEFコードとが同時に出力された場合は、
Eステージ35では整数演算部115 と浮動小数点演算部11
6 とが並列に動作する。たとえば、浮動小数点演算部11
6 でデスティネーションオペランドが浮動小数点レジス
タである浮動小数点演算命令を実行する場合、浮動小数
点演算部116 は第2マイクロステップの動作から整数演
算部115 と切り放され、整数演算部115 と独立して並行
動作する。なお、浮動小数点演算命令を含む全命令で整
数演算部115 は最小1マイクロ命令を実行する (浮動小
数点演算命令でも最初の1クロックは必ず整数演算部11
5 が動作する) 。
【0238】整数演算でも浮動小数点演算でも、マイク
ロROM の読み出しとマイクロ命令の実行とはパイプライ
ン化されて行われる。マイクロプログラムの条件分岐は
μROM のYデコーダ (μROM から同時に読み出した複数
のマイクロ命令から目的のマイクロ命令をセレクトする
ためのデコーダ) で行われるため、条件分岐が発生した
場合にも1クロックの空きもなしにマイクロプログラム
が実行される。Eステージ35ではAステージ33で行った
スコアボードレジスタへの書き込み予約の解除、Dステ
ージ32での分岐予測が間違っていた場合の分岐予測テー
ブルの書換え、及びプリリターンアドレスが正しいか否
かのチェックも行う。
【0239】各種の割り込みは命令の切れ目でEステー
ジ35で直接受け付けられ、マイクロプログラムにより必
要な処理が実行される。その他の各種EIT の処理もEス
テージ35でマイクロプログラムにより行われる。
【0240】演算の結果をメモリにストアする必要があ
る場合は、Eステージ35はSステージ36へWコード47と
ストア処理を行う命令のプログラムカウンタ値との両方
を出力する。メモリへのオペランドストアは整数演算の
結果と浮動小数点演算の結果とに拘わらずプログラムで
論理的に指定された順序で行われる。浮動小数点演算部
116 からメモリへデータをストアする場合には、整数演
算部115 はその命令が終了するまで、即ち命令実行のス
テージがストアステージ36に移るまで、引き続く全ての
命令を実行しない。
【0241】(5.6) 「ストアステージ」 ストアステージ (Sステージ) 36ではオペランドアクセ
ス部112 が動作する。
【0242】Sステージ36はWコード47の論理アドレス
をデータTLB 1122で物理アドレスに変換し、そのアドレ
スでWコード47のデータを内蔵データキャッシュにスト
アする。同時にWコード47とプログラムカウンタ値とが
ストアバッファに入力され、データTLB 1122から出力さ
れた物理アドレスを用いて外部のメモリへWコード47の
データをストアする処理が行われる。ストアバッファは
3段あり、3つまでのストア要求をキューイングでき
る。ストアバッファから外部のメモリへのオペランドの
ストアは最小2クロックに1回行われる。
【0243】Sステージ36の動作はオペランドアクセス
部112 で行われ、データTLB 1122及び内蔵データキャッ
シュがミスした際のアドレス変換処理及び内蔵データキ
ャッシュの入れ替え処理も行われる。
【0244】オペランドのストア処理でEIT が検出され
た場合はストアバッファにWコード47とプログラムカウ
ンタ値を保持したままでEステージ35にEIT を通知す
る。ストアバッファでEIT が発生した場合、ヒットした
データキャッシュのエントリはすでに書き変わっていて
次の命令で使用されいるかどうかは特定できない。ま
た、そのヒットしたデータキャッシュのエントリはスト
アバッファのEIT によりハードウエアで自動的にインバ
リデートされることはない。
【0245】(5.7) 「パイプライン制御」 パイプラインの各ステージは入力ラッチと出力ラッチを
有し、他のステージとは独立に動作することを基本とす
る。各ステージは1つ前に行った処理が終了してその処
理結果を出力ラッチから次のステージの入力ラッチに転
送し、自分のステージの入力ラッチに次の処理に必要な
入力信号が全てそろえば次の処理を開始する。
【0246】つまり各ステージは、1つ前段のステージ
から出力されてくる次の処理に対する入力信号がすべて
有効となり、今の処理結果を後段のステージの入力ラッ
チに転送して出力ラッチが空になると次の処理を開始す
る。換言すれば、各ステージが動作を開始する直前のタ
イミングで入力信号が全てそろっている必要がある。入
力信号がそろっていないと、そのステージは待機状態
(入力待ち) になる。
【0247】出力ラッチから次のステージの入力ラッチ
への転送を行う際は次のステージの入力ラッチが空き状
態になっている必要があり、次のステージの入力ラッチ
が空きでない場合もパイプラインステージは待機状態
(出力待ち) になる。また、キャッシュあるいはTLB が
ミスしたり、パイプラインで処理中の命令間にデータ干
渉が生じると、1つのステージの処理に複数クロック必
要となり、パイプライン処理が遅延する。
【0248】(6) 「オペランドアクセス部の詳細動作」 (6.1) 「オペランドアクセス部112 の構成」 図24はオペランドアクセス部112 のデータバッファ52
のウエイ構成を示す模式図である。
【0249】データバッファ52は4ウエイのデータキャ
ッシュとして動作するため、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を選択する。
【0250】図25は各ウェイブロックWAY0 220, WAY1
221, WAY2 222, WAY3 223の詳細構成を示すブロック図
である。4つのウエイブロックWAY0 220, WAY1 221, WA
Y2 222, WAY3 223は全て図25に示す同一の構成となっ
ている。
【0251】各ウエイブロックは予備列205 と、予備行
204 と、主アレイ206 とからなるメモリ部61と、メモリ
部61の行アドレスをデコードする行デコード部62と、列
マルチプレクサ207 と、入出力レジスタ210 と、データ
マルチプレクサ211 と、比較器212 と、列レジスタ209
と、列デコーダ208 とで構成されている。
【0252】主アレイ206 は各エントリが277 ビットで
64エントリからなる。各エントリは1ビットのバリッド
ビットと、20ビットのタグアドレスとからなるタグ部
と、8×32バイト= 256ビットのデータ部とからなる。
バリッドビットに対応する列のビット線には全エントリ
のクロックド NOR論理があり、バリッドビットに対応す
るビット線はいずれのエントリからも”1”が出力され
ない場合、またはいずれのエントリもアクセスされない
場合に”0”を出力し、いずれか1つのエントリから”
1”が出力されると”1”を出力する。
【0253】データマルチプレクサ211 は32バイト/ブ
ロック構成のウエイ部から目的とする8バイトまたはそ
の中のバイトデータを選択するための回路である。
【0254】比較器212 はデータバッファ52がデータキ
ャッシュとして動作する場合にタグアドレスとDTLBとか
ら入力されるアドレスを比較してヒット/ミス判定をす
る動作と、 EDAバス743 から転送されて来たタグアドレ
スを入出力レジスタ210 へ転送する動作とを行う。
【0255】予備行204 は故障があるエントリを置き換
えるための冗長な回路である。また、予備列205 は故障
があるビットを置き換えるための冗長な回路である。予
備行204 と予備列205 とにより、主アレイ206 の一部に
故障がある場合でも、メモリ部61全体では故障がない場
合と同様の動作が可能になる。
【0256】行デコード部62には主アレイ206 のエント
リアドレスをデコードする行デコーダ203 と、故障した
エントリを予備行204 で置き換えた場合にLAバス742 の
ビット21:27 から入力された故障したエントリのアドレ
スで予備行204 をアクセスするために有効ビット201 と
行CAM202とが備えられている。
【0257】有効ビット201 は、主アレイ206 の各エン
トリと予備行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 がアクセスされる。
【0258】列レジスタ209 は主アレイ206 の故障した
ビット列を予備列205 で置き換えた場合に、置き換えた
列の番号を保持する。列レジスタ209 の内容は列デコー
ダ208 でデコードされ、列マルチプレクサ207 が故障し
た列の代わりに予備列205 を入出力レジスタ210 に結合
する。列マルチプレクサ207 は列デコーダ208 から出力
される列番号の主アレイ206 の列を予備列205 に置き換
えるためのセレクタである。
【0259】(6.2) 「論理空間データリード時の動作」 整数演算部115 からAAバス731 に出力された論理アドレ
スのアドレス変換対象となる上位20ビットの内の下位側
4ビットでDTLB1122のエントリが指定される。DTLB1122
は4ウエイ構成であるため、論理アドレスタグ16ビット
と物理アドレス20ビットとが4組出力される。この際、
論理アドレスの上位側16ビットとバリッドビットとが”
1”である論理アドレスタグのいずれか1つが一致すれ
ばDTLB1122はヒットしたことになり、DTLB1122から出力
されたその論理アドレスタグに対応する物理アドレスは
有効となる。
【0260】データバッファ52が内蔵データキャッシュ
として動作する場合は、論理アドレスの内のページオフ
セットを示し且つ物理アドレスに変換されない下位ビッ
ト12ビットがデータバッファ52のエントリを指定する。
データバッファ52の指定されたエントリからは物理アド
レスタグ20ビットと32バイトのデータとが4組出力され
る。この際、DTLB1122から出力された有効な物理アドレ
スがバリッドビットが”1”の物理アドレスタグのいず
れか1つと一致すればデータバッファ52はヒットしたこ
とになり、一致した物理アドレスタグに対応する32バイ
トのデータは有効となる。
【0261】DTLB1122がミスした場合は、本発明のデー
タ処理装置100 の外部のメモリにあるアドレス変換テー
ブルを DAT機構1121によりアクセスし、論理アドレスが
物理アドレスに変換され、DTLB1122のエントリが更新さ
れる。DTLB1122のエントリが更新された後、再びDTLB11
22がアクセスされてDTLB1122はヒットする。
【0262】DTLB1122がヒットしたが、内蔵データキャ
ッシュとして動作したデータバッファ52がミスした場合
はデータバッファ52のエントリが更新される。
【0263】DTLB1122がミスした場合は、DTLB1122から
読み出された物理アドレスとデータバッファ52の物理ア
ドレスタグとが一致してもデータバッファ52はヒットと
ならない。この場合、データバッファ52のヒット/ミス
の判定はDTLB1122のエントリが更新されてDTLB1122がヒ
ットした後に行われる。
【0264】データバッファ52が制御空間のメモリとし
て動作する場合は論理空間のアクセスでデータバッファ
52がアクセスされることはない。論理空間のアクセスに
対してはDTLB1122で変換された物理アドレスが本発明の
データ処理装置100 の外部に出力され、外部からデータ
がフェッチされる。
【0265】(6.3) 「論理空間データライト時の動作」 オペランドアクセス部112 に対するデータのライト動作
はDTLB1122のアクセスに関してはデータリード動作と同
じである。
【0266】データバッファ52が内蔵データキャッシュ
として動作する場合、データバッファ52のアクセスに関
してもデータリード動作と類似しているが、データバッ
ファ52からデータが読み出されることはない。データラ
イト動作ではデータバッファ52がヒットした場合はヒッ
トしたエントリにデータが書き込まれ、ミスした場合は
データバッファ52にはデータを書き込まず、エントリの
更新動作もしない。
【0267】なお、本発明のデータ処理装置100 のデー
タバッファ52はライトスルー制御のデータキャッシュと
して動作し、データライト動作でデータバッファ52がヒ
ットした場合もミスした場合もストアデータが外部へ出
力される。
【0268】データバッファ52が制御空間のメモリとし
て動作する場合は、データバッファ52が論理空間へのオ
ペランドライトでアクセスされることはない。論理空間
アクセスに対してDTLB1122で変換された物理アドレスが
本発明のデータ処理装置100の外部に出力され、ストア
データが外部へ出力される。
【0269】外部へのデータのストア処理は最小でも2
クロックを必要とし、本発明のデータ処理装置100 のE
ステージ35のストア動作速度に比べ低速である。このた
め、ストアデータはそのストア動作を行った命令のPC
値, ストア先の物理アドレス及びストア先の論理アドレ
スと共にストアバッファに一旦登録され、ストアバッフ
ァがストア動作を行う。ストアバッファに登録されるス
トア動作を行った命令のPC値はPC生成部113 で計算され
た命令のPC値である。
【0270】(6.4) 「制御空間アクセス時の動作」 データバッファ52が”H ’FFFFE000”〜”H ’FFFFFFF
F”のアドレス範囲の制御空間用メモリとして動作する
場合、”H ’FFFFE000”〜”H ’FFFFFFFF”のアドレス
範囲の制御空間に対するアクセスはデータバッファ52に
対して行われる。制御空間のアクセスではアドレス変換
は行われず、DTLB1122は動作しない。データバッファ52
はアドレス範囲が”H ’FFFFE000”〜”H ’FFFFFFFF”
のランダムアクセスメモリとして動作する。
【0271】データバッファ52のメモリ部61では物理ア
ドレスタグとバリッドビットとは使用されず、データ部
が使用される。リード動作ではAAバス731 から与えられ
たアドレスに従って、データバッファ52の内容が入出力
レジスタ210 及びデータマルチプレクサ211 を介して読
み出され、DDバス710 から整数演算部115 へ転送され
る。一方、ライト動作ではAAバス731 から与えられたア
ドレスに従って、DDバス710 を通じて入力されたデータ
がデータバッファ52に書き込まれる。
【0272】アドレス範囲が”H ’FFFFE000”〜”H ’
FFFFFFFF”以外の領域の制御空間に対するアクセスは本
発明のデータ処理装置100 の外部に対して行われる。制
御空間のアクセスをデータバッファ52に対して行うか、
外部に対して行うかの判断は制御空間アドレスの上位20
ビットに従ってオペランドアクセス部112 内で判断され
る。
【0273】(7) 「外部アクセス動作」 (7.1) 「入出力信号線」 図26は本発明のデータ処理装置100 の入出力信号を示
す模式図である。
【0274】本発明のデータ処理装置100 は、電源Vcc
と接地GND 、64本のデータピン(D0:63) と32本のアドレ
スピン(A0:31) と32本の命令ピン(I0:31) 、入力クロッ
クCLK の他に様々な制御信号を入出力する。
【0275】命令アクセスの場合もデータアクセスの場
合も、アドレスピンには物理アドレスが出力される。 C
LKは外部入力クロックであり、本発明のデータ処理装置
100の動作クロックと同一周波数のクロックである。
【0276】データアドレスストローブDAS#はアドレス
ピンに出力されたデータアドレスが有効であることを示
す。
【0277】リードライトR/W#はデータピンでのバスサ
イクルが入力か出力かを区別する。データストローブDS
# は本発明のデータ処理装置100 がデータ入力準備を完
了したこと、または本発明のデータ処理装置100 からデ
ータが出力されたことを示す。
【0278】DC#は本発明のデータ処理装置100 にデー
タアクセスサイクルを終了してもよいことを通知する信
号である。
【0279】BAT0:2はアドレスピンに出力されるアドレ
スの種類を示す。命令アドレスストローブIAS#はアドレ
スピンに出力された命令アドレスが有効であることを示
す。
【0280】命令ストローブIS# は本発明のデータ処理
装置100 が命令入力準備を完了したことを示す。IC#は
本発明のデータ処理装置100 に命令アクセスサイクルを
終了してもよいことを通知する信号である。
【0281】ホールドリクエストHREQ# は本発明のデー
タ処理装置100 にバス権を要求する信号であり、 HACK#
は本発明のデータ処理装置100 がホールドリクエストHR
EQ#を受け付けてバス権を他のデバイスに渡したことを
示す信号である。
【0282】IRL0:2は外部割込み要求信号である。 IACK#は本発明のデータ処理装置100 が外部割込みを受
け付け、割込みベクトルアクセスサイクルを行っている
ことを示す信号である。
【0283】MREQ#はアドレスバスへのアドレス出力権
を要求する信号で、 MS#はバススヌープのためアドレス
ピンの値を本発明のデータ処理装置100 がサンプリング
するタイミングを示す信号である。
【0284】(7.2) 「外部デバイスのアクセス」 図1に示す本発明のデータ処理装置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はシステム全体に供給されシステムの
基本タイミングを決定する。
【0285】標準アクセスモードでのバスアクセスで
は、データバス102 を用いたデータアクセスと命令バス
103 を用いた命令アクセスとをそれぞれ十分高速な外部
のメモリに対して外部入力クロックCLK の2サイクルに
1度の速度で行う。
【0286】クワッドアクセスモードでのバスアクセス
では、データバス102 を用いたデータアクセスと命令バ
ス103 を用いた命令アクセスとをそれぞれ十分高速な外
部のメモリに対して外部入力クロックCLK の5サイクル
に4度の速度で行う。
【0287】アドレスバス101 はデータキャッシュ107,
108のアクセスと命令キャッシュ106 のアクセスとの両
方に利用される。
【0288】(8) 「各種制御レジスタ」 (8.1) 「プロセッサ状態語 (PSW) の構成」 図27は本発明のデータ処理装置100 の整数演算部115
にあるプロセッサ状態語(PSW) の構成を示す模式図であ
る。
【0289】図中、SMビット520 はリング0で割込み処
理用スタックポインタを使用中であるか、リング0用ス
タックポインタを使用中であるかを示す。
【0290】RNGフィールド521 はプログラムが実行さ
れているリングの番号を示す。
【0291】ATフィールド522 はアドレス変換とメモリ
保護とのモードを示す。FEビット523 は浮動小数点演算
トラップの起動モードを示す。
【0292】DBビット524 はデバッグ環境を示す。DB=1
であればデバッグサポート機構がオンであってデバッグ
条件が成立すればセルフデバッグトラップが起動され、
DB=0であればデバッグサポート機構がオフであってデバ
ッグ条件が成立してもセルフデバッグトラップは起動さ
れない。
【0293】IMASKフィールド525 は外部割込みのマス
クレベルを示す。 IMASKフィールド525 で示されたマス
クレベルよりも優先度が高い外部割込みが本発明のデー
タ処理装置100 に入力されると割込み処理が起動され
る。
【0294】PRNGフィールド526 は現在のリングを呼出
したリングのリング番号を示す。
【0295】FLAGフィールド527 は整数演算に関するフ
ラグを示す。この図27に示されているPSW はリセット
時にはオールゼロにクリアされる。LDC命令と STC命令
とでその内容を読み出すこと及び指定した内容を書き込
むことができる。
【0296】(8.2) 「バッファメモリ制御レジスタ」 図28は本発明のデータ処理装置100 の内蔵データバッ
ファ52と内蔵命令キャッシュ51との制御を行うバッファ
メモリ制御レジスタの構成を示す模式図である。
【0297】図中、DMフィールド531 は内蔵データバッ
ファ52の制御を行うフィールドで以下に示す意味を有す
る。
【0298】DM=00 データバッファ52を動作させな
い。 DM=01 データバッファ52をアドレスが”H ’FFFFE00
0”〜”H ’FFFFFFFF”である制御空間のメモリとして
動作させる。 DM=10 データバッファ52をライトスルー制御のデー
タキャッシュとして動作させる。 DM=11 未定義。
【0299】RPフィールド530 はデータバッファ52がデ
ータキャッシュとして動作する場合の制御を行うフィー
ルドで以下に示す意味を有する。
【0300】RP=00 データキャッシュをフリーズ状
態にする。 RP=01 未定義。 RP=10 未定義。 RP=11 データキャッシュをラインサイズ32バイトで
動作させる。
【0301】IMフィールド532 は内蔵命令キャッシュ51
の制御を行うフィールドで以下に示す意味を有する。
【0302】IM=00 命令キャッシュを動作させな
い。 IM=01 未定義。 IM=11 未定義。 IM=11 命令キャッシュをラインサイズ16バイトのキ
ャッシュとして動作させる。
【0303】(8.3) 「パージ指定レジスタ」 図29は本発明のデータ処理装置100 の内蔵データバッ
ファ52と内蔵命令キャッシュ51とのパージ動作を制御す
るパージ指定レジスタの構成を示す模式図である。
【0304】図中、DPビット540 とIPビット541 とは内
蔵データバッファ52と内蔵命令キャッシュ51とのパージ
動作を制御するビットであり、これらの各ビットに”
1”を書き込むとそれぞれのビットに対応するバッファ
メモリの内容がパージされる。一方、これらの各ビット
に”0”を書き込むとそれぞれのビットに対応するバッ
ファメモリの内容はパージされない。また、このレジス
タの値を読み出した場合は全ビットがゼロである。
【0305】 DP=0 データバッファ52の全エントリをパージしな
い。 DP=1 データバッファ52の全エントリをパージす
る。 IP=0 内蔵命令キャッシュ51の全エントリをパージ
しない。 IP=1 内蔵命令キャッシュ51の全エントリをパージ
する。
【0306】(9) 「リセットシーケンス」 図30,図31及び図32は本発明のデータ処理装置10
0 のリセットシーケンスのフローチャートである。
【0307】RESET#ピンがアサートされリセット割り込
みが入力されると、IROM部118 が初期化される (ステッ
プS1)。
【0308】IROM部118 のデコーダEITDEC1182がリセッ
トシーケンスのマイクロプログラムのエントリ番地を生
成し、その値をマイクロプログラムUNAR1187に転送する
ことにより、リセットシーケンスのマイクロプログラム
処理が開始される (ステップS2)。
【0309】マイクロプログラムに従ってIROM部118 か
ら制御信号が送られ、整数演算部115 が初期化される
(ステップS3)。
【0310】整数演算部115 の主演算器1158にあるデク
リメントカウンタにリセット処理時間の最長値Nがセッ
トされ、各クロックごとにこのデクリメントカウンタが
デクリメントされる (ステップS4)。なお、この最長値
Nはリセットシーケンスのマイクロプログラムのなかで
データバッファ52の診断と故障部分の救済とを行うため
に必要な最大実行時間の理論クロック以上の値であれば
よい。
【0311】データバッファ52のメモリ部61の全バリッ
ドビットが”0” (無効) にされてデータバッファがパ
ージされ、行デコード部62の有効ビット201 の内の行CA
M202に対応するビットのみが”0” (無効) にされ、そ
の他のビットが”1” (有効) にされる (ステップS
5)。このステップS5によってデータバッファ52は行に関
する故障救済を行っていない状態にセットされる。
【0312】データバッファ52の列レジスタ209 にメモ
リ部61の列数より大きな値”300 ”がセットされ、列マ
ルチプレクサ207 の全列が主アレイ側に切り替えられる
(ステップS6)。このステップS6によってデータバッフ
ァ52は列に関する故障救済を行っていない状態にセット
される。
【0313】整数演算部115 を動作させてオール”0”
あるいはオール”1”などの種々のテストデータを発生
し、それらをデータバッファ52に書き込んでは読み出す
ことにより、書き込みデータと読み出しデータとが一致
するか否かを調べてデータバッファ52のテストが行われ
る (ステップS7)。この際、故障のある列の番号とその
故障ビット数とが整数演算部115 の作業用レジスタに記
憶され、列救済のための判断情報となる。
【0314】データバッファ52に故障がある場合はステ
ップS9に進み、故障がない場合はステップS13 に進む
(ステップS8)。
【0315】ステップS8のテストで故障が見つかった場
合は最も故障の多い列の番号が列レジスタ209 にセット
された上で予備列205 と置き換えられ、置き換えられた
列の番号が汎用レジスタ4、置き換えられた列の故障数
が汎用レジスタ3にそれぞれ記憶される (ステップS
9)。ステップS9により最も故障ビットが多い列が予備列
205 により救済される。
【0316】整数演算部115 を動作させて故障列を救済
したあとのメモリ部61に対して再度ステップS7と同様の
テストが行われ、故障したエントリに対応する有効ビッ
ト201 が全て”0” (無効)にされ、故障したエントリ
の数が汎用レジスタ1に書き込まれ、最後に発見した故
障したエントリの番号が整数演算部115 の汎用レジスタ
2に書き込まれる (ステップS10)。
【0317】列救済ずみのデータバッファ52に更に故障
があった場合はステップS12 に進み、故障がない場合は
ステップS13 に進む (ステップS11)。
【0318】ステップS10 のテストで故障が見つかった
場合はレジスタ2にセットされているエントリ番号が
備行204 にセットされ、行CAM202に対応する有効ビット
201が”1”にされて故障したエントリの1つが予備行2
04 で置き換えられる (ステップS12)。ステップS10 で
故障が見つかったエントリの1つは予備行204 で救済さ
れるが、その他の故障が見つかったエントリは有効ビッ
ト201 の無効化によりアクセス禁止となる。このため、
メモリ部61のバリッドビットが”0”のままでデータバ
ッファ52がデータキャッシュとして動作する場合に有効
なエントリとなることがない。
【0319】データバッファ52の診断と救済との内容に
依存せずリセットシーケンスの実行クロック数を一定に
するため、整数演算部115 の主演算器1158にあるデクリ
メントカウンタの値がゼロになるまで待って次のステッ
プに進む (ステップS13)。
【0320】マイクロプログラムによりIROM部118 と整
数演算部115 とのデータバッファ52以外の未初期化部分
が初期化される (ステップS14)。
【0321】外部のメモリの”H ’FFFFFFF8”番地がア
クセスされてリセット直後に実行すべき命令のPC値とス
タックポインタSPI の初期値とからなる8バイトのデー
タがフェッチされる (ステップS15)。このアクセスが本
発明のデータ処理装置100 以外への最初のアクセスであ
り、リセット割り込みが入力されてからこのステップが
実行されるまでのクロック数はデータバッファ52の故障
内容及び救済の有無に拘わらず一定である。
【0322】外部からフェッチしたSPI の初期値がSPI
にセットされ、リセット直後の命令のPC値が整数演算部
115 からPC生成部113 と命令フェッチ部111 とに転送さ
れてリセット直後に実行する命令にジャンプし、リセッ
トシーケンスのマイクロプログラムが終了する (ステッ
プS16)。
【0323】以上、図30,図31及び図32のフロー
チャートに示されているように、本発明のデータ処理装
置100 はマイクロプログラムによるリセット処理に際し
てデータバッファ52の診断および故障部分の予備回路へ
の置き換えを行う。リセットシーケンスはデータバッフ
ァ52の故障の有無に拘わらず常に同一クロック数で行な
われる。従って、本発明のデータ処理装置100 はデータ
バッファ52に故障がない場合も部分故障があって予備回
路によりその故障を救済した場合も、外部から見た製品
仕様は全く同じである。ただし、製品仕様には無関係で
ある汎用レジスタ1, 2, 3, 4にリセットシーケンスで発
見された故障に関する情報が記憶されるので、リセット
直後のプログラムでこれらのレジスタの内容を読み出す
ことにより LSI設計者は必要に応じて真の故障の有無を
知ることが可能である。
【0324】また、データバッファ52をデータキャッシ
ュとして使用する場合には、データバッファにいくつか
の故障があり、予備回路で一部分を救済してもなお故障
が残る場合、故障があるエントリへのアクセスが禁止さ
れるためそのエントリのバリッドビットを”1”にする
ことが出来ない。従って、データバッファ52は疑似的に
エントリ数が削減されたデータキャッシュとして動作
し、本発明のデータ処理装置100 は故障がない場合また
は故障が全て予備回路で救済された場合に比べデータキ
ャッシュのヒット率が異なるが、全体として間違った動
作をすることはない。
【0325】(10)「本発明の他の実施例」 上記実施例ではデータバッファ52に1つの予備行204 と
1つの予備列205 とを設けて故障を救済する例を述べた
が、予備行及び予備列の数を増加することにより救済の
可能性を高めてもよい。また、データバッファ52以外に
内蔵命令キャッシュ51に対しても同様に予備行及び予備
列を設けて故障を救済してもよい。
【0326】また、上記実施例では整数演算部115 の主
演算部にあるカウンタでリセットシーケンスの実行クロ
ック数を決定することによりデータバッファ52の故障の
有無に拘わらず常にリセットシーケンスの処理時間を一
定にしたが、リセット処理を行うマイクロプログラム自
体を故障の有無に拘わらず常に同一処理時間で終了する
ように記述してもよい。
【0327】更に、上記実施例ではマイクロプログラム
を使用することによりリセットシーケンスでデータバッ
ファ52の故障を救済する例を述べたが、システムのブー
トストラップメモリなどに記憶されたリセット直後の初
期化プログラムでデータバッファ52の故障を救済しても
よい。この場合、データ処理装置単体の製品仕様には故
障の有無による動作の違いを定義する必要があるが、デ
ータ処理装置と初期化プログラムとを併せたたシステム
全体としては予備回路で故障が救済できる限り、製品仕
様は同じである。
【0328】
【0329】
【発明の効果】本発明に係るメモリ装置及びデータ処理
装置は、メモリの全ビットに故障がなかった場合も、ま
た故障救済によりメモリ全体として故障がない状態とな
った場合も、リセット後は全く同様に動作するので、い
ずれの場合にも製品仕様上は良品となり、不良製品が減
少する。データ処理装置を1チップのLSI 上に実現する
場合、従来は故障メモリの部分修理が困難なため、本効
果は直接LSI の歩留り向上につながり、データ処理装置
を安価に提供することが可能になる効果が特に大きい。
【0330】また、本発明のメモリ装置及びデータ処理
装置は、故障救済の結果を必要に応じてリセット後のプ
ログラムで読み出すことができ、潜在的な故障の傾向を
知って、その後に製造するデータ処理装置の歩留りを更
に向上させることができる。なお、汎用レジスタは製品
仕様としては初期値が定義されないため、故障救済を行
ったデータ処理装置は故障救済情報の内容に拘わらず製
品仕様としてはすべて良品で、故障救済による製品製造
上の歩留り低下はない。
【0331】また、本発明に係るメモリ装置及びデータ
処理装置は、マイクロプログラムの内容に自由度を持た
せながらリセットルーチンの処理時間を一定にすること
ができ、高性能でコンパクトなマイクロプロラムで故障
救済を行うことができる。
【0332】また、本発明に係るメモリ装置及びデータ
処理装置は、故障したエントリが故障救済のために用意
された予備エントリの数より多い場合でも、使用可能な
エントリ数に違いはあるがキャッシュメモリとしては常
に正しい動作するデータキャッシュを歩留りよく実現
し、装置全体を安価に実現することができる。
【0333】
【0334】
【図面の簡単な説明】
【図1】本発明のデータ処理装置を用いたシステム構成
の一実施例を示すブロック図である。
【図2】本発明のデータ処理装置の命令フォーマットを
示す模式図である。
【図3】本発明のデータ処理装置の命令フォーマットを
示す模式図である。
【図4】本発明のデータ処理装置の命令フォーマットを
示す模式図である。
【図5】本発明のデータ処理装置の命令フォーマットを
示す模式図である。
【図6】本発明のデータ処理装置のコンテキストスイッ
チ命令である LDCTX命令と STCTX命令とで操作されるコ
ンテキストブロックのフォーマットを示す模式図であ
る。
【図7】LDCTX命令と STCTX命令とで操作されるコンテ
キストブロックのフォーマットを指定する CSWレジスタ
の構成を示す模式図である。
【図8】LDCTX 命令のビットパターンを示す模式図であ
る。
【図9】STCTX命令のビットパターンを示す模式図であ
る。
【図10】本発明のデータ処理装置の機能構成を示すブ
ロック図である。
【図11】バスインタフェイス部の構成を示すブロック
図である。
【図12】命令フェッチ部の構成を示すブロック図であ
る。
【図13】本発明のデータ処理装置の命令とアドレッシ
ングモードのフォーマットを示す模式図である。
【図14】本発明のデータ処理装置の命令デコード部の
構成を示すブロック図である。
【図15】本発明のデータ処理装置のPC生成部の構成を
示すブロック図である。
【図16】本発明のデータ処理装置のアドレス生成部の
構成を示すブロック図である。
【図17】本発明のデータ処理装置のオペランドアクセ
ス部の構成を示すブロック図である。
【図18】本発明のデータ処理装置のIROM部の構成を示
すブロック図である。
【図19】本発明のデータ処理装置のFROM部の構成を示
すブロック図である。
【図20】本発明のデータ処理装置の整数演算部の構成
を示すブロック図である。
【図21】本発明のデータ処理装置のIROM部のマイクロ
プログラムで操作される整数演算部周辺の構成を示すブ
ロック図である。
【図22】本発明のデータ処理装置の浮動小数点演算部
の構成を示すブロック図である。
【図23】本発明のデータ処理装置の命令パイプライン
の構成を示す模式図である。
【図24】本発明のデータ処理装置のオペランドアクセ
ス部のデータバッファのウエイ構成を示す模式図であ
る。
【図25】本発明のデータ処理装置のオペランドアクセ
ス部のデータバッファの各ウェイブロックの詳細構成を
示すブロック図である。
【図26】本発明のデータ処理装置の入出力信号を示す
模式図である。
【図27】本発明のデータ処理装置の整数演算部にある
プロセッサ状態語(PSW) の構成を示す模式図である。
【図28】本発明のデータ処理装置の内蔵データバッフ
ァと内蔵命令キャッシュとの制御を行うバッファメモリ
制御レジスタの構成を示す模式図である。
【図29】本発明のデータ処理装置の内蔵データバッフ
ァと内蔵命令キャッシュとのパージ動作を制御するパー
ジ指定レジスタの構成を示す模式図である。
【図30】本発明のデータ処理装置のリセットシーケン
スのフローチャートである。
【図31】本発明のデータ処理装置のリセットシーケン
スのフローチャートである。
【図32】本発明のデータ処理装置のリセットシーケン
スのフローチャートである。
【符号の説明】
52 データバッファ 61 メモリ部 62 行デコード部 115 整数演算部 201 有効ビット 202 行CAM 203 行デコーダ 204 予備行 205 予備列 206 主アレイ 207 列マルチプレクサ 208 列デコーダ 209 列レジスタ 212 比較器 220 ウェイ0 221 ウェイ1 222 ウェイ2 223 ウェイ3 225 ウェイ選択制御回路 1152 複演算器 1155 汎用レジスタ部 1156 作業レジスタ 1158 主演算器 RESET# リセット入力ピン CLK クロック入力ピン

Claims (8)

    (57)【特許請求の範囲】
  1. 【請求項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. 【請求項2】 診断回路はレジスタを有し、第1の場合
    は該レジスタに第1の初期値を書き込み、第2の場合は
    前記レジスタに第2の初期値を書き込み、第3の場合は
    前記レジスタに第3の初期値を書き込むことにより、リ
    セット時のメモリ部の各メモリの置き換え結果を前記レ
    ジスタに保持してリセット時の処理を終了することを特
    徴とする請求項1に記載のメモリ装置。
  3. 【請求項3】 リセット信号入力端子とクロック入力端
    子と診断回路とに接続し、故障診断及びメモリ部の初期
    化のリセットルーチンを実行するためのマイ クロプログ
    ラムを保持する制御プログラム記憶手段を有していて前
    記診断回路の動作を制御する診断制御機構と、 前記診断制御機構に接続し、マイクロプログラムの実行
    に要するクロック数を計数するカウンタとを備え、 該制御プログラム記憶手段に記憶されたリセットルーチ
    ンを前記リセット信号入力端子からの前記リセット信号
    の入力により起動して前記リセットルーチンを実行し、
    その実行に要するクロック数を前記カウンタにより制御
    することを特徴とする請求項に記載のメモリ装置。
  4. 【請求項4】 バリッドビットとタグフィールドとデー
    タフィールドとから構成されるエントリ複数からなるメ
    モリ部と、前記メモリ部に接続し前記メモリ部の各エン
    トリに対応するアクセス許可ビットの値を記憶する制御
    メモリと、前記アクセス許可ビットが第1の値である場
    合は前記バリッドビットと前記タグフィールドとの値に
    従って前記データフィールドの値の有効/無効を判断し
    て有効である場合にはヒットと判定し、無効である場合
    にはミスと判定し、前記アクセス許可ビットが第2の値
    である場合は前記データフィールドの値に拘わらずミス
    と判定するヒットミス判定部とを有するバッファメモリ
    機構と、 前記バッファメモリ機構に接続し、レジスタと演算回路
    とを有し、前記バッファメモリ機構へのデータの書き込
    み,前記バッファメモリ機構からのデータの読み出し及
    びデータ間の演算を行う演算機構と 前記メモリ部の各エ
    ントリの故障診断を行い、 故障がないと診断されたエントリに対応するアクセス許
    可ビットを前記第1の値とすることにより、ヒット又は
    ミスと判定し、また 故障があると診断されたエントリに
    対応するアクセス許可ビットを前記第2の値とすること
    によりデータフィールド値に拘わらずミスと判定し、 故障があると診断されたエントリを無効化し、この部分
    を切り放すことで前記バッファメモリ機構の故障救済を
    行う診断回路と を備えた ことを特徴とするメモリ装置。
  5. 【請求項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. 【請求項6】 演算機構は、第1の場合はレジスタに第
    1の初期値を書き込み、第2の場合は前記レジスタに第
    2の初期値を書き込み、第3の場合は前記レジスタに第
    3の初期値を書き込むことにより、リセット時のメモリ
    部の各メモリの置き換え結果を前記レジスタに保持して
    リセット時の処理を終了することを特徴とする請求項5
    に記載のデータ処理装置。
  7. 【請求項7】 リセット信号入力端子とクロック入力端
    子と演算機構とに接続し、故障診断及びメモリ部の初期
    化のリセットルーチンを実行するためのマイクロプログ
    ラムを保持する制御プログラム記憶手段を有していて前
    記演算機構の動作を制御する演算制御機構と、 前記演算制御機構に接続し、前記マイクロプログラムの
    実行に要するクロック数を計数するカウンタとを備え、 前記制御プログラム記憶手段に記憶されたリセットルー
    チンを前記リセット信号入力端子からの前記リセット信
    号の入力により起動して前記リセットルーチンを実行
    し、その実行に要するクロック数を前記カウンタにより
    制御する ことを特徴とする請求項5に記載のデータ処理
    装置。
  8. 【請求項8】 バリッドビットとタグフィールドとデー
    タフィールドとから構成されるエントリ複数からなるメ
    モリ部と、前記メモリ部に接続し前記メモリ部の各エン
    トリに対応するアクセス許可ビットの値を記憶する制御
    メモリと、前記アクセス許可ビットが第1の値である場
    合は前記バリッドビットと前記タグフィールドとの値に
    従って前記データフィールドの値の有効/無効を判断し
    て有効である場合にはヒットと判定し、無効である場合
    にはミスと判定し、前記アクセス許可ビットが第2の値
    である場合は前記データフィールドの値に拘わらずミス
    と判定するヒットミス判定部とを有するバッファメモリ
    機構と、 前記バッファメモリ機構に接続し、レジスタと演算回路
    とを有し、前記バッファメモリ機構へのデータの書き込
    み,前記バッファメモリ機構からのデータの読み出し及
    びデータ間の演算を行う演算機構と を備え、 前記演算機構は、 前記メモリ部の各エントリの故障診断を行い、 故障がないと診断されたエントリに対応するアクセス許
    可ビットを前記第1の値とすることにより、ヒット又は
    ミスの判定を行なわせ、また 故障があると診断されたエ
    ントリに対応するアクセス許可ビットを前記第2の値と
    することによりデータフィールドの値に拘わらずミスと
    する判定を行なわせ、 故障があると診断されたエントリを無効化し、この部分
    を切り放すことで前記バッファメモリ機構の故障救済を
    行う べくなして あることを特徴とするデータ処理装置。
JP3197688A 1991-08-07 1991-08-07 メモリ装置及びそれを使用したデータ処理装置 Expired - Lifetime JP2796590B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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