JPH08212779A - メモリアレイ、キャッシュ、およびマイクロプロセッサ - Google Patents
メモリアレイ、キャッシュ、およびマイクロプロセッサInfo
- Publication number
- JPH08212779A JPH08212779A JP7214465A JP21446595A JPH08212779A JP H08212779 A JPH08212779 A JP H08212779A JP 7214465 A JP7214465 A JP 7214465A JP 21446595 A JP21446595 A JP 21446595A JP H08212779 A JPH08212779 A JP H08212779A
- Authority
- JP
- Japan
- Prior art keywords
- timing
- cache
- coupled
- storage
- enable signal
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/06—Sense amplifiers; Associated circuits, e.g. timing or triggering circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/12—Bit line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, equalising circuits, for bit lines
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/22—Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Dram (AREA)
Abstract
(57)【要約】
【課題】 キャッシュ制御が行なわれる集積タイミング
回路を含み、それによってキャッシュコアの記憶回路の
タイミングが調整されることが可能になるキャッシュを
提供する。 【解決手段】 キャッシュコア(400)は、デコード
回路(410)、タイミング回路(412)、および記
憶回路(414)を含む。
回路を含み、それによってキャッシュコアの記憶回路の
タイミングが調整されることが可能になるキャッシュを
提供する。 【解決手段】 キャッシュコア(400)は、デコード
回路(410)、タイミング回路(412)、および記
憶回路(414)を含む。
Description
【0001】
【発明の背景】この発明は、マイクロプロセッサに関
し、より特定的には、マイクロプロセッサに高性能キャ
ッシュを設けることに関する。
し、より特定的には、マイクロプロセッサに高性能キャ
ッシュを設けることに関する。
【0002】マイクロプロセッサは多くの産業で広範囲
に使用されている。どのマイクロプロセッサも情報を速
く処理することを目的としている。マイクロプロセッサ
が情報を処理する速度を増すべく使用される一技術とし
て、マイクロプロセッサにキャッシュと呼ばれる高速ロ
ーカルメモリを含むアーキテクチャを設けることがあ
る。
に使用されている。どのマイクロプロセッサも情報を速
く処理することを目的としている。マイクロプロセッサ
が情報を処理する速度を増すべく使用される一技術とし
て、マイクロプロセッサにキャッシュと呼ばれる高速ロ
ーカルメモリを含むアーキテクチャを設けることがあ
る。
【0003】キャッシュは、命令およびデータを一時的
に記憶すべくマイクロプロセッサによって使用される。
命令およびデータ両方を記憶するキャッシュは統一キャ
ッシュと呼ばれ、命令のみを記憶するキャッシュは命令
キャッシュであって、データのみを記憶するキャッシュ
はデータキャッシュである。マイクロプロセッサアーキ
テクチャに統一キャッシュを設けるか、または命令キャ
ッシュ、データキャッシュを設けるかは設計の選択上の
問題である。
に記憶すべくマイクロプロセッサによって使用される。
命令およびデータ両方を記憶するキャッシュは統一キャ
ッシュと呼ばれ、命令のみを記憶するキャッシュは命令
キャッシュであって、データのみを記憶するキャッシュ
はデータキャッシュである。マイクロプロセッサアーキ
テクチャに統一キャッシュを設けるか、または命令キャ
ッシュ、データキャッシュを設けるかは設計の選択上の
問題である。
【0004】広く受入れられている1つのマイクロプロ
セッサアーキテクチャは、X86アーキテクチャであ
る。このアーキテクチャは、最初にi386TMマイクロ
プロセッサにおいて導入されたが、i486TMマイクロ
プロセッサおよびPentiumTMマイクロプロセッサ
両方の基本的なアーキテクチャにもなっており、これら
すべてはカリフォルニア州、サンタクララ、インテルコ
ーポレイション(IntelCorporation of Santa Clara, C
alifornia)から入手可能である。X86アーキテクチ
ャは、論理(すなわち仮想)アドレス、線形アドレス、
および物理アドレスの3つの別個のタイプのアドレスを
提供する。
セッサアーキテクチャは、X86アーキテクチャであ
る。このアーキテクチャは、最初にi386TMマイクロ
プロセッサにおいて導入されたが、i486TMマイクロ
プロセッサおよびPentiumTMマイクロプロセッサ
両方の基本的なアーキテクチャにもなっており、これら
すべてはカリフォルニア州、サンタクララ、インテルコ
ーポレイション(IntelCorporation of Santa Clara, C
alifornia)から入手可能である。X86アーキテクチ
ャは、論理(すなわち仮想)アドレス、線形アドレス、
および物理アドレスの3つの別個のタイプのアドレスを
提供する。
【0005】論理アドレスはセグメントベースアドレス
からのオフセットを表わす。セグメントベースアドレス
はセレクタを介してアクセスされる。より特定的には、
セグメントレジスタに記憶されるセレクタは、グローバ
ルディスクリプタテーブル(GDT)における位置を指
し示すインデックスである。GDT位置は、セグメント
ベースアドレスに対応する線形アドレスを記憶する。
からのオフセットを表わす。セグメントベースアドレス
はセレクタを介してアクセスされる。より特定的には、
セグメントレジスタに記憶されるセレクタは、グローバ
ルディスクリプタテーブル(GDT)における位置を指
し示すインデックスである。GDT位置は、セグメント
ベースアドレスに対応する線形アドレスを記憶する。
【0006】論理および線形アドレス間の変換は、マイ
クロプロセッサがリアルモードにあるか保護モードにあ
るかに依存する。マイクロプロセッサがリアルモードに
あるとき、セグメンテーションユニットはセレクタを左
に4ビットシフトし、その結果をオフセットに加えて線
形アドレスを形成する。マイクロプロセッサが保護モー
ドにあるとき、セグメンテーションユニットはセレクタ
によって指し示された線形ベースアドレスをオフセット
に加え、線形アドレスを提供する。
クロプロセッサがリアルモードにあるか保護モードにあ
るかに依存する。マイクロプロセッサがリアルモードに
あるとき、セグメンテーションユニットはセレクタを左
に4ビットシフトし、その結果をオフセットに加えて線
形アドレスを形成する。マイクロプロセッサが保護モー
ドにあるとき、セグメンテーションユニットはセレクタ
によって指し示された線形ベースアドレスをオフセット
に加え、線形アドレスを提供する。
【0007】物理アドレスは、マイクロプロセッサのア
ドレスピン上に現れ、外部メモリを物理的にアドレスす
べく使用されるアドレスである。物理アドレスは必ずし
も線形アドレスに対応しない。ページングが能動化され
ていなければ、32ビット線形アドレスが物理アドレス
に対応する。ページングが能動化されていれば、線形ア
ドレスは物理アドレスに変換されなければならない。マ
イクロプロセッサのメモリ管理ユニットの一部として通
常含まれるページングユニットが、この変換を行なう。
ドレスピン上に現れ、外部メモリを物理的にアドレスす
べく使用されるアドレスである。物理アドレスは必ずし
も線形アドレスに対応しない。ページングが能動化され
ていなければ、32ビット線形アドレスが物理アドレス
に対応する。ページングが能動化されていれば、線形ア
ドレスは物理アドレスに変換されなければならない。マ
イクロプロセッサのメモリ管理ユニットの一部として通
常含まれるページングユニットが、この変換を行なう。
【0008】ページングユニットは、線形アドレスを物
理アドレスに変換すめために2つのレベルのテーブルを
使用する。第1のレベルテーブルはページディレクトリ
であって、第2のレベルテーブルはページテーブルであ
る。ページディレクトリは複数のページディレクトリエ
ントリを含み、各エントリはページテーブルのアドレス
およびページテーブルについての情報を含む。線形アド
レスの上位10ビットは(A22−A31)ページディ
レクトリエントリを選択するインデックスとして使用さ
れる。ページテーブルは複数のページテーブルエントリ
を含み、各ページテーブルエントリはページフレームの
開始アドレスおよびページについての統計的情報を含
む。線形アドレスのアドレスビットA12−A21は、
ページテーブルエントリの1つを選択するインデックス
として使用される。ページフレームの開始アドレスは線
形アドレスの下位12ビットと連結され、物理アドレス
を形成する。
理アドレスに変換すめために2つのレベルのテーブルを
使用する。第1のレベルテーブルはページディレクトリ
であって、第2のレベルテーブルはページテーブルであ
る。ページディレクトリは複数のページディレクトリエ
ントリを含み、各エントリはページテーブルのアドレス
およびページテーブルについての情報を含む。線形アド
レスの上位10ビットは(A22−A31)ページディ
レクトリエントリを選択するインデックスとして使用さ
れる。ページテーブルは複数のページテーブルエントリ
を含み、各ページテーブルエントリはページフレームの
開始アドレスおよびページについての統計的情報を含
む。線形アドレスのアドレスビットA12−A21は、
ページテーブルエントリの1つを選択するインデックス
として使用される。ページフレームの開始アドレスは線
形アドレスの下位12ビットと連結され、物理アドレス
を形成する。
【0009】メモリオペレーションごとに2つのレベル
のテーブルをアクセスすることはマイクロプロセッサの
性能にかなりの影響を及ぼすので、メモリ管理ユニット
は一般的には最も新しくアクセスされたページテーブル
エントリのキャッシュをも含み、このキャッシュは変換
索引バッファ(TLB)と呼ばれる。マイクロプロセッ
サがページングユニットを使用するのはエントリがTL
Bにないときだけである。
のテーブルをアクセスすることはマイクロプロセッサの
性能にかなりの影響を及ぼすので、メモリ管理ユニット
は一般的には最も新しくアクセスされたページテーブル
エントリのキャッシュをも含み、このキャッシュは変換
索引バッファ(TLB)と呼ばれる。マイクロプロセッ
サがページングユニットを使用するのはエントリがTL
Bにないときだけである。
【0010】X86アーキテクチャに適合するキャッシ
ュを含むはじめてのプロセッサは、8K場合と統一キャ
ッシュを含む486プロセッサであった。Pentiu
mTMプロセッサは8Kバイトの命令キャッシュとデータ
キャッシュとを別個に含む。486プロセッサキャッシ
ュおよびPentiumTMプロセッサキャッシュは物理
アドレスを介してアクセスされるが、これらのプロセッ
サの機能単位は論理アドレスで動作する。したがって、
機能単位がこれらのキャッシュへのアクセスを要求する
とき、論理アドレスが線形アドレスに、その後物理アド
レスに変換されなければならない。
ュを含むはじめてのプロセッサは、8K場合と統一キャ
ッシュを含む486プロセッサであった。Pentiu
mTMプロセッサは8Kバイトの命令キャッシュとデータ
キャッシュとを別個に含む。486プロセッサキャッシ
ュおよびPentiumTMプロセッサキャッシュは物理
アドレスを介してアクセスされるが、これらのプロセッ
サの機能単位は論理アドレスで動作する。したがって、
機能単位がこれらのキャッシュへのアクセスを要求する
とき、論理アドレスが線形アドレスに、その後物理アド
レスに変換されなければならない。
【0011】X86アーキテクチャ以外のマイクロプロ
セッサアーキテクチャにおいては、キャッシュヒットか
らアドレス変換時間をなくすために仮想アドレスキャッ
シュを使用することが既知である。しかしながら、入出
力装置(I/O)は物理アドレスを使用するので、I/
Oがキャッシュと相互に作用するために、マッピングが
必要である。これらのシステムでは、一般的に2つのレ
ベル、仮想および物理のアドレス指定しかないので、物
理的にアドレスされたI/O装置が仮想アドレスキャッ
シュと相互に作用するために必要な変化は1つだけであ
る。さらに、仮想アドレスキャッシュに関して、処理が
切換えられるごとに、仮想アドレスは異なる物理アドレ
スを参照するので、キャッシュはフラッシュされなけれ
ばならない。仮想的にアドレスされたキャッシュエント
リが無効である可能性があるからである。さらに、仮想
アドレスキャッシュに関して、2つの異なる仮想アドレ
スが同じ物理アドレスに対応する可能性がある。これら
の二重のアドレスはエイリアスと呼ばれ、その結果同じ
物理アドレスからの情報を有する2つの位置が仮想キャ
ッシュにあることになり、その位置のうちの1つだけの
情報が変更される。
セッサアーキテクチャにおいては、キャッシュヒットか
らアドレス変換時間をなくすために仮想アドレスキャッ
シュを使用することが既知である。しかしながら、入出
力装置(I/O)は物理アドレスを使用するので、I/
Oがキャッシュと相互に作用するために、マッピングが
必要である。これらのシステムでは、一般的に2つのレ
ベル、仮想および物理のアドレス指定しかないので、物
理的にアドレスされたI/O装置が仮想アドレスキャッ
シュと相互に作用するために必要な変化は1つだけであ
る。さらに、仮想アドレスキャッシュに関して、処理が
切換えられるごとに、仮想アドレスは異なる物理アドレ
スを参照するので、キャッシュはフラッシュされなけれ
ばならない。仮想的にアドレスされたキャッシュエント
リが無効である可能性があるからである。さらに、仮想
アドレスキャッシュに関して、2つの異なる仮想アドレ
スが同じ物理アドレスに対応する可能性がある。これら
の二重のアドレスはエイリアスと呼ばれ、その結果同じ
物理アドレスからの情報を有する2つの位置が仮想キャ
ッシュにあることになり、その位置のうちの1つだけの
情報が変更される。
【0012】キャッシュのセンスアンプに対して適切な
電圧差が利用可能になるまで読出を遅延すべくバッファ
チェーンを使用することが既知である。これらのバッフ
ァチェーンはキャッシュのビットセルのいずれにも関係
がないので、キャッシュの製造の処理が変化しても、読
出サイクルの間にビットセルの性能に影響を及ぼしたよ
うには、処理による変更がタイミング遅延に影響を及ぼ
すことはない。
電圧差が利用可能になるまで読出を遅延すべくバッファ
チェーンを使用することが既知である。これらのバッフ
ァチェーンはキャッシュのビットセルのいずれにも関係
がないので、キャッシュの製造の処理が変化しても、読
出サイクルの間にビットセルの性能に影響を及ぼしたよ
うには、処理による変更がタイミング遅延に影響を及ぼ
すことはない。
【0013】
【発明の概要】キャッシュコアに、キャッシュ制御が行
なわれる集積タイミング回路を設けることによって、キ
ャッシュコアの記憶回路のタイミングの調整が有利に可
能になり、有利にさらにキャッシュアクセスの性能をキ
ャッシュのセンスアンプの起動に緊密に関連付けること
が有利に可能になることが発見された。
なわれる集積タイミング回路を設けることによって、キ
ャッシュコアの記憶回路のタイミングの調整が有利に可
能になり、有利にさらにキャッシュアクセスの性能をキ
ャッシュのセンスアンプの起動に緊密に関連付けること
が有利に可能になることが発見された。
【0014】
【発明の詳しい説明】本発明の考えられる最良の実施態
様の詳しい説明が以下に述べられる。この説明はこの発
明を例示的に示すことを意図しており、限定していると
考えられるべきではない。
様の詳しい説明が以下に述べられる。この説明はこの発
明を例示的に示すことを意図しており、限定していると
考えられるべきではない。
【0015】図1を参照して、この発明は、X86命令
セットを実行するスーパースカラX86マイクロプロセ
ッサ100に即して最良に理解され得る。マイクロプロ
セッサは、486XLバスまたは他の従来のマイクロプ
ロセッサバスを介して物理的にアドレスされる外部メモ
リ101に結合される。マイクロプロセッサ100は、
内部アドレスおよびデータ(IAD)バス102とXT
ARGETバス103とバイトキュー106とに結合さ
れる命令キャッシュ104を含み、バイトキュー106
は命令デコーダ108に結合される。命令デコーダ10
8はRISCコア110に結合される。RISCコア1
10は、レジスタファイル112およびリオーダバッフ
ァ114を含み、さらに演算論理ユニット131(AL
U0)、演算論理およびシフトユニット132(ALU
1&SHF)、スペシャルレジスタブロック133(S
RB)、ロード/ストア機能ユニット134(LSSE
C)、ブランチセクション135(BRLSEC)、お
よび浮動小数点ユニット136(FPU)などのさまざ
まな機能単位を含む。
セットを実行するスーパースカラX86マイクロプロセ
ッサ100に即して最良に理解され得る。マイクロプロ
セッサは、486XLバスまたは他の従来のマイクロプ
ロセッサバスを介して物理的にアドレスされる外部メモ
リ101に結合される。マイクロプロセッサ100は、
内部アドレスおよびデータ(IAD)バス102とXT
ARGETバス103とバイトキュー106とに結合さ
れる命令キャッシュ104を含み、バイトキュー106
は命令デコーダ108に結合される。命令デコーダ10
8はRISCコア110に結合される。RISCコア1
10は、レジスタファイル112およびリオーダバッフ
ァ114を含み、さらに演算論理ユニット131(AL
U0)、演算論理およびシフトユニット132(ALU
1&SHF)、スペシャルレジスタブロック133(S
RB)、ロード/ストア機能ユニット134(LSSE
C)、ブランチセクション135(BRLSEC)、お
よび浮動小数点ユニット136(FPU)などのさまざ
まな機能単位を含む。
【0016】RISCコア110は、機能単位に結合さ
れたAおよびBオペランドバス116、タイプおよびデ
ィスパッチ(TAD)バス118、ならびに結果タグお
よび結果バス140を含む。AおよびBオペランドバス
116はまたレジスタファイル112とリオーダバッフ
ァ114とに結合される。TADバス118はまた命令
デコーダ108に結合される。結果バス140もまたリ
オーダバッファ114に結合される。さらに、ブランチ
セクション135は、Xターゲットバス103を介して
リオーダバッファ114と命令デコーダ108と命令キ
ャッシュ104とに結合される。
れたAおよびBオペランドバス116、タイプおよびデ
ィスパッチ(TAD)バス118、ならびに結果タグお
よび結果バス140を含む。AおよびBオペランドバス
116はまたレジスタファイル112とリオーダバッフ
ァ114とに結合される。TADバス118はまた命令
デコーダ108に結合される。結果バス140もまたリ
オーダバッファ114に結合される。さらに、ブランチ
セクション135は、Xターゲットバス103を介して
リオーダバッファ114と命令デコーダ108と命令キ
ャッシュ104とに結合される。
【0017】命令キャッシュ104に加えて、マイクロ
プロセッサ100はまたデータキャッシュ150(DC
ACHE)および物理タグ回路162を含む。データキ
ャッシュ150は、RISCコアのロード/ストア機能
単位134に結合され、さらにIADバス102に結合
される。物理タグ回路162は、IADバス102を介
して命令キャッシュ104およびデータキャッシュ15
0両方と相互に作用する。命令キャッシュ104および
データキャッシュ150は両方とも線形にアドレス可能
なキャッシュである。命令キャッシュ104およびデー
タキャッシュ150は物理的には離れているが両キャッ
シュは同じアーキテクチャを使用して編成されている。
すなわち両キャッシュはストアアレイおよび対応のタグ
アレイを含む。
プロセッサ100はまたデータキャッシュ150(DC
ACHE)および物理タグ回路162を含む。データキ
ャッシュ150は、RISCコアのロード/ストア機能
単位134に結合され、さらにIADバス102に結合
される。物理タグ回路162は、IADバス102を介
して命令キャッシュ104およびデータキャッシュ15
0両方と相互に作用する。命令キャッシュ104および
データキャッシュ150は両方とも線形にアドレス可能
なキャッシュである。命令キャッシュ104およびデー
タキャッシュ150は物理的には離れているが両キャッ
シュは同じアーキテクチャを使用して編成されている。
すなわち両キャッシュはストアアレイおよび対応のタグ
アレイを含む。
【0018】マイクロプロセッサ100はまた、メモリ
管理ユニット(MMU)164およびバスインタフェー
スユニット160(BIU)を含む。メモリ管理ユニッ
ト164は、IADバス102と物理タグ回路162と
に結合される。バスインタフェースユニット160は物
理タグ回路162とIADバス102とに結合され、さ
らに486XLバスなどの外部マイクロプロセッサバス
に結合される。
管理ユニット(MMU)164およびバスインタフェー
スユニット160(BIU)を含む。メモリ管理ユニッ
ト164は、IADバス102と物理タグ回路162と
に結合される。バスインタフェースユニット160は物
理タグ回路162とIADバス102とに結合され、さ
らに486XLバスなどの外部マイクロプロセッサバス
に結合される。
【0019】マイクロプロセッサ100は命令のシーケ
ンスを含むコンピュータプログラムを実行する。コンピ
ュータプログラムは典型的には、コンピュータシステム
中のハードディスク、フロッピーディスク、または他の
不揮発性記憶媒体上に記憶される。プログラムが実行さ
れるとき、プログラムは記憶媒体から主メモリ101中
にロードされ、バスインタフェースユニット160を介
してマイクロプロセッサ100によってアクセスされ
る。プログラムの命令および関連のデータが一旦主メモ
リ101中に入ると、個々の命令は実行のために準備さ
れ、最終的にマイクロプロセッサ100によって実行さ
れる。
ンスを含むコンピュータプログラムを実行する。コンピ
ュータプログラムは典型的には、コンピュータシステム
中のハードディスク、フロッピーディスク、または他の
不揮発性記憶媒体上に記憶される。プログラムが実行さ
れるとき、プログラムは記憶媒体から主メモリ101中
にロードされ、バスインタフェースユニット160を介
してマイクロプロセッサ100によってアクセスされ
る。プログラムの命令および関連のデータが一旦主メモ
リ101中に入ると、個々の命令は実行のために準備さ
れ、最終的にマイクロプロセッサ100によって実行さ
れる。
【0020】主メモリ101中に記憶された後、命令は
バスインタフェースユニット160を介して命令キャッ
シュ104に渡され、そこで命令は一時的に保持され
る。命令デコーダ108は命令キャッシュ104からバ
イトキュー106を介して命令を受取り、その命令を整
列させかつバッファする。命令デコーダ108は命令を
調べかつとるべき適切な動作を判断する。たとえば、デ
コーダ108は、特定の命令がPUSH、POP、LO
AD、AND、OR、EX OR、ADD、SUB、N
OP、JUMP、条件付のJUMP(BRANCH)、
または他の命令であるかを判断し得る。デコーダ108
がどの特定の命令が存在すると判断するかに依存して、
命令はRISCコア 110の適切な機能単位にディス
パッチされる。
バスインタフェースユニット160を介して命令キャッ
シュ104に渡され、そこで命令は一時的に保持され
る。命令デコーダ108は命令キャッシュ104からバ
イトキュー106を介して命令を受取り、その命令を整
列させかつバッファする。命令デコーダ108は命令を
調べかつとるべき適切な動作を判断する。たとえば、デ
コーダ108は、特定の命令がPUSH、POP、LO
AD、AND、OR、EX OR、ADD、SUB、N
OP、JUMP、条件付のJUMP(BRANCH)、
または他の命令であるかを判断し得る。デコーダ108
がどの特定の命令が存在すると判断するかに依存して、
命令はRISCコア 110の適切な機能単位にディス
パッチされる。
【0021】RISCコア 110にディスパッチされ
る命令は典型的には、以下のフォーマット、つまりOP
CODE、OPERAND A、 OPARND
B、DESTINATION REGISTERの多重
フィールドを含む。たとえば、命令ADD A、B、C
はレジスタAの内容をレジスタBの内容に加え、さらに
その結果をレジスタC中に置くことを意味する。
る命令は典型的には、以下のフォーマット、つまりOP
CODE、OPERAND A、 OPARND
B、DESTINATION REGISTERの多重
フィールドを含む。たとえば、命令ADD A、B、C
はレジスタAの内容をレジスタBの内容に加え、さらに
その結果をレジスタC中に置くことを意味する。
【0022】OP CODEは、命令デコーダ108か
らRISCコア110の機能単位に、タイプおよびディ
スパッチ(TAD)バス118を介して与えられる。特
定の命令のためのOP CODEは適切な機能単位に与
えられなければならないだけでなく、その命令のための
指定されたOPERANDもまた検索されかつ機能単位
に送られなければならない。特定のオペランドの値が主
メモリ101中に記憶されると、この値はとり出されデ
ータキャッシュ150中に記憶される。この値はその後
ロードストアセクション134によってロードされ、リ
オーダバッファ114に与えられる。特定のオペランド
の値がまだ計算されていなければ、その値がまず計算さ
れかつ機能単位が実行される前に機能単位に与えられな
ければならない。たとえば、現在の命令が先行する命令
に依存しているならば、先行する命令の結果が決定され
なければ現在の命令が実行できない。この状況は依存性
と呼ばれる。
らRISCコア110の機能単位に、タイプおよびディ
スパッチ(TAD)バス118を介して与えられる。特
定の命令のためのOP CODEは適切な機能単位に与
えられなければならないだけでなく、その命令のための
指定されたOPERANDもまた検索されかつ機能単位
に送られなければならない。特定のオペランドの値が主
メモリ101中に記憶されると、この値はとり出されデ
ータキャッシュ150中に記憶される。この値はその後
ロードストアセクション134によってロードされ、リ
オーダバッファ114に与えられる。特定のオペランド
の値がまだ計算されていなければ、その値がまず計算さ
れかつ機能単位が実行される前に機能単位に与えられな
ければならない。たとえば、現在の命令が先行する命令
に依存しているならば、先行する命令の結果が決定され
なければ現在の命令が実行できない。この状況は依存性
と呼ばれる。
【0023】機能単位によって実行されるべき特定の命
令に必要とされるオペランドは、レジスタファイル11
2またはリオーダバッファ114いずれかによってオペ
ランドバスに与えられる。オペランドバスはオペランド
を適切な機能単位に運ぶ。一旦機能単位がOP COD
E、OPERAND A、およびOPERAND Bを
受取ると、機能単位は命令を実行し、かつ機能単位のす
べての出力とリオーダバッファ114とに結合されてい
る結果バス140上にその結果を置く。
令に必要とされるオペランドは、レジスタファイル11
2またはリオーダバッファ114いずれかによってオペ
ランドバスに与えられる。オペランドバスはオペランド
を適切な機能単位に運ぶ。一旦機能単位がOP COD
E、OPERAND A、およびOPERAND Bを
受取ると、機能単位は命令を実行し、かつ機能単位のす
べての出力とリオーダバッファ114とに結合されてい
る結果バス140上にその結果を置く。
【0024】リオーダバッファ114は先入れ先出し
(FIFO)装置として管理される。命令が命令デコー
ダ108によってデコードされると、対応のエントリが
リオーダバッファ114において割り当てられる。命令
の実行が完了すると命令によって計算された結果の値は
その後、割り当てられたエントリ中に書込まれる。結果
の値はその後レジスタファイル112の中に書込まれ、
その命令に伴なう例外がなければ、さらには命令に影響
を及ぼす投機ブランチが未決定でなければ、命令は退却
する。その関連のエントリがリオーダバッファ114の
ヘッドに達したとき命令が完了していなければ、リオー
ダバッファ114の進行は命令が完了するまで停止す
る。しかしながら、さらなるエントリを続けて割り当て
ることができる。
(FIFO)装置として管理される。命令が命令デコー
ダ108によってデコードされると、対応のエントリが
リオーダバッファ114において割り当てられる。命令
の実行が完了すると命令によって計算された結果の値は
その後、割り当てられたエントリ中に書込まれる。結果
の値はその後レジスタファイル112の中に書込まれ、
その命令に伴なう例外がなければ、さらには命令に影響
を及ぼす投機ブランチが未決定でなければ、命令は退却
する。その関連のエントリがリオーダバッファ114の
ヘッドに達したとき命令が完了していなければ、リオー
ダバッファ114の進行は命令が完了するまで停止す
る。しかしながら、さらなるエントリを続けて割り当て
ることができる。
【0025】各機能単位には、その命令に対するオペラ
ンドが機能単位にまだ利用可能でないためにまだ完了し
ていない命令からのOP CODEを記憶するための、
予約ステーション(RS)121−126が含まれる。
各予約ステーションは、後に予約ステーションに到着す
る抜けているオペランドのための場所を予約するタグと
ともに、命令のOP CODEを記憶する。未決定の命
令が予約ステーションでそのオペランドとアセンブルさ
れている間にマイクロプロセッサ100が他の命令を実
行し続けることができるので、この技術は性能を高め
る。
ンドが機能単位にまだ利用可能でないためにまだ完了し
ていない命令からのOP CODEを記憶するための、
予約ステーション(RS)121−126が含まれる。
各予約ステーションは、後に予約ステーションに到着す
る抜けているオペランドのための場所を予約するタグと
ともに、命令のOP CODEを記憶する。未決定の命
令が予約ステーションでそのオペランドとアセンブルさ
れている間にマイクロプロセッサ100が他の命令を実
行し続けることができるので、この技術は性能を高め
る。
【0026】マイクロプロセッサ100は、デコーダ1
08をRISCコア110の機能単位から分離すること
によって順序外の命令発行に対処できる。より特定的に
は、リオーダバッファ114および機能単位の予約ステ
ーションは効果的に分散命令ウィンドウを確立する。し
たがって、デコーダ108は、たとえ命令が即座に実行
できなくても命令をデコードし続けることができる。命
令ウィンドウは、機能単位が続けて命令を実行し続ける
ときに引出す命令のプールとしての役割を果たす。命令
ウィンドウによって、マイクロプロセッサ100に先見
能力が与えられる。依存性が一掃されオペランドが利用
可能になると、ウィンドウの中のより多くの命令が機能
単位によって実行され、デコーダはさらにより多くのデ
コードされた命令でそのウィンドウを満たし続ける。
08をRISCコア110の機能単位から分離すること
によって順序外の命令発行に対処できる。より特定的に
は、リオーダバッファ114および機能単位の予約ステ
ーションは効果的に分散命令ウィンドウを確立する。し
たがって、デコーダ108は、たとえ命令が即座に実行
できなくても命令をデコードし続けることができる。命
令ウィンドウは、機能単位が続けて命令を実行し続ける
ときに引出す命令のプールとしての役割を果たす。命令
ウィンドウによって、マイクロプロセッサ100に先見
能力が与えられる。依存性が一掃されオペランドが利用
可能になると、ウィンドウの中のより多くの命令が機能
単位によって実行され、デコーダはさらにより多くのデ
コードされた命令でそのウィンドウを満たし続ける。
【0027】マイクロプロセッサ100はその性能を高
めるべくRISCコアのブランチセクション135を使
用する。分岐が起こると、次の命令は分岐の結果に依存
するので、プログラムの命令ストリームにおける分岐は
命令をフェッチするマイクロプロセッサの能力を妨げ
る。したがって、命令キャッシュ104のサクセサアレ
イにおいて記憶される情報を使用して予測される予測分
岐が、ブランチセクション135によって実行される。
ブランチセクション135は分岐の結果を調べ、予測分
岐が正しいかどうかを判断する。もし例外または分岐の
誤った予測があれば、誤って予測された分岐命令の後に
続いて割り当てられたリオーダバッファ114の内容が
放棄される。
めるべくRISCコアのブランチセクション135を使
用する。分岐が起こると、次の命令は分岐の結果に依存
するので、プログラムの命令ストリームにおける分岐は
命令をフェッチするマイクロプロセッサの能力を妨げ
る。したがって、命令キャッシュ104のサクセサアレ
イにおいて記憶される情報を使用して予測される予測分
岐が、ブランチセクション135によって実行される。
ブランチセクション135は分岐の結果を調べ、予測分
岐が正しいかどうかを判断する。もし例外または分岐の
誤った予測があれば、誤って予測された分岐命令の後に
続いて割り当てられたリオーダバッファ114の内容が
放棄される。
【0028】図2を参照して、この発明に関する命令キ
ャッシュ104が説明される。「線形アドレス可能なマ
イクロプロセッサキャッシュ」(“Linearly Addressab
le Microprocessor Cache ”)と題された出願連続番号
第08/146,381号が引用例により援用され、こ
の出願は命令キャッシュ104の構造および動作を詳細
に説明している。命令キャッシュ104は線形にアドレ
スされた16Kバイト4ウェイセットアソシアティブキ
ャッシュである。各セットは256エントリを含み、各
エントリは、16バイト命令ブロック、線形アドレスタ
グ、および次の予測実行分岐情報を含む。命令キャッシ
ュ104は、キャッシュコントローラ170、アドレス
回路172、プリデコード回路174、およびキャッシ
ュアレイ176を含む。キャッシュコントローラ170
は、命令キャッシュ104の様々な動作を統制する制御
信号を与える。アドレス回路172はブランチセクショ
ン135から受け取られる論理ターゲットプログラムカ
ウンタに基づいて線形フェッチプログラムカウンタ(F
ETCH PC)を生成する。アドレス回路172はま
た外部メモリからのプリフェッチング命令に関連のX8
6保護検査およびアドレス生成を提供する。アドレス回
路172は、論理アドレスと線形アドレスとの間の変換
のための変換回路として機能する。プリデコード回路1
74はプリフェッチされたX86命令バイトをIADバ
ス102を介して受取り、各X86命令バイトに対して
プリデコードビットを割当て、プリデコードされたX8
6命令バイトをキャッシュアレイ176に書込む。キャ
ッシュアレイ176はプリデコード回路174から受取
られた命令を記憶し、線形FETCH PC信号によっ
てアドレスされるとこれらの命令をバイトキュー106
に与える。
ャッシュ104が説明される。「線形アドレス可能なマ
イクロプロセッサキャッシュ」(“Linearly Addressab
le Microprocessor Cache ”)と題された出願連続番号
第08/146,381号が引用例により援用され、こ
の出願は命令キャッシュ104の構造および動作を詳細
に説明している。命令キャッシュ104は線形にアドレ
スされた16Kバイト4ウェイセットアソシアティブキ
ャッシュである。各セットは256エントリを含み、各
エントリは、16バイト命令ブロック、線形アドレスタ
グ、および次の予測実行分岐情報を含む。命令キャッシ
ュ104は、キャッシュコントローラ170、アドレス
回路172、プリデコード回路174、およびキャッシ
ュアレイ176を含む。キャッシュコントローラ170
は、命令キャッシュ104の様々な動作を統制する制御
信号を与える。アドレス回路172はブランチセクショ
ン135から受け取られる論理ターゲットプログラムカ
ウンタに基づいて線形フェッチプログラムカウンタ(F
ETCH PC)を生成する。アドレス回路172はま
た外部メモリからのプリフェッチング命令に関連のX8
6保護検査およびアドレス生成を提供する。アドレス回
路172は、論理アドレスと線形アドレスとの間の変換
のための変換回路として機能する。プリデコード回路1
74はプリフェッチされたX86命令バイトをIADバ
ス102を介して受取り、各X86命令バイトに対して
プリデコードビットを割当て、プリデコードされたX8
6命令バイトをキャッシュアレイ176に書込む。キャ
ッシュアレイ176はプリデコード回路174から受取
られた命令を記憶し、線形FETCH PC信号によっ
てアドレスされるとこれらの命令をバイトキュー106
に与える。
【0029】キャッシュアレイ176は、3つの主アレ
イ、つまり命令キャッシュストアアレイ180、線形タ
グアレイ182、およびサクセサアレイ184で編成さ
れる。命令キャッシュストアアレイ180は16バイト
命令を記憶する。線形タグアレイ182は命令に対応す
る線形アドレスタグを記憶する。サクセサアレイ184
は予め予測された分岐情報を記憶し、命令に対応して分
岐予測を支持すべく使用される。これらのアレイの各々
はアドレス回路172によって与えられる線形FETC
H PCアドレスによってアドレスされる。これらのア
レイの各々は以下で述べられるような同じキャッシュア
レイ構造を使用する。
イ、つまり命令キャッシュストアアレイ180、線形タ
グアレイ182、およびサクセサアレイ184で編成さ
れる。命令キャッシュストアアレイ180は16バイト
命令を記憶する。線形タグアレイ182は命令に対応す
る線形アドレスタグを記憶する。サクセサアレイ184
は予め予測された分岐情報を記憶し、命令に対応して分
岐予測を支持すべく使用される。これらのアレイの各々
はアドレス回路172によって与えられる線形FETC
H PCアドレスによってアドレスされる。これらのア
レイの各々は以下で述べられるような同じキャッシュア
レイ構造を使用する。
【0030】図3を参照して、この発明に関連のデータ
キャッシュ150の説明がなされる。「高性能ロード/
ストア機能単位およびデータキャッシュ」(“High Per
fomance Load / Store Functional Unit and Data Cach
e ”)と題された出願連続番号第08/146,376
号が引用により援用され、この出願はデータキャッシュ
150の構造および動作を詳細に述べている。データキ
ャッシュ150は線形にアドレスされた8Kバイト4ウ
ェイセットアソシアティブキャッシュである。データキ
ャッシュ150の各セットは128エントリを含み、各
エントリは16バイトブロックの情報を含む。データキ
ャッシュ150はデータキャッシュコントローラ300
およびデータキャッシュアレイ304を含む。データキ
ャッシュコントローラ300はデータキャッシュ104
のさまざまな動作を統制する制御信号を与える。データ
キャッシュコントローラ300は制御信号(CONTR
OL)をロードストアセクション134およびIADバ
ス102から受取り、データキャッシュコントローラ3
00は制御信号をキャッシュアレイ304に与える。キ
ャッシュアレイ304はデータをブロックに記憶し、か
つ特定のブロックがアドレスされるとデータのブロック
を提供する。データキャッシュアレイ304はまたIA
Dバス102と結合され、キャッシュコントローラ30
0からの制御信号に加えて、データキャッシュアレイは
アドレス信号およびデータ信号をロードストアセクショ
ン134から受取る。
キャッシュ150の説明がなされる。「高性能ロード/
ストア機能単位およびデータキャッシュ」(“High Per
fomance Load / Store Functional Unit and Data Cach
e ”)と題された出願連続番号第08/146,376
号が引用により援用され、この出願はデータキャッシュ
150の構造および動作を詳細に述べている。データキ
ャッシュ150は線形にアドレスされた8Kバイト4ウ
ェイセットアソシアティブキャッシュである。データキ
ャッシュ150の各セットは128エントリを含み、各
エントリは16バイトブロックの情報を含む。データキ
ャッシュ150はデータキャッシュコントローラ300
およびデータキャッシュアレイ304を含む。データキ
ャッシュコントローラ300はデータキャッシュ104
のさまざまな動作を統制する制御信号を与える。データ
キャッシュコントローラ300は制御信号(CONTR
OL)をロードストアセクション134およびIADバ
ス102から受取り、データキャッシュコントローラ3
00は制御信号をキャッシュアレイ304に与える。キ
ャッシュアレイ304はデータをブロックに記憶し、か
つ特定のブロックがアドレスされるとデータのブロック
を提供する。データキャッシュアレイ304はまたIA
Dバス102と結合され、キャッシュコントローラ30
0からの制御信号に加えて、データキャッシュアレイは
アドレス信号およびデータ信号をロードストアセクショ
ン134から受取る。
【0031】データキャッシュアレイ304は、2つの
アレイ、つまりデータストアアレイ312およびデータ
線形タグ回路310で編成される。これらのアレイの各
々は以下に説明されるような同じキャッシュコアを含
む。データキャッシュアレイ312は2つのデータ信号
(DATA A、DATA B)を受取りかつそれらを
ロード/ストア機能単位134に与える。データ線形タ
グ回路304はロード/ストア機能単位134によって
与えられる2つの線形アドレス(ADDR A、ADD
R B)によってアドレスされ、この2つの線形アドレ
スはまたデータストアアレイ312に与えられる。した
がって、データキャッシュアレイ304はデュアルポー
ト化メモリアレイであって、両方のポートがロード/ス
トア機能単位134と結合され2つのデータ値が同時に
書込まれまたは読出されることを可能にする。データス
トアアレイ312はまた線形タグアレイ310から制御
信号を受取る。これらのアレイの各々は以下で述べられ
るような同じキャッシュアレイ構造を使用する。
アレイ、つまりデータストアアレイ312およびデータ
線形タグ回路310で編成される。これらのアレイの各
々は以下に説明されるような同じキャッシュコアを含
む。データキャッシュアレイ312は2つのデータ信号
(DATA A、DATA B)を受取りかつそれらを
ロード/ストア機能単位134に与える。データ線形タ
グ回路304はロード/ストア機能単位134によって
与えられる2つの線形アドレス(ADDR A、ADD
R B)によってアドレスされ、この2つの線形アドレ
スはまたデータストアアレイ312に与えられる。した
がって、データキャッシュアレイ304はデュアルポー
ト化メモリアレイであって、両方のポートがロード/ス
トア機能単位134と結合され2つのデータ値が同時に
書込まれまたは読出されることを可能にする。データス
トアアレイ312はまた線形タグアレイ310から制御
信号を受取る。これらのアレイの各々は以下で述べられ
るような同じキャッシュアレイ構造を使用する。
【0032】図4を参照して、マイクロプロセッサ10
0の中の各キャッシュアレイは、キャッシュコア40
0、アドレス選択回路402、および入力/出力回路4
04を含む。キャッシュアレイは命令キャッシュ104
およびデータキャッシュ150内に含まれ、さらに物理
タグ回路162およびメモリ管理回路164内に含まれ
る。アドレス選択回路402および入力/出力回路40
4の両方はキャッシュによってきまるものである。すな
わち、これらの回路はキャッシュアレイの機能に依存し
て変化し得る。キャッシュコア400はデコード回路4
10、タイミング回路412、および記憶回路414を
含む。
0の中の各キャッシュアレイは、キャッシュコア40
0、アドレス選択回路402、および入力/出力回路4
04を含む。キャッシュアレイは命令キャッシュ104
およびデータキャッシュ150内に含まれ、さらに物理
タグ回路162およびメモリ管理回路164内に含まれ
る。アドレス選択回路402および入力/出力回路40
4の両方はキャッシュによってきまるものである。すな
わち、これらの回路はキャッシュアレイの機能に依存し
て変化し得る。キャッシュコア400はデコード回路4
10、タイミング回路412、および記憶回路414を
含む。
【0033】アドレス選択回路402は2つのアドレス
を受取りかつこれらのアドレスのうちの1つをインデッ
クスとしてキャッシュに与える。すなわち、アドレス選
択回路402はマルチプレクサとして機能する。アドレ
ス選択回路402は1クロックサイクルにおいて1つよ
りも多いアドレスを受取り得るキャッシュでのみ使用さ
れる。アドレス選択回路402はキャッシュコントロー
ラによって与えられた外部基準に基づいてどのアドレス
を渡すべきかを決定する。
を受取りかつこれらのアドレスのうちの1つをインデッ
クスとしてキャッシュに与える。すなわち、アドレス選
択回路402はマルチプレクサとして機能する。アドレ
ス選択回路402は1クロックサイクルにおいて1つよ
りも多いアドレスを受取り得るキャッシュでのみ使用さ
れる。アドレス選択回路402はキャッシュコントロー
ラによって与えられた外部基準に基づいてどのアドレス
を渡すべきかを決定する。
【0034】入力/出力回路404はキャッシュの機能
に基づいてさまざまな機能を提供する。たとえば、入力
/出力回路404は、どのセットが入力または出力とし
てわたされるべきかを選択すべくマルチウェイキャッシ
ュにおいて使用される。たとえば、データキャッシュ1
50において、線形タグ310からのタグヒットは、ス
トアアレイ312に渡されどのセットが渡されるかを制
御する。さまざまなタグアレイにおいて、入力/出力回
路404は実際にタグ比較を行なう。
に基づいてさまざまな機能を提供する。たとえば、入力
/出力回路404は、どのセットが入力または出力とし
てわたされるべきかを選択すべくマルチウェイキャッシ
ュにおいて使用される。たとえば、データキャッシュ1
50において、線形タグ310からのタグヒットは、ス
トアアレイ312に渡されどのセットが渡されるかを制
御する。さまざまなタグアレイにおいて、入力/出力回
路404は実際にタグ比較を行なう。
【0035】キャッシュコア400は、実際の情報が記
憶されかつその情報に関連の機能が行なわれるキャッシ
ュの一部分である。デコード回路410は、デコーダイ
ネーブル信号によってイネーブルされるビットワイズデ
コーダとして機能する。デコードイネーブル信号は、ア
レイ内のラインのうちの1つがターンオンされることを
可能にする。このようにしてビットセルの書込み読出し
が可能になる。タイミング回路412は、行がアクセス
されるときとキャッシュコアのセンスアンプが特定のビ
ットセルの電圧差を読出得るときとの間に正確な時間遅
延を与える。正確な時間とは、適切な電圧差を作るのに
必要な時間であり、これは処理またはフィーチュアサイ
ズなどに基づいて変化し得る。記憶回路414は行のす
べてのビットが同時にイネーブルされるビットセルのマ
トリクスを含む。このようにして、列当り1ビットだけ
がイネーブルされる。その後列がセンスされアレイにお
けるデータを判断する。
憶されかつその情報に関連の機能が行なわれるキャッシ
ュの一部分である。デコード回路410は、デコーダイ
ネーブル信号によってイネーブルされるビットワイズデ
コーダとして機能する。デコードイネーブル信号は、ア
レイ内のラインのうちの1つがターンオンされることを
可能にする。このようにしてビットセルの書込み読出し
が可能になる。タイミング回路412は、行がアクセス
されるときとキャッシュコアのセンスアンプが特定のビ
ットセルの電圧差を読出得るときとの間に正確な時間遅
延を与える。正確な時間とは、適切な電圧差を作るのに
必要な時間であり、これは処理またはフィーチュアサイ
ズなどに基づいて変化し得る。記憶回路414は行のす
べてのビットが同時にイネーブルされるビットセルのマ
トリクスを含む。このようにして、列当り1ビットだけ
がイネーブルされる。その後列がセンスされアレイにお
けるデータを判断する。
【0036】図5を参照して、キャッシュコア400の
デコード回路410、タイミング回路412、および記
憶回路414がより詳しく示されている。デコード回路
410は、複数のロウデコード回路452およびセンス
イネーブルデコーダ回路450を含む。タイミング回路
412は、タイミング放電トランジスタ460、タイミ
ングトランジスタ462、およびインバータ464を含
む。記憶回路414は、記憶回路414の各ビットライ
ンに対応する複数のコラムプリチャージトランジスタ4
70、記憶回路414における各記憶位置に対応する複
数のビットセル472、およびビットセル472の各列
からの差異出力信号を受取るセンスアンプ474を含
む。
デコード回路410、タイミング回路412、および記
憶回路414がより詳しく示されている。デコード回路
410は、複数のロウデコード回路452およびセンス
イネーブルデコーダ回路450を含む。タイミング回路
412は、タイミング放電トランジスタ460、タイミ
ングトランジスタ462、およびインバータ464を含
む。記憶回路414は、記憶回路414の各ビットライ
ンに対応する複数のコラムプリチャージトランジスタ4
70、記憶回路414における各記憶位置に対応する複
数のビットセル472、およびビットセル472の各列
からの差異出力信号を受取るセンスアンプ474を含
む。
【0037】センスイネーブルデコーダ回路450は、
入力として記憶アクセスを示すデコードイネーブル信号
を受取る。センスイネーブルデコーダ450への他の入
力はアクティブであり、このためデコードイネーブル信
号がアクティブであるときセンスイネーブルデコーダ回
路450は起動される。センスイネーブルデコーダ回路
450はタイミングイネーブル信号をタイミング放電ト
ランジスタ460に与える。
入力として記憶アクセスを示すデコードイネーブル信号
を受取る。センスイネーブルデコーダ450への他の入
力はアクティブであり、このためデコードイネーブル信
号がアクティブであるときセンスイネーブルデコーダ回
路450は起動される。センスイネーブルデコーダ回路
450はタイミングイネーブル信号をタイミング放電ト
ランジスタ460に与える。
【0038】各ロウデコード回路452は入力としてデ
コードイネーブル信号を受取る。さらに、各ロウデコー
ド回路452はアドレス選択回路402によって与えら
れるアドレス信号を受取る。デコードイネーブル信号が
アクティブであるとき、ロウデコード回路452はイネ
ーブルされアドレスをデコードする。各ロウデコード回
路452はアドレスを調べ、アドレスが特定の行のアド
レスに対応するかどうかを判断する。もしアドレスが特
定の行のアドレスに対応すると、この行のロウデコード
回路452は起動され、それによってビットセルのその
行を起動する。ビットセルのビットおよびXビットライ
ンはハイにプリチャージされる。デコーダがビットの行
を起動すると、データを記憶する交差結合インバータは
低電圧をN型トランジスタの1つを介して記憶ビットセ
ルの中に駆動する。この動作はセンスアンプ474にお
いて電圧差を生成する。
コードイネーブル信号を受取る。さらに、各ロウデコー
ド回路452はアドレス選択回路402によって与えら
れるアドレス信号を受取る。デコードイネーブル信号が
アクティブであるとき、ロウデコード回路452はイネ
ーブルされアドレスをデコードする。各ロウデコード回
路452はアドレスを調べ、アドレスが特定の行のアド
レスに対応するかどうかを判断する。もしアドレスが特
定の行のアドレスに対応すると、この行のロウデコード
回路452は起動され、それによってビットセルのその
行を起動する。ビットセルのビットおよびXビットライ
ンはハイにプリチャージされる。デコーダがビットの行
を起動すると、データを記憶する交差結合インバータは
低電圧をN型トランジスタの1つを介して記憶ビットセ
ルの中に駆動する。この動作はセンスアンプ474にお
いて電圧差を生成する。
【0039】タイミングイネーブルトランジスタ460
の大きさおよびインバータ464の大きさを変えること
によって、デコードイネーブル信号が起動されるときと
センスアンプ474が起動されるときとの間のタイミン
グ差を変えることができる。タイミング差を変えること
によって、センスアンプ474内に蓄積する電圧を変え
ることが可能になる。したがって、コアのタイミングを
容易に調整することができる。
の大きさおよびインバータ464の大きさを変えること
によって、デコードイネーブル信号が起動されるときと
センスアンプ474が起動されるときとの間のタイミン
グ差を変えることができる。タイミング差を変えること
によって、センスアンプ474内に蓄積する電圧を変え
ることが可能になる。したがって、コアのタイミングを
容易に調整することができる。
【0040】タイミング放電トランジスタ460とイン
バータ464との間のラインはビットラインとよく似て
おり同じように動作するため、ビットセルの各行に対応
するタイミングトランジスタ462を設けることによっ
て、センスアンプ474のタイミングはビットセルの読
取動作のタイミングを追跡する。ビット列に接続される
N型トランジスタの数は、タイミング列412に接続さ
れるN型トランジスタの数に対応し、ビットセルのタイ
ミングを模倣する。さらに、これらのトランジスタを設
けることによって、タイミング回路の寄生値はキャッシ
ュコア414のいかなる変化をも反映する。
バータ464との間のラインはビットラインとよく似て
おり同じように動作するため、ビットセルの各行に対応
するタイミングトランジスタ462を設けることによっ
て、センスアンプ474のタイミングはビットセルの読
取動作のタイミングを追跡する。ビット列に接続される
N型トランジスタの数は、タイミング列412に接続さ
れるN型トランジスタの数に対応し、ビットセルのタイ
ミングを模倣する。さらに、これらのトランジスタを設
けることによって、タイミング回路の寄生値はキャッシ
ュコア414のいかなる変化をも反映する。
【0041】インバータ464のレシオは、いつセンス
アンプ474がビットセルのビットおよびXビットライ
ン間の電圧差を読出すかを決断する。すなわち、立下り
エッジへの感応しやすさ、したがって、電圧がセンスア
ンプ474において蓄積する時間は、タイミングイネー
ブル信号がアクティブになるときとセンスアンプ474
が起動されるときとの間の時間差によって決定される。
アンプ474がビットセルのビットおよびXビットライ
ン間の電圧差を読出すかを決断する。すなわち、立下り
エッジへの感応しやすさ、したがって、電圧がセンスア
ンプ474において蓄積する時間は、タイミングイネー
ブル信号がアクティブになるときとセンスアンプ474
が起動されるときとの間の時間差によって決定される。
【0042】ビットセル472は、ビット記憶を与える
べく当該技術で周知であるように設計される。ビット線
472はセルが存在するキャッシュに依存して異なる。
たとえば、セルは同期するかまたは同期しないかいずれ
かでセット/リセットされ、もしくはセルはシングルポ
ート化されるかまたはでデュアルポート化できる。
べく当該技術で周知であるように設計される。ビット線
472はセルが存在するキャッシュに依存して異なる。
たとえば、セルは同期するかまたは同期しないかいずれ
かでセット/リセットされ、もしくはセルはシングルポ
ート化されるかまたはでデュアルポート化できる。
【0043】他の実施例は前掲の特許請求の範囲内に存
在する。
在する。
【図1】この発明に従ったマイクロプロセッサのブロッ
ク図である。
ク図である。
【図2】この発明に従った線形アドレス命令キャッシュ
のブロック図である。
のブロック図である。
【図3】この発明に従った線形アドレスデータキャッシ
ュのブロック図である。
ュのブロック図である。
【図4】この発明に従ったキャッシュアレイのブロック
図である。
図である。
【図5】この発明に従ったキャッシュコアのブロック図
である。
である。
410 デコード回路 412 タイミング回路 414 記憶回路
Claims (22)
- 【請求項1】 デコーダ部分を含み、前記デコーダ部分
はアドレス信号およびデコードイネーブル信号を受取
り、前記デコーダ部分は、アドレス信号およびデコード
イネーブル信号に応答してタイミングイネーブル信号お
よび複数のビットセルイネーブル信号を与え、さらに、 前記デコーダ部分に結合されたタイミング部分を含み、
前記タイミング部分は、前記タイミングイネーブル信号
を前記デコーダ部分から受取り、さらに前記タイミング
イネーブル信号に応答して読出制御信号を与え、前記タ
イミング部分は前記タイミングイネーブル信号のどのく
らい後に読出制御信号が与えられるかを制御し、さら
に、 前記デコーダ部分および前記タイミング部分に結合され
た記憶部分を含み、前記記憶部分は情報を記憶し、前記
記憶部分は前記読出制御信号および前記ビットセルイネ
ーブル信号の1つに応答して情報を提供する、メモリア
レイ。 - 【請求項2】 前記記憶部分は、記憶された情報のビッ
トに対応する複数の記憶セルを含み、さらに、 前記タイミング部分は前記複数の記憶セルに対応する複
数のタイミングセルを含む、請求項1に記載のメモリア
レイ。 - 【請求項3】 前記複数のタイミングセルの各々は、タ
イミングトランジスタを含み、前記タイミングトランジ
スタは前記記憶セルのタイミングを模倣し、前記タイミ
ングセルはデコーダ部分と記憶部分との間に結合され
る、請求項2に記載のメモリアレイ。 - 【請求項4】 前記記憶部分はさらにセンスアンプを含
み、前記センスアンプは記憶セルからの電荷を決定し、
前記タイミングトランジスタはセンスアンプに結合さ
れ、前記センスアンプが記憶セルからの電荷を決定する
ことをいつ引き起こすべきかを制御する、請求項3に記
載のメモリアレイ。 - 【請求項5】 前記複数の記憶セルは行および列に配置
され、記憶セルの行はビットセルイネーブル信号の1つ
によってイネーブルされる、請求項2に記載のメモリア
レイ。 - 【請求項6】 記憶セルの各ビットラインに対応するコ
ラムプリチャージトランジスタを含み、各コラムプリチ
ャージトランジスタはプリチャージ信号を受取るように
結合され、さらに、 前記タイミング回路は前記タイミングイネーブル信号を
受取るように結合されたタイミングセンストランジスタ
を含む、請求項5に記載のメモリアレイ。 - 【請求項7】 入出力回路を含み、前記入出力回路は情
報を受取りかつ情報をバスから与え、さらに、 入出力回路に結合されたメモリアレイを含み、 前記メモリアレイは、 デコーダ部分を含み、前記デコーダ部分はアドレス信号
およびデコードイネーブル信号を受取り、前記デコーダ
部分は前記アドレス信号および前記デコードイネーブル
信号に応答してタイミングイネーブル信号および複数の
ビットセルイネーブル信号を与え、さらに、 前記デコーダ部分に結合されたタイミング部分を含み、
前記タイミング部分は前記デコーダ部分から前記タイミ
ングイネーブル信号を受取り、さらに前記タイミングイ
ネーブル信号に応答して読出制御信号を与え、前記タイ
ミング部分は前記タイミングイネーブル信号のどれくら
い後に前記読出制御信号が与えられるかを制御し、さら
に、 前記デコーダ部分および前記タイミング部分に結合され
た記憶部分を含み、前記記憶部分は前記入出力回路によ
って与えられた情報を記憶し、前記記憶部分は前記読出
制御信号および前記ビットセルイネーブル信号の1つに
応答して情報を前記入出力回路に与える、キャッシュ。 - 【請求項8】 前記記憶部分は記憶された情報のビット
に対応する複数の記憶セルを含み、さらに、 前記タイミング部分は前記複数の記憶セルに対応する複
数のタイミングセルを含む、請求項7に記載のキャッシ
ュ。 - 【請求項9】 前記複数のタイミングセルの各々はタイ
ミングトランジスタを含み、前記タイミングトランジス
タは前記記憶セルのタイミングを模倣し、前記タイミン
グセルは前記デコーダ部分と前記記憶部分との間に結合
される、請求項8に記載のキャッシュ。 - 【請求項10】 前記記憶部分はセンスアンプをさらに
含み、前記センスアンプは記憶セルからの電荷を決定
し、前記タイミングトランジスタは、前記センスアンプ
に結合され、さらに前記センスアンプが記憶セルからの
電荷を決定することをいつ引起こすべきかを制御する、
請求項9に記載のキャッシュ。 - 【請求項11】 前記複数の記憶セルは行および列にお
いて配置され、記憶セルの行はビットセルイネーブル信
号の1つによってイネーブルされる、請求項9に記載の
キャッシュ。 - 【請求項12】 記憶セルの各ビットラインに対応する
コラムプリチャージトランジスタをさらに含み、各コラ
ムプリチャージトランジスタはプリチャージ信号を受取
るように結合され、 前記タイミング回路はさらに前記タイミングイネーブル
信号を受取るように結合されたタイミングセンストラン
ジスタをさらに含む、請求項11に記載のキャッシュ。 - 【請求項13】 前記メモリアレイはマルチウェイアレ
イとして配置され、さらに、 前記出力回路はアレイのどのセットをアクセスすべきか
を選択する、請求項7に記載のキャッシュ。 - 【請求項14】 前記バスと前記メモリアレイとの間に
結合されたアドレス選択回路をさらに含み、前記アドレ
ス選択回路は、2つのアドレス信号を受取り、さらに前
記2つのアドレス信号のうちどちらをアドレス信号とし
てメモリアレイのデコーダ部分に与えるべきかを決定す
る、請求項7に記載のキャッシュ。 - 【請求項15】 複数の機能単位と、 複数の機能単位に結合されたキャッシュとを含み、前記
キャッシュは前記バスに結合された入出力回路を含み、
前記入出力回路は情報を受取りかつ情報を前記バスから
与え、さらに、 前記入出力回路に結合されたメモリアレイを含み、 前記メモリアレイは、 デコーダ部分を含み、前記デコーダ部分はアドレス信号
およびデコードイネーブル信号を受取り、前記デコーダ
部分は前記アドレス信号および前記デコードイネーブル
信号に応答して、タイミングイネーブル信号および複数
のビットセルイネーブル信号を与え、さらに、 前記デコーダ部分に結合されたタイミング部分を含み、
前記タイミング部分は、前記デコーダ部分から前記タイ
ミングイネーブル信号を受取り、さらに前記タイミング
イネーブル信号に応答して読出制御信号を与え、前記タ
イミング部分は、前記タイミングイネーブル信号のどの
くらい後に前記読出制御信号が与えられるかを制御し、
さらに、 前記デコーダ部分および前記タイミング部分に結合され
た記憶部分を含み、前記記憶部分は、前記入出力回路に
よって与えられた情報を記憶し、前記記憶部分は前記読
出制御信号および前記ビットセルイネーブル信号の1つ
に応答して前記入出力回路に情報を与える、マイクロプ
ロセッサ。 - 【請求項16】 前記キャッシュは命令キャッシュであ
る、請求項15に記載のマイクロプロセッサ。 - 【請求項17】 前記命令キャッシュは、線形タグメモ
リアレイおよび記憶メモリアレイを含む、請求項16に
記載のマイクロプロセッサ。 - 【請求項18】 前記命令キャッシュはサクセッサメモ
リアレイを含む、請求項17に記載のマイクロプロセッ
サ。 - 【請求項19】 前記キャッシュはデータキャッシュで
ある、請求項15に記載のマイクロプロセッサ。 - 【請求項20】 前記データキャッシュは、線形タグメ
モリアレイおよびストアメモリアレイを含む、請求項1
9に記載のマイクロプロセッサ。 - 【請求項21】 前記キャッシュは物理タグ回路であ
る、請求項15に記載のマイクロプロセッサ。 - 【請求項22】 メモリ管理ユニットをさらに含み、前
記メモリ管理ユニットは前記キャッシュを含む、請求項
15に記載のマイクロプロセッサ。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US29605894A | 1994-08-24 | 1994-08-24 | |
| US08/296058 | 1994-08-24 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH08212779A true JPH08212779A (ja) | 1996-08-20 |
Family
ID=23140431
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP7214465A Withdrawn JPH08212779A (ja) | 1994-08-24 | 1995-08-23 | メモリアレイ、キャッシュ、およびマイクロプロセッサ |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US5680569A (ja) |
| EP (1) | EP0698884A1 (ja) |
| JP (1) | JPH08212779A (ja) |
| KR (1) | KR960008525A (ja) |
Families Citing this family (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7089360B1 (en) | 2000-03-22 | 2006-08-08 | Intel Corporation | Shared cache wordline decoder for redundant and regular addresses |
| US6507531B1 (en) | 2000-03-29 | 2003-01-14 | Intel Corporation | Cache column multiplexing using redundant form addresses |
| KR100401509B1 (ko) * | 2001-05-31 | 2003-10-17 | 주식회사 하이닉스반도체 | 반도체 메모리 장치의 센스앰프 회로 |
| US6707752B2 (en) | 2001-06-22 | 2004-03-16 | Intel Corporation | Tag design for cache access with redundant-form address |
| US9997232B2 (en) | 2016-03-10 | 2018-06-12 | Micron Technology, Inc. | Processing in memory (PIM) capable memory device having sensing circuitry performing logic operations |
Family Cites Families (29)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3942160A (en) * | 1974-06-03 | 1976-03-02 | Motorola, Inc. | Bit sense line speed-up circuit for MOS RAM |
| JPS59203298A (ja) * | 1983-05-04 | 1984-11-17 | Nec Corp | 半導体メモリ |
| US4807115A (en) * | 1983-10-07 | 1989-02-21 | Cornell Research Foundation, Inc. | Instruction issuing mechanism for processors with multiple functional units |
| US4627032A (en) * | 1983-11-25 | 1986-12-02 | At&T Bell Laboratories | Glitch lockout circuit for memory array |
| JPH0658631B2 (ja) * | 1983-12-19 | 1994-08-03 | 株式会社日立製作所 | デ−タ処理装置 |
| JPS6142795A (ja) * | 1984-08-03 | 1986-03-01 | Toshiba Corp | 半導体記憶装置の行デコ−ダ系 |
| US4899275A (en) * | 1985-02-22 | 1990-02-06 | Intergraph Corporation | Cache-MMU system |
| JPS6246489A (ja) * | 1985-08-23 | 1987-02-28 | Nippon Texas Instr Kk | ダイナミツク型差動増幅器 |
| US4943948A (en) * | 1986-06-05 | 1990-07-24 | Motorola, Inc. | Program check for a non-volatile memory |
| US5226147A (en) * | 1987-11-06 | 1993-07-06 | Mitsubishi Denki Kabushiki Kaisha | Semiconductor memory device for simple cache system |
| US5329489A (en) * | 1988-03-31 | 1994-07-12 | Texas Instruments Incorporated | DRAM having exclusively enabled column buffer blocks |
| US5226126A (en) * | 1989-02-24 | 1993-07-06 | Nexgen Microsystems | Processor having plurality of functional units for orderly retiring outstanding operations based upon its associated tags |
| JP2761515B2 (ja) * | 1989-03-08 | 1998-06-04 | 株式会社日立製作所 | 半導体記憶装置 |
| US5136697A (en) * | 1989-06-06 | 1992-08-04 | Advanced Micro Devices, Inc. | System for reducing delay for execution subsequent to correctly predicted branch instruction using fetch information stored with each block of instructions in cache |
| JPH0740247B2 (ja) * | 1989-06-20 | 1995-05-01 | 松下電器産業株式会社 | キャッシュメモリ装置 |
| GB8923037D0 (en) * | 1989-10-12 | 1989-11-29 | Inmos Ltd | Timing control for a memory |
| JPH03130989A (ja) * | 1989-10-17 | 1991-06-04 | Sanyo Electric Co Ltd | Dram |
| JP2777247B2 (ja) * | 1990-01-16 | 1998-07-16 | 三菱電機株式会社 | 半導体記憶装置およびキャッシュシステム |
| US5031141A (en) * | 1990-04-06 | 1991-07-09 | Intel Corporation | Apparatus for generating self-timing for on-chip cache |
| GB2246001B (en) * | 1990-04-11 | 1994-06-15 | Digital Equipment Corp | Array architecture for high speed cache memory |
| EP0461904A3 (en) * | 1990-06-14 | 1992-09-09 | Creative Integrated Systems, Inc. | An improved semiconductor read-only vlsi memory |
| JPH0485788A (ja) * | 1990-07-27 | 1992-03-18 | Toshiba Corp | 多ポートキャッシュメモリ |
| US5132931A (en) * | 1990-08-28 | 1992-07-21 | Analog Devices, Inc. | Sense enable timing circuit for a random access memory |
| JP3181311B2 (ja) * | 1991-05-29 | 2001-07-03 | 株式会社東芝 | 半導体記憶装置 |
| IT1253678B (it) * | 1991-07-31 | 1995-08-22 | St Microelectronics Srl | Architettura antirumore per memoria |
| JPH05325569A (ja) * | 1992-05-27 | 1993-12-10 | Toshiba Corp | 半導体記憶装置 |
| JP2823466B2 (ja) * | 1993-01-28 | 1998-11-11 | 株式会社東芝 | 半導体記憶装置 |
| JPH06302189A (ja) * | 1993-02-22 | 1994-10-28 | Toshiba Corp | 半導体記憶装置 |
| JP2606082B2 (ja) * | 1993-07-02 | 1997-04-30 | 日本電気株式会社 | 半導体集積回路 |
-
1995
- 1995-07-24 EP EP95305154A patent/EP0698884A1/en not_active Withdrawn
- 1995-08-22 KR KR1019950025902A patent/KR960008525A/ko not_active Withdrawn
- 1995-08-23 JP JP7214465A patent/JPH08212779A/ja not_active Withdrawn
- 1995-09-21 US US08/531,490 patent/US5680569A/en not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| US5680569A (en) | 1997-10-21 |
| KR960008525A (ko) | 1996-03-22 |
| EP0698884A1 (en) | 1996-02-28 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6115792A (en) | Way prediction logic for cache array | |
| EP2018609B1 (en) | Pre-decoding variable length instructions | |
| EP2519874B1 (en) | Branching processing method and system | |
| US5142635A (en) | Method and circuitry for performing multiple stack operations in succession in a pipelined digital computer | |
| US6233657B1 (en) | Apparatus and method for performing speculative stores | |
| US6367006B1 (en) | Predecode buffer including buffer pointer indicating another buffer for predecoding | |
| US7406569B2 (en) | Instruction cache way prediction for jump targets | |
| JP5528819B2 (ja) | 現在実行している命令セット以外の命令セットから命令をプリロードするシステム、方法およびソフトウェア | |
| US6076146A (en) | Cache holding register for delayed update of a cache line into an instruction cache | |
| EP1974255B1 (en) | Translation lookaside buffer manipulation | |
| WO1996012231A1 (en) | A translation buffer for detecting and preventing conflicting virtual addresses from being stored therein | |
| US6212621B1 (en) | Method and system using tagged instructions to allow out-of-program-order instruction decoding | |
| JP3641031B2 (ja) | 命令装置 | |
| US7568070B2 (en) | Instruction cache having fixed number of variable length instructions | |
| JP2773471B2 (ja) | 情報処理装置 | |
| US6460116B1 (en) | Using separate caches for variable and generated fixed-length instructions | |
| US6442667B1 (en) | Selectively powering X Y organized memory banks | |
| US6446189B1 (en) | Computer system including a novel address translation mechanism | |
| US6208543B1 (en) | Translation lookaside buffer (TLB) including fast hit signal generation circuitry | |
| US5787454A (en) | Recorder buffer with interleaving mechanism for accessing a multi-parted circular memory array | |
| US6032241A (en) | Fast RAM for use in an address translation circuit and method of operation | |
| US5970509A (en) | Hit determination circuit for selecting a data set based on miss determinations in other data sets and method of operation | |
| US5680569A (en) | Cache column timing control | |
| CA2159888A1 (en) | Method and system of addressing | |
| EP0840231A1 (en) | Microprocessor comprising multi-level cache memory |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20021105 |