JPH0347540B2 - - Google Patents
Info
- Publication number
- JPH0347540B2 JPH0347540B2 JP58500671A JP50067182A JPH0347540B2 JP H0347540 B2 JPH0347540 B2 JP H0347540B2 JP 58500671 A JP58500671 A JP 58500671A JP 50067182 A JP50067182 A JP 50067182A JP H0347540 B2 JPH0347540 B2 JP H0347540B2
- Authority
- JP
- Japan
- Prior art keywords
- cache
- data
- line
- storage
- instruction
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0846—Cache with multiple tag or data arrays being simultaneously accessible
- G06F12/0848—Partitioned cache, e.g. separate instruction and operand caches
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0888—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/30047—Prefetch instructions; cache control 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)
Description
請求の範囲
1 主記憶装置とストア・イン方式のキヤツシユ
記憶装置とを含むデータ処理装置において、 上記キヤツシユ記憶装置の各記憶位置ライン毎
に、記憶されたデータの主記憶装置アドレスの高
位ビツトを記憶するキヤツシユ・デイレクトリ
と、 上記主記憶装置から上記キヤツシユ記憶装置に
データをロードする事なく上記キヤツシユ・デイ
レクトリ中の上記アドレスの高位ビツトを所定の
値にセツトする手段とを備えたデータ処理システ
ム。
記憶装置とを含むデータ処理装置において、 上記キヤツシユ記憶装置の各記憶位置ライン毎
に、記憶されたデータの主記憶装置アドレスの高
位ビツトを記憶するキヤツシユ・デイレクトリ
と、 上記主記憶装置から上記キヤツシユ記憶装置に
データをロードする事なく上記キヤツシユ・デイ
レクトリ中の上記アドレスの高位ビツトを所定の
値にセツトする手段とを備えたデータ処理システ
ム。
技術分野
本発明は、それぞれ命令記憶用およびデータ記
憶用の別個のキヤツシユを有する、独特のキヤツ
シユ・アーキテクチヤを用いた階層記憶構成に関
するものである。この階層記憶構成は、メモリ・
アクセスによるCPUの待ち時間をできるだけ減
らすことが特に望まれる、高速電子計算システム
用に特に適している。
憶用の別個のキヤツシユを有する、独特のキヤツ
シユ・アーキテクチヤを用いた階層記憶構成に関
するものである。この階層記憶構成は、メモリ・
アクセスによるCPUの待ち時間をできるだけ減
らすことが特に望まれる、高速電子計算システム
用に特に適している。
背景技術
現代の高速電子データ処理システムは、処理装
置あるいはCPUと階層記憶システムとから構成
されることが多い。後者は、サイクル・タイムが
処理装置のサイクル・タイムよりも、ずつと長い
相対的に大容量で低速のメモリと、通常はキヤツ
シユと呼ばれているサイクル・タイムが処理装置
のサイクル・タイムに匹敵する、相対的にはるか
に小容量で高速のメモリとを含んでいる。合理的
なコストで実効メモリ・アクセス時間を減らすた
めのこのようなキヤツシユ・メモリ・システム
は、当技術分野でよく知られている。CPUが情
報を必要とする時、情報は主記憶装置から読取ら
れ、処理装置に与えられ、キヤツシユ記憶に書込
まれる。その後に同じ情報を処理装置が必要とす
る場合には、その情報がキヤツシユから直接読取
られて、普通なら主記憶装置を読取る際に生じる
はずの時間遅延を避けることができる。
置あるいはCPUと階層記憶システムとから構成
されることが多い。後者は、サイクル・タイムが
処理装置のサイクル・タイムよりも、ずつと長い
相対的に大容量で低速のメモリと、通常はキヤツ
シユと呼ばれているサイクル・タイムが処理装置
のサイクル・タイムに匹敵する、相対的にはるか
に小容量で高速のメモリとを含んでいる。合理的
なコストで実効メモリ・アクセス時間を減らすた
めのこのようなキヤツシユ・メモリ・システム
は、当技術分野でよく知られている。CPUが情
報を必要とする時、情報は主記憶装置から読取ら
れ、処理装置に与えられ、キヤツシユ記憶に書込
まれる。その後に同じ情報を処理装置が必要とす
る場合には、その情報がキヤツシユから直接読取
られて、普通なら主記憶装置を読取る際に生じる
はずの時間遅延を避けることができる。
しかし、キヤツシユ記憶装置が一杯の場合に
は、必要な情報は主記憶装置から得なければなら
ず、この新しい情報を記憶するためのキヤツシユ
中の記憶位置が識別されなければならない。しか
しながら、古い記憶位置が新しいデータの記憶に
使用できるようになる前に、現在キヤツシユ中に
あるデータがプログラムによつて変更されている
かどうかの判定が行わなければならず、変更され
ている場合には、(必要ならば)主記憶装置が現
在のデータの状態を適切に反映するように、デー
タが主記憶装置に書戻されなければならない。現
在の大部分のキヤツシユ・アーキテクチヤは、そ
のような書戻しを必要としているが、その変更さ
れた形のデータが再びプログラムによつて必要と
されることがない場合には、あるいはデータが決
して変更されない場合には、この書戻し機能を削
除すれば、明らかに有利であろう。
は、必要な情報は主記憶装置から得なければなら
ず、この新しい情報を記憶するためのキヤツシユ
中の記憶位置が識別されなければならない。しか
しながら、古い記憶位置が新しいデータの記憶に
使用できるようになる前に、現在キヤツシユ中に
あるデータがプログラムによつて変更されている
かどうかの判定が行わなければならず、変更され
ている場合には、(必要ならば)主記憶装置が現
在のデータの状態を適切に反映するように、デー
タが主記憶装置に書戻されなければならない。現
在の大部分のキヤツシユ・アーキテクチヤは、そ
のような書戻しを必要としているが、その変更さ
れた形のデータが再びプログラムによつて必要と
されることがない場合には、あるいはデータが決
して変更されない場合には、この書戻し機能を削
除すれば、明らかに有利であろう。
既存の多くのキヤツシユ・アーキテクチヤにみ
られるもう1つの共通な特徴は、それらがシステ
ム・ソフトウエアに対して基本的に透明なことで
ある。即ち、コンパイラ、オペレーテイング・シ
ステム等を含めたシステム・ソフトウエアは、キ
ヤツシユが存在しないかのようにメモリの取出し
および記憶の動作を行う。このようなシステムで
は、キヤツシユのハードウエアが本質的にCPU
と主記憶装置との間に介在する。かかるシステム
では、キヤツシユの存在によつて実効メモリ・ア
クセス時間が大幅にスピード・アツプされるが、
かかる高速の記憶装置から得られるはずの利益の
多くは、使用されるアーキテクチヤおよび規約の
せいで失われる。
られるもう1つの共通な特徴は、それらがシステ
ム・ソフトウエアに対して基本的に透明なことで
ある。即ち、コンパイラ、オペレーテイング・シ
ステム等を含めたシステム・ソフトウエアは、キ
ヤツシユが存在しないかのようにメモリの取出し
および記憶の動作を行う。このようなシステムで
は、キヤツシユのハードウエアが本質的にCPU
と主記憶装置との間に介在する。かかるシステム
では、キヤツシユの存在によつて実効メモリ・ア
クセス時間が大幅にスピード・アツプされるが、
かかる高速の記憶装置から得られるはずの利益の
多くは、使用されるアーキテクチヤおよび規約の
せいで失われる。
ACM SIGPLAN Notice,Vol.17,No.4,
April 1982,pp.39〜47所載のGeorge Radinによ
る“The 801 Minicomputer”と題する論文は、
本発明の技術思想を利用した、命令用およびデー
タ用の別個のキヤツシユ記憶を含む階層記憶構成
を組込んだ実験的なミニコンピユータの概説であ
る。
April 1982,pp.39〜47所載のGeorge Radinによ
る“The 801 Minicomputer”と題する論文は、
本発明の技術思想を利用した、命令用およびデー
タ用の別個のキヤツシユ記憶を含む階層記憶構成
を組込んだ実験的なミニコンピユータの概説であ
る。
米国特許第4142234号、およびIBM Technical
Disclosure Bullietin,Vol.18No.12,May 1976,
および米国特許第4056844号は、一般にキヤツシ
ユ記憶を含む階層記憶構成を開示しているが、そ
れらのキヤツシユは別個のデータ部および命令部
に分割されてもいなければ、メモリ・システムの
動作を制御するためのプログラムにアクセス可能
な特別の制御フイールドを含んでもいない。
Disclosure Bullietin,Vol.18No.12,May 1976,
および米国特許第4056844号は、一般にキヤツシ
ユ記憶を含む階層記憶構成を開示しているが、そ
れらのキヤツシユは別個のデータ部および命令部
に分割されてもいなければ、メモリ・システムの
動作を制御するためのプログラムにアクセス可能
な特別の制御フイールドを含んでもいない。
米国特許第4161024号および第4195342号は、当
技術分野で一般に知られているように、CPUか
らキヤツシユへの直接のインターフエースを含む
EDPシステムを記載している。
技術分野で一般に知られているように、CPUか
らキヤツシユへの直接のインターフエースを含む
EDPシステムを記載している。
米国特許第4070706号は、キヤツシユがデータ
部とアドレス部(デイレクトリではない)に分割
されたキヤツシユ記憶システムを開示している
が、このキヤツシユはデータ部と命令部には分割
されていない。
部とアドレス部(デイレクトリではない)に分割
されたキヤツシユ記憶システムを開示している
が、このキヤツシユはデータ部と命令部には分割
されていない。
米国特許第4245304号は動作を2つの半サイク
ルに分け、キヤツシユからの命令のアクセスまた
はキヤツシユへのデータの書込みが同じ半サイク
ル中に行えるようにした、スプリツト・キヤツシ
ユ・システムについて記載している。この特許
は、キヤツシユ/主記憶装置の動作を制御するた
めのキヤツシユ・デイレクトリ中の特殊な制御ビ
ツトについては開示も示唆もしていない。
ルに分け、キヤツシユからの命令のアクセスまた
はキヤツシユへのデータの書込みが同じ半サイク
ル中に行えるようにした、スプリツト・キヤツシ
ユ・システムについて記載している。この特許
は、キヤツシユ/主記憶装置の動作を制御するた
めのキヤツシユ・デイレクトリ中の特殊な制御ビ
ツトについては開示も示唆もしていない。
米国特許第4075686号は、メモリ・アクセス動
作の際に特定の命令ビツトのコーデイングに従つ
てキヤツシユを選択的にバイパスし、それによつ
てある種類の動作の実行時間を短縮する、キヤツ
シユ記憶システムについて記載している。
作の際に特定の命令ビツトのコーデイングに従つ
てキヤツシユを選択的にバイパスし、それによつ
てある種類の動作の実行時間を短縮する、キヤツ
シユ記憶システムについて記載している。
米国特許第4142234号は、キヤツシユ・デイレ
クトリの特定の質問を除去して、スペツクのサイ
ズを減少させた、キヤツシユ・システムを開示し
ている。
クトリの特定の質問を除去して、スペツクのサイ
ズを減少させた、キヤツシユ・システムを開示し
ている。
米国特許第3618041号およびIBM Technical
Disclosure Bulletin,Vol.22No.11,April 1980,
p.5183は、キヤツシユ・サブシステムを別個の命
令部とデータ部に分割し、2つの別個のキヤツシ
ユのオーバーラツプ動作のために、複雑なオペレ
ーテイング・システムのサポートを与える、基本
的な概念を大まかに開示している。
Disclosure Bulletin,Vol.22No.11,April 1980,
p.5183は、キヤツシユ・サブシステムを別個の命
令部とデータ部に分割し、2つの別個のキヤツシ
ユのオーバーラツプ動作のために、複雑なオペレ
ーテイング・システムのサポートを与える、基本
的な概念を大まかに開示している。
米国特許第4197580号は、特殊な有効ビツトお
よびある種の読取り−書込み動作制御用の「タ
グ」を用いた、単一キヤツシユ・サブシステムを
大まかに開示している。このビツトは、不必要な
主記憶サイクルではなく、不必要なキヤツシユ・
サイクルを避けるために使われるが、本発明は不
要な主記憶サイクルを避けることを意図したもの
である。
よびある種の読取り−書込み動作制御用の「タ
グ」を用いた、単一キヤツシユ・サブシステムを
大まかに開示している。このビツトは、不必要な
主記憶サイクルではなく、不必要なキヤツシユ・
サイクルを避けるために使われるが、本発明は不
要な主記憶サイクルを避けることを意図したもの
である。
発明の目的および概要
本発明の目的は、不要な主記憶アクセスを避け
る事のできる機構を備えたキヤツシユ記憶装置を
提供する事である。
る事のできる機構を備えたキヤツシユ記憶装置を
提供する事である。
上記目的は、本発明の、主記憶装置とストア・
イン方式のキヤツシユ記憶装置とを含むデータ処
理装置において、 上記キヤツシユ記憶装置の各記憶位置ライン毎
に、記憶されたデータの主記憶装置アドレスの高
位ビツト及び制御ビツトを記憶するキヤツシユ・
デイレクトリと、 上記デイレクトリに記憶されたアドレスの高位
ビツト又は制御ビツトを変更するための機械語命
令を実行する手段とを備えたデータ処理システム
によつて達成される。但しストア・イン(又はラ
イト・バツク)方式とは、ストア・スルー方式と
対比的なキヤツシユ記憶の制御方式であつて、キ
ヤツシユにデータを記憶する時、同時には主記憶
にデータを記憶しないでおいて、後でそのライン
が他のデータで置き換えられる時に一括して主記
憶に書き戻す方式である。本発明のキヤツシユ記
憶では、キヤツシユ・デイレクトリの制御ビツト
又はアドレスを直接、機械語命令で操作できるの
で、不要な主記憶アクセスを避けるようにユーザ
ーがプログラムを作成する事ができる。
イン方式のキヤツシユ記憶装置とを含むデータ処
理装置において、 上記キヤツシユ記憶装置の各記憶位置ライン毎
に、記憶されたデータの主記憶装置アドレスの高
位ビツト及び制御ビツトを記憶するキヤツシユ・
デイレクトリと、 上記デイレクトリに記憶されたアドレスの高位
ビツト又は制御ビツトを変更するための機械語命
令を実行する手段とを備えたデータ処理システム
によつて達成される。但しストア・イン(又はラ
イト・バツク)方式とは、ストア・スルー方式と
対比的なキヤツシユ記憶の制御方式であつて、キ
ヤツシユにデータを記憶する時、同時には主記憶
にデータを記憶しないでおいて、後でそのライン
が他のデータで置き換えられる時に一括して主記
憶に書き戻す方式である。本発明のキヤツシユ記
憶では、キヤツシユ・デイレクトリの制御ビツト
又はアドレスを直接、機械語命令で操作できるの
で、不要な主記憶アクセスを避けるようにユーザ
ーがプログラムを作成する事ができる。
第1図は、本階層記憶構成の高レベル組織図で
ある。
ある。
第2.1図および第2.2図は、データの流れ
および機能的ハードウエア構成の詳細を示す、第
1図に記した記憶階層の機能ブロツク図である。
および機能的ハードウエア構成の詳細を示す、第
1図に記した記憶階層の機能ブロツク図である。
第3.1図および第3.2図は、キヤツシユ・
デイレクトリの基本要素およびそれに付随する制
御要素を示す、データ・キヤツシユ・アドレツシ
ングの細部の機能ブロツク図である。
デイレクトリの基本要素およびそれに付随する制
御要素を示す、データ・キヤツシユ・アドレツシ
ングの細部の機能ブロツク図である。
第4図は、異なる3種のキヤツシユ・サイズ
(4K、8K、および16K)の場合の、キヤツシユ・
アドレツシング、デイレクトリ項目およびキヤツ
シユ・パラメータの図である。
(4K、8K、および16K)の場合の、キヤツシユ・
アドレツシング、デイレクトリ項目およびキヤツ
シユ・パラメータの図である。
第5図は、命令キヤツシユ取出しハードウエア
の動作中にキヤツシユ・サブシステムで行われる
動作をまとめたものである。
の動作中にキヤツシユ・サブシステムで行われる
動作をまとめたものである。
第6図は、データ・キヤツシユ取出しハードウ
エアの動作中にキヤツシユ・サブシステムで行わ
れる動作をまとめたものである。
エアの動作中にキヤツシユ・サブシステムで行わ
れる動作をまとめたものである。
第7図は、データ・キヤツシユ記憶ハードウエ
アの動作中にキヤツシユ・サブシステムで行われ
る動作をまとめたものである。
アの動作中にキヤツシユ・サブシステムで行われ
る動作をまとめたものである。
第8図は、命令またはデータ・キヤツシユ・ラ
イン無効化の動作中にキヤツシユ・サブシステ
ム・ハードウエアで行われる動作をまとめたもの
である。
イン無効化の動作中にキヤツシユ・サブシステ
ム・ハードウエアで行われる動作をまとめたもの
である。
第9図は、データ・キヤツシユ・ライン・ロー
ドの動作中にキヤツシユ・サブシステム・ハード
ウエアで行われる動作をまとめたものである。
ドの動作中にキヤツシユ・サブシステム・ハード
ウエアで行われる動作をまとめたものである。
第10図は、データ・キヤツシユ・ライン・セ
ツトの動作中にキヤツシユ・サブシステム・ハー
ドウエアで行われる動作をまとめたものである。
ツトの動作中にキヤツシユ・サブシステム・ハー
ドウエアで行われる動作をまとめたものである。
第11図は、データ・キヤツシユ・ライン記憶
の動作中にキヤツシユ・サブシステム・ハードウ
エアで行われる動作をまとめたものである。
の動作中にキヤツシユ・サブシステム・ハードウ
エアで行われる動作をまとめたものである。
第12図は、「キヤツシユ・ライン無効化」命
令の実施中にキヤツシユ・サブシステム・ハード
ウエアで行われる動作の詳細な流れ図である。
令の実施中にキヤツシユ・サブシステム・ハード
ウエアで行われる動作の詳細な流れ図である。
第13図は、「命令キヤツシユ取出し」命令の
実施中にキヤツシユ・サブシステム・ハードウエ
アで行われる動作の詳細な流れ図である。
実施中にキヤツシユ・サブシステム・ハードウエ
アで行われる動作の詳細な流れ図である。
第14図は、「データ・キヤツシユ取出し」命
令の実施中にキヤツシユ・サブシステム・ハード
ウエアで行われる動作の詳細な流れ図である。
令の実施中にキヤツシユ・サブシステム・ハード
ウエアで行われる動作の詳細な流れ図である。
第15図は、「データ・キヤツシユ記憶」命令
の実施中にキヤツシユ・サブシステム・ハードウ
エアで行われる動作の詳細な流れ図である。
の実施中にキヤツシユ・サブシステム・ハードウ
エアで行われる動作の詳細な流れ図である。
第16図は、「データ・キヤツシユ・ライン・
ロード」命令の実施中にキヤツシユ・サブシステ
ム・ハードウエアで行われる動作の詳細な流れ図
である。
ロード」命令の実施中にキヤツシユ・サブシステ
ム・ハードウエアで行われる動作の詳細な流れ図
である。
第17図は、「データ・キヤツシユ・ライン・
セツト」命令の実施中にキヤツシユ・サブシステ
ム・ハードウエアで行われる動作の詳細な流れ図
である。
セツト」命令の実施中にキヤツシユ・サブシステ
ム・ハードウエアで行われる動作の詳細な流れ図
である。
第18図は、「データ・キヤツシユ・ライン記
憶」命令の実施中にキヤツシユ・サブシステム・
ハードウエアで行われる動作の詳細な流れ図であ
る。
憶」命令の実施中にキヤツシユ・サブシステム・
ハードウエアで行われる動作の詳細な流れ図であ
る。
発明を実施するための最良の形態
(a) 記憶階層の一般的説明
きわめて高速に動作するシステム(CPU)
の性能は、記憶サブシステムの性能に大きく依
存する。現在の技術によれば、アクセス・タイ
ムが60ナノ秒のキヤツシユおよびアクセス・タ
イムが約1/5の速さの即ち約300ナノ秒のバツキ
ング記憶装置を製造することが可能である。記
憶サブシステムの性能の改善は、システム全体
の性能の点で非常に良好な結果を与える。
の性能は、記憶サブシステムの性能に大きく依
存する。現在の技術によれば、アクセス・タイ
ムが60ナノ秒のキヤツシユおよびアクセス・タ
イムが約1/5の速さの即ち約300ナノ秒のバツキ
ング記憶装置を製造することが可能である。記
憶サブシステムの性能の改善は、システム全体
の性能の点で非常に良好な結果を与える。
本発明は、2つの領域の動作においてキヤツ
シユ・サブシステムの性能を改善することを目
標とする。その第1はキヤツシユ・ヒツト率を
改善すること、即ちキヤツシユ中に見い出さ
れ、従つて主記憶装置へのアクセスおよびそれ
に伴う遅延を要しない記憶装置参照のパーセン
テージを増加させることである。第2はキヤツ
シユ参照が失敗たときに、バツキング記憶装置
からラインをアクセスする時間を改善すること
である。
シユ・サブシステムの性能を改善することを目
標とする。その第1はキヤツシユ・ヒツト率を
改善すること、即ちキヤツシユ中に見い出さ
れ、従つて主記憶装置へのアクセスおよびそれ
に伴う遅延を要しない記憶装置参照のパーセン
テージを増加させることである。第2はキヤツ
シユ参照が失敗たときに、バツキング記憶装置
からラインをアクセスする時間を改善すること
である。
第1の目的について考えると、バツキング記
憶装置への頻繁なアクセスは、プログラムの正
しい実行にとつて必ずしも必要でないことがわ
かる。バツキング記憶装置への頻繁なアクセス
が行われるのは、ハードウエアがソフトウエア
の意味を推測できないためである。一般にこの
不必要な参照は2つの類に分けられる。
憶装置への頻繁なアクセスは、プログラムの正
しい実行にとつて必ずしも必要でないことがわ
かる。バツキング記憶装置への頻繁なアクセス
が行われるのは、ハードウエアがソフトウエア
の意味を推測できないためである。一般にこの
不必要な参照は2つの類に分けられる。
第1はプログラムが新たな記憶のブロツクを
望むことである。これはプロシージヤが呼び出
され一時的な(即ちAUTOMATICの)記憶域
を必要とするとき、第1レベル割込みハンドラ
がレジスタ保存領域を必要とするとき、アクセ
ス方式がバツフアを必要とするとき、またはプ
ログラムがGETMAIN要求を出すとき等に起
こり得る。これら全ての場合に類似しているの
は、プログラムが、記憶装置の古い内容に対し
て関心を持たない事である。プログラムは、た
だ、若干の記憶域を望んでいるだけである。し
かし、現行の大多数の記憶サブシステムは、か
かる記憶装置の最初の参照が起きたとき、バツ
キング記憶装置からキヤツシユへ古いラインを
取り出す。そのようにするのは、(CPUとキヤ
ツシユとの間のアクセスの単位はワードなの
で)最初の参照がせいぜいライン中の1つのワ
ードに対するものであり、そして後続する要求
はライン中の他のワードを更新するまではそれ
らを必要としないという事をサブシステムが知
ることができないためである。
望むことである。これはプロシージヤが呼び出
され一時的な(即ちAUTOMATICの)記憶域
を必要とするとき、第1レベル割込みハンドラ
がレジスタ保存領域を必要とするとき、アクセ
ス方式がバツフアを必要とするとき、またはプ
ログラムがGETMAIN要求を出すとき等に起
こり得る。これら全ての場合に類似しているの
は、プログラムが、記憶装置の古い内容に対し
て関心を持たない事である。プログラムは、た
だ、若干の記憶域を望んでいるだけである。し
かし、現行の大多数の記憶サブシステムは、か
かる記憶装置の最初の参照が起きたとき、バツ
キング記憶装置からキヤツシユへ古いラインを
取り出す。そのようにするのは、(CPUとキヤ
ツシユとの間のアクセスの単位はワードなの
で)最初の参照がせいぜいライン中の1つのワ
ードに対するものであり、そして後続する要求
はライン中の他のワードを更新するまではそれ
らを必要としないという事をサブシステムが知
ることができないためである。
第2の場合は、その内容が変更されていたと
してもプログラムがもはや記憶装置のブロツク
を必要としない場合である。これはプロシージ
ヤからのリターン時に一時的記憶域が解放され
るとき、バツフアが解放されるとき、一般にプ
ログラムがFREE MAINを出すとき等に起こ
り得る。変更されたラインのかかる書き戻しが
不必要であると判定するための機構を有する現
在利用可能な記憶サブシステムは当技術分野で
知られていない。
してもプログラムがもはや記憶装置のブロツク
を必要としない場合である。これはプロシージ
ヤからのリターン時に一時的記憶域が解放され
るとき、バツフアが解放されるとき、一般にプ
ログラムがFREE MAINを出すとき等に起こ
り得る。変更されたラインのかかる書き戻しが
不必要であると判定するための機構を有する現
在利用可能な記憶サブシステムは当技術分野で
知られていない。
従つて、ソフトウエアがそのような情報をハ
ードウエア即ちキヤツシユ制御機構に与えるた
めに用いることのできる(命令の形の)ハード
ウエアの基本的機構をCPUが提供すると有利
である。より具体的には、一般にキヤツシユ動
作のかかるソフトウエア制御を可能にする、キ
ヤツシユ制御ハードウエアによつて実行される
2つの命令が定義される。それらは次のように
定義される。
ードウエア即ちキヤツシユ制御機構に与えるた
めに用いることのできる(命令の形の)ハード
ウエアの基本的機構をCPUが提供すると有利
である。より具体的には、一般にキヤツシユ動
作のかかるソフトウエア制御を可能にする、キ
ヤツシユ制御ハードウエアによつて実行される
2つの命令が定義される。それらは次のように
定義される。
(1) データ・キヤツシユ・ライン・セツト
(2) データ・キヤツシユ・ライン無効化
これらの命令は制御プログラムによつて出さ
れ、コンパイラによつて適用業務プログラムの
ために生成される。これらの命令は、かかる不
必要なバツキング記憶アクセスが起きないこと
を保証する。事実、プロシージヤによつて必要
とされる一時的記憶域はスタツクで管理され、
またスーパーバイザ呼び出しさえも要求に応じ
て呼び出されるので、デイスパツチされたプロ
セス・データが持続的(即ちSTATIC的)で
あるか、またはスタツクの深さがキヤツシユ・
サイズと比較して大きくならない限り、デイス
パツチされたプロセス・データに対してバツキ
ング記憶装置がアクセスされることはない。従
つてバツキング記憶は、2次記憶装置(即ちフ
アイル空間およびページング領域)によつて演
じられる役割に類似した役割を演じ始める。か
かる戦略を用いれば、割り込み時のCPUのア
クテイビイテイは「優先レベル割り込み」シス
テムがそのハイ・エンドで実施するアクテイビ
イテイ以上ではない。この「優先レベル割り込
み」システムも、その内部レジスタを高速メモ
リ(即ちレジスタ空間)に記憶しなければなら
ない。前述のCPU構成の相違点は、それが高
速メモリをこの目的専用にしないこと、従つて
費用を節約できることである。かかるアーキテ
クチヤのCPUは「再デイスパツチ」時にキヤ
ツシユ・ミスを見つけることができるが、それ
は経路の応答クリテイカル部分にはない。
れ、コンパイラによつて適用業務プログラムの
ために生成される。これらの命令は、かかる不
必要なバツキング記憶アクセスが起きないこと
を保証する。事実、プロシージヤによつて必要
とされる一時的記憶域はスタツクで管理され、
またスーパーバイザ呼び出しさえも要求に応じ
て呼び出されるので、デイスパツチされたプロ
セス・データが持続的(即ちSTATIC的)で
あるか、またはスタツクの深さがキヤツシユ・
サイズと比較して大きくならない限り、デイス
パツチされたプロセス・データに対してバツキ
ング記憶装置がアクセスされることはない。従
つてバツキング記憶は、2次記憶装置(即ちフ
アイル空間およびページング領域)によつて演
じられる役割に類似した役割を演じ始める。か
かる戦略を用いれば、割り込み時のCPUのア
クテイビイテイは「優先レベル割り込み」シス
テムがそのハイ・エンドで実施するアクテイビ
イテイ以上ではない。この「優先レベル割り込
み」システムも、その内部レジスタを高速メモ
リ(即ちレジスタ空間)に記憶しなければなら
ない。前述のCPU構成の相違点は、それが高
速メモリをこの目的専用にしないこと、従つて
費用を節約できることである。かかるアーキテ
クチヤのCPUは「再デイスパツチ」時にキヤ
ツシユ・ミスを見つけることができるが、それ
は経路の応答クリテイカル部分にはない。
大部分のシステムの場合と同様に、CPUは
命令の実行を見越してキヤツシユから命令を取
出す。CPUは「事前取出しバツフア」(ここで
開示するシステムでは3ワードのバツフアが想
定されている)を有し、CPUがそれを一杯に
保つように試みる。このバツフアを一杯にする
とキヤツシユ・ミスが生じて、バツキング記憶
装置からの命令取出しを開始させることがあ
る。しかし取出される命令の前に、既にバツフ
ア中に存在するがまだ実行されていない分岐命
令があることがあり得る。本発明のアーキテク
チヤにおいては、CPUの事前取出し機構がOP
コードを走査し、かかる不必要なバツキング記
憶装置の取出しを禁止することが想定されてい
る。実際、この目的のためにOPコードを走査
する間に、NOOP(ノー・オペレーシヨン)を
認識して削除することもでき、従つてその実行
時間はゼロになる。
命令の実行を見越してキヤツシユから命令を取
出す。CPUは「事前取出しバツフア」(ここで
開示するシステムでは3ワードのバツフアが想
定されている)を有し、CPUがそれを一杯に
保つように試みる。このバツフアを一杯にする
とキヤツシユ・ミスが生じて、バツキング記憶
装置からの命令取出しを開始させることがあ
る。しかし取出される命令の前に、既にバツフ
ア中に存在するがまだ実行されていない分岐命
令があることがあり得る。本発明のアーキテク
チヤにおいては、CPUの事前取出し機構がOP
コードを走査し、かかる不必要なバツキング記
憶装置の取出しを禁止することが想定されてい
る。実際、この目的のためにOPコードを走査
する間に、NOOP(ノー・オペレーシヨン)を
認識して削除することもでき、従つてその実行
時間はゼロになる。
本発明の教示にもとづいて記憶サブシステム
の性能を改善する第2の方法は、バツキング記
憶装置のアクセスをより高速にすることに関係
するものである。
の性能を改善する第2の方法は、バツキング記
憶装置のアクセスをより高速にすることに関係
するものである。
データであれ命令であれキヤツシユ・ミスを
生じるワードが記憶サブシステムから要求され
る時、要求されたワードで始まる必要なライン
を求めてバツキング記憶装置がアクセスされ
る。次にこのワードはキヤツシユをバイパスし
て直接CPUに送られ、CPUが命令の実行を続
ける間、ラインがキヤツシユに記憶される。従
つて、例えばキヤツシユ・ミスを生じるロード
命令を完了するのに340ナノ秒(から命令がロ
ードとオーバーラツプできる分を差し引いたも
の)しかかからない。
生じるワードが記憶サブシステムから要求され
る時、要求されたワードで始まる必要なライン
を求めてバツキング記憶装置がアクセスされ
る。次にこのワードはキヤツシユをバイパスし
て直接CPUに送られ、CPUが命令の実行を続
ける間、ラインがキヤツシユに記憶される。従
つて、例えばキヤツシユ・ミスを生じるロード
命令を完了するのに340ナノ秒(から命令がロ
ードとオーバーラツプできる分を差し引いたも
の)しかかからない。
命令の事前取出し機構は本質的にデータ取出
し機構に対して非同期的なので、キヤツシユを
命令用とデータ用の2つの別個の部分に分離す
ると有利なことが判明した。その結果、各キヤ
ツシユによつてバツキング記憶装置を独立的に
そしてオーバーラツプ方式でアクセスすること
が可能となる。この特徴は、実行中の特定の命
令ストリームが許す場合、アクセス速度を事実
上2倍にすることができる。かかる全体的キヤ
ツシユ・サブシステム・アーキテクチヤを用い
れば、他の利点も可能である。
し機構に対して非同期的なので、キヤツシユを
命令用とデータ用の2つの別個の部分に分離す
ると有利なことが判明した。その結果、各キヤ
ツシユによつてバツキング記憶装置を独立的に
そしてオーバーラツプ方式でアクセスすること
が可能となる。この特徴は、実行中の特定の命
令ストリームが許す場合、アクセス速度を事実
上2倍にすることができる。かかる全体的キヤ
ツシユ・サブシステム・アーキテクチヤを用い
れば、他の利点も可能である。
このキヤツシユ・サブシステムは、命令キヤ
ツシユ中の命令の変更が許されないように構成
され定義されている。従つて命令ラインの取出
しは決して書戻しを必要とせず、命令キヤツシ
ユ・ミス時の遅延を伴わない。
ツシユ中の命令の変更が許されないように構成
され定義されている。従つて命令ラインの取出
しは決して書戻しを必要とせず、命令キヤツシ
ユ・ミス時の遅延を伴わない。
各キヤツシユ部分(命令部およびデータ部)
は2ウエイ・セツト・アソシアテイブ方式に設
計される。従つて4ウエイ・セツト・アソシア
テイブ方式の利点の一部が費用を要することな
しに、得られる。以後LRU(least recently
used)ビツトと呼ぶ特殊な制御ビツトまたは
フイールドはミスの後にキヤツシユのアドレス
された領域において、2つのラインのどちらが
置き換えられるべきかを判定する通常の置換手
続きを、現在の2ウエイ・セツト・アソシアテ
イブ・キヤツシユがもつことを可能にする。
は2ウエイ・セツト・アソシアテイブ方式に設
計される。従つて4ウエイ・セツト・アソシア
テイブ方式の利点の一部が費用を要することな
しに、得られる。以後LRU(least recently
used)ビツトと呼ぶ特殊な制御ビツトまたは
フイールドはミスの後にキヤツシユのアドレス
された領域において、2つのラインのどちらが
置き換えられるべきかを判定する通常の置換手
続きを、現在の2ウエイ・セツト・アソシアテ
イブ・キヤツシユがもつことを可能にする。
全体の寸法、深さ、ラインの寸法およびその
他の物理的パラメータ等の各キヤツシユ特性
は、キヤツシユが意図している特定の目的に即
ち命令またはデータに適合するように選択する
ことができる。同様に別々の置換アルゴリズム
を使用して命令とデータとの間のアクセス特性
またはアクセス・パターンの相違を利用するこ
とができる。本システムの原型で、両方のキヤ
ツシユに類似の置換アルゴリズムを用いて満足
な結果が得られたが、アルゴリズムを特定のキ
ヤツシユに適合させると一定の改善が生じるは
ずである。
他の物理的パラメータ等の各キヤツシユ特性
は、キヤツシユが意図している特定の目的に即
ち命令またはデータに適合するように選択する
ことができる。同様に別々の置換アルゴリズム
を使用して命令とデータとの間のアクセス特性
またはアクセス・パターンの相違を利用するこ
とができる。本システムの原型で、両方のキヤ
ツシユに類似の置換アルゴリズムを用いて満足
な結果が得られたが、アルゴリズムを特定のキ
ヤツシユに適合させると一定の改善が生じるは
ずである。
「背景技術」の章で述べたように、スプリツ
ト・キヤツシユは当技術分野で数年前から知ら
れているが、従来のアーキテクチヤを用いてそ
れを実施すると、深刻な問題が生じていた。命
令はデータ・キヤツシユで合法的に変更でき、
その後そこに分岐できるので、全ての変更は命
令キヤツシユに通知されなければならず、また
それが、変更されたラインを無効化することを
保証しなければならない。しかし実際は、今日
のより洗練されたシステムでは命令は殆んど変
更されない。従つてこの機能、即ち命令の変更
は、データの変更が起きる度にこの機能を反復
して実行するための機構をハードウエアに設け
るよりも(必要な時に)ソフトウエアで実行す
る方がずつと効率的なものであると判断され
た。
ト・キヤツシユは当技術分野で数年前から知ら
れているが、従来のアーキテクチヤを用いてそ
れを実施すると、深刻な問題が生じていた。命
令はデータ・キヤツシユで合法的に変更でき、
その後そこに分岐できるので、全ての変更は命
令キヤツシユに通知されなければならず、また
それが、変更されたラインを無効化することを
保証しなければならない。しかし実際は、今日
のより洗練されたシステムでは命令は殆んど変
更されない。従つてこの機能、即ち命令の変更
は、データの変更が起きる度にこの機能を反復
して実行するための機構をハードウエアに設け
るよりも(必要な時に)ソフトウエアで実行す
る方がずつと効率的なものであると判断され
た。
先に述べたように、このシステムでは変更が
必要な時には命令をデータ・キヤツシユに入
れ、それをデータとして扱うためのソフトウエ
アが設けられていると想定する。明らかにこれ
は容易に行うことができる。しかし、データ・
キヤツシユは変更されたラインを命令キヤツシ
ユに知らせない。従つてそれらの変更は、変更
された命令への次の分岐中には反映されない。
かかる制御を達成するために、ここで開示する
スプリツト・キヤツシユ・サブシステム・アー
キテクチヤは「命令キヤツシユ・ライン無効
化」と呼ばれる命令を提供する。ソフトウエア
は古い命令を掃き出すために、この命令を出さ
なければならない。また上記アーキテクチヤは
「データ・キヤツシユ・ライン記憶」と呼ばれ
る命令を提供する。この命令は変更された命令
がバツキング記憶装置中に反映されることを保
証する。最もありふれた場合であるが、デイス
クからのロードによりプログラムの変更が生じ
るとき、最初の命令のみが出されなければなら
ない。
必要な時には命令をデータ・キヤツシユに入
れ、それをデータとして扱うためのソフトウエ
アが設けられていると想定する。明らかにこれ
は容易に行うことができる。しかし、データ・
キヤツシユは変更されたラインを命令キヤツシ
ユに知らせない。従つてそれらの変更は、変更
された命令への次の分岐中には反映されない。
かかる制御を達成するために、ここで開示する
スプリツト・キヤツシユ・サブシステム・アー
キテクチヤは「命令キヤツシユ・ライン無効
化」と呼ばれる命令を提供する。ソフトウエア
は古い命令を掃き出すために、この命令を出さ
なければならない。また上記アーキテクチヤは
「データ・キヤツシユ・ライン記憶」と呼ばれ
る命令を提供する。この命令は変更された命令
がバツキング記憶装置中に反映されることを保
証する。最もありふれた場合であるが、デイス
クからのロードによりプログラムの変更が生じ
るとき、最初の命令のみが出されなければなら
ない。
このキヤツシユ・サブシステム・アーキテク
チヤの追加的な利点は、別個に独立して動作す
るキヤツシユにより、命令用およびデータ用の
別個の仮想記憶装置を自然にサポートできるこ
とである。従つて例えばAPLインタープリタ
の単一の再入可能コピーが反復的なメモリ動作
によつて、最小限のバス時間で多くの異なつた
ユーザー領域のために実行できるような、ソフ
トウエア・ストラテジーが可能になる。
チヤの追加的な利点は、別個に独立して動作す
るキヤツシユにより、命令用およびデータ用の
別個の仮想記憶装置を自然にサポートできるこ
とである。従つて例えばAPLインタープリタ
の単一の再入可能コピーが反復的なメモリ動作
によつて、最小限のバス時間で多くの異なつた
ユーザー領域のために実行できるような、ソフ
トウエア・ストラテジーが可能になる。
このアーキテクチヤは仮想記憶装置間でのペ
ージの共有が可能でない。この制限はハードウ
エアおよびソフトウエアのどちらの観点から
も、大きな単純化をもたらす。第1にそれはキ
ヤツシユが仮想モードで動作することを可能に
する。言い換えると実アドレスではなく仮想ア
ドレスを用いてキヤツシユにアクセスすること
ができる。明らかに、ラインがキヤツシユ中に
(90%以上の時間)見い出される時、再配置ア
ルゴリズムを実行することによる時間損失や品
質低下は全く生じない。
ージの共有が可能でない。この制限はハードウ
エアおよびソフトウエアのどちらの観点から
も、大きな単純化をもたらす。第1にそれはキ
ヤツシユが仮想モードで動作することを可能に
する。言い換えると実アドレスではなく仮想ア
ドレスを用いてキヤツシユにアクセスすること
ができる。明らかに、ラインがキヤツシユ中に
(90%以上の時間)見い出される時、再配置ア
ルゴリズムを実行することによる時間損失や品
質低下は全く生じない。
従来の再配置システムはかなりの量の高速記
憶装置をページ・テーブル上のルツク・アサイ
ド・テーブル(DLAT)専用にしている。記
憶装置は一般にキヤツシユと同じ技術であり、
従つて非常に高価である。このアーキテクチヤ
ではページ・テーブルは通常はキヤツシユを通
してアクセスすることができ、その期待される
使用頻度が高いために、一般にキヤツシユ・ヒ
ツトの確率が非常に高くなる。従つて追加的な
費用なしで、性能DLATを近似することが可
能である。従つてシステムの性能に大幅に影響
を与えることなしに、通常のDLATへの投資
をキヤツシユ・サイズの増大に適切に振り向け
ることもまた全く削除することもできる。
憶装置をページ・テーブル上のルツク・アサイ
ド・テーブル(DLAT)専用にしている。記
憶装置は一般にキヤツシユと同じ技術であり、
従つて非常に高価である。このアーキテクチヤ
ではページ・テーブルは通常はキヤツシユを通
してアクセスすることができ、その期待される
使用頻度が高いために、一般にキヤツシユ・ヒ
ツトの確率が非常に高くなる。従つて追加的な
費用なしで、性能DLATを近似することが可
能である。従つてシステムの性能に大幅に影響
を与えることなしに、通常のDLATへの投資
をキヤツシユ・サイズの増大に適切に振り向け
ることもまた全く削除することもできる。
ハードウエアの実施例、与えられる特殊なハ
ードウエア命令、およびこのキヤツシユ・サブ
システム内で実行できる各種の動作についての
詳細な説明を始める前に、次に図面の簡単な説
明とその相互の関係を述べる。
ードウエア命令、およびこのキヤツシユ・サブ
システム内で実行できる各種の動作についての
詳細な説明を始める前に、次に図面の簡単な説
明とその相互の関係を述べる。
第1図は、CPU、命令キヤツシユ、デー
タ・キヤツシユおよび主記憶装置の関係をはつ
きりと示した、階層記憶構成の全体構成図であ
る。直接記憶アダプタ(DMA)も主記憶装置
に直接接続されたものとして示されている。先
に述べたように、キヤツシユをベースとする大
部分のシステムでは、入出力はキヤツシユ・サ
ブシステムを通過して、主記憶装置に記憶さ
れ、システム・スループツトの低下を伴う。本
システムでは、入出力がキヤツシユを通過する
ことを禁じられており、実際にも大部分は直接
DMAを通過する。事実、後述のように入出力
動作がキヤツシユによつて開始される記憶と読
取りを中断することを防止するための措置がと
られている。キヤツシユにより開始される記憶
と読取りは「ストア・スルー型」動作を伴うキ
ヤツシユ・ミスが起こつた場合に生じる。また
後で図面を参照する際に指摘するが、データ・
キヤツシユから主記憶装置へのデータの流れの
ラインはあるが、命令キヤツシユから主記憶装
置への流れのラインは存在しない。キヤツシユ
の命令部を「ストア・スルー」する必要はない
ため、命令キヤツシユ中での命令の変更は許さ
れないので、このことは銘記しておくべきであ
る。
タ・キヤツシユおよび主記憶装置の関係をはつ
きりと示した、階層記憶構成の全体構成図であ
る。直接記憶アダプタ(DMA)も主記憶装置
に直接接続されたものとして示されている。先
に述べたように、キヤツシユをベースとする大
部分のシステムでは、入出力はキヤツシユ・サ
ブシステムを通過して、主記憶装置に記憶さ
れ、システム・スループツトの低下を伴う。本
システムでは、入出力がキヤツシユを通過する
ことを禁じられており、実際にも大部分は直接
DMAを通過する。事実、後述のように入出力
動作がキヤツシユによつて開始される記憶と読
取りを中断することを防止するための措置がと
られている。キヤツシユにより開始される記憶
と読取りは「ストア・スルー型」動作を伴うキ
ヤツシユ・ミスが起こつた場合に生じる。また
後で図面を参照する際に指摘するが、データ・
キヤツシユから主記憶装置へのデータの流れの
ラインはあるが、命令キヤツシユから主記憶装
置への流れのラインは存在しない。キヤツシユ
の命令部を「ストア・スルー」する必要はない
ため、命令キヤツシユ中での命令の変更は許さ
れないので、このことは銘記しておくべきであ
る。
第2図(第2.1図および第2.2図)は、
主記憶装置、キヤツシユおよびCPUの間のデ
ータ経路をより詳しく示した、第1図の拡張で
ある。図のマルチプレクサ(MUX)は、この
はードウエア実施例で設けられている各種のデ
ータ転送のためのゲート機能を実行する、通常
の論理回路である。デタ1バイト当たり1つの
パリテイー・ビツトが入出力、主記憶装置およ
び両キヤツシユ中を通つて運ばれるが、パリテ
イー・ビツトはCPUに転送されたり、CPUか
ら受け取られることはないことに注意するこ
と。
主記憶装置、キヤツシユおよびCPUの間のデ
ータ経路をより詳しく示した、第1図の拡張で
ある。図のマルチプレクサ(MUX)は、この
はードウエア実施例で設けられている各種のデ
ータ転送のためのゲート機能を実行する、通常
の論理回路である。デタ1バイト当たり1つの
パリテイー・ビツトが入出力、主記憶装置およ
び両キヤツシユ中を通つて運ばれるが、パリテ
イー・ビツトはCPUに転送されたり、CPUか
ら受け取られることはないことに注意するこ
と。
第2図は、主記憶装置からCPUへの4バイ
トの目的データ・ワードに直接データ経路を与
える、ワード・バイパス機構を図示したもので
ある。キヤツシユと主記憶装置の間のデータ転
送の基本サイズは、32バイトのラインである。
このデータは、主記憶装置からそれぞれ8バイ
トからなる一連の4個の二重ワードとして受け
取られ、この記憶アーキテクチヤによつて受け
取られた最初の二重ワードが必ず目的ワードを
含むことが保証される。目的ワードはキヤツシ
ユに記憶されるのと同時に、CPUにバイパス
される。キヤツシユから主記憶装置へのデータ
書戻し経路は、書戻しマルチプレクサを通るそ
れぞれ4バイトからなる一連の8個のワードと
してデータ・キヤツシユのみに設けられている
ことに注意すること。
トの目的データ・ワードに直接データ経路を与
える、ワード・バイパス機構を図示したもので
ある。キヤツシユと主記憶装置の間のデータ転
送の基本サイズは、32バイトのラインである。
このデータは、主記憶装置からそれぞれ8バイ
トからなる一連の4個の二重ワードとして受け
取られ、この記憶アーキテクチヤによつて受け
取られた最初の二重ワードが必ず目的ワードを
含むことが保証される。目的ワードはキヤツシ
ユに記憶されるのと同時に、CPUにバイパス
される。キヤツシユから主記憶装置へのデータ
書戻し経路は、書戻しマルチプレクサを通るそ
れぞれ4バイトからなる一連の8個のワードと
してデータ・キヤツシユのみに設けられている
ことに注意すること。
第2図の命令キヤツシユとデータ・キヤツシ
ユを参照すると、2つのサブセツトAとBの存
在が示されていることに気づく。先に述べたよ
うに、この2つのサブセツトの存在はアドレツ
シング・アーキテクチヤの2ウエイ・セツト・
アソシアテイブの要件である。
ユを参照すると、2つのサブセツトAとBの存
在が示されていることに気づく。先に述べたよ
うに、この2つのサブセツトの存在はアドレツ
シング・アーキテクチヤの2ウエイ・セツト・
アソシアテイブの要件である。
次に第2図のデータ流れ図について簡単に説
明する。図を参照する際、データ流れの方向は
基本的に図の上方から下方に向かつている。命
令キヤツシユ10とデータ・キヤツシユ12
は、ともに主記憶装置14からデータを受取る
ことができる。しかし、CPUからデータを受
乗ることができるのはデータ・キヤツシユだけ
である。このことは先に述べた。これはこのア
ーキテクチヤでは命令キヤツシユでの命令の変
更が可能でなく、従つて命令キヤツシユの出力
はCPUに向かうだけであるためである。同様
に、そのキヤツシユ中の命令は直繊CPUによ
つて変更できないので、命令キヤツシユはロー
デイングのために取出しラツチ20と、入力マ
ルチプレクサ22を経て主記憶装置14に接続
しさえすればよい。従つて、命令キヤツシユ1
0に命令を記憶するため、命令データのライン
が取出しラツチ20を経て、最終的には命令キ
ヤツシユの選択されたセクシヨン(ライン)に
転送させられる。同様に、命令キヤツシユから
CPUに命令を転送するため、データ・ワード
が命令キヤツシユの選択されたセクシヨンから
読取られて、出力マルチプレクサ16、および
バイパス・マルチプレクサ18に送られる。
明する。図を参照する際、データ流れの方向は
基本的に図の上方から下方に向かつている。命
令キヤツシユ10とデータ・キヤツシユ12
は、ともに主記憶装置14からデータを受取る
ことができる。しかし、CPUからデータを受
乗ることができるのはデータ・キヤツシユだけ
である。このことは先に述べた。これはこのア
ーキテクチヤでは命令キヤツシユでの命令の変
更が可能でなく、従つて命令キヤツシユの出力
はCPUに向かうだけであるためである。同様
に、そのキヤツシユ中の命令は直繊CPUによ
つて変更できないので、命令キヤツシユはロー
デイングのために取出しラツチ20と、入力マ
ルチプレクサ22を経て主記憶装置14に接続
しさえすればよい。従つて、命令キヤツシユ1
0に命令を記憶するため、命令データのライン
が取出しラツチ20を経て、最終的には命令キ
ヤツシユの選択されたセクシヨン(ライン)に
転送させられる。同様に、命令キヤツシユから
CPUに命令を転送するため、データ・ワード
が命令キヤツシユの選択されたセクシヨンから
読取られて、出力マルチプレクサ16、および
バイパス・マルチプレクサ18に送られる。
それぞれ命令キヤツシユ10とデータ・キヤ
ツシユ12用の連関されたデイレクトリ11と
13(第3図(第3.1図と第3.2図)に詳
しく示す)が、キヤツシユに(機能的に)接続
されたものとして示されている。これらのデイ
レクトリはキヤツシユ・データ流れ経路に含ま
れているのではなく、物理的にキヤツシユの動
作と密接に関連づけられていることを理解すべ
きである。後でさらに詳しく説明するように、
所与のキヤツシユ・アクセスの場合、アドレス
のDフイールドに対して決定された同じライン
によつて、両キヤツシユ・サブセツトの同じラ
インおよび連関されたデイクトリ項目が並列に
アクセスされる。さらに、このアクセスによつ
て、両キヤツシユ・サブセツトAおよびBのデ
ータがシステムにとつて使用可能となる。
ツシユ12用の連関されたデイレクトリ11と
13(第3図(第3.1図と第3.2図)に詳
しく示す)が、キヤツシユに(機能的に)接続
されたものとして示されている。これらのデイ
レクトリはキヤツシユ・データ流れ経路に含ま
れているのではなく、物理的にキヤツシユの動
作と密接に関連づけられていることを理解すべ
きである。後でさらに詳しく説明するように、
所与のキヤツシユ・アクセスの場合、アドレス
のDフイールドに対して決定された同じライン
によつて、両キヤツシユ・サブセツトの同じラ
インおよび連関されたデイクトリ項目が並列に
アクセスされる。さらに、このアクセスによつ
て、両キヤツシユ・サブセツトAおよびBのデ
ータがシステムにとつて使用可能となる。
これらのデイレクトリは、通常はエミツタ結
合論理回路など適当な高速回路フアミリー中の
別個の極めて速い記憶装置として作られる。こ
こに開示する実施例では、キヤシユのアクセス
時間が30ナノ秒であるのに対して、デイレクト
リのアクセス時間は約12ナノ秒であつた。これ
はキヤツシユからの2つのデータ・サブセツト
が使用可能なとき、デイレクトリ項目にもとづ
いて行うべき論理判断を可能にするためであ
る。
合論理回路など適当な高速回路フアミリー中の
別個の極めて速い記憶装置として作られる。こ
こに開示する実施例では、キヤシユのアクセス
時間が30ナノ秒であるのに対して、デイレクト
リのアクセス時間は約12ナノ秒であつた。これ
はキヤツシユからの2つのデータ・サブセツト
が使用可能なとき、デイレクトリ項目にもとづ
いて行うべき論理判断を可能にするためであ
る。
先に述べたように、データ・キヤツシユは主
記憶装置14からもCPU30からもロードで
きる。データ・ラインを主記憶装置14から記
憶すべき場合、データ流れは両キヤツシユ共用
の取出しラツチ20を通り、次いでデータ・キ
ヤツシユ用のバイト入力マルチプレクサ48を
通つてデータ・キヤツシユ12自体に入る。デ
ータ・ラインをCPU30から転送すべき場合、
データ経路は図に示すようにバイト入力マルチ
プレクサ48を通つて、次にデータ・キヤツシ
ユ12に入る。データ・キヤツシユ12から
CPUにデータを転送するには、データは出力
マルチプレクサ32、バイパス・マルチプレク
サ34を通つてCPUのデータ・レジスタに入
る。
記憶装置14からもCPU30からもロードで
きる。データ・ラインを主記憶装置14から記
憶すべき場合、データ流れは両キヤツシユ共用
の取出しラツチ20を通り、次いでデータ・キ
ヤツシユ用のバイト入力マルチプレクサ48を
通つてデータ・キヤツシユ12自体に入る。デ
ータ・ラインをCPU30から転送すべき場合、
データ経路は図に示すようにバイト入力マルチ
プレクサ48を通つて、次にデータ・キヤツシ
ユ12に入る。データ・キヤツシユ12から
CPUにデータを転送するには、データは出力
マルチプレクサ32、バイパス・マルチプレク
サ34を通つてCPUのデータ・レジスタに入
る。
データ・キヤツシユのミスが起こつた場合、
そのラインが有効であり、かつ変更を示すと仮
定すると、新しいデータ・ラインをデータ・キ
ヤツシユのその特定ラインにロードできるよう
になる前に、データ・キヤツシユ中のこのデー
タ・ラインを記憶装置14に書き戻さなければ
ならない。このために書き戻しラツチ/マルチ
プレクサ52が付勢される。
そのラインが有効であり、かつ変更を示すと仮
定すると、新しいデータ・ラインをデータ・キ
ヤツシユのその特定ラインにロードできるよう
になる前に、データ・キヤツシユ中のこのデー
タ・ラインを記憶装置14に書き戻さなければ
ならない。このために書き戻しラツチ/マルチ
プレクサ52が付勢される。
バイト選択機構49およびバイト書込みゲー
ト50は、データ・キヤツシユへのデータの記
憶を制御する。
ト50は、データ・キヤツシユへのデータの記
憶を制御する。
デイレクトリ・ミスを伴うCPUロードOPの
とき、バイト選択機構49は主記憶データの二
重ワードのみがバイト入力マルチプレクサ48
を通るようにゲートし、すべてのバイト書込み
ゲート50が活動化される。
とき、バイト選択機構49は主記憶データの二
重ワードのみがバイト入力マルチプレクサ48
を通るようにゲートし、すべてのバイト書込み
ゲート50が活動化される。
デイレクトリ・ヒツトを伴うCPU記憶OPの
とき、バイト選択機構49は、CPUデータ・
ワードのみがバイト入力マルチプレクサ48を
通るようにゲートし、書込みゲート50は、デ
ータ・キヤツシユのサブセツト中に記憶される
バイト数を制御するのに使用される。この
CPUアーキテクチヤは、1、2または3バイ
トのデータを記憶することができる。
とき、バイト選択機構49は、CPUデータ・
ワードのみがバイト入力マルチプレクサ48を
通るようにゲートし、書込みゲート50は、デ
ータ・キヤツシユのサブセツト中に記憶される
バイト数を制御するのに使用される。この
CPUアーキテクチヤは、1、2または3バイ
トのデータを記憶することができる。
デイレクトリ・ミスを伴うCPU記憶OPのと
き、バイト選択機構49は1、2または3バイ
トのCPUデータを主記憶装置からの最初のミ
ス二重ワードに組み合わせ、バイト入力マルチ
プレクサ48を通過させる。すべての4バイト
書込みゲート50が活動化される。ミスを生じ
たラインの残りの3つの二重ワードについて
は、バイト選択機構49は主記憶装置の二重ワ
ードのみがバイト入力マルチプレクサ48を通
過できるようにする。
き、バイト選択機構49は1、2または3バイ
トのCPUデータを主記憶装置からの最初のミ
ス二重ワードに組み合わせ、バイト入力マルチ
プレクサ48を通過させる。すべての4バイト
書込みゲート50が活動化される。ミスを生じ
たラインの残りの3つの二重ワードについて
は、バイト選択機構49は主記憶装置の二重ワ
ードのみがバイト入力マルチプレクサ48を通
過できるようにする。
どちらのキヤツシユもバイパス機構を備えて
おり、どちらかのキヤツシユに対してキヤツシ
ユ・ミスを生じる取出し要求があつたとき、デ
ータが主記憶装置から使用可能になつている場
合、それぞれ命令キヤツシユおよびデータ・キ
ヤツシユについてワード選択マルチプレクサ3
8または40を通して、そのデータをキヤツシ
ユおよびCPUに同時に送ることができる。こ
うしてデータ(または命令)がまずキヤツシユ
に完全に記憶されるのを待つ間、CPUが停止
する必要はない。
おり、どちらかのキヤツシユに対してキヤツシ
ユ・ミスを生じる取出し要求があつたとき、デ
ータが主記憶装置から使用可能になつている場
合、それぞれ命令キヤツシユおよびデータ・キ
ヤツシユについてワード選択マルチプレクサ3
8または40を通して、そのデータをキヤツシ
ユおよびCPUに同時に送ることができる。こ
うしてデータ(または命令)がまずキヤツシユ
に完全に記憶されるのを待つ間、CPUが停止
する必要はない。
後でさらに詳しく述べるように、命令または
データ・ラインの目的ワードのみが直接CPU
にバイパスされる。
データ・ラインの目的ワードのみが直接CPU
にバイパスされる。
従つて、本スプリツト・キヤツシユ・サブシ
ステムの全体アーキテクチヤは、基本的に通常
の性格のものであることがわかる。すなわち、
主記憶装置から命令キヤツシユおよびデータ・
キヤツシユをロードするためのデータ経路が設
けられている。追加手段がCPUからデータ・
キヤツシユをロードする。同様に両方のキヤツ
シユがそれぞれ命令とデータをCPUに転送す
ることができ、データ・キヤツシユはまたデー
タを主記憶装置に書戻すことができなければな
らない。最後に、どちらのキヤツシユにもバイ
パス機構が備えられており、それによつてライ
ン中のアドレスされたワードが直ちにCPUに
送られ、そのラインはCPU遅延を最小にする
ため、同時にキヤツシユに記憶される。従つ
て、本スプリツト・キヤツシユ・サブシステム
の実際のハードウエア構成は、全く簡明である
ことが認められる。ここに開示するキヤツシ
ユ・サブシステムの改善された機能をもたらす
のは、キヤツシユの実際の使い方およびキヤツ
シユ・デイレクトリとその中に設けられた特殊
な制御ビツトの独特の構成である。
ステムの全体アーキテクチヤは、基本的に通常
の性格のものであることがわかる。すなわち、
主記憶装置から命令キヤツシユおよびデータ・
キヤツシユをロードするためのデータ経路が設
けられている。追加手段がCPUからデータ・
キヤツシユをロードする。同様に両方のキヤツ
シユがそれぞれ命令とデータをCPUに転送す
ることができ、データ・キヤツシユはまたデー
タを主記憶装置に書戻すことができなければな
らない。最後に、どちらのキヤツシユにもバイ
パス機構が備えられており、それによつてライ
ン中のアドレスされたワードが直ちにCPUに
送られ、そのラインはCPU遅延を最小にする
ため、同時にキヤツシユに記憶される。従つ
て、本スプリツト・キヤツシユ・サブシステム
の実際のハードウエア構成は、全く簡明である
ことが認められる。ここに開示するキヤツシ
ユ・サブシステムの改善された機能をもたらす
のは、キヤツシユの実際の使い方およびキヤツ
シユ・デイレクトリとその中に設けられた特殊
な制御ビツトの独特の構成である。
ちよつと第2図に戻ると、どちらのキヤツシ
ユも図のような別個のライン選択機構によつて
2つのサブセクシヨンAとBに分けられている
ことが気付かれる。このことは後の説明でさら
にはつきり認められるはずである。このキヤツ
シユ・サブシステムは、2ウエイ・セツト・ア
ソシアテイブである。キヤツシユ・デイレクト
リ中の所与のラインがアドレスされると、2つ
のデータ・ラインの各々からキヤツシユ内で異
なる2つのページ(AとB)に属する1ワード
が実際にアドレスされる。最終的に選択される
ラインは後で説明するように、目的ページ・ア
ドレスPtとキヤツシユ・デイレクトリに含ま
れる2つのベージ参照PAおよびPBとの比較に
よつて決定される。選択されたラインからアド
レスされたワードは、出力マルチプレクサ16
または32によつてCPUにゲートされる。
ユも図のような別個のライン選択機構によつて
2つのサブセクシヨンAとBに分けられている
ことが気付かれる。このことは後の説明でさら
にはつきり認められるはずである。このキヤツ
シユ・サブシステムは、2ウエイ・セツト・ア
ソシアテイブである。キヤツシユ・デイレクト
リ中の所与のラインがアドレスされると、2つ
のデータ・ラインの各々からキヤツシユ内で異
なる2つのページ(AとB)に属する1ワード
が実際にアドレスされる。最終的に選択される
ラインは後で説明するように、目的ページ・ア
ドレスPtとキヤツシユ・デイレクトリに含ま
れる2つのベージ参照PAおよびPBとの比較に
よつて決定される。選択されたラインからアド
レスされたワードは、出力マルチプレクサ16
または32によつてCPUにゲートされる。
また、第2図を参照すると、キヤツシユ・サ
ブシステムの各ユニツトを接続する各種の多重
ビツト・ケーブルは32または36ビツトを含むも
のとして示されていることが気付かれる。32ビ
ツト・ケーブルと36ビツト・ケーブルの違い
は、この実施例の範囲内では36ビツト・ケーブ
ルは32個のデータ・ビツトと4個のパリテイ・
ビツトを含むということである。一般に4パリ
テイ・ビツトは、キヤツシユ・サブシステムか
らCPUにデータ(または命令)を転送する際
に除去ないし削除される。また、主記憶装置1
4と取出しラツチ20の間のケーブルが72ビツ
トを含むことも気付かれる。すぐ認められるよ
うに、主記憶装置は二重ワードを読出して転送
するように編成されているので、このケーブル
は2つの36ビツト・ワードを含むだけである。
ブシステムの各ユニツトを接続する各種の多重
ビツト・ケーブルは32または36ビツトを含むも
のとして示されていることが気付かれる。32ビ
ツト・ケーブルと36ビツト・ケーブルの違い
は、この実施例の範囲内では36ビツト・ケーブ
ルは32個のデータ・ビツトと4個のパリテイ・
ビツトを含むということである。一般に4パリ
テイ・ビツトは、キヤツシユ・サブシステムか
らCPUにデータ(または命令)を転送する際
に除去ないし削除される。また、主記憶装置1
4と取出しラツチ20の間のケーブルが72ビツ
トを含むことも気付かれる。すぐ認められるよ
うに、主記憶装置は二重ワードを読出して転送
するように編成されているので、このケーブル
は2つの36ビツト・ワードを含むだけである。
これで、スプリツト・キヤツシユ・サブシス
テム・ハードウエア全体の一般的説明は終わ
る。このハードウエアの一般的構成および動作
は単純明解であり、当技術では周知のものであ
ると考えられる。
テム・ハードウエア全体の一般的説明は終わ
る。このハードウエアの一般的構成および動作
は単純明解であり、当技術では周知のものであ
ると考えられる。
第3図(第3.1図および第3.2図)を参
照すると、16Kバイトのデータ・キヤツシユ・
デイレクトリとそれに関連する論理および制御
回路の詳細な機能ブロツク図が示されている。
ここで開示される実施例では、24ビツトの
CPUアドレスがレジスタ60に配置されてい
ると仮定されている。この24ビツト・アドレス
全体のうちで、左側の11ビツト(Pt)は記憶
参照のページ・アドレスを含んでいる。8ビツ
トからなるDフイールドは、指定されたページ
内の特定の記憶参照のライン・アドレスを含ん
でいる。このアドレスはキヤツシユ・デイレク
トリの(従つてまたキヤツシユ自身の内部の)
256個のラインの1つを実際にアドレスするの
に利用されることが指摘される。最後に右側5
ビツトのWフイールドは32バイトのライン全体
の中のワードまたはバイト・オフセツトであ
る。そのアドレスすなわちセグメントは、全体
アドレスによつて指示される所期のバイトをア
ドレスするのに実際に利用される。
照すると、16Kバイトのデータ・キヤツシユ・
デイレクトリとそれに関連する論理および制御
回路の詳細な機能ブロツク図が示されている。
ここで開示される実施例では、24ビツトの
CPUアドレスがレジスタ60に配置されてい
ると仮定されている。この24ビツト・アドレス
全体のうちで、左側の11ビツト(Pt)は記憶
参照のページ・アドレスを含んでいる。8ビツ
トからなるDフイールドは、指定されたページ
内の特定の記憶参照のライン・アドレスを含ん
でいる。このアドレスはキヤツシユ・デイレク
トリの(従つてまたキヤツシユ自身の内部の)
256個のラインの1つを実際にアドレスするの
に利用されることが指摘される。最後に右側5
ビツトのWフイールドは32バイトのライン全体
の中のワードまたはバイト・オフセツトであ
る。そのアドレスすなわちセグメントは、全体
アドレスによつて指示される所期のバイトをア
ドレスするのに実際に利用される。
図からはつきりわかるように、キヤツシユ・
デイレクトリは256の項目を含んでおり、(0〜
255)の各項目は全体で7つの情報フイールド
PA,PB,VA,VB,MA,MB,LRUを含ん
でいる。後でさらに詳しく説明するように、
PA,VAおよびMAは、サブセツトAに属する
キヤツシユ内の各ラインを指し、要素PB,
VBおよびMBはサブセツトBに関係している。
LRUビツトは2つのサブセツト・ラインのど
ちらが最も最近にアクセスされたかを示し、従
つてキヤツシユ内の(サブセツトAまたはB中
の)特定ラインの置換を制御する。
デイレクトリは256の項目を含んでおり、(0〜
255)の各項目は全体で7つの情報フイールド
PA,PB,VA,VB,MA,MB,LRUを含ん
でいる。後でさらに詳しく説明するように、
PA,VAおよびMAは、サブセツトAに属する
キヤツシユ内の各ラインを指し、要素PB,
VBおよびMBはサブセツトBに関係している。
LRUビツトは2つのサブセツト・ラインのど
ちらが最も最近にアクセスされたかを示し、従
つてキヤツシユ内の(サブセツトAまたはB中
の)特定ラインの置換を制御する。
動作の際には、キヤツシユ・アクセスを行う
場合、CPUアドレスのDフイールドによつて
指示される特定のラインが、デイレクトリ内の
256の項目の1つをアクセスさせる。次にペー
ジPAとPBのどちらがCPUアドレス中の目的
ページ・アドレスPtと一致するかを決定しな
ければならない。この比較は、2つの比較回路
62と64で実行される。ページ・アドレス
PAとPBのどちらかがPtと一致する場合、「ヒ
ツト=A」ラインまたは「ヒツト=B」ライン
が活動化される。次にアクセスが継続できるか
どうか知るため、当該の妥当性ビツトVまたは
変更ビツトMが問い合わせられる。この動作の
詳細については、後でより詳しく述べる。2つ
のページ・アドレスPAまたはPBのどちらもPt
と一致しない場合、NAND回路66が「ミス」
ラインと活動化させ、デイレクトリ更新論理回
路68がシステムに、「ミス」が生じ、新しい
データ・ラインをキヤツシユ・システムに持ち
込まなければならないことを示す。2つのサブ
セツト・ラインのどちらが置換されるかは、
LRUビツトによつて決定される。「書込みスト
ローブ」として示されている7ビツト・ライン
は後で詳しく説明するように、新しいデータを
選択されたフイールドないしキヤツシユ・デイ
レクトリの特定項目のビツト位置に入力できる
ようにする。もちろんどのビツトが変更され、
いつ新しいページ・アドレスがPAまたはPBフ
イールドに挿入されるかはCPU命令解読機構
70によつて解読される特定の命令によつて決
定される。
場合、CPUアドレスのDフイールドによつて
指示される特定のラインが、デイレクトリ内の
256の項目の1つをアクセスさせる。次にペー
ジPAとPBのどちらがCPUアドレス中の目的
ページ・アドレスPtと一致するかを決定しな
ければならない。この比較は、2つの比較回路
62と64で実行される。ページ・アドレス
PAとPBのどちらかがPtと一致する場合、「ヒ
ツト=A」ラインまたは「ヒツト=B」ライン
が活動化される。次にアクセスが継続できるか
どうか知るため、当該の妥当性ビツトVまたは
変更ビツトMが問い合わせられる。この動作の
詳細については、後でより詳しく述べる。2つ
のページ・アドレスPAまたはPBのどちらもPt
と一致しない場合、NAND回路66が「ミス」
ラインと活動化させ、デイレクトリ更新論理回
路68がシステムに、「ミス」が生じ、新しい
データ・ラインをキヤツシユ・システムに持ち
込まなければならないことを示す。2つのサブ
セツト・ラインのどちらが置換されるかは、
LRUビツトによつて決定される。「書込みスト
ローブ」として示されている7ビツト・ライン
は後で詳しく説明するように、新しいデータを
選択されたフイールドないしキヤツシユ・デイ
レクトリの特定項目のビツト位置に入力できる
ようにする。もちろんどのビツトが変更され、
いつ新しいページ・アドレスがPAまたはPBフ
イールドに挿入されるかはCPU命令解読機構
70によつて解読される特定の命令によつて決
定される。
キヤツシユ・デイレクトリおよびそれに関連
する制御装置の動作および構成は、単純明解で
あると考えられ、ここに開示される機能説明と
ブロツク図を与えられれば、コンピユータ技術
の専門家が容易に実現できるものである。
する制御装置の動作および構成は、単純明解で
あると考えられ、ここに開示される機能説明と
ブロツク図を与えられれば、コンピユータ技術
の専門家が容易に実現できるものである。
第4図はキヤツシユ・サブシステムのアドレ
ツシングおよび構造を図示した一連の表を含ん
でいる。それに加えて、この図はキヤツシユ・
サブシステムのサイズのアドレツシング・フイ
ールドなど各種のパラメータに対する影響を示
している。要するに、異なる3種のキヤツシ
ユ・サイズを4K、8Kおよび16Kと仮定すると、
デイレクトリ項目は2つのページ識別子Paお
よびPbと5つの特殊制御ビツトVa,Vb,
Ma,Mb,LRUを含むことが気付かれる。こ
れらの特別制御ビツトが利用される特殊な方法
については、後で詳しく説明する。
ツシングおよび構造を図示した一連の表を含ん
でいる。それに加えて、この図はキヤツシユ・
サブシステムのサイズのアドレツシング・フイ
ールドなど各種のパラメータに対する影響を示
している。要するに、異なる3種のキヤツシ
ユ・サイズを4K、8Kおよび16Kと仮定すると、
デイレクトリ項目は2つのページ識別子Paお
よびPbと5つの特殊制御ビツトVa,Vb,
Ma,Mb,LRUを含むことが気付かれる。こ
れらの特別制御ビツトが利用される特殊な方法
については、後で詳しく説明する。
キヤツシユ中のデイレクトリのアドレツシン
グは、図の上部にもはつきり示されている。こ
こで24ビツトのCPU目的アドレスは、P(ペー
ジ)、D(ライン)、およびW(バイト)の3つの
フイールドを含んでいる。図から明らかなよう
に、キヤツシユ自体はDフイールドとWフイー
ルドを用いてアドレスされるが、デイレクトリ
はかかる2ウエイ・セツト・アソシアテイブ式
キヤツシユではDフイールドのみを利用してア
ドレスされる。当該技術の専門家なら理解でき
るように、デイレクトリがアクセスされ、次に
目的アドレスのPフイールドがデイレクトリ項
目PaまたはPbのどちらかと一致するかどうか
決定される。この図については後でより詳しく
説明する。
グは、図の上部にもはつきり示されている。こ
こで24ビツトのCPU目的アドレスは、P(ペー
ジ)、D(ライン)、およびW(バイト)の3つの
フイールドを含んでいる。図から明らかなよう
に、キヤツシユ自体はDフイールドとWフイー
ルドを用いてアドレスされるが、デイレクトリ
はかかる2ウエイ・セツト・アソシアテイブ式
キヤツシユではDフイールドのみを利用してア
ドレスされる。当該技術の専門家なら理解でき
るように、デイレクトリがアクセスされ、次に
目的アドレスのPフイールドがデイレクトリ項
目PaまたはPbのどちらかと一致するかどうか
決定される。この図については後でより詳しく
説明する。
第5図から第11図までは、それぞれ特定の
ハードウエア動作の結果としてキヤツシユ・サ
ブシステムのハードウエア内部で起こる動作を
表の形でまとめたものである。「ハードウエ
ア・プロシージヤ」の表現はキヤツシユ・サブ
システム・ハードウエアの動作の結果としてシ
ステムで起こることをリストにしたものという
意味である。
ハードウエア動作の結果としてキヤツシユ・サ
ブシステムのハードウエア内部で起こる動作を
表の形でまとめたものである。「ハードウエ
ア・プロシージヤ」の表現はキヤツシユ・サブ
システム・ハードウエアの動作の結果としてシ
ステムで起こることをリストにしたものという
意味である。
第12図から第18図まではすべて流れ図で
あり、各図につけたラベルで示されるような第
5図ないし第11図に記される各種のキヤツシ
ユ・サブシステム動作と密接に関係している。
言い換えれば、列挙された各ハードウエア・プ
ロシージヤに対する流れ図があり、例えば第6
図のデータ・キヤツシユ取出しハードウエア・
プロシージヤは第14図にずつと詳しく示され
ている。このようにこれらの流れ図では、詳し
いテスト操作および分岐操作および様々な分岐
に沿つて進むとき、列挙された様々なブロツク
で起こる特定の操作が明確に記載されている。
これらの操作については後でさらに詳しく説明
するが、基本的にキヤツシユ・サブシステムの
動作を半ば説明すると考えられている。
あり、各図につけたラベルで示されるような第
5図ないし第11図に記される各種のキヤツシ
ユ・サブシステム動作と密接に関係している。
言い換えれば、列挙された各ハードウエア・プ
ロシージヤに対する流れ図があり、例えば第6
図のデータ・キヤツシユ取出しハードウエア・
プロシージヤは第14図にずつと詳しく示され
ている。このようにこれらの流れ図では、詳し
いテスト操作および分岐操作および様々な分岐
に沿つて進むとき、列挙された様々なブロツク
で起こる特定の操作が明確に記載されている。
これらの操作については後でさらに詳しく説明
するが、基本的にキヤツシユ・サブシステムの
動作を半ば説明すると考えられている。
かかるキヤツシユ・サブシステムでおこる事
象、ならびに第2図と第3図で特別に示したす
べてのハードウエア構成要素の機能と目的は、
当技術で周知のものであると考えられる。当技
術の専門家なら、第2図と第3図および詳細な
流れ図に記載された全体キヤツシユ・サブシス
テム構成を用いて、本発明のキヤツシユ・サブ
システムを作成するのに因難はないはずであ
る。
象、ならびに第2図と第3図で特別に示したす
べてのハードウエア構成要素の機能と目的は、
当技術で周知のものであると考えられる。当技
術の専門家なら、第2図と第3図および詳細な
流れ図に記載された全体キヤツシユ・サブシス
テム構成を用いて、本発明のキヤツシユ・サブ
システムを作成するのに因難はないはずであ
る。
(b) 記憶階層の動作の詳細な説明
以下の説明は、本発明の階層記憶が特に有用
なミニコンピユータのあるバージヨンに適用さ
れる。これは、16メガバイトまでの実主記憶装
置を含む、該階層記憶システムへの24ビツトの
アドレツシングを実現する。24ビツトの主
CPUアーキテクチヤは、ここで詳しく述べる
適正な記憶命令を供給しなければならないこと
以外は、本発明にとつて決定的条件ではない。
なミニコンピユータのあるバージヨンに適用さ
れる。これは、16メガバイトまでの実主記憶装
置を含む、該階層記憶システムへの24ビツトの
アドレツシングを実現する。24ビツトの主
CPUアーキテクチヤは、ここで詳しく述べる
適正な記憶命令を供給しなければならないこと
以外は、本発明にとつて決定的条件ではない。
ここに開示する記憶階層の実施例は、CPU
速度で動作するキヤツシユ・サブシステムおよ
びCPU速度の1/5の速度で動作する最大16メガ
バイトのFET主記憶装置からなる。
速度で動作するキヤツシユ・サブシステムおよ
びCPU速度の1/5の速度で動作する最大16メガ
バイトのFET主記憶装置からなる。
CPUは、キヤツシユ・サブシステムと直接
に連絡し、一方、後者は主記憶装置と連絡する
(第1図を参照する)。入出力データは、直接記
憶アダプタ(DMA)を介して主記憶装置に送
ることができるが、キヤツシユ・サブシステム
に直接連絡することはできない。
に連絡し、一方、後者は主記憶装置と連絡する
(第1図を参照する)。入出力データは、直接記
憶アダプタ(DMA)を介して主記憶装置に送
ることができるが、キヤツシユ・サブシステム
に直接連絡することはできない。
CPUとキヤツシユ・サブシステムの間のデ
ータ転送の単位は、4バイト・ワードである。
主記憶装置とキヤツシユ・サブシステムの間の
転送単位は、32バイト・ラインである。ライン
転送は、主記憶装置から4つの8バイト2重ワ
ードを経て、また主記憶装置へ8つの4バイ
ト・ワードを経て行われる(第1図を参照のこ
と)。主記憶装置からまたはそこへの入出力デ
ータ転送は、DMAアダプタの制御下で4バイ
ト・ワードを介して行われる。
ータ転送の単位は、4バイト・ワードである。
主記憶装置とキヤツシユ・サブシステムの間の
転送単位は、32バイト・ラインである。ライン
転送は、主記憶装置から4つの8バイト2重ワ
ードを経て、また主記憶装置へ8つの4バイ
ト・ワードを経て行われる(第1図を参照のこ
と)。主記憶装置からまたはそこへの入出力デ
ータ転送は、DMAアダプタの制御下で4バイ
ト・ワードを介して行われる。
データ・バイト当り1つのパリテイ・ビツト
が、記憶階層中を運ばれることに注意するこ
と。パリテイ・ビツトは、CPUへまたはCPU
からは転送されない。
が、記憶階層中を運ばれることに注意するこ
と。パリテイ・ビツトは、CPUへまたはCPU
からは転送されない。
(c) キヤツシユ管理
ここに開示される階層記憶サブシステムは、
記憶階層への参照によつて生じるCPU遊休時
間を最小限に抑えるように設計された、システ
ム・アーキテクチヤを基礎にしている。この記
憶アーキテクチヤは、サイクル毎に新しい命令
を利用できるCPU用に設計されているので、
CPU速度に合致する別個の命令キヤツシユは、
命令の取出しが記憶階層中でのデータ取出しと
は独立に進行できるようにする。また、このア
ーキテクチヤは、キヤツシユ・サブシステムと
の直接の入出力通信を禁止し、従つて入出力に
よる雑音によつてCPUがロツクアウトされる
可能性を除外する。同様に、主記憶装置に対す
る過剰の参照によるパフオーマンスの低下を避
けるため、すべての記憶は、データ・キヤツシ
ユに向けられ、主記憶装置に自動的に「スト
ア・スルー」されることはない。
記憶階層への参照によつて生じるCPU遊休時
間を最小限に抑えるように設計された、システ
ム・アーキテクチヤを基礎にしている。この記
憶アーキテクチヤは、サイクル毎に新しい命令
を利用できるCPU用に設計されているので、
CPU速度に合致する別個の命令キヤツシユは、
命令の取出しが記憶階層中でのデータ取出しと
は独立に進行できるようにする。また、このア
ーキテクチヤは、キヤツシユ・サブシステムと
の直接の入出力通信を禁止し、従つて入出力に
よる雑音によつてCPUがロツクアウトされる
可能性を除外する。同様に、主記憶装置に対す
る過剰の参照によるパフオーマンスの低下を避
けるため、すべての記憶は、データ・キヤツシ
ユに向けられ、主記憶装置に自動的に「スト
ア・スルー」されることはない。
このアーキテクチヤ型式のために、入出力操
作による主記憶装置の内容の変更がCPUに直
ちに知られることはなく、また、CPUによつ
て実施されたデータ・キヤツシユの内容の変更
が入出力または命令キヤツシユに直ちに知られ
ることはないかもしれない。
作による主記憶装置の内容の変更がCPUに直
ちに知られることはなく、また、CPUによつ
て実施されたデータ・キヤツシユの内容の変更
が入出力または命令キヤツシユに直ちに知られ
ることはないかもしれない。
しかし、この上位システム・アーキテクチヤ
は、プログラムが主記憶装置とキヤツシユ・サ
ブシステムの内容の間の関係を制御することを
可能にする、限られた組のキヤツシユ管理命令
を供給する。これらの管理命令は、32バイトの
キヤツシユ・ラインのみを扱い、システムがよ
り低速の主記憶装置に対する不必要なキヤツシ
ユ参照を避けることを可能にする。例えば、一
時記憶域が、もはや必要でなくなつたとき、キ
ヤツシユ中のラインが以前のCPU記憶によつ
て変更されていた場合でも、データ・キヤツシ
ユ・ライン無効化命令の使用が、主記憶装置に
対する不必要な書戻しを防止する。
は、プログラムが主記憶装置とキヤツシユ・サ
ブシステムの内容の間の関係を制御することを
可能にする、限られた組のキヤツシユ管理命令
を供給する。これらの管理命令は、32バイトの
キヤツシユ・ラインのみを扱い、システムがよ
り低速の主記憶装置に対する不必要なキヤツシ
ユ参照を避けることを可能にする。例えば、一
時記憶域が、もはや必要でなくなつたとき、キ
ヤツシユ中のラインが以前のCPU記憶によつ
て変更されていた場合でも、データ・キヤツシ
ユ・ライン無効化命令の使用が、主記憶装置に
対する不必要な書戻しを防止する。
(d) キヤツシユ・サブシステム
キヤツシユ・サブシステムは、16Kの命令キ
ヤツシユと16Kのデータ・キヤツシユから構成
される。各キヤツシユは、2ウエイ・セツト・
アソシアテイブとして編成されている。従つ
て、各キヤツシユは、8KのサブセツトAと8K
のサブセツトBから構成される。一つのキヤツ
シユは、最大限32バイトのラインを512本含む
ことができる。サブセツトA中のライン256本
とサブセツトB中のライン256本である。
ヤツシユと16Kのデータ・キヤツシユから構成
される。各キヤツシユは、2ウエイ・セツト・
アソシアテイブとして編成されている。従つ
て、各キヤツシユは、8KのサブセツトAと8K
のサブセツトBから構成される。一つのキヤツ
シユは、最大限32バイトのラインを512本含む
ことができる。サブセツトA中のライン256本
とサブセツトB中のライン256本である。
(e) デイレクトリ
各キヤツシユは、連関するデイレクトリを備
えている。このデイレクトリは、アクセス時間
が全キヤツシユ・サイクル時間の約1/5の超高
速バイポーラ・ランダム・アクセス記憶装置に
含まれている。
えている。このデイレクトリは、アクセス時間
が全キヤツシユ・サイクル時間の約1/5の超高
速バイポーラ・ランダム・アクセス記憶装置に
含まれている。
デイレクトリ中の各項目は、各連関サブセツ
ト中に一つずつ、2つの可能なキヤツシユ・ラ
インの存在および状況を記載する。従つて、こ
のデイレクトリは、1つのキヤツシユ・サブセ
ツト中に物理的に存在できる最大ライン数と同
じ項目を含めるだけの大きさでなければならな
い。各キヤツシユ・サブセツトは、256本まで
のラインを含むことができるので、デイレクト
リは256の項目を含まなければならない。この
構造は、第2.1図にはつきりと示されてい
る。
ト中に一つずつ、2つの可能なキヤツシユ・ラ
インの存在および状況を記載する。従つて、こ
のデイレクトリは、1つのキヤツシユ・サブセ
ツト中に物理的に存在できる最大ライン数と同
じ項目を含めるだけの大きさでなければならな
い。各キヤツシユ・サブセツトは、256本まで
のラインを含むことができるので、デイレクト
リは256の項目を含まなければならない。この
構造は、第2.1図にはつきりと示されてい
る。
(e‐1) アドレス・フイールド
本実施例に関しては、上位システムは24ビ
ツト・アドレスを利用することが仮定され
る。概念的には、アドレスはページ・アドレ
ス、ページ中のラインのアドレスおよびライ
ン中のバイトのアドレスの3つのフイールド
に再分割できる。これらのサブフイールド
は、ここではそれぞれP,DおよびWと呼ぶ
ことにする。この構成は、第3図に詳しく記
されている。第3図のテーブルは、キヤツシ
ユ・サイズの範囲(4K→16K)およびキヤ
ツシユおよびデイレクトリの各種パラメータ
に対するサイズの影響をも示している。
ツト・アドレスを利用することが仮定され
る。概念的には、アドレスはページ・アドレ
ス、ページ中のラインのアドレスおよびライ
ン中のバイトのアドレスの3つのフイールド
に再分割できる。これらのサブフイールド
は、ここではそれぞれP,DおよびWと呼ぶ
ことにする。この構成は、第3図に詳しく記
されている。第3図のテーブルは、キヤツシ
ユ・サイズの範囲(4K→16K)およびキヤ
ツシユおよびデイレクトリの各種パラメータ
に対するサイズの影響をも示している。
各デイレクトリ項目は、2つのキヤツシ
ユ・サブセツト(PAおよびPB)に記憶され
ているラインのページ・アドレスを含む2つ
のアドレス・フイールドと、処理されている
キヤツシユ命令のためのハードウエア・アル
ゴリズムに指令する制御ビツト・フイールド
を持つている。デイレクトリは、目的アドレ
スのライン・アドレス・サブフイールドによ
つてアドレスされる。キヤツシユ・サイズが
小さくなるとライン・アドレス・サブフイー
ルドのサイズが減少するが、ページ・アドレ
ス・サブフイールドのサイズは増大する。
(第3図を参照)事実、この時、サイズのよ
り小さい(1ページ当りのラインの数がより
少ない)ページがより多く形成される。
ユ・サブセツト(PAおよびPB)に記憶され
ているラインのページ・アドレスを含む2つ
のアドレス・フイールドと、処理されている
キヤツシユ命令のためのハードウエア・アル
ゴリズムに指令する制御ビツト・フイールド
を持つている。デイレクトリは、目的アドレ
スのライン・アドレス・サブフイールドによ
つてアドレスされる。キヤツシユ・サイズが
小さくなるとライン・アドレス・サブフイー
ルドのサイズが減少するが、ページ・アドレ
ス・サブフイールドのサイズは増大する。
(第3図を参照)事実、この時、サイズのよ
り小さい(1ページ当りのラインの数がより
少ない)ページがより多く形成される。
(e‐2) 制御ビツト・フイールド
命令キヤツシユ・デイレクトリは、各項目
毎に3つの制御ビツトを含み、データ・キヤ
ツシユ・デイレクトリは5つの制御ビツトを
含む。どちらのキヤツシユ・デイレクトリも
その各項目が各サブセツトについて1つず
つ、合計2つの有効ビツト(VAおよびVB)
ならびに1つのLRUビツトを含む。その上、
データ・キヤツシユ・デイレクトリは各サブ
セツトについて1つずつ、合計2つの変更ビ
ツト(MAおよびMB)を含む(第3図を参
照のこと)。
毎に3つの制御ビツトを含み、データ・キヤ
ツシユ・デイレクトリは5つの制御ビツトを
含む。どちらのキヤツシユ・デイレクトリも
その各項目が各サブセツトについて1つず
つ、合計2つの有効ビツト(VAおよびVB)
ならびに1つのLRUビツトを含む。その上、
データ・キヤツシユ・デイレクトリは各サブ
セツトについて1つずつ、合計2つの変更ビ
ツト(MAおよびMB)を含む(第3図を参
照のこと)。
有効ビツトは、キヤツシユと主記憶装置の
内容の間の関係を制御するために使用され
る。それらは、キヤツシユのラインが現在主
記憶装置に存在するバージヨンによつて置換
されたとき、「1」にセツトされる。あるラ
インに対する有効なビツトは、プロセツサか
らのキヤツシユ管理命令によつてターンオフ
することができる。無効化された(V=0)
ラインをプログラムが参照すると、無効ライ
ンは主記憶装置中に存在するその現バージヨ
ンによつて置換させられる。
内容の間の関係を制御するために使用され
る。それらは、キヤツシユのラインが現在主
記憶装置に存在するバージヨンによつて置換
されたとき、「1」にセツトされる。あるラ
インに対する有効なビツトは、プロセツサか
らのキヤツシユ管理命令によつてターンオフ
することができる。無効化された(V=0)
ラインをプログラムが参照すると、無効ライ
ンは主記憶装置中に存在するその現バージヨ
ンによつて置換させられる。
LRUビツトは、どちらのサブセツトが主
記憶装置から置換ラインを受取るかを決定す
る。LRUビツトの状態は、キヤツシユ・ハ
ードウエア・プロシージヤによつて制御さ
れ、プロセツサがプログラム制御下で管理す
ることはできない。LRU置換プロシージヤ
は、キヤツシユのあるラインを主記憶装置か
らの新しいラインで置換することが必要にな
つたとき、従うべき有効な戦略は、最近もつ
とも使われなかつたアソシアテイブ・セツト
中のラインを置換することであるという前提
条件にもとづいている。キヤツシユは、正に
2ウエイ・セツト・アソシアテイブであるの
で、単一制御ビツトを開いてこの判断を下す
ことができる。
記憶装置から置換ラインを受取るかを決定す
る。LRUビツトの状態は、キヤツシユ・ハ
ードウエア・プロシージヤによつて制御さ
れ、プロセツサがプログラム制御下で管理す
ることはできない。LRU置換プロシージヤ
は、キヤツシユのあるラインを主記憶装置か
らの新しいラインで置換することが必要にな
つたとき、従うべき有効な戦略は、最近もつ
とも使われなかつたアソシアテイブ・セツト
中のラインを置換することであるという前提
条件にもとづいている。キヤツシユは、正に
2ウエイ・セツト・アソシアテイブであるの
で、単一制御ビツトを開いてこの判断を下す
ことができる。
データ・キヤツシユ・デイレクトリ中の変
更ビツトは、プロセツサ記憶命令が生じたと
き、「1」にセツトされる。これは、キヤツ
シユ中のラインのバージヨンが更新済みであ
ることをキヤツシユ制御ハードウエアに指示
し、このラインを置換すべき場合は主記憶装
置にそれを書戻さなければならない。しか
し、ラインが無効化(V=0)された場合に
は、書戻しは禁止される。命令キヤツシユで
は、書戻しは可能でないことを再度指摘して
おく。
更ビツトは、プロセツサ記憶命令が生じたと
き、「1」にセツトされる。これは、キヤツ
シユ中のラインのバージヨンが更新済みであ
ることをキヤツシユ制御ハードウエアに指示
し、このラインを置換すべき場合は主記憶装
置にそれを書戻さなければならない。しか
し、ラインが無効化(V=0)された場合に
は、書戻しは禁止される。命令キヤツシユで
は、書戻しは可能でないことを再度指摘して
おく。
(f) プロトタイプの実現
上記の記憶階層を、プロトタイプとして実現
した。主記憶装置は、サイクル時間が300ナノ
秒の1.0メガバイトのFET記憶装置を用いて設
計した。2重キヤツシユは、それぞれサイクル
時間がCPUのサイクル時間と符合する60ナノ
秒の16Kバイトのバイポーラ記憶装置を用いて
設計した。各キヤツシユは、2つのアソシアテ
イブ・セツトそれぞれに256本のライン、すな
わち最大限512本のラインを含んでいる。その
上、各キヤツシユの最大サイズを手動で8Kま
たは4Kバイトに減らすことができ、それによ
つて全体内容をそれぞれ256本または128本のラ
インに減らすことができる(第3図を参照のこ
と)。
した。主記憶装置は、サイクル時間が300ナノ
秒の1.0メガバイトのFET記憶装置を用いて設
計した。2重キヤツシユは、それぞれサイクル
時間がCPUのサイクル時間と符合する60ナノ
秒の16Kバイトのバイポーラ記憶装置を用いて
設計した。各キヤツシユは、2つのアソシアテ
イブ・セツトそれぞれに256本のライン、すな
わち最大限512本のラインを含んでいる。その
上、各キヤツシユの最大サイズを手動で8Kま
たは4Kバイトに減らすことができ、それによ
つて全体内容をそれぞれ256本または128本のラ
インに減らすことができる(第3図を参照のこ
と)。
(f‐1) 物理パツケージ
命令キヤツシユでもデータ・キヤツシユで
もキヤツシユ・アレイはバイポーラ・トラン
ジスタ記憶技術を利用して、4枚のカードに
パツケージした。各カードは2K×18ビツト
を含み、1キヤツシユ当りのカードは4枚で
あつた。ここで述べる実施例は例示のためだ
けのものである。かかるキヤツシユの一般構
造は当技術の専門家なら、ここに記載するア
ーキテクチヤ定義・制御機能および命令書式
から充分にわかると考えられる。
もキヤツシユ・アレイはバイポーラ・トラン
ジスタ記憶技術を利用して、4枚のカードに
パツケージした。各カードは2K×18ビツト
を含み、1キヤツシユ当りのカードは4枚で
あつた。ここで述べる実施例は例示のためだ
けのものである。かかるキヤツシユの一般構
造は当技術の専門家なら、ここに記載するア
ーキテクチヤ定義・制御機能および命令書式
から充分にわかると考えられる。
(g) キヤツシユ編成
CPUに対するキヤツシユ・インターフエー
スは、幅32ビツト(1ワード)であり、主記憶
装置に対するインターフエースは取出し用で幅
72ビツト(パリテイを含めた二重ワード)また
は記憶用で36ビツトである。初期取出しには目
的アドレスでAおよびBサブセツトに同時にア
クセスできることが望ましい。目的アドレスの
ワードを両方のアソシアテイブ・サブセツトか
ら同時に読取れると仮定すれば、様々なキヤツ
シユ記憶編成が可能である。
スは、幅32ビツト(1ワード)であり、主記憶
装置に対するインターフエースは取出し用で幅
72ビツト(パリテイを含めた二重ワード)また
は記憶用で36ビツトである。初期取出しには目
的アドレスでAおよびBサブセツトに同時にア
クセスできることが望ましい。目的アドレスの
ワードを両方のアソシアテイブ・サブセツトか
ら同時に読取れると仮定すれば、様々なキヤツ
シユ記憶編成が可能である。
そうするのは、キヤツシユ・サイクル中の後
の方でデイレクトリ・アクセスによつてその情
報が与えられるまでは、目的物が存在するサブ
セツトがわからないためである。この理由か
ら、また時間を節約するためにデイレクトリと
キヤツシユは同時にアクセスされる。
の方でデイレクトリ・アクセスによつてその情
報が与えられるまでは、目的物が存在するサブ
セツトがわからないためである。この理由か
ら、また時間を節約するためにデイレクトリと
キヤツシユは同時にアクセスされる。
デイレクトリ・アクセスでAとBのどちらの
サブセツトにも目的物が存在しないこと(ミ
ス)が示された場合、キヤツシユ・アクセスか
らのデータは無視され、目的データを含むライ
ンを求めて主記憶装置がアクセスされる。デー
タ・キヤツシユ・ミスの場合、現在キヤツシユ
中に存在するラインを主記憶装置からの新しい
ラインで置換する前に書戻することが必要にな
る場合もある。
サブセツトにも目的物が存在しないこと(ミ
ス)が示された場合、キヤツシユ・アクセスか
らのデータは無視され、目的データを含むライ
ンを求めて主記憶装置がアクセスされる。デー
タ・キヤツシユ・ミスの場合、現在キヤツシユ
中に存在するラインを主記憶装置からの新しい
ラインで置換する前に書戻することが必要にな
る場合もある。
目的ページ・アドレスがAまたはBのサブセ
ツトに対するデイレクトリ項目と符合する(ヒ
ツト)場合、正しいサブセツトが直ちに知ら
れ、キヤツシユからの目的データをヒツト・サ
ブセツトからCPUに直接ゲートすることがで
きる。この戦略を用いると、データをCPUに
送るのに必要な合計時間が最小限に抑えられ
る。
ツトに対するデイレクトリ項目と符合する(ヒ
ツト)場合、正しいサブセツトが直ちに知ら
れ、キヤツシユからの目的データをヒツト・サ
ブセツトからCPUに直接ゲートすることがで
きる。この戦略を用いると、データをCPUに
送るのに必要な合計時間が最小限に抑えられ
る。
キヤツシユ・ミスによる主記憶装置へのアク
セスは、32バイトのラインを生成し、そのライ
ンが連続する4つの二重ワードとしてキヤツシ
ユに多重化される。この記憶システム・アーキ
テクチヤはキヤツシユ・ミスの場合に目的ワー
ドを含む二重ワードが、まず記憶制御装置によ
つて返送されることを指定している。残りの3
つの二重ワードは、そのラインに含まれる4つ
の二重ワードがすべて返送されるまで、目的ア
ドレスを二重ワードずつ増分することによつて
生成される、順次隣接するアドレスから返送さ
れる。
セスは、32バイトのラインを生成し、そのライ
ンが連続する4つの二重ワードとしてキヤツシ
ユに多重化される。この記憶システム・アーキ
テクチヤはキヤツシユ・ミスの場合に目的ワー
ドを含む二重ワードが、まず記憶制御装置によ
つて返送されることを指定している。残りの3
つの二重ワードは、そのラインに含まれる4つ
の二重ワードがすべて返送されるまで、目的ア
ドレスを二重ワードずつ増分することによつて
生成される、順次隣接するアドレスから返送さ
れる。
この最初の二重ワードが常に目的ワードを含
むので、データ・キヤツシユ中ではCPUデー
タを主記憶装置からの最初の二重ワードに組み
合わせることによつて記憶ミスが処理される。
むので、データ・キヤツシユ中ではCPUデー
タを主記憶装置からの最初の二重ワードに組み
合わせることによつて記憶ミスが処理される。
(h) 命令キヤツシユの取出し
命令キヤツシユ取出しハードウエア操作順序
の流れ図が第13図に示され、第5図に表にし
てまとめられている。両キヤツシユのデータ流
れのブロツク・ダイアグラムが第2.1図に示
されている。
の流れ図が第13図に示され、第5図に表にし
てまとめられている。両キヤツシユのデータ流
れのブロツク・ダイアグラムが第2.1図に示
されている。
命令キヤツシユ取出し要求がキヤツシユ・ア
レイとデイレクトリへのアクセスを開始する。
デイレクトリ・アクセスはキヤツシユ・アクセ
スとオーバーラツプされている。両キヤツシユ
は取出しの目的ワードがAとBのどちらのサブ
セツトからも同時にアクセスされるように編成
されている。
レイとデイレクトリへのアクセスを開始する。
デイレクトリ・アクセスはキヤツシユ・アクセ
スとオーバーラツプされている。両キヤツシユ
は取出しの目的ワードがAとBのどちらのサブ
セツトからも同時にアクセスされるように編成
されている。
これはどちらのサブセツトに目的データが存
在するかを知らずに、あるいは目的物がどちら
のサブセツトにも全く存在しない場合にも行わ
れる。
在するかを知らずに、あるいは目的物がどちら
のサブセツトにも全く存在しない場合にも行わ
れる。
(h‐1) ヒツト
目的アドレスがAまたはBのサブセツトの
デイレクトリ項目と符合する場合そのデイレ
クトリへのアクセスはヒツトとなる。正しい
サブセツトが直ちに知られ、そのラインが有
効な場合には目的データをヒツト・サブセツ
トからCPUにゲートできる。キヤツシユ・
アレイへのアクセスに追加的時間は不要であ
る。そのデイレクトリ項目に対するLRUビ
ツトは、次に逆のサブセツトに切り替えられ
る。もちろんLRUが以前の操作の結果とし
て既に逆のサブセツトを示していることもあ
る。
デイレクトリ項目と符合する場合そのデイレ
クトリへのアクセスはヒツトとなる。正しい
サブセツトが直ちに知られ、そのラインが有
効な場合には目的データをヒツト・サブセツ
トからCPUにゲートできる。キヤツシユ・
アレイへのアクセスに追加的時間は不要であ
る。そのデイレクトリ項目に対するLRUビ
ツトは、次に逆のサブセツトに切り替えられ
る。もちろんLRUが以前の操作の結果とし
て既に逆のサブセツトを示していることもあ
る。
(h‐2) ミスまたは無効ヒツト
目的アドレスがAとBのどちらのサブセツ
トのデイレクトリ項目とも符合しない場合、
そのデイレクトリへのアクセスはミスとな
る。キヤツシユ・アレイからアクセスされた
データは無視され、取出し要求が(目的アド
レスと一緒に)主記憶装置へ転送され、主記
憶装置が32バイトのラインを4つの8バイト
二重ワードとして返送する。返送される最初
の二重ワードは(前述のように)目的アドレ
スによつて指示された特定の4バイト・ワー
ドを必ず含む。速度を上げるため、このワー
ドは二重ワードがキヤツシユに記憶される間
に同時にCPUへバイパスされる。このデー
タ経路が第2.1図にはつきり示されてい
る。次の3つの二重ワードは順次主記憶装置
から返送され、致着するとキヤツシユに記憶
される。
トのデイレクトリ項目とも符合しない場合、
そのデイレクトリへのアクセスはミスとな
る。キヤツシユ・アレイからアクセスされた
データは無視され、取出し要求が(目的アド
レスと一緒に)主記憶装置へ転送され、主記
憶装置が32バイトのラインを4つの8バイト
二重ワードとして返送する。返送される最初
の二重ワードは(前述のように)目的アドレ
スによつて指示された特定の4バイト・ワー
ドを必ず含む。速度を上げるため、このワー
ドは二重ワードがキヤツシユに記憶される間
に同時にCPUへバイパスされる。このデー
タ経路が第2.1図にはつきり示されてい
る。次の3つの二重ワードは順次主記憶装置
から返送され、致着するとキヤツシユに記憶
される。
主記憶装置によつて返送される、目的物を
含む最初の二重ワードが実際にはそのライン
の最後の二重ワードであることがあり得る。
この場合、そのラインの残りの3つの二重ワ
ードも、やはり順次返送されるが、ラインの
始めから始まる。このようにどの二重ワード
が最初に到着するかにかかわらず、他の3つ
の二重ワードが順次受取られる。
含む最初の二重ワードが実際にはそのライン
の最後の二重ワードであることがあり得る。
この場合、そのラインの残りの3つの二重ワ
ードも、やはり順次返送されるが、ラインの
始めから始まる。このようにどの二重ワード
が最初に到着するかにかかわらず、他の3つ
の二重ワードが順次受取られる。
また、主記憶装置から取出されるラインが
CPUに対する一連の命令をデータとして含
んでいることにも注意すべきである。CPU
は深さ4レベルの事前取出スタツクを含んで
いると仮定される。この事前取出しスタツク
は、自身を充填された状態に保とうと試みて
絶えず取出し要求を命令キヤツシユに送り、
それによつて各機械サイクルに全CPUアー
キテクチヤの要件にもとづいて新しい命令を
与える。命令キヤツシユ・ミスの場合は、こ
の事前取出レベルが2つ以上空になることも
あり得る。新しいラインが主記憶装置から到
着したとき、キヤツシユ・ラインの最後に達
するまで、またはCPU事前取出し機構が一
杯になつてバイパス・アクシヨンを停止する
まで、キヤツシユはデータをCPUにバイパ
スし続ける。こうしてCPUにバイパスされ
るワード数は、最低1ワードから最高でその
ライン中の8ワードすべてまでのどんな数と
なることもありうる。
CPUに対する一連の命令をデータとして含
んでいることにも注意すべきである。CPU
は深さ4レベルの事前取出スタツクを含んで
いると仮定される。この事前取出しスタツク
は、自身を充填された状態に保とうと試みて
絶えず取出し要求を命令キヤツシユに送り、
それによつて各機械サイクルに全CPUアー
キテクチヤの要件にもとづいて新しい命令を
与える。命令キヤツシユ・ミスの場合は、こ
の事前取出レベルが2つ以上空になることも
あり得る。新しいラインが主記憶装置から到
着したとき、キヤツシユ・ラインの最後に達
するまで、またはCPU事前取出し機構が一
杯になつてバイパス・アクシヨンを停止する
まで、キヤツシユはデータをCPUにバイパ
スし続ける。こうしてCPUにバイパスされ
るワード数は、最低1ワードから最高でその
ライン中の8ワードすべてまでのどんな数と
なることもありうる。
(h‐3) デイレクトリの更新
ミスの後、デイレクトリは新しい目的アド
レス(Pt)で更新され、新しいラインが記
憶されたサブセツトに対する有効ビツトが
「1」にセツトされ、LRUビツトは逆のサブ
セツトに切り替えられる。
レス(Pt)で更新され、新しいラインが記
憶されたサブセツトに対する有効ビツトが
「1」にセツトされ、LRUビツトは逆のサブ
セツトに切り替えられる。
目的アドレスが無効な(V=0)デイレク
トリ項目と符合した場合、その結果は、無効
ヒツトであり、ハードウエア・アクシヨンは
下記の2点を除いてはミスが発生した場合と
同じである。第1にLRUビツトの状態とは
かかわりなく、新しいラインが符合したサブ
セツトに入り、第2にデイレクトリ中のアド
レスは更新されない。これはアドレスは有効
符合を生じたが、データは無効で置換しなけ
ればならないからである。新しいラインのロ
ードに続いて、デイレクトリLRUビツトは
逆のサブセツトに切り替えられ、記憶された
サブセツトに対する有効ビツトが(「1」に)
セツトオンされる。この場合も、「有効」ビ
ツト(VAまたはVB)がゼロになり得る唯
一の経路は、「命令キヤツシユ・ライン無効
化」命令を用いてCPUを介するものである
ことに注意すべきである。
トリ項目と符合した場合、その結果は、無効
ヒツトであり、ハードウエア・アクシヨンは
下記の2点を除いてはミスが発生した場合と
同じである。第1にLRUビツトの状態とは
かかわりなく、新しいラインが符合したサブ
セツトに入り、第2にデイレクトリ中のアド
レスは更新されない。これはアドレスは有効
符合を生じたが、データは無効で置換しなけ
ればならないからである。新しいラインのロ
ードに続いて、デイレクトリLRUビツトは
逆のサブセツトに切り替えられ、記憶された
サブセツトに対する有効ビツトが(「1」に)
セツトオンされる。この場合も、「有効」ビ
ツト(VAまたはVB)がゼロになり得る唯
一の経路は、「命令キヤツシユ・ライン無効
化」命令を用いてCPUを介するものである
ことに注意すべきである。
第5図は上述のこの命令キヤツシユ取出し
ハードウエア順序をまとめたものである。
ハードウエア順序をまとめたものである。
(i) データ・キヤツシユ取出し
データ・キヤツシユ取出しハードウエアの操
作順序が第14図に示され、第6図にまとめら
れている。全体のデータ流れ図は第2.1図に
出ている。
作順序が第14図に示され、第6図にまとめら
れている。全体のデータ流れ図は第2.1図に
出ている。
(i‐1) ヒツト
有効ヒツトに対するデータ・キヤツシユ取
出しプロシージヤは、上記命令キヤツシユ取
出しプロシージヤと同一であり、繰返す必要
はない。
出しプロシージヤは、上記命令キヤツシユ取
出しプロシージヤと同一であり、繰返す必要
はない。
(i‐2) ミスまたは無効ヒツト
ミスまたは無効ヒツトの場合のデータ・キ
ヤツシユ取出し操作順序は、2つの例外を除
いては上記の命令キヤツシユ取出し順序と類
似している。
ヤツシユ取出し操作順序は、2つの例外を除
いては上記の命令キヤツシユ取出し順序と類
似している。
第1にミスのとき、CPU記憶装置によつ
て変更されている有効ラインをそれが置換さ
れる前に主記憶装置に書き戻さなければなら
ない。第2にミスが生じると、8つまでのワ
ードをCPU事前取出しスタツクにバイパス
できる命令キヤツシユとは違つて、データ・
キヤツシユはミスのとき1ワードしかCPU
にバイパスしない。
て変更されている有効ラインをそれが置換さ
れる前に主記憶装置に書き戻さなければなら
ない。第2にミスが生じると、8つまでのワ
ードをCPU事前取出しスタツクにバイパス
できる命令キヤツシユとは違つて、データ・
キヤツシユはミスのとき1ワードしかCPU
にバイパスしない。
取出しミスが起こつたとき、変更ビツトお
よび有効ビツトについて置換すべきラインが
チエツクされる。AとBのどちらのサブセツ
トを置換すべきかは、LRUビツトによつて
決定される。そのラインが無効または変更さ
れていない場合には、書戻しは起こらず、目
的ラインに対する取出し要求が主記憶装置に
送られる。主記憶装置によつて返送されたラ
インの最初の二重ワードは、目的ワードを含
み、最初の二重ワードがキヤツシユに記憶さ
れている間に同時にキヤツシユ・ハードウエ
アがこのワードをストリツプアウトして、そ
れをCPUに直接バイパスする。新しいライ
ンの記憶に続いて、命令キヤツシユ取出しに
ついて説明したようにデイレクトリは更新さ
れる。
よび有効ビツトについて置換すべきラインが
チエツクされる。AとBのどちらのサブセツ
トを置換すべきかは、LRUビツトによつて
決定される。そのラインが無効または変更さ
れていない場合には、書戻しは起こらず、目
的ラインに対する取出し要求が主記憶装置に
送られる。主記憶装置によつて返送されたラ
インの最初の二重ワードは、目的ワードを含
み、最初の二重ワードがキヤツシユに記憶さ
れている間に同時にキヤツシユ・ハードウエ
アがこのワードをストリツプアウトして、そ
れをCPUに直接バイパスする。新しいライ
ンの記憶に続いて、命令キヤツシユ取出しに
ついて説明したようにデイレクトリは更新さ
れる。
(i‐3) 書戻し
置換すべきラインが有効でかつ変更済みの
場合、その置換ラインについて取出し要求が
出される前にそれを主記憶装置に書戻さなけ
ればならない。書戻すべきラインのページ・
アドレスはデイレクトリ項目に含まれ、その
アドレスが書戻しのため主記憶装置に供給さ
れる。キヤツシユは書戻しラインの4つの二
重ワードを読出すのに4サイクルかかり、マ
ルチプレクサ52がそれらを一連の8ワード
に分けて主記憶装置の記憶入力レジスタ
(SIR)に転送する(第2.1図を参照のこ
と)。
場合、その置換ラインについて取出し要求が
出される前にそれを主記憶装置に書戻さなけ
ればならない。書戻すべきラインのページ・
アドレスはデイレクトリ項目に含まれ、その
アドレスが書戻しのため主記憶装置に供給さ
れる。キヤツシユは書戻しラインの4つの二
重ワードを読出すのに4サイクルかかり、マ
ルチプレクサ52がそれらを一連の8ワード
に分けて主記憶装置の記憶入力レジスタ
(SIR)に転送する(第2.1図を参照のこ
と)。
通常の場合、入出力が書戻しと新しいライ
ンに対する取出し要求の発行との間に主記憶
装置に対するアクセスを得、それによつて入
出力操作時にデータ・キヤツシユを停止させ
ることが起こり得る。これが起こることを防
止するため、特に書戻しを伴うデータ・キヤ
ツシユ・ミスの場合には、データ・キヤツシ
ユから特に高い優先順位の取出し要求を主記
憶装置に出すことができる。この高い優先順
位の要求の効果は、旧(書戻し)ラインを
SIR中にロードしながら主記憶装置に新しい
ラインの自動取出しを開始させることであ
る。これによつてデータ・キヤツシユ専用の
バツク・ツー・バツク主記憶装置サイクルが
もたらされ、旧ラインの記憶前に主記憶装置
の新しいラインに対する取出しが起こること
ができるようになる。旧ラインは一時的に
SIRに保管される。
ンに対する取出し要求の発行との間に主記憶
装置に対するアクセスを得、それによつて入
出力操作時にデータ・キヤツシユを停止させ
ることが起こり得る。これが起こることを防
止するため、特に書戻しを伴うデータ・キヤ
ツシユ・ミスの場合には、データ・キヤツシ
ユから特に高い優先順位の取出し要求を主記
憶装置に出すことができる。この高い優先順
位の要求の効果は、旧(書戻し)ラインを
SIR中にロードしながら主記憶装置に新しい
ラインの自動取出しを開始させることであ
る。これによつてデータ・キヤツシユ専用の
バツク・ツー・バツク主記憶装置サイクルが
もたらされ、旧ラインの記憶前に主記憶装置
の新しいラインに対する取出しが起こること
ができるようになる。旧ラインは一時的に
SIRに保管される。
この戦略を具体化するため、データ・キヤ
ツシユが書戻すべきラインの最初の二重ワー
ドについてアクセスされ、データ・キヤツシ
ユ制御装置に書戻しアドレス、最初の書戻し
ワードおよび高い優先順位の要求を送る。主
記憶装置が要求の受取りを認めると、デー
タ・キヤツシユはただちに旧ラインの残りの
3つの二重ワードの取出しを始め、主記憶装
置へのアドレスを旧(書戻し)アドレスから
新(目的)アドレスに変更する。書戻しライ
ンは一度に1ワードずつ主記憶装置SIRに転
送される。主記憶装置が新しいライン・デー
タを返送すると、データ・キヤツシユで一連
の4つの二重ワードの記憶が開始され、目的
データがCPUにバイパスされる。次に、デ
イレクトリ情報が更新される。
ツシユが書戻すべきラインの最初の二重ワー
ドについてアクセスされ、データ・キヤツシ
ユ制御装置に書戻しアドレス、最初の書戻し
ワードおよび高い優先順位の要求を送る。主
記憶装置が要求の受取りを認めると、デー
タ・キヤツシユはただちに旧ラインの残りの
3つの二重ワードの取出しを始め、主記憶装
置へのアドレスを旧(書戻し)アドレスから
新(目的)アドレスに変更する。書戻しライ
ンは一度に1ワードずつ主記憶装置SIRに転
送される。主記憶装置が新しいライン・デー
タを返送すると、データ・キヤツシユで一連
の4つの二重ワードの記憶が開始され、目的
データがCPUにバイパスされる。次に、デ
イレクトリ情報が更新される。
第6図は先に述べたようにデータ・キヤツ
シユ取出しハードウエアの操作順序をまとめ
たものであり、第14図は操作の順次的詳細
を流れ図の形で示したものである。
シユ取出しハードウエアの操作順序をまとめ
たものであり、第14図は操作の順次的詳細
を流れ図の形で示したものである。
(j) データ・キヤツシユ記憶
データ・キヤツシユ記憶ハードウエアの操作
順序の流れ図が第15図に示してあり、第7図
にまとめてある。データ流れ図については、や
はり第2.1図を参照すべきである。
順序の流れ図が第15図に示してあり、第7図
にまとめてある。データ流れ図については、や
はり第2.1図を参照すべきである。
第14図と第15図の流れ図をちよつと比較
してみると、データ・キヤツシユ取出し、記憶
アルゴリズムは全く類似していることがわか
る。主な違いは、単にCPUとキヤツシユの間
のデータ流れの方向である。下記の記憶プロセ
スについての議論は、取出しプロセスをよく知
つていることを前提にしたもので、この2つの
違いを重点に置いている。
してみると、データ・キヤツシユ取出し、記憶
アルゴリズムは全く類似していることがわか
る。主な違いは、単にCPUとキヤツシユの間
のデータ流れの方向である。下記の記憶プロセ
スについての議論は、取出しプロセスをよく知
つていることを前提にしたもので、この2つの
違いを重点に置いている。
取出し要求とは違つて、データ・キヤツシユ
に対する記憶要求はキヤツシユ・アレイのアク
セスを自動的には開始しない。キヤツシユ・ア
レイの両サブセツトは取出し操作から同時に読
取ることができるが、記憶操作の場合は1つの
サブセツトしか書込めない。従つてデイレクト
リ・アクセスの結果が、目的物がキヤツシユ中
に存在するか否か、および存在する場合はどの
サブセツトに存在するかを示すまで記憶操作は
開始できない。キヤツシユ・アレイへのアクセ
スは、取出し操作の場合のようにデイレクトリ
へのアクセスとオーバーラツプできないので、
すべての記憶操作にはキヤツシユ・サイクルを
拡大することが必要である。必要とされるデイ
レクトリおよびキヤツシユ・アレイへの順次ア
クセスを収容するには、記憶サイクルを50%だ
け拡大しなければならない。
に対する記憶要求はキヤツシユ・アレイのアク
セスを自動的には開始しない。キヤツシユ・ア
レイの両サブセツトは取出し操作から同時に読
取ることができるが、記憶操作の場合は1つの
サブセツトしか書込めない。従つてデイレクト
リ・アクセスの結果が、目的物がキヤツシユ中
に存在するか否か、および存在する場合はどの
サブセツトに存在するかを示すまで記憶操作は
開始できない。キヤツシユ・アレイへのアクセ
スは、取出し操作の場合のようにデイレクトリ
へのアクセスとオーバーラツプできないので、
すべての記憶操作にはキヤツシユ・サイクルを
拡大することが必要である。必要とされるデイ
レクトリおよびキヤツシユ・アレイへの順次ア
クセスを収容するには、記憶サイクルを50%だ
け拡大しなければならない。
記憶装置は32ビツト・ワードの列として編成
される。各ワードは2つの16ビツト半ワードま
たは4つの8ビツト文字に再分割できる。プロ
セツサ記憶命令は、1、2または3文字のエン
テイテイに対して働く。この3種のプロセツサ
記憶は、キヤツシユ・ハードウエアによつて記
憶8(1バイト)、記憶16(2バイト)および記
憶24(3バイト)の3つの異なる記憶指令とし
て区別される。第14図のデータ・キヤツシユ
記憶の流れ図は、この3つの記憶指令のすべて
に適用される。CPUは各記憶指令と共に32ビ
ツトのデータ・ワードを供給し、書込むべきバ
イトをワード内で事前位置合わせする。記憶目
的アドレスの最下位2ビツト+特定型式の記憶
指令が4つのバイト書込みゲート(第2.1図
の50)(W0〜W3)のうちのどれが活動化する
かを決定するのに充分な情報データ・キヤツシ
ユ制御ハードウエアに与える。
される。各ワードは2つの16ビツト半ワードま
たは4つの8ビツト文字に再分割できる。プロ
セツサ記憶命令は、1、2または3文字のエン
テイテイに対して働く。この3種のプロセツサ
記憶は、キヤツシユ・ハードウエアによつて記
憶8(1バイト)、記憶16(2バイト)および記
憶24(3バイト)の3つの異なる記憶指令とし
て区別される。第14図のデータ・キヤツシユ
記憶の流れ図は、この3つの記憶指令のすべて
に適用される。CPUは各記憶指令と共に32ビ
ツトのデータ・ワードを供給し、書込むべきバ
イトをワード内で事前位置合わせする。記憶目
的アドレスの最下位2ビツト+特定型式の記憶
指令が4つのバイト書込みゲート(第2.1図
の50)(W0〜W3)のうちのどれが活動化する
かを決定するのに充分な情報データ・キヤツシ
ユ制御ハードウエアに与える。
(j‐1) ヒツト
記憶目的アドレスがデイレクトリに存在す
る場合、書込むべきサブセツトが識別され、
キヤツユ・サイクルがその記憶を収容できる
ように拡大される。32ビツトの記憶データ・
ワード+生成されたパリテイ(4ビツト)
が、全てのアレイ・カードに同時に印加され
る。バイト書込みゲートのサブセツト選択交
差が、どのバイトが書込まれるかを決定す
る。記憶に続いて、ヒツト・ラインに対する
変更ビツトをターンオンしLRUビツトを逆
のサブセツトに切替えることによつてデイレ
クトリが更新される。
る場合、書込むべきサブセツトが識別され、
キヤツユ・サイクルがその記憶を収容できる
ように拡大される。32ビツトの記憶データ・
ワード+生成されたパリテイ(4ビツト)
が、全てのアレイ・カードに同時に印加され
る。バイト書込みゲートのサブセツト選択交
差が、どのバイトが書込まれるかを決定す
る。記憶に続いて、ヒツト・ラインに対する
変更ビツトをターンオンしLRUビツトを逆
のサブセツトに切替えることによつてデイレ
クトリが更新される。
(j‐2) ミスまたは無効ヒツト
記憶目的ラインが無効またはキヤツシユ中
にない場合、キヤツシユ・サイクルは拡大さ
れず、そのラインを主記憶装置から検索しな
ければならない。置換すべきラインが有効で
かつ変更済みの場合、書戻しが必要であり、
データ・キヤツシユ取出しについて説明した
のと全く同様に書戻し機構が動作する。
にない場合、キヤツシユ・サイクルは拡大さ
れず、そのラインを主記憶装置から検索しな
ければならない。置換すべきラインが有効で
かつ変更済みの場合、書戻しが必要であり、
データ・キヤツシユ取出しについて説明した
のと全く同様に書戻し機構が動作する。
データ・キヤツシユは8バイト二重ワード
のどこにでもバイトを挿入できる、入力バイ
トマルチプレクサ48(第2.1図を参照の
こと)を備えている。ミスがあるとこのマル
チプレクサがセツトアツプされて、CPUか
らのデータを主記憶装置によつて返送された
取出しデータに組合わせる。この記憶の目的
物は、主記憶装置によつて返送されるライ
ン・データの最初の二重ワードに含まれるの
で、CPUデータの組合わせは4つの二重ワ
ードのうちの最初のものがキヤツシユに記憶
されたときしか起こらない。後の3つの二重
ワードおよびCPUによつて選択されなかつ
た最初の二重ワードのすべてのバイトは、入
力マルチプレクサによつて主記憶装置取出し
データ経路に切り換えられる。4つの二重ワ
ード記憶中にすべてのバイト書込みゲートは
ターンオンされ、1つのサブセツトが選択さ
れる。従つてこの記憶によつて変更されるバ
イトは専ら入力マルチプレクサとサブセツト
選択によつて制御される。
のどこにでもバイトを挿入できる、入力バイ
トマルチプレクサ48(第2.1図を参照の
こと)を備えている。ミスがあるとこのマル
チプレクサがセツトアツプされて、CPUか
らのデータを主記憶装置によつて返送された
取出しデータに組合わせる。この記憶の目的
物は、主記憶装置によつて返送されるライ
ン・データの最初の二重ワードに含まれるの
で、CPUデータの組合わせは4つの二重ワ
ードのうちの最初のものがキヤツシユに記憶
されたときしか起こらない。後の3つの二重
ワードおよびCPUによつて選択されなかつ
た最初の二重ワードのすべてのバイトは、入
力マルチプレクサによつて主記憶装置取出し
データ経路に切り換えられる。4つの二重ワ
ード記憶中にすべてのバイト書込みゲートは
ターンオンされ、1つのサブセツトが選択さ
れる。従つてこの記憶によつて変更されるバ
イトは専ら入力マルチプレクサとサブセツト
選択によつて制御される。
記憶ミス(または無効ヒツト)に続いて置
換ラインがその記憶を受取つた場合に変更ビ
ツトがターンオンされる点を除いては、命令
キヤツシユ取出しやデータ・キヤツシユ取出
しの場合と同様に、デイレクトリが更新され
る。
換ラインがその記憶を受取つた場合に変更ビ
ツトがターンオンされる点を除いては、命令
キヤツシユ取出しやデータ・キヤツシユ取出
しの場合と同様に、デイレクトリが更新され
る。
第7図はデータ・キヤツシユ記憶ハードウ
エア・プロシージヤをまとめたものである。
エア・プロシージヤをまとめたものである。
(k) キヤツシユ・ライン無効化
両方のキヤツシユに適用されるハードウエア
無効化操作順序の流れ図は、第12図にみら
れ、第8図にまとめられている。
無効化操作順序の流れ図は、第12図にみら
れ、第8図にまとめられている。
(第2.1図および第2.2図に示す)命令
キヤツシユ制御ハードウエアは、プロセツサか
らの1つのキヤツシユ管理命令に応答するよう
に設計されている。この命令は、命令キヤツシ
ユ・ライン無効化(INICL)と呼ばれ、その目
的はデイレクトリの有効ビツトを目的アドレス
によつて識別されるラインに対してゼロにセツ
トすることである。命令が主記憶装置中で変更
された場合、更新された情報を求めてキヤツシ
ユが主記憶装置にアクセスするように、ライン
を無効化しなければならない。データ・キヤツ
シユは、同じやり方でデータ・キヤツシユ・ラ
イン無効化(INDCI)キヤツシユ管理命令に
応答する。この管理命令に関係するのはデイレ
クトリだけなので、キヤツシユ・アレイはアク
セスされない。
キヤツシユ制御ハードウエアは、プロセツサか
らの1つのキヤツシユ管理命令に応答するよう
に設計されている。この命令は、命令キヤツシ
ユ・ライン無効化(INICL)と呼ばれ、その目
的はデイレクトリの有効ビツトを目的アドレス
によつて識別されるラインに対してゼロにセツ
トすることである。命令が主記憶装置中で変更
された場合、更新された情報を求めてキヤツシ
ユが主記憶装置にアクセスするように、ライン
を無効化しなければならない。データ・キヤツ
シユは、同じやり方でデータ・キヤツシユ・ラ
イン無効化(INDCI)キヤツシユ管理命令に
応答する。この管理命令に関係するのはデイレ
クトリだけなので、キヤツシユ・アレイはアク
セスされない。
目的アドレスは、キヤツシユ・サブセツトA
またはBのどちらかに存在し得るが、両方に存
在することはない、単一ラインのみを識別する
ことに注意すべきである。従つて、目的アドレ
スに対するデイレクトリ項目の2つの有効ビツ
トのうちの1つのみが影響を受ける。すなわ
ち、VaまたはVbが影響を受ける。
またはBのどちらかに存在し得るが、両方に存
在することはない、単一ラインのみを識別する
ことに注意すべきである。従つて、目的アドレ
スに対するデイレクトリ項目の2つの有効ビツ
トのうちの1つのみが影響を受ける。すなわ
ち、VaまたはVbが影響を受ける。
無効化命令は、プログラムがキヤツシユ中の
ラインを主記憶装置からの最も最近のバージヨ
ンで置換できるようにする。LRUビツトは、
ハードウエアによつて無効化ラインを含むサブ
セツトを指すように強いられ、従つて、置換ラ
インがそのキヤツシユ位置に入る。
ラインを主記憶装置からの最も最近のバージヨ
ンで置換できるようにする。LRUビツトは、
ハードウエアによつて無効化ラインを含むサブ
セツトを指すように強いられ、従つて、置換ラ
インがそのキヤツシユ位置に入る。
目的物のページ・アドレス・サブフイールド
が、キヤツシユ・サブセツトAとBのいずれに
関するデイレクトリにも存在しないことがあり
得る。これは、キヤツシユ・ミスとして定義さ
れ、ハードウエア・プロシージヤによつて扱わ
れなければならない。どぢらかの(データまた
は命令)キヤツシユ・ライン無効化命令の場
合、ミスは、有効ビツトを変更する必要をなく
し、ハードウエアは単に何もしないだけであ
る。
が、キヤツシユ・サブセツトAとBのいずれに
関するデイレクトリにも存在しないことがあり
得る。これは、キヤツシユ・ミスとして定義さ
れ、ハードウエア・プロシージヤによつて扱わ
れなければならない。どぢらかの(データまた
は命令)キヤツシユ・ライン無効化命令の場
合、ミスは、有効ビツトを変更する必要をなく
し、ハードウエアは単に何もしないだけであ
る。
第8図は、INICLおよびINDCLハートウエ
ア操作順序をまとめたものである。
ア操作順序をまとめたものである。
(l) データ・キヤツシユ・ライン・ロード
データ・キヤツシユ・ライン・ロード
(LDCL)キヤツシユ管理命令の流れ図は、第
16図にみることができ、第9図にまとめられ
ている。この命令の目的は、単に、あるライン
がキヤツシユ中にまだない場合には、それを主
記憶装置からキヤツシユにロードすることであ
る。
(LDCL)キヤツシユ管理命令の流れ図は、第
16図にみることができ、第9図にまとめられ
ている。この命令の目的は、単に、あるライン
がキヤツシユ中にまだない場合には、それを主
記憶装置からキヤツシユにロードすることであ
る。
(l‐1) ヒツト
そのラインがすでにキヤツシユ中にあり有
効な場合、ロードは起こらず、デイレクトリ
のLRUビツトが逆のサブセツトに切替えら
れる。
効な場合、ロードは起こらず、デイレクトリ
のLRUビツトが逆のサブセツトに切替えら
れる。
(l‐2) ミスまたは無効ヒツト
ミスないし無効ヒツトの場合、この命令は
データ・キヤツシユ取出しについて先に述べ
たのと同様の挙動を示す。不在ラインに対す
る取出し要求が、主記憶装置に転送される。
ミスがあり、置換すべきラインが有効でかつ
変更済みである場合、最初に書戻しが起こ
る。主記憶装置から返送されたラインはキヤ
ツシユ中にロードされるが、データがCPU
にバイパスされることはない。新しいライン
のロードに続いて、記憶されたサブセツトに
対する有効ビツトが「オン」に(すなわち
「0」に)セツトされ、LRUビツトが逆のサ
ブセツトに切替えられる。新しいラインがミ
スのためにロードされた場合、デイレクトリ
も新しいラインのページ・アドレスで更新さ
れる。
データ・キヤツシユ取出しについて先に述べ
たのと同様の挙動を示す。不在ラインに対す
る取出し要求が、主記憶装置に転送される。
ミスがあり、置換すべきラインが有効でかつ
変更済みである場合、最初に書戻しが起こ
る。主記憶装置から返送されたラインはキヤ
ツシユ中にロードされるが、データがCPU
にバイパスされることはない。新しいライン
のロードに続いて、記憶されたサブセツトに
対する有効ビツトが「オン」に(すなわち
「0」に)セツトされ、LRUビツトが逆のサ
ブセツトに切替えられる。新しいラインがミ
スのためにロードされた場合、デイレクトリ
も新しいラインのページ・アドレスで更新さ
れる。
第9図は、データ・キヤツシユ・ライン・
ロードのハードウエア・プロシージヤをまと
めたものである。
ロードのハードウエア・プロシージヤをまと
めたものである。
(m) データ・キヤツシユ・ライン・セツト
データ・キヤツシユ・ライン・セツト
(SETDCL)キヤツシユ管理命令は、第17図
にみることができ、第10図にまとめられてい
る。この命令の目的は、ラインに対するデイレ
クトリ項目がまだそこにない場合、それを確立
することであり、そのラインを主記憶装置から
キヤツシユ中にロードすることではない。これ
は、ラインをその後の記憶によつて変更すべき
場合に、主記憶装置からの不必要な取出しを防
止するために使用できる。
(SETDCL)キヤツシユ管理命令は、第17図
にみることができ、第10図にまとめられてい
る。この命令の目的は、ラインに対するデイレ
クトリ項目がまだそこにない場合、それを確立
することであり、そのラインを主記憶装置から
キヤツシユ中にロードすることではない。これ
は、ラインをその後の記憶によつて変更すべき
場合に、主記憶装置からの不必要な取出しを防
止するために使用できる。
(m‐1) ヒツト
ラインがキヤツシユ中に既に存在する場
合、有効ビツトを「オン」にセツトし、変更
ビツトを「オフ」にセツトすることによつ
て、そのデイレクトリ項目が更新される。
合、有効ビツトを「オン」にセツトし、変更
ビツトを「オフ」にセツトすることによつ
て、そのデイレクトリ項目が更新される。
(m‐2) ミス
ミスのとき、現在存在するラインが有効で
かつ変更済みである場合、この命令は書戻し
を強いる。(書戻しを伴うまたは伴わない)
ミスに続いて、デイレクトリは新しい目的ペ
ージ・アドレスで更新され、有効ビツトがオ
ンにセツトされ、変更ビツトはオフにセツト
され、LRUビツトは逆のサブセツトに切替
えられる。書戻しが必要でない限り、データ
転送は起こらない。
かつ変更済みである場合、この命令は書戻し
を強いる。(書戻しを伴うまたは伴わない)
ミスに続いて、デイレクトリは新しい目的ペ
ージ・アドレスで更新され、有効ビツトがオ
ンにセツトされ、変更ビツトはオフにセツト
され、LRUビツトは逆のサブセツトに切替
えられる。書戻しが必要でない限り、データ
転送は起こらない。
第10図はデータ・キヤツシユ・ライン・
セツトのハードウエア操作順序をまとめたも
のである。
セツトのハードウエア操作順序をまとめたも
のである。
(n) データ・キヤツシユ・ライン記憶
データ・キヤツシユ・ライン記憶
(STDCL)キヤツシユ管理命令の流れ図は、
第18図に詳しくみることができ、第11図に
まとめられている。この命令の目的は、有効で
かつ変更済みであるラインを書戻させて、主記
憶装置がラインの最近のバージヨンを反映する
ようにすることである。明らかなように、デー
タ・キヤツシユ・ラインのこの記憶は、正常な
「取出し」または「記憶」操作の結果ではない。
(STDCL)キヤツシユ管理命令の流れ図は、
第18図に詳しくみることができ、第11図に
まとめられている。この命令の目的は、有効で
かつ変更済みであるラインを書戻させて、主記
憶装置がラインの最近のバージヨンを反映する
ようにすることである。明らかなように、デー
タ・キヤツシユ・ラインのこの記憶は、正常な
「取出し」または「記憶」操作の結果ではない。
(n‐1) ヒツト
ラインがキヤツシユ中にあり、有効でかつ
変更済みである場合、書戻しが起こり、変更
ビツトをオフにすることによつてデイレクト
リは更新される。ラインは将来使用できるよ
うになおキヤツシユに保持される。
変更済みである場合、書戻しが起こり、変更
ビツトをオフにすることによつてデイレクト
リは更新される。ラインは将来使用できるよ
うになおキヤツシユに保持される。
(n‐2) ミスまたは無効ヒツト
ラインがキキヤツシユ中にない場合、また
はキヤツシユ中に存在するが有効でないかま
たは変更済みでない場合、ハードウアは書戻
しを実施せず、プロシージヤから出る。
はキヤツシユ中に存在するが有効でないかま
たは変更済みでない場合、ハードウアは書戻
しを実施せず、プロシージヤから出る。
この命令は、主記憶装置に書戻されるライ
ンが、次の入出力命令または命令キヤツシ
ユ・ミスに使用できる時間には完了できない
ことに注意すること。この命令の特別の同期
バージヨンがこの目的に使用できるが、それ
ついては後述する。
ンが、次の入出力命令または命令キヤツシ
ユ・ミスに使用できる時間には完了できない
ことに注意すること。この命令の特別の同期
バージヨンがこの目的に使用できるが、それ
ついては後述する。
第11図は、データ・キヤツシユ・ライン
記憶ハードウエア操作順序をまとめたもので
ある。
記憶ハードウエア操作順序をまとめたもので
ある。
(o) データ・キヤツシユ・ライン記憶・同期化
この命令(STSDCL)は、キヤツシユ中で
上述のデータ・キヤツシユ・ライン記憶
(STDCL)と全く同様に動作する。しかし、
プロセツサは、命令ストリームに進む前に、こ
の命令が完了するまで待つ。従つて、この命令
の実行後に起こる入出力活動または命令キヤツ
シユ活動は主記憶装置で利用可能なラインの最
新バージヨンをもつことになる。
上述のデータ・キヤツシユ・ライン記憶
(STDCL)と全く同様に動作する。しかし、
プロセツサは、命令ストリームに進む前に、こ
の命令が完了するまで待つ。従つて、この命令
の実行後に起こる入出力活動または命令キヤツ
シユ活動は主記憶装置で利用可能なラインの最
新バージヨンをもつことになる。
結論
以上要約すると、ここで開示したキヤツシユ・
サブシステム・アーキテクチヤは、記憶装置への
参照によつて生じるCPU遊休時間を最小限に抑
えることができるので、ユニークである。多数の
特殊なキヤツシユ管理命令とキヤツシユ・デイレ
クトリ中のいくつかの特別な制御ビツトとを独特
のやり方で使用してかかる主記憶装置への参照を
最小限にすることができるのが新規な点である。
サブシステム・アーキテクチヤは、記憶装置への
参照によつて生じるCPU遊休時間を最小限に抑
えることができるので、ユニークである。多数の
特殊なキヤツシユ管理命令とキヤツシユ・デイレ
クトリ中のいくつかの特別な制御ビツトとを独特
のやり方で使用してかかる主記憶装置への参照を
最小限にすることができるのが新規な点である。
これらのキヤツシユ管理命令およびデイレクト
リ制御ビツトは、ソフトウエアがキヤツシユ・サ
ブシステムの内容と主記憶装置の内容の関係を制
御できるようにする。この能力のため、有効キヤ
ツシユ・ヒツト率が改善され、それによつてシス
テムがより低速の主記憶装置を不必要に参照する
ことを避けることができる。
リ制御ビツトは、ソフトウエアがキヤツシユ・サ
ブシステムの内容と主記憶装置の内容の関係を制
御できるようにする。この能力のため、有効キヤ
ツシユ・ヒツト率が改善され、それによつてシス
テムがより低速の主記憶装置を不必要に参照する
ことを避けることができる。
その上、このキヤツシユ・サブシステムのアー
キテクチヤは、主記憶装置への参照が避けられな
い場合にアクセス時間を改善できる点が新規であ
る。この能力は、命令とデータに対して、独立に
オーバーラツプして、主記憶にアクセスできる別
個のキヤツシユを使用するという独特のやり方お
よび主記憶装置からCPUへの目的情報の流れを
スピードアツプするためのキヤツシユ・バイパス
機構の使用によつて生じたものである。
キテクチヤは、主記憶装置への参照が避けられな
い場合にアクセス時間を改善できる点が新規であ
る。この能力は、命令とデータに対して、独立に
オーバーラツプして、主記憶にアクセスできる別
個のキヤツシユを使用するという独特のやり方お
よび主記憶装置からCPUへの目的情報の流れを
スピードアツプするためのキヤツシユ・バイパス
機構の使用によつて生じたものである。
命令取出しを記憶階層中でデータ取出しとは独
立に進行させることが可能なこと、CPUから主
記憶装置への自動的「ストア・スルー」を禁止し
たこと、およびキヤツシユ・ハードウエアによつ
て処理される特別のキヤツシユ管理命令のソフト
ウエアを使用することがあいまつて、ハードウエ
アとソフトウエアの機能が新規なやり方で調和し
て相互作用できうにすることによつて、システム
のパフオーマンスが改善される。
立に進行させることが可能なこと、CPUから主
記憶装置への自動的「ストア・スルー」を禁止し
たこと、およびキヤツシユ・ハードウエアによつ
て処理される特別のキヤツシユ管理命令のソフト
ウエアを使用することがあいまつて、ハードウエ
アとソフトウエアの機能が新規なやり方で調和し
て相互作用できうにすることによつて、システム
のパフオーマンスが改善される。
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/US1982/001830 WO1984002799A1 (en) | 1982-12-30 | 1982-12-30 | A hierarchical memory system including separate cache memories for storing data and instructions |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS60500187A JPS60500187A (ja) | 1985-02-07 |
| JPH0347540B2 true JPH0347540B2 (ja) | 1991-07-19 |
Family
ID=22168504
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP58500671A Granted JPS60500187A (ja) | 1982-12-30 | 1982-12-30 | データ処理システム |
Country Status (7)
| Country | Link |
|---|---|
| US (1) | US4719568A (ja) |
| EP (1) | EP0115036B1 (ja) |
| JP (1) | JPS60500187A (ja) |
| CA (1) | CA1199420A (ja) |
| DE (1) | DE3382179D1 (ja) |
| HK (1) | HK7695A (ja) |
| WO (1) | WO1984002799A1 (ja) |
Families Citing this family (96)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0630075B2 (ja) * | 1984-08-31 | 1994-04-20 | 株式会社日立製作所 | キャッシュメモリを有するデータ処理装置 |
| US4899275A (en) * | 1985-02-22 | 1990-02-06 | Intergraph Corporation | Cache-MMU system |
| US5206945A (en) * | 1985-03-15 | 1993-04-27 | Hitachi, Ltd. | Single-chip pipeline processor for fetching/flushing instruction/data caches in response to first/second hit/mishit signal respectively detected in corresponding to their logical addresses |
| JP2539357B2 (ja) * | 1985-03-15 | 1996-10-02 | 株式会社日立製作所 | デ−タ処理装置 |
| AU5634086A (en) * | 1985-05-06 | 1986-11-13 | Wang Laboratories, Inc. | Information processing system with enhanced instruction execution and support control |
| US5349672A (en) * | 1986-03-17 | 1994-09-20 | Hitachi, Ltd. | Data processor having logical address memories and purge capabilities |
| JPS62222344A (ja) * | 1986-03-25 | 1987-09-30 | Hitachi Ltd | アドレス変換機構 |
| US5010476A (en) * | 1986-06-20 | 1991-04-23 | International Business Machines Corporation | Time multiplexed system for tightly coupling pipelined processors to separate shared instruction and data storage units |
| US4992934A (en) * | 1986-12-15 | 1991-02-12 | United Technologies Corporation | Reduced instruction set computing apparatus and methods |
| GB2200483B (en) * | 1987-01-22 | 1991-10-16 | Nat Semiconductor Corp | Memory referencing in a high performance microprocessor |
| US5136692A (en) * | 1987-02-13 | 1992-08-04 | International Business Machines Corporation | Memory disk buffer manager |
| US5179689A (en) * | 1987-03-13 | 1993-01-12 | Texas Instruments Incorporated | Dataprocessing device with instruction cache |
| US4912636A (en) * | 1987-03-13 | 1990-03-27 | Magar Surendar S | Data processing device with multiple on chip memory buses |
| US4851993A (en) * | 1987-04-20 | 1989-07-25 | Amdahl Corporation | Cache move-in bypass |
| US5155833A (en) * | 1987-05-11 | 1992-10-13 | At&T Bell Laboratories | Multi-purpose cache memory selectively addressable either as a boot memory or as a cache memory |
| US5168560A (en) * | 1987-05-29 | 1992-12-01 | Amdahl Corporation | Microprocessor system private split cache tag stores with the system tag store having a different validity bit for the same data line |
| JPH0648461B2 (ja) * | 1987-07-09 | 1994-06-22 | 日本電気株式会社 | マイクロプログラムの転送レジスタ指定方式 |
| US4910656A (en) * | 1987-09-21 | 1990-03-20 | Motorola, Inc. | Bus master having selective burst initiation |
| US5157774A (en) * | 1987-09-28 | 1992-10-20 | Compaq Computer Corporation | System for fast selection of non-cacheable address ranges using programmed array logic |
| US5091850A (en) * | 1987-09-28 | 1992-02-25 | Compaq Computer Corporation | System for fast selection of non-cacheable address ranges using programmed array logic |
| US4980816A (en) * | 1987-12-18 | 1990-12-25 | Nec Corporation | Translation look-aside buffer control system with multiple prioritized buffers |
| US5553262B1 (en) * | 1988-01-21 | 1999-07-06 | Mitsubishi Electric Corp | Memory apparatus and method capable of setting attribute of information to be cached |
| JP2617974B2 (ja) * | 1988-03-08 | 1997-06-11 | 富士通株式会社 | データ処理装置 |
| EP0424432B1 (en) * | 1988-07-04 | 1997-11-19 | Sun Microsystems, Inc. | Multiprocessor system including a hierarchical cache memory system |
| US5317716A (en) * | 1988-08-16 | 1994-05-31 | International Business Machines Corporation | Multiple caches using state information indicating if cache line was previously modified and type of access rights granted to assign access rights to cache line |
| US4905141A (en) * | 1988-10-25 | 1990-02-27 | International Business Machines Corporation | Partitioned cache memory with partition look-aside table (PLAT) for early partition assignment identification |
| US6092153A (en) * | 1988-11-14 | 2000-07-18 | Lass; Stanley Edwin | Subsettable top level cache |
| US5187793A (en) * | 1989-01-09 | 1993-02-16 | Intel Corporation | Processor with hierarchal memory and using meta-instructions for software control of loading, unloading and execution of machine instructions stored in the cache |
| JPH0680499B2 (ja) * | 1989-01-13 | 1994-10-12 | インターナショナル・ビジネス・マシーンズ・コーポレーション | マルチプロセッサ・システムのキャッシュ制御システムおよび方法 |
| EP0389175A3 (en) * | 1989-03-15 | 1992-11-19 | Fujitsu Limited | Data prefetch system |
| JPH0740247B2 (ja) * | 1989-06-20 | 1995-05-01 | 松下電器産業株式会社 | キャッシュメモリ装置 |
| US5155828A (en) * | 1989-07-05 | 1992-10-13 | Hewlett-Packard Company | Computing system with a cache memory and an additional look-aside cache memory |
| JPH0661068B2 (ja) * | 1989-07-18 | 1994-08-10 | 株式会社日立製作所 | 記憶再配置方法および階層化記憶システム |
| US7610452B1 (en) * | 1989-10-31 | 2009-10-27 | Canon Kabushiki Kaisha | Data processing system wherein data is stored in a memory and an external storage in parallel |
| US5307477A (en) * | 1989-12-01 | 1994-04-26 | Mips Computer Systems, Inc. | Two-level cache memory system |
| US5206941A (en) * | 1990-01-22 | 1993-04-27 | International Business Machines Corporation | Fast store-through cache memory |
| JPH0748190B2 (ja) * | 1990-01-22 | 1995-05-24 | 株式会社東芝 | キャッシュメモリ内蔵マイクロプロセッサ |
| US5467460A (en) * | 1990-02-14 | 1995-11-14 | Intel Corporation | M&A for minimizing data transfer to main memory from a writeback cache during a cache miss |
| US5014195A (en) * | 1990-05-10 | 1991-05-07 | Digital Equipment Corporation, Inc. | Configurable set associative cache with decoded data element enable lines |
| US5784711A (en) * | 1990-05-18 | 1998-07-21 | Philips Electronics North America Corporation | Data cache prefetching under control of instruction cache |
| EP0461923B1 (en) * | 1990-06-15 | 1997-10-01 | Compaq Computer Corporation | True least recently used replacement apparatus |
| US5276832A (en) * | 1990-06-19 | 1994-01-04 | Dell U.S.A., L.P. | Computer system having a selectable cache subsystem |
| FR2664719A1 (fr) * | 1990-07-10 | 1992-01-17 | Philips Electronique Lab | Dispositif de controle pour une memoire tampon a partitionnement reconfigurable. |
| JP2774862B2 (ja) * | 1990-07-16 | 1998-07-09 | 株式会社日立製作所 | Dma制御装置および情報処理装置 |
| DE69130967T2 (de) * | 1990-08-06 | 1999-10-21 | Ncr International, Inc. | Rechnerspeicheranordnung |
| US5530941A (en) * | 1990-08-06 | 1996-06-25 | Ncr Corporation | System and method for prefetching data from a main computer memory into a cache memory |
| EP0496439B1 (en) * | 1991-01-15 | 1998-01-21 | Koninklijke Philips Electronics N.V. | Computer system with multi-buffer data cache and method therefor |
| US5367659A (en) * | 1991-09-30 | 1994-11-22 | Intel Corporation | Tag initialization in a controller for two-way set associative cache |
| US5375216A (en) * | 1992-02-28 | 1994-12-20 | Motorola, Inc. | Apparatus and method for optimizing performance of a cache memory in a data processing system |
| DE4391002T1 (de) * | 1992-03-06 | 1995-02-23 | Rambus Inc | Vor-heranholen in einen Cache-Speicher zum minimieren der Hauptspeicherzugriffszeit und der Cache-Speichergröße in einen Computersystem |
| US5491811A (en) * | 1992-04-20 | 1996-02-13 | International Business Machines Corporation | Cache system using mask bits to recorder the sequences for transfers of data through cache to system memory |
| US5450563A (en) * | 1992-10-30 | 1995-09-12 | International Business Machines Corporation | Storage protection keys in two level cache system |
| EP0624844A2 (en) * | 1993-05-11 | 1994-11-17 | International Business Machines Corporation | Fully integrated cache architecture |
| US5809525A (en) * | 1993-09-17 | 1998-09-15 | International Business Machines Corporation | Multi-level computer cache system providing plural cache controllers associated with memory address ranges and having cache directories |
| TW228580B (en) * | 1993-10-01 | 1994-08-21 | Ibm | Information processing system and method of operation |
| US5574883A (en) * | 1993-11-30 | 1996-11-12 | Unisys Corporation | Single chip processing unit providing immediate availability of frequently used microcode instruction words |
| US5634108A (en) * | 1993-11-30 | 1997-05-27 | Unisys Corporation | Single chip processing system utilizing general cache and microcode cache enabling simultaneous multiple functions |
| JP2634141B2 (ja) * | 1994-01-19 | 1997-07-23 | インターナショナル・ビジネス・マシーンズ・コーポレイション | マルチプロセッサ・システム |
| US5584007A (en) * | 1994-02-09 | 1996-12-10 | Ballard Synergy Corporation | Apparatus and method for discriminating among data to be stored in cache |
| JP3030229B2 (ja) * | 1994-06-20 | 2000-04-10 | インターナショナル・ビジネス・マシーンズ・コーポレイション | データを転送する方法及びデータ記憶システム |
| US5630056A (en) * | 1994-09-20 | 1997-05-13 | Stratus Computer, Inc. | Digital data processing methods and apparatus for fault detection and fault tolerance |
| JP3127796B2 (ja) * | 1994-10-07 | 2001-01-29 | 松下電器産業株式会社 | 情報記録再生装置 |
| US5732243A (en) * | 1994-10-18 | 1998-03-24 | Cyrix Corporation | Branch processing unit with target cache using low/high banking to support split prefetching |
| US5651134A (en) * | 1994-10-26 | 1997-07-22 | Ncr Corporation | Method for configuring a cache memory to store only data, only code, or code and data based on the operating characteristics of the application program |
| JP3132749B2 (ja) * | 1994-12-05 | 2001-02-05 | インターナショナル・ビジネス・マシーンズ・コーポレ−ション | マルチプロセッサ・データ処理システム |
| US5774685A (en) * | 1995-04-21 | 1998-06-30 | International Business Machines Corporation | Method and apparatus for biasing cache LRU for prefetched instructions/data based upon evaluation of speculative conditions |
| US5680571A (en) * | 1995-12-28 | 1997-10-21 | Unisys Corporation | Multi-processor data processing system with multiple, separate instruction and operand second level caches |
| US5737749A (en) * | 1996-05-20 | 1998-04-07 | International Business Machines Corporation | Method and system for dynamically sharing cache capacity in a microprocessor |
| US6134631A (en) * | 1996-08-19 | 2000-10-17 | Hyundai Electronics America, Inc. | Non-volatile memory with embedded programmable controller |
| US5875201A (en) * | 1996-12-30 | 1999-02-23 | Unisys Corporation | Second level cache having instruction cache parity error control |
| US5960455A (en) * | 1996-12-30 | 1999-09-28 | Unisys Corporation | Scalable cross bar type storage controller |
| US6122711A (en) | 1997-01-07 | 2000-09-19 | Unisys Corporation | Method of and apparatus for store-in second level cache flush |
| US5860093A (en) * | 1997-01-21 | 1999-01-12 | Unisys Corporation | Reduced instruction processor/storage controller interface |
| US6401167B1 (en) | 1997-10-10 | 2002-06-04 | Rambus Incorporated | High performance cost optimized memory |
| GB9723654D0 (en) * | 1997-11-10 | 1998-01-07 | Philips Electronics Nv | Distributed database access via virtual environment browser |
| US6609174B1 (en) * | 1999-10-19 | 2003-08-19 | Motorola, Inc. | Embedded MRAMs including dual read ports |
| US6802022B1 (en) | 2000-04-14 | 2004-10-05 | Stratus Technologies Bermuda Ltd. | Maintenance of consistent, redundant mass storage images |
| US6862689B2 (en) | 2001-04-12 | 2005-03-01 | Stratus Technologies Bermuda Ltd. | Method and apparatus for managing session information |
| US6948010B2 (en) * | 2000-12-20 | 2005-09-20 | Stratus Technologies Bermuda Ltd. | Method and apparatus for efficiently moving portions of a memory block |
| US6766413B2 (en) | 2001-03-01 | 2004-07-20 | Stratus Technologies Bermuda Ltd. | Systems and methods for caching with file-level granularity |
| US6874102B2 (en) * | 2001-03-05 | 2005-03-29 | Stratus Technologies Bermuda Ltd. | Coordinated recalibration of high bandwidth memories in a multiprocessor computer |
| US6516387B1 (en) * | 2001-07-30 | 2003-02-04 | Lsi Logic Corporation | Set-associative cache having a configurable split and unified mode |
| US6545906B1 (en) * | 2001-10-16 | 2003-04-08 | Motorola, Inc. | Method of writing to scalable magnetoresistance random access memory element |
| EP1383339A1 (en) * | 2002-07-15 | 2004-01-21 | Matsushita Electric Industrial Co., Ltd. | Memory management method for video sequence motion estimation and compensation |
| US7095646B2 (en) * | 2002-07-17 | 2006-08-22 | Freescale Semiconductor, Inc. | Multi-state magnetoresistance random access cell with improved memory storage density |
| US7493480B2 (en) * | 2002-07-18 | 2009-02-17 | International Business Machines Corporation | Method and apparatus for prefetching branch history information |
| US6956763B2 (en) * | 2003-06-27 | 2005-10-18 | Freescale Semiconductor, Inc. | MRAM element and methods for writing the MRAM element |
| US6967366B2 (en) * | 2003-08-25 | 2005-11-22 | Freescale Semiconductor, Inc. | Magnetoresistive random access memory with reduced switching field variation |
| US7129098B2 (en) * | 2004-11-24 | 2006-10-31 | Freescale Semiconductor, Inc. | Reduced power magnetoresistive random access memory elements |
| US8131936B2 (en) * | 2005-02-11 | 2012-03-06 | International Business Machines Corporation | Method and apparatus for implementing a combined data/coherency cache |
| US7552283B2 (en) * | 2006-01-20 | 2009-06-23 | Qualcomm Incorporated | Efficient memory hierarchy management |
| JP4295814B2 (ja) * | 2006-03-03 | 2009-07-15 | 富士通株式会社 | マルチプロセッサシステム及びマルチプロセッサシステムの動作方法 |
| US8738863B2 (en) * | 2009-09-25 | 2014-05-27 | Intel Corporation | Configurable multi-level buffering in media and pipelined processing components |
| US10140219B2 (en) | 2012-11-02 | 2018-11-27 | Blackberry Limited | Multi-port shared cache apparatus |
| JP6155723B2 (ja) * | 2013-03-18 | 2017-07-05 | 富士通株式会社 | レーダ装置及びプログラム |
| CN107038125B (zh) * | 2017-04-25 | 2020-11-24 | 上海兆芯集成电路有限公司 | 具有加速预取请求的独立流水线的处理器高速缓存 |
Family Cites Families (23)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3618041A (en) * | 1968-10-31 | 1971-11-02 | Hitachi Ltd | Memory control system |
| US3693165A (en) * | 1971-06-29 | 1972-09-19 | Ibm | Parallel addressing of a storage hierarchy in a data processing system using virtual addressing |
| GB1354827A (en) * | 1971-08-25 | 1974-06-05 | Ibm | Data processing systems |
| JPS5440182B2 (ja) * | 1974-02-26 | 1979-12-01 | ||
| US4212058A (en) * | 1975-09-27 | 1980-07-08 | National Research Development Corporation | Computer store mechanism |
| DE2547488C2 (de) * | 1975-10-23 | 1982-04-15 | Ibm Deutschland Gmbh, 7000 Stuttgart | Mikroprogrammierte Datenverarbeitungsanlage |
| US4055851A (en) * | 1976-02-13 | 1977-10-25 | Digital Equipment Corporation | Memory module with means for generating a control signal that inhibits a subsequent overlapped memory cycle during a reading operation portion of a reading memory cycle |
| US4070706A (en) * | 1976-09-20 | 1978-01-24 | Sperry Rand Corporation | Parallel requestor priority determination and requestor address matching in a cache memory system |
| US4214303A (en) * | 1977-12-22 | 1980-07-22 | Honeywell Information Systems Inc. | Word oriented high speed buffer memory system connected to a system bus |
| US4197580A (en) * | 1978-06-08 | 1980-04-08 | Bell Telephone Laboratories, Incorporated | Data processing system including a cache memory |
| US4312036A (en) * | 1978-12-11 | 1982-01-19 | Honeywell Information Systems Inc. | Instruction buffer apparatus of a cache unit |
| US4268907A (en) * | 1979-01-22 | 1981-05-19 | Honeywell Information Systems Inc. | Cache unit bypass apparatus |
| EP0019358B1 (en) * | 1979-05-09 | 1984-07-11 | International Computers Limited | Hierarchical data storage system |
| JPS5687282A (en) * | 1979-12-14 | 1981-07-15 | Nec Corp | Data processor |
| US4345309A (en) * | 1980-01-28 | 1982-08-17 | Digital Equipment Corporation | Relating to cached multiprocessor system with pipeline timing |
| US4467414A (en) * | 1980-08-22 | 1984-08-21 | Nippon Electric Co., Ltd. | Cashe memory arrangement comprising a cashe buffer in combination with a pair of cache memories |
| US4481573A (en) * | 1980-11-17 | 1984-11-06 | Hitachi, Ltd. | Shared virtual address translation unit for a multiprocessor system |
| US4530050A (en) * | 1981-08-26 | 1985-07-16 | Hitachi, Ltd. | Central processing unit for executing instructions of variable length having end information for operand specifiers |
| US4472774A (en) * | 1982-09-27 | 1984-09-18 | Data General Corp. | Encachement apparatus |
| US4521851A (en) * | 1982-10-13 | 1985-06-04 | Honeywell Information Systems Inc. | Central processor |
| US4597044A (en) * | 1982-10-14 | 1986-06-24 | Honeywell Information Systems, Inc. | Apparatus and method for providing a composite descriptor in a data processing system |
| US4527238A (en) * | 1983-02-28 | 1985-07-02 | Honeywell Information Systems Inc. | Cache with independent addressable data and directory arrays |
| US4612612A (en) * | 1983-08-30 | 1986-09-16 | Amdahl Corporation | Virtually addressed cache |
-
1982
- 1982-12-30 JP JP58500671A patent/JPS60500187A/ja active Granted
- 1982-12-30 WO PCT/US1982/001830 patent/WO1984002799A1/en not_active Ceased
- 1982-12-30 US US06/862,348 patent/US4719568A/en not_active Expired - Lifetime
-
1983
- 1983-12-19 CA CA000443643A patent/CA1199420A/en not_active Expired
- 1983-12-21 EP EP83112890A patent/EP0115036B1/en not_active Expired
- 1983-12-21 DE DE8383112890T patent/DE3382179D1/de not_active Expired - Lifetime
-
1995
- 1995-01-19 HK HK7695A patent/HK7695A/en not_active IP Right Cessation
Also Published As
| Publication number | Publication date |
|---|---|
| DE3382179D1 (de) | 1991-04-04 |
| US4719568A (en) | 1988-01-12 |
| WO1984002799A1 (en) | 1984-07-19 |
| EP0115036A2 (en) | 1984-08-08 |
| EP0115036B1 (en) | 1991-02-27 |
| EP0115036A3 (en) | 1986-10-15 |
| JPS60500187A (ja) | 1985-02-07 |
| CA1199420A (en) | 1986-01-14 |
| HK7695A (en) | 1995-01-27 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH0347540B2 (ja) | ||
| EP0604139B1 (en) | Computer system including a prefetch cache | |
| EP0667580B1 (en) | Cache System for a memory | |
| EP0695996B1 (en) | Multi-level cache system | |
| US6185660B1 (en) | Pending access queue for providing data to a target register during an intermediate pipeline phase after a computer cache miss | |
| US4298929A (en) | Integrated multilevel storage hierarchy for a data processing system with improved channel to memory write capability | |
| US5715427A (en) | Semi-associative cache with MRU/LRU replacement | |
| JPH04233641A (ja) | データプレフェッチの方法およびその装置 | |
| JP3431878B2 (ja) | マルチスレッド・プロセッサの命令キャッシュ | |
| EP0470739B1 (en) | Method for managing a cache memory system | |
| US5161219A (en) | Computer system with input/output cache | |
| US5367657A (en) | Method and apparatus for efficient read prefetching of instruction code data in computer memory subsystems | |
| US6202128B1 (en) | Method and system for pre-fetch cache interrogation using snoop port | |
| JPH04253243A (ja) | コンピューターメモリシステムおよびデータエレメント清浄化法 | |
| EP0470736B1 (en) | Cache memory system | |
| US5619673A (en) | Virtual access cache protection bits handling method and apparatus | |
| JPH08314802A (ja) | キャッシュシステム、キャッシュメモリアドレスユニット、およびキャッシュメモリを動作させる方法 | |
| US5434990A (en) | Method for serially or concurrently addressing n individually addressable memories each having an address latch and data latch | |
| EP0470735B1 (en) | Computer memory system | |
| JPH0756808A (ja) | データキャッシュバッファ及び記憶方法 | |
| JPH0348540B2 (ja) | ||
| JPH0421044A (ja) | 1チップキャッシュメモリ | |
| JPH04253238A (ja) | コンピューターメモリシステムおよびキャッシュ・オーバーフローに関わる性能の強化法 |