JPH02214937A - データ処理装置 - Google Patents

データ処理装置

Info

Publication number
JPH02214937A
JPH02214937A JP1314492A JP31449289A JPH02214937A JP H02214937 A JPH02214937 A JP H02214937A JP 1314492 A JP1314492 A JP 1314492A JP 31449289 A JP31449289 A JP 31449289A JP H02214937 A JPH02214937 A JP H02214937A
Authority
JP
Japan
Prior art keywords
cache
data
storage
address
operand
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
JP1314492A
Other languages
English (en)
Inventor
Steven L Gregor
ステイブン・エル・グレゴー
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH02214937A publication Critical patent/JPH02214937A/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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30029Logical and Boolean instructions, e.g. XOR, NOT
    • 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
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing

Landscapes

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

Abstract

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

Description

【発明の詳細な説明】 A、産業上の利用分野 本発明は、主記憶装置へのアクセスの必要性により、遅
延をもたらす命令を、キャッシュ内で実行するための論
理回路を含む、キャッシュ記憶装置をもつ計算システム
に関する。
詳しくは、本発明は、データを記憶装置からシステムの
実行装置へ移動したり、記憶装置へ戻したりすることな
く、キャッシュ自体の内部にある専用論理回路が、キャ
ッシュ記憶装置内の独立したALUでIBMシステム/
370記憶装置即時命令及び記憶装置間命令を実行する
働きをする、専用キャッシュ記憶システムに関する。
B、従来の技術 パイプライン式のプロセッサ編成は、従来システムより
優れたはっきりした利点をもっことが認められている。
同様に、高速キャッシュ記憶システムを使用してプロセ
ッサの速度とメモリ・サイクル回数をよりよく適合させ
ることは、計算システムの性能を向上させるために有効
であった。その後の発展で、パイプライン式プロセッサ
・システムにキャッシュ記憶装置が組み込まれ、−層性
能が向上した。従来のキャッシュ記憶システムでは、デ
ータを記憶装置から実行装置へ移動したり、記憶装置へ
戻したりしなければならないために、あるタイプのIB
Mシステム/370 370−XA命令を実行するとき
、しばしばより多くのサイクルを要する。このような動
作は、その後のキャッシュを用いる動作量で共通のデー
タまたはデータ・パスあるいはその両方を使用する場合
、干渉を受けることがある。たとえば、従来システムで
は、記憶装置即時命令の場合には、データをキャッシュ
から取り出さなければならず、動作を実行するのに取出
し動作を待つ必要がある。動作が実行され、結果がキャ
ッシュに記憶される。
キャッシュ内でデータの取出し及び記憶を行なうために
1本の共通双方向データ・パスを使用する場合、遅延が
さらに大きくなることがある。実行装置における従来の
実行及び本発明によるキャッシュ内実行のサイクル・ダ
イヤグラムは以下の表のようになる。
表1.従来の実行 表2.キャッシュ内の実行 従来の実行法で記憶装置即時命令に対してリストされた
動作は、記憶装置間命令でも必要である。
そのような動作の実行は、パイプライン化されていると
きでも、多数のサイクルに拡張できることがわかる。と
いうのは、各種の動作を実行するために各種のハードウ
ェア装置間でデータを移動しなければならないからであ
る。取出しの際は、キャッユ・データ・アレイ及びアド
レス・アレイ(ディレクトリ)を同じサイクルで使用す
る必要があり、一方、記憶の際は、キャッシュ・データ
・アレイ内に結果を記憶する前回のサイクルでキャッシ
ュ・アドレス・アレイにアクセスする必要があるため、
キャッシュ資源の争奪が行なわれる。
米国特許第4437149号は、データ用及び命令用に
分離したキャッシュ・メモリを利用した7’−夕処理シ
ステムを示している。このシステムは、主メモリから命
令キャッシュへのパス上にある命令復号手段を含み、こ
の命令復号手段は、命令を少なくとも部分的に復号し、
復号の結果を命令キャッシュ内に記憶する。このシステ
ムは、キャッシュ内にあるデータに対して命令を実行す
る機能はない。
米国特許第4471432号に開示されたパイプライン
式プロセッサでは、命令は実行前に調べられ、実行のた
めに適当なプロセッサへ送られる。
その中で命令が実行されるというキャッシュは開示され
ていない。
米国特許第4516203号は、特殊コードを使用して
キャッシュ化可能なデータ項目を指定するキャッシュ・
システムを記載している。その中で命令が実行されると
いうキャッシュは開示されていない。
米国特許第4734852号に所載のシステムは、レジ
スタ・ファイルを組み込んでおり、プロセッサ・アクセ
ス及び記憶装置アクセスがオーバーラツプしていて、命
令実行と並行して記憶装置へのデータ参照が可能である
。レジスタ・ファイルに対するロード及び記憶は、プロ
グラムがまだロードされていないデータの使用を必要と
する場合は、部分的に実行されるか、または中断される
。このステムは、キャッシュ内での命令の実行を開示し
ていない。
米国特許第4747044号は、主記憶装置に含まれて
いるマイクロコードによって高水準命令が直接実行され
るシステムを記載している。その中で命令が実行される
というキャッシュ・システムは開示されていない。
米国特許第4750112号のパイプライン式計算シス
テムは、マイクロコード制御の命令実行装置と共に使用
される命令パイプライン及び実行パイプラインをもつパ
イプライン式プロセッサに関する。その中で命令が実行
できるキャッシュ・システムは開示されていない。
米国特許第477593(3号では、命令実行の進行を
妨げずに、書込み要求を待ち行列に入れることができる
、2サイクル・メモリが開示されている。プロセッサは
、書込み待ち行列から取出しを行なうことができる。キ
ャッシュ記憶装置内での命令実行は開示されていない。
IBM テクニカル・デイクスクロージャ・プルテン、
Vol、2B、No、9 (1984年2月)、1)1
)、4887〜4668所載のJ、11.ポメレーン(
Pomerene)、T、R,プザク(Puzak) 
、RlE、レヒトシャ’/フェン(Rechtscha
ffen )及びF。
J、スバラチオ(Sparacio)の論文「マルチサ
イクル命令の1プロセツサ・サイクルでの効率的実行(
Effective Execution of Mu
lticycleInstruction in On
e Processor Cycle) Jは1キヤツ
シユ内の汎用レジスタのコピーを妥当性検査するために
使用される、複数記憶命令を1プロセツサ・サイクルに
減らすキャッシュ・システムを記載している。このシス
テムは、キャッシュ装置内での命令の実行を開示してい
ない。
従来技術で知られているどのシステムも、IBMシステ
ム/370記憶装置即時命令タイプ及び記憶装置間命令
タイプの命令に不可欠な、論理演算を実行するために、
キャッシュに含まれるデータを実行装置ヘパスすること
が不要なものはない。
データを実行装置へ転送するのに時間を要するため、命
令を完了するための実行時間が延びる。また、システム
のパイプライン膜内で干渉が起こるため、別の問題がし
ばしば発生する。これらの問題は、パイプライン式プロ
セッサ編成内でのキャッシュ記憶システムの完全な利用
を妨げてきた。
C0発明の概要 本発明の目的は、パイプライン式プロセッサ編成をもつ
データ処理システム内で使用するための、改良されたキ
ャッシュ・システムを提供することである。
本発明のもう1つの目的は、あるタイプの記憶装置関連
命令を実行する除に、データを実行装置へ送る必要のな
いキャッシュ・システムを提供することである。
本発明の別の目的は、あるタイプの記憶装置関連命令を
キャッシュ内で実行するための論理を含む、キャッシュ
記憶装置システムを提供することである。
本発明の別の目的は、パイプライン式プロセッサの諸膜
内で干渉の起こる可能性を最小限にする、キャッシュ記
憶システムを提供することである。
本発明の別の目的は、あるタイプの記憶装置関連命令を
実行する際に、パイプライン式プロセ、ツサの実行装置
を使用する必要のない、キヤ・ソシュ記憶システムを提
供することである。
本発明の上記及びその他の目的は、データをシステムの
実行装置へ転送する必要がなく、限定された命令セット
を実行できるのに十分な論理を含む、キャッシュ記憶シ
ステムを使用することによって達成される。このキャッ
シュ論理は、キャッシュから実行装置へのデータの移動
を伴うIBMシステム/370記憶装置間命令及び記憶
装置即時命令の実行を可能にし、それによって、システ
ムのパイプライン膜内で干渉が起こる可能性をなくし、
命令の実行に必要な時間を短縮する。所期の利点は、キ
ャッシュ・システム内のデータ・パスの性質から生ずる
。典型的なキャッシュ・システムでは、そのデータ・パ
スはシステムの残りの部分のデータ・パスよりも幅が広
い。これはもちろん、速度の点でシステムの性能を向上
させるためである。キャッシュ・システム内で全ての記
憶装置間命令及び記憶装置即時命令を完全に実行するこ
とにより、キャッシュ・システムのより幅広いデータ・
バスを利用して命令の完了に必要なサイクル数をさらに
削減することが可能になる。その結果、通常サイクル時
間の速さだけから期待される以上に、性能が向上する。
それらの命令は、命令取出し装置または実行装置のいず
れかで新しい命令コード(これは処理装置内で復号され
る)によって処理される。命令コードに基づいて、命令
(マイクロ命令)を制御するハードウェアのシステム(
シーケンス)が実行される。各記憶装置間命令及び記憶
装置即時命令ごとに、異なるマイクロ命令ストリームが
実行される。論理装置がこれらの命令を解釈して、その
演算を制御し、通常の取出し/記憶動作とは違って行動
作を実行するようキャッシュに知らせる。
D、実施例 IBMシステム/370記憶装置間命令は、2つのオペ
ランド(両方とも実記憶装置内に常駐する)に作用する
。本発明によるキャッシュ・バッファ記憶装置内で実行
される記憶装置間(SS)命令は、2つのカテゴリーに
分かれる。
すなわち、記憶フィールドをある場所から別の場所ヘコ
ピーするSS命令を含むmove“と、2つのオペラン
ドを取り出し、2つのオペランドを用いて論理演算を実
行し、そして結果を記憶装置に戻すことを要求する命令
であるである“l。
gical”である。オペランド1は、すべてのSS命
令によって記憶される場所を示す宛先オペランド(DS
T)である。オペランド1は、論理命令を求めて取り出
されることもあり得る。オペランド2は、常に記憶装置
から取り出されるソース・オペランド(SRC)である
好ましい実施例で使用されるキャッシュ・システムの編
成を、第2図及び第3図に示す。キャッシュは、64バ
イト行をもつ8ウエイ・セット連想キャッシュであり、
キャッシュ行はインタリーブ式にアレイにロードされて
いる。第3図を参照すると、通常取出しは、すべての選
択されたキャッシュ・セットから同時に8バイトを読み
取るためにキャッシュ30にアクセスし、所望のデータ
は、キャッシュ・ディレクトリ探索から識別されたキャ
ッシュ・セットに基づいて選択される。第3図に示すよ
うに、キャッシュ・データ・アレイとキャッシュ・ディ
レクトリは同じサイクルで探索されるので、取出し動作
は速い。線31b上のキャッシュ・ディレクトリ・ヒツ
トは、出力データ・バス32b上にデータを置くために
、取出しサイクルで希望するダブルワードを選択する。
記憶動作の場合には、キャッシュ・セットが、キャッシ
ュへの書込み(入力データ・バス32a上で、幅1〜8
バイト幅)前に、線31a上で識別されなければならな
い。書き込もうとするデータは、プロセッサの他のソー
スからデータ入力バス32へ供給され、そこからキャッ
シュ30へ書き込まれる。
キャッシュのインタリーブ式編成を、第4図に示す。こ
の編成は、SS命令の性能を向上させる行取山しコマン
ド及び行書込みコマンドをもたらす。この取出しコマン
ドは、ダブルワード・オペランド・アドレスを使って8
つのキャッシュ・セットすべてに並行にアクセスするの
で、最大64バイトの情報に同時にアクセスすることが
でき、取出しバス42b上でキャッシュ内部レジスタが
それを使用できるようになる。64バイト・キヤ・ソシ
ュ行のインタリーブ式編成により、キャッシュ・データ
・アレイにアクセスする前に、キャッシュ・セットがわ
かっている場合には、希望するキャッシュ行からの64
バイトの情報が、各キャッシュ・セットを参照するキャ
ッシュ・アドレス・ビット26〜28の操作によって、
1回のキャッシュ・データ・アレイへのアクセスで取り
出すことができる。
通常、ダブルワードを選択するアドレス・ビット26:
28は、読取り時にキャッシュへ直接ゲートされる。キ
ャッシュ行は、1サイクルで64バイトの書込み及び読
取りができるようにインタリーブされているので、行の
読取りによって、各キャッシュ・セット内の各行からの
ダブルワードを1つずつ含むすべてのキャッシュ・セッ
トが生成される。
表3 DWx1′1  ただし、 X=キャッシュ行内のダブルワード 番号、 n=インタリーブされたキャッシュ・ セット番号) 8バイトのセット連想取出しでは、AA2E3:28は
すべてのセットについて共通の値に等しい。
これは、各キャッシュ・セット内の各キャッシュ行内の
8バイト・データのダブルワード・アドレスである。真
のビットとして選択されたキャッシュ・セットは、AA
26 : 28に基づくインタリーブされたキャッシュ
・セットに対するアレイ位置をシフトすることを必要と
することがある。
各キャッシュ・セット内のインタリーブされた入力項目
のキャッシュ行(64バイト)をすべて読み取るには、
下に示したダブルワード・アドレスを各キャッシュ・セ
ット・アレイへ送ることが必要である。
表4のキャッシュ・セット・アレイ欄は、表3で水平に
リストしたセットに対応する。それは、サブシステム内
でアドレスされる物理アレイを表す。次の表の水平方向
のスケールは、行アクセスに対するインタリーブされた
キャッシュ・セットを表す。
表4 キャッシュ セット   0      123458?アレイ26
:28 26:28 26:28 26:2826:2
8 26:28 26:28 26:285   10
1   Zoo  011  010 001  00
0  111  110プロセッサ行へのDWOデータ
は、そのデータを多重化する方法が、内部レジスタへの
64バイト取出しとは異なる。前者の場合には、欲しい
データはダブルワードだけであり、すべてのキャッシュ
・セットは、同じAA28:28から読み取られ、最終
選択はキャッシュ読取り後に行なわれる。行アクセスで
は、キャッシュ・セットは既知であり、各キャッシュ・
セットへのAA2E3:28は、キャッシュ行全体がイ
ンタリーブされたキャッシュ・セットから読み取れるよ
うに変更される。
同様に、キャッシュ内部レジスタとキャッシュ30の書
込み入力をつなぐ記憶バス42aを使って、バイト記憶
フラグの制御下で、1回のキャッシュ・データ・アレイ
・アクセスの間に1〜64バイトを1つのキャッシュ行
に記憶することができる。
第3図及び第4図は主として機能的なものであり、z(
X32a132b142a142bで表した線は、第1
図のハードウェアの記述がら明らがなように、実際には
キャッシュ書込みバッファ及びキャッシュ読取りバッフ
ァの一部として実施されることを認識されたい。
本発明の好ましい実施例を実施するためのハードウェア
は、前記の機能特性をもつ8ウエイ・セット連想キャッ
シュ30を含む。ソース・オペランド・アドレス・レジ
スタ(SRCADDR)101及び宛先オペランド・ア
ドレス・レジスタ(DST ADDR)121はそれぞ
れ、ソース・オペランド及び宛先オペランドの記憶位置
のアト= 18− レス値を保持する。ソース・オペランド・フィールド長
レジスタ(SRCFL)102及び宛先オペランド・フ
ィールド長レジスタ(DSTFL)122はそれぞれ、
ソース・オペランド及び宛先オペランドに対するフィー
ルド長の値を含んでいる。初期行境界位置合せ値(SR
CAL)及び(DSTAL)は、当該のアドレス・レジ
スタ5RCADDRまたはDST ADDRのアドレス
・ビット28:31の2の補数をとることによって生成
される。これらは、そのオペランドに対する初期アクセ
スの一部としてのみ使用され、それらを維持するための
ラッチは必要としない。キャッシュ記憶装置内にある減
算回路131は、キャッシュ行(64バイト)境界内の
ソース・オペランドと宛先オペランドの開始アドレスの
位置合せの差、すなわちモジューロ64の差を計算する
ために使用される。この差は、BSAレジスタ132に
ラッチされ、出力線132aを経て64バイト・シフタ
134へ供給される。シフタ134は次に、すべてのソ
ース・オペランド・行取出しに際して、ソース・データ
を宛先アドレスと位置合せさせる。
減算回路131によって生成される開始アドレス差はま
た、ソース・オペランド・バッファ・ロード・フラグ論
理回路(SBLF)135によって、命令の全実行中に
使用する命令の開始点でのソース・オペランド・バッフ
ァ・ロード・フラグを生成するために使用される。
ソース・オペランド・バッファA136及びソース・オ
ペランド・バッファB137はともに、64バイト長で
あり、したがって64バイト・シフタ134からのソー
ス・データのフィールド全体を収容できる。ソース・オ
ペランド・バッファB137はシフタ134の出力から
だけロードされるが、ソース・オペランド・バッファA
136は、シフタ134の出力、またはバッファ137
のいずれかからもロードされる。バッファ136ヘロー
ドされるデータのソースは、論理回路135で生成され
、記憶されたバッファ・ロード・フラグに従って制御さ
れる。
BSAレジスタ132に記憶された開始アドレス差はま
た、キャッシュ行内のソース・オペランドと宛先オペラ
ンドの開始アドレスの相対的位置合せを識別する。この
情報は、取出し要求の適切な順序付けを行なうのに使用
される。たとえば、宛先オペランドがソース・オペラン
ドより、モジューロ64だけ左から始まる場合、第1の
宛先行記憶要求を満たすのに十分なデータにアクセスす
るのに、2回のソース・オペランド取出しが必要である
。宛先オペランドがソース・オペランドの右から始まる
場合は、その要求を満たすのに十分なデータを供給する
のに、1回のソース・オペランド取出しが、最初に必要
となるだけである。
宛先オペランドのアドレス及びその関連フィールド長は
、バイト記憶フラグ論理回路140が宛先バイト記憶フ
ラグ(DSTSTBF)を生成するために使用する。宛
先バイト記憶フラグは、各宛先オペランド行記憶コマン
ド上に実際に記憶されたデータ・バイトを制御するため
に使用される。
バイト記憶フラグ論理回路140からの線140a上の
出力信号は、キャッシュ書込みバッファ150とキャッ
シュ30との間のゲーティング回路151に沿って進む
。バイト記憶フラグはまた、状態を設定する条件コード
をプロセッサに戻すために、どのバイトが検査されてい
るかを判定する。
宛先バイト記憶フラグは、数通りの方式で生成される。
最初の記憶動作では、記憶されるバイトは、DSTFL
がはじめにDSTALより大きい場合は、開始DSTア
ドレス、すなわちDST ADDRないしDST AD
DRプラスDSTALのAA28:31によって識別さ
れるバイトから、またDSTFLがDSTAL以下の場
合は、DST ADDRないしDST ADDRプラス
DSTFLからのものである。その後の記憶では、DS
TFLが64より大きい限り、64個のバイト記憶フラ
グがすべて活動化される。DSTFLが64より小さい
ときは、活動化されるDSTバイト記憶フラグは、DS
T ADDR2E3:31ないしDST ADDR28
: 31プラスDSTFLからのものである。基本的に
は、バイト0からフィールドの最後までである。バイト
・フラグならびにデータは、実際のキャッシュ行書込み
の直前にキャッシュ・セットに従って位置合せされなけ
ればならない。
デイジット制御フラグ(DCF)は、デイジット制御レ
ジスタ170に記憶されるが、記憶装置間論理装置18
0に至るバス170a上の信号を用いて、ソース・オペ
ランド及び宛先オペランドから1バイト内の左端のデイ
ジットと右端のデイジットを併合するのに役立つ。この
デイジット制御フラグは、システム/370命令の命令
コードに基づいている。MOVE  NUMERICS
MOVE  ZONBSなどの命令は、各バイトの左半
分または右半分のみを移動することを要求する。DCF
ラッチは、どのデイジットを更新するかを制御するため
、各SS演算の開始時に設定される。
0〇−無効 01−右のデイジット 1〇−左のデイジット 11−両方のデイジットすなわちバイト全体特定のIB
Mシステム/370XA命令または演算装置内に記憶さ
れるデータの全長は、最大256バイトである。各行ア
クセスは最大64バイトを処理するので、マイクロコー
ド・ループを介しての数回の反復が必要になることがあ
る。マイクロコード・ループは、毎回の反復によって処
理されるデータの量に従って、各反復ごとにアドレス・
レジスタ及びフィールド長レジスタを更新し、これによ
って希望するデータ・フィールド全体を収容するための
手段を含んでいる。
好ましい実施例におけるその他のハードウェア要素には
、ソース・オペランド・アドレス増分論理回路101a
がある。これはソース・オペランド・アドレス・レジス
タ101内のソース・オペランド・アドレスの値を増分
する働きをする。宛先オペランド・アドレス・レジスタ
121内の宛先オペランド・アドレスの値を増分するた
めの対応する増分論理回路121aがある。増分論理回
路101a及び121aの動作は、ハードウェアまたは
マイクロ命令復号のいずれかによって生成される信号の
制御下にある。ハードウェアで制御されている場合、各
オペランドを求める第1回目またはそれ以降の行アクセ
スを示すラッチが維持されなければならない。一方、マ
イクロコード制御下にある場合は、単に増分制御フィー
ルドの復号により、適切な増分値が識別される。どちら
の場合でも、両方のオペランドに対する第1回の増分で
は、第1回漕分値として行境界位置合せ長を常に使用す
る。それ以降は、増分値は、64と適当なフィールド長
レジスタ値のどちらか小さい方になる。
減分論理回路102aはソース・オペランド・フィール
ド長レジスタ102に接続され、処理がそのフィールド
中を進む時、登録されたフィールド長内の値を減分する
同様な減分論理回路122aが宛先オペランド・フィー
ルド長レジスタ122と連結され、処理が進行中してい
るとき、このレジスタ内の値を減分する。
キャッシュ・マルチプレクサ1θOの目的は、そのキャ
ッシュ・セットのバイトO〜63がキヤ・ソシュ読取り
バッファの対応するバイト位置に入るように、インタリ
ーブされたキャッシュ・セ・ソトから読み取った64バ
イトのデータを位置合せして64バイト・キャッシュ読
取りバッファに入れることである。バイトOは各キャッ
シュ・セ・ソトごとに異なるアレイ内で始まるので、デ
ータは、64バイト・シフタに入る前に読み取られたイ
ンタリーブされたキャッシュ・セットに従って位置合せ
されなければならない。これはダブルワード・シフタと
考えることもできる。キャッシュ・セ・ソトから読み取
られたダブルワードは、ディレクトリ・アクセスからヒ
ツトされたキャッシュ・セ・ソトに基づいて適当な位置
ヘシフトされる。キヤ・ツシュ・セット0はダブルワー
ドをそのままゲートさせる。キャッシュ・セット1はダ
ブルワードを1位置左ヘシフトする。キャッシュ・セッ
ト2はダブルワードを2位置左ヘシフトし、以下同様で
ある。
前記の記憶装置即時命令ハードウェアのタイミング図を
第2図に示す。各種ハードウェア要素は、左端の欄に記
されている。3つの主要サイクルが、その右の3つの欄
に示されている。通常記憶動作は、希望するデータがキ
ャッシュ30内にあるかどうか判定するためのキャッシ
ュ・ディレクトリ探索サイクルより後にあることを了解
されたい。
この探索によって、記憶のために適当なキャッシュを選
択することが、可能になる。キャッシュ・データ・アレ
イは、キャッシュ・ディレクトリ探索サイクルの間、遊
休状態である。これによって、第1オペランドの取出し
が、要求されたアドレスの探索と同じサイクルで行なわ
れることになる。右端の欄に示された通常のデータ記憶
サイクルである、第2のキャッシュ・サイクルでは、1
バイトのデータに対して希望する論理演算が実行され、
結果が選択されたキャッシュ・セットに記憶される。こ
の演算中に、条件コード情報もプログラム状態ワードに
戻される。この条件コードは、プログラム状態ワード(
PSW)の一部であり、いくつかの入力条件に基づいて
設定できる。条件の一部は、SS論理装置180から生
成されるものである。マイクロ命令は、命令の終了時に
条件コードを生成するためにどの条件を使うかを指定す
ることができる。SS論理装置に対しては、下記の条件
が条件コード生成ハードウェアに供給される:結果フィ
ールド  ゼロまたは非ゼロ 選択ビット    すべて1 この情報は、記憶装置の宛先フィールドがキャッシュに
記憶されるときに、蓄積され、命令の終りに条件コード
・ハードウェアを設定するために使用される。信号が、
SS論理装置180から条件コード・ハードウェアに供
給される。
第5a図ないし第5C図は、SS命令Moveの例を示
している。例:SRCSFAはDSTSFA以下である
。このタイプの命令では、ソース・オペランドだけが取
り出され、宛先位置へ記憶される。ソース・オペランド
の開始アドレスが宛先アドレスの左またはそれに等しい
(モジューロ64)場合は、最初に1回だけソース行取
出しが発行され、そうでない場合は、2回発行しなけれ
ばならない。データにアクセスするには、まずキャッシ
ュ・セットを識別するためにキャッシュ・ディレクトリ
を探索し、続いてこの情報を使って要求された64バイ
ト行をキャッシュ読取リバッファに取り出す。データは
、ソース・アドレスと宛先開始アドレスとの差だけシフ
トされ、バッファ・ロード・フラグ論理回路135に含
まれるソース−オペランド・バッファーバイト・ロード
・フラグに従って、適切に位置合せしてソース・オペラ
ンド・バッファ136及び137にロードされる。
宛先データがソース・オペランド・バッファ136の右
境界をオーバーフローしてソース・オペランド・バッフ
ァ137に入るとき、DST ADDR121に含まれ
る宛先アドレスを使って、行記憶コマンドが発行される
。この記憶を行なうには、まずキャッシュ・ディレクト
リを探索し、続いてキャッシュ30への行書込みの準備
としてキャッシュSS論理装置180を介してデータを
位置合せする。この記憶は、宛先オペランド・バク9− イト記憶フラグ論理回路140を介して宛先オペランド
・バイト記憶フラグの制御下で行なわれる。
各行アクセスの後、適当なアドレス・レジスタ及びフィ
ールド長レジスタが、そのアクセス中に処理されたデー
タの量に従って更新される。マイクロ命令の制御下で、
ハードウェアの各部分、SRCアドレスとDSTアドレ
ス及び対応するフィールド長は、その更新及び各記憶装
置アクセスの部分を実行する方法を知らされる。あるア
ドレスに対する最初の増分及び対応するフィールド長に
対する減分では、必ず適切な行境界位置合せ長く・使用
する。その後は、あるアドレスに対する増分値及び対応
するフィールド長に対する減分値は、64と適切なフィ
ールド長レジスタ値のどちらか小さい方になる。
行取出しコマンド及び行記憶コマンドは、両方の記憶フ
ィールドがなくなるまで、記憶装置間MOVE動作の実
行中、発行され続ける。このループは、各IBMシステ
ム/370命令で/%−ドウエアを制御するのに使用さ
れる、独立した従来型のマイクロ命令制御記憶装置に記
憶されているマイクロ命令から構成される。そのような
各IBMシステム/370命令は、その制御記憶装置内
の固有の位置から開始し、それによって、各ループは、
ハードウェアを制御し同じIBMシステム/370命令
内で異なる状況に適応するために、固有な1組のマイク
ロ命令を含むことができるようになる。マイクロ命令の
復号は、マイクロ命令要求に応答するプロセッサ及びキ
ャッシュのすべての領域内で行なわれる。基本ループは
、次のようなものである: サイクル1 SRC行取出しコマンドが、第1図 に示したキャッシュ制御機構へ送ら れる。命令がシステムの命令レジス タ中に現われ、通常の方式でマイク ロ命令制御記憶装置内の適当な位置 をアドレスするために使用される。
2つの記憶オペランドのアドレスが、 マイクロ命令制御(またはハードウェ ア制御)下で生成され、すべての機 能が記憶装置間命令コードの処理 (SRCADDR,5RCFL1 DST ADDR,DSTFL、5 RCAL1DSTAL1BSA、D CF)のための準備としてロードさ れる。SRCオペランドの第1部分 を取り出すための第1マイクロ命令 がキャッシュへ送られる。サイクル 2の開始時に、キャッシュ・コマン ド・レジスタが、SRCオペランド・ バッファのために行読取り要求をラッ チする。
サイクル2 通常のキャッシュ動作及び第3図の第31
行で戻される信号に従って、 SRCアドレスを求めてキャッシュ・ ディレクトリを探索する。
サイクル3 キャッシュ・セットを使って、キャッシュ
30から810行を読み取る サイクル4 キャッシュ読取りバッファ138内にSR
Cデータをラッチする。
サイクル5 SRCデータを位置合せする。
DST行記憶コマンドをキャッシュ 制御機構に発行する。
SRCオペランドのために取り出さ れたデータが位置合せされ、64バ イト・シフタ134を中に左循環シ フトされ、5BLF論理回路135 の出力の制御下で、SRCオペラン ド・バッファ136及び137ヘロー ドされる。
DST行記憶コマンドが、制御記憶 装置から読み取られ、キャッシュ制 御機構に転送される。
記憶バッファ・ロード・フラグ論理 回路135内の記憶バッファ・ロー ド・フラグの制御下で、SRCデー タをソース・オペランド・バッファ 136及び13フヘロードする。
DS前記憶要求が、キャッシュ・コ マンド・レジスタ内でラッチされる。
宛先記憶アドレスを求めてキャラ シュ・ディレクトリを探索する。
サイクル6 探索されたキャッシュ・ディレクトリの出
力が、キャッシュ・ヒツト・ レジスタ内にラッチされ、希望する データを含むインタリーブされた キャッシュ・セットを識別する。ラッ チされない値を使って、ソース・オ ペランド・バッファ136内のデー タが位置合せしてキャッシュ書込み バッファ150に入れられ、DST バイト記憶フラグ及びバイト記憶フ ラグ論理回路140の出力に従って、 そのデータがキャッシュに書き込ま れる。
SS論理演算の基本構造は、宛先オペランドも取り出さ
なければならない意思外は、前述のSSmove動作と
同じである。宛先オペランドの取出しは、宛先オペラン
ド記憶の直前に行なわれる。ソース・オペランドの開始
アドレスが、宛先アドレスより左またはそれに等しい場
合は(モジューロ64)、1回だけのソース行取出しが
最初に発行され、そうでない場合は2回発行しなければ
ならない。データをアクセスするには、まずキャッシュ
・ディレクトリを探索して、通常のキャッシュ・アクセ
ス法に従ってキャッシュ・セットを識別する。次にディ
レクトリ情報を使って、キャッシュ30からキャッシュ
読取りバッファ138に、要求された64バイト行が取
り出される。
データは、ソース開始アドレスと宛先開始アドレスの差
だけシフトされ、記憶バッファ・ロード・フラグ論理回
路135内のバイト・ロード・フラグに従って、適切に
位置合せされてソース・データ・λ−ベランド・バッフ
ァ136及び137にロードされる。宛先データがソー
ス・オペランド・バッファ136の右側境界をオーバフ
ローしてソース・オペランド・バッファ137へ入ると
、宛先アドレスを使って行取出しコマンドが発行される
IBMシステム/370命令の実行のためのマイクロ命
令プログラムの開始時におけるマイクロ命令ブランチは
、2つのオペランド(SRCADDR26: 31とD
ST ADDR26: 31)の開始アドレスの相対位
置合せを見て、最初に1回SRCオペランド取出しが要
求されるかそれとも2回要求されるかを判定する。正し
い回数のSRCオペランド取出しを行なった後、マイク
ロプログラムは、論理演算のみの場合、DSTSペラン
ド取出しを1回発行し、次いでDSTSペランドの同じ
アドレスを記憶する。ループは、SRC取出し、論理演
算のみの場合はDSTS出し、次にDS前前記へと進む
キャッシュ読取リバッファ138からのデータ(この場
合は宛先オペランド)、及びソース・オペランド・バッ
ファ136からのデータ(この場合は、ソース・オペラ
ンド)が、バス138a及び136aを介してのSS論
理装置180への入力として使用される。記憶を行なう
には、まず通常のキャッシュ方式でキャッシュ・ディレ
クトリを探索し、続いてキャッシュ30への以後の行書
込みのための準備として、キャッシュSS論理装置18
0を介してデータを位置合せする。論理演算はキャッシ
ュ装置内で完全に実行されるので、データをデータ処理
システムの実行装置へ転送する必要がないことに留意さ
れたい。キャッシュ30への記憶とプロセッサへ戻され
る状況は、両方とも論理回路140に含まれる宛先オペ
ランド記憶バイト・フラグの制御下で行なわれる。キャ
ッシュへ再記憶すべき・寸イトを識別する際には、論理
装置140は、結果フィールドに対する状況決定に関与
しなければならないバイトをも識別する。
記憶されたバイトだけが、ゼロ/非ゼロ状況を知るため
に検査され、各記憶要求に対する累積状況が、条件コー
ド論理回路へ転送される。各ソース・オペランド取出し
及び宛先オペランド行記憶アクセスの後、適当なアドレ
ス・レジスタ及びフィールド長レジスタが、そのアクセ
スで処理されるデータの量に従って更新される。
記憶装置間論理演算の実行の際には、行取出しコマンド
及び行記憶コマンドが、両方の記憶フィールドがなくな
るまで発行され続ける。基本ループは次のようになる: サイクルI  SRC行取出しコマンドが、キャッシュ
30の制御機構に発行される。
サイクル2 キャッシュ・ディレクトリが、SRCアY
レスを求めて探索される。0 87行取出しコマンドが、キャッシュ 制御機構に発行される。
サイクル3 キャッシュ・セットを使って、キャッシュ
30からSRC行を読み取る。
キャッシュ・ディレクトリが、DS TSドレスを求めて探索される。
サイクル4  SRCデータが、キャッシュ読取りバッ
ファ138にラッチされる。
SRCデータが、シフタ134内で 位置合せされる。
キャッシュ・セットを使って、DS T行をキャシッユ30から読み取る。
DST行記憶コマンドが、キャッシュ 30の制御機構に発行される。
サイクル5  SRCデータが、論理回路135内のソ
ース・バッファ・ロード・フラ グの制御下で、ソース・オペランド・ バッファ136及び137にロード される。
DSTデータが、キャッシュ読取り バッファ138中にラッチされる。
キャッシュ・ディレクトリが、DS Tアドレスを求めて探索される。
指定された論理演算が、SS論理装 置180内のSRCデータ及びDS Tデータに対して実行される。
サイクル6 キャッシュ・セットを使って、SS論理装
置180の出力データを位置 合せしてキャッシュ書込みバッファ 150に入れる。
宛先記憶バイト・フラグ論理回路1 40内のDSTバイト記憶フラグに 従って、キャッシュ30に書き込む。
本発明の実施例は、図面に示していない多数の通常の構
成要素を含むことを理解されたい。大体において、その
ような構成要素の特定設計は、通常の慣行に従い、シス
テムの他の構成要素に依存することになる。詳細設計及
び機能的特性は、同じ問題に対する従来技術の手法に従
う。たとえば、SS論理装置180の設計は、論理演算
AND。
OR1排他的OR,及びMOVEを実行できるようなも
のである。はじめの3つの演算は論理演算を含み、両方
のオペランド(SRCバッファ及びキャッユ読取りバッ
ファ)をSS論理装置180ヘゲートする。最後の動作
はSRCバッファのみを使用する。このような動作は、
それらを実行するためのハードウェアと同様に周知であ
る。
E1発明の効果 上述の如く、本発明によればキャッシニ手膜内での命令
実行を可能としたのでデータ処理を迅速に行なうことが
可能となった。
【図面の簡単な説明】
第1図は、命令行処理ハードウェアを含むキャッシュ・
システムの構成図である。 第2図は、本発明によって実行される記憶装置即時命令
のタイミング図である。 第3図は、キャッシュ記憶装置への8バイト・アクセス
に対するキャッシュ・バッファ編成の説明図である。 第4図は、キャッシュ記憶装置への行アクセスに対する
キャッシュ・バッファ編成の説明図である。 第5a図ないし第5c図は、記憶装置間命令移動の動作
を示す図である。 第6a図ないし第6c図は、別の記憶装置間命令の動作
を示す図である。 30、、、、キャッシュ記憶装置、101.、、、ソー
ス・オペランド・アドレス・レジスタ(SRCADDR
) 、102.、、、ソース・オペランド・フィールド
長レジスタ(SRCFL)、121.。 0.宛先オペランド・アドレス・レジスタ(DST  
ADDR)、1220.、、宛先オペランド・フィール
ド長レジスタ (DSTFL)、131.。 1.減算回路、132.、、、BSAレジスタ、134
、、、.64バイト・シフタ、135.、、、ソース・
オペランド・バッファ・ロード・フラグ論理回路(SB
LF)、138.137.、、、ソース・オペランド・
バッファ、140.、。、バイト記憶フラグ論理回路(
SBLF)、150.、、、キャッシュ書込みバッファ
、tea、、、、キャッシュ・マルチプレクサ、180
.、、、記憶装置間(88)論理装置。 出願人  インターナショナル・ビジネス・マシーンズ
eコーボレーシロン 代理人  弁理士  頓  宮  孝  −(外1名)

Claims (1)

  1. 【特許請求の範囲】 プロセッサ、主記憶装置、及びキャッシュ内に記憶され
    たデータの主記憶アドレスを含むキャッシュ・ディレク
    トリを含むキャッシュ・バッファ記憶装置を有する、デ
    ータ処理装置において、a、コマンド、アドレス、及び
    第1オペランドを前記キャッシュに転送するための手段
    、 b、前記アドレスを求めるキャッシュ・ディレクトリ探
    索の結果を示すための手段、 c、前記アドレスから、第2オペランドを読み取るため
    の手段、 d、前記キャッシュ手段内で、前記第1コマンドによっ
    て定義された論理演算を実行するための手段、及び e、前記キャッシュに前記論理演算の結果を記憶するた
    めの手段を含み、 前記論理演算を、論理処理のために中央処理システムの
    実行装置へ、データを転送することなく実行する命令実
    施手段を有することを特徴とするデータ処理装置。
JP1314492A 1988-12-30 1989-12-05 データ処理装置 Pending JPH02214937A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US29230488A 1988-12-30 1988-12-30
US292304 1988-12-30

Publications (1)

Publication Number Publication Date
JPH02214937A true JPH02214937A (ja) 1990-08-27

Family

ID=23124093

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1314492A Pending JPH02214937A (ja) 1988-12-30 1989-12-05 データ処理装置

Country Status (2)

Country Link
EP (1) EP0375883A3 (ja)
JP (1) JPH02214937A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005190494A (ja) * 1999-01-21 2005-07-14 Sony Computer Entertainment Inc 高速プロセッサシステム、これを使用する方法及び記録媒体
US7028141B2 (en) 1999-01-21 2006-04-11 Sony Computer Entertainment Inc. High-speed distributed data processing system and method

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5185694A (en) * 1989-06-26 1993-02-09 Motorola, Inc. Data processing system utilizes block move instruction for burst transferring blocks of data entries where width of data blocks varies
JPH03269659A (ja) * 1990-03-19 1991-12-02 Nec Corp マイクロプロセッサ
JP2737820B2 (ja) * 1992-09-24 1998-04-08 インターナショナル・ビジネス・マシーンズ・コーポレイション メモリアクセス方法およびシステム
US7111125B2 (en) 2002-04-02 2006-09-19 Ip-First, Llc Apparatus and method for renaming a data block within a cache
EP1465059B1 (en) 2003-04-02 2018-05-09 IP-First, LLC. Apparatus and method for renaming a cache line

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2634297A1 (de) * 1976-07-30 1978-02-02 Siemens Ag Steuereinrichtung zur steuerung der funktion eines speichers
US4491910A (en) * 1982-02-22 1985-01-01 Texas Instruments Incorporated Microcomputer having data shift within memory

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005190494A (ja) * 1999-01-21 2005-07-14 Sony Computer Entertainment Inc 高速プロセッサシステム、これを使用する方法及び記録媒体
US7028141B2 (en) 1999-01-21 2006-04-11 Sony Computer Entertainment Inc. High-speed distributed data processing system and method
JP4656565B2 (ja) * 1999-01-21 2011-03-23 株式会社ソニー・コンピュータエンタテインメント 高速プロセッサシステム、これを使用する方法及び記録媒体

Also Published As

Publication number Publication date
EP0375883A2 (en) 1990-07-04
EP0375883A3 (en) 1991-05-29

Similar Documents

Publication Publication Date Title
US5291586A (en) Hardware implementation of complex data transfer instructions
US5202972A (en) Store buffer apparatus in a multiprocessor system
US5898866A (en) Method and apparatus for counting remaining loop instructions and pipelining the next instruction
US6321326B1 (en) Prefetch instruction specifying destination functional unit and read/write access mode
US5226130A (en) Method and apparatus for store-into-instruction-stream detection and maintaining branch prediction cache consistency
US5377336A (en) Improved method to prefetch load instruction data
US4802085A (en) Apparatus and method for detecting and handling memory-mapped I/O by a pipelined microprocessor
US5249286A (en) Selectively locking memory locations within a microprocessor's on-chip cache
US5155832A (en) Method to increase performance in a multi-level cache system by the use of forced cache misses
US5446850A (en) Cross-cache-line compounding algorithm for scism processors
US8984261B2 (en) Store data forwarding with no memory model restrictions
JP2539357B2 (ja) デ−タ処理装置
EP0394624B1 (en) Multiple sequence processor system
US5263153A (en) Monitoring control flow in a microprocessor
US5313613A (en) Execution of storage-immediate and storage-storage instructions within cache buffer storage
US5226169A (en) System for execution of storage-immediate and storage-storage instructions within cache buffer storage
JPH0630075B2 (ja) キャッシュメモリを有するデータ処理装置
KR100335744B1 (ko) 로드/로드 검출 및 재정렬 방법
US5155828A (en) Computing system with a cache memory and an additional look-aside cache memory
JPS6125169B2 (ja)
JPH06161893A (ja) メモリアクセス方法およびシステム
WO1996027833A1 (fr) Unite de traitement informatique
US5333287A (en) System for executing microinstruction routines by using hardware to calculate initialization parameters required therefore based upon processor status and control parameters
JPH04251352A (ja) マイクロプロセサのオンチップキャッシュ内のメモリ位置の選択的ロック
JPH02214937A (ja) データ処理装置