JPH0321934B2 - - Google Patents
Info
- Publication number
- JPH0321934B2 JPH0321934B2 JP58095117A JP9511783A JPH0321934B2 JP H0321934 B2 JPH0321934 B2 JP H0321934B2 JP 58095117 A JP58095117 A JP 58095117A JP 9511783 A JP9511783 A JP 9511783A JP H0321934 B2 JPH0321934 B2 JP H0321934B2
- Authority
- JP
- Japan
- Prior art keywords
- unit
- address
- line
- lcba
- 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.)
- Expired - Lifetime
Links
- 238000012545 processing Methods 0.000 claims description 21
- 230000007246 mechanism Effects 0.000 claims description 17
- 238000010586 diagram Methods 0.000 description 9
- 238000012546 transfer Methods 0.000 description 9
- 230000004913 activation Effects 0.000 description 5
- 238000006073 displacement reaction Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000000034 method Methods 0.000 description 4
- 230000003111 delayed effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000003213 activating effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000001494 step-and-flash imprint lithography Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0855—Overlapped cache accessing, e.g. pipeline
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6028—Prefetching based on hints or prefetch instructions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
Description
【発明の詳細な説明】
〔技術分野〕
本発明は、主記憶及びキヤツシユ(バツフア記
憶)を含む階層記憶機構を備えたデータ処理シス
テムに係る。
憶)を含む階層記憶機構を備えたデータ処理シス
テムに係る。
一般に高性能データ処理システムは階層記憶機
構を備えているのが普通である。階層記憶機構の
代表的なレベル数は2であり、低速大容量の主記
憶及び高速小容量のキヤツシユから成つている。
その構成上、主記憶にあるすべてのデータをキヤ
ツシユに保持しておくことはできない。キヤツシ
ユは、例えばLRUアリゴリズムに従つて動的に
管理される。要求したデータがキヤツシユになけ
れば(これをキヤツシユ・ミスという)、主記憶
がアクセスされる。命令の実行は、キヤツシユ・
ミスが解消されるまで遅らされる。多くのデータ
処理システムにおいては、キヤツシユ・ミスによ
る遅れは、数個の命令の実行時間と同程度になり
得る。
構を備えているのが普通である。階層記憶機構の
代表的なレベル数は2であり、低速大容量の主記
憶及び高速小容量のキヤツシユから成つている。
その構成上、主記憶にあるすべてのデータをキヤ
ツシユに保持しておくことはできない。キヤツシ
ユは、例えばLRUアリゴリズムに従つて動的に
管理される。要求したデータがキヤツシユになけ
れば(これをキヤツシユ・ミスという)、主記憶
がアクセスされる。命令の実行は、キヤツシユ・
ミスが解消されるまで遅らされる。多くのデータ
処理システムにおいては、キヤツシユ・ミスによ
る遅れは、数個の命令の実行時間と同程度になり
得る。
上述の問題を解決するため、最近のデータ処理
システムはキヤツシユを含む階層記憶機構にプリ
フエツチ方式を採用している。その基本的な考え
方は、或るデータ(例えばダブルワード)が要求
された場合、そのデータの記憶位置に近い別の記
憶位置にあるデータが引き続いて要求される可能
性が高いというものである。従つてキヤツシユ・
ミスが生じると、要求されたデータ及びそれに隣
接している複数のデータから成るデータ・ブロツ
クが主記憶から取出されてキヤツシユに転送され
る。
システムはキヤツシユを含む階層記憶機構にプリ
フエツチ方式を採用している。その基本的な考え
方は、或るデータ(例えばダブルワード)が要求
された場合、そのデータの記憶位置に近い別の記
憶位置にあるデータが引き続いて要求される可能
性が高いというものである。従つてキヤツシユ・
ミスが生じると、要求されたデータ及びそれに隣
接している複数のデータから成るデータ・ブロツ
クが主記憶から取出されてキヤツシユに転送され
る。
ところが、例えば連係リスト構造の形で保持さ
れているデータのように、互いに密接な関係を有
していても、それらの記憶位置がばらばらになつ
ていると、従来のシステムではそれらをプリフエ
ツチすることはできない。更に、従来のシステム
におけるプリフエツチ動作は、通常の命令実行の
段階でキヤツシユ・ミスが生じたときに開始され
るのが普通であるから、このような命令実行或い
はプログラム実行自体も制御するデータ(制御ブ
ロツクと呼ばれる特別の記憶域にある)をプリフ
エツチすることはできない。
れているデータのように、互いに密接な関係を有
していても、それらの記憶位置がばらばらになつ
ていると、従来のシステムではそれらをプリフエ
ツチすることはできない。更に、従来のシステム
におけるプリフエツチ動作は、通常の命令実行の
段階でキヤツシユ・ミスが生じたときに開始され
るのが普通であるから、このような命令実行或い
はプログラム実行自体も制御するデータ(制御ブ
ロツクと呼ばれる特別の記憶域にある)をプリフ
エツチすることはできない。
本発明の目的は、連係リスト構造の形で保持さ
れている制御ブロツクのデータをキヤツシユへプ
リフエツチできる階層記憶機構を備えたデータ処
理システムを提供することにある。
れている制御ブロツクのデータをキヤツシユへプ
リフエツチできる階層記憶機構を備えたデータ処
理システムを提供することにある。
本発明に従うデータ処理システムは、主記憶及
びキヤツシユを含む階層記憶機構と、命令を解読
して実行する処理機構と、主記憶に連係リスト構
造の形で記憶されている1以上の制御ブロツクの
データをキヤツシユへプリフエツチするためのプ
リフエツチ機構とを備えている。処理機構は、命
令を解読する命令ユニツト及び解読された命令を
実行する実行ユニツトに分けられる。プリフエツ
チ機構は、制御ブロツク・アドレス・ロード(以
下、「LCBA」と略称)と呼ばれる命令が命令ユ
ニツトで解読されたときに起動される。
びキヤツシユを含む階層記憶機構と、命令を解読
して実行する処理機構と、主記憶に連係リスト構
造の形で記憶されている1以上の制御ブロツクの
データをキヤツシユへプリフエツチするためのプ
リフエツチ機構とを備えている。処理機構は、命
令を解読する命令ユニツト及び解読された命令を
実行する実行ユニツトに分けられる。プリフエツ
チ機構は、制御ブロツク・アドレス・ロード(以
下、「LCBA」と略称)と呼ばれる命令が命令ユ
ニツトで解読されたときに起動される。
階層記憶機構のうち、キヤツシユ及びその制御
回路(デイレクトリなど)を含む部分はプロセツ
サ記憶ユニツトと呼ばれる。従来からの考え方に
よれば、命令ユニツト、実行ユニツト及びプロセ
ツサ記憶ユニツトがCPUを構成し、これに主記
憶が接続されることになる(例えば本出願人が発
行しているシステム/370モデル168のマニユアル
(資料番号SY22−6934)を参照されたい)。本発
明はこのような従来の構成に上述のプリフエツチ
機構(以下、「LCBAユニツト」という)を追加
したことを特徴としている。
回路(デイレクトリなど)を含む部分はプロセツ
サ記憶ユニツトと呼ばれる。従来からの考え方に
よれば、命令ユニツト、実行ユニツト及びプロセ
ツサ記憶ユニツトがCPUを構成し、これに主記
憶が接続されることになる(例えば本出願人が発
行しているシステム/370モデル168のマニユアル
(資料番号SY22−6934)を参照されたい)。本発
明はこのような従来の構成に上述のプリフエツチ
機構(以下、「LCBAユニツト」という)を追加
したことを特徴としている。
制御ブロツクの連係リスト構造には、特別のア
ドレス指定方式が使用される。即ち、連係リスト
構造に含まれる各制御ブロツクは、自身のアドレ
スから所定のオフセツト値(変位)だけ離れた位
置に、リスト構造中の次の制御ブロツクのアドレ
スを保持している。LCBA命令は、連係リスト構
造の先頭にある制御ブロツクのアドレスを生成す
る。従つて、このアドレスに上述のオフセツト値
を加算すると、2番目の制御ブロツクのアドレス
を記憶している記憶位置のアドレスが得られる。
LCBAユニツトはこのアドレスを用いて2番目の
制御ブロツクのアドレスを取出し、それに同じオ
フセツト値を加算することによつて、3番目の制
御ブロツクのアドレスを記憶している記憶位置の
アドレスを生成する。以下同様にして、連係リス
ト構造中の最後の制御ブロツクに達するか、又は
新たなLCBA命令が解読されるまで、制御ブロツ
クのアドレス生成が続けられる。
ドレス指定方式が使用される。即ち、連係リスト
構造に含まれる各制御ブロツクは、自身のアドレ
スから所定のオフセツト値(変位)だけ離れた位
置に、リスト構造中の次の制御ブロツクのアドレ
スを保持している。LCBA命令は、連係リスト構
造の先頭にある制御ブロツクのアドレスを生成す
る。従つて、このアドレスに上述のオフセツト値
を加算すると、2番目の制御ブロツクのアドレス
を記憶している記憶位置のアドレスが得られる。
LCBAユニツトはこのアドレスを用いて2番目の
制御ブロツクのアドレスを取出し、それに同じオ
フセツト値を加算することによつて、3番目の制
御ブロツクのアドレスを記憶している記憶位置の
アドレスを生成する。以下同様にして、連係リス
ト構造中の最後の制御ブロツクに達するか、又は
新たなLCBA命令が解読されるまで、制御ブロツ
クのアドレス生成が続けられる。
連係リスト構造中の最後の制御ブロツクは、自
身の次制御ブロツク・アドレス位置に連係リスト
構造の終りを示す機構(例えばゼロ)を持つてお
り、これがLCBAユニツトで検出されると、制御
ブロツク・データのプリフエツチが完了したこと
になる。新たなLCBA命令が解読された場合には
LCBAユニツトはプロセツサ記憶ユニツトへ除去
信号を送つて、それまでに出したすべてのサービ
ス要求を取消す。
身の次制御ブロツク・アドレス位置に連係リスト
構造の終りを示す機構(例えばゼロ)を持つてお
り、これがLCBAユニツトで検出されると、制御
ブロツク・データのプリフエツチが完了したこと
になる。新たなLCBA命令が解読された場合には
LCBAユニツトはプロセツサ記憶ユニツトへ除去
信号を送つて、それまでに出したすべてのサービ
ス要求を取消す。
以下の説明は「IBMシステム/370解説書」
(資料番号N:GA22−7000)に詳述されている
IBMシステム/370アーキテクチヤを前提にして
いる。
(資料番号N:GA22−7000)に詳述されている
IBMシステム/370アーキテクチヤを前提にして
いる。
主記憶及びキヤツシユを含む従来の階層記憶機
構は、データが実際に必要になつたときに取出し
(フエツチ)を行う要求時取出し方式を採用して
いるが、本発明によれば、新しいプリフエツチ命
令であるLCBA命令を実行することによつて、デ
ータが実際に要求される前にプリフエツチを行う
ことができる。
構は、データが実際に必要になつたときに取出し
(フエツチ)を行う要求時取出し方式を採用して
いるが、本発明によれば、新しいプリフエツチ命
令であるLCBA命令を実行することによつて、デ
ータが実際に要求される前にプリフエツチを行う
ことができる。
キヤツシユはデータをブロツク単位で保持す
る。1つのデータ・ブロツクは例えば128バイト
(16ダブルワード)から成つている。本明細書で
は、このようなデータ・ブロツクを「ライン」と
呼ぶ。要求されたラインをできるだけ速くアクセ
スするため、キヤツシユの内容は複数のコングル
エンス・クラスに分けられており、そのうちの1
つが特定のアドレス・ビツト(例えばビツト18〜
24)によつて指定される。各コングルエンス・ク
ラスはアソシアテイブ・セツト或いは単にセツト
と呼ばれる複数のエントリを含む。ここでは、各
コングルエンス・クラスのセツト数を4とする。
指定されたコングルエンス・クラス中の4つのセ
ツトは同時に要求アドレスと比較され、それによ
り所望のラインがキヤツシユにある(キヤツシ
ユ・ヒツト)か否(キヤツシユ・ミス)かが示さ
れる。
る。1つのデータ・ブロツクは例えば128バイト
(16ダブルワード)から成つている。本明細書で
は、このようなデータ・ブロツクを「ライン」と
呼ぶ。要求されたラインをできるだけ速くアクセ
スするため、キヤツシユの内容は複数のコングル
エンス・クラスに分けられており、そのうちの1
つが特定のアドレス・ビツト(例えばビツト18〜
24)によつて指定される。各コングルエンス・ク
ラスはアソシアテイブ・セツト或いは単にセツト
と呼ばれる複数のエントリを含む。ここでは、各
コングルエンス・クラスのセツト数を4とする。
指定されたコングルエンス・クラス中の4つのセ
ツトは同時に要求アドレスと比較され、それによ
り所望のラインがキヤツシユにある(キヤツシ
ユ・ヒツト)か否(キヤツシユ・ミス)かが示さ
れる。
各ユニツトからの要求はダブルワード(8バイ
ト)単位でなされ、ビツト25〜28が要求されたラ
イン中のダブルワードを指定する。
ト)単位でなされ、ビツト25〜28が要求されたラ
イン中のダブルワードを指定する。
LCBAユニツト、命令ユニツト、実行ユニツト
等はデータの取出し要求又は記憶要求をプロセツ
サ記憶ユニツトへ送る。要求に係る動作を首尾よ
く終らせるためには、要求されたデータがキヤツ
シユになければならない。通常の単一プロセツ
サ・システムには、特定のユニツト(特に実行ユ
ニツト)からの要求に係る動作はそれらの要求を
受取つた順序で完了させなければならないという
アーキテクチヤ上の制約がある。本発明は、この
ような制約を受けずに、主記憶とキヤツシユの間
のデータ転送を実行し得る特別のユニツトを導入
する。本発明によれば、キヤツシユ・ミスが生じ
たプリフエツチ要求の遂行は、それよりあとで出
され且つキヤツシユ・ヒツトが生じた他の要求よ
り遅れてもよい。
等はデータの取出し要求又は記憶要求をプロセツ
サ記憶ユニツトへ送る。要求に係る動作を首尾よ
く終らせるためには、要求されたデータがキヤツ
シユになければならない。通常の単一プロセツ
サ・システムには、特定のユニツト(特に実行ユ
ニツト)からの要求に係る動作はそれらの要求を
受取つた順序で完了させなければならないという
アーキテクチヤ上の制約がある。本発明は、この
ような制約を受けずに、主記憶とキヤツシユの間
のデータ転送を実行し得る特別のユニツトを導入
する。本発明によれば、キヤツシユ・ミスが生じ
たプリフエツチ要求の遂行は、それよりあとで出
され且つキヤツシユ・ヒツトが生じた他の要求よ
り遅れてもよい。
要求されたデータがキヤツシユにあれば、その
要求の遂行は、他の要求が受入れられる前に完了
する。しかし要求されたデータがキヤツシユにな
ければ、プロセツサ記憶ユニツトは当該要求に係
る情報を保管し、要求されたデータを主記憶から
取出すためにそのデータのアドレスを主記憶へ送
る。アドレスを主記憶へ送つてしまうと、プロセ
ツサ記憶ユニツトは他の要求を受入れることがで
きる。主記憶は複数の要求を同時に処理できるよ
うにインターリーブされる。
要求の遂行は、他の要求が受入れられる前に完了
する。しかし要求されたデータがキヤツシユにな
ければ、プロセツサ記憶ユニツトは当該要求に係
る情報を保管し、要求されたデータを主記憶から
取出すためにそのデータのアドレスを主記憶へ送
る。アドレスを主記憶へ送つてしまうと、プロセ
ツサ記憶ユニツトは他の要求を受入れることがで
きる。主記憶は複数の要求を同時に処理できるよ
うにインターリーブされる。
なおユニツト間の通信においては、通常の初期
接続手順がとられる。
接続手順がとられる。
主記憶は、複数のメモリ・バンクで構成され、
そのうちの1つから要求されたデータを含むライ
ンが取出される。メモリ・バンクから取出された
ラインは一旦対応するバツフアに入れられ、然る
後、キヤツシユへのライン転送が可能になつたこ
とがプロセツサ記憶ユニツトに知らされる。主記
憶においては、同じコングルエンス・クラスに属
する複数のラインが各々異なつたメモリ・バンク
に記憶されている。
そのうちの1つから要求されたデータを含むライ
ンが取出される。メモリ・バンクから取出された
ラインは一旦対応するバツフアに入れられ、然る
後、キヤツシユへのライン転送が可能になつたこ
とがプロセツサ記憶ユニツトに知らされる。主記
憶においては、同じコングルエンス・クラスに属
する複数のラインが各々異なつたメモリ・バンク
に記憶されている。
LCBA命令は、データが実際に要求される前
に、そのデータを主記憶からキヤツシユへプリフ
エツチすることを可能にする。この結果、通常の
命令実行時におけるキヤツシユ・ミスの可能性が
小さくなり、パフオーマンスが上がる。
に、そのデータを主記憶からキヤツシユへプリフ
エツチすることを可能にする。この結果、通常の
命令実行時におけるキヤツシユ・ミスの可能性が
小さくなり、パフオーマンスが上がる。
LCBA命令は他の命令と同じ様にしてプログラ
ム中に挿入される。ただし、LCBA命令の使用
は、監視プログラム状態で実行されるプログラム
に限られる。LCBA命令を実行すると、連係リス
ト構造の形で保持されている複数の制御ブロツク
を順次にアクセスすることができる。制御ブロツ
クの代表的な連係リスト構造の論理構造を第5図
に示す。
ム中に挿入される。ただし、LCBA命令の使用
は、監視プログラム状態で実行されるプログラム
に限られる。LCBA命令を実行すると、連係リス
ト構造の形で保持されている複数の制御ブロツク
を順次にアクセスすることができる。制御ブロツ
クの代表的な連係リスト構造の論理構造を第5図
に示す。
図示の連係リスト構造は、関係にある4つの制
御ブロツクC1〜C4から成つている。各制御ブロ
ツクは、連係リスト構造中の次の制御ブロツクの
開始位置を指定するアドレスを含んでおり、従つ
て制御ブロツクC1〜C4が連係されているといつ
ても、それらの記憶位置まで互いに隣接させてお
く必要はなく、また連係順序とアドレス順序とを
一致させておく必要もない。次制御ブロツク・ア
ドレスは、制御ブロツクの開始位置から所定のオ
フセツト値D3だけ離れたところにある。このオ
フセツト値D3は図示の連係リスト構造中のすべ
ての制御ブロツクについて同じである。連係リス
ト構造の先頭にある制御ブロツクC1のアドレス
は、大域テーブルと呼ばれる特別のテーブルGに
保持されている。
御ブロツクC1〜C4から成つている。各制御ブロ
ツクは、連係リスト構造中の次の制御ブロツクの
開始位置を指定するアドレスを含んでおり、従つ
て制御ブロツクC1〜C4が連係されているといつ
ても、それらの記憶位置まで互いに隣接させてお
く必要はなく、また連係順序とアドレス順序とを
一致させておく必要もない。次制御ブロツク・ア
ドレスは、制御ブロツクの開始位置から所定のオ
フセツト値D3だけ離れたところにある。このオ
フセツト値D3は図示の連係リスト構造中のすべ
ての制御ブロツクについて同じである。連係リス
ト構造の先頭にある制御ブロツクC1のアドレス
は、大域テーブルと呼ばれる特別のテーブルGに
保持されている。
LCBA命令によつて最初にアクセスされるのは
この大域テーブルGである。連係リスト構造の終
りにある制御ブロツクC4では、次制御ブロツ
ク・アドレスの内容がゼロになつている。大域テ
ーブルGは、図示していない他の連係リスト構造
の開始アドレスも含んでいる。
この大域テーブルGである。連係リスト構造の終
りにある制御ブロツクC4では、次制御ブロツ
ク・アドレスの内容がゼロになつている。大域テ
ーブルGは、図示していない他の連係リスト構造
の開始アドレスも含んでいる。
第5図の連係リスト構造に含まれる制御ブロツ
クC1〜C4の記憶及びアドレス指定の様子を第6
図に示す。
クC1〜C4の記憶及びアドレス指定の様子を第6
図に示す。
LCBA命令のフオーマツトは次のとおりであ
る。
る。
LCBA R1、D2(B2)B3
LCBA命令は、命令コード及び3つのオペラン
ドから成る。レジスタ・オペランドR1及びアド
レス・オペランドD2(B2)の定義は、例えばシ
ステム/370アーキテクチヤにおけるロード命令
のものと同じであり、D2(B2)によつてアドレ
ス指定されたデータ即ち先頭制御ブロツクC1の
アドレスA(C1)がR1によつて指定されたレジス
タへロードされる。D2は変位を表わし、(B2)
は命令中のB2フイールドで指定されたベース・
レジスタの内容を表わす。第3のオペランドD3
が前述の固定されたオフセツト値を表わす変位で
ある。従つて、LCBA命令によつて大域テーブル
Gから取出されたアドレスA(C1)にD3を加算す
ると、2番目の制御ブロツクC2のアドレスA
(C2)が得られる。以下も同様である(第6図参
照)。
ドから成る。レジスタ・オペランドR1及びアド
レス・オペランドD2(B2)の定義は、例えばシ
ステム/370アーキテクチヤにおけるロード命令
のものと同じであり、D2(B2)によつてアドレ
ス指定されたデータ即ち先頭制御ブロツクC1の
アドレスA(C1)がR1によつて指定されたレジス
タへロードされる。D2は変位を表わし、(B2)
は命令中のB2フイールドで指定されたベース・
レジスタの内容を表わす。第3のオペランドD3
が前述の固定されたオフセツト値を表わす変位で
ある。従つて、LCBA命令によつて大域テーブル
Gから取出されたアドレスA(C1)にD3を加算す
ると、2番目の制御ブロツクC2のアドレスA
(C2)が得られる。以下も同様である(第6図参
照)。
LCBAユニツトは上述のようにして制御ブロツ
クのアドレスを生成し、そのプリフエツチをプロ
セツサ記憶ユニツトに要求する。この間、命令ユ
ニツト及び実行ユニツトは処理を続行することが
できる。
クのアドレスを生成し、そのプリフエツチをプロ
セツサ記憶ユニツトに要求する。この間、命令ユ
ニツト及び実行ユニツトは処理を続行することが
できる。
LCBAユニツトからのプリフエツチ要求によつ
てプロセツサ記憶ユニツトでキヤツシユ・ミスが
生じた場合には、要求されている制御ブロツクの
データ即ち次制御ブロツク・アドレスを含むライ
ンが主記憶からキヤツシユへ取出される。ただ
し、この制御ブロツクのデータはまだ命令ユニツ
ト又は実行ユニツトによつて実際に要求されてい
るわけではないから、LCBAユニツトからのプリ
フエツチ要求と命令ユニツト又は実行ユニツトか
らの他のサービス要求とがプロセツサ記憶ユニツ
トで競合した場合には、後者のサービス要求を優
先させるのが望ましい。
てプロセツサ記憶ユニツトでキヤツシユ・ミスが
生じた場合には、要求されている制御ブロツクの
データ即ち次制御ブロツク・アドレスを含むライ
ンが主記憶からキヤツシユへ取出される。ただ
し、この制御ブロツクのデータはまだ命令ユニツ
ト又は実行ユニツトによつて実際に要求されてい
るわけではないから、LCBAユニツトからのプリ
フエツチ要求と命令ユニツト又は実行ユニツトか
らの他のサービス要求とがプロセツサ記憶ユニツ
トで競合した場合には、後者のサービス要求を優
先させるのが望ましい。
本発明に従うデータ処理システムの一例を第1
図に示す。このシステムは、例えばIBMシステ
ム/370で公知の命令(I)ユニツト10、実行(E)ユ
ニツト26及びプロセツサ記憶(PS)ユニツト
12の他に、新規なLCBAユニツト20を具備し
ている。
図に示す。このシステムは、例えばIBMシステ
ム/370で公知の命令(I)ユニツト10、実行(E)ユ
ニツト26及びプロセツサ記憶(PS)ユニツト
12の他に、新規なLCBAユニツト20を具備し
ている。
Iユニツト10はPSユニツト12から線14
へ命令を取出す。取出された命令はIユニツト1
0内で解読され、そのとき得られたオペランド・
アドレスは線16を通つてPSユニツト12へ送
られる。Iユニツト10はオペランド・アドレス
の他に、線18及び22へ制御情報を出力し、線
24へLCBA命令のオペランドD3を出力する。
へ命令を取出す。取出された命令はIユニツト1
0内で解読され、そのとき得られたオペランド・
アドレスは線16を通つてPSユニツト12へ送
られる。Iユニツト10はオペランド・アドレス
の他に、線18及び22へ制御情報を出力し、線
24へLCBA命令のオペランドD3を出力する。
Iユニツト10及びEユニツト26の詳細につ
いては、LCBA命令及びLCBAユニツト20に関
係する部分のみを説明することにする。
いては、LCBA命令及びLCBAユニツト20に関
係する部分のみを説明することにする。
Iユニツト10でLCBA命令が解読されると、
起動線22が付勢され、それによりLCBAユニツ
ト20に割込みがかけられる。LCBAユニツト2
0はこの割込みに応答して除去線28を付勢し、
以前にPSユニツト12へ出したすべての要求を
取消す。その際、以前の要求に関連するアドレス
情報を保持していたすべてのアドレス・レジスタ
がクリアされる。LCBAユニツト20のD3レジ
スタ110(第2図)には、変位フイールドD3
の内容がロードされる。これは、Iユニツト10
から線24を通つてLCBAユニツト20へ送られ
てくる。
起動線22が付勢され、それによりLCBAユニツ
ト20に割込みがかけられる。LCBAユニツト2
0はこの割込みに応答して除去線28を付勢し、
以前にPSユニツト12へ出したすべての要求を
取消す。その際、以前の要求に関連するアドレス
情報を保持していたすべてのアドレス・レジスタ
がクリアされる。LCBAユニツト20のD3レジ
スタ110(第2図)には、変位フイールドD3
の内容がロードされる。これは、Iユニツト10
から線24を通つてLCBAユニツト20へ送られ
てくる。
次いでIユニツト10は、前述のD2(B2)を
用いて連係リスト構造中の先頭制御ブロツクC1
のアドレスA(C1)をPSユニツト12から取出す
ために、オペランド・アドレス母線16へアドレ
ス情報D2(B2)を送り出し、更にサービス要求
線18を付勢する。PSユニツト12から取出さ
れたアドレスA(C1)はアドレス・オペランドと
してLCBAユニツト20及びEユニツト26へ送
られる。
用いて連係リスト構造中の先頭制御ブロツクC1
のアドレスA(C1)をPSユニツト12から取出す
ために、オペランド・アドレス母線16へアドレ
ス情報D2(B2)を送り出し、更にサービス要求
線18を付勢する。PSユニツト12から取出さ
れたアドレスA(C1)はアドレス・オペランドと
してLCBAユニツト20及びEユニツト26へ送
られる。
Iユニツト10はこの時点で解放され、LCBA
ユニツト20及びPSユニツト12でLCBA命令
が処理されている間、他の命令を処理できる。こ
のような並列処理は、キヤツシユ・ミスによるロ
ツクアツプを防ぐ。
ユニツト20及びPSユニツト12でLCBA命令
が処理されている間、他の命令を処理できる。こ
のような並列処理は、キヤツシユ・ミスによるロ
ツクアツプを防ぐ。
PSユニツト12からのアドレス・オペランド
(制御ブロツクの開始アドレス)はLCBAユニツ
ト20のオペランド・レジスタ212及びEユニ
ツト26のレジスタR1へ同時にロードされる。
このオペランド情報は、PSユニツト12からオ
ペランド母線32及び34を介してEユニツト2
6及びLCBAユニツト20へ同時に転送される。
(制御ブロツクの開始アドレス)はLCBAユニツ
ト20のオペランド・レジスタ212及びEユニ
ツト26のレジスタR1へ同時にロードされる。
このオペランド情報は、PSユニツト12からオ
ペランド母線32及び34を介してEユニツト2
6及びLCBAユニツト20へ同時に転送される。
第2図において、オペランド・レジスタ212
へロードされたオペランドは、ゼロ検出器214
でゼロか否かを調べられる。もしオペランドがゼ
ロであれば、連係リスト構造中の最後の制御ブロ
ツクがアクセスされ、従つてこれ以上制御ブロツ
クのアドレスがLCBAユニツト20によつて生成
されるべきでないことを示す。
へロードされたオペランドは、ゼロ検出器214
でゼロか否かを調べられる。もしオペランドがゼ
ロであれば、連係リスト構造中の最後の制御ブロ
ツクがアクセスされ、従つてこれ以上制御ブロツ
クのアドレスがLCBAユニツト20によつて生成
されるべきでないことを示す。
オペランドがゼロでなければ、レジスタ210
及び212の内容がアドレス加算器216で加算
され、それにより次制御ブロツク・アドレスを記
憶している記憶位置の有効アドレスが作成され
る。この有効アドレスは有効アドレス・レジスタ
218に書込まれる。なおレジスタ210及び2
12の内容を加算するときのビツトの位置合わせ
は右詰め(最低位ビツトを合わせる)である。次
いでLCBAユニツト20は新しいオペランドを
PSユニツト12に要求するために、有効アドレ
スをオペランド・アドレス母線220へ送り出し
且つLCBAサービス要求線222を付勢する。
PSユニツト12は、有効アドレスによつて指定
されたデータ(次制御ブロツク・アドレス)を取
出し、オペランド母線34を介してLCBAユニツ
ト20へ転送する。
及び212の内容がアドレス加算器216で加算
され、それにより次制御ブロツク・アドレスを記
憶している記憶位置の有効アドレスが作成され
る。この有効アドレスは有効アドレス・レジスタ
218に書込まれる。なおレジスタ210及び2
12の内容を加算するときのビツトの位置合わせ
は右詰め(最低位ビツトを合わせる)である。次
いでLCBAユニツト20は新しいオペランドを
PSユニツト12に要求するために、有効アドレ
スをオペランド・アドレス母線220へ送り出し
且つLCBAサービス要求線222を付勢する。
PSユニツト12は、有効アドレスによつて指定
されたデータ(次制御ブロツク・アドレス)を取
出し、オペランド母線34を介してLCBAユニツ
ト20へ転送する。
Iユニツト10、Eユニツト26及びLCBAユ
ニツト20からPSユニツト12に出される種々
のサービス要求の優先順位は次のとおりである。
ニツト20からPSユニツト12に出される種々
のサービス要求の優先順位は次のとおりである。
1位−EユニツトからPSユニツトへの記憶
2位−PSユニツトからEユニツトへの取出し
3位−PSユニツトからIユニツトへの取出し
4位−LCBAユニツトの要求
連係リスト構造の1回目のアクセスが終つたと
き、オペランド・レジスタ212は2番目の制御
ブロツクC2における最初の記憶位置のアドレス
を含むが(第5図参照)、D3レジスタ210の内
容は元の変位値D3のままである。オペランド・
レジスタ212の内容はゼロではないから、前と
同じくレジスタ210及び212の内容を加算す
ることによつて新しい有効アドレスが作成され、
有効アドレス・レジスタ218に書込まれた後、
オペランド・アドレス母線220を通つてPSユ
ニツト12へ転送される。
き、オペランド・レジスタ212は2番目の制御
ブロツクC2における最初の記憶位置のアドレス
を含むが(第5図参照)、D3レジスタ210の内
容は元の変位値D3のままである。オペランド・
レジスタ212の内容はゼロではないから、前と
同じくレジスタ210及び212の内容を加算す
ることによつて新しい有効アドレスが作成され、
有効アドレス・レジスタ218に書込まれた後、
オペランド・アドレス母線220を通つてPSユ
ニツト12へ転送される。
LCBAユニツト201において次制御ブロツ
ク・アドレスをプリエツチするプロセスは、オペ
ランド・レジスタ212の内容がゼロであること
が検出されるか(制御ブロツクの連係リスト構造
の終りを示す)、又は起動線22がIユニツト1
0によつて付勢される(処理中のすべてのLCBA
サービス要求が取消される)まで、続行される。
ク・アドレスをプリエツチするプロセスは、オペ
ランド・レジスタ212の内容がゼロであること
が検出されるか(制御ブロツクの連係リスト構造
の終りを示す)、又は起動線22がIユニツト1
0によつて付勢される(処理中のすべてのLCBA
サービス要求が取消される)まで、続行される。
代替策として、連係リスト構造の探索により特
定のデータ項目が見つかつた場合には、制御ブロ
ツク・アドレス・ロード除去(LCBAP)と呼ば
れる第2の新しい命令へ分岐することによつて、
LCBAユニツト20の動作を終了させることがで
きる。その場合は、LCBAユニツト20による新
しい要求の発生がすべて中止され、PSユニツト
12に対する保留中のLCBAサービス要求がすべ
て取消される。キヤツシユには、要求されたデー
タ項目に続いて不要なデータ項目まで取込まれる
ことがあるが、LCBA命令を用いるとそのような
ことはなくなる。
定のデータ項目が見つかつた場合には、制御ブロ
ツク・アドレス・ロード除去(LCBAP)と呼ば
れる第2の新しい命令へ分岐することによつて、
LCBAユニツト20の動作を終了させることがで
きる。その場合は、LCBAユニツト20による新
しい要求の発生がすべて中止され、PSユニツト
12に対する保留中のLCBAサービス要求がすべ
て取消される。キヤツシユには、要求されたデー
タ項目に続いて不要なデータ項目まで取込まれる
ことがあるが、LCBA命令を用いるとそのような
ことはなくなる。
要求される前にデータをキヤツシユに持つてき
ておくと、キヤツシユ・ミスによる処理の遅れを
軽減することができるが、これを実効あらしめる
ためには、キヤツシユ・ミスが解消されるまでの
間であつても、プロセツサがキヤツシユをアクセ
スし得ることが必要である。本発明によれば、こ
れが可能になる。LCBAユニツト20のプリフエ
ツチ要求によつてキヤツシユ・ミスが生じても、
Iユニツト10又はEユニツト26の後続の要求
が遅れることはない。従つて、Iユニツト10及
びEユニツト26は、プリフエツチ要求が出され
ている間であつても、動作を続けることができ
る。
ておくと、キヤツシユ・ミスによる処理の遅れを
軽減することができるが、これを実効あらしめる
ためには、キヤツシユ・ミスが解消されるまでの
間であつても、プロセツサがキヤツシユをアクセ
スし得ることが必要である。本発明によれば、こ
れが可能になる。LCBAユニツト20のプリフエ
ツチ要求によつてキヤツシユ・ミスが生じても、
Iユニツト10又はEユニツト26の後続の要求
が遅れることはない。従つて、Iユニツト10及
びEユニツト26は、プリフエツチ要求が出され
ている間であつても、動作を続けることができ
る。
次に第2図、第21図及び第22図を参照しな
がら、LCBAユニツト20の動作の詳細について
説明する。
がら、LCBAユニツト20の動作の詳細について
説明する。
起動源22が付勢されると、待ち状態にあつた
状況マルチプレクサ310が線314へ信号を出
力し、それによりマイクロプログラム・シーケン
サ320が起動する。マイクロプログラム・シー
ケンサ320は、制御シーケンスにおける最初の
状態を表わす制御記憶アドレスを母線322から
制御記憶330へ供給する。制御記憶330はそ
れに応答して1以上の制御信号を制御ワード・レ
ジスタ350へ読出し(338)、マイクロ・プログ
ラム・シーケンス命令をマイクロプログラム・シ
ーケンサ320へ供給し(332)、状況線選択信号
を状況マルチプレクサ310へ供給し(336)、更
に必要であれば分岐アドレスをマイクロプログラ
ム・シーケンサ320へ供給する(340)。
状況マルチプレクサ310が線314へ信号を出
力し、それによりマイクロプログラム・シーケン
サ320が起動する。マイクロプログラム・シー
ケンサ320は、制御シーケンスにおける最初の
状態を表わす制御記憶アドレスを母線322から
制御記憶330へ供給する。制御記憶330はそ
れに応答して1以上の制御信号を制御ワード・レ
ジスタ350へ読出し(338)、マイクロ・プログ
ラム・シーケンス命令をマイクロプログラム・シ
ーケンサ320へ供給し(332)、状況線選択信号
を状況マルチプレクサ310へ供給し(336)、更
に必要であれば分岐アドレスをマイクロプログラ
ム・シーケンサ320へ供給する(340)。
起動シーケンスにおいては、除去線28が付勢
され、更にD3ロード線352が付勢されてオペ
ランドD3をD3レジスタ210へラツチする。
LCBAユニツト・コントローラ230は、オペラ
ンド・レデイ線334が付勢されてPSユニツト
12からのオペランドが母線34上にあることを
示すまで待機している。オペランド・レデイ線3
34が付勢されると、シーケンサ320は制御記
憶330へアドレスを送つて、オペランド・ロー
ド線354を付勢するための制御信号を読出させ
る。オペランド・ロード線354が付勢される
と、母線34上のオペランドがオペランド・レジ
スタ212にラツチされる。連係リスト構造中の
最後の制御ブロツクが見つかつたか否かを調べる
ため、このオペランドは次いでゼロ検出器214
へ供給される。もしオペランドがゼロであれば線
312が付勢され、それによりマイクロプログラ
ム・シーケンサ320は待ち状態に入つて、新し
いLCBA起動シーケンスを待つ。オペランドがゼ
ロでなければ、制御記憶320は有効アドレス・ロ
ード線356を付勢し、それにより有効アドレ
ス・レジスタ218の内容がオペランド・アドレ
スとして母線220上に置かれる。LCBAユニツ
ト20は最後にLCBAサービス要求線222を付
勢した後、PSユニツト12からのオペランド・
レデイを待つ。
され、更にD3ロード線352が付勢されてオペ
ランドD3をD3レジスタ210へラツチする。
LCBAユニツト・コントローラ230は、オペラ
ンド・レデイ線334が付勢されてPSユニツト
12からのオペランドが母線34上にあることを
示すまで待機している。オペランド・レデイ線3
34が付勢されると、シーケンサ320は制御記
憶330へアドレスを送つて、オペランド・ロー
ド線354を付勢するための制御信号を読出させ
る。オペランド・ロード線354が付勢される
と、母線34上のオペランドがオペランド・レジ
スタ212にラツチされる。連係リスト構造中の
最後の制御ブロツクが見つかつたか否かを調べる
ため、このオペランドは次いでゼロ検出器214
へ供給される。もしオペランドがゼロであれば線
312が付勢され、それによりマイクロプログラ
ム・シーケンサ320は待ち状態に入つて、新し
いLCBA起動シーケンスを待つ。オペランドがゼ
ロでなければ、制御記憶320は有効アドレス・ロ
ード線356を付勢し、それにより有効アドレ
ス・レジスタ218の内容がオペランド・アドレ
スとして母線220上に置かれる。LCBAユニツ
ト20は最後にLCBAサービス要求線222を付
勢した後、PSユニツト12からのオペランド・
レデイを待つ。
第7図は、以上の動作を要約したフローチヤー
トである。
トである。
次に第3A図、第3B図及び第8A〜8E図を
参照しながら、PSユニツト12の詳細について
説明する。これは、本発明による修正部分を除く
と、前述のIBMシステム/370モデル168のマ
ニユアルに記載されているものとし大体同じであ
る。
参照しながら、PSユニツト12の詳細について
説明する。これは、本発明による修正部分を除く
と、前述のIBMシステム/370モデル168のマ
ニユアルに記載されているものとし大体同じであ
る。
PSユニツト12は、Iユニツト10、Eユニ
ツト26及びLCBAユニツト20からのサービス
要求並びにLCBAユニツト20からの除去信号を
受取るPSユニツト・コントローラ502の制御
のものに動作する。PSユニツト・コントローラ
502はマイクロプログラム制御のコントローラ
で、その動作の詳細は第8A〜8E図のフローチ
ヤートに示してある。以下、このフローチヤート
に沿つて説明する。
ツト26及びLCBAユニツト20からのサービス
要求並びにLCBAユニツト20からの除去信号を
受取るPSユニツト・コントローラ502の制御
のものに動作する。PSユニツト・コントローラ
502はマイクロプログラム制御のコントローラ
で、その動作の詳細は第8A〜8E図のフローチ
ヤートに示してある。以下、このフローチヤート
に沿つて説明する。
いずれかのユニツトからコントローラ502に
サービス要求が送られてくると、まずPSユニツ
ト12に対する保留中のサービス要求の有無が調
べられる。もしあれば、内部のビジイ・フラグか
らPSユニツト12がビジイか否か、即ち別の要
求を処理するために使用できるレジスタがPSユ
ニツト12にあるか否かが調べられる。次いで、
サービス要求の源及び性質を調べるためにサービ
ス要求ベクトルが読取られる。本実施例では6ビ
ツトのサービス要求ベクトルPMSFILが使用さ
れるものとする。このサービス要求ベクトルは、
ビツト0(右端のビツトLとする)がセツトされ
ていると、PSユニツト12のアクセスに関する
優先順位が最下位であるLCBAユニツト20から
のサービス要求を表わし、ビツト1(I)がセツトさ
れていると、次に高い優先順位を持つたIユニツ
ト10からのサービス要求を表わし、ビツト2(F)
がセツトされていると、Eユニツト26からの取
出し要求を表わし、ビツト3(S)がセツトされて
いるとEユニツト26からの記憶要求を表わし、
ビツト4(M)がセツトされていると、主記憶から
のサービス要求を表わし、ビツト5(P)がセツト
されていると、LCBAユニツト20からの除去要
求を表わす。
サービス要求が送られてくると、まずPSユニツ
ト12に対する保留中のサービス要求の有無が調
べられる。もしあれば、内部のビジイ・フラグか
らPSユニツト12がビジイか否か、即ち別の要
求を処理するために使用できるレジスタがPSユ
ニツト12にあるか否かが調べられる。次いで、
サービス要求の源及び性質を調べるためにサービ
ス要求ベクトルが読取られる。本実施例では6ビ
ツトのサービス要求ベクトルPMSFILが使用さ
れるものとする。このサービス要求ベクトルは、
ビツト0(右端のビツトLとする)がセツトされ
ていると、PSユニツト12のアクセスに関する
優先順位が最下位であるLCBAユニツト20から
のサービス要求を表わし、ビツト1(I)がセツトさ
れていると、次に高い優先順位を持つたIユニツ
ト10からのサービス要求を表わし、ビツト2(F)
がセツトされていると、Eユニツト26からの取
出し要求を表わし、ビツト3(S)がセツトされて
いるとEユニツト26からの記憶要求を表わし、
ビツト4(M)がセツトされていると、主記憶から
のサービス要求を表わし、ビツト5(P)がセツト
されていると、LCBAユニツト20からの除去要
求を表わす。
PSユニツト・コントローラ502は、上述の
如きサービス要求ベクトルを解読して、ビツト4
=(M)及び5(P)が0であれば要求アドレス選択マ
ルチプレクサ(SRA)504へ向かう線506
に優先選択信号を発生する。SRA504はこれ
に応答して1つのアドレス信号を選択する。PS
ユニツト12では、32ビツトのアドレスのうちの
21ビツト(ビツト8〜28)が使用される。説明の
都合上、これらのビツトの番号を8〜28の代りに
1〜21で表わすことにする。21ビツト・アドレス
の上位17ビツト(ビツト1〜17)がラインを指定
し、残り4ヘツド(ビツト18〜21)がその中の特
定のダブルワードを指定する。
如きサービス要求ベクトルを解読して、ビツト4
=(M)及び5(P)が0であれば要求アドレス選択マ
ルチプレクサ(SRA)504へ向かう線506
に優先選択信号を発生する。SRA504はこれ
に応答して1つのアドレス信号を選択する。PS
ユニツト12では、32ビツトのアドレスのうちの
21ビツト(ビツト8〜28)が使用される。説明の
都合上、これらのビツトの番号を8〜28の代りに
1〜21で表わすことにする。21ビツト・アドレス
の上位17ビツト(ビツト1〜17)がラインを指定
し、残り4ヘツド(ビツト18〜21)がその中の特
定のダブルワードを指定する。
SRA504によつて選択された21ビツトのア
ドレス信号は母線510を通つて要求アドレス・
ラツチ508へ送られ、そのうち上位17ビツトは
母線514を通つてデイレクトリ512にも送ら
れる。デイレクトリイ512は、要求されたデー
タがキヤツシユ526にあるか(ヒツト)否か
(ミス)を調べるために、要求アドレスの上位17
ビツトとキヤツシユ526に書込まれているライ
ン(セツト)のアドレスとを比較する。
ドレス信号は母線510を通つて要求アドレス・
ラツチ508へ送られ、そのうち上位17ビツトは
母線514を通つてデイレクトリ512にも送ら
れる。デイレクトリイ512は、要求されたデー
タがキヤツシユ526にあるか(ヒツト)否か
(ミス)を調べるために、要求アドレスの上位17
ビツトとキヤツシユ526に書込まれているライ
ン(セツト)のアドレスとを比較する。
要求されたデータがキヤツシユ526にあつた
ためにヒツト線516が付勢されると、セツト出
力選択回路518の出力側、並びにセツト選択回
路520及びコングルエンス・クラス選択回路5
22の入力側がすべてゼロに設定される。その結
果、キヤツシユ526にある4個1組のセツト中
の特定の1つを識別する2ビツトのセツト・コー
ドがデイレクトリ512から線524、選択回路
518及び線528を通つて、キヤツシユ526
のセツト選択回路520へ供給され、これと同時
に、コングルエンス・クラスを識別するアドレ
ス・ビツト11〜17が要求アドレス・ラツチ508
から線530を通つてコングルエンス・クラス選
択回路522へ供給される。
ためにヒツト線516が付勢されると、セツト出
力選択回路518の出力側、並びにセツト選択回
路520及びコングルエンス・クラス選択回路5
22の入力側がすべてゼロに設定される。その結
果、キヤツシユ526にある4個1組のセツト中
の特定の1つを識別する2ビツトのセツト・コー
ドがデイレクトリ512から線524、選択回路
518及び線528を通つて、キヤツシユ526
のセツト選択回路520へ供給され、これと同時
に、コングルエンス・クラスを識別するアドレ
ス・ビツト11〜17が要求アドレス・ラツチ508
から線530を通つてコングルエンス・クラス選
択回路522へ供給される。
上述の4個1組のセツトがコングルエンス・ク
ラスと呼ばれるものである。コングルエンス・ク
ラスを識別するアドレス・ビツトの数は7である
から、キヤツシユ526は全部で128個のコング
ルエンス・クラス(512個のセツト)を保持し得
る。各セツトは1ライン分のデータ即ち16個のダ
ブルワードを含む。選択回路520及び522に
よつて特定のコングルエンス・クラス中の特定の
セツトが選択されると、それに対応するライン・
データがキヤツシユ526から線534を通つて
ダブルワード選択回路532へ読出される。ヒツ
トの場合は、要求アドレス・ラツチ508にある
アドレス・ビツト18〜21が線536を通つてダブ
ルワード選択回路532へ供給され、それにより
16ダブルワードのうちの1つが選択されて、線5
38を通つて経路選択回路540へ供給される。
このときPSユニツト・コントローラ502は、
処理中のサービス要求に応じてオペランドの経路
を指定するフラグ(第8B図に「SFIL」で示し
てある)を線542から経路選択回路540へ供
給する。経路選択回路540は線542上のフラ
グによつて指定された母線14,32又は34へ
ダブルワードのオペランドを送り出す。
ラスと呼ばれるものである。コングルエンス・ク
ラスを識別するアドレス・ビツトの数は7である
から、キヤツシユ526は全部で128個のコング
ルエンス・クラス(512個のセツト)を保持し得
る。各セツトは1ライン分のデータ即ち16個のダ
ブルワードを含む。選択回路520及び522に
よつて特定のコングルエンス・クラス中の特定の
セツトが選択されると、それに対応するライン・
データがキヤツシユ526から線534を通つて
ダブルワード選択回路532へ読出される。ヒツ
トの場合は、要求アドレス・ラツチ508にある
アドレス・ビツト18〜21が線536を通つてダブ
ルワード選択回路532へ供給され、それにより
16ダブルワードのうちの1つが選択されて、線5
38を通つて経路選択回路540へ供給される。
このときPSユニツト・コントローラ502は、
処理中のサービス要求に応じてオペランドの経路
を指定するフラグ(第8B図に「SFIL」で示し
てある)を線542から経路選択回路540へ供
給する。経路選択回路540は線542上のフラ
グによつて指定された母線14,32又は34へ
ダブルワードのオペランドを送り出す。
処理中のサービス要求がEユニツト26からの
取出し要求であれば、オペランドは母線32を通
つてEユニツト26へ転送される。Iユニツト1
0からの要求の場合は、オペランドは、Iユニツ
ト10で解読された命令に従つて、母線14を通
つてIユニツト10へ転送されるか、母線32を
通つてEユニツト26へ転送されるか、又は母線
34を通つてLCBAユニツト20へ転送される。
LCBAユニツト20への転送は、LCBAユニツト
20からの要求によつても行われる。
取出し要求であれば、オペランドは母線32を通
つてEユニツト26へ転送される。Iユニツト1
0からの要求の場合は、オペランドは、Iユニツ
ト10で解読された命令に従つて、母線14を通
つてIユニツト10へ転送されるか、母線32を
通つてEユニツト26へ転送されるか、又は母線
34を通つてLCBAユニツト20へ転送される。
LCBAユニツト20への転送は、LCBAユニツト
20からの要求によつても行われる。
処理中のサービス要求がEユニツト26からの
記憶要求であれば、上述の転送方向とは反対に、
Eユニツト26からのオペランドが母線272を
通つて経路選択回路540へ供給され、かくてキ
ヤツシユ526の特定の記憶位置に書込まれる。
セツト、コングルエンス・クラス及びダブルワー
ドの選択は前と同じである。
記憶要求であれば、上述の転送方向とは反対に、
Eユニツト26からのオペランドが母線272を
通つて経路選択回路540へ供給され、かくてキ
ヤツシユ526の特定の記憶位置に書込まれる。
セツト、コングルエンス・クラス及びダブルワー
ドの選択は前と同じである。
オペランドの経路特定フラグを転送する線54
2は実際は4本の線から成り、従つて4ビツトの
経路指定フラグを転送する。本実施例では、経路
指定フラグの最上位ビツト(S)が1に設定されて
いるとEユニツト26からの記憶(母線272)
が選択され、2番目のビツト(F)が1に設定されて
いるとEユニツト26への取出し(母線32)が
選択され、3番目のビツト(I)が1に設定されてい
るとIユニツト10への取出し(母線14)が選
択され、4番目のビツト(L)が1に設定されている
とLCBAユニツト20への取出し(母線34)が
選択される。各ユニツトは対応するオペランド・
レデイ信号が発生されると、PSユニツト12か
らのオペランドを受取る。
2は実際は4本の線から成り、従つて4ビツトの
経路指定フラグを転送する。本実施例では、経路
指定フラグの最上位ビツト(S)が1に設定されて
いるとEユニツト26からの記憶(母線272)
が選択され、2番目のビツト(F)が1に設定されて
いるとEユニツト26への取出し(母線32)が
選択され、3番目のビツト(I)が1に設定されてい
るとIユニツト10への取出し(母線14)が選
択され、4番目のビツト(L)が1に設定されている
とLCBAユニツト20への取出し(母線34)が
選択される。各ユニツトは対応するオペランド・
レデイ信号が発生されると、PSユニツト12か
らのオペランドを受取る。
以上のように、いずれかのユニツトによつて要
求されたデータがキヤツシユにあつた場合の処理
は比較的簡単でわかり易いが、デイレクトリ51
2がミス線544を付勢した場合にはこれ程簡単
にはいかない。
求されたデータがキヤツシユにあつた場合の処理
は比較的簡単でわかり易いが、デイレクトリ51
2がミス線544を付勢した場合にはこれ程簡単
にはいかない。
まず要求アドレス・ラツチ508の内容、置換
えられるべきセツトを表わすデイレクトリ512
からの2ビツトのセツト・コード及びPSユニツ
ト・コントローラ502からの4ビツトの経路指
定フラグが各々線548,550及び552(又
は554)を通つて要求情報レジスタ(RDR)
入力選択回路546へ供給される。RDR入力選
択回路546は、PSユニツト・コントローラ5
02から線556へ出されたRDR入力選択信号
により活動化され、要求情報をRDRアレイ55
8へゲートする。
えられるべきセツトを表わすデイレクトリ512
からの2ビツトのセツト・コード及びPSユニツ
ト・コントローラ502からの4ビツトの経路指
定フラグが各々線548,550及び552(又
は554)を通つて要求情報レジスタ(RDR)
入力選択回路546へ供給される。RDR入力選
択回路546は、PSユニツト・コントローラ5
02から線556へ出されたRDR入力選択信号
により活動化され、要求情報をRDRアレイ55
8へゲートする。
RDRアレイ558は、4ビツトの経路指定フ
ラグ、2ビツトのセツト・コード及び21ビツトの
アドレスから或る要求情報を各々保持し得る複数
(N個)のRDRを含む。PSユニツト・コントロ
ーラ502は各RDRが使用可能か否かを示すN
個のビジイ・フラグを保持しており、書込みに際
しては、ビジイ・フラグが0である使用可能な
RDRを1つ選択して、それに対応するRDR入力
選択信号を線556へ出し、かくして選択回路5
46にある要求情報が選択されたRDRに書込ま
れる。読出しの場合は、特定のRDRを選択する
RDR出力選択信号が線568に出される。
ラグ、2ビツトのセツト・コード及び21ビツトの
アドレスから或る要求情報を各々保持し得る複数
(N個)のRDRを含む。PSユニツト・コントロ
ーラ502は各RDRが使用可能か否かを示すN
個のビジイ・フラグを保持しており、書込みに際
しては、ビジイ・フラグが0である使用可能な
RDRを1つ選択して、それに対応するRDR入力
選択信号を線556へ出し、かくして選択回路5
46にある要求情報が選択されたRDRに書込ま
れる。読出しの場合は、特定のRDRを選択する
RDR出力選択信号が線568に出される。
キヤツシユ・ミスが生じると、RDRアレイ5
58に保持されている保留中の要求情報のアドレ
スが、要求アドレス・ラツチ508からアドレス
選択回路562へ出力された21ビツトのアドレス
と比較回路560で比較される。これは、現要求
に係るダブルワード(及びライン)が以前にも要
求されてキヤツシユ・ミスを生じていたか否かを
調べるためである。比較回路560は全21ビツト
の比較結果をダブルワード一致レジスタ567へ
送り、上位17ビツト(ライン・アドレス)の比較
結果をライン一致レジスタ565へ送る。レジス
タ565及び567のN個のビツト位置はRDR
アレイ558に含まれるN個のRDRに各々対応
している。
58に保持されている保留中の要求情報のアドレ
スが、要求アドレス・ラツチ508からアドレス
選択回路562へ出力された21ビツトのアドレス
と比較回路560で比較される。これは、現要求
に係るダブルワード(及びライン)が以前にも要
求されてキヤツシユ・ミスを生じていたか否かを
調べるためである。比較回路560は全21ビツト
の比較結果をダブルワード一致レジスタ567へ
送り、上位17ビツト(ライン・アドレス)の比較
結果をライン一致レジスタ565へ送る。レジス
タ565及び567のN個のビツト位置はRDR
アレイ558に含まれるN個のRDRに各々対応
している。
ライン一致レジスタ565の少なくとも1つの
ビツト位置がライン・アドレスの一致を表わす1
に設定されると、線564が付勢される。これ
は、要求されているダブルワードを含むラインを
取出すためのライン取出し要求が既にPSユニツ
ト12から主記憶600(第4図)へ送られてい
ることを意味する。従つて線564が付勢される
と、PSユニツト・コントローラ502はライン
取出し要求の送出を禁止する。これに対して線5
64が付勢されなかつた場合には、PSユニツ
ト・コントローラ502は要求アドレス・ラツチ
508にある現要求アドレスの上位17ビツトを選
択回路582へ出力させ、ライン取出し要求アド
レスとして母線584から主記憶600へ送る。
ビツト位置がライン・アドレスの一致を表わす1
に設定されると、線564が付勢される。これ
は、要求されているダブルワードを含むラインを
取出すためのライン取出し要求が既にPSユニツ
ト12から主記憶600(第4図)へ送られてい
ることを意味する。従つて線564が付勢される
と、PSユニツト・コントローラ502はライン
取出し要求の送出を禁止する。これに対して線5
64が付勢されなかつた場合には、PSユニツ
ト・コントローラ502は要求アドレス・ラツチ
508にある現要求アドレスの上位17ビツトを選
択回路582へ出力させ、ライン取出し要求アド
レスとして母線584から主記憶600へ送る。
ダブルワード一致レジスタ567の出力は、
RDRアレイ558の更新に使用される。以下の
説明から明らかになるように、比較回路560で
のアドレス比較の結果、ライン一致レジスタ56
5においては同時に2以上のビツトが1に設定さ
れることがあるが、ダブルワード一致レジスタ5
67においては1つだけである。もしいずれかの
RDRにある21ビツトのアドレスが要求アドレ
ス・ラツチ508にある21ビツトの現要求アドレ
スと一致すると、ダブルワード一致レジスタ56
7の対応するビツトが1に設定され、それにより
線566が付勢される。勿論、このとき線564
も付勢される。
RDRアレイ558の更新に使用される。以下の
説明から明らかになるように、比較回路560で
のアドレス比較の結果、ライン一致レジスタ56
5においては同時に2以上のビツトが1に設定さ
れることがあるが、ダブルワード一致レジスタ5
67においては1つだけである。もしいずれかの
RDRにある21ビツトのアドレスが要求アドレ
ス・ラツチ508にある21ビツトの現要求アドレ
スと一致すると、ダブルワード一致レジスタ56
7の対応するビツトが1に設定され、それにより
線566が付勢される。勿論、このとき線564
も付勢される。
PSユニツト・コントローラ502は、線56
6の付勢に応答して、ダブルワード一致レジスタ
567の内容から、どのRDRにあるアドレスが
一致したかを調べ、一致したRDRを選択する
RDR入力選択信号及びRDR出力選択信号を各々
線556及び568に出力する。
6の付勢に応答して、ダブルワード一致レジスタ
567の内容から、どのRDRにあるアドレスが
一致したかを調べ、一致したRDRを選択する
RDR入力選択信号及びRDR出力選択信号を各々
線556及び568に出力する。
まず選択されたRDRに保持されていた4ビツ
トの経路指定フラグがRDR出力選択回路570
及び線572を通つて、経路指定OR回路574
の一方の入力へ供給される。OR回路574の他
方の入力には、現要求のための4ビツトの経路指
定フラグがPSユニツト・コントローラ502か
ら線576を通つて供給される。OR回路574
の出力は線554を通つてRDR入力選択回路5
46へ送られ、このとき線556上のRDR入力
選択信号によつて選択されているRDRに書戻さ
れる。従つて、このRDRに保持されている要求
情報に係るキヤツシユ・ミスが解消したときに
は、要求されているダブルワードを複数のユニツ
トへ同時に転送することができる。経路指定フラ
グの更新が終ると、PSユニツト12は他のサー
ビス要求を受入れられるようになる。
トの経路指定フラグがRDR出力選択回路570
及び線572を通つて、経路指定OR回路574
の一方の入力へ供給される。OR回路574の他
方の入力には、現要求のための4ビツトの経路指
定フラグがPSユニツト・コントローラ502か
ら線576を通つて供給される。OR回路574
の出力は線554を通つてRDR入力選択回路5
46へ送られ、このとき線556上のRDR入力
選択信号によつて選択されているRDRに書戻さ
れる。従つて、このRDRに保持されている要求
情報に係るキヤツシユ・ミスが解消したときに
は、要求されているダブルワードを複数のユニツ
トへ同時に転送することができる。経路指定フラ
グの更新が終ると、PSユニツト12は他のサー
ビス要求を受入れられるようになる。
アドレス比較の結果566が付勢されず、現要
求に係るダブルワードが以前に要求されていなか
つたことを示すと、PSユニツト・コントローラ
502は要求情報を保管するために、N個のビジ
イ・フラグを調べることによつて使用可能な
RDRも探す。使用可能なRDRが見つかると、PS
ユニツト・コントローラ502はそのビジイ・フ
ラグを1にすると共に、対応するRDR入力選択
信号を線556に出力する。この結果、線552
上の経路指定フラグ、線550上のセツト・コー
ド及び線548上の要求アドレスから成る新しい
要求情報がRDR入力選択回路546から選択さ
れたRDRに書込まれる。
求に係るダブルワードが以前に要求されていなか
つたことを示すと、PSユニツト・コントローラ
502は要求情報を保管するために、N個のビジ
イ・フラグを調べることによつて使用可能な
RDRも探す。使用可能なRDRが見つかると、PS
ユニツト・コントローラ502はそのビジイ・フ
ラグを1にすると共に、対応するRDR入力選択
信号を線556に出力する。この結果、線552
上の経路指定フラグ、線550上のセツト・コー
ド及び線548上の要求アドレスから成る新しい
要求情報がRDR入力選択回路546から選択さ
れたRDRに書込まれる。
ライン・アドレスの一致を表わす線564が付
勢されていた場合にはPSユニツト12は、新し
い要求情報の書込みが終ると、別のサービス要求
を受入れることができる。これに対して、線56
4が付勢されていなかつた場合には、前述のライ
ン取出し要求を主記憶600へ送る前に、次のよ
うにして現要求に関する処理が続けられる。
勢されていた場合にはPSユニツト12は、新し
い要求情報の書込みが終ると、別のサービス要求
を受入れることができる。これに対して、線56
4が付勢されていなかつた場合には、前述のライ
ン取出し要求を主記憶600へ送る前に、次のよ
うにして現要求に関する処理が続けられる。
まず、置換えられるべきセツト中のデータが変
更されているか否かがデイレクトリ512で調べ
られる。周知のように、デイレクトリ512は
各々のセツトに対応するエントリ中に1ビツトの
変更フラグを持つており、Eユニツト26からキ
ヤツシユ526への記憶動作が遂行される度に、
この記憶動作によつて変更されたデータの変更フ
ラグを1に設定する。これは、主記憶600及び
キヤツシユ526において、同じアドレスを持つ
たデータの対応がとれていないことを意味する。
従つて、変更フラグが1に設定されているセツト
が置換えられるべきセツトとして選択された場合
には、ライン取出しを実行する前に、変更されて
いるデータをキヤツシユ526から主記憶600
に書戻す必要がある。このような書戻しは吐出し
と呼ばれる。
更されているか否かがデイレクトリ512で調べ
られる。周知のように、デイレクトリ512は
各々のセツトに対応するエントリ中に1ビツトの
変更フラグを持つており、Eユニツト26からキ
ヤツシユ526への記憶動作が遂行される度に、
この記憶動作によつて変更されたデータの変更フ
ラグを1に設定する。これは、主記憶600及び
キヤツシユ526において、同じアドレスを持つ
たデータの対応がとれていないことを意味する。
従つて、変更フラグが1に設定されているセツト
が置換えられるべきセツトとして選択された場合
には、ライン取出しを実行する前に、変更されて
いるデータをキヤツシユ526から主記憶600
に書戻す必要がある。このような書戻しは吐出し
と呼ばれる。
デイレクトリ512は、例えばLRUアルゴリ
ズムに従つて選択したセツトの変更フラグが1に
設定されていると吐出し要求線578を付勢し、
更にそのときのアドレス・ビツト1〜17を吐出し
要求アドレスとして母線580へ出力する。この
アドレスは選択回路582から母線584を通つ
て主記憶600に送られる。
ズムに従つて選択したセツトの変更フラグが1に
設定されていると吐出し要求線578を付勢し、
更にそのときのアドレス・ビツト1〜17を吐出し
要求アドレスとして母線580へ出力する。この
アドレスは選択回路582から母線584を通つ
て主記憶600に送られる。
吐出し要求線578が付勢されると、PSユニ
ツト・コントローラ502はそのとき選択されて
いるRDRを示すインデツクス値(I)をRDR出力選
択信号として線568へ出力し、更に選択回路5
20及び522の入力側を1に設定する。この結
果、選択されたRDR中のセツト・コードがセツ
ト選択回路520へゲートされ、コングルエン
ス・クラスを指定するアドレス・ビツト11〜17が
コングルエンス・クラス選択回路522へゲート
される。キヤツシユ526から読出されたデータ
(ライン)は、データ母線586を通つて主記憶
600のデータ・インターリーブ回路602(第
4図)へ供給される。主記憶アドレス母線584
上の17ビツトのライン・アドレスはアドレス・イ
ンターリーブ回路604から適切なアドレス・ラ
ツチ606へ供給される。かくして特定のメモ
リ・バンク614において、キヤツシユ526か
ら吐出されてきたライン・データの記憶動作が遂
行される。これが終ると、PSユニツト・コント
ローラ502は前述のように、要求アドレス・ラ
ツチ508にある現要求アドレスの上位17ビツト
をライン取出し要求アドレスとして主記憶600
へ送る。なお図には示していないが、PSユニツ
ト・コントローラ502は主記憶600の記憶動
作又は取出し動作を指定する信号も発生する。
ツト・コントローラ502はそのとき選択されて
いるRDRを示すインデツクス値(I)をRDR出力選
択信号として線568へ出力し、更に選択回路5
20及び522の入力側を1に設定する。この結
果、選択されたRDR中のセツト・コードがセツ
ト選択回路520へゲートされ、コングルエン
ス・クラスを指定するアドレス・ビツト11〜17が
コングルエンス・クラス選択回路522へゲート
される。キヤツシユ526から読出されたデータ
(ライン)は、データ母線586を通つて主記憶
600のデータ・インターリーブ回路602(第
4図)へ供給される。主記憶アドレス母線584
上の17ビツトのライン・アドレスはアドレス・イ
ンターリーブ回路604から適切なアドレス・ラ
ツチ606へ供給される。かくして特定のメモ
リ・バンク614において、キヤツシユ526か
ら吐出されてきたライン・データの記憶動作が遂
行される。これが終ると、PSユニツト・コント
ローラ502は前述のように、要求アドレス・ラ
ツチ508にある現要求アドレスの上位17ビツト
をライン取出し要求アドレスとして主記憶600
へ送る。なお図には示していないが、PSユニツ
ト・コントローラ502は主記憶600の記憶動
作又は取出し動作を指定する信号も発生する。
PSユニツト12は、ライン取出し要求を主記
憶600へ送つてしまうと、別のサービス要求を
受入れることができる。
憶600へ送つてしまうと、別のサービス要求を
受入れることができる。
第4図に示した主記憶600においては、選択
されたメモリ・バンク614から対応するデー
タ・バツフア616へのライン取出しが完了する
と、このメモリ・バンク614は線612へアク
セス完了信号を発生する。対応するアドレス・ラ
ツチ606に保持されていたライン・アドレスは
完了アドレス・インターリーブ回路618から母
線620へ出力される。各メモリ・バンク614
からのアクセス完了信号はすべてOR回路610
に供給され、そこから線608を通つてPSユニ
ツト・コントローラ502へ送られる。線608
上の信号は、主記憶600からキヤツシユ526
へのライン転送要求を表わし、第8A図に示した
サービス要求ベクトルPMSFILのビツト5(M)に
対応している。
されたメモリ・バンク614から対応するデー
タ・バツフア616へのライン取出しが完了する
と、このメモリ・バンク614は線612へアク
セス完了信号を発生する。対応するアドレス・ラ
ツチ606に保持されていたライン・アドレスは
完了アドレス・インターリーブ回路618から母
線620へ出力される。各メモリ・バンク614
からのアクセス完了信号はすべてOR回路610
に供給され、そこから線608を通つてPSユニ
ツト・コントローラ502へ送られる。線608
上の信号は、主記憶600からキヤツシユ526
へのライン転送要求を表わし、第8A図に示した
サービス要求ベクトルPMSFILのビツト5(M)に
対応している。
PSユニツト・コントローラ502は主記憶6
00からの要求を受入れると、まずアドレス選択
回路562の入力側を1に設定することにより、
母線620上の17ビツトのライン・アドレスをア
ドレス選択回路562のビツト位置1〜17へロー
ドし且つビツト位置18〜21をすべて0に設定す
る。比較回路560はアドレス選択回路562か
らのアドレスをRDRアレイ558にある保留要
求アドレスと比較し、その結果をライン一致レジ
スタ565へ送る。PSユニツト・コントローラ
502はライン一致レジスタ565の内容から、
どのRDRでライン・アドレスの一致が生じたか
を調べ、更にライン記憶フラグ(最初は0に初期
設定される)の状態から、キヤツシユ526への
ライン記憶動作が終つているか否かを調べる。
00からの要求を受入れると、まずアドレス選択
回路562の入力側を1に設定することにより、
母線620上の17ビツトのライン・アドレスをア
ドレス選択回路562のビツト位置1〜17へロー
ドし且つビツト位置18〜21をすべて0に設定す
る。比較回路560はアドレス選択回路562か
らのアドレスをRDRアレイ558にある保留要
求アドレスと比較し、その結果をライン一致レジ
スタ565へ送る。PSユニツト・コントローラ
502はライン一致レジスタ565の内容から、
どのRDRでライン・アドレスの一致が生じたか
を調べ、更にライン記憶フラグ(最初は0に初期
設定される)の状態から、キヤツシユ526への
ライン記憶動作が終つているか否かを調べる。
主記憶600からの要求を受入れた時点では、
またキヤツシユ526へのライン記憶動作は終つ
ていないから、PSユニツト・コントローラ50
2は、ライン・アドレスが一致した最初のRDR
を示すインデツクス値(I)をRDR出力選択信号と
して線568へ出力し、このRDRに保持されて
いるセツト・コード及びアドレス・ビツト11〜17
を各々セツト選択回路520及びコングルエン
ス・クラス選択回路522へ供給することによつ
て、主記憶600から母線588へ取出されてき
たラインをキヤツシユ526の選択された記憶位
置に記憶し、更にダブルワード選択回路532に
供給する。次いで、このライン中の要求されてい
るダブルワード(1つとは限らない)がダブルワ
ード選択回路532から経路選択回路540を通
つて1以上のユニツトへ順次に転送される。この
ダブルワード転送は次のように行われる。
またキヤツシユ526へのライン記憶動作は終つ
ていないから、PSユニツト・コントローラ50
2は、ライン・アドレスが一致した最初のRDR
を示すインデツクス値(I)をRDR出力選択信号と
して線568へ出力し、このRDRに保持されて
いるセツト・コード及びアドレス・ビツト11〜17
を各々セツト選択回路520及びコングルエン
ス・クラス選択回路522へ供給することによつ
て、主記憶600から母線588へ取出されてき
たラインをキヤツシユ526の選択された記憶位
置に記憶し、更にダブルワード選択回路532に
供給する。次いで、このライン中の要求されてい
るダブルワード(1つとは限らない)がダブルワ
ード選択回路532から経路選択回路540を通
つて1以上のユニツトへ順次に転送される。この
ダブルワード転送は次のように行われる。
まず、ライン・アドレスが一致した最初の
RDRに保持されているダブルワード選択用のア
ドレス・ビツト18〜21がRDR出力選択回路57
0からダブルワード選択回路532へ供給され、
それにより1つのダブルワードが選択されて母線
538へ出力される。同時に同じRDRに保持さ
れている4ビツトの経路指定フラグがRDR出力
選択回路570から経路指定選択回路540へ供
給されて、母線14,32又は34を選択し、特
定のユニツトへのダブルワード転送を行わせる。
これが終ると、PSユニツト・コントローラ50
2は、ライン・アドレスが一致した次のRDRの
内容をRDR出力選択回路570へ読出すことに
よつて、同様なダブルワード転送を実行する。こ
のときはライン記憶フラグが既に1に設定されて
いるから、キヤツシユ526へのライン記憶動作
は不要である。最後のRDRについての処理が終
ると、PSユニツト12は別のサービス要求を受
入れることができる。なお、ライン・アドレスが
一致したRDRに保持されていた経路指定フラグ
がEユニツト26からキヤツシユ526への記憶
動作を示していた場合には、母線272上のダブ
ルワードが経路指定選択回路540を通つてダブ
ル選択回路532の選択されたダブルワード位置
へ転送され、次いで適当なときにキヤツシユ52
6に記憶される。
RDRに保持されているダブルワード選択用のア
ドレス・ビツト18〜21がRDR出力選択回路57
0からダブルワード選択回路532へ供給され、
それにより1つのダブルワードが選択されて母線
538へ出力される。同時に同じRDRに保持さ
れている4ビツトの経路指定フラグがRDR出力
選択回路570から経路指定選択回路540へ供
給されて、母線14,32又は34を選択し、特
定のユニツトへのダブルワード転送を行わせる。
これが終ると、PSユニツト・コントローラ50
2は、ライン・アドレスが一致した次のRDRの
内容をRDR出力選択回路570へ読出すことに
よつて、同様なダブルワード転送を実行する。こ
のときはライン記憶フラグが既に1に設定されて
いるから、キヤツシユ526へのライン記憶動作
は不要である。最後のRDRについての処理が終
ると、PSユニツト12は別のサービス要求を受
入れることができる。なお、ライン・アドレスが
一致したRDRに保持されていた経路指定フラグ
がEユニツト26からキヤツシユ526への記憶
動作を示していた場合には、母線272上のダブ
ルワードが経路指定選択回路540を通つてダブ
ル選択回路532の選択されたダブルワード位置
へ転送され、次いで適当なときにキヤツシユ52
6に記憶される。
PSユニツト・コントローラ502は、ダブル
ワード転送を実行する度に、そのときのRDR(I)
に対応するビジイ・フラグ(I)を0にリセツトす
る。
ワード転送を実行する度に、そのときのRDR(I)
に対応するビジイ・フラグ(I)を0にリセツトす
る。
もしLCBA命令が解読されて除去線28が付勢
されると、PSユニツト・コントローラ502は
以前にLCBAユニツト20から出されて保留中に
なつているすべてのサービス要求を取消すため、
RDRアレイ558においてLCBAユニツト20
への経路指定を示すビツト(経路指令フラグの右
端のビツト)をすべて0にリセツトする。これ
は、線598上の取消し信号によつてNビツトの
LCBA経路指定ビツト・レジスタ596の内容を
すべて0にすることにより遂行される。除去線2
8の付勢は、LCBAユニツト以外のユニツトから
のサービス要求には影響を及ぼさない。
されると、PSユニツト・コントローラ502は
以前にLCBAユニツト20から出されて保留中に
なつているすべてのサービス要求を取消すため、
RDRアレイ558においてLCBAユニツト20
への経路指定を示すビツト(経路指令フラグの右
端のビツト)をすべて0にリセツトする。これ
は、線598上の取消し信号によつてNビツトの
LCBA経路指定ビツト・レジスタ596の内容を
すべて0にすることにより遂行される。除去線2
8の付勢は、LCBAユニツト以外のユニツトから
のサービス要求には影響を及ぼさない。
第1図は本発明に従うデータ処理システムの概
要を示すブロツク図、第2図はLCBAユニツト2
0の構成を示すブロツク図、第2.1図はLCBA
ユニツト・コントローラ230の構成を示すブロ
ツク図、第2.2図はLCBAユニツト・コントロ
ーラ230の動作を示すフローチヤート、第3A
図及び第3B図はPSユニツト12の構成を示す
ブロツク図、第4図は主記憶600の構成を示す
ブロツク図、第5図は複数の制御ブロツクを含む
連係リスト構造を示すブロツク図、第6図は各制
御ブロツクの実際の記憶位置及びアドレスの一例
を示すブロツク図、第7A図及び第7B図はシス
テム全体の動作の概要を示すフローチヤート、第
8A図乃至第8B図はPSユニツト12の動作を
示すフローチヤート。
要を示すブロツク図、第2図はLCBAユニツト2
0の構成を示すブロツク図、第2.1図はLCBA
ユニツト・コントローラ230の構成を示すブロ
ツク図、第2.2図はLCBAユニツト・コントロ
ーラ230の動作を示すフローチヤート、第3A
図及び第3B図はPSユニツト12の構成を示す
ブロツク図、第4図は主記憶600の構成を示す
ブロツク図、第5図は複数の制御ブロツクを含む
連係リスト構造を示すブロツク図、第6図は各制
御ブロツクの実際の記憶位置及びアドレスの一例
を示すブロツク図、第7A図及び第7B図はシス
テム全体の動作の概要を示すフローチヤート、第
8A図乃至第8B図はPSユニツト12の動作を
示すフローチヤート。
Claims (1)
- 【特許請求の範囲】 1 主記憶及びキヤツシユを含む階層記憶機構
と、命令を解読して実行する処理機構と、該処理
機構により起動され、連係リスト構造の形で前記
主記憶に記憶されている1以上の制御ブロツクの
データをプリフエツチするプリフエツチ機構とを
具備し、 前記制御ブロツクの各々は自身の先頭アドレス
位置から所定のオフセツト値だけ離れたアドレス
位置に前記連係リスト構造における次の制御ブロ
ツクを示すアドレスを保持し、 前記プリフエツチ機構は、前記処理機構により
起動されると、現行の制御ブロツクの先頭アドレ
ス及び前記オフセツト値に基き次制御ブロツク・
アドレスを生成して前記階層記憶機構へ送ること
により前記連係リスト構造における各制御ブロツ
クのデータを順次に上記キヤツシユにプリフエツ
チする、 ことを特徴とする階層記憶機構を備えたデータ処
理システム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US394053 | 1982-06-30 | ||
US06/394,053 US4583165A (en) | 1982-06-30 | 1982-06-30 | Apparatus and method for controlling storage access in a multilevel storage system |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS598185A JPS598185A (ja) | 1984-01-17 |
JPH0321934B2 true JPH0321934B2 (ja) | 1991-03-25 |
Family
ID=23557358
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP58095117A Granted JPS598185A (ja) | 1982-06-30 | 1983-05-31 | 階層記憶機構を備えたデ−タ処理システム |
Country Status (4)
Country | Link |
---|---|
US (1) | US4583165A (ja) |
EP (1) | EP0097790B1 (ja) |
JP (1) | JPS598185A (ja) |
DE (1) | DE3380501D1 (ja) |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4939644A (en) * | 1983-05-19 | 1990-07-03 | Data General Corporation | Input/output controller for controlling the sequencing of the execution of input/output commands in a data processing system |
US4901232A (en) * | 1983-05-19 | 1990-02-13 | Data General Corporation | I/O controller for controlling the sequencing of execution of I/O commands and for permitting modification of I/O controller operation by a host processor |
JPS603036A (ja) * | 1983-06-20 | 1985-01-09 | Hitachi Ltd | 処理履歴情報の取得・参照方式 |
US4807110A (en) * | 1984-04-06 | 1989-02-21 | International Business Machines Corporation | Prefetching system for a cache having a second directory for sequentially accessed blocks |
US4888689A (en) * | 1986-10-17 | 1989-12-19 | Amdahl Corporation | Apparatus and method for improving cache access throughput in pipelined processors |
US4888679A (en) * | 1988-01-11 | 1989-12-19 | Digital Equipment Corporation | Method and apparatus using a cache and main memory for both vector processing and scalar processing by prefetching cache blocks including vector data elements |
US5197141A (en) * | 1988-01-30 | 1993-03-23 | Nec Corporation | Software controlled method of issuing hardware control commands to memory controller from prefetch unit by combining request code and address specified in program instructions |
US4926323A (en) * | 1988-03-03 | 1990-05-15 | Advanced Micro Devices, Inc. | Streamlined instruction processor |
JP2604908B2 (ja) * | 1989-01-04 | 1997-04-30 | 東芝機械株式会社 | 表面改質金属部材およびその製造方法 |
US5093777A (en) * | 1989-06-12 | 1992-03-03 | Bull Hn Information Systems Inc. | Method and apparatus for predicting address of a subsequent cache request upon analyzing address patterns stored in separate miss stack |
US5278960A (en) * | 1989-08-16 | 1994-01-11 | Nec Corporation | Information processing apparatus having detecting means for operand overlaps |
US5680574A (en) * | 1990-02-26 | 1997-10-21 | Hitachi, Ltd. | Data distribution utilizing a master disk unit for fetching and for writing to remaining disk units |
JPH0452741A (ja) * | 1990-06-14 | 1992-02-20 | Toshiba Corp | キャッシュメモリ装置 |
US5235697A (en) * | 1990-06-29 | 1993-08-10 | Digital Equipment | Set prediction cache memory system using bits of the main memory address |
US5390304A (en) * | 1990-09-28 | 1995-02-14 | Texas Instruments, Incorporated | Method and apparatus for processing block instructions in a data processor |
JP2575557B2 (ja) * | 1990-11-13 | 1997-01-29 | インターナショナル・ビジネス・マシーンズ・コーポレイション | スーパーコンピユータシステム |
US5553305A (en) * | 1992-04-14 | 1996-09-03 | International Business Machines Corporation | System for synchronizing execution by a processing element of threads within a process using a state indicator |
US5418973A (en) * | 1992-06-22 | 1995-05-23 | Digital Equipment Corporation | Digital computer system with cache controller coordinating both vector and scalar operations |
US5566324A (en) * | 1992-12-24 | 1996-10-15 | Ncr Corporation | Computer apparatus including a main memory prefetch cache and method of operation thereof |
US5893148A (en) * | 1994-03-03 | 1999-04-06 | International Business Machines Corporation | System and method for allocating cache memory storage space |
US5715425A (en) * | 1996-02-22 | 1998-02-03 | Sun Microsystems, Inc. | Apparatus and method for prefetching data into an external cache |
US5761468A (en) * | 1996-05-15 | 1998-06-02 | Sun Microsystems Inc | Hardware mechanism for optimizing instruction and data prefetching by forming augmented prefetch instructions |
US5809514A (en) * | 1997-02-26 | 1998-09-15 | Texas Instruments Incorporated | Microprocessor burst mode data transfer ordering circuitry and method |
US5933158A (en) * | 1997-09-09 | 1999-08-03 | Compaq Computer Corporation | Use of a link bit to fetch entries of a graphic address remapping table |
US6134633A (en) * | 1997-10-31 | 2000-10-17 | U.S. Philips Corporation | Prefetch management in cache memory |
US6202127B1 (en) | 1997-11-26 | 2001-03-13 | Compaq Computer Corporation | Apparatus for spatial and temporal sampling in a computer memory system |
US6175814B1 (en) | 1997-11-26 | 2001-01-16 | Compaq Computer Corporation | Apparatus for determining the instantaneous average number of instructions processed |
US6374367B1 (en) | 1997-11-26 | 2002-04-16 | Compaq Computer Corporation | Apparatus and method for monitoring a computer system to guide optimization |
US6195748B1 (en) | 1997-11-26 | 2001-02-27 | Compaq Computer Corporation | Apparatus for sampling instruction execution information in a processor pipeline |
US6163840A (en) * | 1997-11-26 | 2000-12-19 | Compaq Computer Corporation | Method and apparatus for sampling multiple potentially concurrent instructions in a processor pipeline |
US6549930B1 (en) | 1997-11-26 | 2003-04-15 | Compaq Computer Corporation | Method for scheduling threads in a multithreaded processor |
US6442585B1 (en) | 1997-11-26 | 2002-08-27 | Compaq Computer Corporation | Method for scheduling contexts based on statistics of memory system interactions in a computer system |
US6237059B1 (en) | 1997-11-26 | 2001-05-22 | Compaq Computer Corporation | Method for estimating statistics of properties of memory system interactions among contexts in a computer system |
US6237073B1 (en) | 1997-11-26 | 2001-05-22 | Compaq Computer Corporation | Method for providing virtual memory to physical memory page mapping in a computer operating system that randomly samples state information |
US6332178B1 (en) | 1997-11-26 | 2001-12-18 | Compaq Computer Corporation | Method for estimating statistics of properties of memory system transactions |
JP3271591B2 (ja) * | 1998-09-30 | 2002-04-02 | 日本電気株式会社 | 半導体記憶装置 |
US6311260B1 (en) * | 1999-02-25 | 2001-10-30 | Nec Research Institute, Inc. | Method for perfetching structured data |
US6397324B1 (en) * | 1999-06-18 | 2002-05-28 | Bops, Inc. | Accessing tables in memory banks using load and store address generators sharing store read port of compute register file separated from address register file |
WO2004066146A1 (ja) * | 2003-01-20 | 2004-08-05 | Fujitsu Limited | リスト管理プログラムおよびリスト管理装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5760579A (en) * | 1980-09-30 | 1982-04-12 | Hitachi Ltd | Area managing system |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3670307A (en) * | 1969-12-23 | 1972-06-13 | Ibm | Interstorage transfer mechanism |
US3878513A (en) * | 1972-02-08 | 1975-04-15 | Burroughs Corp | Data processing method and apparatus using occupancy indications to reserve storage space for a stack |
US3898624A (en) * | 1973-06-14 | 1975-08-05 | Amdahl Corp | Data processing system with variable prefetch and replacement algorithms |
GB2008817B (en) * | 1977-11-22 | 1982-11-10 | Honeywell Inf Systems | Data processing systems including cache stores |
US4313158A (en) * | 1978-12-11 | 1982-01-26 | Honeywell Information Systems Inc. | Cache apparatus for enabling overlap of instruction fetch operations |
JPS6019809B2 (ja) * | 1979-12-26 | 1985-05-18 | 株式会社日立製作所 | デ−タ処理装置 |
US4442488A (en) * | 1980-05-05 | 1984-04-10 | Floating Point Systems, Inc. | Instruction cache memory system |
US4489378A (en) * | 1981-06-05 | 1984-12-18 | International Business Machines Corporation | Automatic adjustment of the quantity of prefetch data in a disk cache operation |
-
1982
- 1982-06-30 US US06/394,053 patent/US4583165A/en not_active Expired - Fee Related
-
1983
- 1983-05-02 DE DE8383104294T patent/DE3380501D1/de not_active Expired
- 1983-05-02 EP EP83104294A patent/EP0097790B1/en not_active Expired
- 1983-05-31 JP JP58095117A patent/JPS598185A/ja active Granted
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5760579A (en) * | 1980-09-30 | 1982-04-12 | Hitachi Ltd | Area managing system |
Also Published As
Publication number | Publication date |
---|---|
EP0097790B1 (en) | 1989-08-30 |
US4583165A (en) | 1986-04-15 |
JPS598185A (ja) | 1984-01-17 |
EP0097790A2 (en) | 1984-01-11 |
DE3380501D1 (en) | 1989-10-05 |
EP0097790A3 (en) | 1986-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH0321934B2 (ja) | ||
US5353426A (en) | Cache miss buffer adapted to satisfy read requests to portions of a cache fill in progress without waiting for the cache fill to complete | |
US5155832A (en) | Method to increase performance in a multi-level cache system by the use of forced cache misses | |
JP3587591B2 (ja) | キャッシュ・ミスを制御する方法およびその計算機システム | |
US5148538A (en) | Translation look ahead based cache access | |
US5699551A (en) | Software invalidation in a multiple level, multiple cache system | |
US6138209A (en) | Data processing system and multi-way set associative cache utilizing class predict data structure and method thereof | |
US5201041A (en) | Cache bypass apparatus | |
EP1399823B1 (en) | Using an l2 directory to facilitate speculative loads in a multiprocessor system | |
US6718839B2 (en) | Method and apparatus for facilitating speculative loads in a multiprocessor system | |
US6021471A (en) | Multiple level cache control system with address and data pipelines | |
EP1402349A2 (en) | Method and apparatus for facilitating speculative stores in a multiprocessor system | |
US4831622A (en) | Apparatus for forcing a reload from main memory upon cache memory error | |
JPH0559455B2 (ja) | ||
US5574883A (en) | Single chip processing unit providing immediate availability of frequently used microcode instruction words | |
JP3431878B2 (ja) | マルチスレッド・プロセッサの命令キャッシュ | |
EP0375864A2 (en) | Cache bypass | |
EP0442690A2 (en) | Data cache store buffer for high performance computer | |
US6934810B1 (en) | Delayed leaky write system and method for a cache memory | |
US4737908A (en) | Buffer memory control system | |
EP0375892A2 (en) | Data processing system | |
JP3284508B2 (ja) | データ先読み制御装置 | |
JP3171639B2 (ja) | データ処理装置 | |
JPH02197940A (ja) | データ及び命令を記憶するために別個のキヤツシユ記憶を含む階層記憶システム | |
JP2001505327A (ja) | 1クロックサイクル内でデータをストアするよう構成されたデータメモリユニット、およびその動作方法 |