JPS60225262A - 2重キヤツシユメモリを有するパイプラインプロセツサ - Google Patents

2重キヤツシユメモリを有するパイプラインプロセツサ

Info

Publication number
JPS60225262A
JPS60225262A JP60068210A JP6821085A JPS60225262A JP S60225262 A JPS60225262 A JP S60225262A JP 60068210 A JP60068210 A JP 60068210A JP 6821085 A JP6821085 A JP 6821085A JP S60225262 A JPS60225262 A JP S60225262A
Authority
JP
Japan
Prior art keywords
instruction
information
data
cache
memory device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP60068210A
Other languages
English (en)
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.)
FUOOFUEISU SYSTEMS Inc
Original Assignee
FUOOFUEISU SYSTEMS Inc
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 FUOOFUEISU SYSTEMS Inc filed Critical FUOOFUEISU SYSTEMS Inc
Publication of JPS60225262A publication Critical patent/JPS60225262A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3812Instruction prefetching with instruction modification, e.g. store into instruction stream
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0848Partitioned cache, e.g. separate instruction and operand caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Advance Control (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 発明の概要 命令を先取ルする命令先取多装置(IPU、2 ) 。
命令を実行する算術論理演算装置(ALPU、 4 )
を含む、パイプライン・ディジタル・コンピュータ・プ
ロセッサ・システム(10,第1図)が提供される。
IPU(2)は高速命令キャッシュ(6)に付随され、
ALPU(4)は高速オペランド・キャッシュ(8)に
付随される。
各キャッシュは、ひんばんにアクセスするデータのスト
アするため、データ・ストア(84,94,第3図)、
それぞれのキャッシュの中に主メモリ位置が含まれるこ
とを示すタグ・ストア(82、92、第3図)を具えて
いる。
■′PUとALPUの処理装置(2,4)は、殆んど全
ア。。ア、、□に+ゎイゎ。□イヤ2.−)にアクセス
できる。ALPUが主メモリに書込み動作を演する時、
それはまた、オペランド・キャッシュに相当データを新
らしくいれ、もしそこにデータが存在すれば、命令キャ
ッシュを新らしくする。IPUは、いづれのキャッシュ
にも書き込まない。
その内容が無効になれば、ある状態ではキャッシュをク
リヤする設備が設けられている。
技術分野 本発明は、全般的には、ディジタル計算装置に関するも
のでちゃ、詳細には、命令を先取)する第1演算処理装
置と、命令を実行する第2演算処理装置よpなるパイプ
ライン・プロセッサ・システムに関するものであって、
各演算処理装置は、高速キャッシュ・メモリ装置に関連
している。
発明の背景 ディジタル・データ処理技術では、多重演算処理装置を
準備し、そのオペレーションを重ネ、命令の実行ヲ、′
パイプライン”方式で並行して作業する処理装置によシ
行なうことは、既知である。
例えば、1つの処理装置は、処理される命令を取り出す
ために使用され、他の処理装置は、命令の実行に使用さ
れることが可能である。第2処理装置が前の命令を実行
する間に、第1処理装置は、すでに、次の命令を取り出
しているから、全処理時間は短縮される。
ディジタル・データ処理技術においてはまた、プロセッ
サと比較的大容量で低速の主メモリの間に、比較的小容
量で高速のメモリ(“キャッシュ・メモリ”として既知
)を用意し、プロセッサが与えられた命令を実行するの
に必要とする時間と定義される、プロセッサ・サイクル
タイムを短縮することは、既知である。命令実行段階の
1取シ出し”部分のあいだに、まづ、プロセッサはキャ
ッシュ・メモリをチェックし、希望情報がその中にある
か否か調べる。その中にあれば、主メモリにアクセスせ
ねばならない時よシ早く、プロセッサは情報にアクセス
ができる。その情報がキャッシュ・メモリに含まれてい
ないと、主メモリにストアされた情報のブロックは、プ
ロセッサにより取シ出されている情報を含み、キャッシ
ュ・メモリにストアされる。なんとなれば、次のメモリ
・アクセスは、そんなブロックにストアされた情報であ
る可能性が、比較的に高いからである。プロセッサに要
求される情報がキャッシュ内で見つけられる状態はキャ
ッシュ1ヒツト”と呼ばれ、反対の状態はキャッシュ1
ミス”と呼ばれる。
本発′明は、命令を取シ出すためと、命令を実行するた
めの1対のパイプライン・プロセッサと、各プロセッサ
が使用する高速キャッシュ・メモリを供給することによ
り、比較的に短い演算処理サイクル・タイムを達成する
高性能ディジタル演算処理システムを提供する。殆んど
あらゆる状態で各プロセッサに関連するキャッシュ・メ
モリは、いつでも、他のプロセッサの命令やその関連キ
ャッシュ・メモリに関係なく、そのプロセッサにとシ、
アクセス可能である。
発明の簡単な要約 したがって、本発明の目的は、改良されたディジタル演
算処理システムを提供することである。
本発明の他の目的は、命令を先取シする第1演算処理装
置及び命令を実行する第2演算処理装置を使用して、処
理量を増大するディジタル演算処理システムを提供する
ことであシ、各演算処理装置は高速キャッシュ・メモリ
装置を付随する。
本発明のさらに他の目的は、独立した2つの演算処理装
置の各々に、高速キャッシュ・メモリ装置を供給するこ
とによシ、処理量を高めたパイプライン・ディジタル演
算処理システムの提供である。各キャッシュ・メモリは
、他の演算処理装置の命令や他のキャッシュ・メモリ装
置と関係なく、何時でもその付随演算処理装置にはアク
セス可能である。
これら及び他の目的は、本発明の好ましい実施例にもと
づき、そのシステムに使用できる命令やオペランドを含
む、情報の比較的大量を、そのアドレス可能な位置にス
トアする。比較的に大容量の低速度主メモリを持つ、デ
ィジタル演算処理システムを供給するこ・とで達成でき
る。このディジタル演算処理システ、ムは、命令を取り
出す命令先取シ装置、命令を実行する算術論理演算装置
、限られた情報ブロック量をそのアドレス可能位置にス
トアする命令先取り装置に付随し、それによ請求められ
た情報が、そこにあったか否か決定するため、命令先取
り装置に応答する手段を含む′、比較的に低容量、高速
の命令キャッシュ・メモリ装置、限られた量の情報ブロ
ックをそのアドレス可能の位置にストアするため算術論
理演算装置に付随され、また、それによ請求められた情
報がそこに含まれるか否か決定するため、算術論理演算
装置に応答する手段を含む、比較的に低容量、高速のオ
ペランド・キャッシュ・メモリ、を含む。それによシ、
命令先取シ装置のサイクル・タイムは、求められる情報
がすでに命令キャッシュ・メモリに存在する程度に減少
され、算術論理演算処理のサイクル・タイムは請求めら
れる情報がすでにオペランド・キャッシュ・メモリ装置
に存在する程度に減少される。
3、発明の詳細な説明 第1図には、パイプライン・プロセッサと本発明の2重
キャッシュ・メモリを組合せた。ディジタル演算処理シ
ステムの好ましい実施例を図示するブロック図が示され
る。中央処理装置(CPU)10は、並列処理装置、即
ち、命令先取り装置(IPU)2と算術論理演算装置(
ALPU) 4を含む。各処理装置は、自分の高速キャ
ッシュ・メモリ装置を有する。明確にIPU 2は命令
キャッシュ6に付随さtL、ALPU 4 Uオペラン
ド・キャッシュ8に関連される。
第1図は本発明のディジタル演算処理システムの全アー
キテクチュアを図示し、その主な特徴をいまから説明す
る。IPU 2は、データ・パスルを介し、命令キャッ
シュ6よりデータ情報を受け、IPU2は、アドレス・
バス14ヲ介し、命令キャッシュ6へ、アドレス情報を
送る。IPU2は、マイクロアドレス・バス18t”介
LALPU4へ、マイクロアドレス情報を送り、また、
実効アドレス(EA)バス20を介しALPU 4へ、
実効アドレス情報を送り、また直接にバス21を介し、
オペランド・キャッシュ8へ実効アドレス情報を送る。
IPU2はまた、加ビット・データ・バス16を介し、
ALPU4と連絡することができる。
ALPU 4は、アドレス/データ・バス22を介しオ
ペランド・キャッシュ8へ、アドレス及びデータ情報を
送p1また、データ・バス24を介しオペランド・キャ
ッシュ8からデータ情報を受ける。
命令キャッシュ6とオペランド・キャッシュ8は、シス
テム・バス2st−介し、メモリ・コントローラ四とバ
ス26を通夛、主メモリ(9)と連絡する。
直接メモリ・アクセス(DMA’S)もまた周辺装置(
図示せず)によシ、メモリ・コントローラ28トバヌ2
6を介し、主メモリにアクセスを行なうことができる。
IPU2とALPU 4はともに、命令の並列処理をお
こない、これによシ命令の実行に要する時間を減少する
。分離された命令キャッシュ6とオペランド・キャッシ
ュ8は、それらに対応する処理装置が、メモリにアクセ
スするに必要な時間を減少する。分離されたキャッシュ
・メモリ装置と並列処理装置との組合せが、全プロセ、
ツサ能力の著るしい改良を達成した。
IPU2の機能は命令を取シ出すことで、ALPU4の
機能は命令の実行である。IPU2が命令を取9出す時
には、必要ならば、IPU2はオペランドの実効アドレ
スを計算し、実行のために、それらをALPU 4に渡
す。大部分の時間ALPU 4−は、前の命令の実行を
おこなってお夛、他方IPU2は、現在の命令を取シ出
す働きをしている。IPU 2は2命令の1パイプ”を
有するので、IPU2はALPU4より2命令進んでい
ることが可能である。
IPU 2はまた、全ての割込、トラップ、コンソール
(図示せず)信号をモニタし、それにょ夛プログラム・
フローを変える。IPU2は、命令の先取シラ無効にす
る殆んどの状態を見つける能力を有する。そのような場
合には、IPU2は先取りしないか、もし先取シした時
には、そのパイプを空にする。
ALPU 4は、命令実行の実行段#を行なう。ALP
U 4が命令の実行を終れば、ALPU 4はIPU2
から他の命令全要求する。もしIPU2が命令を準 )
備していなければ、ALPU4は命令が準備されるまで
アイドルとなる。
IPU 2とALPU 4は並列に処理するゆえ、両者
は、゛指標レジスタや他の情報の重複コピーを持続せね
ばならない。ALPU 4が、これらコピーの1つを新
らしくする時には常に、ALPU4は新データをIPU
 2 K送らねばならない。これによシ自分自身のコピ
ーも新らしくすることができる。
第2A図及び第2B図は、本発明のディジタル演算処理
システムのより詳細なブロック線図を図示する。IPU
 2は第2A図の上部に詳細に図示され、ALPU4は
第2A図の下部に図示される。命令キャッシュ6は第2
B図の上部に図示され、オペランド・キャッシュ8は第
2B図下部に図示される。
IPU 2 、 ALPU 4 、命令キャッシュ6、
及びオペランド・キャッシュ8の詳細な特徴は、第2A
図と第2B図に関連し、いまから説明されるであろう。
まづ第2A図には、IPU2は、システム・バス25(
第2B図)を介し、主メモリ30(第1図)からデータ
・バス12で、実行する命令を受ける。
命令レジスタ(IR)42を含むことが図示される。
命令レジスタ42は、命令コード(op code )
部。
マイクロ−命令コード(MOP )部、及び実効アドレ
ス(FA)部を含む。命令レジスタ42命令の命令コー
ド部は、内部バス105でマイクロアドレス・プログラ
マブル・リード・オンリ・メモリ(FROM)祠に接続
さ゛れ、これは、バス105の命令コード入力に反応し
、バス107に、相応するマイクロアドレスを読み出す
。マイクロアドレスは、R2レジスタ絽のマイクロアド
レス部に一時的にストアされる。
命令レジスタ42の命令のEA部は、バス114テ加算
器に接続される。加算器46はまた、5ビット指標レジ
スタ56−58にストアされた指標飴XL−X3の1つ
かそれ以上を、入力としてバス112で受ける。指標レ
ジスタ56−58の1つかそれ以上は、例えば、APL
U4への適当な接続(図示せず)手段による。前の命令
によシ、ロードされていることが可能である。加算器4
6は、15ピツト出力を、R2レジスタ槌のEA部へ通
ずるバス111に発生するとともに、トライステート・
バッファ59を介し、命令キャッシュ6に接続する命令
アドレス・バス14に通ずるバス109にも、正ビツト
出力を発生する。
IPU2はまた、現在の命令のアドレスを保持し、AL
PU 4への適当な接続(図示せず)によシ、ロードさ
れうる。命令プログラム・カウンタ(IPC)52を含
む。IPC52の出力は、トライステート・バッファ団
を介し、命令キャッシュ6に接続されるアドレス・バス
14に接続される。
1トラツプ”と1割込“に、ライン115及びライン1
16で、それぞれ反応するブレイク論理(breakl
ogic)は、以下で詳細に説明のため、IPU2の中
に設けられる。
IPU2の中にはまた、図示されているが、本発明に特
に密接な関係はない、雑多なレジスタや回路が含まれる
。これらには、自己テスト情報回路(self−tes
t intelligenc@circuit ) 4
]と関連番号詞で一般に示めされる類別レジスタがあり
、このレジスタは、有効プログラム・カウンタ(EPC
)。
前プログラム・アドレス・レジスタ(OLD RP )
 。
ブレイク状態コード・レジスタ(BSL) 、テスト・
レジスタ(TESR) 、と命令状態レジスタ(ISR
)を含み、これらは全部、バス108を介し内部パス1
6に接続される。
ALPU 4は、シーケンサ62を含むことが図示され
ている。本発明の好ましい実施例では、シーケンサは、
Advanced Micro Devices(AM
D ) 2911汎用マイクロプログラマブル制御装置
が使用される。
シーケンサ62は、計算、インクリメント、分岐。
スタッキング・アドレス等を含む、多くの機能を果す。
シーケンサ62は、前に命令レジスタ42に入力された
命令コードに相当するマイクロ命令順序の位置を探すた
めに、R2レジスタ槌よりくるマイクロアドレス・ワー
ドを、書込み可能制御記憶装fit(wcs)64にア
ドレスのため使用する。WC864の出力は一時、80
ビット・マイクロワード・レジスタ6にストアされ、そ
の後、バス120に接続され、シーケンサ62の入力で
利用される。マイクロワード・レジスタ6の内容はまた
、バス126でデータ算術論理演算装置(Data A
LU ) 74 ヘ、バス124で、テスト回路63へ
接続され、また、内部バス67に接続され、CPUの他
の部分で利用される。テスト回路63は、マイクロプロ
グラムからの状態ビット(例えば、オーバフロー状態)
をテストする。
これはまた、マイクロプログラムが分岐すべきか、イン
クリメントすべきかも知らせる。
データALU74には、AMo 2901装置が使用さ
れる。
データALU 74には、14の作業レジスタがあシ、
その内の5側線プログラマが使用可能である。データA
LU74は、メモリ・データ・レジスタ(MDR)68
゜実効アドレス(EA) ・レジスタ70.一時レジス
タフ2、及び、トライステート・バッファ71を介し内
部バス16に接続されるバス118.によシ供給される
。MDRレジスタ絽への入力は、データ・バス23に接
続される。KAレジスタ70への入力は、15ビツト・
バス104を介し、IPU2のR2レジスタ栃OEA部
出力に接続される。R2レジスタ拐のEA内容はまた、
バス106を介しオペランド・キャッシュ802対トマ
ルチプレクサ117に直接に接続される。一時レジスタ
フ2の入力は、バス130を介し、データALU 74
の出力へ接続される。データALU74の出力は、オペ
ランド・キャッシュ8に接続されるアドレス/データ・
バス22とともに、トライステート・インバータ73を
介し、内部バス16に接続される。
第2B図には、5ビツトXIKワードのメモリで編成さ
れ九タグ・ストア82を含む命令キャッシュ6が図示さ
れる。タグ・ストア82の中の各5ビツト・ワードは、
また、あるワードが有効か無効かを示す1有効″ビツト
が付加され、また、3個のパリティ・ビットも付加され
るので、タグ・ストアの中の各ワードは、実際には9ビ
ツトの長さである。タグ・ストア82は、命令アドレス
・バス14の15ビツト・アドレスの最下位(L8)1
0ビツトで、アドレス可能である。タグ・ストア82は
、双方向性5ビツト・バス132でコンパレータ86に
接続される。コンパレータ86はまた、命令アドレス・
バス14の15ビツト・アドレスの5最上位(MS)ビ
ットを伝導するバス47に接続される。バス47はまた
、トライステート・インバータ75を介しタグ・□スト
ア82へ接続される。
命令アドレス・バス14の15ビツト・アドレスの最下
位(LS) 10 ヒラ)は、また、IK X 24ビ
ツト・メモリで編成されたデータ・ストアあに接続され
る。データ・ストアB4d、IPU2に結合された高速
度記憶装置であシ、現在IPU 2に使用され、また、
IPU2で使用される可能性の高いスピット・ワードを
、1Kまで保持する。 データ・ストアあの出力はバス
路を介しデータ・バス12に接続され、次に、データ・
バスnはIPU2の命令レジスタ42へ接続される。デ
ータ・ストア84はまた、トライステート・インバータ
76、バス路を介し、システム・バス5へ双方向性に接
続される。
オペランド・キャッシュ8は、13ビツトIKワード・
メモリとして編成されたタグ・ストア92を含むことが
図示される。タグ・ストア92の各13ビツト・ワード
は、また、あるワードの有効、無効を示す1有効”ビッ
トが付加され、また3個のパリティ・ビットも付加され
るので、タグ・ストアの中の各ワードは、実際は17ピ
ツトの長さである。
タグ・ストア92は、アドレス/データ・バス22のA
LPU 4からの「ビット・アドレスの最下位(LS)
10ビツト、あるいは、バス106のIPU 2からの
15ビツト実効アドレスの最下位(LS)10ビツトに
よシ、アクセス可能である。これらアドレスは2対トマ
ルチプレクサ117により、オペランド・キャッシュ8
のバス133及び134に多重化される。
タグ・ストア蛇は双方向性13ビツト・バス140に1
7、:ffンパレータ%に接続される。コンパレータ%
はまた、アドレス/データ・バスnのスピット・アドレ
スの最上位(MS)13ビツトを伝導するバス137に
接続される。バス137はまた、トライステート・イン
バータ78を介しタグ・ストア92へ接続される。アド
レス/データ・バス22の13最上位(MS)ビット部
は、バス137を介し、コンパレータ%に接続され、ト
ライステート・インバータ78を介し、この13M5ア
ドレス・ビットをタグ・′)7°2C)f−′& L/
’fX ) 7f、L7’jal>・°)ストア92に
接続される。さらにアドレス/データ・バスnの全スピ
ットの長さは、トライステートインバータ79を介しバ
スnに接続され、またノ(ス134及び139を介し、
出力がバス141を介しシステム・バス怒に接続される
トライステート・ラッチ郭に接続される。
データ・ストア%はALPU 4に付随された高速記憶
装置でアシ、現在ALPU 4で使用され、またALP
U 4で使用される可能性の高い24ビツト・IKワー
ドを保持する。データ・ストア%は、アドレス/データ
・バスnの10最下位(LS )ビット部に接続される
。データ・ストア94の出力は、ノくス142を介しデ
ータ・バス※に接続され、次にデータ・バス詔は、AL
PU 4 MDRレジスタ錦へ接続される。データ・ス
トア94はまた、トライステート・インバータ77、バ
ス142ヲ介シ、システム・ノ(ス25に双方向性に接
続される。
好ましい実施例の動作 命令キャッシュ6とオペランド・キャッシュ8は、各々
1024ワードの独立した2つのキャッシュで、IPU
2とALPU 4と主メモリ(資)の間でノ(ソファと
して作用する。各キャッシュのアクセス・タイムは、主
メモリ蜀へのアクセス・タイムに対し、約4倍速い。そ
れぞれのキャッシュの各ワードには、タグと1有効1ビ
ツトが付加される。1有効1ビツトは、そのワードに有
効データが存在することを示す。メモリ読み出しがCP
Uによシ発行されると常に、アドレスの下位10ビツト
は、適当なキャッシュ・タグ・ストアにアクセスのため
使用される。
例えば、IPU2によシ、メモリ読み出しが発行される
と、アドレスの10下位ビットが、タグ・ストア82に
アクセスし、また、相当する最上位5アドレス・ビット
を読み出すために使用される。MS5ビットは、コンパ
レータ86により、メモリ読出しアドレスのMS 5ビ
ツトと比較される。もしこれらがマツチし、パリティ・
エラーがなく、1有効”ビットが真(true )であ
れば、キャッシュ1ヒツト”があり、これは、データは
主メモリ(資)からでなく、データ・ストア諷から取ら
れたことを意味する。もしキャッシュ・ヒツトがなけれ
ば、主メモリ父がアクセスされる。この場合には、デー
タが主メモリ(資)よシリターンされる時、データはデ
ータ・ストア8に書き込まれるとともに、新らしいタグ
・ビットでタグ・ストア82に書き込まれ、要求者(r
equ@5tor)にリターンされる。データの源は要
求者には見えない(traspavsnt )。
命令キャッシュ6は、IPU2による読み出しのみであ
る。IPU2はそれに書き込みはできない。
オペランド・キャッジ5−8のみが、ALPU4によシ
読み出し及び書き込みが行なわれる。ALPU4がメモ
リ書き込み命令を発行する時はいつも、データは、オペ
ランド・キャッシュ8にライト1スルー’ (writ
e−4hrough”)される。これは、データは、主
メモリ加と新らしいタグ・ビットつきの相当キャッシュ
位置の、両方に書き込まれることを意味する。これは、
そのキャッシュと主メモリが、一致するため行なわれる
ALPU 4がメモリに書き込む時には、そのキャッシ
ュはまた、そのワードが命令キャッシュ6に現在存在す
るか調べるためチェックする。現存すれば、ALPU4
のデータ書き込みは、命令キャッシュ6に書き込まれる
。これは、上に述べたオペランド・キャッシュ801ラ
イト・スルー”とは別である。この機能は自己修飾コー
ドの使用を許す。
キャッシュ及び主メモリ・アクセス動作命令キャッシュ
6とオペランド・キャッシュ8に関する。メモリ読出し
及び書き込み動作の数例がいまから説明されるだろう。
まづ書き込み動作については、オペランド・キャッシュ
8は、(1)AI、PU 4が主メモリ頷に書き込むた
びに、また(2ンメそり・データが、メモリ・コントロ
ーラ四を介し主メモリ加からALPU 4にリターンさ
れる時はいつでも、ALPU4によル書き込まれる。
命令キャッシュ6は、(1) ALPU 4が主メモリ
加に書き込む時で、同−主メモリ位置が命令キャッシュ
6にすでに存在であれば常に、また(2)メモリ・デー
タが、メそり・コントローラ四を介し主メモリ胎からI
PU2にリターンされる時はいつも、ALPU 4によ
シ書き込まれる。
読み出し動作については、もし要求情報が適当なキャッ
シュで入手できれば、情報は同一メモリ・サイクルの終
夛に、要求装置に入手されるであろう。即ち、キャッシ
ュ”ヒツト”の時は、すべてのアクセス・タイムは1メ
モリ・サイクルである。
中ヤツシュ“ヒツト”がないとすれば、アクセス・タイ
ムハ、システム・バス器への競合e メそり・コントロ
ーラ困への競合、及び、主メモリ・アクセス・タイムを
含む、いくらかの要求に依存することになる。システム
・バス部への競合に関しては、ALPU4は一般に、全
ての他の要求装置に対し優先権を与えられる。
キャッシュ・フラッシュ/リセット動作ある状態が起こ
れば、命令キャッシュ6、tたは、オペランド・キャッ
ジ:L8にストアされた情報は、もはや有効とは考えら
れない。例えば、直接メモリ・アクセス(DMA )書
も込み動作がDMAバス32でメモリ・コントローラ詔
に演ぜられたとすれば、新情報は主メモリ(資)にスト
アされるであろう、かくして何れかのキャッシュ装置に
ストアされ九対応情報は無効になると考えられる。キャ
ッシュ内容の無効化はまた、例えば、主メモリ内容のり
マツピングがメモリ・コントローラあて遂行される時に
も起ζる。
キャッシュ情報が無効になる時、“フラッシュ”または
6リセツト“動作が演ぜられる。′フラッシュ”動作は
、あるキャッシュの情報ワードに付加された1有効”ビ
ットが全部クリア(たとえば0にされる)されることを
意味する。′リセット”動作は両方のキャッシュが1フ
ラツシユ”されることを意味する。フラッシュ、tたは
、リセット動作の後は、キャッシュの個々の位置は書き
なおされるまで無効(inYalid)となる。
プログラミング研究 キャッシュ装置はアプリケーション・ソフトウェアに見
えないから、適切なプログラミング研究は、その全体の
効率を改良する。
命令キャッシュ6のデータ・ストア別の部分は1024
ワードの長さであるから、1024ワードの長さ以上の
プログラム・ループは、1スラツシングがおこるから、
用心して避けねばならない。即ち、命令は、たびたび、
命令キャッシュ6にスワップインされ、オーバレイされ
、再びスワップアウトされ、平均メモリ・アクセス・タ
イムが遅い結果となるであろう。
命令キャッシュ6は直接マツプ・アルゴリズムを用い、
これは1024ワードの長さであるから、1024ワー
ド鉱なれたメモリ位置が、命令キャッシュ6の同一位置
にマツプされるであろう。例えば、主メモリ位置0 、
1024 、2048等は、同一キャッシュ位置にマツ
プされるであろう。かくして、ひんばんにお互いをコー
ルするルーチンがあれば、それらは、1024位置のあ
る倍数だけはなれているように位置4づけをされないと
、′スラッシングがおきるであろう。キャッシュの性能
を最良に≠番極するには、しばしばお互いにコールし、
同一のキャッシュ位置にマツプされる結果になるコード
を避けて、過度の1スシツシングを避けるべきである。
同様な考慮はオペランド・キャッシュ8にも適合スる。
大バッファやテーブルを通る長い移動及び走査は、オペ
ランド・キャッシュ8の内容の多くを置き換えるであろ
う。
命令実行の例 第3A図には、在来技術のディジタル演算処理システム
による命令の順序の実行を図示する。タイミング図が示
される。ある命令の順序は1例として与えられたもので
、多くの他の命令の順序も選択可能である。
第3A図に示される順序命令は次のとおシ:Io=与え
られたメモリ位置の内容をレジスタAにロード(LDA
と省略)。
11=与えられたメモリ位置の内容をレジスタ人の内容
に加算(ADA)。この命令は間接アドレスである。
工2=命令I5に、 0(zero)で分岐(BZO)
Ia=与えられたアドレス位置をインクリメント、0な
ら、とばす(INR)。 ) Ia=命令IOへ無条件分岐(BRA)。
Is=次の命令 第3A図に示す命令順序は、在来技術の非パイプライン
・プロセッサで実行される。各命令の実行はいくつかの
サブ命令を含む。例えば、命令IO(LDA )は、ま
づ取出し命令(IP)を含み、これによシプロセッサは
、プログラム・カウンタ(図示せず)の内容に応じて、
実行される命令ワードを、主メモリよシ取シ出す。次に
、プロセッサハ、2つの連続メモリ命令はできないので
、遅延(DEL)命令を演する。次に、プロセッサはデ
ータ取出しくDF)命令を演じ、データ・ワードは主メ
モリよシ取り出される。最後にプロセッサは実行(E)
命令を演じ、データ・ワードはレジスタA(図示せず)
にロードされる。レジスタ人は、例えば、プログラマに
アクセス可能なプロセッサの作業レジスタの1つである
ADA命令IIに対しては、 プロセッサは命令を取り
出しくIF) 、遅延命令(DEL )を演じ、間接ア
ドレスシング命令(IND)を行ない、データ・ワード
を取シ出しくDF) 、取フ出したデータ・ワードをレ
ジスタAの内容に加えて命令を実行(K)する。
BZO命令Izに対しては、プロセッサは命令を取シ出
しくIP)、遅延命令(DEL )を演じ、指定レジス
タの内容が0かテストしくKILL) 、指定レジスタ
の内容が0の時には、指示の新プログラム・アドレスに
分岐して命令を実行するCE)。
INR命令工8に対しては、プロセッサは命令を取り出
しくIF)、遅延命令(DEL)を演じ、データ・ワー
ドを取り出しくDF)、レジスタ・ロード命令を演じ(
E)、レジスタ加算命令を演じ(E)、ストア命令を演
じ(STM)、最後にテスト命令を演する(E)。
BRA命令工4に対しては、プロセッサは命令を取り出
しくIF) 、Io命令に無条件に分岐して、それを実
行する(1)。
第3B図は、本発明のディジタル演算処理システムによ
る、同一命令順序の実行を図示するタイミング図を示す
。IPUは命令実行サイクルの1取)出し”部を演じ、
ALPUは”実行”部を演する。
IPUはLDA命令1.0の実行を、取出し命令(IP
)の命令を演することで開始する。この時点で、もし要
求する命令が命令キャッシュ(資)になければ、その命
令と命令の関連ブロックは主メモリ(9)から命令キャ
ッシュ(資)へ読み出される。IPUで演ぜられる次の
命令は、次の取出し命令である。
IPUがI(l命令実行の自分の部分を終えた時、AL
PUはデータ取出しくDF)命令を始める。此の時に、
もし要求するデータ・ワードがオペランド・キャッシュ
美にないと、データ・ワードと命令の関連ブロックは、
主メモリ(9)からオペランド・キャッシュ(イ)に読
み出される。次にALPUは、I。
命令実行の自分の部分を、実行(E)動作で完了する。
Io命令実行のIPUのデータ取出しくDF)部分が終
った時、IPUは、IIl命令実行自分の取出し命令(
IP)を始める。工1命令の実行では、IPUは、IF
部、遅延部(DEL) 、を演じ、それからまた、在来
技術プロセッサにょシ実行された間接アドレス部を演す
る。IPUが工1命令実行の自分の部分を終る時、AL
PUはデータ取出し命令を始める。ALPUは、工l命
令実行の自己の部分を、実行(E)動作で終える。
IPUの11 命令実行のデータ取出しくDF)部が終
った時、IPUは工!命令実行の自己の命令取出しくI
F)部を始める。工2命令の実行はIPUにのみ関係す
る。しかし、これはElによる(即ち、それが分岐され
るか否かに)。
IPUのI!の実行終了で、IPUは命令取出しくIF
)の動作を演することによJ)、I8命令の実行を始め
る。IPUが取出しく IF)の命令を終えた時、AL
PUはデータ取出しくDF)命令を始め、次いで実行(
E)命令を始める。ALPUが、Is命令で自分 −の
データ取出し動作を終えた時、工PUは、I4命令で命
令取出しく IF)動作を始める。
IPUが工(命令で、その命令取出しくIF)動作を終
える時、ALPUはIsでメモリ・ストア(STM)命
令を始め、またその後しばらくして、IPUはI+命令
の実行を再び始める(砧令工2において、Oで分岐(b
ranch−on−zero )が真でなかったと仮定
して)。
次ニ、命令キャッシュ(資)とオペランド・キャッジz
9Qのデータが、有効性を保つと仮定すれば、Ioよ#
)I4までの命令順序の実行でIPUとALPUの動作
は早い。命令やデータを取シ出すメモリ・アクセスは、
主メモリの代りに、いまは、それぞれ命令キャッシュ(
資)やオペランド・キャッシュ匍に対しなされるので、
IPUとALPUが命令のそれぞれの部分を実行するの
に要する時間が、減少されているのは認められるであろ
う。システム・バス(150、第2B図)に対するIP
UとALPUの競合もまた消去された。
この点では、工PUは、常に最小1つの命令があり、ま
た時には2つの命令がALPUによる実行を待っている
ような方式で、命令を取シ出している。
かくしてALPUの動作は、IPUによシ命令が取9出
されるのを待つことで、中止されない。
画業技術者に対しては、発表された2重キャッシュ・メ
モリを有するパイプライン・プロセッサは、多くの方法
で変更でき、特別に選び出し、以上に説明された、好ま
しい実施例の形式とは異なる多くの実施例が考えられる
のは、明白であろう。
例えば、ある入社命令取出しパイプラインの長さを変更
できる。またある人はキャッシュ・メモリの1方、また
は、両方の、長さ及び/または幅を変更できる。さらに
遅いクロックを使用して、ある人は遅い、安価なメモリ
累子を使用可能である。
したがって、添付特許請求の範囲により、本発明の真の
意図と範囲に入る本発明のすべての変更をカバーするこ
とが期待される。
【図面の簡単な説明】
第1図は、パイプライン・プロセッサと本発明の2重キ
ャッシュ・メモリを組入れたディジタル演算処理システ
ムの好ましい実施例を図示するブロック線図を示す。 第2A図及び第2B図は、本発明のディジタル・演算処
理装置のよシ詳細なブロック線図を示す。 第3A図は、従来技術のディジタル演算処理システムに
よる。命令順序(5equence of 1nstr
uc−tion)の実行を図示するタイミング図を示す
。 第3B図は、本発明のディジタル演算処理システムによ
る、同一の命令順序の実行を図示するタイミング図を示
す。 第1図において、2はIPU、 4はALPU、 6は
命令キャッシュ、8はオペランドキャッシュ、詔はメモ
リコントローラ、菊は主メモリ。 特許出願人 フォーフェイス・システムズ・インコーホ
レーテッド 代理人弁理士 玉 蟲 久 五 部 子1−心 1i”10.213 第1頁の続き [相]発 明 者 スウイーメン・クエク アメリカ合
衆国力リルマデン・ロード。 [相]発 明 者 エリツク・シー・ウニ アメリカ合
衆国カリスターフェルト カナダ・ドライブ。 フォルニア州95035.サン拳ノゼ、ア1979幡 フォルニア州95035. ミルビティス。 g211

Claims (1)

  1. 【特許請求の範囲】 1、 システムで使用可能な命令及びオペランドを含む
    、比較的大きい数の情報ブロックをそのアドレス可能の
    位置にストアする。比較的に大容量で低速度の主メモリ
    装置とともに使用するディジタル処理システムにして、 該命令を取シ出すための命令先取シ装置、前記命令を実
    行するための算術論理演算装置;限られたブロック数の
    該情報をそのアドレス可能な位置にストアする該命令先
    取り装置に付随され、それによりめられる情報がそこに
    含まれているか否かを決定するため前記命令先取シ装置
    に応答する手段を含む比較的に小容量で低速度の命令キ
    ャッシュ・メモリ装置;限られた数の前記情報のブロッ
    クをそのアドレス可能な位置にストアするため該算術論
    理演算装置に付随され、それによ請求められる情報がそ
    こに含まれるか否かを決定するための前記算術論理演算
    装置に応答する手段を含む、比較的に小容量で高速度な
    オペランド・キャッシュ・メモリ装置;を具えるディジ
    タル演算処理システムであシ、それにょシ、前記命令先
    取シ装置のサイクル・タイムは、それにょ請求められる
    情報が、すでに前記命令キャッシュ・メモリに存在する
    程度に減少され、それにょシ、前記算術論理演算装置の
    サイクル・タイムは、それにょ請求められる情報が、す
    でに前記オペランド・キャッシュ・メモリ装置に存在す
    る程度に減少されるディジタル演算処理システム。 2、 前記主メモリ装置は、唯一のアドレス・ワードに
    よって各々識別された多くのデータ・ワードの形の前記
    情報をストアするものであり、前記キャッシュメモリ装
    置は、該データ・ワードの限られた数の形の情報ブロッ
    クの前記各々限られた数をストアし、第1ストレッジ手
    段の中の前記データ・ワードの少なくとも1個が、前記
    の各命令先取シ装置や前記算術論理演算装置にょ夛、前
    記データ・ワードを取出すため発生された。唯一のアド
    レス・ワードの下位部分によシ、アクセス可能である該
    第1ストレッジ手段を具え、前記決定手段は、前記第1
    ストレッジ手段にストアされた前記データ・ワードに応
    する前記アドレス・ワー・ドの上位部分をストアし、前
    記アドレス・ワードの該下位部分によシアドレス可能な
    第2ストレッジ手段、前記の唯一のアドレス・ワードの
    前記下位部分に応じ前記の唯一のアドレス・ワードの上
    位部分と該第2ストレッジ手段にストアされた上位部分
    を比較し、前記の唯一のアドレス・ワードに応するデー
    タ・ワードが前記の対応するキャッシュ・メモリ装置に
    存在するか否かの指示を与える比較手段を具える特許請
    求の範囲第1項記載のディジタル演算処理システム。 3、前記中央演算処理装置は、いづれかのキャッシュ・
    メモリ装置の内容が無効な時を検知し、無効内容の状態
    を示す手段、無効データを含むキャッシュ・メモリ装置
    の内容をクリヤし、該キャッシュ・メモリ装置に前記主
    メモリ装置から適当な情報を再ロードし、前記検知手段
    に有効内容の状態指摘を発生させる手段、を具える特許
    請求の範囲第1項記載のディジタル演算処理システム。
JP60068210A 1984-03-30 1985-03-30 2重キヤツシユメモリを有するパイプラインプロセツサ Pending JPS60225262A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US59517684A 1984-03-30 1984-03-30
US595176 1984-03-30

Publications (1)

Publication Number Publication Date
JPS60225262A true JPS60225262A (ja) 1985-11-09

Family

ID=24382079

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60068210A Pending JPS60225262A (ja) 1984-03-30 1985-03-30 2重キヤツシユメモリを有するパイプラインプロセツサ

Country Status (2)

Country Link
EP (1) EP0156307A3 (ja)
JP (1) JPS60225262A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63177238A (ja) * 1986-10-17 1988-07-21 アムダール コーポレーション データ処理装置
JPH0675856A (ja) * 1993-03-12 1994-03-18 Toshiba Corp キャッシュメモリシステム
JP2006318471A (ja) * 2005-05-09 2006-11-24 Sony Computer Entertainment Europe Ltd データ処理におけるメモリキャッシング

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63240650A (ja) * 1987-03-28 1988-10-06 Toshiba Corp キヤツシユメモリ装置
WO1989009442A1 (en) * 1988-04-01 1989-10-05 Digital Equipment Corporation Instruction cache flush-on-rei control
US5197135A (en) * 1990-06-26 1993-03-23 International Business Machines Corporation Memory management for scalable compound instruction set machines with in-memory compounding
US5581720A (en) * 1994-04-15 1996-12-03 David Sarnoff Research Center, Inc. Apparatus and method for updating information in a microcode instruction

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63177238A (ja) * 1986-10-17 1988-07-21 アムダール コーポレーション データ処理装置
JPH0675856A (ja) * 1993-03-12 1994-03-18 Toshiba Corp キャッシュメモリシステム
JP2006318471A (ja) * 2005-05-09 2006-11-24 Sony Computer Entertainment Europe Ltd データ処理におけるメモリキャッシング
JP4666511B2 (ja) * 2005-05-09 2011-04-06 ソニー コンピュータ エンタテインメント ヨーロッパ リミテッド データ処理におけるメモリキャッシング

Also Published As

Publication number Publication date
EP0156307A2 (en) 1985-10-02
EP0156307A3 (en) 1988-04-20

Similar Documents

Publication Publication Date Title
US4701844A (en) Dual cache for independent prefetch and execution units
US5471598A (en) Data dependency detection and handling in a microprocessor with write buffer
US3898624A (en) Data processing system with variable prefetch and replacement algorithms
US4985825A (en) System for delaying processing of memory access exceptions until the execution stage of an instruction pipeline of a virtual memory system based digital computer
JP3285644B2 (ja) キャッシュメモリを有するデータプロセッサ
US5907860A (en) System and method of retiring store data from a write buffer
US7133968B2 (en) Method and apparatus for resolving additional load misses in a single pipeline processor under stalls of instructions not accessing memory-mapped I/O regions
US5963984A (en) Address translation unit employing programmable page size
US5249286A (en) Selectively locking memory locations within a microprocessor's on-chip cache
US5202972A (en) Store buffer apparatus in a multiprocessor system
US7930504B2 (en) Handling of address conflicts during asynchronous memory move operations
US5752274A (en) Address translation unit employing a victim TLB
JPS63193230A (ja) 高性能マイクロプロセッサ集積回路とメモリ参照を行なう方法
US5835949A (en) Method of identifying and self-modifying code
JP2005243050A (ja) コンピュータシステム
JPH02208729A (ja) マイクロコード式実行装置での並列動作による複数機能装置の制御
US5596735A (en) Circuit and method for addressing segment descriptor tables
JPH02190930A (ja) ソフトウエア命令実行装置
US5740398A (en) Program order sequencing of data in a microprocessor with write buffer
US5615402A (en) Unified write buffer having information identifying whether the address belongs to a first write operand or a second write operand having an extra wide latch
JP2000231549A (ja) マイクロプロセッサ
KR19990072271A (ko) 고성능의추론적인오정렬로드연산
US5226170A (en) Interface between processor and special instruction processor in digital data processing system
US5333287A (en) System for executing microinstruction routines by using hardware to calculate initialization parameters required therefore based upon processor status and control parameters
EP0459233A2 (en) Selectively locking memory locations within a microprocessor's on-chip cache