JPH0290265A - コンピューター処理装置用の積分キャッシュを有するパイプライン - Google Patents

コンピューター処理装置用の積分キャッシュを有するパイプライン

Info

Publication number
JPH0290265A
JPH0290265A JP1192427A JP19242789A JPH0290265A JP H0290265 A JPH0290265 A JP H0290265A JP 1192427 A JP1192427 A JP 1192427A JP 19242789 A JP19242789 A JP 19242789A JP H0290265 A JPH0290265 A JP H0290265A
Authority
JP
Japan
Prior art keywords
data
cache
pipeline
address
tag
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
JP1192427A
Other languages
English (en)
Inventor
Richard T Witek
リチャード ティー ウィーテック
Douglas D Williams
ダグラス ディー ウィリアムズ
Timothy J Stanley
ティモシー ジェイ スタンリー
David M Fenwick
ディヴィッド エム フェンウィック
Douglas J Burns
ダグラス ジェイ バーンズ
Rebecca L Stamm
レベッカ エル スタム
Richard Heye
リチャード ハイア
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.)
Digital Equipment Corp
Original Assignee
Digital Equipment 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 Digital Equipment Corp filed Critical Digital Equipment Corp
Publication of JPH0290265A publication Critical patent/JPH0290265A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • G06F15/8061Details on data memory access
    • G06F15/8069Details on data memory access using a cache
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0855Overlapped cache accessing, e.g. pipeline
    • G06F12/0859Overlapped cache accessing, e.g. pipeline with reload from main memory
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • G06F15/8076Details on data register access
    • G06F15/8084Special arrangements thereof, e.g. mask or switch
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F9/383Operand prefetching

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Complex Calculations (AREA)

Abstract

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

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明は、コンピューターの処理装置の技術分野に関し
、特に、キャッシュメモリーからレジスターへデータを
ロードし、且つ該レジスターからデータを該キャッシュ
メモリーに格納する方法及び装置に関する。
(従来技術とその問題点) 最新の処理装置の動作は、その速度を高めるためにパイ
プライン方式とされている。第2のロード動作は、第2
の動作がパイプラインを完全に通過する前にロード/格
納パイプラインに入る。−般には、データをレジスター
にロードし、又はレジスターからのデータを格納するキ
ャッシュメモリーはロード/格納パイプラインの外にあ
る。動作がロード/格納パイプラインを通過する時、キ
ャッシュメモリーがアクセスされる。若し適切なデータ
がキャッシュメモリーの正しいアドレスにあれば、ヒツ
トが戻され、該データはレジスターにロードされ、動作
のパイプライン処理が継続して行なわれる。要求された
データがキャッシュメモリー内に無ければ、ミスが戻さ
れ、そのデータを外部バスを介して主メモリーから取り
出さなければならない。該データが主メモリーから検索
されてキャッシュにロードされる様にミスに関して処理
が行なわれるまで、パイプラインは機能停止させられる
。主メモリーからの検索はパイプライン動作と較べると
割合に低速であることがあるので、キャッシュミスが多
数あれば、ロード/格納動作は、それらミスに関する処
理に支配されることとなる。これは、パイプライン処理
が狙いとする性能上の利点を無くすものである。
ベクトル処理装置は極めて高速に情報のアレイを処理す
る様に設計されている。該ベクトル処理装置は一般にデ
ータ記憶装置であるベクトルレジスターファイルを包含
し、これは、該ベクトルレジスターファイルに格納され
ているデータに作用する算術装置に接続されている。デ
ータはキャッシュメモリー等のメモリーからベクトルレ
ジスターファイルにロードされる。キャッシュメモリー
はベクトルレジスターファイルからデータを受け取って
格納することも出来る。キャッシュメモリー自体はデー
タを大きな主メモリーから受け取るが、これは一般には
バスによりベクトル処理装置に接続される。データをベ
クトルレジスターファイルにロードするべき時、ロード
/格納パイプラインはデータ要素を求めてキャッシュメ
モリーにアクセスし、バスを介してそれをベクトルレジ
スターファイルに送る。
命令をパイプライン処理するスカラー処理装置も、該パ
イプラインに必須のキャッシュを使用することから利益
を得るであろう。この場合にも、多数のキャッシュミス
があれば、パイプラインがそれらのミスに関する処理で
支配されることになりかねないとう問題がある。
(発明の概要) 本発明は、キャッシュをパイプラインの外に置くのでは
なくて分散型キャッシュをパイプライン内に包含させる
ことによってパイプラインの利点を保つ。これは、レジ
スターへデータをロードし且つレジスターからデータを
キャッシュメモリー内に格納するためにコンピューター
処理装置にパイプラインを設けることによって達成され
る。該パイプラインは、キャッシュメモリーからデータ
をレジスターにロードし、且つ該レジスターからデータ
をキャッシュメモリーに格納する手段を包含する。キャ
ッシュメモリーに対するこのロード要求及び格納要求は
パイプライン処理される。この様な分散型キャッシュを
パイプライン自体の中に設けることによって、キャッシ
ュにおけるデータのロード又は格納の速度を大いに向上
させることが出来る。
ロード動作中に生じることのあるミスを処理するために
、本発明の成る実施例は、要求がミスであったことを判
定するための手段に接続された読み出しミスバッファー
を設ける。読み出しミスバッファーは、目的を達しなか
った(ミスした)要求に付随するコマンドアドレスを格
納し、パイプラインの動作とは無関係にパイプライン外
からデータを得る。このデータはコマンド及びアドレス
情報を包含する。最後に、この読み出しミスバッファー
はキャッシュメモリー及びレジスターファイルを該コマ
ンドアドレスデータで満たす。
斯かる構成は、ベクトル処理装置に使用された時に特に
有益であるが、その理由は、ベクトルロード動作中にキ
ャッシュにロードされるアレイのデータ要素が互いに関
連していないからである。
従って、データ要素の一つがミスである時には、残りの
データ要素のパイプライン方式のロード処理の継続と同
時にそのミスを処理することが出来る。換言すると、パ
イプラインは、ミスの処理がされている間接能を停止す
る必要はない。パイプラインを停止させてキャッシュを
満たさなければならなくなる前に処理することの出来る
読み出しミスの数に関する唯一の制限は、使用される読
み出しミスバッファーの個数又はシステムに支援される
ことの出来る同時動作の個数である。
本発明は、単一のデータ要素をなるべく速く処理しよう
と試みるものではない。むしろ、ロード動作の目的では
個々の要素は互いに無関係であるので、全体のロードの
速度が最大となる。また、データをパイプライン処理し
てデータキャッシュにロードし、且つ並列動作でミスの
処理をすることによって行なわれる。これは、ミスの処
理をするパイプラインを停止させる。(これは個々の要
素をロードする最も速い方法であろう)代わりになされ
る。
キャッシュがスカラー処理装置におけるパイプラインの
一部である時、上記きことが言える。即ち、単一の命令
の動作速度が最大となる代わりに全体の動作の速度が最
大となる。
(実施例) ベクトル処理装置に使用される本発明の実施例が第1図
に示されている。該処理装置のロード/格納パイプライ
ン8は5個のステージを有する。
これらのステージは該パイプラインを伝播するパイプ項
目を管理する。アドレス生成器10はベクトルコントロ
ーラ6からコマンドを受取り、これらのコマンドからパ
イプ項目を生成する。パイプ項目は、アドレス、要素番
号、バイトマスク、妥当性ビット、等の、1個又は複数
個の処理装置と主メモリーとの間のトランザクションを
開始させるのに必要な全ての情報を包含する。このトラ
ンザクションは、外部バス50を介して行なわれる。
詳しく説明すると、代表パイプ項目は次のビットを包含
する。種類ピッl−<2:O>は、5個のステージの各
々に対して、そのパイプ項目について如何なるモードで
あるべきかを示す。該モードは、「通常」モード(ロー
ド又は格納)、無効化モード、又は読み出しく充填)モ
ードを含む。要素ピッ)<5:Q>は、どの要素がロー
ド又は格納されるかを定める。妥当性ビットは、該パイ
プ項目の妥当性に関する情報を表わす。最後ビットは、
該パイプ項目が命令の最後のパイプ項目である時を示す
。rdon’t cache Jビットはキャッシュ充
填に使われ、該パイプラインにキャッシュの妥当性検査
を行なわせず、該要素を単にベクトルレジスターファイ
ルに入れさせる。物理的アドレスビット<29 : O
>は、主メモリー内のデータ要素の物理的アドレスに対
応する。ロングワードマスクビット<7 : g>は、
ヘキサワード(後に定義する)内のどの要素をロード又
は格納するべきかを知るのに必要な情報を包含する。
アドレス生成器10からのパイプ項目は仮想アドレスを
含む。翻訳バッファー12は、該仮想アドレスを受取り
、それを物理的アドレスに翻訳する。翻訳バッファー1
2からパイプ項目(これは、今、物理的アドレスを包含
する)はキャッシュタグ参照ステージ14に入る。この
参照ステージ14は、該物理的アドレスをキャッシュイ
ンデックスとタグとに分解する。参照ステージ14はキ
ャッシュ記憶場所のキャッシュインデックスをタグ記憶
装置34に送る。タグ記憶装置34はデータキャッシュ
38内の項目についてのタグの記憶装置である。タグは
、物理的アドレスのビットの一部から成っている。デー
タキャッシュ38内のデータの各ブロックにはタグが付
随している。
物理的アドレスのタグ部分(タグ比較データ)は、この
物理的アドレスによりアクセスされるキャッシュ記憶場
所についてタグデータ(タグ記憶装置34内にある)と
比較される。この比較は、比較器16によってなされる
。若しそれらのタグが一致すれば、比較器16はビット
信号を出力し、若し一致しなければミス信号が出力され
る。キャッシュインデックスも、キャッシュタグ参照ス
テージ14によりデータキャッシュ38に送られである
。データキャッシュ38に書き込みをすることを決定す
る前に該タグ比較の結果を知るため、遅延ステージ35
がキャッシュタグ参照ステージ14とデータキャッシュ
38との間に介装されている。
パイプ項目及びヒツト信号又はミス信号はキャッシュデ
ータ格納ステージ18に送られる。この時、データキャ
ッシュ38はキャッシュ記憶場所の物理的アドレスを有
し、キャッシュデータ格納ステージ18にヒツト信号が
ある限りはその記憶場所からデータを読み出すか又はそ
の記憶場所へデータを書き込む。データキャッシュ38
は、ラッチ19を介してキャッシュデータバス40に接
続されている。キャッシュ38からのデータを使用する
ベクトルレジスターファイルもキャッシュデータバス4
0に接続されている。
タグがタグ比較器16によって突き合わせられた時、ヒ
ツト信号が生成され、データは、キャッシュデータ格納
ステージ18により、データキャッシュ38に接続され
たラッチ19からキャッシュデータバス40に押しやら
れ、又はベクトルレジスターファイル42からキャッシ
ュデータバス40を経てデータキャッシュ38に押しや
られて格納される。若しタグ同士が一致しなければ、デ
ータはなお押しやられるがデータキャッシュ38又はレ
ジスターファイル42に無視される。
パイプ項目は1クロックサイクルで1ステージを通過す
るので、1個のパイプ項目は5サイクルでパイプライン
を通過する。本発明のベクトル処理装置においては、ロ
ード/格納コマンドは、従ってパイプ項目は、パイプラ
イン処理される。これは、第2のパイプ項目は第1のパ
イプ項目がパイプライン8を完全に通過する前に第1パ
イプ項目に続いてロード/格納パイプライン8に入るこ
とを意味する。第1図の実施例において、パイプライン
処理は、通常の動作中、何時でも5個のステージの全て
が連続するパイプ項目を包含し得る様に行なわれる。
ロード/格納パイプライン8は、ロード/格納コントロ
ーラ52により決定された通りに、3個のモードのうち
の一つで作動する。ものモードは、ロードモード、格納
モード及びキャッシュ充填モードである。ロードモード
では、データはデータキャッシュ38からベクトルレジ
スター42にロードされる。格納モード中、データは、
条件付きで、データがミスするかヒツトするかに応じて
ベクトルレジスター42からデータキャッシュ38に格
納される。キャッシュ充填モードについては後述する。
ロード/格納コントローラは、パイプラインがどのモー
ドであるべきであるかをパイプラインのステージ知らせ
る信号を送出する。
ベクトルレジスターファイル42内の各々の記憶場所に
アクセスするために、レジスターファイルアドレス(R
FA)がパイプライン8内の成る点からベクトルレジス
ターファイル42へ送られる。RFAは各パイプ項目の
ビットの一部(例えば、6ビツト)である。これらのビ
ットから、ベクトルレジスターファイル42は、ロード
動作中はキャッシュ38からのデータをどこに格納する
べきかを知り、また格納動作中は、どこからファイル4
2内のデータが検索されキャッシュ38に送られるべき
か、を知る。
パイプライン内の、RFAが「送出され」てベクトルレ
ジスターファイル42へ送られることとなる点は、動作
の種類に依って異なる。それは、各動作に必要とされる
キャッシュデータバスタイミングが異なるからである。
色々な動作のタイミングについては、第2図ないし第4
図を参照して詳細に後述する。今は、格納動作ではRF
Aはアドレス生成ステージ10の後で送出れ:キャッシ
ュ充填動作ではタグ比較ステージで送出され、ロード動
作ではキャッシュデータ格納ステージ18の後で送出さ
れることを言えば充分である。これらの各ステージ後の
RFAはマルチプレクサ51に送られ、該マルチプレク
サは、ロード/格納コントローラ52からの制御信号に
応じて適当なRFA入カシカライン適当FAがマルチプ
レクサ51から遅延う7チ53に出力され、これからベ
クトルレジスターファイル42に出力される。
ロード動作中、全てのタグが一致して全てのキャッシュ
要求がヒットすれば、何の問題も生じない。しかし、時
にはキャッシュミス(タグが一致しない時)があり、デ
ータキャッシュ38内の指定された物理的アドレスに妥
当なビットが無いことが示される。要求されたデータは
結局はキャッシュ38から読み出され得る様に、これら
のキャッシュミスの処理が行なわれなければならない。
ロード動作中の読み出しミスの処理は、要求されたデー
タを外部バス50を介して他の処理装置又は主メモリー
から得る処理を含む。要求されたデータは、データキャ
ッシュ38の指定された物理的アドレスに充填され、次
にベクトルレジスターファイル42へのキャッシュデー
タバス40へ押しやられる。
ミスに関する上記の処理は、色々な方法で実行され得る
物である。割合に低速の方法は、読み出しミスがあった
時にパイプラインを停止させ、外部バス50を介してデ
ータを取り出し、該データをキャッシュ38に充填して
、次にパイプラインを再始動させる方法である。この方
法は、キャッシュがパイプラインの一部でない時に使わ
れる。
この方法の速度は、外部バス50がキャッシュ38への
要求されたデータを得ることの出来る速度により限定さ
れる。その時まで、他のロードが実行される。
本発明は、パイプラインが依然として動作して(ロード
を実行して)いる間に読み出しミスの処理を行なうこと
によって、この制限を回避するものである。本発明は、
読み出しミスバッファー26a−dを使って実施される
。4個の読み出しミスバッファー25a−dが第1図に
示されているが、読み出しミスバッファーを何個使用し
てもよい。ロード動作中にミス信号を受け取ると、キャ
ッシュデータ格納ステージ18はデータをキャッシュ3
8からキャッシュデータバス40へ送出しない。その代
わりに、キャッシュデータ格納ステージ18は、パイプ
項目内のコマンドアドレスをロード/格納内部コマンド
アドレスバス45を介して利用可能な読み出しミスバッ
ファー26 aに送る。連続するパイプ項目がヒツトし
たとすると、キャッシュ38からのロードは、読み出し
ミスバッファー26aが後述する様に外部バス50を介
して主メモリーからのデータで充填されている間、継続
して行なわれる。
読み出しミスバッファー26a−dは、各々、パイプ項
目目のコマンドアドレスと、そのコマンドアドレスに対
応する数個のデータ要素とを保持する。(例えば4個の
バッファーを包含する。外部バスコントローラ58は、
コマンドアドレスヲ受け入れるバッファーのために主メ
モリーからデータを要求する。データ要素が外部バス5
0を介して受け取られてゆく時、外部バスコントローラ
58は、対応する読み出しミスバッファー26a−d内
のデータバッファーへ該データを充填する。
読み出しミスバッファー26a−dが完全に充填された
時、データをキャッシュ38に充填することが出来ると
いうことをロード/格納コントローラ52に示す内部フ
ラグを立てる。
同様にして、他の3個の読み出しミスバッファー26a
−dについても、別に3個の読み出しミスがあった時に
処理が行なわれる。ロード/格納パイプライン8がロー
ド/格納コントローラ52によって機能停止させられる
のは、4個の読み出し、ミスがあって、利用可能な読み
出しミスバッファーが無くなった後である。この時、ロ
ード/格納コントローラ52はパイプライン8をキャッ
シュ充填モードに転換させる。現在パイプライン内にお
いて活きている全てのパイプ項目について処理が中断さ
れる。一方、ミスした第1コマンドアドレスを受け取っ
た読み出しミスバフファー26aが外部バス50からデ
ータを受け取った時、バッファー26aに格納されてい
るコマンドアドレスはコマンドアドレスバス45を介し
てキャッシュタグ参照ステージ14に送られて、パイプ
ラインがキャッシュ充填モードとなっているので、タグ
記憶装置34内で妥当せと割り振られる。ロード/格納
コントローラ52は、データを読み出しミスバッファー
26aからロード/格納内部データバス47ヘラツチ2
0を通して送出し、且つキャッシュデータバス40へ送
出する。該データは、キャッシュ充填RFAにより指示
された通りに、適当なベクトルレジスターファイル42
にロードされる。該データは、その後、ラッチ19を通
してデータキャッシュ38に書き込まれる。アドレス生
成器10は、最後のミス(この場合には4番目のミス)
を起こしたパイプ項目に続いたパイプ。
項目を再生させることを支援している。
この実施例において、空の読み出しミスバッファー25
a−dが今は少なくとも1個存在するので、パイプライ
ンはその後は以前とは同様に処理を継続する。他の読み
出しミスが生じると、パイプラインは再び停止させられ
て上記の手順が反復されるので、読み出しミスバッファ
ー26aは再び利用出来なくなる。しかし、読み出しミ
スバッファー26aからキャッシュを充填する代わりに
、第2の読み出しミスコマンドアドレスを受け取った読
み出しミスバッファー(例えば26b)は、データキャ
ッシュ38を充填するバッファーとなる。換言すれば、
読み出しミスバッファー26a−dは、要求された時、
読み出しミスがラウントロピンFIFO順に該バッファ
ーに割り当てられた順に、データキャッシュ38を充填
する。
図に示されている実施例において、充填動作は、バッフ
ァー割り付けの順で行なわれる。他の実施例では別の順
で充填をする。ベクトルが完全に走査された後、ロード
動作を完了させるために、要求されたデータが利用可能
となった時に読み出しミスバッファー25a−dから該
データで充填される。このデータは、ロード/格納デー
タバス47とベクトルレジスター42へのキャッシュデ
ータバス40とへ送出される。要求されたデータが全て
キャッシュ38に充填され、ベクトルレジスター42に
ロードされた後、ロード動作は完了する。
ベクトルレジスター42からデータキャッシュ38への
データの格納は複雑ではない。データキャッシュ38は
タグ比較器16にヒツトがあった時、格納動作中に変更
されるだけである。若しキャッシュミスがあれば、デー
タキャッシュ38は変更されない。このことの唯一の結
果は、ロード動作でデータがデータキャッシュ38から
ベクトルレジスター42ヘローされるべき時にミスが発
生し、該ミスが前述の様にして処理されることである。
干渉性の理由から、システムの残りの部分がデータキャ
ッシュ38内に何があるのかを何時でも知っていること
が重要である。この目的のために、格納動作中コマンド
アドレスがアドレスFIFO54に送られ、そのコマン
ドアドレスにか対応するベクトルレジスターファイル4
2からのデータがデータPIFO56に送られる。これ
らのFIFO54,56から、そのアドレス及びデータ
は外部バスコントローラ58を通して外部バス50へ送
出され、システムに送られる。以上の説明は、直接写像
ライトスルー・データキャソシユ(direct ma
pped write−through data c
ache)についてのものである。他の実施例はライト
バックデータキ+7シユ(write−back da
ta cache )を処理することが出来る。
PIFO54,56は、1個の完全なベクトル格納動作
を受け持つことが出来る大きさを持っている。これは、
同時ロード動作にパイプライン8を使用することを可能
にする。一実施例は、読み出しミスがロード動作中に発
生したならば、そのロード動作を、格納動作が完了すく
まで待機させる。万一、格納動作中に翻訳バッファーミ
スがあったならば、格納動作は停止させられ、外部バス
50を介して読み出しミスの処理が行なわれる。
換言すれば、外部バス50の使用に関しては翻訳バッフ
ァーミス動作は格納動作に対して優先権を有する。
説明を容易にする目的で、個々のカッドワード(8個の
隣接するバイト)要素を表わすパイプ項目を使って本発
明の説明をした。しかし、図示した実施例においては、
単一のパイプ項目が4個の位置合わせされたカッドワー
ド要素(ヘキサワード)を表わす。この場合、パイプ項
目はキャッシュタグ参照ステージ14でその構成要素で
あるカッドワードに分解され、それらのカットワードア
ドレスは一時に1個ずつデータキャッシュ38から取り
出される。1サイクル当り1個のカットワードがデータ
キャッシュ38から送出され得るので、アドレス生成器
10は、分解中、該ヘキサワードの最後のカットワード
に到達するまで機能停止させられる。若し読み出しミス
があれば、ヘキサワード全体が検索されて、結局は読み
出しミスバッファー25a−d及びデータキャッシュ3
8に充填される。ヘキサワードの例が第13図示されて
いる。この例では、このヘキサワードは位置合わせされ
ていないことに注意するべきである。
即ち、ロングワードlは左に無いので、ロングワード1
及び2を含む第1のカッドワードは位置合わせされてい
ない。これを考慮して、サイク種類情報(後述する)と
、アドレス生成器10によるアドレス及びアドレス+1
の生成は該情報のベクトルレジスター42への適切な書
き込みを可能にする。
読み出しミスバッファー26a−dを使って4個のカッ
トワードを一時に得る方法はロード処理の速度を向上さ
せるものである。それは、そのうちの一つのカットワー
ドがミスすれば該ヘキサワード内の全ての位置合わせさ
れたカットワードがミスすることになるからである。
他の実施例は、ヒットが生じると単一のカッドワード要
素をロードするが、読み出しミス後には、ミスしたカッ
トワードが属するヘキサワードを検索する。キャッシュ
充填中、該ヘキサワードは分解されるが、ミスしたカッ
ドワードのみがベクトルレジスターファイル42にロー
ドされ、一方、該ヘキサワード全体がキャッシュ38に
充填される。
サイクル種i (CT)もパイプ項目の一部であり、ど
の種類の要素が、例えばカットワード又はロングワード
が使われるか、そしてそのカッドワード内でのロングワ
ードの位置合わせについてベクトルレジスターファイル
42に知らせる。パイプ項目データは、倍精度数(カッ
トワード)又は2個のロングワード(単精度浮動小数点
)又は整数であることが出来る。主メモリーにおいてロ
ングワードは物理的に位置合わせされるので、ロード/
格納装置は、所望のロングワードがカッドワードの上側
ロングワード又は下側ロングワードにあるデータを送信
し又は受け取ることをベクトルレジスター42に要求す
ることが出来る。これはCTにより指定される。CTは
、パイプライン8の、RFAと同じ記憶場所から排出さ
れる。
前述した様に、RFAは、パイプライン8がどのモード
となっているかに応じてパイプラインの異なるステージ
から排出される。第2図ないし第4図は、第1図の構成
要素のうちのいくつかを、図面において色々な動作のタ
イミングを示す説明の目的で再構成して示す。
第2図は、ロード動作についてのパイプライン構成を示
し、ここでデータはキャッシュからベクトルレジスター
42ヘロードされる。ステージILにおいて、アドレス
生成ステージ10は仮想アドレスを生成する。翻訳バッ
ファー12は、その仮想アドレスをステージ2Lにおい
て翻訳し、物理的キャッシュタグデータがステージ3し
て参照される。タグ比較はステージ4して行なわれ、デ
ータキャッシュ38からステージ5Lにおいてラッチ1
9へ違い込まれ、RFAはキャッシュデータ格納ステー
ジ18から排出される。ステージ6Lにおいて、RFA
及びデータはそれぞれランチ53及び19に追い込まれ
る。ステージ7Lにおいて、RFA及びデータはベクト
ルレジスターファイル42に追い込まれる。電気的制約
及びタイミングに関する制約を満たすために、データキ
ャッシュ38及びキャッシュデータ格納ステージ18の
前にラッチを使用することが出来ることに注意しなけれ
ばならない。そのラッチは、当業者が容易に理解するで
あろう様に、タイミング競争及びロード状態を防止する
キャッシュ充填動作についてのパイプライン構成が第3
図に示されている。ステージICFにおいて、充填され
るべきコマンドアドレスが一つの読み出しミスバッファ
ー26a−d (例えば26a)からコマンドアドレス
バッファー45に追い込まれる。ステージ2CFにおい
て、読みだしミスバッファー26aに充填されてあった
データがロード/格納内部データバス47に送出される
そのコマンドアドレスについてのタグはキャッシュタグ
索引14によりタグ記憶装置34に書き込まれ、これは
キャッシュ充填モードではアロケータとして作用する。
RFAはキャッシュタグ参照ステージ14から追い出さ
れる。ステージ3CFにおいて、データ及びRFAは、
このモードでは比較器としてではなくてラッチとして作
用するタグ比較器16によってパイプ項目がラッチされ
るのと同様にラッチされる。ステージ4CFにおいて、
内部データバス47上のデータはキャッシュデータバス
40及びベクトルレジスターファイル42に追い込まれ
る。この時、RFAもベクトルレジスターファイル42
へ進められる。最後に、ステージ5CFにおいて、デー
タはラッチされ、キャッシュデータバス40及びデータ
キャッシュ38へ追い込まれる。
格納のための構成が第4図に示されている。ステージI
Sにおいて、仮想アドレスが生成され、RFAがアドレ
ス生成ステージ1o外へ追い出される。ステージ2Sに
おいて、仮想アドレス物理的アドレスに翻訳され、RF
Aはキャッシュデータバス40上でベクトルレジスター
ファイル42へ進められる。固有の2サイクルの遅延が
あるので、データは2サイクル後に現われる。物理的キ
ャッシュタグデータがステージ3sにおいて参照される
。ステージ4Sにおいて、タグデータとタグ比較データ
とが比較され、ベクトルレジスターファイル42は、R
FAにより指定されたデータをキャッシュデータバス4
0へ追いやり、ランチ19にラッチさせる。このデータ
はステージ5sでデータキャッシュ38へ追い込まれる
。データは、若しキャッシュヒットがあればデータキャ
ッシュ38に書き込まれ、若しキャッシュミスがあれば
無視される。
第2図ないし第4図は第1図の色々な構成要素を異なる
位置に示しているが、それら構成要素間の接続関係は第
1図と同じである。この再構成は、三つの異なる動作モ
ードにおける第1図の実施例のタイミング及び動作の理
解を助けることを目的とするに過ぎない。「再構成」は
、制御信号を色々な構成要素に送るコントローラ6によ
ってなされる。
下記の、第5図ないし第11図に示されているタイミン
グ図は、上記の本発明の原理による発明の動作の例を幾
つか示す。
第5図を参照すると、ロード/格納パイプラインにおけ
るロード動作のタイミング図が示されている。ロード動
作のパイプラインステージ構成は第2図に示されている
。このタイミング図は6要素ロ一ド動作を示す。第5図
の目的上、キャッシュタグ比較器16は常に一致又はヒ
ツトを生成すると仮定する。この特別のベクトルロード
命令は、■要素当り8バイトの情報を転送する6要素ロ
ード命令である。
ロード/格納パイプライン8は、時刻tQにおいて第5
図に示されているコマンド又はベクトル命令をアドレス
生成器10に入力することによって機能する。アドレス
生成器10は、そのベクトル命令を、該命令を完成させ
る外部パストランザクションの有効なシーケンスに分解
する。アドレス生成器10からの出力はパイプ項目と呼
ばれる。
ロード/格納パイプラインの残りの全てのステージはパ
イプ項目を受け取り、送信する。第5図に示されている
様に、時刻10においてパイプ項目について生成される
アドレスは要素0について408  (hex)である
。パイプラインはカッドワードロード動作のための通常
モードにある。
時刻tlにおいて、要素0は、矢60で示されている様
に、パイプを通してトランザクションバッファー12へ
送られる。アドレス生成ステージ10からの仮想アドレ
スは、トランザクションバッファーエ2によって物理的
アドレスに翻訳される。
パイプラインの性質により、次の要素1は時刻t1にお
いてパイプのアドレス生成ステージ10に入る。再び、
アドレス生成ステージは、ベクトル命令を、そのベクト
ル命令を完成させるトランザクションに分解する。要素
1についてのアドレス生成ステージ10の出力は、仮想
アドレスを有する完全な外部パストランザクションであ
る。
時刻t2において、要素Oは、矢61で示されている様
に、トランザクションバッファー12からキャッシュタ
グ参照ステージ14内ヘシフトされる。キャッシュタグ
参照ステージ14は、物理的アドレスについてタグ記憶
装置34内のタグを参照し、それをキャッシュタグ比較
器16に戻す。
要素Oは時刻t3においてキャッシュタグ比較器16に
転送され、ここでタグの比較が行なわれる。
第5図において全てのキャッシュ比較が一致又はヒツト
を生成すると仮定すると、要素Oは矢63で示され且つ
第2図に図示されている様に、時刻t4でデータキャッ
シュ38において読み出される。該データはデータキャ
ッシュ38の外へ追い出され、キャッシュデータバス4
o上に置がれるべくラッチ19へ追い込まれる。また時
刻t4において、RFAはキャッシュデータ格納ステー
ジ18からラッチ62へ追い込まれる。
時刻t5において、矢64で示されている様に、RFA
/CTはラッチ62からキャッシュデータバス40上に
追い出される。更に、要素0についてのデータはラッチ
19からキャッシュデータバス40上へ追いやられ、該
キャッシュデータバスはベクトルレジスター42に書き
込んで要素0についてのロード動作を完了させる様に命
令される。
時刻t2に戻ると、矢65で示されている様に要素1が
アドレス生成器10から翻訳バッファー12へ送られる
のが分かる。更に、要素2は、今、パイプラインのアド
レス生成器lOへ入る。
要素1は、矢66−69で示されている様に、ロード/
格納パイプラインのステージ14.16.38及び40
を通してシフトされる。更に、要素2−5はこの第1要
素の背後でパイプラインを通して順にシフトする。この
様にして、6要素ロ一ド動作は時刻110で完了する。
従って、キャッシュタグ比較器16がミスを生成しない
時は、読み出しミスバフファー25a−dは使用されな
い。
第2図及び第3図と関連させて第6−6C図を参照する
と、8要素ベクトル力ツドワードロード動作が示されて
おり、ここではキャッシュミス信号はキャッシュタグ比
較器16で生成される。作動時、時刻toにおいて、要
素Oはアドレス生成器lOに入る。アドレス生成器10
の動作は、第5図のベクトルロード動作において上記し
たのと同じである。要素Oは、矢80で示されている様
に、時刻t1でパイプを翻訳バッファーステージ12へ
通過する。要素0はステージを矢81及び82で示され
ている様にキャッシュタグ参照ステージ14を通して転
移し続けてキャッシュタグ比較器16へ入る。この場合
も、ロードパイプラインの動作は上記と同じである。
しかし、時刻t3においてキャッシュタグ比較器16は
タグ比較を行ない、これはキャッシュミスを生じさせる
。従って、ブロック83から分かる様に、要素Oについ
てのコマンド/アドレスはロード/格納内部コマンドア
ドレスバス45を介して4個の読み出しミスバッファー
25a−dのうちの最初の読み出しミスバッファーにロ
ードされる。
後続のパイプ項目、要素1−3、は各要素がキャッシュ
タグ比較器16においてキャッシュミスを生成するまで
順にパイプを通過する。各キャ・ノシュミスは、タイミ
ング図にブロック90−92で示されている様にコマン
ドアドレスバス45を通してパイプ項目のコマンドアド
レスを順次に4個の読み出しミスバッファー25a−4
の一つにロードする。タイミング図の時刻t6から分か
る様に、4個の読み出しミスバッファー25a−dの全
てが充填される。しかし、要素4.5及び6は、4番目
のミスがフ゛ロック89においてキャッシュタグ比較器
16によって生成される前にパイプラインに入ってしま
っている。
読み出しミスバッファー26a−ct内のパイプ項目要
素0−3の処理は、メモリーからキャッシュ充填情報を
取り出す外部バス58により処理される。パイプライン
は4個の読み出しミスを4個の連続するクロックパルス
で読み出しミスバッファー1(ia−d内に入れて待ち
合わせさせるので。
若し別の読み出しミスが発生すれば、最早使用すること
の出来る読み出しミスバッファーは無い。
しかし、上記した様に、処理されてないパイプラインに
おいて3個のベクトル要素アドレスが既に進行し始めて
いる。
従って、時刻t7及びt8において示されている様に、
パイプライン8は、読み出しミスバッファー26a−d
が外部バス58によって処理されている間は停止してい
なければならない。アドレス生成器10は、4番目のキ
ャッシュミスを起こしたパイプ項目要素に続くパイプ項
目要素に対して後援をする。
時刻t9は、ブロック93で示されている様にアドレス
生成器10にパイプ項目5を保持することを示す。同じ
時刻t9において、要素4は、ブロック94で示されて
いる様に翻訳バッファー12に保持されている。
第1の読み出しミスバッファー26aの処理が外部バス
58によりなされた後は、ブロック95で示されている
様にデータ情報がコマンドアドレスバス45上で利用可
能となる。時刻tloにおいて、パイプラインは継続し
、ブロック96及び97でそれぞれ示されている様に、
要素5はアドレス生成器10内にあり、要素4は翻訳バ
ッファー12におけるヒツトを記録する。コマンドアド
レスは今はコマンドアドレスバス45上で利用可能とな
っており、且つ全ての読み出しミスバフファーが充填さ
れているので、パイプラインはキャッシュ充填モードに
転換され、キャッシュ充填についての物理的アドレスは
、ブロック98に示されている様にキャッシュタグ参照
ステージ14に送られる。またブロック98に示されて
いる様に、該アドレスは参照ステージ14で割り振られ
妥当性検査をされる。同時に、該データは、ブロック2
00で示されている様に内部データバス47上で利用可
能である。
時刻tllに続いて、ブロック99は、要素6がアドレ
ス生成器10において作動可能であることを示す。パイ
プラインの下流側の次のステージで、要素5は、ブロッ
ク100で示されている様に翻訳バッファー12におけ
るヒツトを記録する。
更に、ブロック101で示されている様に要素4につい
てのキャッシュタグ参照がキャッシュ参照ステージ14
で行なわれる。ブロック102で示されている様に、キ
ャッシュタグ比較器16は、今、要素0のキャッシュ充
填を受け取る。同時に、キャッシュデータバス40は、
ブロック103で示されている様に内部データバス47
から充填データを受け取る。更に、充填RFA及びCT
はキャッシュデータバス40上へ進められる。
時刻t12において、最後の要素7がアドレス生成器1
0に入る。更に、要素6及び5はブロック105及び1
06で示されている様にロードパイブライン8を継続し
て通過する。しかし、時刻t12において、要素4は、
ブロック107で示されている様にキャッシュタグ比較
器16におけるキャッシュミスに遭遇する。前述の場合
と同様に、このキャッシュミスは、ブロック109で示
されている様にコマンドアドレスバス45を使って使用
可能な読み出しミスバッファー26aをロードする。同
じ時刻t12に、ブロック108で示されている様に読
み出しミスバッファーからのキャッシュデータバス40
上にあった要素0からの情報がデータキャッシュ38に
書き込まれる。
第6図及び第6A図から分かる様に、4個の読み出しミ
スバッファー25a−dは再び充填され、従ってロード
パイプラインは、時刻t13及びt14に示されている
様に、排出し、保持し、要素5を後援しなければならな
い。この「排出」という用語は、パイプラインの全ステ
ージがその動作を完了することを可能にすることを意味
する。時刻t14において、ブロック110及び111
でそれぞれ示されている様に、要素6はアドレス生成器
10にあり、要素5は翻訳バッファー12にある。
ブロック112は、コマンドアドレスバス45が読み出
しミスバッファー26a−dの一つに置かれた第2の要
素であった要素1の処理をするための情報を使用可能に
している。従って、時刻t15において、パイプライン
8は継続し、ブロック113及び114でそれぞれ示さ
れている様に要素6はアドレス生成器10にあり、要素
5は翻訳バッファー12におけるビットを記録する。更
に、外部バス50により処理された要素1についてのデ
ータが、今、ブロック116で示されている様に内部デ
ータバス47上で使用可能となっている。該アドレスは
、ブロック115で示されている様にコマンドアドレス
バス45からキャッシュタグ比較器16へ入力される。
割り振りと妥当性検査処理はキャッシュタグ参照ステー
ジ14により行なわれる。時刻t16に続いて、パイプ
項目要素7が再びパイプライン8のアドレス生成器10
に入る。更に、要素6は翻訳バッファー12におけるヒ
ツトを記録し、要素5はキャッシュタグ参照ステージ1
4にタグ参照を行なわせる。時刻t16において、キャ
ッシュタグ比較器16は、ブロック117で示されてい
る様に要素1のキャッシュ充填を受け取る。更に、キャ
ッシュデータバス40は、今、ベクトルレジスター42
に書き込みをするためのバス40上に要素1についての
データ及びRFA/CTを使用可能にしている。
時刻t17において、ブロック119に示されている様
に、データキャッシュ38は要素1に書き込ませて、そ
の要素についてのキャッシュ充填を完了させる。同時に
、要素5はキャッシュタグ参照ステージ14からキャッ
シュタグ比較器16に進み、そこでキャッシュミスがブ
ロック120で示されている様に生成される。再び、要
素5のキャッシュミスは、ブロック121に示されてい
る様にコマンドアドレスバス45を通して使用可能な読
み出しミスバッファー25a−dの一つにロードされる
ロードパイプラインを走らせると共にキャッシュ充填の
処理をするこのシーケンスは、時刻t29においてブロ
ック122(第6B図)で示されている様に最後の要素
7がキャッシュタグ比較器16においてキャッシュミス
に出会うまでパイプ内で継続する。時刻t29において
、要素7におけるキャッシュミスは、ブロック123で
示されている様にロード/格納内部コマンドアドレスバ
ス45を通して使用可能な読み出しミスバッファー26
a−dの一つにロードする。同時に、ブロック124に
示されている様に、要素3が、先に要素0−2について
行なわれた様にキャッシュデータバス40からデータキ
ャッシュ38に書き込まれる。
読み出しミスバッファー26a−dが再び充填されるの
で、ロードパイプラインは、時刻t30及びt31に図
解されている様に排出し、保持し、後援する。最後に、
時刻t32において、要素4は外部バス50により処理
されており、時刻t33−t35に図示されている様に
パイプラインに戻され得る状態となっている。要素4は
、先に前の要素について行なわれた様に、そのキャッシ
ュミスを充填させる。ベクトル命令についてはこれ以上
の要素は最早アドレス生成器10にロードされないので
、ロードが全部完了するまでパイプライン8はキャッシ
ュ充填モードに留まって、残っている読み出しミスバッ
ファーの処理をする(第6C図)。
非単一スドライド・ベクトルロード動作(non−un
ity 5tride vector 1oad op
eration)の別の実施例が第7−7D図に示され
ている。第7−7D図のタイミング図は6要素ロ一ド動
作を示し、その場合、各要素はキャッシュミスに出会う
。ロード動作は、はぼ、第6−6C図について前述した
様に行なわれる。しかし、ブロック202−208(第
7図)で示されている様に、読み出しミスバッファーを
充填する4番目のキャッシュミスの後、キャッシュ充填
モードは上記とは別様に行なわれる。
動作において、キャッシュ充填モードは、時刻tloで
ブロック210に示されている様に(第7A図)コマン
ドアドレスバス45上にコマンドアドレスを使用可能と
する。時刻t11において、該アドレスはキャッシュタ
グ参照ステージ14に入力されて、割り振り及び妥当性
検査をされる。
第7−7D図の実施例は、第6−6C図において上記し
た単一のカッドワードではなくて情報のへキサワードを
読み出しミスバッファーに戻す。
従って、非単一スドライド動作には唯一のカットワード
が必要であるが、キャッシュタグ参照ステージはへキサ
ワードアドレスを、時刻t12ないしt14の間に示さ
れている様に、その4個のカッドワードに分解しなけれ
ばならない。分解時間中、パイプラインのアドレス生成
器10及び翻訳バッファー12ステージは時刻t14の
最後の分解まで持続する。
各カッドワードについてのデータは、ブロック212−
218で示されている様に内部データバッファー47上
に順次に進められる。次のクロックパルスで、時刻t1
2ないしt15の間に示されている様に3亥データはキ
ャッシュデータバス40上に進められる。同時に(t1
2−t15)、RFA/CTはキャッシュデータバス4
0上に進められる。唯一のカッドワードが必要とされる
ので、RFA及びCTは、ヘキサワードのうちの1個の
カッドワードについてのみ妥当である。これは、時刻t
13で、妥当なカッドワードアドレス408を有する要
素Oについて示されている。次のクロックパルスt14
で、データキャッシュ38に充填データが書き込まれる
このプロセスは、ロード動作における全ての要素につい
て上記した様に′m続される。第7−7D図は、単一の
カッドワードが必要であっても外部バスがヘキサワード
の情報を取り出すことを可能にする。
第4図と関連させて第8図を参照すると、そこには8個
の要素を有するベクトル格納動作のタイミング図を示さ
れている。第8図の動作は、時刻tQでブロック140
に示されている様に要素0から始まるパイプ項目のシー
ケンスを作り出すアドレス生成器10の動作から開始す
る。要素0は時刻t1で矢141により示されている様
にパイプラインを下って翻訳バッファー12へ進む。ア
ドレス生成器10からの仮想アドレスは、翻訳バッファ
ー12において物理的アドレスに翻訳され同時に、RF
A/CTは、ブロック222に示されている様にキャッ
シュデータバス40上に進められる。格納動作はデータ
をベクトルレジスター42から読み出す。
その後、物理的アドレスは、時刻t2において矢143
で示されている様にキャッシュタグ参照ステージ14に
装入される。時刻t3において矢145で示されている
様にキャッシュタグが参照され、要素0はキャッシュタ
グ参照ステージ16に進む。また、時刻t3において、
ブロック224で示されている様にベクトルレジスター
42は該データをキャッシュデータバス40上に進める
キャッシュタグ比較器16は、ブロック146で示され
ている様にタグ比較を行なう。最後に、時刻t4におい
て、タグ比較(ブロック146)の結果がキャツシュヒ
ツトであった時、ブロック148で示されている様に該
データはキャッシュデータバス40からデータキャッシ
ュ38に書き込まれる。しかし、若しタグ比較の結果が
キャッシュミスであれば、キャッシュは変更されない、
この動作は、第8図に示されている様に格納動作全体に
ついて継続される。
第9図及び第9A図を参照すると、そこには単一ストラ
イドを有するベクトルロード動作が示されている。スト
ライドが単一である時、ベクトル要素はメモリー内に隣
接して格納される。従って、アドレス生成器10により
生成される各パイプ項目は複数の要素を表わす。これは
、隣接するメモリー記憶場所にアクセスする時に、より
大きな外部バス帯域幅を利用する。第9図及び第9A図
を第2図と関連させて見ると、17個の要素をロードす
る5ヘキサワ一ドベクトル動作が示されており、ここで
はキャッシュタグ比較器16が連続的にヒットを生成す
ると仮定されている。
一般に、単一ストライド動作についてのロード/格納パ
イプライン8の動作は、上記の非単一ストライド動作に
ついてのものと同じである。しかし、アドレス生成器1
0は要素Oから始まるパイプ項目のシーケンスを生成す
ることが出来る。各パイプ項目は1ないし4個の要素(
即ち、ヘキサワード)を表わすことが出来る。これは該
タイミング図においてアドレス生成器10に示されてお
り、ここでアドレス生成器10に入る要素は4の倍数で
ある。従って、要素の総数は、各パイプ項目毎に4だけ
増す。
先に行なわれた様に、アドレス生成器10からの各仮想
アドレスは翻訳バッファー12で物理的アドレスに翻訳
される。次に、該物理的アドレスはキャッシュタグ参照
ステージ14に送られ、その後キャッシュタグ比較器1
6に送られる。タグ比較がキャッシュタグ比較器16で
行なわれるが、その結果は、第9図の目的上、常にキャ
ツシュヒツトとなる。キャッシュのブロックサイズは1
ヘキサワードである。キャツシュヒツトは、該ヘキサワ
ード全体(パイプ項目に包含されている全ての要素)が
キャッシュ内にあることを示す。
第9図においてはパイプ項目は4個の下位要素(又はカ
ッドワード)から成る。しかし、キャッシュは、1クロ
ックパルス当り1個の下位要素を送出することが出来る
に過ぎない。従って、時間t 2−t 5に示されてい
る様に、キャッシュタグ参照ステージ14に内蔵されて
いるパルス項目は、その構成要素である下位要素に分解
されなければならず、゛これらの下位要素のアドレスは
その後データキャッシュ38から読み出される。データ
キャッシュ38から読み出された下位要素は、キャッシ
ュデータバス40上に進められ、ベクトルレジスターに
書き込まれる。パイプ項目がキャッシュタグ参照ステー
ジ14で分解されている間、パイプのアドレス生成器1
0は次のへキサワードアドレスで機能停止させられる(
tl)。アドレス生成器10は、ヘキサワードの最後の
下位要素に達するまで機能停止させられている。
第9図から、キャッシュタグ参照ステージ14における
パイプ項目分解は、キャッシュ参照の結果がキャッシュ
タグ比較器16で知られる前に始まることに注意するこ
とが大切である。分解は無条件に始まり、キャッシュは
ヒツトすると仮定されている。最後の要素がデータキャ
ッシュ38からロードされた後、そのパリティが検査さ
れる。
若しそのパリティが正しければ、ロード/格納チップは
、ベクトルコントローラに、ベクトルロード動作が完了
したことを知らせる。
第10−10D図を参照すると、そこには22個の要素
をロードする6ヘキサワ一ドベクトル動作の単一ストラ
イドタイミング図が示されている。
第1O−10D図では、キャッシュタグ比較の結果は常
にキャッシュミスになると仮定されている。
単一ストライドベクトルロード動作についての第10−
10D図の動作は、第2図及び第3図と関連させて見る
と、第7−7D図に示されている非単一ストライド動作
についてのそれと類似している。
第1O−10D図の初期動作、即ちto−t2、は第9
図のそれと同じである。しかし、常にタグヒットを生成
する第9図とは異なって、第10図のキャッシュタグ比
較器16で行なわれるタグ比較の結果は常にキャッシュ
ミスとなる。キャッシュミスは外部バス58による処理
のためにコマンドアドレスバス45によりパイプ項目を
読み出しミスバッファー25a−dの一つにロードする
(ブロック230(t4))。キャッシュタグ参照ステ
ージ14で開始された分解(ブロック232(t3))
は、これが生じた時には打ち切られ、その結果としての
パイプ項目はブロック234(t4)に示されている様
に無視される。分解が始まった時に機能停止させられた
アドレス生成器10は、今、機能停止状態から開放され
て、ミスが読み出しミスバッファーにロードされる時に
新しいパイプ項目を生成する。この動作は、時刻t13
でコマンドアドレスバス45により4個の読み出しミス
バッファー26a−dが全てロードされるまで続く (
ブロック236)。
万一、別の読み出しミスが生じた時は、使用可能な読み
出しミスバッファーは最早無いので、パイプラインは停
止しなければならず、アドレス生成器10は4番目のキ
ャッシュミスを引き起こしたパイプ項目に続くパイプ項
目を後援しなければならない。パイプ項目の生成は、結
局、この時点で再開される。
パイプラインが停止している間、アドレス生成器10及
び翻訳バッファー12は機能停止しくLi2−Li8)
(第10A図)、第1読み出しミスバッファーの処理が
されるまではコマンドアドレスはコマンドアドレスバス
45上で使用可能である。該コマンドアドレスは、キャ
ッシュ充填の処理をするために使われる。外部バス58
が読み出しミスバッファーの処理をしてしまうと、時刻
t16に示されている様に該読み出しミスバッファーか
らのパイプ項目目はコマンドアドレスバス45によりパ
イプのキャッシュタグ参照ステージ14に送出される。
キャッシュ充填データは同時にロード/格納内部データ
バス47に送出される。
パイプラインのモードはパイプコントローラ52によっ
てキャッシュ充填モードに変更される。
タグはタグ参照14によりタグ記憶装置34において割
り振られ妥当性検査をされる。第10A図において時刻
t17に示されている様に、キャッシュタグ比較器16
内のパイプ項目は、今、その4個の構成要素である下位
要素に分解される。戻されたヘキサワードの4個の下位
要素は時間ロアーt20中にキャフシュデータバス40
上に出される。該データは時間Li8−t21中にデー
タキャッシュ38に書き込まれる。
最初のキャッシュ充填処理によって時刻t19で分解が
完了すると、別のキャッシュミスが生じれば読み出しミ
スバッファーが今は使用可能であるのでパイプコントロ
ーラ52はパイプのアドレス生成器10を解放する。時
刻t21において、他のキャッシュミスが生じて、時刻
t22において4番目の読み出しミスバッファーを充填
する。
パイプラインは再び停止させられ、後援され、次の読み
出しミスバッファーが処理されるまでは機能停止させら
れている。この動作は、全ての要素が処理されるまで続
く。若しそれ以上のミスが生じなければ、他の全ての要
素がパイプラインを通して処理された後に読み出しミス
バッファーが処理される。
最後の要素がロードされ、最後のへキサワード充填の下
位要素(カッドワード)の全てが完成した後、単一スド
ライドのベクトルロードが完了したことがベクトルコン
トローラ6に通知される。
第11図は、単一スドライドを有する7ヘキサワ一ドベ
クトル格納動作のタイミング図を示す。
第11図の動作は、非単一スドライド格納動作について
の第8図のそれと同じである。
本発明のスカラー処理装置に用いる積分キャッシュに伴
うパイプラインの実施例が第12図に示されている。参
照数字200はパイプライン全体を示す。発行装置21
0は例えばロード命令や格納命令当の命令の種類に応じ
て変位値と制御信号とを提供する。レジスターファイル
212は、算術論理装置(ALU)216からの結果を
格納し、2個の書き込みポートと2個の読み出しボート
とを持っている。
発行装置210からの変位値は、ALU216によって
レジスターファイル212からのベースアドレスに加え
られて仮想アドレスが生成する。
この仮想アドレスは、例えば32ビツトである。
仮想アドレスの32ビツト(VA<3170>)は翻訳
バッファー(TB)218及びキャッシュタグ参照22
0に同時に与えられるが、該キャッシュタグ参照220
は、タグに索引を付する8個のビット(VA<10:3
>)のみを使う。翻訳バッファー218及びキャッシュ
タグ参照220は各々21ビツトの物理的アドレス(P
A<31:11>)を比較器224に送り、この比較器
は、該ゼットが一致する時にはヒツト信号を、不一致が
ある時にはミス信号を生成する。キャッシュタグ参照2
20に送られる8ビツトは、仮想アドレスVA<317
0>の翻訳されないビットである。
従って、キャッシュタグ参照220の前には何らの翻訳
機構も不要であり、タグ参照、アドレス翻訳及び/又は
比較を1サイクルの中で行なうことが出来る。システム
に使用されるデータキャッシュ及びページサイズの故に
、8個の翻訳されないビットのみを使ってタグに索引を
付けることが出来る。
コントローラ222は比較器224からヒツト信号又は
ミス信号を受取り、若しヒツトがあればデータをデータ
キャッシュ226に書き込ませ又は該データキャッシュ
から読み出させる。ラッチ252がビットVA<10:
3>を受け取るノテ、データキャッシュは比較から1サ
イクル後に索引を付される。若しヒツトがあれば、デー
タがキャッシュに書き込まれ(格納動作において)又は
キャッシュから読み出される(ロード動作において)。
キャッシュロード又は格納は比較後に順次に行なわれる
ので、ロード動作及び格納動作の両方のために同数のス
テージがパイプライン内にある。
ミス信号がある時には、物理的アドレス全体(PA<3
1:0>)が、スカラー処理装置の主メモリーシステム
に接続された出力FTP022Bに送られる。該アドレ
スは、その後、該主メモリーからデータを取り出すため
に出力PIF0228から送られる。同時に、該物理的
アドレスはメモリー参照タグ230に送られ、該タグ2
30は、図示の実施例では、4個の記憶場所を有し、そ
の各々は物理的アドレス(PA)、レジスターファイル
番号(RF #)及びデータ長さ(DL)を格納する。
図解の目的で図示しなかったけれども、制御情報が該ア
ドレスと共にパイプの下流側に送られたことに注意する
べきである。この制御情報の一部は、レジスターファイ
ルのどこにデータが書き込まれるか決定するレジスター
ファイル番号と、復帰するデータのどの部分をレジスタ
ーファイル212に入力するべきかをレジスターファイ
ル212に教えるデータ長さとである。
第12図に示されている実施例において、出力PIF0
228は8個の記憶場所を有し、メモリー参照タグ23
0は4個の記憶場所を有する。従って、ロード動作中、
4個に及ぶロードミスがメモリー参照タグ230に入力
されることがある。
メモリー参照タグ230が満杯である時に他のロードミ
スが生じると、データが外部バス250を介して戻され
るまで発行装置210によりno−opsが送られる。
データが戻された時、それはバッファー236に入り、
該バッファーはそのデータをデータキャッシュ226 
(マルチプレクサ238を通して)とレジスターファイ
ル212との両方に送る。戻されたデータが適切にレジ
スターファイル212に書き込まれることが出来る様に
、対応するRF#及びDLがメモリー参照タグ230か
らレジスターファイル212へ送られる。物理的アドレ
ス(PA<31 : 0>)はキャッシュタグ参照22
0に送られ、索引の付された記憶場所(PA< 10:
3〉)において、ビットPA<31:11>(タグ)が
書き込まれるので、そのタグ記憶場所への次の参照が妥
当となる。
データキャッシュ226はライトスルー形キャッシュ(
write−through cache)であるので
、データキャッシュ226が変更される書き込み動作中
、システムの他の構成要素は、データキャッシュ226
内に何があるのかを知っていなければならない。それ故
に、バッファー234A−Cがレジスターファイル21
2と出力FIFO228との間に接続され、各格納動作
中、データを該出力FIF022Bを通して外へ出す。
ロード動作中にミスがあると、出力FIFOは、該プロ
セッサーに対して、ロード動作があることと、要求され
たデータ要素のサイズと、該プロセッサーの主メモリー
内の該データ要素が位置する物理的アドレスと、パイプ
ラインが使用するタグとの示す情報を提供する。
格納動作については、出力11F0228が出力する情
報は、それが格納動作であるという事実と、データ要素
のサイズと、物理的アドレスと、該データ要素自体とで
ある。
PIF0228及びメモリー参照タグ230の動作によ
り、第12図のパイプライン200は、動作継続中に複
数の未解決のミスを支援することが出来る。キャッシュ
ミス後にパイプラインを継続させるために、依存関係を
検査しなければならない。この目的上、コントローラは
書き込み打ち切りを提供する。即ち、ロード動作中にキ
ャッシュミスがあり、(従ってメモリー参照タグ230
がミスを内蔵し)、それに続いて格納命令があると、こ
の後の格納動作は打ち切られる。ロードと格納との間の
依存関係を検査する別の方法による場合には、内容をア
ドレス指定可能な記憶装置を使って、出力PIF022
8内の格納命令の物理的アドレスをメモリー参照タグ2
30内の物理的アドレスと比較し、いずれかの数が一致
すれば書き込み打ち切りを実行する。書き込み打ち切り
は、パイプライン内に現在ある全ての命令を打ち切り、
且つ、発行装置210内のプログラムカランカーを後援
して、ミスしてメモリー参照タグ230に入れられた最
後のロード命令の後の全ての命令を再発行させることを
包含する。
【図面の簡単な説明】
第1図は、本発明に従って構成されたロード/格納パイ
プラインの実施例のブロック図である。 第2図ないし第4図は、第1図の実施例を再構成してロ
ード動作、キャッシュ充填動作及び格納動作におけるタ
イミングを示す図。 第5図ないし第11図は、第1図に示されているパイプ
ラインを使う代表的ロード/格納動作のタイミング図の
例を示す図。 第12図は、スカラー処理装置に用いる本発明の実施例
を示す図。 第13図は、位置合わせされていないヘキサワードの例
の図。

Claims (1)

  1. 【特許請求の範囲】 (1)ベクトル処理装置においてデータ項目をレジスタ
    ーにロードすると共に前記レジスターからのデータ項目
    を格納するロード/格納パイプラインであって、 データ項目を格納するキャッシュメモリーと、前記キャ
    ッシュメモリーからのデータ項目を前記レジスターにロ
    ードすると共に前記レジスターからのデータを前記キャ
    ッシュメモリーに格納するデータロード装置であって、
    データ項目の前記ロード及び前記キャッシュメモリーへ
    のデータ項目の格納をパイプライン処理するデータロー
    ド装置と、 前記項目の一つがミスである時を判定する判定装置と、 前記ミス判定装置に接続されて、前記のミスしたデータ
    項目に付随するコマンドアドレスを格納し、前記パイプ
    ラインの動作とは独立に前記パイプラインからデータ項
    目を得る様になっている読み出しミスバッファーであっ
    て、前記データ項目が前記コマンドアドレスに対応する
    読み出しミスバッファーと、 該キャッシュメモリーに前記コマンドアドレスデータ項
    目を充填すると共に前記コマンドアドレスデータ項目を
    前記レジスターに書き込む充填装置とから成ることを特
    徴とするロード/格納パイプライン。 (2)前記読み出しミスバッファーは、前記コマンドア
    ドレスを格納し、前記コマンドアドレスデータ項目を任
    意の順序で前記パイプラインから受取り、そのデータ項
    目を、該コマンドアドレスが前記読み出しミスバッファ
    ーに格納された順序で該キャッシュメモリーに充填する
    バッファーを包含することを特徴とする請求項1に記載
    のロード/格納パイプライン。 (3)前記判定装置は、物理的アドレスをキャッシュイ
    ンデックスとタグ比較データとに分解するキャッシュタ
    グ参照ステージと:該キャッシュタグ参照ステージに接
    続され、前記キャッシュ内のアドレスに付随するタグを
    格納するタグ記憶装置であって、前記キャッシュインデ
    ックスを受け取って、対応するタグデータを出力するタ
    グ記憶装置と:前記タグ記憶装置及び前記キャッシュタ
    グ参照ステージに接続され、前記タグデータと前記タグ
    比較データとを比較して、前記タグデータと前記タグ比
    較データとが一致する時にはヒット信号を生成し、前記
    タグデータと前記タグ比較データとが一致しない時には
    ミス信号を生成する比較器とを包含することを特徴とす
    る請求項1に記載のロード/格納パイプライン。 (4)前記キャッシュタグ参照ステージと前記キャッシ
    ュメモリーとの間に接続されて、前記キャッシュメモリ
    ーにより前記キャッシュタグアドレスの受信を遅延させ
    る遅延装置を更に備えていることを特徴とする請求項3
    に記載のロード/格納パイプライン。 (5)前記キャッシュタグ参照、ステージに接続され、
    ロードコマンド及び格納コマンドを受け取って、仮想ア
    ドレスを含むパイプ項目を生成するアドレス生成器を更
    に備えていることを特徴とする請求項4に記載のロード
    /格納パイプライン。 (6)前記キャッシュタグ参照ステージと前記アドレス
    生成器との間に接続されて前記仮想アドレスを物理的ア
    ドレスに翻訳する翻訳バッファーを更に備えていること
    を特徴とする請求項5に記載のロード/格納パイプライ
    ン。 (7)前記読み出しミスバッファーは、前記コマンドア
    ドレスを格納し、前記コマンドアドレスデータを任意の
    順序で前記パイプラインから受取り、そのデータを、該
    コマンドアドレスが前記読み出しミスバッファーに格納
    された順序で該キャッシュメモリーに充填するバッファ
    ーを包含することを特徴とする請求項1に記載ロード/
    格納パイプライン。 (8)前記キャッシュメモリーは、前記キャッシュイン
    デックスを受け取るために前記キャッシュ参照ステージ
    に接続されていることを特徴とする請求項7に記載のロ
    ード/格納パイプライン。 (9)パイプラインを制御してロードモード、格納モー
    ド又はキャッシュ充填モードのいずれかにするロード/
    格納コントローラを更に備えていることを特徴とする請
    求項1に記載のロード/格納パイプライン。 (10)前記ロード装置は、前記キャッシュメモリー及
    び前記レジスターに接続されて前記キャッシュメモリー
    と前記レジスターとの間でデータ項目を転送するキャッ
    シュデータバスを包含し:前記充填装置は、前記読み出
    しミスバッファーに接続されて前記コマンドアドレスデ
    ータを伝送する内部データバスを包含することを特徴と
    する請求項1に記載のロード/格納パイプライン。 (11)前記読み出しミスバッファーは、前記コマンド
    アドレスに対応する前記データ項目が得られる時に前記
    パイプラインから追加のデータ項目を得る取得装置を包
    含しており、前記充填装置は、前記コマンドアドレスデ
    ータ項目と前記の追加のデータ項目とを該キャッシュメ
    モリーに充填することを特徴とする請求項1に記載のロ
    ード/格納パイプライン。 (12)前記データ項目はロングワードであり、前記の
    追加のデータ項目は、前記コマンドアドレスデータに対
    応するロングワードを包含する位置合わせされたヘキサ
    ワードの中のロングワードであることを特徴とする請求
    項11に記載のロード/格納パイプライン。(13)前
    記データは、2個のロングワードを有するカットワード
    であることを特徴とする請求項1に記載のロード/格納
    パイプライン。 (14)前記項目は、カットワードの中での前記ロング
    ワードの位置合わせに関する、位置合わせされていない
    ロングワードを前記レジスター内に格納可能であるとい
    う情報を包含することを特徴とする請求項13に記載の
    ロード/格納パイプライン。 (15)前記情報はサイクル種類情報であり、前記パイ
    プラインにより各前記カットワードについてアドレスと
    アドレス+1とが前記レジスターに与えられることを特
    徴とする請求項14に記載のロード/格納パイプライン
    。 (16)前記キャッシュメモリーに接続されて、前記パ
    イプラインからの格納動作に対応するデータ項目を緩衝
    記憶する書き込みバッファーを更に備えており、前記書
    き込みバッファーは、レジスター全体の内容を格納する
    容量を持っていて、前記格納動作に対応する前記データ
    項目が前記パイプラインから緩衝記憶されている間に前
    記パイプラインにおいて前記格納動作後の動作を実行す
    ることが出来る様になっていることを特徴とする請求項
    1に記載のロード/格納パイプライン。 (17)前記書き込みバッファーは、異なるデータ形式
    に適応する様に格納動作中に構成可能な、動的に構成可
    能な書き込みバッファーであることを特徴とする請求項
    16に記載のロード/格納パイプライン。 (18)ベクトル処理装置においてキャッシュからレジ
    スターにデータをロードする方法であって、 a)前記キャッシュからデータブロックを要求し、 b)ロードされるべき前記のデータブロックについて前
    記キャッシュに、前記データブロックが前記キャッシュ
    内にあることを示すヒットが存在するか、及び前記デー
    タブロックが前記キャッシュ内に存在しないことを示す
    ミスがあるか検査し、 c)ヒットがある時には前記データブロックを前記キャ
    ッシュから前記レジスターへ送り、 d)ミスがある時には前記データブロックをメモリーか
    ら得て、前記の得られたデータブロックを前記キャッシ
    ュ及び前記レジスターに書き込むステップからなってお
    り、その後のデータ要素についてステップa、b及びc
    を反復し、前記データ要素を得るステップは、前記のそ
    の後のデータ要素についてステップa、b及びcが反復
    される時に実行されることを特徴とする方法。 (19)ステップd)は、コマンドアドレスを少なくと
    も1個の読み出しミスバッファーに送り、前記読み出し
    ミスバッファーに前記データブロックをメモリーから外
    部バスを介して受け入れ、前記データブロックを内部デ
    ータバスを介して前記キャッシュ及び前記レジスターへ
    送るステップを包含することを特徴とする請求項18に
    記載の方法。 (20)前記データブロックは複数の個別のデータ要素
    を包含し、前記読み出しミスバッファーは、前記データ
    ブロックの前記データ要素の全てがメモリーから受け入
    れられる時に限って前記データブロックを送ることを特
    徴とする請求項19に記載の方法。 (21)複数の読み出しミスバッファーが設けられると
    共に、更に、 e)前記読み出しミスバッファーの全てがコマンドアド
    レスを内蔵している時にはステップa、b及びcの反復
    を停止させ: f)前記読み出しミスバッファーの一つの中の得られた
    データブロックを前記キャッシュ及び前記レジスターに
    書き込み: g)前記読み出しミスバッファーの全てがコマンドアド
    レスを内蔵することとなるまではステップa、b、c及
    びdを反復し、その後は、前記データブロックの全てが
    前記レジスターにロードされるまでステップe、f及び
    gを反復するステップを有することを特徴とする請求項
    20に記載の方法。 (22)ステップdは、ミスがある時に前記データブロ
    ック及び追加のデータロックを得るステップを包含し、
    前記読み出しミスバッファーは前記データブロック及び
    前記追加のデータブロックを前記キャッシュ及び前記レ
    ジスターに送り、前記データブロック及び前記追加のデ
    ータブロックは前記キャッシュに充填され、前記データ
    ブロックのみが前記レジスターに書き込まれることを特
    徴とする請求項19に記載の方法。 (23)前記のデータのロードは、データブロックが前
    記メモリーに送られた先の格納動作の一部分と同時に行
    なわれることを特徴とする請求項18に記載の方法。 (24)格納動作中にミスがあった時に前記の格納動作
    を停止させるステップを更に備えたことを特徴とする請
    求項23に記載の方法。 (25)コンピューター処理装置においてデータ項目を
    レジスターにロードし、前記レジスターからのデータ項
    目を格納するパイプラインであって、 データを格納するキャッシュメモリーと、 前記キャッシュメモリーからのデータ項目を前記レジス
    ターにロードすると共に、前記レジスターからのデータ
    項目を前記キャッシュメモリーに格納する様になってい
    て、前記データ項目のロード及び前記キャッシュメモリ
    ーへのデータ項目の格納をパイプライン処理するロード
    装置と、 前記データ項目の一つがミスである時を判定し、前記デ
    ータ項目の一つがミスである時には前記パイプラインの
    動作とは独立に前記パイプラインから返送データ項目を
    得る判定装置であって、前記返送データ項目は前記のミ
    スしたデータ項目に対応する判定装置と、 前記返送データ項目を該キャッシュメモリーに充填する
    充填装置とから成ることを特徴とするパイプライン。 (26)前記のミスしたデータ項目の一つがロード命令
    に対応し、前記パイプライン内の前記データ項目の一つ
    が前記ロード命令の後の格納命令に対応する時に前記パ
    イプライン内の命令を打ち切るコントローラを更に包含
    することを特徴とする請求項25に記載のパイプライン
    。 (27)前記ロード命令に対応する前記のミスしたデー
    タ項目内の情報を前記格納命令に対応する前記データ項
    目内の情報と比較して、前記比較に基づいて前記コント
    ローラに前記パイプライン内の前記命令を打ち切らせる
    内容アドレス指定可能なメモリーを更に含むことを特徴
    とする請求項26に記載のパイプライン。 (28)データをレジスターにロードし、データを前記
    レジスターから格納するスカラー処理装置におけるロー
    ド/格納パイプラインであって、算術論理演算の結果を
    保持するレジスターファイルを備え:共に並列に該レジ
    スターファイルに接続されて該レジスターファイルから
    仮想アドレスを受け取る翻訳バッファー及びキャッシュ
    タグ参照を備え、前記翻訳バッファーは仮想アドレスを
    物理的アドレスに翻訳し、該キャッシュタグ参照は前記
    仮想アドレスの翻訳されないビットの参照を行ない:前
    記キャッシュタグ参照の出力と前記翻訳バッファーの出
    力とを比較して、前記比較に基づいてヒット信号又はミ
    ス信号を生成する比較器を備え:前記翻訳バッファーに
    接続されて、前記比較器に生成されたヒット信号がある
    時にデータを格納するデータキャッシュを備え:前記翻
    訳バッファーに接続され、前記比較器に生成されたミス
    信号がある時に前記パイプラインから情報を送って、前
    記データキャッシュに充填されるべきデータを要求する
    出力FIFOを備え:前記データキャッシュに接続され
    て、前記データキャッシュに充填されるべきデータを前
    記パイプラインから受け取る入力バッファーを備え:前
    記キャッシュタグ参照に格納されるべく該入力バッファ
    ーに受け取られるデータに対応するタグを送るメモリー
    参照タグを備えたことを特徴とするロード/格納パイプ
    ライン。 (29)キャッシュメモリーからデータをレジスターに
    ロードし、該レジスターからデータを該キャッシュメモ
    リーに格納するコンピュータープロセッサーにおけるパ
    イプラインであって、一連のデータ項目のうちの対応す
    る一つの項目に各々関連するアドレス情報項目をシリア
    ルに生成するアドレス生成器と、 該アドレス生成器からアドレス情報項目をシリアルに受
    け取る様に該アドレス生成器に接続されて、該アドレス
    情報項目の各々についてシリアルにキャッシュタグ参照
    及びタグ比較動作を行なうキャッシュタグ参照及び比較
    器装置と、該アドレス生成器からシリアルに該アドレス
    情報項目を受け取るための、該アドレス生成器及びレジ
    スターの各々への接続部を包含し、該アドレス情報項目
    に対応するデータ項目の各々について、該キャッシュメ
    モリーから該レジスターへのデータ項目の各々のロード
    と、該レジスターから該キャッシュメモリーへのデータ
    項目の各々の格納との一方を選択的に実行する様になっ
    ているデータキャッシュと、 該データキャッシュと該アドレス生成器との間の接続部
    は、該デーキャッシュによる該アドレス情報項目の各々
    の受信を、該キャッシュタグ参照及び比較器装置による
    該アドレス情報項目の各々の受信に対して少なくとも1
    サイクル時間だけ遅延させる遅延装置を包含することを
    特徴とするパイプライン。
JP1192427A 1988-07-25 1989-07-25 コンピューター処理装置用の積分キャッシュを有するパイプライン Pending JPH0290265A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US224483 1988-07-25
US07/224,483 US5148536A (en) 1988-07-25 1988-07-25 Pipeline having an integral cache which processes cache misses and loads data in parallel

Publications (1)

Publication Number Publication Date
JPH0290265A true JPH0290265A (ja) 1990-03-29

Family

ID=22840901

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1192427A Pending JPH0290265A (ja) 1988-07-25 1989-07-25 コンピューター処理装置用の積分キャッシュを有するパイプライン

Country Status (6)

Country Link
US (2) US5148536A (ja)
EP (1) EP0352633B1 (ja)
JP (1) JPH0290265A (ja)
KR (1) KR920004289B1 (ja)
AT (1) ATE193949T1 (ja)
DE (1) DE68929224T2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04155457A (ja) * 1990-10-19 1992-05-28 Fujitsu Ltd メモリアクセス制御回路
JPH11102435A (ja) * 1997-06-05 1999-04-13 Digital Equip Corp <Dec> ノンブロッキング・パイプライン・キャッシュ
JP2000293436A (ja) * 1999-03-22 2000-10-20 Sun Microsyst Inc パイプラインメモリシステムにおける複数のターゲットへの複数の未解決要求のサポート
JP2021162879A (ja) * 2020-03-30 2021-10-11 日本電気株式会社 ベクトルプロセッサ、演算方法及びプログラム

Families Citing this family (92)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5535359A (en) * 1988-12-02 1996-07-09 Mitsubishi Denki Kabushiki Kaisha Computer system with cache memory having address mask register
JPH0666056B2 (ja) * 1989-10-12 1994-08-24 甲府日本電気株式会社 情報処理システム
US5317718A (en) * 1990-03-27 1994-05-31 Digital Equipment Corporation Data processing system and method with prefetch buffers
JP2862948B2 (ja) * 1990-04-13 1999-03-03 三菱電機株式会社 半導体記憶装置
US5838946A (en) * 1990-04-14 1998-11-17 Sun Microsystems, Inc. Method and apparatus for accomplishing processor read of selected information through a cache memory
US5432918A (en) * 1990-06-29 1995-07-11 Digital Equipment Corporation Method and apparatus for ordering read and write operations using conflict bits in a write queue
US5404482A (en) * 1990-06-29 1995-04-04 Digital Equipment Corporation Processor and method for preventing access to a locked memory block by recording a lock in a content addressable memory with outstanding cache fills
US5724548A (en) * 1990-09-18 1998-03-03 Fujitsu Limited System including processor and cache memory and method of controlling the cache memory
JP2678527B2 (ja) * 1991-01-08 1997-11-17 三菱電機株式会社 キャッシュメモリ装置
US5265233A (en) * 1991-05-17 1993-11-23 Sun Microsystems, Inc. Method and apparatus for providing total and partial store ordering for a memory in multi-processor system
JP2625277B2 (ja) * 1991-05-20 1997-07-02 富士通株式会社 メモリアクセス装置
JPH079632B2 (ja) * 1991-06-18 1995-02-01 インターナショナル・ビジネス・マシーンズ・コーポレイション アドレス変換装置および方法
US5493687A (en) 1991-07-08 1996-02-20 Seiko Epson Corporation RISC microprocessor architecture implementing multiple typed register sets
US5539911A (en) 1991-07-08 1996-07-23 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution
US5386526A (en) * 1991-10-18 1995-01-31 Sun Microsystems, Inc. Cache memory controller and method for reducing CPU idle time by fetching data during a cache fill
US5353424A (en) * 1991-11-19 1994-10-04 Digital Equipment Corporation Fast tag compare and bank select in set associative cache
US5398330A (en) 1992-03-05 1995-03-14 Seiko Epson Corporation Register file backup queue
DE69311330T2 (de) 1992-03-31 1997-09-25 Seiko Epson Corp., Tokio/Tokyo Befehlsablauffolgeplanung von einem risc-superskalarprozessor
EP0638183B1 (en) * 1992-05-01 1997-03-05 Seiko Epson Corporation A system and method for retiring instructions in a superscalar microprocessor
US5398325A (en) * 1992-05-07 1995-03-14 Sun Microsystems, Inc. Methods and apparatus for improving cache consistency using a single copy of a cache tag memory in multiple processor computer systems
JP3644959B2 (ja) * 1992-09-29 2005-05-11 セイコーエプソン株式会社 マイクロプロセッサシステム
US6735685B1 (en) * 1992-09-29 2004-05-11 Seiko Epson Corporation System and method for handling load and/or store operations in a superscalar microprocessor
US5388226A (en) * 1992-10-05 1995-02-07 Motorola, Inc. Method and apparatus for accessing a register in a data processing system
US5572714A (en) * 1992-10-23 1996-11-05 Matsushita Electric Industrial Co., Ltd. Integrated circuit for pipeline data processing
US5628021A (en) 1992-12-31 1997-05-06 Seiko Epson Corporation System and method for assigning tags to control instruction processing in a superscalar processor
WO1994016384A1 (en) 1992-12-31 1994-07-21 Seiko Epson Corporation System and method for register renaming
JP3230898B2 (ja) * 1993-06-02 2001-11-19 シャープ株式会社 データ駆動型情報処理システム
US5553270A (en) * 1993-09-01 1996-09-03 Digital Equipment Corporation Apparatus for providing improved memory access in page mode access systems with pipelined cache access and main memory address replay
US6128721A (en) * 1993-11-17 2000-10-03 Sun Microsystems, Inc. Temporary pipeline register file for a superpipelined superscalar processor
US5996062A (en) * 1993-11-24 1999-11-30 Intergraph Corporation Method and apparatus for controlling an instruction pipeline in a data processing system
US5671444A (en) * 1994-02-28 1997-09-23 Intel Corporaiton Methods and apparatus for caching data in a non-blocking manner using a plurality of fill buffers
EP0676690B1 (en) * 1994-03-09 2003-05-14 Sun Microsystems, Inc. Delayed write of store instruction in processor device
US6021471A (en) * 1994-11-15 2000-02-01 Advanced Micro Devices, Inc. Multiple level cache control system with address and data pipelines
GB2307072B (en) 1994-06-10 1998-05-13 Advanced Risc Mach Ltd Interoperability with multiple instruction sets
US5787465A (en) * 1994-07-01 1998-07-28 Digital Equipment Corporation Destination indexed miss status holding registers
US5535360A (en) * 1994-08-31 1996-07-09 Vlsi Technology, Inc. Digital computer system having an improved direct-mapped cache controller (with flag modification) for a CPU with address pipelining and method therefor
US5701433A (en) * 1994-10-14 1997-12-23 Compaq Computer Corporation Computer system having a memory controller which performs readahead operations which can be aborted prior to completion
US5548728A (en) * 1994-11-04 1996-08-20 Canon Information Systems, Inc. System for reducing bus contention using counter of outstanding acknowledgement in sending processor and issuing of acknowledgement signal by receiving processor to indicate available space in shared memory
US5699538A (en) * 1994-12-09 1997-12-16 International Business Machines Corporation Efficient firm consistency support mechanisms in an out-of-order execution superscaler multiprocessor
US5890222A (en) * 1995-01-04 1999-03-30 International Business Machines Corporation Method and system for addressing registers in a data processing unit in an indirect addressing mode
US5887183A (en) * 1995-01-04 1999-03-23 International Business Machines Corporation Method and system in a data processing system for loading and storing vectors in a plurality of modes
US5680338A (en) * 1995-01-04 1997-10-21 International Business Machines Corporation Method and system for vector processing utilizing selected vector elements
US5832533A (en) * 1995-01-04 1998-11-03 International Business Machines Corporation Method and system for addressing registers in a data processing unit in an indexed addressing mode
JP3569811B2 (ja) * 1995-01-25 2004-09-29 株式会社ルネサステクノロジ パイプライン処理機能を有するデータ処理装置
US5687350A (en) * 1995-02-10 1997-11-11 International Business Machines Corporation Protocol and system for performing line-fill address during copy-back operation
JPH0934786A (ja) * 1995-07-14 1997-02-07 Fujitsu Ltd 命令供給装置
US5924125A (en) * 1995-08-01 1999-07-13 Arya; Siamak Method and apparatus for parallel access to consecutive TLB entries
US6076150A (en) * 1995-08-10 2000-06-13 Lsi Logic Corporation Cache controller with improved instruction and data forwarding during refill operation
US5767856A (en) * 1995-08-22 1998-06-16 Rendition, Inc. Pixel engine pipeline for a 3D graphics accelerator
US6101590A (en) 1995-10-10 2000-08-08 Micro Unity Systems Engineering, Inc. Virtual memory system with local and global virtual address translation
US5809530A (en) * 1995-11-13 1998-09-15 Motorola, Inc. Method and apparatus for processing multiple cache misses using reload folding and store merging
US5848287A (en) 1996-02-20 1998-12-08 Advanced Micro Devices, Inc. Superscalar microprocessor including a reorder buffer which detects dependencies between accesses to a pair of caches
US5761720A (en) * 1996-03-15 1998-06-02 Rendition, Inc. Pixel engine pipeline processor data caching mechanism
DE29608748U1 (de) 1996-05-14 1996-08-01 Storck, Markus, 61476 Kronberg Fahrradkurbel
US5652774A (en) * 1996-07-08 1997-07-29 International Business Machines Corporation Method and apparatus for decreasing the cycle times of a data processing system
US5802564A (en) * 1996-07-08 1998-09-01 International Business Machines Corp. Method and apparatus for increasing processor performance
US6209020B1 (en) * 1996-09-20 2001-03-27 Nortel Networks Limited Distributed pipeline memory architecture for a computer system with even and odd pids
US6088788A (en) * 1996-12-27 2000-07-11 International Business Machines Corporation Background completion of instruction and associated fetch request in a multithread processor
US7197625B1 (en) * 1997-10-09 2007-03-27 Mips Technologies, Inc. Alignment and ordering of vector elements for single instruction multiple data processing
US6697935B1 (en) 1997-10-23 2004-02-24 International Business Machines Corporation Method and apparatus for selecting thread switch events in a multithreaded processor
US6076157A (en) * 1997-10-23 2000-06-13 International Business Machines Corporation Method and apparatus to force a thread switch in a multithreaded processor
US6105051A (en) * 1997-10-23 2000-08-15 International Business Machines Corporation Apparatus and method to guarantee forward progress in execution of threads in a multithreaded processor
US6212544B1 (en) 1997-10-23 2001-04-03 International Business Machines Corporation Altering thread priorities in a multithreaded processor
US6567839B1 (en) 1997-10-23 2003-05-20 International Business Machines Corporation Thread switch control in a multithreaded processor system
US6061710A (en) * 1997-10-29 2000-05-09 International Business Machines Corporation Multithreaded processor incorporating a thread latch register for interrupt service new pending threads
US6256775B1 (en) 1997-12-11 2001-07-03 International Business Machines Corporation Facilities for detailed software performance analysis in a multithreaded processor
US6018759A (en) * 1997-12-22 2000-01-25 International Business Machines Corporation Thread switch tuning tool for optimal performance in a computer processor
US6226713B1 (en) 1998-01-21 2001-05-01 Sun Microsystems, Inc. Apparatus and method for queueing structures in a multi-level non-blocking cache subsystem
US6148372A (en) * 1998-01-21 2000-11-14 Sun Microsystems, Inc. Apparatus and method for detection and recovery from structural stalls in a multi-level non-blocking cache system
US6012134A (en) * 1998-04-09 2000-01-04 Institute For The Development Of Emerging Architectures, L.L.C. High-performance processor with streaming buffer that facilitates prefetching of instructions
US6438650B1 (en) * 1998-12-16 2002-08-20 Intel Corporation Method and apparatus for processing cache misses
US6437789B1 (en) 1999-02-19 2002-08-20 Evans & Sutherland Computer Corporation Multi-level cache controller
US20020108022A1 (en) * 1999-04-28 2002-08-08 Hong-Yi Hubert Chen System and method for allowing back to back write operations in a processing system utilizing a single port cache
US6651164B1 (en) * 1999-10-14 2003-11-18 Hewlett-Packard Development Company, L.P. System and method for detecting an erroneous data hazard between instructions of an instruction group and resulting from a compiler grouping error
US6327645B1 (en) * 1999-11-08 2001-12-04 Silicon Integrated Systems Corp. Cache memory system with memory request address queue, cache write address queue, and cache read address queue
US7062523B1 (en) * 2000-08-01 2006-06-13 Analog Devices, Inc. Method for efficiently computing a fast fourier transform
US20020080655A1 (en) * 2000-12-27 2002-06-27 Clark Lawrence T. Integrated circuit having synchronized pipelining and method therefor
US7310706B1 (en) 2001-06-01 2007-12-18 Mips Technologies, Inc. Random cache line refill
US7394288B1 (en) 2004-12-13 2008-07-01 Massachusetts Institute Of Technology Transferring data in a parallel processing environment
US7437537B2 (en) * 2005-02-17 2008-10-14 Qualcomm Incorporated Methods and apparatus for predicting unaligned memory access
US7447868B2 (en) * 2005-06-15 2008-11-04 International Business Machines Corporation Using vector processors to accelerate cache lookups
US20070067572A1 (en) * 2005-09-19 2007-03-22 Via Technologies, Inc. Buffering missed requests in processor caches
US20080282034A1 (en) * 2005-09-19 2008-11-13 Via Technologies, Inc. Memory Subsystem having a Multipurpose Cache for a Stream Graphics Multiprocessor
US20070180156A1 (en) * 2006-02-01 2007-08-02 International Business Machines Corporation Method for completing IO commands after an IO translation miss
US7882307B1 (en) 2006-04-14 2011-02-01 Tilera Corporation Managing cache memory in a parallel processing environment
US7853755B1 (en) 2006-09-29 2010-12-14 Tilera Corporation Caching in multicore and multiprocessor architectures
US7891818B2 (en) 2006-12-12 2011-02-22 Evans & Sutherland Computer Corporation System and method for aligning RGB light in a single modulator projector
US8358317B2 (en) 2008-05-23 2013-01-22 Evans & Sutherland Computer Corporation System and method for displaying a planar image on a curved surface
US8702248B1 (en) 2008-06-11 2014-04-22 Evans & Sutherland Computer Corporation Projection method for reducing interpixel gaps on a viewing surface
US8077378B1 (en) 2008-11-12 2011-12-13 Evans & Sutherland Computer Corporation Calibration system and method for light modulation device
US9641826B1 (en) 2011-10-06 2017-05-02 Evans & Sutherland Computer Corporation System and method for displaying distant 3-D stereo on a dome surface
KR102238650B1 (ko) * 2014-04-30 2021-04-09 삼성전자주식회사 저장 장치, 상기 저장 장치를 포함하는 컴퓨팅 시스템 및 상기 저장 장치의 동작 방법

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4092713A (en) * 1977-06-13 1978-05-30 Sperry Rand Corporation Post-write address word correction in cache memory system
US4354232A (en) * 1977-12-16 1982-10-12 Honeywell Information Systems Inc. Cache memory command buffer circuit
US4349871A (en) * 1980-01-28 1982-09-14 Digital Equipment Corporation Duplicate tag store for cached multiprocessor system
US4392200A (en) * 1980-01-28 1983-07-05 Digital Equipment Corporation Cached multiprocessor system with pipeline timing
US4345309A (en) * 1980-01-28 1982-08-17 Digital Equipment Corporation Relating to cached multiprocessor system with pipeline timing
US4370710A (en) * 1980-08-26 1983-01-25 Control Data Corporation Cache memory organization utilizing miss information holding registers to prevent lockup from cache misses
JPS58133696A (ja) * 1982-02-03 1983-08-09 Hitachi Ltd 記憶制御方式
JPS58149541A (ja) * 1982-03-01 1983-09-05 Hitachi Ltd デ−タ処理装置
US4494190A (en) * 1982-05-12 1985-01-15 Honeywell Information Systems Inc. FIFO buffer to cache memory
US4594682A (en) * 1982-12-22 1986-06-10 Ibm Corporation Vector processing
US4594655A (en) * 1983-03-14 1986-06-10 International Business Machines Corporation (k)-Instructions-at-a-time pipelined processor for parallel execution of inherently sequential instructions
WO1985000453A1 (en) * 1983-07-11 1985-01-31 Prime Computer, Inc. Data processing system
US4858111A (en) * 1983-07-29 1989-08-15 Hewlett-Packard Company Write-back cache system using concurrent address transfers to setup requested address in main memory before dirty miss signal from cache
JPS60134974A (ja) * 1983-12-23 1985-07-18 Hitachi Ltd ベクトル処理装置
JPH0644245B2 (ja) * 1983-12-29 1994-06-08 富士通株式会社 ストアバッファ装置
US4701844A (en) * 1984-03-30 1987-10-20 Motorola Computer Systems, Inc. Dual cache for independent prefetch and execution units
US4620275A (en) * 1984-06-20 1986-10-28 Wallach Steven J Computer system
US4646233A (en) * 1984-06-20 1987-02-24 Weatherford James R Physical cache unit for computer
US4695943A (en) * 1984-09-27 1987-09-22 Honeywell Information Systems Inc. Multiprocessor shared pipeline cache memory with split cycle and concurrent utilization
US4884197A (en) * 1985-02-22 1989-11-28 Intergraph Corporation Method and apparatus for addressing a cache memory
EP0192578A3 (en) * 1985-02-22 1990-04-25 Intergraph Corporation A multiple bus system including a microprocessor having separate instruction and data interfaces and caches
US4860192A (en) * 1985-02-22 1989-08-22 Intergraph Corporation Quadword boundary cache system
US4722049A (en) * 1985-10-11 1988-01-26 Unisys Corporation Apparatus for out-of-order program execution
US4855904A (en) * 1986-08-27 1989-08-08 Amdahl Corporation Cache storage queue
US4933837A (en) * 1986-12-01 1990-06-12 Advanced Micro Devices, Inc. Methods and apparatus for optimizing instruction processing in computer systems employing a combination of instruction cache and high speed consecutive transfer memories
US4811215A (en) * 1986-12-12 1989-03-07 Intergraph Corporation Instruction execution accelerator for a pipelined digital machine with virtual memory
US4858113A (en) * 1987-04-10 1989-08-15 The United States Of America As Represented By The Director Of The National Security Agency Reconfigurable pipelined processor
US4920477A (en) * 1987-04-20 1990-04-24 Multiflow Computer, Inc. Virtual address table look aside buffer miss recovery method and apparatus
EP0288649B1 (en) * 1987-04-22 1992-10-21 International Business Machines Corporation Memory control subsystem
US4926317A (en) * 1987-07-24 1990-05-15 Convex Computer Corporation Hierarchical memory system with logical cache, physical cache, and address translation unit for generating a sequence of physical addresses

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04155457A (ja) * 1990-10-19 1992-05-28 Fujitsu Ltd メモリアクセス制御回路
JPH11102435A (ja) * 1997-06-05 1999-04-13 Digital Equip Corp <Dec> ノンブロッキング・パイプライン・キャッシュ
JP2000293436A (ja) * 1999-03-22 2000-10-20 Sun Microsyst Inc パイプラインメモリシステムにおける複数のターゲットへの複数の未解決要求のサポート
JP2021162879A (ja) * 2020-03-30 2021-10-11 日本電気株式会社 ベクトルプロセッサ、演算方法及びプログラム

Also Published As

Publication number Publication date
DE68929224T2 (de) 2001-02-22
EP0352633A3 (en) 1991-04-17
EP0352633B1 (en) 2000-06-14
ATE193949T1 (de) 2000-06-15
KR920004289B1 (ko) 1992-06-01
DE68929224D1 (de) 2000-07-20
KR900002180A (ko) 1990-02-28
US5148536A (en) 1992-09-15
US5430888A (en) 1995-07-04
EP0352633A2 (en) 1990-01-31

Similar Documents

Publication Publication Date Title
JPH0290265A (ja) コンピューター処理装置用の積分キャッシュを有するパイプライン
US6275902B1 (en) Data processor with variable types of cache memories and a controller for selecting a cache memory to be access
CN116841920B (zh) 用于执行存储器压缩的系统和方法
US6336168B1 (en) System and method for merging multiple outstanding load miss instructions
US6317810B1 (en) Microprocessor having a prefetch cache
US5603005A (en) Cache coherency scheme for XBAR storage structure with delayed invalidates until associated write request is executed
US5359715A (en) Architectures for computer systems having multiple processors, multiple system buses and multiple I/O buses interfaced via multiple ported interfaces
US5023776A (en) Store queue for a tightly coupled multiple processor configuration with two-level cache buffer storage
JP3218317B2 (ja) 集積キャッシュユニットおよびその構成方法
EP0097790B1 (en) Apparatus for controlling storage access in a multilevel storage system
US5283882A (en) Data caching and address translation system with rapid turnover cycle
JP3799050B2 (ja) 階層化された記憶項目とキャッシュタグを単一キャッシュアレイ構造に格納するキャッシュメモリ装置及び方法
US5845324A (en) Dual bus network cache controller system having rapid invalidation cycles and reduced latency for cache access
JPS609299B2 (ja) キヤツシユ・シノニム制御方式
EP0464994A2 (en) Cache memory exchange protocol
KR100618248B1 (ko) 실행 엔진으로부터 다중 데이터 소스까지 다중 로드 및 기억 요구를 지원하는 장치 및 방법
US6209082B1 (en) Apparatus and method for optimizing execution of push all/pop all instructions
US5603008A (en) Computer system having cache memories with independently validated keys in the TLB
JPH0695972A (ja) ディジタルコンピュータシステム
JPH0371355A (ja) キヤツシユ検索装置および検索方法
US5012410A (en) Data processor with instruction cache memory
EP0442690A2 (en) Data cache store buffer for high performance computer
US4737908A (en) Buffer memory control system
EP0224691A2 (en) A multiple read/write access memory system
GB2037466A (en) Computer with cache memory