JPH0384641A - コンピュータシステムおよびこれの動作速度を速める方法 - Google Patents

コンピュータシステムおよびこれの動作速度を速める方法

Info

Publication number
JPH0384641A
JPH0384641A JP2196446A JP19644690A JPH0384641A JP H0384641 A JPH0384641 A JP H0384641A JP 2196446 A JP2196446 A JP 2196446A JP 19644690 A JP19644690 A JP 19644690A JP H0384641 A JPH0384641 A JP H0384641A
Authority
JP
Japan
Prior art keywords
memory
cache
information
cache memory
main memory
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
JP2196446A
Other languages
English (en)
Inventor
Eric Hartwig Jensen
エリック・ハートウイッグ・ジヤンセン
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems 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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH0384641A publication Critical patent/JPH0384641A/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/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6022Using a prefetch buffer or dedicated prefetch cache

Landscapes

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

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はコンピュータシステムに関し、特に、処理時間
を高速化するためにキャッシュメモリと、命令ストリー
ミングとを使用するコンピュータシステムの編成に関す
る。
〔従来の技術及び発明が解決しようとする問題点〕
コンピュータシステムにおいて、システム速度は常に重
要なファクターである、システムの速度を上げる最も明
白な方法の1つは、よシ高速で動作する素子を使用する
ものである。動作の多くはランダムアクセスメモlj(
RAM)で起こるので、ランダムアクセスメモリでさら
に高速のメモリ素子を使用するというのは、スピードア
ップを図るための簡単明瞭な解決策である。残念なこと
に、ランダムアクセスメモリの速度が増すと、コストも
高くなる。そこで、システムの設計に当たって、システ
ムの速度を上げるための別の方法を捜すことになった。
そのような方法の1つがキャッシュメモリの使用である
。キャッシュは、コンピュータシステムにおいて、動作
をスピードアップするために使用される。キャッシュの
理論は、超高速ランダムアクセスメモリのわずかな一部
分をキャッシュとして使用すると共に、大量の低速のメ
インランダムアクセスメモリを使用することによシ、シ
ステムをよう高速にしようとするものである。プログラ
ムの要求に従って、メインメモリからデータと命令が呼
出でれ、キャッシュメモリに導入された場合、及び要求
された情報がキャッシュで利用可能な状態であるか否か
を知るために、システムがまずキャッシュを捜索した場
合には、システムは、その大半が高速キャッシュメモリ
から構成されているかのような速度で動作する。これは
、統計学上、1つのプロセスの特定の部分にある、使用
されたばかシの情報は、最近使用されていない情報と比
べて、直ちに要求される確率が高いためである。
キャッシュにかいて特定の1つの情報が見つけ出された
とき、その出来事を「ヒツト」という。
情報が見出せない場合には、その出来事をミスという。
最新のキャッシングシステムでは、90ノく一セントの
範囲のヒツト率が一般的になっている。
しかしながら、この高いヒツトy$を達成するために、
キャッシュメモリは、通常、きわめて大型化してしまい
、高いヒツト率をもつキャッシュメモリの標準は、たと
えば、64,128又は256キロバイトのメモリにな
っている。
キャッシュメモリは通常の速度よシ速く動作し、従って
、システムも同じように高速動作させることができるの
で、貴重である。当然のことながら、この速度は何の犠
牲もなく得られるわけではなく、メインランダムアクセ
スメモリと同様に、キャッシュメモリも非常に高速であ
れば、非常に高価になる傾向がある。従って、大量のキ
ャッシュメモリを使用するシステムは高価になりがちで
ある。
キャッシュメモリを追加使用するのではなく、別の方法
でキャッシュのヒツト率を上げることができれば、キャ
ッシュのサイズを縮小し、それにようシステムのコスト
を低減することが可能である。
〔問題点金解決するための手段〕
従って、本発明の目的は、コンピュータの動作速度を速
めることである。
本発明の別の目的は、コンピュータのキャッシュメモリ
のサイズを縮小し且つコストを低減することである。
本発明の付加的な目的は、キャッシュメモリにかけるキ
ャッシュミスの数を減らすことである。
本発明のさらに別の目的は、コンピュータシステムのコ
ストを低減する一方で、そのスピードアップを図ること
である。
本発明のこれらの目的及びその他の目的は、メインメモ
リから取出される順次行情報を記憶するバッファと、プ
ロセスがキャッシュメモリにロードされている期間中に
キャッシュ速度に近い速度でメインメモリ中の情報がア
クセスされるように、バッファの情報をCPU及びキャ
ッシュメモリに順次提供する切換え構成とを利用するコ
ンピュータシステムに>2て実現される。メインメモリ
から情報を取出すためにそのような構成を使用すること
によう、どのプロセスの開始時にも通常はキャッシュを
充填するために失なわれていた時間は大幅に短縮される
。キャッシュ充填手順のこのスピードアップによって、
キャッシュのサイズを縮小できるようになると共に、速
度はさらに増し、システムコストは全体として低減され
るのである。
本発明のこれらの目的と特徴並びにその他の目的と特徴
は、添付の図面のいくつかの図と共に以下の詳細な説明
を参照することによう当業者には明白になるであろう。
尚、いくつかの図を通して、同じ図中符号は同じ要素を
指示している。
〔表記法及び用語〕
以下の詳細な説明の中には、コンピュータメモリに)け
るデータビットの操作をアルゴリズム及び記号表示によ
って表わしている部分がある。そのようなアルゴリズム
による説明や表示は、データ処理技術の分野に熟達した
人がその作業の内容を他の当業者に有効に伝達するため
に利用する手段である。
ここでは、また、−殻内にも、アルゴリズムは所望の1
つの結果に至る首尾一貫した一連のステップであると理
解されている。ステップは、物理的な量の物理的操作を
必要とするステップである。
通常、それらの量は記憶、転送、組合せ、比較及びその
他の方法による操作が可能である電気的信号又は磁気的
信号の形nをとるが、必ずしもそうである必要はない。
一般に共通する用語であるということから、時によって
は、それらの信号をビット、値、要素、記号、文字、項
、数などと呼ぶと便利であることがわかっている。ただ
し、これらの用語及びそれに類する用語は、全て、適切
な物理的な量と関連させるべきものであって、そのよう
な量に便宜上付されたラベルであるにすぎないというこ
とを忘れてはならない。
さらに、実行される操作を、オペレータによシ実行され
る知的な動作と一般に関連している加算又は比較などの
用語で呼ぶことが多いが、ここで説明するような、本発
明の一部を威す動作のどれをとっても、そのようなオペ
レータの能力は、多くの場合、不要であるか又は望1し
くない。すなわち、動作は機械の動作である。本発明の
動作を実行するのに有用な機械には、汎用デジタルコン
ピュータ又はその他の同様な装置がある。いずれの場合
にも、コンピュータを動作させる際の方法動作と、計算
それ自体の方法との区別に留意すべきである。本発明は
、電気的信号又はその他の(たとえば、機械的、化学的
)物理的信号を処理して、別の所望の物理的信号を発生
させるときにコンピュータを動作させる装置及び方法ス
テップに関する。
〔実施例〕
以下、添付の図面を参照して本発明の詳細な説明する。
原理からいえば、キャッシュに特定のプロセスの情報が
充填され終わシ、そのプロセスが動作中であるときには
、キャッシュメモリが充填中の期間よシ効率よく動作し
なければならないことは明白であると思われる。キャッ
シュの充填が済めば、中央処理装置(CPU)はキャッ
シュメモリを直接アクセスし、そこで情報を見出し、続
いてその情報を処理することが可能であり、メインメモ
リを参照する必要はない。これに対し、新たなプロセス
がキャッシュメモリに呼込!れている期間中には、CP
Uは、1ず、各情報部分ごとにキャッシュメモリを捜索
し、それが欠落していることがわかれば、メインメモリ
においてその情報を回復し、その情報を使用する動作が
開始できるようになる前に、情報をキャッシュメモリに
記憶する。
キャッシュの動作を統計学的に研究した結果、キャッシ
ュミスの多くは新たなプロセスのロード中に起こるとい
う結論が確証された。特定のシステムに)いては、キャ
ッシュミスの80パーセントは、キャッシュに1つの特
定のプロセスが充填される前の始動期間中に起こること
がわかっている。
本発明は、キャッシュ充填期間中に失なわれる時間の問
題を、この期間中のシステムの動作を大幅にスピードア
ップすることによシ直接解決しようとしている。第1図
は、CPU12と、メインメモリ14と、キャッシュメ
モリ16と、スイッチボックス1Bと、ストリーミング
バッファ20とを含むシステム10を示す。ストリーミ
ングバッファ20は、メインメモリ14の1行分の記憶
内容を都合良く記憶できるサイズである。本発明に従っ
て構成された通常のコンピュータシステムK>いては、
そのような1行は、32個又は64個の個別の命令を表
わす合わせて128バイト又は256バイトの情報から
構成される。
コンピュータプログラムが通常の設計であるとき、特定
の1つのプロセスの期間を通して、分岐動作が起こるま
で命令が順次実行されることは当業者には認められるで
あろう。従って、メインメモリの特定の1行にある命令
は順次起こるのが普通である。それらの命令がメインメ
モリから行ごとに取出されて、ストリーミングバッファ
に導入され、ストリーミングバッファ内で現われる通う
に実行されるならば、命令は、キャッシュメモリ中に見
出せるとした場合に実行されるであろう速度とほぼ同じ
ような高速で実行されると思われる。
これは、スイッチボックス18とストリーミングバッフ
ァ20の使用により可能になる。メインメモリへの呼出
しは、キャッシュメモリ16にプロセスが提供されてい
る始動期間中に起こるので、ストリーミングをキャッシ
ュメモリの速度で発生させる動作は、キャッシュミスに
起因する時間の損失を著しく減少させる。
システム10の動作は次の通シである。任意の特定の動
作について、CPU12の最初のステップは、所望の情
報のアドレスを提供することによシキャッシュメモリ1
6t−アクセスすることである。
どのプロセスの開始時でも、先にメインメモリ14から
情報が呼出されているということはないので、このアク
セスはおそらくミスになるであろう。この時点で、CP
U12はその情報を求めてメインメモリ14金アドレス
する。しかしながら、メインメモリは、完全な1行分の
情報をストリーミングバッファ20に提供することによ
シ、その呼出しに返答する。スイッチボックス18は要
求された第1の命令をCPU12へ送るが、それと同時
に、同じ命令は、プロセスのラン中に後でその命令が要
求されるときに備えて、ストリーミングバッファ20か
らキャッシュメモリ16に供給される。
スイッチボックス18がCPUの制御の下にキャッシュ
動作モード又はストリーミング動作モードのいずれかを
選択するマルチプレクサであっても良いことは明白であ
ろう。
ストリーミングモードにあるとき、スイッチボックス1
8は、ストリーミングバッファ20に保持されているメ
インメモリ14の行からの命令を処理のためにCPU1
2へ送ジ続けるが、同じ命令はキャッシュメモリ16に
も供給され、そこに記憶される。これは、(キャッシュ
メモリ16が関連していないのにもかかわらず)キャッ
シュメモリ速度で起こシ、命令のシーケンスを中断して
生じる分岐動作又はメインメモリの1行の終端が現われ
るまで続く。
分岐が起こると、要求された情報がキャッシュメモリ1
6にあるか否かを知るためにCPUはキャッシュメモリ
中を捜索する。キャッシュメモリ16でヒツトがあれば
、CPU12はキャッシュメモリ16を参照し続ける。
キャッシュメモリ16でヒツトがなければ、CPU12
はメインメモリを捜索し、ストリーミングバッファ20
及びスイッチボックス18を介する動作を再開する。本
発明の構成を使用するシステムは、大半のプログラムが
順次配列の命令全件なってセットアツプされているため
に、分岐は順次順序から外れて起こるのみであるのでキ
ャッシュミスが通常は多くなるプロセスの開始時であっ
てもキャッシュメモリ速度で動作することがわかるであ
ろう。
CPU12がメインメモリ14の1行の終端に達すると
、ストリーミングバッファ20の終端で行の途切れが起
こる。これが起こったときには、CPU12はキャッシ
ュメモリ16を捜索する。再び、キャッシュミスになる
ことが考えられるので、そこでCPU12は再びメイン
メモリ14及びストリーミングプロセスを伴なう動作金
開始する。
以上、m1しい一実施例に関して本発明を説明したが、
本発明の趣旨を逸脱せずに当業者によう様々な変形及び
変更を実施−しうろことは明白であろう。従って、本発
明は特許請求の範囲によって判断されるべきである。
【図面の簡単な説明】
第1図は、本発明に従って設計されたコンピュータシス
テムを示すブロック線図、第2図は、本発明のシステム
の動作シーケンスを示す状態図である。 12・・・・CPU、14・・・・メインメモ1ハ i
 5 * a * eキャッシュメモリ、18・・・・
スイッチボックス、20・・・・ストリーミングバッフ
ァ。

Claims (2)

    【特許請求の範囲】
  1. (1)中央処理装置と、メインメモリと、キャッシュメ
    モリと、メインメモリ中の情報1行分と同等のサイズを
    有するバッファメモリと、メインメモリから取出される
    順次行情報をバッファメモリに記憶する手段と、プロセ
    スがキャッシュメモリにロードされている期間中にキャ
    ッシュ速度に近い速度でメインメモリ中の情報がアクセ
    スされるように、バッファメモリの情報を中央処理装置
    及びキャッシュメモリに順次提供する手段とを具備する
    コンピュータシステム。
  2. (2)中央処理装置と、メインメモリと、キャッシュメ
    モリと、メインメモリ中の情報1行分と同等のサイズを
    有するバッファメモリと、メインメモリからの順次デー
    タ行でバッファメモリを充填する手段とを有するコンピ
    ュータシステムの動作速度を速める方法において、キャ
    ッシュメモリ中の命令をサーチする過程と、バッファメ
    モリをメインメモリからの1行分のデータで充填する過
    程と、バッファメモリに関する順次命令を中央処理装置
    へ転送する過程とから成る方法。
JP2196446A 1989-08-21 1990-07-26 コンピュータシステムおよびこれの動作速度を速める方法 Pending JPH0384641A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US39642989A 1989-08-21 1989-08-21
US396,429 1989-08-21

Publications (1)

Publication Number Publication Date
JPH0384641A true JPH0384641A (ja) 1991-04-10

Family

ID=23567156

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2196446A Pending JPH0384641A (ja) 1989-08-21 1990-07-26 コンピュータシステムおよびこれの動作速度を速める方法

Country Status (2)

Country Link
JP (1) JPH0384641A (ja)
DE (1) DE4025876A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6678789B2 (en) 2000-04-05 2004-01-13 Nec Corporation Memory device

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06222990A (ja) * 1992-10-16 1994-08-12 Fujitsu Ltd データ処理装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6678789B2 (en) 2000-04-05 2004-01-13 Nec Corporation Memory device

Also Published As

Publication number Publication date
DE4025876A1 (de) 1991-02-28

Similar Documents

Publication Publication Date Title
US4530049A (en) Stack cache with fixed size stack frames
US5155831A (en) Data processing system with fast queue store interposed between store-through caches and a main memory
US5649144A (en) Apparatus, systems and methods for improving data cache hit rates
TW573252B (en) Shared cache structure for temporal and non-temporal instructions
US5123101A (en) Multiple address space mapping technique for shared memory wherein a processor operates a fault handling routine upon a translator miss
US4298929A (en) Integrated multilevel storage hierarchy for a data processing system with improved channel to memory write capability
US5566324A (en) Computer apparatus including a main memory prefetch cache and method of operation thereof
US5297281A (en) Multiple sequence processor system
CA1212483A (en) Data select match
JPS6263350A (ja) キヤツシユメモリを具えた情報処理装置
US6782452B2 (en) Apparatus and method for processing data using a merging cache line fill to allow access to cache entries before a line fill is completed
US6889289B2 (en) Method of distributed caching
JP4210024B2 (ja) 記憶装置を動作する方法および記憶装置
KR960007832B1 (ko) 캐시 메모리로의 데이타 명령을 선택적으로 전송하기 위한 방법
US6092153A (en) Subsettable top level cache
JPH0384641A (ja) コンピュータシステムおよびこれの動作速度を速める方法
JPS638851A (ja) キャッシュ・メモリ制御方式
JPH01205228A (ja) 命令バツフアシステム
KR100426038B1 (ko) 디지털버퍼메모리내의디지털버퍼를처리하는장치및액세스하는방법
JP3284508B2 (ja) データ先読み制御装置
JPH05120133A (ja) キヤツシユ装置
EP0362366B1 (en) Instruction cache flush-on-rei control
JPS63101943A (ja) キヤツシユム−ブイン制御方式
JPS61169949A (ja) バツフアメモリ制御方式
JPH10116227A (ja) キャッシュメモリの書き戻し制御システム