JPS63150731A - コンピュータシステムおよびその実行方法 - Google Patents

コンピュータシステムおよびその実行方法

Info

Publication number
JPS63150731A
JPS63150731A JP62304395A JP30439587A JPS63150731A JP S63150731 A JPS63150731 A JP S63150731A JP 62304395 A JP62304395 A JP 62304395A JP 30439587 A JP30439587 A JP 30439587A JP S63150731 A JPS63150731 A JP S63150731A
Authority
JP
Japan
Prior art keywords
instruction
memory
instructions
processor
cache
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
JP62304395A
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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices 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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JPS63150731A publication Critical patent/JPS63150731A/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/3808Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache

Landscapes

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

Abstract

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

Description

【発明の詳細な説明】 発明の背景 発明の分野 この発明は一般に、高速で命令を処理するコンピュータ
システムに関するものであり、かつより特定的には、コ
ンピュータシステムの命令処理能力を改良するように、
別々の命令およびデータ経路を有する、命令キャッシュ
メモリと、連続する転送メモリとの組合わせを利用する
コンピュータシステムに関するものである。
関連技術の説明 先行技術のコンピュータシステムの命令処理能力は一般
に、伝統的に利用可能なメモリのより高い速度と比較し
て、その中央処理装置(cP U)の比較的遅い速度に
より制限された。今日、以下で命令プロセッサとも呼ば
れるCPUは典型的には、たとえそのコンパニオンメモ
リシステムより速くないとしても、それと同じ速さであ
る。したがって、メモリシステムのサイクル時間は、最
適の資源利用に関する制限要因となる。
高速処理応用を支持するコンピュータアーキテクチャを
提供する試みにおいて、一般にキャッシュメモリと呼ば
れる高価で非常に高速のメモリの比較的わずかな部分を
、より遅いランダムアクセス時間を有する、より大きく
、より低い価格のメモリと組合わせて採用する周知のコ
ンピュータシステムが開発された。命令およびデータの
両方を含んでもよいキャッシュは、“結合キャッシュ”
と呼ばれる。それらはかわりに、それぞれ“命令キャッ
シュ”および“データキャッシュ”と呼ばれる命令また
はデータのみを含むように設計されてもよい。命令キャ
ッシュの主たる目的は、他の態様で、別々のメモリサイ
クル上でより遅い主メモリをアクセスすることにより有
することが可能であるよりも速く、命令をプロセッサに
与えるための媒介物を提供することである。キャッシュ
メモリシステムは、たとえば30n sの範囲で一般に
動作することが知られていて、また上記のより遅い主メ
モリは典型的には、150nsのオーダ、すなわちキャ
ッシュメモリのほぼ5倍遅いサイクル時間を有する。し
かしながら、キャッシュメモリは、上記の価格の要因の
ために、メモリ全体のわずかに126の何分の1かほど
含むだけであろう。
伝統的なコンピュータシステムは、より遅い主メモリか
ら取出された最も最近用いられた命令の複写を維持する
ようにキャッシュメモリを用いた。
命令の取出しが必要なとき、プロセッサはまず命令のた
めのキャッシュをのぞ< (1ook in)。これは
、保管された命令と並んでキャッシュ内にストアされた
タグと命令アドレスを整合することにより達成される。
もし比較がうまくいくと、命令がキャッシュから取出さ
れ、かつプロセッサは継続し得る。これは一般に、“キ
ャツシュヒツト”と呼ばれる。もしキャッシュ内に所要
の命令の複写がないならば(すなわちタグが、所要のア
ドレスを整合されないならば)、−“キャッシュミス”
の信号が送られ、かつ命令が主メモリから取出される。
プロセッサはそのとき、命令が戻されるのを待たなけれ
ばならない。命令が戻されると、キャッシュは、今後の
利用のために、命令が出てきたアドレスを指示するため
のタグとともにそれをストアする。
キャッシュが制限された大きさであるので、キャッシュ
ミスが生じ、かつ命令がメモリから取出されかつキャッ
シュ内にストアされるとき、既にキャッシュ内にある他
のいくつかの命令が重ね書きされる。どのキャッシュ場
所が重ね書きされるべきであるかという決定は一般に、
置換アルゴリズムを用いてなされる。
このようなアルゴリズムの選択は、明らかにシステ性能
に影響を及ぼす。しかしながら、同じ性能の兼ね合いが
、伝統的キャッシュと、(以下で開示された)この発明
の教示に従って用いられるキャッシュの両方に適用され
、かつこれらの性能特性がこの発明の本来の教示に適切
ではないので、それらはここではさらに詳細には述べら
れない。さらに、置換アルゴリズムは当業者に周知であ
り、キャッシュメモリ内にストアされた情報の最も古い
ブロックを重ね書きする、キャッシュメモリ内にストア
された統計的に最も用いられていないデータを重ね書き
する等の技術を含むので、これらのアルゴリズムは、開
示されたメモリシステムの管理に影響を与えるという点
を除いてここではさらに詳細には述べられない。
最も現代的な主フレームコンピュータは、より遅い主メ
モリと組合わされた命令キャッシュまたは結合キャッシ
ュを採用する。例は、ディジタル・イクイップメント・
コーポレーション(D E C)VAXSDECPDP
−11およびデータ・ジェネラルMV8000を含む。
シーケンシャルな転送特性を有する、より遅いメモリと
命令キャッシュを組合わせる他のコンピュータシステム
が知られている。このようなシステムの例は、フェアチ
ャイルドCLIPP、ERマイクロコンピュータおよび
ブロック(Zllog ) Z80.000である。
別々の命令およびデータ経路を有するコンピュータシス
テムにおいて、システム性能を改良するように、シーケ
ンシャルな転送特性を有するメモリを利用することが可
能であることが認識されている。このようなメモリは、
別々のメモリサイクルのアクセスに所要の時間よりもず
っと速くシーケンシャルな転送を行なうことが可能であ
る。シーケンシャルな転送は、メモリシステムに送られ
る通常のアドレスにより開始され、かつ読出しが開始さ
れる。この読出しのためのアクセス時間は、特徴的な非
シーケンシャルアクセス時間である。
再度、標準半導体ダイナミックメモリにおいて、このア
クセス時間は150n sのオーダである。
連続する命令の取出しはそのとき、分岐命令(ジャンプ
、条件付ジャンプ、呼出し、復帰、または他のシーケン
ス変更命令)が行なわれるか、または割込みが生じるま
で行なわれ得る。シーケンシャルな命令の新たなシーケ
ンスがそれから行なわれる。
上記の別々の命令およびデータ経路は、命令のためのリ
クエストの衝突、および、さもなければ命令の転送のシ
ーケンシャルな性質を破壊するデータ読出し/書込み転
送を避けるのに必要である。
最初の命令が取出されると、メモリシステムはシーケン
シャルな命令を取出すように命令され得る。標準半導体
ダイナミックメモリシステムにおけるこれらの取出しに
かかるアクセス時間は、50nsのオーダである。この
ような速度は、キャッシュメモリ速度に近似する。
キャッシュメモリおよびシーケンシャル転送メモリをと
もに用いる先行技術のシステムは、キャッシュに非シー
ケンシャル転送メモリを加えたものに関して改良された
性能を経験するが、未だに、キャッシュ資源をあまり可
能な限り効果的には利用していない。これは、上記のよ
うに、連続する転送メモリシステムが、アクセスのモー
ドに依存して異なるアクセス時間、たとえば最初の取出
しのための150nsに対するシーケンシャルな取出し
のための50nsを有するからである。それゆえに、シ
ーケンシャル転送メモリが“速度に依存する”とき、キ
ャッシュメモリ内にすべての新たな基準を保管しかつキ
ャツシュヒツトのために連続してチェックすることによ
り資源がかなり無駄になる。
命令不連続に続き、たとえば分岐命令に続きシーケンシ
ャル転送メモリをアクセスするのに所要の長時間(たと
えば150ns)に関連のプロセッサ待ち時間をなくす
るように、シーケンシャル転送メモリに関連してキャッ
シュメモリ資源を用いることが可能であることが望まし
い。シーケンシャルなメモリが一旦“速度に依存する”
に復帰する、すなわち50nsの範囲で動作すると、キ
ャッシュ資源はそのとき、後続の分岐命令にもかかわら
ず潜在的に処理速度を増すように概念的に予備に取って
おかれ得る。
さらに、上記の要求に従って、RISC(縮小命令セッ
トコンピュータ)アーキテクチャが、シーケンシャル転
送メモリに関連してキャッシュ資源の利用からの利点に
特に十分に適するであろうことが認識されている。これ
は、(1)RISCインラインコードが、他のコンピュ
ータシステム上で実行するコードと比較して比較的より
少ない分岐命令を有することが統計上示されていて、か
つ(2)RISCアーキテクチャが、(必ずしもそうで
はないカリ固定長命令コードに役立ち、それが、最適の
キャッシュメモリ命令ブロックの大きさに容易に変えら
れ得て、かつシーケンシャル転送メモリがその比較的長
い最初のアクセスを行なっている間、命令プロセッサに
与えるように順に用いられ得るからである。
動作の成るモードで(速度に関して)キャッシュ資源と
同じく効果的であるシーケンシャル転送メモリチップお
よび他のシーケンシャル転送メモリシステムの現在の商
業的人手可能性は、上記に沿ってキャッシュ資源の利用
を最大限に活用するという要求をさらに示唆する。
発明の概要 シーケンシャル転送主メモリと組合わされた命令キャッ
シュメモリを用いて命令プロセッサの性能を最大限に活
用するための方法および装置が、述べられている。この
発明によれば、新規なメモリシステムは、予め選択され
た命令をキャッシュメモリ内にストアする。命令は、分
岐動作のすぐ後に続くものである。これらの命令をスト
アする目的は、後続の分岐に続く主メモリから同じ命令
ストリングに至る同じシーケンスの取出しに関する遅延
を最小にし、かつもし可能であるならばなくすることで
ある。キャッシュされる(キャッシュメモリ内に置かれ
る)必要がある命令の数は、シーケンシャル主メモリか
らの最初のかつ次の取出しにかかるアクセス時間、キャ
ッシュメモリの速度、および命令実行時間の関数である
必要ではないが、この発明の好ましい実施例は固定長命
令を有するRISCアーキテクチャを企図する。有用で
あるために、この発明は、連続する分岐命令間のシーケ
ンシャルな命令の平均的長さが、キャッシュされる必要
がある命令の数を超えることを必要とする。もしこの標
準に合わないならば、完全な最初のシーケンシャル転送
メモリサイクルが完了するのを待つ、他の態様で受ける
遅延に関する平均的利得がない。
この発明の主たる目的は、結合キャッシュ/シーケンシ
ャル転送メモリシステムにおける命令キャッシュ資源を
最大限に利用することである。
この発明のさらなる目的は、特に分岐命令の処理に関す
るとき、前述のシーケンシャル転送メモリの最初のアク
セスに関連の命令処理の遅延を減じ、かつ可能であると
きは必ずなくすることである。
この発明のさらに他の目的は、結合キャッシュ/シーケ
ンシャル転送メモリシステムを採用する固定長命令RI
SCアーキテクチャにおけるメモリ資源を最大限に利用
する方法および装置を提供することである。
この発明の他の目的は、予め選択された標準に合う予め
選択された組の命令のみをキャッシュメモリ内に置くコ
ンピュータシステムを提供することである。
この発明は、潜在的コード不連続間のインライン命令の
平均数が増加するにつれて、そのキャッシュメモリをよ
り効率良く利用するコンピュータシステムを特徴とする
この発明はまた、RISC環境における固定長命令処理
を支持するのに理想的に適する方法および装置を特徴と
する。これらの同じ方法および装置は、非固定長および
/または非RISCアーキテクチャ関連の命令処理を支
持するように容易に適合される。
さらに、この発明は、キャッシュ資源の選択的利用のた
めのここでの教示に関連して、配置および置換アルゴリ
ズムのような多数の周知のキャッシュ関連のアルゴリズ
ムを利用する自由を特徴とする。この開示の主たる焦点
は、命令の選択的キャッシングであり、情報がいかにし
てキャッシュメモリ内に配置されるか、またはそれがい
かにして用いられるかもしくはそこから除去されるかに
関するものではないということが当業者に認められるで
あろう。
この発明のこれらのならびに他の目的および特徴は、以
下の詳細な説明および添付の図面を考慮して当業者に明
らかになり、図面を通じて同じ参照符号は同じ特徴を表
わす。
詳細な説明 第1A図は、以下で“分岐ターゲットキャッシュ”とも
呼ばれる命令キャッシュメモリ101を示し、それはこ
の発明の好ましい実施例により128個の32ビツト命
令をストアし得る。好ましいキャッシュはまた、キャッ
シュブロックにストアされた最初の命令が主メモリ内の
どこから出てきたかをプロセッサに知らせるアドレス情
報をストアすることが可能である。さらに、各命令に関
する有効性の情報は、キャッシュメモリにストアされる
。32ビツトの命令の利用、固定長命令の仮定、および
上記の情報をストアすることが可能であるべきキャッシ
ュの大きさの選択は、例示のためだけのものである。た
とえば、可変長命令が、開示された方法および装置とと
もにいかにして用いられ得るかが以下で論証される。
さらに、例示のために、かつこの発明の好ましい実施例
に従って、第1A図に示されたキャッシュは32個のブ
ロック、105−1.105−2、・・・、105−3
2に区分けして示され、そこでは各ブロックが4個の命
令を保持するように設計されている。32個のブロック
の4倍の命令は各々、例示の128命令サイズキヤツシ
ユを生じる。各ブロック内の最初の命令がそこから取出
されたアドレスもまた、上記の有効性の情報とともに、
各ブロック内にストアされる。情報ブロック105−2
を作り上げるキャッシュメモリ内の4個の“ワード°は
、ワード105−2Aないし105−2Dとして第1A
図に示される。
第1A図に示される分岐ターゲットキャッシュのブロッ
ク105−2は、第1B図に、より詳細に示される。
例示の目的のために、第1B図は、32ビットの命令を
保持する形式のキャッシュブロック内の各ワードのビッ
ト0ないし31を示す。これらは、第1B図においてl
N5TRIないしlN5TR4で示される。ブロックの
最初のワードのビット32ないしビットXは、上記のア
ドレスおよび有効性ビット情報をストアするのに適する
。コンピュータシステム性能を最大限に活用するのにい
かにして分岐ターゲットキャッシュが用いられるかに関
する特定の例は、第2図および第3図を参照して以下で
述べられる。
ここに開示された新規なメモリシステムは、新規な方法
で用いられるキャッシュメモリとシーケンシャル転送メ
モリ資源との組合わせを含むものとして既に述べられた
。完全にするために、適当なシーケンシャル転送メモリ
をいかにして実現するかに関する説明が、以下に直ちに
呈示されている。
適当なシーケンシャル転送メモリは、インターリーブメ
モリ、ニブルモードメモリ、ページモードメモリおよび
ビデオモードメモリを含む。
インターリーブメモリシステムは、メモリがいくつかの
バンクに分割されるアーキテクチャである。メモリのこ
れらのバンクは、多相クロックまたは遅延ラインなどの
制御の下で循環される。連続するメモリ取出しは、り6
ツク論理の制御の下で、異なるバンクから生じる。もし
メモリバンクのサイクル時間がたとえば200n sで
あるならば、そのとき、もし4個のバンクが存在するな
らば、最初の取出しにかかるアクセス時間は200ns
であり、かつすべての連続する取出しに50nsかかる
ニブルモードメモリは、ダイナミックランダムアクセス
メモリ装置(DRAM)の特定の形式である。4個まで
の連続する読出しは、唯一のアドレスを発する装置から
行なわれ得る。アクセス時間は最初の読出しに対して1
50nsのオーダであり、かつ連続する読出しに対して
30n sである。
ページモードメモリは、(DRAM)の他の特定の形式
である。メモリのこの形式は、2個の別個のアドレス転
送位相を有する。第1の位相の間、行アドレスはDRA
Mチップに伝送され、かつ第2の位相の間、列アドレス
はDRAMチップに伝送される。両方の位相が行なわれ
るときのアクセス時間は、150nsのオーダである。
これらの装置は単相のものでアクセスされ、多相2アド
レス伝送が後続してもよい。この場合、最初のデータに
かかるアクセス時間もまた1 50n sであるが、ア
ドレスの第2の位相のみを有する(がっ前の第1の位相
を用いる)連続する読出しに対して、アクセス時間は5
0nsのオーダである。
最終的に、ビデオモードメモリは’VDRAM”と呼ば
れるダイナミックランダムアクセスメモリ装置の特定の
形式である。VDRAMは元来、特にビデオディスプレ
イ応用のために設計されていた。連続する転送をリクエ
ストし得るプロセッサでは、これらの装置は主メモリの
ために利用され得る。メモリのこの形式は、主メモリア
レイからシフトレジスタ構造(または同等のRA Fv
lにカウンタを加えたもの)にデータの完全な行を複写
し、かつそれから、指令を受けると、連続するデータを
装置からシフトし得る。最初のデータにかかるアクセス
時間は150nsのオーダであり、かつ連続する読出し
にかかるアクセス時間は40n sのオーダである。
これらのメモリアーキテクチャのすべては、連続する転
送に対する、より速いアクセス時間で連続する転送を支
持する。この能力は、中央プロセッサの外部のプログラ
ムカウンタレジスタ(PCレジスタ)を有することと機
能的に類似である。
プロセッサは、割込みおよびサブルーチン呼出しの支持
のためにPCのそれ自体の複写を今まで通り維持しなけ
ればならない。
新規なコンピュータシステムのプロセッサは、別々の命
令およびデータ経路を有するものと仮定される。その結
果、命令を取出すたびにPCレジスタをメモリに転送す
る必要がないことによりかなりの時間が節約され得る。
メモリ転送を行なうための実時間はまた、バッファおよ
び大規模メモリアレイのためのアドレスデコード論理を
介する時間を含む。これは、連続する転送よりも最初の
転送にかかるアクセス時間に影響を及ぼす。典型的な値
は、この開示における残りの例示のために、シーケンシ
ャル転送メモリからの最初の転送に対して約200n 
sであり、かつ連続する転送に対して50nsであるよ
うに以下で仮定される。
もしプロセッサが50n sごとに新たな命令を実行し
得るならば、そのとき上記のメモリシステムの形式は、
命令のシーケンシャルなメモリ取出しのためのプロセッ
サに十分に適する(すなわち十分に整合する)。これら
の命令取出しのために、上記のような伝統的なキャッシ
ュメモリはシステム性能を改良しないだろう。
また、この開示における残りの例示の例のために、分岐
ターゲットキャッシュが50nsの命令転送速度を有す
る、すなわちそのコンパニオンシーケンシャル転送メモ
リの最初のアクセス速度の4倍の速さであることが仮定
される。
第1A図および第1B図に示される分岐ターゲットキャ
ッシュがいかにして最大限に用いられ得るかに関する説
明をさらに進める前に、いくつかのさらなる仮定がなさ
れかつ説明される必要がある。
上記のように、新規なコンピュータシステムの命令およ
びデータ経路は分かれている。これは、潜在的競合およ
び重ね書きの問題を避ける。さらに、上記のように、こ
れは、システムが命令の各取出しのためにPCレジスタ
をメモリに転送する必要がないという効率性を実現する
のを可能にする。
メモリシステムが、別々の転送よりも速く、かつキャッ
シュメモリ速度に近似する速度でシーケンシャルな転送
を行なうことが可能であることもまた仮定される。もし
そうでなければ、ここに開示された技術を用いる際にい
かなる利点も存在しなくなる。
さらに、プロセッサは、それがシーケンシャルなブロッ
クの最初の取出しか、またはシーケンシャルな取出しに
関する追従のいずれかをリクエストしていることを示し
得ることが仮定される。これは、または同等の信号は、
キャツシュヒツトに対するサーチが適切な場合、および
いつシーケンシャルメモリからの長い取出しを開始する
かを決定するのに必要である。
さらに、命令プロセッサは、メモリシステムが命令を与
え得る速度でそれらを利用し得ることが仮定される。も
しそうでなければ、メモリシステムアクセス時間を最小
にしようとすることが無意味になる。
最終的に、自己変更プログラムは新規なシステム上で実
行され得ない。明らかに、命令を変化させかつ/または
分岐点に従うためのその潜在能力を有するこのようなプ
ログラムは、キャッシュメモリ内にストアされた命令が
、さもなければ主メモリから取出されたであろう命令に
対応しないという可能性を、受入れられないレベルまで
高める。
分岐ターゲットキャッシュがいかにして、シーケンシャ
ル転送メリと組合わされて最大限に用いられ得るかにつ
いての説明を続けると、再度第1B図が参照されるべき
である。
仮定されたように、もし主メモリからの最初の取出しに
200nsかかり、シーケンシャルな取出しに50ns
かかり、かつプロセッサがシーケンシャルな取出し速度
に整合するならば、そのときシステムは、第1B図に例
示されるように形作られる、すなわちキャッシュは、キ
ャツシュヒツト/ミス比率に関するシステム価格および
性能目標を達成するのに望ましいだけのブロックを用い
て、各々4個のワードのブロックに編成される。
もし、たとえばキャッシュ資源が、256個のワードに
対する第1A図のキャッシュの128個のワードである
ならば、情報の64個のブロックがストアされ得て、以
下同様である。
命令プロセッサが分岐命令(ジャンプ、条件付ジャンプ
、呼出し、復帰など)に遭遇すると、次の命令アドレス
は、分岐に続く命令がキャッシュ内にあるかどうかを見
るためにキャッシュ内の適当なタグと比較される。もし
キャッシュ内にあるならば、そのとき命令に次の3個の
命令を加えたものがキャッシュブロックから与えられる
。これが起こっている間、プロセッサは、処理されてい
るものの前の4個の命令である命令のために、メモリシ
ステムにアドレスを発する。プロセッサがキャッシュブ
ロックからの命令を実行している間、主メモリは長いア
クセス時間の最初の取出しを行なっている。プロセッサ
がキャッシュブロック内のすべての命令を使い果たすま
でには、メモリシステムは命令がシーケンシャルモード
(速いアクセスモード)で取出される用意ができている
もし分岐に続く命令がキャッシュ内にないならば、その
ときプロセッサは所要の命令のアドレスを発する。キャ
ッシュおよびプロセッサの両方は、最初の取出しがメモ
リシステムから復帰するのを待つ。命令が到着し始める
と、プロセッサはそれらを実行し始め、かつキャッシュ
が上記のブロック内に、到着するべき最初の4個の命令
、すなわち最初の取出しに次の3個の連続する取出しを
加えたものをストアする。また、キャッシュは、各命令
が到着すると、最初に取出された命令に関連のアドレス
を、有効性の情報とともにストアする。
さて第2図および第3図を参照すると、特定の例が述べ
られる。第2図はこの発明の主たる事柄を例示するよう
に設計されたコードシーケンスを示す。第3図は、第2
図のコードシーケンスが、この発明の目的を実現するた
めに第1B図に示されたメモリに関連していかに利用さ
れるかを示す。
呈示されようとしている例示の例の目的のために、キャ
ッシュメモリが最初は空である、すなわちすべてのビッ
トがOであると仮定しよう。第2図に示されたフードシ
ーケンス(プログラム)が、100ないし110を含め
た場所の主シーケンシャル転送形式のメモリにストアさ
れることもまた仮定しよう。場所100は“5TART
”の符号が付けられ、場所102は“LOOP”の符号
が付けられ、かつ命令は、アドレス108に置かれた分
岐命令“DJNZ  LOOP″とともに、演算および
論理命令を含むことがわかる。DJNZLOOP命令に
より、カウンタが減分され、もしカウンタが0でないな
らばその後に命令102へのジャンプが続く。もしカウ
ンタが減分に従ってOになるならば、インラインコード
シーケンスが続く。
まず初めに、命令プロセッサが“開始”の命令、すなわ
ち主メモリアドレス100における命令を要求すると仮
定しよう。200n sの後、上記のサイクル時間の仮
定を用いて、アドレス100の命令がプロセッサに到着
する。プロセッサはそれから、この命令を実行する(A
DD)。
この点で、この発明の教示によれば、キャッシュメモリ
がADD命令でロードされないことが注目されるべきで
ある。以下で認められるように、コード不連続に続く命
令のみがキャッシュメモリ内にストアされ、それによっ
て資源を保護する。
この点で、長い200nsの取出しを行なったばかりの
シーケンシャル転送メモリが今では速度に依存している
ことがさらに注目されるべきである。それゆえに、50
nsの後、アドレス101からのLOAD  C0UN
TER命令がプロセッサに到着する。
命令101に続くインライン命令のシーケンス、すなわ
ち命令102ないしアドレス108における分岐命令は
ループの本体を形成し、それは、DJNZ命令の実行を
終えたカウンタが0でない限り、実行されかつ再実行さ
れる。
コードシーケンスを介する最初の通過では、命令102
ないし108は、主メモリからシーケンシャルに(50
nsの速度で)命令プロセッサに与えられる。場所10
8においてDJNZが実行されると(非ゼロカウンタを
仮定すると)、プロセッサは次に命令102を処理しよ
うする、すなわちループ内の第2の通過を開始しようと
する。
命令109はシーケンシャルメモリから到着するが、プ
ロセッサにより捨てられる。
この発明によれば、プロセッサはそのとき、分岐アドレ
スにおける命令に対応するアドレスタグのためのキャッ
シュメモリをサーチするように設定される。この例の場
合、プロセッサはLOOPに関連のアドレス、すなわち
アドレス102に対するキャッシュをのぞく。
当業者は、プロセッサが、たとえば周知のマイクロコー
ド技術、ハードウェアプログラミング、連想記憶装置、
直接マツプ技術などを用いてこのようなサーチを行なう
ようにそれ自体プログラミングされ得ることを容易に認
識するであろう。このように、上記のサーチに従事する
ようにプロセッサを設定する機械的な部分は、この発明
自体の一部を構成しない。
この例におけるこの時点では、プロセッサは、キャッシ
ュが0を含むのみであるので、命令102に関連のタグ
を見つけ損ねる。
プロセッサはそれから、主メモリにアドレス102を発
し、かつADD命令がメモリシステムによりプロセッサ
に与えられるのを200nsだけ待つ。ADDが実行さ
れ、かつ命令が同時にキャッシュブロックの第1のワー
ド内にストアされる。
これは第3A図を参照してわかり、そこではキャッシュ
ブロックは、“102”がキャッシュブロック内の第1
のワードのアドレスセクションに置かれて示され、第1
の有効性のビットが設定され、かつ“ADD”命令自体
が第1のワードのビット0ないし31に置かれる。
例を続けると、50n sの後、“DIV”(除算)命
令がプロセッサにより行なわれ、かつDIV命令が、第
3B図に示されるキャッシュブロックの第2のワード(
ビット0−ないし31)にストアされる。第2の有効性
のビットは、同様にこの時間に設定されるものとして示
される。同様に、SUB (減算)命令およびMUL 
(乗算)命令は、主メモリからの次の2つの50n s
取出しに続きキャッシュ内にストアされる(かつプロセ
ッサにより実行される)。キャッシュブロックの最終的
形状は、第3C図に示される。
この点で、予め選択された数の先取りされた命令(DJ
NZに従うループの初めのもの)は、キャッシュメモリ
内にストアされている。主メモリからの最初の取出しの
ためのアクセス速度(200n s)とキャッシュ速度
(50ns)との比率が4:1であるので、この例にお
ける予め選択された数は4であった。
すべての命令は、等しい長さであると仮定された。当業
者は、可変長命令に対して、ここで教示された方法およ
び装置が、最も長い可変長命令のストアを収容するよう
に余分のキャッシュブロック空間を要求することを容易
に認識するであろう。
目的は、固定ワード長の場合と同じである、すなわち、
コード不連続に続く命令の最初の取出しを待つ、他の態
様で受ける遅延を最小にするかまたはなくするようにキ
ャッシュブロックを用いることである。
第2図および第3図を参照して述べられる例を完了する
ために、上記の予め選択された4個の命令に続き、この
とき、第3C図に示されたキャッシュブロック内にさら
なる命令はストアされない。
プロセッサは、命令106 (LOGICAL  OR
命令)、命令107および場所108におけるDJNZ
でシーケンシャルな処理を続ける。これらの各々は、5
0n sだけ遅延して取出される。
DJNZに続き、非ゼロカウンタをさらに仮定すると、
命令109が再度捨てられ、かつキャッシュが、LOO
Pに関連のタグアドレス、すなわちアドレス102に対
して同時にサーチされる。
タグが今ではキャッシュブロック内にあり(第3C図参
照)、かつ4個の有効性ビットのすべてが設定されてい
るので、キャツシュヒツトの信号が送られる。プロセッ
サは今では、アドレス102に4を加えたもの(すなわ
ちアドレス106)を主メモリからリクエストすること
により、主メモリからの、アドレス102における、命
令の最初の取出しに関連の200n s遅延を避ける。
プロセッサは、アドレス106における命令が与えられ
るのを200nsだけ待ちながら、キャッシュブロック
内にストアされた命令102ないし105を処理し、そ
れによって資源の浪費をなくする。
命令105が処理されると、命令106はその直後に処
理される用意ができており、かつ命令プロセッサに与え
られる。さらなる命令が、50nsのシーケンシャルな
速度で主メモリから取出される。これで、第2図および
第3図を参照する例が終わる。
キャッシュメモリをロードするためのいくつかの可能な
方針が以下で簡単に述べられる、なぜならそれらは、キ
ャッシュメモリ資源が管理される方法に順に影響を及ぼ
す分岐ターゲットキャッシュアーキテクチャに組入れら
れた有効性のビットの数に影響を及ぼすからである。
この発明の好ましい実施例によれば、キャッシュをロー
ドするための基本的方針は、キャッシュミスが存在する
とき必ずキャッシュをロードするということである。置
換方針選択は、伝統的なキャッシュに関して扱われる設
計の決定である。
キャッシュブロックの有効性の管理は、ブロック内にス
トアされる命令のうちの1個がシーケンス不連続を生じ
る可能性があるという問題により複雑になる。完全にす
るために、いくつかの可能な管理アルゴリズムが以下で
述べられる。
“常に充填する(Always Pill ) ”方針
では、キャッシュブロックは、たとえ分岐命令が埋込ま
れているとしてもシーケンシャルな命令が常に充填され
る。これは、もし分岐が常にとられるならば深刻な否定
的反響を及ぼす、なぜなら、ブロックが充填されている
間プロセッサが待たなければならない可能性があり、か
つ先取りシーケンスが、用いられない命令シーケンスで
開始されるからである。
“部分的ブロックの廃棄(Throw Away Pa
rtialBlocks ) ’方針では、もしキャッ
シュブロックが通常の命令基準により充填されないなら
ば、ブロックは無効であると示され、(すなわち、スト
アされた情報が捨てられ)、かつプロセッサは新たな命
令ストリームで続ける。これはまた、キャッシュブロッ
クが用いられないままであるという深刻な否定的反響を
及ぼし、かつこれにより、元の分岐がキャッシュミスを
常に得ることを引き起こす。
この発明の好ましい実施例は、“1個の命令あたりの有
効性のビット(Validity  Bit  Per
Instruction )″方針を用いることを企図
する。
この方針では、キャッシュブロック内の各命令はそれに
関連の有効なビットを有する。とられた分岐がキャツシ
ュヒツトを有する(すなわち、ブロックに適当なタグが
付いているのが見い出される)と、命令がブロックから
取出される。もしすべての有効なビットが真に設定され
るならば、そのとき先取り論理が開始され、もしそうで
なければ、無意味になるので先取り論理は開始されない
代わりの適当な方針は、“ブロック内のカウンタフィー
ルド(counter Field In Block
) ’方針である。この方針では、各キャッシュブロッ
クは、キャッシュブロック内にいかに多くの有効な命令
が存在するかを示す、それに関連のカウンタを有する。
もしそれが0であるならば、ブロックは空の無効である
。他のすべての値に対して、ブロックのいくつかまたは
すべてが有効であり、かつ値は、先取りが開始されるべ
きアドレスを得るようにタグと整合したアドレスに付加
されるべき量を示す。
キャッシュ内に命令を配置するための方針により、有効
性ビットはキャッシュブロックあたり1個、またはブロ
ックもしくはカウンタフィールド内の命令あたり1個だ
け必要になるかもしれない。
これは、もしキャッシュブロック内に、命令に関する追
従は必要でないかまたはリクエストされないような分岐
命令が存在するならば必要である。
別の問題として、分岐の後の条件付分岐が最初の実行で
分岐を生じる可能性があり、こうしてキャッシュブロッ
クの残余のものを無効のままにし、かつそれから、後続
の実行でそれは分岐しない可能性があり、かつキャッシ
ュブロックが、続行するのに必要な命令を有さない。こ
れらの問題の解決はシステム設計の兼合い決定であり、
上記の方針のうちの1つ、または設計者により望まれる
他のある方針を用いることができる。
実現化例の技術に関して、ここで述べられた技術は、単
一の実現化例の技術に制限されるものではないことが意
味されている。VLSI実現化例は、NMO3,CMO
S、TTL、ECLまたは他の半導体技術を用いて組立
てられ得る。LS I。
MSIまたはSSI実現化例でさえも組立てられ得る。
実現化例のアーキテクチャに関して、ここで述ベられる
技術は特定のプロセッサアーキテクチャまたはメモリア
ーキテクチャに制限されるものではないことが意味され
ている。いかなるプロセッサアーキテクチャも用いられ
得るが、RISCアーキテクチャが、その単一サイクル
実行時間のために高速シーケンシャル命令取出し能力に
特に十分に適することに再度注目する価値がある。上記
のシーケンシャルメモリシステムの任意のものが用いら
れ得るか、または主メモリからのシーケンシャルな転送
のためのより速い転送を支持し得るいかなる他のメモリ
アーキテクチャも用いられ得る。
最終的に、様々な可能な実現化例の速度に関して、ここ
に与えられた説明は150nsないし200nsの最初
のアクセス時間および約50n sの連続するアクセス
時間を有するメモリシステムに関するが、ここに開示さ
れた新規なキャッシュアーキテクチャは、シーケンシャ
ルなアクセス時間およびより長い最初のアクセス時間に
整合する命令取出し速度を有する他のメモリ/プロセッ
サ組合わせに応用され得る。たとえば、このアーキテク
チャは、プロセッサが10nsごとに命令を取出し、メ
モリに対する最初のアクセス時間が100n sであり
、かつシーケンシャルなアクセス時間がIonsである
場合−に働く。これは、キャッシュが10nsのアクセ
ス時間で動作する場合の、ブロックごとに10個の命令
のキャッシュブロックサイズを示唆する。
述べられた事柄は、シーケンシャル転送主メモリと組合
わされた命令キャッシュメモリを用いて命令プロセッサ
の性能を最大に活用するための方法および装置である。
これらの方法および装置は、上記の目的を満たす。
新規な方法および装置の好ましい実施例の上の説明は、
例示および説明の目的のためにのみ呈示された。これは
余すところないものではなく、かつ開示された正確な形
式にこの発明を制限しないことも意図されていて、かつ
明らかに多くの修正および変更が上記の教示に関して可
能である。
ここで述べられた実施例および例は、この発明の原理お
よびその実際の応用を最良に説明し、それによって当業
者が、企図されている特定の用途に適する様々な実施例
において、かつ様々な変更を用いてこの発明を最良に利
用し得るために呈示された。
この発明の範囲が、前掲の特許請求の範囲により規定さ
れることが意図されている。
【図面の簡単な説明】
第1A図は、この発明の好ましい実施例に従つた利用に
適する命令キャッシュメモリの組織全体を示す。 第1B図は、この発明の好ましい実施例に従って編成さ
れた命令キャッシュメモリの一部のフォーマットを示す
。 第2図は、この発明の原理を例示するように設計された
コードシーケンスを示す。 第3A図ないし第3C図は、第2図のコードシーケンス
が、この発明の目的を実現するために第1B図に示され
たメモリに関していかに利用されるかを示す。 図において、101は命令キャッシュメモリである。

Claims (51)

    【特許請求の範囲】
  1. (1)(a)命令のためのリクエストを開始し、かつ前
    記リクエストされた命令を実行するための命令プロセッ
    サと、 (b)1組の命令をストアし、かつ命令シーケンス不連
    続に遭遇するまで、前記命令のリクエストされたものを
    前記命令プロセッサにシーケンシャルに与えるための第
    1のメモリ手段と、 (c)前記第1のメモリ手段と結合され、予め選択され
    た標準に合う前記リクエストされた命令の予め選択され
    たものをストアするための第2のメモリ手段とを含む、
    コンピュータシステム。
  2. (2)前記第1のメモリ手段がシーケンシャル転送メモ
    リを含む、特許請求の範囲第1項に記載のコンピュータ
    システム。
  3. (3)前記第2のメモリ手段が命令キャッシュメモリを
    含む、特許請求の範囲第2項に記載のコンピュータシス
    テム。
  4. (4)前記シーケンシャルメモリ内にストアされた命令
    のための潜在的命令シーケンス不連続間のインライン命
    令の平均数が増加するにつれて、前記命令キャッシュメ
    モリの利用を最大限に活用する、特許請求の範囲第3項
    に記載のコンピュータシステム。
  5. (5)システムアーキテクチャがRISCアーキテクチ
    ャである、特許請求の範囲第3項に記載のコンピュータ
    システム。
  6. (6)前記予め選択された標準が、所与の命令シーケン
    ス不連続に続き実行される予め選択された数のリクエス
    トされた命令をストアすることを含む、特許請求の範囲
    第3項に記載のコンピュータシステム。
  7. (7)前記予め選択された数が、前記シーケンシャル転
    送メモリからの最初のかつ後続の取出しのためのアクセ
    ス時間、前記キャッシュメモリに対する前記シーケンシ
    ャル転送メモリの相対的速度、および命令実行時間の関
    数である、特許請求の範囲第6項に記載のコンピュータ
    システム。
  8. (8)固定長命令セットを有する、特許請求の範囲第7
    項に記載のコンピュータシステム。
  9. (9)システムアーキテクチャがRISCアーキテクチ
    ャである、特許請求の範囲第8項に記載のコンピュータ
    システム。
  10. (10)前記命令プロセッサが、命令シーケンス不連続
    に続き、前記第2のメモリ手段から処理されるべき次の
    命令をまずリクエストするように動作する、特許請求の
    範囲第1項に記載のコンピュータシステム。
  11. (11)前記命令プロセッサが、命令シーケンス不連続
    に続き、前記リクエストされた命令が前記第2のメモリ
    手段に有効にストアされていない場合にのみ、前記第1
    のメモリ手段から前記不連続に続き、処理されるべき次
    の命令をリクエストするように動作する、特許請求の範
    囲第10項に記載のコンピュータシステム。
  12. (12)前記命令プロセッサが、命令シーケンス不連続
    に続き処理されるべき次の命令が前記第2のメモリ内に
    有効に維持されたことを見い出すと必ず、前記命令シー
    ケンス不連続に続き前記第2のメモリ内にストアされた
    予め選択された命令の数だけ増分される、前記命令シー
    ケンス不連続に続き実行される命令のアドレスであるア
    ドレスにストアされた命令のために、実質的に並列なリ
    クエストを前記第1のメモリに発する、特許請求の範囲
    第11項に記載のコンピュータシステム。
  13. (13)命令プロセッサの性能を最大限に活用するため
    の装置であって、そこでは前記プロセッサが、まず命令
    をリクエストし、かつそれから、リクエストされた命令
    を実行するように動作し、 (a)1組の命令をストアし、かつリクエストされた命
    令を前記プロセッサにシーケンシャルに与えるための第
    1のメモリ手段と、 (b)前記第1のメモリ手段と結合され、予め選択され
    た組のシーケンシャルにリクエストされた命令をストア
    するための第2のメモリ手段とを含む、装置。
  14. (14)前記第1のメモリ手段の代わりに前記第2のメ
    モリ手段が、予め選択された組の第1の命令が前記プロ
    セッサによりリクエストされ、かつ予め選択された組の
    命令が前記第2のメモリ手段に有効に維持されるときは
    必ず、所与の予め選択された組のストアされた命令を前
    記プロセッサにシーケンシャルに与えるように動作する
    、特許請求の範囲第13項に記載の装置。
  15. (15)前記第1のメモリ手段が、予め定められた時間
    で、前記所与の予め選択された組の命令から実行される
    最後の命令の対応する第1のメモリ手段アドレスにシー
    ケンシャルに続く命令を前記プロセッサに与えるように
    さらに動作する、特許請求の範囲第14項に記載の装置
  16. (16)前記第1のメモリ手段がシーケンシャル転送メ
    モリを含む、特許請求の範囲第15項に記載の装置。
  17. (17)前記第2のメモリ手段が命令キャッシュメモリ
    を含む、特許請求の範囲第16項に記載の装置。
  18. (18)前記キャッシュメモリ内にストアされた前記予
    め選択された組の命令の各々が、前記プロセッサにより
    リクエストされた分岐命令のすぐ後に続く予め選択され
    た数の命令を含む、特許請求の範囲第17項に記載の装
    置。
  19. (19)前記予め選択された数が、前記シーケンシャル
    メモリからの最初のおよび後続の取出しのためのアクセ
    ス時間、前記キャッシュメモリの速度、および命令実行
    時間の関数である、特許請求の範囲第18項に記載の装
    置。
  20. (20)命令をリクエストしかつ処理するための手段を
    含むコンピュータシステムであって、 (a)1組の命令をストアし、かつ実行するために前記
    処理手段に前記命令のリクエストされたものを与えるた
    めのシーケンシャル転送メモリと、 (b)分岐命令の実行のすぐ後に続く前記処理手段によ
    り実行される予め選択された数の命令をストアするため
    の分岐ターゲットキャッシュ手段とを含む、コンピュー
    タシステム。
  21. (21)前記分岐ターゲットキャッシュメモリがブロッ
    ク内に編成され、そこでは各ブロックが、分岐命令の実
    行に続き前記処理手段によりリクエストされる予め選択
    された数の命令の複写をストアすることが可能である、
    特許請求の範囲第20項に記載のコンピュータシステム
  22. (22)前記ブロックの各々が、所与のブロックにスト
    アされた第1の命令がそこから複写された、前記シーケ
    ンシャル転送メモリにおける場所を示すアドレスタグを
    ストアすることが可能になるように、前記分岐ターゲッ
    トキャッシュメモリがさらに編成される、特許請求の範
    囲第21項に記載のコンピュータシステム。
  23. (23)所与のブロックにストアされた命令の有効性を
    示すコードが前記処理手段に与えられるように、前記分
    岐ターゲットキャッシュメモリがさらに編成される、特
    許請求の範囲第22項に記載のコンピュータシステム。
  24. (24)前記処理手段が、命令シーケンス不連続に続き
    、前記分岐ターゲットキャッシュから処理されるべき次
    の命令をまずリクエストするように動作する、特許請求
    の範囲第23項に記載のコンピュータシステム。
  25. (25)前記処理手段が、命令シーケンス不連続に続き
    、前記リクエストされた命令が前記分岐ターゲットキャ
    ッシュ内に有効にストアされていない場合にのみ、前記
    シーケンシャル転送メモリからの前記不連続に続き処理
    されるべき次の命令をリクエストするように動作する、
    特許請求の範囲第24項に記載のコンピュータシステム
  26. (26)前記処理手段が、命令シーケンス不連続に続き
    処理されるべき次の命令が前記分岐ターゲットキャッシ
    ュ内に有効に維持されたことを見い出すと必ず、前記シ
    ーケンシャル転送メモリの前記命令シーケンス不連続に
    続く命令のアドレスと、前記命令シーケンス不連続に続
    く前記分岐ターゲットキャッシュにストアされた予め選
    択された数の命令との合計に対応するアドレスで、前記
    シーケンシャル転送メモリにストアされた命令のための
    実質的に並列なリクエストを発する、特許請求の範囲第
    25項に記載のコンピュータシステム。
  27. (27)前記予め選択された数が、シーケンシャル転送
    メモリからの最初のおよび後続の取出しのための相対的
    アクセス時間、前記分岐ターゲットキャッシュの速度、
    および命令実行時間の関数である、特許請求の範囲第2
    6項に記載のコンピュータシステム。
  28. (28)命令のためのリクエストを開始することが可能
    な命令プロセッサを利用する命令処理を行ない、かつ前
    記リクエストされた命令を実行するための方法であって
    、 (a)第1のメモリ手段に1組の命令をストアする段階
    と、 (b)命令シーケンス不連続に遭遇するまで、前記命令
    のリクエストされたものを前記第1のメモリ手段からシ
    ーケンシャルに前記命令プロセッサに与える段階と、 (c)第2のメモリ手段において、予め選択された標準
    に合う前記リクエストされた命令の予め選択されたもの
    をストアする段階とを含む、方法。
  29. (29)前記第1のメモリ手段のためにシーケンシャル
    転送メモリを利用する段階をさらに含む、特許請求の範
    囲第28項に記載の方法。
  30. (30)前記第2のメモリ手段のために命令キャッシュ
    メモリを利用する段階をさらに含む、特許請求の範囲第
    29項に記載の方法。
  31. (31)シーケンシャル転送メモリからの命令の取出し
    に関連する遅延を減じるかまたはなくするときにのみ、
    キャッシュメモリ資源を利用することにより、前記シー
    ケンシャルメモリにストアされた命令のための潜在的命
    令シーケンス不連続間のインライン命令の平均数が増加
    するにつれて前記命令キャッシュメモリの利用を最大限
    に活用する段階をさらに含む、特許請求の範囲第30項
    に記載の方法。
  32. (32)前記予め選択された標準が、命令シーケンス不
    連続に続き実行される予め選択された数のリクエストさ
    れた命令を前記キャッシュメモリにストアする段階を含
    む、特許請求の範囲第31項に記載の方法。
  33. (33)前記予め選択された数が、前記シーケンシャル
    メモリからの最初のおよび後続の取出しのためのアクセ
    ス時間、前記キャッシュメモリに対する前記シーケンシ
    ャル転送メモリの相対的速度、および命令実行時間の関
    数として選択される、特許請求の範囲第32項に記載の
    方法。
  34. (34)前記命令プロセッサが、命令シーケンス不連続
    に続き、前記第2のメモリ手段から処理されるべき次の
    命令をまずリクエストするように動作する、特許請求の
    範囲第28項に記載の方法。
  35. (35)前記命令プロセッサが、命令シーケンス不連続
    に続き、前記リクエストされた命令が前記第2のメモリ
    手段に有効にストアされていない場合にのみ、前記第1
    のメモリ手段から前記不連続に続き、処理されるべき次
    の命令をリクエストするように動作する、特許請求の範
    囲第34項に記載の方法。
  36. (36)前記命令プロセッサが、命令シーケンス不連続
    に続き処理されるべき次の命令が前記第2のメモリに有
    効に維持されたことを見い出すと必ず、前記第1のメモ
    リの前記命令シーケンス不連続に続く命令のアドレスと
    、前記命令シーケンス不連続に続く前記第2のメモリに
    ストアされた予め選択された数の命令との合計に対応す
    るアドレスで、前記第1のメモリ手段にストアされた命
    令のための、実質的に並列なリクエストを発する、特許
    請求の範囲第35項に記載の方法。
  37. (37)命令プロセッサの性能を最大限に活用する方法
    であって、そこでは前記プロセッサが、まず命令をリク
    エストし、かつそれから、リクエストされた命令を実行
    するように動作し、 (a)第1のメモリ手段に1組の命令をストアする段階
    と、 (b)リクエストされた命令を前記プロセッサにシーケ
    ンシャルに与える段階と、 (c)前記第1のメモリ手段と組合わされて用いられる
    第2のメモリ手段に、予め選択された数のシーケンシャ
    ルにリクエストされた命令をストアする段階とを含む、
    方法。
  38. (38)前記予め選択された組の第1の命令が前記プロ
    セッサによりリクエストされ、かつ前記予め選択された
    組の命令が前記第2のメモリ手段に有効に維持されると
    必ず、前記第1のメモリ手段の代わりに前記第2のメモ
    リ手段を介して前記プロセッサに、所与の予め選択され
    た組のストアされた命令をシーケンシャルに与える段階
    をさらに含む、特許請求の範囲第37項に記載の方法。
  39. (39)前記所与の組の予め選択された命令から実行さ
    れた最後の命令の対応する第1のメモリ手段のアドレス
    にシーケンシャルに続く命令を、前記第1のメモリ手段
    を介して、予め定められた時間で前記プロセッサに与え
    る段階をさらに含む、特許請求の範囲第38項に記載の
    方法。
  40. (40)前記第1のメモリ手段がシーケンシャル転送メ
    モリを含む、特許請求の範囲第39項に記載の方法。
  41. (41)前記第2のメモリ手段が命令キャッシュメモリ
    を含む、特許請求の範囲第40項に記載の方法。
  42. (42)前記キャッシュメモリにストアされた前記予め
    選択された組の命令の各々が、前記プロセッサによりリ
    クエストされた分岐命令のすぐ後に続く予め選択された
    数の命令を含む、特許請求の範囲第41項に記載の方法
  43. (43)前記予め選択された数が、前記シーケンシャル
    メモリからの最初のおよび後続の取出しのためのアクセ
    ス時間、前記キャッシュメモリの速度、および命令実行
    時間の関数として選択される、特許請求の範囲第41項
    に記載の方法。
  44. (44)命令のためのリクエストを開始することが可能
    な命令プロセッサを利用して命令処理を行ない、かつ前
    記命令を実行するための方法であって、 (a)シーケンシャル転送メモリに1組の命令をストア
    する段階と、 (b)前記命令のリクエストされたものを、実行するた
    めに前記プロセッサに与える段階と、 (c)分岐ターゲットキャッシュメモリ内で、分岐命令
    の実行のすぐ後に続き前記プロセッサにより実行される
    予め選択された数の命令をストアする段階とを含む、方
    法。
  45. (45)ブロック内に前記分岐ターゲットキャッシュメ
    モリを編成する段階をさらに含み、そこでは各ブロック
    が、分岐命令の実行に続き、前記プロセッサによりリク
    エストされる予め選択された数の命令の複写をストアす
    ることが可能である、特許請求の範囲第44項に記載の
    方法。
  46. (46)前記ブロックの各々が、所与のブロックにスト
    アされた最初の命令がそこから複写された前記シーケン
    シャル転送メモリにおける場所を示すアドレスタグをス
    トアすることが可能になるように、前記分岐ターゲット
    キャッシュメモリを編成する段階をさらに含む、特許請
    求の範囲第45項に記載の方法。
  47. (47)所与のブロックにストアされた命令の有効性を
    示すコードが前記プロセッサに利用可能になるように、
    前記分岐ターゲットキャッシュメモリを編成する段階を
    さらに含む、特許請求の範囲第46項に記載の方法。
  48. (48)前記プロセッサが、命令シーケンス不連続に続
    き、前記分岐ターゲットキャッシュから処理されるべき
    次の命令をまずリクエストするように動作する、特許請
    求の範囲第47項に記載の方法。
  49. (49)前記プロセッサが、命令シーケンス不連続に続
    き、前記リクエストされた命令が前記分岐ターゲットキ
    ャッシュに有効にストアされない場合にのみ、前記シー
    ケンシャル転送メモリから前記不連続に続き処理される
    べき次の命令をリクエストするように動作する、特許請
    求の範囲第48項に記載の方法。
  50. (50)前記プロセッサが、命令シーケンス不連続に続
    き処理されるべき次の命令が前記分岐ターゲットキャッ
    シュに有効に維持されたことを見い出すと必ず、前記シ
    ーケンシャル転送メモリの前記命令シーケンス不連続に
    続く命令のアドレスと、前記命令シーケンス不連続に続
    く前記分岐ターゲットキャッシュにストアされた予め選
    択された数の命令との合計に対応するアドレスで、前記
    シーケンシャル転送メモリにストアされた命令のための
    実質的に並列なリクエストを発する、特許請求の範囲第
    49項に記載の方法。
  51. (51)前記予め選択された数が、シーケンシャル転送
    メモリからの最初のおよび後続の取出しのための相対的
    アクセス時間、前記分岐ターゲットキャッシュの速度、
    および命令実行時間の関数である、特許請求の範囲第5
    0項に記載の方法。
JP62304395A 1986-12-01 1987-11-30 コンピュータシステムおよびその実行方法 Pending JPS63150731A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US936,193 1986-12-01
US06/936,193 US4933837A (en) 1986-12-01 1986-12-01 Methods and apparatus for optimizing instruction processing in computer systems employing a combination of instruction cache and high speed consecutive transfer memories

Publications (1)

Publication Number Publication Date
JPS63150731A true JPS63150731A (ja) 1988-06-23

Family

ID=25468305

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62304395A Pending JPS63150731A (ja) 1986-12-01 1987-11-30 コンピュータシステムおよびその実行方法

Country Status (3)

Country Link
US (1) US4933837A (ja)
EP (1) EP0270310A3 (ja)
JP (1) JPS63150731A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001005660A (ja) * 1999-05-26 2001-01-12 Infineon Technol North America Corp マイクロプロセッサ内の命令トランザクションを低減する方法及び装置
JP2013097638A (ja) * 2011-11-02 2013-05-20 Renesas Electronics Corp キャッシュメモリ装置、キャッシュ制御方法、およびマイクロプロセッサシステム
JP2019177204A (ja) * 2019-06-25 2019-10-17 株式会社ユニバーサルエンターテインメント 遊技機
JP2021118877A (ja) * 2017-06-14 2021-08-12 株式会社ユニバーサルエンターテインメント 遊技機
JP2021118878A (ja) * 2017-06-14 2021-08-12 株式会社ユニバーサルエンターテインメント 遊技機

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5179680A (en) * 1987-04-20 1993-01-12 Digital Equipment Corporation Instruction storage and cache miss recovery in a high speed multiprocessing parallel processing apparatus
US5148536A (en) * 1988-07-25 1992-09-15 Digital Equipment Corporation Pipeline having an integral cache which processes cache misses and loads data in parallel
US5233702A (en) * 1989-08-07 1993-08-03 International Business Machines Corporation Cache miss facility with stored sequences for data fetching
US5226130A (en) * 1990-02-26 1993-07-06 Nexgen Microsystems Method and apparatus for store-into-instruction-stream detection and maintaining branch prediction cache consistency
US5163140A (en) * 1990-02-26 1992-11-10 Nexgen Microsystems Two-level branch prediction cache
US5230068A (en) * 1990-02-26 1993-07-20 Nexgen Microsystems Cache memory system for dynamically altering single cache memory line as either branch target entry or pre-fetch instruction queue based upon instruction sequence
KR100210205B1 (ko) * 1990-03-15 1999-07-15 리패치 스톨캐쉬를 제공하기 위한 장치 및 방법
US5257360A (en) * 1990-03-23 1993-10-26 Advanced Micro Devices,Inc. Re-configurable block length cache
JP2862948B2 (ja) * 1990-04-13 1999-03-03 三菱電機株式会社 半導体記憶装置
EP0457403B1 (en) * 1990-05-18 1998-01-21 Koninklijke Philips Electronics N.V. Multilevel instruction cache and method for using said cache
DE69130588T2 (de) * 1990-05-29 1999-05-27 National Semiconductor Corp., Santa Clara, Calif. Cache-Speicher von partiell decodierten Befehlen und Verfahren hierfür
US5249282A (en) * 1990-11-21 1993-09-28 Benchmarq Microelectronics, Inc. Integrated cache memory system with primary and secondary cache memories
US5305444A (en) * 1990-12-21 1994-04-19 Sun Microsystems, Inc. Apparatus for increasing the number of hits in a translation lookaside buffer including instruction address lookaside register
US5247643A (en) * 1991-01-08 1993-09-21 Ast Research, Inc. Memory control circuit for optimizing copy back/line fill operation in a copy back cache system
US5269013A (en) * 1991-03-20 1993-12-07 Digital Equipment Corporation Adaptive memory management method for coupled memory multiprocessor systems
JP2773471B2 (ja) * 1991-07-24 1998-07-09 日本電気株式会社 情報処理装置
DE69323692T2 (de) * 1992-11-02 1999-09-16 Koninklijke Philips Electronics N.V., Eindhoven Optimale Entwurfmethode für synchrone digitale Schaltkreise durch Hertakten und selektives Setzen von Kipp-schaltungen
US5537553A (en) * 1992-11-13 1996-07-16 Matsushita Electric Industrial Co., Ltd. Method of and apparatus for bus control and data processor
US5566324A (en) * 1992-12-24 1996-10-15 Ncr Corporation Computer apparatus including a main memory prefetch cache and method of operation thereof
US5682515A (en) * 1993-01-25 1997-10-28 Benchmarq Microelectronics, Inc. Low power set associative cache memory with status inhibit of cache data output
EP1186995B1 (en) * 1993-11-05 2003-09-03 Intergraph Corporation Instruction memory with associative cross-bar switch
EP0652510B1 (en) * 1993-11-05 2000-01-26 Intergraph Corporation Software scheduled superscalar computer architecture
US6360313B1 (en) 1993-11-05 2002-03-19 Intergraph Corporation Instruction cache associative crossbar switch
JPH07334416A (ja) * 1994-06-06 1995-12-22 Internatl Business Mach Corp <Ibm> コンピュータ・システムにおけるページ・モード・メモリの初期設定の方法および手段
US5623615A (en) * 1994-08-04 1997-04-22 International Business Machines Corporation Circuit and method for reducing prefetch cycles on microprocessors
JP2987311B2 (ja) * 1995-05-12 1999-12-06 松下電器産業株式会社 プロセッサ及び翻訳装置
US6189092B1 (en) 1997-06-30 2001-02-13 Matsushita Electric Industrial Co., Ltd. Pipeline processor capable of reducing branch hazards with small-scale circuit
US7055000B1 (en) 2003-08-29 2006-05-30 Western Digital Technologies, Inc. Disk drive employing enhanced instruction cache management to facilitate non-sequential immediate operands
US8412824B1 (en) * 2009-08-27 2013-04-02 Symantec Corporation Systems and methods for dynamically managing the migration of a single instance of data between storage devices
US8621157B2 (en) 2011-06-13 2013-12-31 Advanced Micro Devices, Inc. Cache prefetching from non-uniform memories
US10613764B2 (en) 2017-11-20 2020-04-07 Advanced Micro Devices, Inc. Speculative hint-triggered activation of pages in memory

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR1536616A (fr) * 1966-09-21 Ibm Système de traitement d'instructions avec des perfectionnements pour le branchementet les boucles du programme
US3593306A (en) * 1969-07-25 1971-07-13 Bell Telephone Labor Inc Apparatus for reducing memory fetches in program loops
US3896419A (en) * 1974-01-17 1975-07-22 Honeywell Inf Systems Cache memory store in a processor of a data processing system
US4313158A (en) * 1978-12-11 1982-01-26 Honeywell Information Systems Inc. Cache apparatus for enabling overlap of instruction fetch operations
US4315312A (en) * 1979-12-19 1982-02-09 Ncr Corporation Cache memory having a variable data block size
US4442488A (en) * 1980-05-05 1984-04-10 Floating Point Systems, Inc. Instruction cache memory system
US4437149A (en) * 1980-11-17 1984-03-13 International Business Machines Corporation Cache memory architecture with decoding
US4626988A (en) * 1983-03-07 1986-12-02 International Business Machines Corporation Instruction fetch look-aside buffer with loop mode control

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001005660A (ja) * 1999-05-26 2001-01-12 Infineon Technol North America Corp マイクロプロセッサ内の命令トランザクションを低減する方法及び装置
JP2013097638A (ja) * 2011-11-02 2013-05-20 Renesas Electronics Corp キャッシュメモリ装置、キャッシュ制御方法、およびマイクロプロセッサシステム
JP2021118877A (ja) * 2017-06-14 2021-08-12 株式会社ユニバーサルエンターテインメント 遊技機
JP2021118878A (ja) * 2017-06-14 2021-08-12 株式会社ユニバーサルエンターテインメント 遊技機
JP2019177204A (ja) * 2019-06-25 2019-10-17 株式会社ユニバーサルエンターテインメント 遊技機

Also Published As

Publication number Publication date
EP0270310A3 (en) 1991-11-27
US4933837A (en) 1990-06-12
EP0270310A2 (en) 1988-06-08

Similar Documents

Publication Publication Date Title
JPS63150731A (ja) コンピュータシステムおよびその実行方法
US6496902B1 (en) Vector and scalar data cache for a vector multiprocessor
US6219760B1 (en) Cache including a prefetch way for storing cache lines and configured to move a prefetched cache line to a non-prefetch way upon access to the prefetched cache line
US5649144A (en) Apparatus, systems and methods for improving data cache hit rates
US6185660B1 (en) Pending access queue for providing data to a target register during an intermediate pipeline phase after a computer cache miss
US6105111A (en) Method and apparatus for providing a cache management technique
JP4486750B2 (ja) テンポラリ命令及び非テンポラリ命令用の共用キャッシュ構造
JP3218317B2 (ja) 集積キャッシュユニットおよびその構成方法
EP0604139B1 (en) Computer system including a prefetch cache
JP3425158B2 (ja) マルチバッファデータキャッシュを具えているコンピュータシステム
US8725987B2 (en) Cache memory system including selectively accessible pre-fetch memory for pre-fetch of variable size data
JP4006436B2 (ja) 種々のキャッシュ・レベルにおける連想セットの重畳一致グループを有するマルチレベル・キャッシュ
JP3739491B2 (ja) プリフェッチ命令を用いるハーバードアーキテクチャキャッシュメモリの調和したソフトウェア制御
US6742106B2 (en) Vector transfer system generating address error exception when vector to be transferred does not start and end on same memory page
US20060179277A1 (en) System and method for instruction line buffer holding a branch target buffer
EP0457403A2 (en) Multilevel instruction cache, method for using said cache, method for compiling instructions for said cache and micro computer system using such a cache
WO1998027492A1 (en) Cache hierarchy management with locality hints for different cache levels
JPH04343151A (ja) メモリアクセス装置
US5333291A (en) Stride enhancer for high speed memory accesses with line fetching mode and normal mode employing boundary crossing determination
US7162588B2 (en) Processor prefetch to match memory bus protocol characteristics
US20040088490A1 (en) Super predictive fetching system and method
US5860150A (en) Instruction pre-fetching of a cache line within a processor
US7028142B2 (en) System and method for reducing access latency to shared program memory
US5860096A (en) Multi-level instruction cache for a computer
US7085887B2 (en) Processor and processor method of operation