JPH02207351A - データ路の巾が予め定められたコンピュータシステムのデータ記憶レートを増加する方法及び装置 - Google Patents

データ路の巾が予め定められたコンピュータシステムのデータ記憶レートを増加する方法及び装置

Info

Publication number
JPH02207351A
JPH02207351A JP1234514A JP23451489A JPH02207351A JP H02207351 A JPH02207351 A JP H02207351A JP 1234514 A JP1234514 A JP 1234514A JP 23451489 A JP23451489 A JP 23451489A JP H02207351 A JPH02207351 A JP H02207351A
Authority
JP
Japan
Prior art keywords
data
cache
longword
address
clock cycle
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
JP1234514A
Other languages
English (en)
Inventor
Jr David A Webb
ディヴィッド エイ ウエッブ ジュニア
Dwight P Manley
ドワイト ピー マンリー
Ricky C Hetherington
リッキー シー ヒーザリングトン
Tryggve Fossum
トリューグヴ フォッサム
Ronald M Salett
ロナルド エム サレット
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 JPH02207351A publication Critical patent/JPH02207351A/ja
Pending legal-status Critical Current

Links

Classifications

    • 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/0877Cache access modes
    • G06F12/0886Variable-length word access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4009Coupling between buses with data restructuring
    • G06F13/4018Coupling between buses with data restructuring with data-width conversion

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Communication Control (AREA)

Abstract

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

Description

【発明の詳細な説明】 産業上の利用分野 本発明は、現在出願中の以下の米国特許出願に開示され
たコンピュータシステムの幾つかの特徴に関するもので
ある。エバンス氏等の「デジタルコンピュータのシステ
ム制御ユニットとサービス処理ユニットとの間のインタ
ーフェイス(ANINTERFACE BETWEEN
 A SYSTEM C0NTR0L UNIT AN
DA 5ERVICE PRO(:ESSING UN
IT OF A DIGITALCOMPUTER)J
  ;アーノルド氏等の[マルチプロセッサシステムの
システム制御ユニットを中央処理ユニットとインターフ
ェイスする方法及び装置(MET)IOD AND A
PPARATUS FORINTERFACING A
SYSTEM C0NTR0L UNIT FORA 
MULTrPROCESSORSYSTEM WITH
THE CENTRAL PROGESSING [J
NITS) J ;ガグリアード氏等の[マルチプロセ
ッサシステムのシステム制御ユニットをシステム主メモ
リとインターフェイスする方法及び手段(阿ETF(O
D ANDMEANS FORINTERFACING
 A SYSTEM CONTROL UNITFOR
A MULTI−PROCESSORSYSTEM w
ITI(THE SYSTEMMAIN MEMORY
)J  ; D、フィツト氏等の「可変長さの命令アー
キテクチャにおける多数の指定子のデコード(DECO
RDING MULTIPLE 5PECIFIERS
 IN AVARIABLE LENGTHlN5TR
UCTION ARCHITECTURE)J ;D、
フィツト氏等の[仮想命令キャッシュリフエルアルゴリ
ズムmRTUAL lN5TRUCTION CACH
EREFILL ALGORITHM)J  ;パーマ
ン氏等の「レジスタのパイプライン処理及び同じ命令内
で指定子を変更するレジスタ(PIPELINE PR
O(1:ESSTNG 0FREGISTERAND 
REGISTERMODIFYING 5PECIFI
ER5WITHIN THE SAME lN5TRU
CTION)」;マーレイ氏等の[デジタルコンピュー
タのためのデータ依存性分析式の多命令処理システム(
MULTIPLE lN5T−RUCTION PRE
PROCESSING SYSTEM WIT)I D
ATA DEPE−NDENCY RESOLUTIO
N FORDIGITAL COMPUTER5)J 
 。
D、フィツト氏等の「パイプラインプロセッサにおける
インプライド指定子の予めの処理(PRE−PROCE
SSINGIMPLIED 5PECIFIER3IN
 A PIPELINEDPROCESSOR)J  
; D、フィツト氏等の[分岐予想方法(METHOD
 OF BRANCHPREDICTION)J  ;
フォラサム氏等の「デジタルコンピュータのパイプライ
ン浮動小数点加算器(PIPELrNED FLOAT
ING POINTADDERFORDIGITAL 
COMPUTER)J  ;グランドマン氏等の「自己
タイミングとリレジスタフアイル(SELF TIME
D RE(dSTERFILE)J  ;ベヴエン氏等
の[パイプラインコンピュータシステムにおいてエラー
を検出して修正する方法及び装置(METHODAND
 APPARATUS FORDETECTING A
ND C0RRECTINGERROR5IN A P
IPELINED COMPUTERSYSTEM) 
J ;フライン氏等の「マルチプロセッサシステムにお
いてシステム制御ユニットを用いて通信要求を仲裁する
方法及び手段(METHOD AND MEANS F
ORARBI−TRATING COMMUNICAT
ION REQUESTS USING ASYSTE
M C0NTR0L UNIT IN A MULTI
−PROCESSOR3YSTEM)J  ; E、フ
ィツト氏等の「マルチコード化実行ユニットにおける並
列動作によるマルチファンクションユニットの制御(C
ONTROL OF MULTI−PLE FUNCT
ION UNITS WITHPARALLEL 0P
ERATIONIN A MICROCODED EX
ECUTION UNIT)J  ;ウェブ二世氏等の
[仮想メモリシステムをベースとするデジタルコンピュ
ータの命令パイプライン内で予めフェッチした命令でメ
モリアクセス例外を処理する方法(PROCESSIN
G OF MEMORY ACCESS EXCEP−
TIONS WITHPRE−FETCHED lN5
TRUCTIONS WITHINTHE lN5TR
UCTION PIPELINE OF A VIRT
UAL MEMORYSYSTEM−BASED DI
GITAL COMPUTER)J  ;ヘザリントン
氏等の「デジタルコンピュータシステムにおいて仮想−
物理メモリアドレスの変換を制御する方法及び装置(M
ETHOD AND APPARATUS FORC0
NT−ROLLING THE C0NVERSION
 OF VIRTUAL T。
PHYSICAL MEMORY ADDRESSES
 IN A DIGITALCOMPUTERSYST
EM)J  ;ヘザリントン氏等の[エラー修正機能を
有する書き込みバッファ(WRITEBACK BUF
FERWITHERRORC0RRECTING CA
PA−BILITIES)J  ;フライン氏等の[マ
ルチプロセッサシステムにおいてシステム制御ユニット
を用いて通信要求を仲裁する方法及び手段(METI(
OD ANDMEANS FORARBITRATIN
G COMMUNICATION REQUESTSU
SING A SYSTEM C0NTR0L UNI
T IN A MULTI−PROCESSING S
YSTEM)J  ;チナスウェイ氏等の「マルチプロ
セッサシステムのシステムユニット間でデータ転送する
ためのモジュールクロスバ−相互接続ネットワーク(M
ODULARCROSSBARINTER−CONNE
CTION NETWORK FORDATA TRA
NSACTIONSBETWEEN SYSTEM U
NITS IN A MULTI−PROCESSOR
5YSYTEM)J  ;ポルジン氏等の「マルチプロ
セッサシステムのシステム制御ユニットを入力/出カニ
ニットとインターフェイスする方法及び装置(METH
OD AND APPARATUS FORINTER
FACING ASYSYTEM C0NTR0L U
NIT FORA MULTI−PROCESSOR、
SYSTEM WITHINPUTloUTPUT U
NITS)J  、ガグIJ 7一ド氏等の[マルチプ
ロセッサシステムのシステム制御ユニットをシステム主
メモリとインターフェイスする手段に用いるメモリ構成
(MEMORYCONFIGURATION FORU
SE WITHMEANS FORINTER−FAC
ING A SYSTEM C0NTR0L UNIT
 FORAMULTI−PROCESSORSYSTE
M WITHTHE SYSTEM MAINMEMO
RY)J  ;そしてガグリアード氏等の[システムモ
ジュール間のDRAM制御信号をエラーチエツクする方
法及び手段(METHOD AND MEANS FO
RERRORCHECKING OF DRAM−CO
NTROL 5IGNALS BETWEENSYST
EM MODULES)J  。
本発明は、一般に、高速デジタルコンピュータシステム
においてデータを記憶するレートを制御するための装置
に係り、より詳細には、連続的に配置される記憶要求を
単一の記憶動作に結合することによってデータ記憶帯域
中を増加するための装置に係る。
従来の技術 高速デジタルコンピュータの分野においては、コンピュ
ータシステムが一般に32ビツトのような規定の巾のア
ーキテクチャを使用するのが通常である。従って、バス
や、演算論理ユニットや、レジスタファイルや、キャッ
シュアクセス経路を含むコンピュータシステム内の殆ど
のデータ経路は32ビツト巾である。しかしながら、コ
ンピュータシステム内の全てのデータ構造体が同じサイ
ズであるのではない。実際にあるものはもっと狭いがそ
の多くはもっと広く、これらは、例えば倍精度フローテ
ィングポイント数、文字ストリング、2進化10進スト
リング、64ビツト整数(クオドワード)、128ビツ
ト整数(オクタワード)、命令及びスタックフレームを
含む。
これらの巾の広いデータ構造体は、典型的に、コンピュ
ータシステム内の高周波数動作に用いられる。それ故、
全システム性能を増加すると共にボトルネックを防止す
るために、これらの巾の広い高周波数構造体を取り扱う
データ経路も対応的にrjyが広くされている。データ
経路の巾を広げることにより、経路に沿って供給するこ
とのできるデータの量が増加することが明らかである。
全てのデータ経路の巾を広げる場合には設計上競合する
問題が生ずる。まず第1に、データ経路の巾を広げると
、コンピュータシステムの全体的なコストが高くなり、
ある場合には、性能の増加が無視できる程度のものにな
ってしまう。あるいは又、巾の広いデータ経路は、比較
的少数の意図された動作にしか必要とされないことがあ
る。
従って、この場合、個々の機能に対する性能の増加が著
しいものであるが、システム性能に対する全体的な衝撃
がコストの増加を必ずしも保証しない。
更に、通信されているデータ構造体はそれらのデータ経
路よりも著しく巾の広いものであってもよいが、経路の
巾が性能を制限することになり、経路の巾を単に増加す
るだけでは現在のデータ経路を最適化する以上の効果が
発揮されない。例えばVAXアーキテクチャにおいては
、実行ユニットからキャッシュへ至るデータ経路が32
ビツト巾であるに過ぎないが、実行ユニットは64ビツ
ト(クオドワード)記憶動作を実行することができる。
クオドワードは、32ビツトのデータ構造体(ロングワ
ード)に分割され、そして32ビツトデータ経路を経て
転送される。最初は、データ経路を64ビツトに増加す
ることによってデータ記憶レートを2倍にできると考え
られたが、このように簡単にはいかない。キャッシュ技
術では、一般に、各々の記憶動作を実行するのに2つの
クロックサイクルが必要とされる。それ故、データ経路
が1サイクル当たり64ビツトを供給できる場合でも、
キャッシュのデータ記憶経路は2サイクルごとに64ビ
ツトに過ぎない。
発明が解決しようとする課題 本発明は、上記した問題の1つ又は2つ以上を解消する
ことに係る。
本発明の主たる目的は、キャッシュに接続されたデータ
バスの巾を広げることなくキャッシュにデータを記憶で
きるレートを増加することである。
本発明の別の目的は、クオドワード整列された連続する
ロングワード記憶動作を識別しそしてそれを対にし、そ
の両方のロングワードを単一の記憶動作で記憶するため
の装置及び方法を提供することである。
課題を解決するための手段 本発明の1つの特徴においては、コンピュータシステム
のキャッシュに送られるデータの流れを制御するための
装置が提供される。この装置は、第1のロングワードの
データと、このデータを記憶すべきアドレスと、その隣
接アドレスに記憶すべき第2のロングワードのデータが
次のクロックサイクルに供給されることを指示する信号
とを供給するための手段を備えている。第1の書き込み
バッファは、キャッシュの下位部分に接続された出力と
、第1のロングワードのデータを受け取るための入力と
を有している。第2の書き込みバッファは、キャッシュ
の上位部分に接続された出力と、クオドワードに整列さ
れている第1のロングワード及びそれに続くクロックサ
イクル中に実際に供給されている第2のロングワードデ
ータに応答して第2のロングワードデータを受け取るた
めの入力とを有している。この装置は、更に、意図され
たアドレスにあるキャッシュの上位及び下位部分を実質
的に同時にイネーブルして、一次及び二次バッファの内
容をクオドワードとしてキャッシュのアドレスに記憶す
る手段も備えている。
本発明の別の特徴においては、2つのクロックサイクル
時間中にコンピュータシステムのキャッシュへ送られる
データの流れを制御するための方法が提供される。この
方法は、第1のロングワードデータと、このデータを記
憶すべきアドレスと、第1のクロックサイクル中のコン
テクスト信号とを供給するための段階を含む。上記コン
テクスト信号は、その隣接アドレスに記憶すべき第2の
ロングワードデータが第2のクロックサイクル中に供給
されることを指示する。第1のロングワードデータは、
第1のクロックサイクル中に一次書き込みバッファに記
憶される。第2のロングワードデータは、第2のクロッ
クサイクル中に二次書き込みバッファに記憶される。第
2のロングワードは、クオドワード整列されている第1
のロングワードと、第2のクロックサイクル中に実際に
供給される第2のロングワードデータとに応答しで記憶
される。上記方法は、更に、第2のクロックサイクル中
に指示されたアドレスにおいてキャッシュの上位及び下
位部分を実質的に同時にイネーブルし、一次及び二次バ
ッファの内容がクオドワードとしてキャッシュのアドレ
スに記憶されるようにする。
本発明の他の目的及び効果は、添付図面を参照として以
下の詳細な説明から明らかとなろう。
実施例 本発明は種々の形態で実施できるが、その特定の実施例
を添付図面に一例として示し、以下に詳細に説明する。
しかしながら、本発明はその特定の形態に限定されるも
のではなく、特許請求の範囲によって定められた精神及
び範囲内に入る全ての変更や修正を網羅するものと理解
されたい。
第1図は、バイブラインコンピュータシステム10の一
部分を示すトップレベルのブロック図である。このシス
テムlOは、主メモリ14ヘアクセスする少なくとも1
つの中央処理ユニット(CPU)12を備えている。こ
のようなシステムでは主メモリ14を共有することによ
り更に別のCPUを使用できることを理解されたい。例
えば、4台までのCPUを同時に動作させて、共有主メ
モリ14と効率的に通信することができる。
CPU12の内部では、個々の命令の実行が多数のより
小さなタスクに分割される。これらのタスクは、その目
的に適するようにされた専用の別々の個々のファンクシ
ョンユニットによって実行される。
各々の命令は最終的には別々の動作を実行するが、各命
令が分割されたより小さなタスクの多くは全ての命令に
対して共通である。一般に、命令の実行中には、命令の
フェッチ、命令のデコード、オペランドのフェッチ、実
行及び結果の記憶といったステップが行なわれる。従っ
て、専用のハードウェア段を使用することにより、これ
らのステップを重畳して、全体的な命令のスループット
を高めることができる。
パイプラインを通るデータの経路は、各バイブライン段
の結果を次のバイブライン段へ転送するための各組のレ
ジスタを備えている。これらの転送レジスタは、共通の
システムクロックに応答してタイミング取りされる。例
えば、第1のクロックサイクル中には、命令フェッチに
専用のハードウェアによって第1の命令がフェッチされ
る。
第2のクロックサイクル中には、そのフェッチされた命
令が転送されそして命令デコードハードウェアによって
デコーダされるが、それと同時に、次の命令が命令フェ
ッチハードウェアによってフェッチされる。第3のクロ
ックサイクル中には、各命令がバイブラインの次の段ヘ
シフトされそして新たな命令がフェッチされる。従って
、パイプラインが一杯になった後に、各クロックサイク
ルの終わりに命令が完全に実行される。
このプロセスは、製造環境における製造ラインに類似さ
せることができる。各作業者は彼又は彼女の作業段を通
る各製品に対して単一の作業のみを行なうようにされる
。各々の作業が行なわれる度に、製品は完成へと近づい
ていく。最終段において、作業者が彼に指定された作業
を行なう度に、完成した製品が組立ラインからでてくる
第1図に示すように、CPU12は、少なくとも3つの
ファンクションユニット、即ちメモリアクセスユニット
16と、命令ユニット18と、実行ユニット20とに区
分化される。これらのユニットは、各々、MBOX、I
BOX及びEBOXと称されることもある。
命令ユニット18は、命令を予めフェッチし、Opコー
ドをデコードして、オペランド及び結果指定子を得、オ
ペランドをフェッチし、そしてプログラムカウンタ24
を更新する。命令ユニット18は、オペランド処理ユニ
ット22と、プログラムカウンタ24と、命令デコーダ
26とを備えている。プログラムカウンタ24は命令ユ
ニット18に保持されており、メモリアクセスユニット
16に保持された高速キャッシュメモリ28がら適当な
命令を検索できるようになっている。キャッシュ28は
、主メモリ14に記憶された命令の小さな部分のコピー
を記憶し、命令アクセス時間を短縮することにより処理
速度を増加するように使用される。キャッシュ28の動
作については、メモリアクセスユニット16の説明に関
連して以下で詳細に述べる。
プログラムカウンタ24は、主メモリ14及びキャッシ
ュ28の物理的なメモリ位置ではなくて仮想メモリ位置
を使用するのが好ましい。従って、プログラムカウンタ
24の仮想アドレスは、命令を検索できるようになる航
に主メモリ14の物理的なアドレスに変換しなければな
らない。従って、プログラムカウンタ24の内容がメモ
リユニット16に転送され0、そこで変換バッファ30
がアドレス変換を実行する。命令は、変換されたアドレ
スを用いてキャッシュ28内の物理的なメモリ位置から
検索される。キャッシュ28は、データ返送ライン32
を経て命令デコーダ26へ命令を供給する。キャッシュ
28及び変換バッファ30の構成及び動作については、
デジタルイクイツブメントコ−ポレーション発行の「コ
ンピュータプログラミング及びアーキテクチャ;The
VAX−11J  (1980年)の第351−368
ページに掲載されたレビイ及びエコース二世氏著の第1
I章に説明されている。
オペランド処理ユニット(OPU)22も仮想アドレス
を発生する。特に、この0PU22はメモリソース(読
み取り)及び行き先(iFき込み)命令のための仮想ア
ドレスを発生する。少なくともメモリ読み取り命令の場
合に、0PU22は、これらの仮想アドレスをメモリア
クセスユニット16に供給し、そこでそれらを物理的な
アドレスに変換しなければならない。次いで、キャッシ
ュ28の物理的なメモリ位置がアクセスされて、メモリ
ソース命令のためのオペランドがフェッチされる。
本発明の好ましい方法を実施するために、0PU22は
、メモリ行き先命令オペランドのための行き先の仮想ア
ドレスをメモリアクセスユニット16に供給する。仮想
アドレスは、例えば、32ビツト数である。この32ビ
ツトの仮想アドレスを送信するのに加えて、0PU22
は、命令が読み取り動作を指示するか書き込み動作を指
示するかを示すために3ビツトの制御フィールドも供給
する。制御フィールドが仮想アドレスが読み取り命令に
対応していることを指示する場合には、キャッシュ28
はその識別された物理メモリ位置からデータを検索し、
そしてそれをデータ返送ライン34を経て実行ユニット
20へ供給する。
これに対し、書き込み動作の場合には、書き込まれるべ
きデータを入手するまで書き込みアドレスが記憶される
。明らかなように、MOVE又はADDのような命令の
場合には、書き込まれるべきデータは、命令の実行が完
了するまで得られない。しかしながら、行き先の仮想ア
ドレスを、命令の実行に必要な時間中に、それに対応す
る物理的アドレスに変換することができる。又、oPU
22については、この時間中に多数の命令指定子を予め
処理して、命令を実行する全体的な速度を高めることが
所望される。これらの目的のためにメモリアクセスユニ
ット16には、変換バッファ30とキャッシュ28との
中間に“書き込み待ち行列″36が設けられており、こ
れは、色々な数の書き込み動作の物理的な行き先アドレ
スを記憶するものである。この書き込み待ち行列36は
、実行ユニット20が命令を完了してそれにより得たデ
ータをメモリアクセスユニット16に送るまでアドレス
を維持する。このデータは予め記憶されている書き込み
アドレスと対にされキャッシュ28のそのメモリ位置に
書き込まれる。
又、0PU22は、メモリオペランドではない命令に基
づいても動作する。例えば、0PU22は、即値オペラ
ンド、短いリテラル及びレジスタオペランドも処理する
。これらの形式の命令の各々において、0PU22はそ
の結果を実行ユニット20に直接供給する。
命令を処理する第1の段階は、命令の″opコード”部
分をデコードすることである。各命令の第1の部分は、
命令において実行されるべき動作を指定するOpコード
より成る。デコード動作は、命令デコーダ26において
標準的なテーブル・ルックアップ技術を用いて行なわれ
る。命令デコーダ26は、ルックアップテーブルにおい
て命令を実行するためのマイクロコードスタートアドレ
スを見出し、そのスタートアドレスを実行ユニット20
へ送る。その後、実行ユニット2oは、指示されたスタ
ートアドレスから始めて予め記憶されたマイクロコード
を実行することによりその指定の動作を実行する。又、
デコーダ26は、ソースオペランド及び行き先オペラン
ド指定子が命令においてどこに生じるかを判断し、そし
てその命令を実行する前に予め処理を行なうためにこれ
らの指定子をオペランド処理ユニット22へ送る。
第2図を説明すれば、メモリアクセスユニット16は、
キャッシュ28と、変換バッファ30と、書き込み待ち
行列36と、−群のレジスタ38とを備えている。上記
したように、キャッシュ28は、主メモリ14に記憶さ
れた情報の小さな部分のコピーを記憶する高速メモリで
ある。キャッシュ28は主メモリ14よりも非常に高い
速度でアクセスすることができる。それ故、その目的は
、メモリアクセス(即ち、読み取り又は書き込み)を実
行するに必要な平均時間を短縮することである。キャッ
シュ28は、主メモリ14に記憶された情報のうちの僅
かな部分しか記憶しないので、キャッシュ28に含まれ
ていないメモリへアクセスしようとする命令が時々生じ
る。キャッシュ28は、これらの“ミス″′が生じたと
きを確認し、これらの場合に、キャッシュ28は主メモ
リ14から識別されたデータを検察する。もちろん、こ
れらの“ミス”の間にはCPU12の性能に影響が生じ
る。しかしながら、キャッシュ28では、全体的なメモ
リアクセス速度が高められる。
変換バッファ30は、最も最近に使用された仮想−物理
アドレス変換を記憶している高速連想メモリである。仮
想メモリシステムにおいては、単一の仮想アドレスを参
照すると、所望の情報が得られるまでに多数のメモリ参
照が生じる。しかしながら、変換バッファ30を使用す
る場合には、変換が、変換バッファ30内に単に″′ヒ
ツト”を見い出すことに簡単化される。0PU22及び
実行ユニット20によって発生されたこれらの仮想アド
レスはラッチ35に記憶され、マルチプレクサ37によ
ってアクセスされて転換バッファ3゜によって処理され
るまでそこに保持される。
仮想−物理アドレス変換が完了すると、物理アドレスが
書き込み待ち行列36又はレジスタ38の1つへ転送さ
れる。その名前が示すとおり、書き込み待ち行列36は
、対応する動作がメモリへの書き込みである場合にのみ
物理アドレスを受け取る。書き込み待ち行列36の目的
は、書き込み動作の物理的な書き込みアドレスに対して
一時的な記憶位置を与えることである。CPU12のパ
イプライン特性により、書き込みアドレスは、そこに記
憶されるべきデータが得られる前に入手される。実際に
、データが、実行ユニット20において命令が実行され
た後にのみ得られるようになる。更に、バイブラインに
おいて命令のための多数のオペランド指定子を予め処理
することが所望されるので、複数の物理的な書き込みア
ドレスがそれらの対応するデータを待機していくことが
生じる。従って、書き込み待ち行列36は、複数の物理
的な書き込みアドレスを受け入れるように構成された多
位置先入れ先出しバッファである。
これに対し、物理アドレスに対応する動作が読み取り動
作である場合には、変換バッファ30は、読み取り動作
のオペランドに対する物理アドレスを与える。読み取り
アドレスはレジスタ38の1つに送られ、そこでマルチ
プレクサ40によって選択されてキャッシュ28へ送ら
れる。キャッシュ28は、識別されたメモリ位置をアク
セスし、その位置に記憶されたデータをデータ返送ライ
ン34を経て実行ユニット20へ供給する。
キャッシュ28は2つの部分、即ちデータ記憶領域及び
タグ記憶領域に分割される。キャッシュ28は主メモリ
14の一部分しか含んでいないので、タグ記憶領域は、
現在どんなデータがデータ記憶領域に配置されるかを追
跡するために必要とされる。従って、キャッシュの読み
取り動作中には、タグ及びデータ記憶領域が1つのレジ
スタ38の物理アドレスを用いて同じクロックサイクル
中にアクセスされる。所望のデータがキャッシュに得ら
れる場合には次のクロックサイクル中に読み取りデータ
が直ちに得られる。要求されたデータがキャッシュ28
に得られる限り、キャッシュ28は各クロックサイクル
ごとに1つの読み取り動作を実行することができる。
これに対し、キャッシュ28は、他のクロックサイクル
ごとに1つの書き込み動作しか実行することができない
。書き込み動作中に、タグ記憶領域は新たなデータが書
き込まれる前に質問されねばならない。さもなくば、キ
ャッシュ28に既に存在するデータが重畳書き込みされ
て破壊されてしまう。従って書き込み動作中には、タグ
記憶領域が第1のクロックサイクル中にアクセスされそ
してデータ記憶領域が第2のクロックサイクル中にアク
セスされる。
従って、実行ユニット20とキャッシュ28との間のデ
ータ路が64ビツト巾であっても、データは32ビツト
/クロツクサイクルのレートで(2つのサイクルごとに
64ビツトのレートで)キャッシュ28に記憶される。
データ路の最大帯域中は32ビツト/サイクルである。
しかしながら、キャッシュ28は64ビツトの記憶動作
を実行できるもので、連続する32ビツトの書き込み動
作を互いに対にして1つの64ビット動作で記憶できる
場合には32ビツトのデータ路を64ビツトデータ路と
同じレートで実行することができる。
多数の32ビツトワードを書き込むべき場合には、これ
らが通常メモリにおいて隣接するようにされる。更に、
殆どのデータはメモリにおいて自然に整列される。自然
に整列されたクオドワードは、3つの最下位ビットが0
となるようなアドレスを有している。又、クオドワード
は2つのロングワードで構成されることに注意されたい
。それ故、実行ユニット20からの2つの連続するロン
グワード書き込み動作がキャッシュ28内の同じ整列さ
れたクオドワード内に入ることが考えられる。これは、
典型的に、倍精度フローティングポイントデータ、スト
リングデータ、プロセデュア呼び出しスタックフレーム
等々について言えることである。
一次及び二次の書き込みバッファ50及び52は、実行
ユニット20から32ビツトデータバスに並列に接続さ
れる。一次及び二次の書き込みバッファ50及び52の
出力は、各々、キャッシュ28に至る64ビツトデータ
路の下位及び上位の32ビツトに接続される。又、この
64ビツトデータ路は、キャッシュ28を主メモリ28
に相互接続し、主メモリ28からキャッシュ28を再充
填するのに用いられる。キャッシュの再充填中に、タグ
記憶領域に質問する必要がないことに注意されたい。実
行ユニットで開始される書き込み動作とは異なり、キャ
ッシュ再充填中の書き込み動作は各クロックサイクル中
に行なうことができる。従って、この場合には、64ビ
ツトのデータ路がキャッシュ再充填に対してデータ記憶
レートを最適化する。
一次書き込みバッファ50は、通常、キャッシュ28に
書き込むべきデータを受け取って記憶する。2次書き込
みバッファ52は、実行ユニット20が2つの連続する
ロングワード書き込み動作の第2のものを供給する場合
にのみデータを受け取って記憶する。その後、キャッシ
ュ28は、書き込みバッファ50.52の各々からロン
グワードのデータを受け入れる。2次書き込みバッファ
52は、対にされたロングワード書き込み動作をこのよ
うに最適化する間にのみ使用される。
第3図には、変換バッファ30.キャッシュ28及び書
き込みバッファ50.52の内部動作の機能図が示され
ている。変換バッファ30は、実行ユニット20から4
つの異なった形式の信号、即ち32ビツト仮想アドレス
、1ビットアドレス有効信号、5ビットコマンド信号及
び3ピットコンテクスト信号を受け取る。32ビツトの
仮想アドレスは、上記したように、ラッチ35に記憶さ
れ、そしてそこからマルチプレクサ37によって最終的
にアクセスされて仮想アドレスから物理アドレスに変換
される。下位ビットはRAM56に対するポインタとし
て働く。そのRAM位置に実際に記憶されたデータの上
位アドレスビットは、仮想アドレスの上位ビットと共に
比較器58に送られる。それらが一致される場合には、
RAM位置に記憶されたアドレスが対応する物理アドレ
スであり、比較器58の出力信号によってバッファ60
にクロックされる。
それと同時に、このアドレスが最適化されたクオドワー
ド書き込み動作の第1のロングワードに対応するかどう
かを判断するために、変換バッファ30は、3つの状態
を満足するかどうか判断しなければならない。第1に、
アドレスはクオドワード書き込み動作を実行するために
クオドワード整列されねばならない、アドレスがクオド
ワード整列されたかどうかを決定するために、仮想アド
レスの下位3ビツトを検査するだけでよい。従って、3
ビツトの比較器62は、その第1の入力が仮想アドレス
の下位3ビツトに接続されそしてその第2の入力が予め
選択された一定の値000に接続されている。
第2の条件は、実行ユニット20がクオドワード書き込
み動作を実際に要求していることを必要とする。実行ユ
ニット20によって与えられる3ピットコンテクスト信
号は、実行すべき動作のサイズを識別する予め選択され
たコードを含み、一方、5ビツトコマンドフイールドは
動作の形式(即ち、書き込み)を指示する。実行ユツト
20は、クオドワード、ロングワード又はバイト書き込
み動作を要求することができる。最適化は、実行ユニッ
ト20がクオドワード書き込み動作を要求した場合にの
み行なわれる。従って、3ビツト比較器64は、第1入
力がコンテクスト信号に接続されそしてその第2人力が
クオドワード書き込み要求に対するコードに合致する予
め選択された一定値に接続される。
比較器62.64の出力は、3人力ANDゲート66の
入力に接続される。ANDゲート66への第3の入力は
、実行ユニット20からのアドレス有効信号に直結され
る。このアドレス有効信号は、実行ユニット20がその
後のロングワードアドレス及びそれに対応するデータを
、クオドワード最適化を行なうべき時間に適切に供給し
たことを指示する。従って、ANDゲート66は1ビツ
トのクオドワード有効信号をキャッシュ28に供給し、
これにより、キャッシュ28は書き込みバッファ50.
52の各々からロングワードデータを受け取ることがで
きる。
キャッシュ28内において、バッファ制御器68は、ク
オドワード有効信号を、実行ユニット20からのデータ
有効信号と共に受け取る。データ有効信号は、32ビツ
トデータバスにデータが出されたことを指示するために
実行ユニット20によって送られる二通常、最適化され
ないデータ転送中及び最適化されたデータ転送の下位ロ
ングワードの転送中には、バッファ制御器68がホール
ド信号を一次書き込みバッファ50へ発生し、この書き
込みバッファ50がデータバス上にその時存在するデー
タを記憶できるようにする。バッファ制御器68は、ク
オドワード有効信号がないときにデータ有効信号を受け
取るのに応答してこの一次ホールド信号を発生する。
一方、クオドワード及びデータ有効信号の両方が存在す
るときには、バッファ制御器68はホールド信号を二次
書き込みバッファ52へ出力し、該バッファがバス上に
その時現れるデータを記憶するようにする。このように
、最適化されたクオドワード書き込み動作中には、書き
込みバッファ50.52に、クオドワードデータの下位
及び上位のロングワードが連続的にロードされる。
キャッシュ28内に含まれた64ビツトのRAMアレイ
70は、2組の32ビット記憶位置に分割され、各32
ビツトの組は独立して動作できるイネーブル入力を有し
ている。変換バッファ30からの32ビツトの物理アド
レスはRAMアレイ70に対するポインタとして働き、
両方のイネーブル入力はクオドワード有効信号に接続さ
れている。従って、クオドワード有効信号がアサートさ
れるときの最適化されたクオドワード書き込み中には、
RAMアレイ70の両方のロングワードがイネーブルさ
れ、書き込みバッファ50.52にその時保持されてい
る2つのロングワードを記憶する。
最適化されたクオドワード書き込み動作のタイミング及
び動作は、第4図に示されたタイミング図を参照するこ
とによって理解されよう。コンテクスト、データ、クオ
ドワード有効信号、キャッシュルックアップ及び書き込
み動作に対して、5つのクロックサイクル周期A−Eが
示されている。クロックサイクルAから始めて、実行ユ
ニット20は、その時送られているデータ及びアドレス
がクオドワード書き込み動作の第1のロングワードに対
応することを指示するコンテクスト信号を発生する。短
い時間の後に、最初の32ビツトのデータと、データ有
効信号とが実行ユニット20から一次書き込みバッファ
50へ送られる。クオドワード有効信号がない場合には
、バッファ制御器68は、−次書き込みバッファ50が
第1のロングワードデータをセーブできるようにする。
それと同時に、変換バッファ30は仮想−物理アドレス
変換を実行し、それにより得た物理アドレスをキャッシ
ュ28へ供給する。
クロックサイクルBにおいて、実行ユニット20は、そ
のとき供給されているデータ及びアドレスがクオドワー
ド書き込み動作の第2のロングワードに対応することを
指示する別のコンテクスト信号を発生する。その短時間
の後に、第2の32ビツトのデータと、データ有効信号
とが実行ユニット20から第2の書き込みバッファ52
へ送られる。実行ユニット20は第2のロングワードの
データを首尾良く供給しているので、アドレス有効信号
がアサートされ、これによりクオドワード有効信号が同
様にアサートされる。クオドワード有効信号の存在によ
り、バッファ制御器68は一次書き込みバッファ52が
第2のロングワードデータをセーブできるようにする。
キャッシュ28は書き込み動作を実行するのに2つのク
ロックサイクルを必要とすることを想起されたい。第1
のクロックサイクルは、キャッシュラムアレイ70内の
タグを調べて、良好なデータを重畳書き込みしないよう
にすることを含み、そして第2のクロックサイクルはR
AMアレイにデータを実際に書き込むことのみに使用さ
れる。
従って、クロックサイクルBの間に、キャッシュ28は
ルックアップ機能を実行する。
クロックサイクルCにおいて、アサートされたクオドワ
ード有効信号は、RAMアレイ70の両方の32ビツト
部分がイネーブルされて、一次及び二次の両方の書き込
みバッファ50及び52がRAMアレイ70にロードさ
れるよう確保する。
それと同時に、実行ユニット20は、キャッシュ28に
書き込まれるべき次のクオドワードデータに対し、クオ
ドワードコンテクスト信号を送信する。クロックサイク
ルC及びDは、クロックサイクルA及びBと実質的に同
じである。従って、クロックサイクルC及びその後の各
第2のクロックサイクル中には、64ビツトのキャッシ
ュ書き込み動作が実行される。
第4図のタイミング図について説明した論理的な状態は
、実行ユニット20かもキャッシュ28までの最大デー
タ転送レートを表していることを理解されたい。従って
、32ビツトデータバスのみを使用しそしてキャッシュ
28が2つのクロックサイクルごとに1つの書き込み動
作しか実行できないように拘束された状態で、本発明は
、クロックサイクル当たり32ビツトという効果的な転
送レートを実現する。
これに対し、第5図のタイミング図は、実行ユニットと
キャッシュ28との間データを、最適なりオドワード転
送を試みたが失敗した場合について示している。最適な
りオドワード転送が失敗しても、通常のロングワード転
送がまだ行なわれ、CPUが動作を継続して一時的に低
いレートで動作できるようになる。
クロックサイクルAにおいて、実行ユニット20はクオ
ドワードアドレス有効信号を発生し、これは、現在供給
されているデータ及びアドレスがクオドワード書き込み
動作の第1のロングワードに対応することを示すもので
ある。その短時間の後に、第1の32ビツトのデータと
、データ有効信号とが実行ユニット20から一時書き込
みバッファ50へ送られる。クオドワード有効信号がな
い場合には、バッファ制御器68は、1次書き込みバッ
ファ50が第1のロングワードデータを制御できるよう
にする。それと同時に、変換バッファ30は仮想−物理
アドレス変換を実行し、それにより得られた物理アドレ
スをキャッシュ28へ供給する。
クロックサイクルBにおいて、実行ユニット20は別の
コンテクスト信号を発生し損なっており、従って、所望
のロングワードデータ及びアドレスがそのとき供給され
てないことを示す。従って、クオドワード有効信号はア
サートされず、第2の書き込みバッファ52はバス上に
存在するデータをセーブするようにイネーブルされず、
RAMアレイ70の両方の32ビツト部分はイネーブル
されない。キャッシュ28はクロックサイクルBにおい
てルックアップを実行すると共にクロックサイクルCに
おいて書き込み動作を実行するが、RAMアレイ70の
下位の32ビツト部分のみがイネーブルされて、−時書
き込みバッファ50の内容しか受け取ることができない
それ故、有効なデータ転送レートは、最適なりオドワー
ド転送レートの半分に過ぎない。従って、その後の第2
のブロックサイクルの度に32ビツトのロングワードが
転送される。
更に、失敗が生じた最適なりオドワード転送に対するタ
イミング図は通常のロングワード転送の場合と実質的に
同じであることに注意されたい。
唯一の相違は、クロックサイクルにおいて、実行ユニッ
ト20がクオドワード転送ではなくてロングワード転送
に対応するコンテクスト信号を供給することである。そ
れ故、失敗となった最適なりオドワード転送でも、最適
でないロングワード転送と同じ有効転送レートが得られ
る。
第6図は、キャツシュRAMイネーブル信号の論理図で
ある。ANDゲート66は、1対のラッチ80.82か
ら入力を受け取ると共に、実行ユニット20からアドレ
ス有効信号を受け取る。
ラッチ80の入力は、比較器62の出力に接続され、こ
の信号はクオドワード整列されたクオドワードアドレス
を表している。ラッチ82の入力は比較器64の出力に
接続され、その信号は、クオドワード書き込みが要求さ
れていることを示す実行ユニット20からのコンテクス
ト信号を表している。ANDゲート66の出力は、クオ
ドワード有効信号であり、これは1対のORゲート84
.86を経てキャツシュRAMアレイ70の上位及び下
位の32ビツト部分のイネーブル入力に送られる。
ORゲート82.84の各々は、RAMアレイ70の上
位及び下位の32ビツト部分をイネーブルするための第
2の入力も有している。上位の32ビツト部分は、コン
テクスト信号がロングワード書き込み要求に対応しそし
てロングワード書き込み要求のアドレスがRAMアレイ
70の上位の32ビツト部分に対応するときにイネーブ
ルされる。ANDゲート88は、コンテクスト=ロング
ワード及びアドレス=001の入力を受け取る。
従って、ANDゲート88の出力は、実行ユニットがロ
ングワード書き込み動作を要求しそして書き込まれるべ
きアドレスが上位の32ビツト部分に対応するときにの
みアサートされる。
同様に、下位の32ビツト部分も、コンテクスト信号が
ロングワード書き込み要求に対応しそしてロングワード
書き込み要求のアドレスがRAMアレイ70の下位の3
2ビツト部分に対応するときにイネーブルされる。AN
Dゲート90はコンテクスト=ロングワード及びアドレ
ス;000の入力を受け取る。さらに、ロングワード転
送を要求しているオリジナルテキストは、ロングワード
の要求に下がりそしてANDゲート88.90の入力へ
送られる。
それ故、最適なりオドワード転送が可能であるときには
、クオドワード有効信号がORゲートき4.86を経て
RAMアレイ70の上位及び下位のイネーブル入力に送
られる。一方、最適なりオドワード転送が失敗に終わっ
た場合でも、その下げられたクオドワードコンテクスト
信号が適当なANDゲート88.90を経てRAMアレ
イ70の下位又は上位のイネーブル入力へ送られる。
【図面の簡単な説明】
第1図は、中央処理ユニット及びそれに関連したメモリ
の一部分を示すトップレベルのブロック図、 第2図は、メモリアクセスユニットの変換バッファ及び
キャッシュ部分のブロック図、第3図は、変換バッファ
及びキャッシュの内部動作を示す機能図、 第4図は、変換バッファ及びメモリアクセスユニットに
生じる著しい制御事象を示すタイミング図、 第5図は、最適でない書き込み動作中に変換バッファ及
びメモリアクセスユニットに生じる著しい制御事象を示
すタイミング図、そして第6図は、キャツシュRAMイ
ネーブル信号の論理図である。 lO・・・パイプラインコンピュータシステム12・・
・中央処理ユニット(CP U)14・・・主メモリ 16・・・メモリアクセスユニット 18・・・命令ユニット 20・・・実行ユニット 22・・・オペランド処理ユニット 24・・・プログラムカウンタ 26・・・命令デコーダ 28・・・キャッシュ 30・・・変換バッファ  35・・・ラッチ36・・
・書き込み待ち行列 37.40・・・マルチプレクサ 38・・・レジスタ

Claims (11)

    【特許請求の範囲】
  1. (1)コンピュータシステムのキャッシュメモリへのデ
    ータの流れを制御する装置において、第1のロングワー
    ドのデータと、データを記憶すべきアドレスと、その隣
    接アドレスに記憶すべき第2のロングワードのデータが
    次のクロックサイクル中に供給されることを指示する信
    号とを発生するための手段と、 上記キャッシュメモリの下位部分に接続された出力、及
    び上記第1のロングワードのデータを受け取る入力とを
    有する一次書き込みバッファと、上記キャッシュの上位
    部分に接続された出力と、上記第1のロングワードがク
    オドワード整列されるのに応答して第2のロングワード
    のデータを受け取るようにされた入力とを有し、上記第
    2のロングワードのデータが上記次のクロックサイクル
    中に実際に送られるようにされた二次書き込みバッファ
    と、 上記アドレスにおいて上記キャッシュの上位及び下位部
    分を実質的に同時にイネーブルし、これにより、上記一
    次及び2次バッファの内容がクオドワードとして上記キ
    ャッシュの上記アドレスに記憶されるようにする手段と
    を具備することを特徴とする装置。
  2. (2)上記一次及び二次の書き込みバッファが1ロング
    ワード巾であるように各々構成され、上記コンピュータ
    システムの実行ユニットからデータバスへ3つの入力が
    並列に接続される請求項1に記載の装置。
  3. (3)上記キャッシュは、上記クオドワード整列された
    アドレスがキャッシュに得られるかどうかを判断するた
    めにルックアップを行なうようにされ、上記ルックアッ
    プは、上記アドレスが受け取られる同じクロックサイク
    ル中に行なわれ、これにより、上記キャッシュは、上記
    二次書き込みバッファによって上記第2のロングワード
    のデータが受け取られた直後に上記クオドワードのデー
    タを自由に記憶できる請求項1に記載の装置。
  4. (4)上記次のクロックサイクルに上記第2のロングワ
    ードのデータが存在しないのに応答して上記キャッシュ
    内のアドレスの上位及び下位部分を同時にイネーブルす
    るのを防止する手段を更に備えた請求項1に記載の装置
  5. (5)上記次のクロックサイクルにおいて第2のロング
    ワードのデータが存在しないのに応答して上記キャッシ
    ュ内のアドレスの下位部分のみをイネーブルする手段を
    含む請求項4に記載の装置。
  6. (6)2つのクロックサイクル時間周期中にコンピュー
    タシステムのキャッシュメモリへ送られるデータの流れ
    を制御する方法において、 第1のロングワードのデータと、このデータを記憶すべ
    きアドレスと、上記第1のクロックサイクル中のコンテ
    クスト信号であって、隣接するアドレスに記憶されるべ
    き第2のロングワードのデータが第2のクロックサイク
    ル中に送られることを指示するようなコンテクスト信号
    とを供給し、第1のクロックサイクル中に一次書き込み
    バッファに上記第1ロングワードのデータを記憶し、第
    2のクロックサイクル中に二次書き込みバッファに上記
    第2のロングワードのデータを記憶し、上記第2のロン
    グワードは、上記第1のロングワードがクオドワード整
    列されるのに応答して記憶され、そして上記第2のロン
    グワードのデータは上記第2のクロックサイクル中に実
    際に供給され、そして 第2のクロックサイクル中に上記キャッシュの上記アド
    レスにおける上位及び下位部分を実質的に同時にイネー
    ブルし、これにより、上記一次及び二次バッファの内容
    がキャッシュ内の上記アドレスにクオワードとして記憶
    されるようにすることを特徴とする方法。
  7. (7)上記第2のクロックサイクルにおいて上記第2の
    ロングワードのデータが存在しないのに応答して上記キ
    ャッシュ内のアドレスの上位及び下位部分を同時にイネ
    ーブルするのを阻止する段階を含む請求項6に記載の方
    法。
  8. (8)上記第2のクロックサイクルにおいて上記第2の
    ロングワードのデータが存在しないのに応答して上記第
    2のクロックサイクル中に上記キャッシュ内のアドレス
    の下位部分のみをイネーブルする段階を含む請求項7に
    記載の方法。
  9. (9)上記アドレスがクオドワードのデータを記憶する
    のに利用できるかどうかを判断するために上記第1のク
    ロックサイクル中にキャッシュ内のクオドワード整列さ
    れたアドレスをルックアップする段階を含む請求項8に
    記載の方法。
  10. (10)2つのクロックサイクル時間周期中にロングワ
    ードサイズのバスからコンピュータシステムのキャッシ
    ュメモリへ送られるデータの流れを制御する方法であっ
    て、上記キャッシュメモリは、クオドワードのデータが
    単一のクロックサイクル中に上記キャッシュメモリへ書
    き込まれるようなクオドワードサイズのデータアクセス
    路を有するものであり、上記方法は、 a)上記2つのクロックサイクル時間周期のうちの第1
    サイクル中に、上記バスを経て上記キャッシュへ第1の
    ロングワードのデータを供給し、上記第1のロングワー
    ドのデータをバッファに記憶し、そして上記データを書
    き込むべきキャッシュブロックアドレスで上記キャッシ
    ュをアドレスし、そのアドレスされたキャッシュブロッ
    クがデータを自由に受け取れるときにヒット信号を得る
    ようにし、そして b)上記2つのクロックサイクル時間周期のうちの第2
    のクロックサイクル中に、上記アドレスされたキャッシ
    ュブロックが自由にデータを受け取れることを指示する
    上記ヒット信号と、上記第1のロングワードのデータが
    第2のロングワードのデータと対にされてクオドワード
    のデータを形成することを指示するクオドワードコンテ
    クスト信号と、上記クオドワードのデータが上記キャッ
    シュブロックアドレスと整列されたアドレスに記憶され
    るべきであることを指示するクオドワードの整列された
    アドレス信号とに応答して、上記第2のロングワードの
    データを上記バスを経て上記キヤッシユへ供給すると共
    に、上記クオドワードデータアクセス路の各々の異なっ
    た部分経て上記第1及び第2のロングワードのデータを
    送ることにより上記第2のロングワードのデータと上記
    バッファからの上記第1のロングワードのデータとを上
    記アドレスされたキャッシュブロックに記憶するという
    段階を具備することを特徴とする方法。
  11. (11)上記第2のクロックサイクル中にデータ有効信
    号が受け取られないときに上記アドレスされたキャッシ
    ュブロックにデータを記憶するのを禁止する段階を更に
    備えた請求項10に記載の方法。
JP1234514A 1989-02-03 1989-09-08 データ路の巾が予め定められたコンピュータシステムのデータ記憶レートを増加する方法及び装置 Pending JPH02207351A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US306826 1989-02-03
US07/306,826 US5019965A (en) 1989-02-03 1989-02-03 Method and apparatus for increasing the data storage rate of a computer system having a predefined data path width

Publications (1)

Publication Number Publication Date
JPH02207351A true JPH02207351A (ja) 1990-08-17

Family

ID=23187031

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1234514A Pending JPH02207351A (ja) 1989-02-03 1989-09-08 データ路の巾が予め定められたコンピュータシステムのデータ記憶レートを増加する方法及び装置

Country Status (7)

Country Link
US (1) US5019965A (ja)
EP (2) EP0381323B1 (ja)
JP (1) JPH02207351A (ja)
AT (1) ATE165679T1 (ja)
AU (1) AU628526B2 (ja)
CA (1) CA1325291C (ja)
DE (1) DE69032276T2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0756813A (ja) * 1993-08-02 1995-03-03 Internatl Business Mach Corp <Ibm> データ処理システム及びデータ・ストア方法
JP2010191638A (ja) * 2009-02-17 2010-09-02 Fujitsu Semiconductor Ltd キャッシュ装置

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5019965A (en) * 1989-02-03 1991-05-28 Digital Equipment Corporation Method and apparatus for increasing the data storage rate of a computer system having a predefined data path width
US5146582A (en) * 1989-06-19 1992-09-08 International Business Machines Corp. Data processing system with means to convert burst operations into memory pipelined operations
JP2504206B2 (ja) * 1989-07-27 1996-06-05 三菱電機株式会社 バスコントロ―ラ
CA2028085A1 (en) * 1989-11-03 1991-05-04 Dale J. Mayer Paged memory controller
US6807609B1 (en) * 1989-12-04 2004-10-19 Hewlett-Packard Development Company, L.P. Interleaving read and write operations on a bus and minimizing buffering on a memory module in a computer system
CA2045756C (en) * 1990-06-29 1996-08-20 Gregg Bouchard Combined queue for invalidates and return data in multiprocessor system
US5251310A (en) * 1990-06-29 1993-10-05 Digital Equipment Corporation Method and apparatus for exchanging blocks of information between a cache memory and a main memory
DE69127936T2 (de) * 1990-06-29 1998-05-07 Digital Equipment Corp Busprotokoll für Prozessor mit write-back cache
US5359722A (en) * 1990-07-23 1994-10-25 International Business Machines Corporation Method for shortening memory fetch time relative to memory store time and controlling recovery in a DRAM
IE860318L (en) * 1990-10-01 1986-08-05 Digital Equipment Corp System bus for a multi-cache data processing system
US5454093A (en) * 1991-02-25 1995-09-26 International Business Machines Corporation Buffer bypass for quick data access
US5459849A (en) * 1991-08-02 1995-10-17 International Business Machines Corporation Method and apparatus for compressing cacheable data
EP0547769B1 (en) * 1991-12-18 1999-10-13 Sun Microsystems, Inc. Write overlap with overwrite prevention
US5796976A (en) * 1993-05-04 1998-08-18 Digital Equipment Corporation Temporary storage having entries smaller than memory bus
US5740398A (en) * 1993-10-18 1998-04-14 Cyrix Corporation Program order sequencing of data in a microprocessor with write buffer
JP2778913B2 (ja) * 1994-04-26 1998-07-23 株式会社東芝 マルチプロセッサシステム及びメモリアロケーション方法
EP0706138A1 (en) * 1994-10-03 1996-04-10 International Business Machines Corporation Alternating data valid control signals for high performance data transfer
US5603041A (en) * 1994-12-13 1997-02-11 International Business Machines Corporation Method and system for reading from a m-byte memory utilizing a processor having a n-byte data bus
US6321315B1 (en) * 1999-09-30 2001-11-20 Micron Technology, Inc. Method and apparatus to reduce memory read latency
US20030086503A1 (en) * 2001-11-08 2003-05-08 Koninklijke Philips Electronics N.V. Apparatus and method for passing large bitwidth data over a low bitwidth datapath
US9977693B2 (en) 2015-09-23 2018-05-22 Hanan Potash Processor that uses plural form information
US10067878B2 (en) 2015-09-23 2018-09-04 Hanan Potash Processor with logical mentor
US10061511B2 (en) 2015-09-23 2018-08-28 Hanan Potash Computing device with frames/bins structure, mentor layer and plural operand processing
US10095641B2 (en) * 2015-09-23 2018-10-09 Hanan Potash Processor with frames/bins structure in local high speed memory
US10140122B2 (en) 2015-09-23 2018-11-27 Hanan Potash Computer processor with operand/variable-mapped namespace
US11093286B2 (en) 2016-04-26 2021-08-17 Hanan Potash Computing device with resource manager and civilware tier
US11841792B1 (en) 2019-12-09 2023-12-12 Amazon Technologies, Inc. Instructions with multiple memory access modes
US11334358B2 (en) * 2019-12-09 2022-05-17 Amazon Technologies, Inc. Hardware accelerator having reconfigurable instruction set and reconfigurable decoder

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5996584A (ja) * 1982-11-24 1984-06-04 Nec Corp 情報処理装置
JPS63145556A (ja) * 1986-12-09 1988-06-17 Nec Corp キヤツシユメモリデ−タ転送方式
JPS6450139A (en) * 1987-08-19 1989-02-27 Nec Corp Cache memory access system
JPH0210446A (ja) * 1988-06-28 1990-01-16 Hitachi Ltd バッファ記憶装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1443777A (en) * 1973-07-19 1976-07-28 Int Computers Ltd Data processing apparatus
US4317168A (en) * 1979-11-23 1982-02-23 International Business Machines Corporation Cache organization enabling concurrent line castout and line fetch transfers with main storage
US4395758A (en) * 1979-12-10 1983-07-26 Digital Equipment Corporation Accelerator processor for a data processing system
US4392200A (en) * 1980-01-28 1983-07-05 Digital Equipment Corporation Cached multiprocessor system with pipeline timing
CA1174370A (en) * 1980-05-19 1984-09-11 Hidekazu Matsumoto Data processing unit with pipelined operands
US4381541A (en) * 1980-08-28 1983-04-26 Sperry Corporation Buffer memory referencing system for two data words
US4509116A (en) * 1982-04-21 1985-04-02 Digital Equipment Corporation Special instruction processing unit for data processing system
US4500958A (en) * 1982-04-21 1985-02-19 Digital Equipment Corporation Memory controller with data rotation arrangement
JPH0644245B2 (ja) * 1983-12-29 1994-06-08 富士通株式会社 ストアバッファ装置
US4736293A (en) * 1984-04-11 1988-04-05 American Telephone And Telegraph Company, At&T Bell Laboratories Interleaved set-associative memory
US4860192A (en) * 1985-02-22 1989-08-22 Intergraph Corporation Quadword boundary cache system
US5019965A (en) * 1989-02-03 1991-05-28 Digital Equipment Corporation Method and apparatus for increasing the data storage rate of a computer system having a predefined data path width

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5996584A (ja) * 1982-11-24 1984-06-04 Nec Corp 情報処理装置
JPS63145556A (ja) * 1986-12-09 1988-06-17 Nec Corp キヤツシユメモリデ−タ転送方式
JPS6450139A (en) * 1987-08-19 1989-02-27 Nec Corp Cache memory access system
JPH0210446A (ja) * 1988-06-28 1990-01-16 Hitachi Ltd バッファ記憶装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0756813A (ja) * 1993-08-02 1995-03-03 Internatl Business Mach Corp <Ibm> データ処理システム及びデータ・ストア方法
JP2010191638A (ja) * 2009-02-17 2010-09-02 Fujitsu Semiconductor Ltd キャッシュ装置

Also Published As

Publication number Publication date
EP0817061A3 (en) 1998-04-15
EP0381323A3 (en) 1992-05-06
EP0817061A2 (en) 1998-01-07
DE69032276T2 (de) 1998-12-17
US5019965A (en) 1991-05-28
CA1325291C (en) 1993-12-14
AU5393590A (en) 1991-12-19
ATE165679T1 (de) 1998-05-15
EP0381323B1 (en) 1998-04-29
DE69032276D1 (de) 1998-06-04
AU628526B2 (en) 1992-09-17
EP0381323A2 (en) 1990-08-08

Similar Documents

Publication Publication Date Title
JPH02207351A (ja) データ路の巾が予め定められたコンピュータシステムのデータ記憶レートを増加する方法及び装置
US5222223A (en) Method and apparatus for ordering and queueing multiple memory requests
US5125083A (en) Method and apparatus for resolving a variable number of potential memory access conflicts in a pipelined computer system
US5349651A (en) System for translation of virtual to physical addresses by operating memory management processor for calculating location of physical address in memory concurrently with cache comparing virtual addresses for translation
US5113515A (en) Virtual instruction cache system using length responsive decoded instruction shifting and merging with prefetch buffer outputs to fill instruction buffer
US4985825A (en) System for delaying processing of memory access exceptions until the execution stage of an instruction pipeline of a virtual memory system based digital computer
US5249286A (en) Selectively locking memory locations within a microprocessor&#39;s on-chip cache
JPH04109336A (ja) データ処理装置
CA2383532A1 (en) Branch instruction for processor architecture
JPH02240733A (ja) 可変長命令アーキテクチャにおける複数の規制詞の復合方法及び装置
JPH0559455B2 (ja)
US5119484A (en) Selections between alternate control word and current instruction generated control word for alu in respond to alu output and current instruction
JPH10228376A (ja) 複数レジスタ命令を処理する方法及びプロセッサ
US5226170A (en) Interface between processor and special instruction processor in digital data processing system
CN110554887A (zh) 间接存储器提取器
JP2023070069A (ja) 仮想マシンにおけるユーザレベル割り込み
JP2023018655A (ja) マルチテナントスケーラブルアクセラレータの高性能ページフォールト処理のための方法および装置
JPH08249175A (ja) スーパースカラ・プロセッサ装置内の非アーキテクト命令を選択的にサポートする方法及び装置
US5117491A (en) Ring reduction logic using parallel determination of ring numbers in a plurality of functional units and forced ring numbers by instruction decoding
IE901526A1 (en) Method and apparatus for increasing the data storage rate of¹a computer system having a predefined data path width
EP0302926B1 (en) Control signal generation circuit for arithmetic and logic unit for digital processor
JP2696578B2 (ja) データ処理装置
EP0418220B1 (en) Destination control logic for arithmetic and logic unit for digital data processor
IE901527A1 (en) Method and apparatus for ordering and queuing multiple¹memory requests
IE901528A1 (en) Method and apparatus for controlling the conversion of¹virtual to physical memory addresses in a digital computer¹system