JPH04250542A - コンピューターメモリシステム - Google Patents
コンピューターメモリシステムInfo
- Publication number
- JPH04250542A JPH04250542A JP3216620A JP21662091A JPH04250542A JP H04250542 A JPH04250542 A JP H04250542A JP 3216620 A JP3216620 A JP 3216620A JP 21662091 A JP21662091 A JP 21662091A JP H04250542 A JPH04250542 A JP H04250542A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- cache
- data
- processor
- code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
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/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【0001】
【産業上の利用分野】本発明はコンピューターシステム
に関し、特にメモリアクセス時間を低減できるように設
計されたメモリシステムに関する。
に関し、特にメモリアクセス時間を低減できるように設
計されたメモリシステムに関する。
【0002】
【従来の技術】コンピュータの性能はメモリの階層を使
用することによって強化できる。例えば、三段のメモリ
は低速、中速、および高速メモリで構成できる。低速メ
モリは廉価で多量のデータ格納のための磁気ディスクで
よい。中速メモリはコンピュータの主メモリとして使用
するDRAMで構成できる。高速メモリはプロセッサキ
ャッシュメモリとして使用できるSRAMが使用できる
。メモリの階層を利用するのは、最高速メモリ内でシス
テムプロセッサにより実行されるコード(命令)および
他のデータをグループ化するためである。そのような高
速メモリは通例、入手できる最も高価なメモリが使用さ
れるので、経済性を考慮して比較的小さい。DRAMか
ら構成される主メモリは、SRAMを用いたキャッシュ
メモリよりもより高密度かつより廉価であり、従ってキ
ャッシュメモリよりも著しく大きい。
用することによって強化できる。例えば、三段のメモリ
は低速、中速、および高速メモリで構成できる。低速メ
モリは廉価で多量のデータ格納のための磁気ディスクで
よい。中速メモリはコンピュータの主メモリとして使用
するDRAMで構成できる。高速メモリはプロセッサキ
ャッシュメモリとして使用できるSRAMが使用できる
。メモリの階層を利用するのは、最高速メモリ内でシス
テムプロセッサにより実行されるコード(命令)および
他のデータをグループ化するためである。そのような高
速メモリは通例、入手できる最も高価なメモリが使用さ
れるので、経済性を考慮して比較的小さい。DRAMか
ら構成される主メモリは、SRAMを用いたキャッシュ
メモリよりもより高密度かつより廉価であり、従ってキ
ャッシュメモリよりも著しく大きい。
【0003】作動期間中、システムプロセッサが現に実
行中の変数に迅速にアクセスできるようにするため、命
令その他のデータはシステムメモリからキャッシュメモ
リに転送される。キャッシュにない追加的データが必要
とされるときは、そのデータをメモリから転送し、これ
でキャッシュ内の選択したデータを置換する。いずれの
データを置換するかを決定するにはいろいろのアルゴリ
ズムが使用される。
行中の変数に迅速にアクセスできるようにするため、命
令その他のデータはシステムメモリからキャッシュメモ
リに転送される。キャッシュにない追加的データが必要
とされるときは、そのデータをメモリから転送し、これ
でキャッシュ内の選択したデータを置換する。いずれの
データを置換するかを決定するにはいろいろのアルゴリ
ズムが使用される。
【0004】定義により高効率動作キャッシュのアーキ
テクチャーは高い「ヒット(当たり)」率持つものであ
る。「ヒット」はキャッシュ内に要求されたデータがあ
るときに起こる。ヒット率には多数の要因が影響する。 主な因子は実行されるコードの引合いの局所性である。 言い換えると、もしも当該コードがメモリ内で近接した
物理的ロケーションにあると、メモリ内に広く当該コー
ドが分散しているときよりヒット率は高くなる。キャッ
シュのヒット率に影響するもう一つの因子はそのメモリ
にアクセスするデバイスの数である。もしも唯一つのバ
ス主、例えばシステムプロセッサ、がメモリにアクセス
するのであれば、ヒット率がかなり高くなるようにキャ
ッシュに格納されるデータを制御できる。しかしながら
、同一のキャッシュを通して当該メモリに一つ以上のバ
ス主がアクセスするときは、キャッシュはこれらバス主
からの要求の間を何度も往復することがありうる。その
結果ヒット率は大きく低下する。換言すると、キャッシ
ュは非差別的なものであって、システムプロセッサおよ
び他のバス主の要求がキャッシュに等しく影響する。 一つのオペレーションがキャッシュのデータ編成に著し
く影響を与えることがありうる。例えば、非ホストCP
Uバス主からのメモリアクセス要求に応答してキャッシ
ュに入れられたデータはホストプロセッサが必要とする
データを上書きしてしまう。
テクチャーは高い「ヒット(当たり)」率持つものであ
る。「ヒット」はキャッシュ内に要求されたデータがあ
るときに起こる。ヒット率には多数の要因が影響する。 主な因子は実行されるコードの引合いの局所性である。 言い換えると、もしも当該コードがメモリ内で近接した
物理的ロケーションにあると、メモリ内に広く当該コー
ドが分散しているときよりヒット率は高くなる。キャッ
シュのヒット率に影響するもう一つの因子はそのメモリ
にアクセスするデバイスの数である。もしも唯一つのバ
ス主、例えばシステムプロセッサ、がメモリにアクセス
するのであれば、ヒット率がかなり高くなるようにキャ
ッシュに格納されるデータを制御できる。しかしながら
、同一のキャッシュを通して当該メモリに一つ以上のバ
ス主がアクセスするときは、キャッシュはこれらバス主
からの要求の間を何度も往復することがありうる。その
結果ヒット率は大きく低下する。換言すると、キャッシ
ュは非差別的なものであって、システムプロセッサおよ
び他のバス主の要求がキャッシュに等しく影響する。 一つのオペレーションがキャッシュのデータ編成に著し
く影響を与えることがありうる。例えば、非ホストCP
Uバス主からのメモリアクセス要求に応答してキャッシ
ュに入れられたデータはホストプロセッサが必要とする
データを上書きしてしまう。
【0005】ヒット率に影響するもう一つの因子はコー
ドデータおよび非コードデータの両方がキャッシュ化さ
れるという事情に関係する。システムメモリ内のデータ
ブロックはキャッシュ内でいろいろの物理的ロケーショ
ンに転写(mappinng)される。もしもシステム
メモリ内の各データブロックが単一のロケーションに転
写されるのであれば、キャッシュは直接転写キャッシュ
(direct mapped cache)と言われ
る。これに対してセット関連転写キャッシュと呼ばれる
ものは各データブロックが複数のロケーションに転写さ
れるものである。例えば、もしも各データブロックが二
つのロケーションのいずれかに転写されるとき、これは
二通り−セット関連転写(two−way set a
ssociative mapping)と呼ばれてい
る。システムメモリブロックが利用できるロケーション
の数に関係なく、コードデータおよび非コードデータの
両方がキャッシュ化されるときはそれぞれの転写が重複
することになる。従って、コードデータおよび非コード
データの両方がキャッシュ化されるときは、メモリへの
アクセスに応答してデータが置換されるにともない著し
いスラッシング(thrashing、データ処理の低
下)が起こりえる。
ドデータおよび非コードデータの両方がキャッシュ化さ
れるという事情に関係する。システムメモリ内のデータ
ブロックはキャッシュ内でいろいろの物理的ロケーショ
ンに転写(mappinng)される。もしもシステム
メモリ内の各データブロックが単一のロケーションに転
写されるのであれば、キャッシュは直接転写キャッシュ
(direct mapped cache)と言われ
る。これに対してセット関連転写キャッシュと呼ばれる
ものは各データブロックが複数のロケーションに転写さ
れるものである。例えば、もしも各データブロックが二
つのロケーションのいずれかに転写されるとき、これは
二通り−セット関連転写(two−way set a
ssociative mapping)と呼ばれてい
る。システムメモリブロックが利用できるロケーション
の数に関係なく、コードデータおよび非コードデータの
両方がキャッシュ化されるときはそれぞれの転写が重複
することになる。従って、コードデータおよび非コード
データの両方がキャッシュ化されるときは、メモリへの
アクセスに応答してデータが置換されるにともない著し
いスラッシング(thrashing、データ処理の低
下)が起こりえる。
【0006】従来、大抵のコンピューターシステムは選
択したホストプロセッサの特定の形式に基づいて最適と
なる設計が採られている。少数のコンピューターシステ
ムは単一形式のプロセッサ以外にも対応できる設計とな
っている。後者の場合、関連サブシステムの動作特性は
主要なホストプロセッサの種々の特性に基づく妥協案の
結果となっていることが多い。この代わりに採用される
設計ではサブシステムは特定のホストプロセッサの特徴
に合わせて最適に設計されるので、その結果その最適プ
ロセッサが採用されないときは効率の低下を来たす。
択したホストプロセッサの特定の形式に基づいて最適と
なる設計が採られている。少数のコンピューターシステ
ムは単一形式のプロセッサ以外にも対応できる設計とな
っている。後者の場合、関連サブシステムの動作特性は
主要なホストプロセッサの種々の特性に基づく妥協案の
結果となっていることが多い。この代わりに採用される
設計ではサブシステムは特定のホストプロセッサの特徴
に合わせて最適に設計されるので、その結果その最適プ
ロセッサが採用されないときは効率の低下を来たす。
【0007】
【発明が解決しようとする課題】本発明は新規かつ改良
された高性能コンピューターメモリシステムを与えるこ
とを課題とする。
された高性能コンピューターメモリシステムを与えるこ
とを課題とする。
【0008】本発明の別の課題はホストプロセッサの特
性に基づいてプログラム可能な動作特性を有するメモリ
システムを与えることを課題とする。
性に基づいてプログラム可能な動作特性を有するメモリ
システムを与えることを課題とする。
【0009】本発明のさらに別の課題は異なった形式の
ホストプロセッサとも効率良く作動するメモリシステム
を与えることである。
ホストプロセッサとも効率良く作動するメモリシステム
を与えることである。
【0010】本発明のさらに別の課題はホストプロセッ
サの形式に基づく動作特性を有する一つ以上のキャッシ
ュを備えたメモリシステムを与えることである。
サの形式に基づく動作特性を有する一つ以上のキャッシ
ュを備えたメモリシステムを与えることである。
【0011】本発明のさらに別の課題はホストプロセッ
サの形式のに応じて一定のページを自動的に開くバイア
スを持つDRAMメモリ付きメモリシステムを与えるこ
とである。
サの形式のに応じて一定のページを自動的に開くバイア
スを持つDRAMメモリ付きメモリシステムを与えるこ
とである。
【0012】
【課題を解決するための手段】本発明は、プロセッサに
接続可能であり、かつ該プロセッサの特性に基づいてプ
ログラム可能な動作特性を有するコンピューターメモリ
システムである。
接続可能であり、かつ該プロセッサの特性に基づいてプ
ログラム可能な動作特性を有するコンピューターメモリ
システムである。
【0013】さらに詳細な形態ではそのメモリシステム
は複数のキャッシュとバスに接続された主メモリを含む
。そのプロセッサおよび他のバス主もまたそのバスに接
続される。キャッシュの内の最初のもののプログラム特
性はコードデータのみを保持するか否かである。キャッ
シュの二つ目のものは主メモリへのデータ書き込みを緩
衝し、バス主から来るデータのみを緩衝するか否かにこ
のプログラム特性がある。
は複数のキャッシュとバスに接続された主メモリを含む
。そのプロセッサおよび他のバス主もまたそのバスに接
続される。キャッシュの内の最初のもののプログラム特
性はコードデータのみを保持するか否かである。キャッ
シュの二つ目のものは主メモリへのデータ書き込みを緩
衝し、バス主から来るデータのみを緩衝するか否かにこ
のプログラム特性がある。
【0014】
【実施例】図1はコンピューターメモリシステム10の
ブロック線図を示す。システム10は好ましい実施例で
は動的ランダムアクセスメモリ(DRAM)チップから
なるシステムメモリ12を含む。メモリ12内に格納さ
れるデータは一般にコードデータ(命令)と非コートデ
ータに分けることができる。ここに使用するように、「
データ」という語は情報を意味し、コードデータ(命令
)と非コードデータの両方を含む。メモリ12はバス1
4によりコンピューターシステム(図示してなし)の他
の部分に接続されている。システム10は単一のバス主
で動作することができるが、二つ以上のバス主に使用で
きるように設計されている。システム10はとくにイン
テル社のホストプロセッサ386、386sx、486
等と他のバス主との組合わせに、あるいはシステム10
にアクセスに関してホストプロセッサと競合する装置と
の組み合わせに使用できるように設計されている。メモ
リ12へのアクセスはバス14内に位置しているDRA
M制御装置22により制御される。
ブロック線図を示す。システム10は好ましい実施例で
は動的ランダムアクセスメモリ(DRAM)チップから
なるシステムメモリ12を含む。メモリ12内に格納さ
れるデータは一般にコードデータ(命令)と非コートデ
ータに分けることができる。ここに使用するように、「
データ」という語は情報を意味し、コードデータ(命令
)と非コードデータの両方を含む。メモリ12はバス1
4によりコンピューターシステム(図示してなし)の他
の部分に接続されている。システム10は単一のバス主
で動作することができるが、二つ以上のバス主に使用で
きるように設計されている。システム10はとくにイン
テル社のホストプロセッサ386、386sx、486
等と他のバス主との組合わせに、あるいはシステム10
にアクセスに関してホストプロセッサと競合する装置と
の組み合わせに使用できるように設計されている。メモ
リ12へのアクセスはバス14内に位置しているDRA
M制御装置22により制御される。
【0015】システム10はまたバス14にそれぞれ接
続された内部キャッシュ16、プレフェッチキャッシュ
18、および書き込みバッファキャッシュ20を含む。 好ましい実施例では内部キャッシュ16は4Kバイトの
4通り−セット関連キャッシュで、プレフェッチキャッ
シュ18は128バイトの直接転写キャッシュで、書き
込みバッファキャッシュ20は128バイトの2通り−
セット関連キャッシュである。
続された内部キャッシュ16、プレフェッチキャッシュ
18、および書き込みバッファキャッシュ20を含む。 好ましい実施例では内部キャッシュ16は4Kバイトの
4通り−セット関連キャッシュで、プレフェッチキャッ
シュ18は128バイトの直接転写キャッシュで、書き
込みバッファキャッシュ20は128バイトの2通り−
セット関連キャッシュである。
【0016】本発明の重要な特徴は使用されるホストプ
ロセッサの形式(386、386sx、486)に応じ
ていろいろのキャッシュの機能が変更できることである
。メモリシステム10はプロセッサの特性に基づいてプ
ログラムできる動作特性を有する。しかし、キャッシュ
のいくつかの特徴は変更できない。例えば内部キャッシ
ュ16はホストプロセッサが行なうメモリアクセスに基
づいてのみ選択できるデータを保持する。言い換えると
、内部キャッシュ16はホストプロセッサ専用であり、
他のバス主によるメモリアクセスによって影響されない
。任意のバス主が各キャッシュを読み取りできることを
認識されたい。従って内部キャッシュ16はその中にシ
ステムプロセッサ以外の他のプロセッサによるメモリア
クセスに基づくデータ書き込みは許さないが、他のバス
主も、要求しているデータがその中にある限りデータの
読み取りはできる。各キャッシュは検分(記録内容を見
ること)でヒットし記録内容を無効にするため、当該キ
ャッシュで意図されていないデータ書き込みもすべて検
分し、これによって動作の一貫性を確保することを認識
されたい。
ロセッサの形式(386、386sx、486)に応じ
ていろいろのキャッシュの機能が変更できることである
。メモリシステム10はプロセッサの特性に基づいてプ
ログラムできる動作特性を有する。しかし、キャッシュ
のいくつかの特徴は変更できない。例えば内部キャッシ
ュ16はホストプロセッサが行なうメモリアクセスに基
づいてのみ選択できるデータを保持する。言い換えると
、内部キャッシュ16はホストプロセッサ専用であり、
他のバス主によるメモリアクセスによって影響されない
。任意のバス主が各キャッシュを読み取りできることを
認識されたい。従って内部キャッシュ16はその中にシ
ステムプロセッサ以外の他のプロセッサによるメモリア
クセスに基づくデータ書き込みは許さないが、他のバス
主も、要求しているデータがその中にある限りデータの
読み取りはできる。各キャッシュは検分(記録内容を見
ること)でヒットし記録内容を無効にするため、当該キ
ャッシュで意図されていないデータ書き込みもすべて検
分し、これによって動作の一貫性を確保することを認識
されたい。
【0017】キャッシュに関し不変な特徴の一つは、プ
レフェッチキャッシュ18がメモリ12から取り寄せた
コードデータのみを収容することである。さらに、プレ
フェッチキャッシュ18はホストプロセッサがメモリア
クセスするコードのみを取り寄せる。動作上の特徴とし
て、システムプロセッサがプレフェッチキャシュ内に用
意されていないコードデータを要求するときは、次のコ
ード要求を予期した準備として次順の128バイトコー
ドがプレフェッチキャッシュ18内に予め取り寄せ(プ
レフェッチ)される。
レフェッチキャッシュ18がメモリ12から取り寄せた
コードデータのみを収容することである。さらに、プレ
フェッチキャッシュ18はホストプロセッサがメモリア
クセスするコードのみを取り寄せる。動作上の特徴とし
て、システムプロセッサがプレフェッチキャシュ内に用
意されていないコードデータを要求するときは、次のコ
ード要求を予期した準備として次順の128バイトコー
ドがプレフェッチキャッシュ18内に予め取り寄せ(プ
レフェッチ)される。
【0018】書き込みバッファキャッシュ20はDRA
M12内に書き込まれるデータのバッファのみを行なう
。このキャッシュは単に書き込みバッファを行なうのみ
ならず、上述したように任意のバス主による読み取りも
許すキャッシュである。しかしDRAM12からのデー
タはキャッシュ化しない。
M12内に書き込まれるデータのバッファのみを行なう
。このキャッシュは単に書き込みバッファを行なうのみ
ならず、上述したように任意のバス主による読み取りも
許すキャッシュである。しかしDRAM12からのデー
タはキャッシュ化しない。
【0019】各キャッシュの機能が分離されていること
、およびプロセッサの形式に基づいてこれらの機能を選
択的に定義できることは本発明の重要な特徴である。 この性能により、本システムはキャッシュを総和的に使
用するものよりも何倍も大きなキャッシュを使用するシ
ステムの性能を達成し、またはこれをしのぐことができ
る。プロセッサの形式に基づいて選択的に機能を定義で
きる点に関していうと、各キャッシュはプロセッサの形
式に基づく特性を考慮してプログラムできる動作特性を
持っている。例えば、内部キャッシュ16のプログラム
可能な特性の一つはコードデータのみを保持するか否か
である。386、386sxシステムプロセッサを使用
するシステムの場合、内部キャッシュ16はコードデー
タのみを保持するが、486プロセッサを使用するシス
テムの場合は内部キャッシュ16はコードデータおよび
非コードデータの両方を保持する。書き込みバッファキ
ャッシュ20のプログラム性能の特性の一つはシステム
プロセッサ以外のバス主のデータのみのバッファを行な
うか否かである。486システムプロセッサを使用する
システムの場合、書き込みバッファキャッシュ20はシ
ステムプロセッサ以外の任意のバス主によるデータ書き
込みのバッファを行なう。これらキャッシュの動作特性
は、存在するホストプロセッサの形式情報に基づいて、
電力投入時の自己形成条件に従って定義される。
、およびプロセッサの形式に基づいてこれらの機能を選
択的に定義できることは本発明の重要な特徴である。 この性能により、本システムはキャッシュを総和的に使
用するものよりも何倍も大きなキャッシュを使用するシ
ステムの性能を達成し、またはこれをしのぐことができ
る。プロセッサの形式に基づいて選択的に機能を定義で
きる点に関していうと、各キャッシュはプロセッサの形
式に基づく特性を考慮してプログラムできる動作特性を
持っている。例えば、内部キャッシュ16のプログラム
可能な特性の一つはコードデータのみを保持するか否か
である。386、386sxシステムプロセッサを使用
するシステムの場合、内部キャッシュ16はコードデー
タのみを保持するが、486プロセッサを使用するシス
テムの場合は内部キャッシュ16はコードデータおよび
非コードデータの両方を保持する。書き込みバッファキ
ャッシュ20のプログラム性能の特性の一つはシステム
プロセッサ以外のバス主のデータのみのバッファを行な
うか否かである。486システムプロセッサを使用する
システムの場合、書き込みバッファキャッシュ20はシ
ステムプロセッサ以外の任意のバス主によるデータ書き
込みのバッファを行なう。これらキャッシュの動作特性
は、存在するホストプロセッサの形式情報に基づいて、
電力投入時の自己形成条件に従って定義される。
【0020】DRAM制御装置22はメモリ12へのア
クセスのための高速ページモードを支持する。高速ペー
ジモードはメモリページ内の行ラインをアクティブとし
た後、順次に列ラインをストロボ作動させてデータをD
RAMの中にまたはDRAMの外に転送することにより
DRAMへのアクセスを高速化する良く知られた方法で
ある。本発明ではメモリ12はコードデータまたは非コ
ードデータのいずれかを含むページに分割されている。 メモリ12に関連されたレジスタはメモリ12内または
DRAM制御装置22内に配置され、最も最近にアクセ
スされたページのページアドレスを保持する。実際、本
システムは本システムに接続されたプロセッサの形式に
応じてコードページまたは非コードページに指向するバ
イアスを与える。メモリ12がDRAM制御装置22を
介してバイアスを与えるデータの形式(コードか非コー
ドか)は本発明のもう一つのプログラム性能の特性であ
る。例えばもしもシステムプロセッサが486であると
、もっとも最近にアクセスされたコードアドレスページ
のアドレスがレジスタ内に保持される。動作上、メモリ
12内のコードデータページおよび非コードデータペー
ジは共にランダムアクセスができる。もしもコードペー
ジがある一サイクルでアクセスされ、次のサイクルで非
コードページがアクセスされると、非コードページがア
クセスされる間、コードページのアドレスはレジスタ内
に保持される。非コードページがアクセスされた直後、
再びコードページを開くのにレジスタ内のそのアドレス
が使用される。これと対照的に、もしもシステムプロセ
ッサが386または386sxであると、最も最近にア
クセスされた非コードアドレスページのアドレスがレジ
スタ内に保持される。オープンページバイアス、高速ペ
ージモードアクセスおよび多重キャッシュを選択的にな
しうるこの組み合わせがシステムの性能を高める。
クセスのための高速ページモードを支持する。高速ペー
ジモードはメモリページ内の行ラインをアクティブとし
た後、順次に列ラインをストロボ作動させてデータをD
RAMの中にまたはDRAMの外に転送することにより
DRAMへのアクセスを高速化する良く知られた方法で
ある。本発明ではメモリ12はコードデータまたは非コ
ードデータのいずれかを含むページに分割されている。 メモリ12に関連されたレジスタはメモリ12内または
DRAM制御装置22内に配置され、最も最近にアクセ
スされたページのページアドレスを保持する。実際、本
システムは本システムに接続されたプロセッサの形式に
応じてコードページまたは非コードページに指向するバ
イアスを与える。メモリ12がDRAM制御装置22を
介してバイアスを与えるデータの形式(コードか非コー
ドか)は本発明のもう一つのプログラム性能の特性であ
る。例えばもしもシステムプロセッサが486であると
、もっとも最近にアクセスされたコードアドレスページ
のアドレスがレジスタ内に保持される。動作上、メモリ
12内のコードデータページおよび非コードデータペー
ジは共にランダムアクセスができる。もしもコードペー
ジがある一サイクルでアクセスされ、次のサイクルで非
コードページがアクセスされると、非コードページがア
クセスされる間、コードページのアドレスはレジスタ内
に保持される。非コードページがアクセスされた直後、
再びコードページを開くのにレジスタ内のそのアドレス
が使用される。これと対照的に、もしもシステムプロセ
ッサが386または386sxであると、最も最近にア
クセスされた非コードアドレスページのアドレスがレジ
スタ内に保持される。オープンページバイアス、高速ペ
ージモードアクセスおよび多重キャッシュを選択的にな
しうるこの組み合わせがシステムの性能を高める。
【0021】書き込みバッファキャッシュ20は2通り
−セット関連キャッシュである。メモリの非コードデー
タ領域は、リスト、ヒープ(heap)、およびスタッ
ク(stack)として知られる三つの領域に分割でき
る。リスト、ヒープ、およびスタックには各自の組織と
目的があり、メモリ内にそれぞれのデータブロックが保
存される。例えばスタックは一組のデータエレメントで
ある。 一度にその内の一エレメントのみがアクセスできる。リ
ストデータは主として読み取り用であり、一般的に書き
込み用ではない。構造を有するプログラムではスタック
への書き込みが高い頻度で起こり、次に頻度の高い書き
込みはヒープに対して起きる。DRAM内にヒープ用の
データブロックとスタック用のデータブロックを適切に
指定し、かつこれらブロックを2通り−セット関連キャ
ッシュ内の対向するセットに転写することにより、動作
効率を高めることができる。さらに非コードデータに対
するDRAM内のオープンページバイアスは実効上、リ
ストデータに対するオープンページバイアスとなる。こ
のようにして本発明の動作特性がさらに高められる。
−セット関連キャッシュである。メモリの非コードデー
タ領域は、リスト、ヒープ(heap)、およびスタッ
ク(stack)として知られる三つの領域に分割でき
る。リスト、ヒープ、およびスタックには各自の組織と
目的があり、メモリ内にそれぞれのデータブロックが保
存される。例えばスタックは一組のデータエレメントで
ある。 一度にその内の一エレメントのみがアクセスできる。リ
ストデータは主として読み取り用であり、一般的に書き
込み用ではない。構造を有するプログラムではスタック
への書き込みが高い頻度で起こり、次に頻度の高い書き
込みはヒープに対して起きる。DRAM内にヒープ用の
データブロックとスタック用のデータブロックを適切に
指定し、かつこれらブロックを2通り−セット関連キャ
ッシュ内の対向するセットに転写することにより、動作
効率を高めることができる。さらに非コードデータに対
するDRAM内のオープンページバイアスは実効上、リ
ストデータに対するオープンページバイアスとなる。こ
のようにして本発明の動作特性がさらに高められる。
【0022】本発明の二重ないし多重モード動作による
著しい利点は、個々の性能を著しく妥協させることなく
メモリシステムにいろいろの形式のプロセッサを設置す
ることができることである。プログラム可能でない特性
の一つは、内部キャッシュ16の専用化である。このキ
ャッシュはキャッシュ中で最も大きなもの(4Kバイト
)であり、ホストプロセッサ専用に使われる。メモリの
諸動作の大部分はホストプロセッサからくるので、これ
によってホストプロセッサの効率を最大限に高めること
ができる。さらに386/486マイクロチャンネルを
使用する環境では他のバス主はそれらの性能を改善する
べくストリーミングモードを利用できる。このモードは
システムプロセッサには利用できない追加的機能である
。前に論じたように、内部キャッシュ16のプログラム
可能な特性の一つはそれがコードデータのみを保持する
か否かである。386プロセッサはそれ自体は内部キャ
ッシュを持っていないので、内部キャッシュ16はコー
ドデータ専用に使用される。コードデータはメモリから
386プロセッサによりアクセスされるデータの主なも
のである。他方、486プロセッサはそれ自身の内部キ
ャッシュを有し、プレフェッチキャッシュ18またはメ
モリ12オープンページからコードデータをバーストで
きる。従って486をホストプロセッサとする場合、内
部キャッシュ16は主として非コードデータ専用に使用
される。
著しい利点は、個々の性能を著しく妥協させることなく
メモリシステムにいろいろの形式のプロセッサを設置す
ることができることである。プログラム可能でない特性
の一つは、内部キャッシュ16の専用化である。このキ
ャッシュはキャッシュ中で最も大きなもの(4Kバイト
)であり、ホストプロセッサ専用に使われる。メモリの
諸動作の大部分はホストプロセッサからくるので、これ
によってホストプロセッサの効率を最大限に高めること
ができる。さらに386/486マイクロチャンネルを
使用する環境では他のバス主はそれらの性能を改善する
べくストリーミングモードを利用できる。このモードは
システムプロセッサには利用できない追加的機能である
。前に論じたように、内部キャッシュ16のプログラム
可能な特性の一つはそれがコードデータのみを保持する
か否かである。386プロセッサはそれ自体は内部キャ
ッシュを持っていないので、内部キャッシュ16はコー
ドデータ専用に使用される。コードデータはメモリから
386プロセッサによりアクセスされるデータの主なも
のである。他方、486プロセッサはそれ自身の内部キ
ャッシュを有し、プレフェッチキャッシュ18またはメ
モリ12オープンページからコードデータをバーストで
きる。従って486をホストプロセッサとする場合、内
部キャッシュ16は主として非コードデータ専用に使用
される。
【0023】前述したことを再確認するが、書き込みバ
ッファキャッシュ20のプログラム可能性における特徴
はこれにホストプロセッサ以外のバス主からのデータの
バッファをさせるか否かである。386ホストプロセッ
サの場合、書き込みバッファキャッシュ20は386お
よび他のバス主の両方からの書き込みデータのバッファ
を行なう。これが386データ書き込みのバッファを行
なうのは、内部キャッシュ16がコードに専用化されて
いるからであり、また他のバス主からのデータ書き込み
のバッファを行なうのは内部キャッシュ16が386に
専用使用されるからである。486ホストプロセッサの
場合は書き込みバッファキャッシュ20は他のバス主に
専用使用される。その理由は内部キャッシュ16が48
6ホストプロセッサのためにのみコードデータおよび非
コードデータを処理するからである。
ッファキャッシュ20のプログラム可能性における特徴
はこれにホストプロセッサ以外のバス主からのデータの
バッファをさせるか否かである。386ホストプロセッ
サの場合、書き込みバッファキャッシュ20は386お
よび他のバス主の両方からの書き込みデータのバッファ
を行なう。これが386データ書き込みのバッファを行
なうのは、内部キャッシュ16がコードに専用化されて
いるからであり、また他のバス主からのデータ書き込み
のバッファを行なうのは内部キャッシュ16が386に
専用使用されるからである。486ホストプロセッサの
場合は書き込みバッファキャッシュ20は他のバス主に
専用使用される。その理由は内部キャッシュ16が48
6ホストプロセッサのためにのみコードデータおよび非
コードデータを処理するからである。
【0024】プログラム可能なDRAM12の特性は、
オープンページバイアスがコードデータ用であっても非
コードデータ用であっても、内部キャッシュ16および
書き込みバッファキャッシュ20のプログラム可能特性
と密接に関連している。例えば、486は読み取りコー
ドデータをバーストできるので、DRAM12にはコー
ドデータ用のオープンページが与えられる。このことに
より、このモードでは内部キャッシュ16がコードデー
タに大きな援助をしないが、プレフェッチキャッシュ1
8が効果的に動作することが可能となる。これと対照的
に、386プロセッサでは非コードデータに対するオー
プンページバイアスがコードデータのみを保持する内部
キャッシュ16と均衡する。
オープンページバイアスがコードデータ用であっても非
コードデータ用であっても、内部キャッシュ16および
書き込みバッファキャッシュ20のプログラム可能特性
と密接に関連している。例えば、486は読み取りコー
ドデータをバーストできるので、DRAM12にはコー
ドデータ用のオープンページが与えられる。このことに
より、このモードでは内部キャッシュ16がコードデー
タに大きな援助をしないが、プレフェッチキャッシュ1
8が効果的に動作することが可能となる。これと対照的
に、386プロセッサでは非コードデータに対するオー
プンページバイアスがコードデータのみを保持する内部
キャッシュ16と均衡する。
【0025】本発明の詳細な設計は高度ハードウェア記
述言語であるCDLで行なわれる。CDLはデジタル論
理システム用のハードウェアを曖昧さなしに定義するソ
フトウェアツールである。CDLリストは完全にコンピ
ューターメモリシステム10の好ましい実施例を確定す
る。このリストはこれをコンパイルすると「C」ソース
コードを与え、このソースコードは次いでCコンパイラ
でコンパイルされて標準化されたCオブジェクトファイ
ルフォーマット(COFF)を与える。次いでこのCオ
ブジェクトファイルフォーマットを論理合成プログラム
に入力すると詳細な論理構造体が得られる。この目的に
使用される論理合成プログラムはカルフォルニア州マウ
ンテンビュー市のシノプシス社から販売されているSY
NOPSYSである。
述言語であるCDLで行なわれる。CDLはデジタル論
理システム用のハードウェアを曖昧さなしに定義するソ
フトウェアツールである。CDLリストは完全にコンピ
ューターメモリシステム10の好ましい実施例を確定す
る。このリストはこれをコンパイルすると「C」ソース
コードを与え、このソースコードは次いでCコンパイラ
でコンパイルされて標準化されたCオブジェクトファイ
ルフォーマット(COFF)を与える。次いでこのCオ
ブジェクトファイルフォーマットを論理合成プログラム
に入力すると詳細な論理構造体が得られる。この目的に
使用される論理合成プログラムはカルフォルニア州マウ
ンテンビュー市のシノプシス社から販売されているSY
NOPSYSである。
【0026】図2は本メモリモジュール間の関係を示す
。
。
【0027】
【図1】図1は本発明の一実施例になる高性能コンピュ
ーターメモリシステムのブロック線図である。
ーターメモリシステムのブロック線図である。
【図2】図2は本メモリモジュール間の関係を示すブロ
ック線図である。
ック線図である。
10 コンピューターメモリシステム14
バス
バス
Claims (2)
- 【請求項1】プロセッサに接続可能であり、かつ該プロ
セッサの特性に基づいてプログラム可能な動作特性を有
するコンピューターメモリシステム。 - 【請求項2】請求項1に記載のシステムにおいて、該シ
ステムが、バスにより該プロセッサに接続可能であり、
該バスに接続された主メモリと、該バスに接続されたキ
ャッシュとを含み、該キャッシュが該プログラム可能な
動作特性を有することを特徴とするシステム。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US56321490A | 1990-08-06 | 1990-08-06 | |
| US563214 | 2000-05-02 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH04250542A true JPH04250542A (ja) | 1992-09-07 |
Family
ID=24249568
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP3216620A Pending JPH04250542A (ja) | 1990-08-06 | 1991-08-02 | コンピューターメモリシステム |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US5953740A (ja) |
| EP (1) | EP0470735B1 (ja) |
| JP (1) | JPH04250542A (ja) |
| DE (1) | DE69130967T2 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN108694132A (zh) * | 2017-03-30 | 2018-10-23 | 西部数据技术公司 | 计算每一中央处理单元预取的逻辑块号的最佳数目 |
Families Citing this family (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5761709A (en) * | 1995-06-05 | 1998-06-02 | Advanced Micro Devices, Inc. | Write cache for servicing write requests within a predetermined address range |
| US5778422A (en) * | 1996-04-04 | 1998-07-07 | International Business Machines Corporation | Data processing system memory controller that selectively caches data associated with write requests |
| US6199145B1 (en) | 1998-02-27 | 2001-03-06 | Intel Corporation | Configurable page closing method and apparatus for multi-port host bridges |
| DE10151733A1 (de) * | 2001-10-19 | 2003-04-30 | Infineon Technologies Ag | Prozessor-Speicher-System |
| US9734059B2 (en) | 2012-11-21 | 2017-08-15 | Advanced Micro Devices, Inc. | Methods and apparatus for data cache way prediction based on classification as stack data |
| US9509736B2 (en) | 2013-01-16 | 2016-11-29 | Cisco Technology, Inc. | Method for optimizing WAN traffic |
Family Cites Families (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB1354827A (en) * | 1971-08-25 | 1974-06-05 | Ibm | Data processing systems |
| US5043870A (en) * | 1982-02-24 | 1991-08-27 | At&T Bell Laboratories | Computer with automatic mapping of memory contents into machine registers during program execution |
| US4719568A (en) * | 1982-12-30 | 1988-01-12 | International Business Machines Corporation | Hierarchical memory system including separate cache memories for storing data and instructions |
| US4648030A (en) * | 1983-09-22 | 1987-03-03 | Digital Equipment Corporation | Cache invalidation mechanism for multiprocessor systems |
| US4622631B1 (en) * | 1983-12-30 | 1996-04-09 | Recognition Int Inc | Data processing system having a data coherence solution |
| US4884197A (en) * | 1985-02-22 | 1989-11-28 | Intergraph Corporation | Method and apparatus for addressing a cache memory |
| US4783736A (en) * | 1985-07-22 | 1988-11-08 | Alliant Computer Systems Corporation | Digital computer with multisection cache |
| US4914577A (en) * | 1987-07-16 | 1990-04-03 | Icon International, Inc. | Dynamic memory management system and method |
| US4926317A (en) * | 1987-07-24 | 1990-05-15 | Convex Computer Corporation | Hierarchical memory system with logical cache, physical cache, and address translation unit for generating a sequence of physical addresses |
| US5055999A (en) * | 1987-12-22 | 1991-10-08 | Kendall Square Research Corporation | Multiprocessor digital data processing system |
| 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 |
| US5023776A (en) * | 1988-02-22 | 1991-06-11 | International Business Machines Corp. | Store queue for a tightly coupled multiple processor configuration with two-level cache buffer storage |
| US5073969A (en) * | 1988-08-01 | 1991-12-17 | Intel Corporation | Microprocessor bus interface unit which changes scheduled data transfer indications upon sensing change in enable signals before receiving ready signal |
| US5283868A (en) * | 1989-05-17 | 1994-02-01 | International Business Machines Corp. | Providing additional system characteristics to a data processing system through operations of an application program, transparently to the operating system |
-
1991
- 1991-07-26 DE DE69130967T patent/DE69130967T2/de not_active Expired - Fee Related
- 1991-07-26 EP EP91306842A patent/EP0470735B1/en not_active Expired - Lifetime
- 1991-08-02 JP JP3216620A patent/JPH04250542A/ja active Pending
-
1993
- 1993-10-05 US US08/132,421 patent/US5953740A/en not_active Expired - Lifetime
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN108694132A (zh) * | 2017-03-30 | 2018-10-23 | 西部数据技术公司 | 计算每一中央处理单元预取的逻辑块号的最佳数目 |
| CN108694132B (zh) * | 2017-03-30 | 2022-09-13 | 西部数据技术公司 | 计算每一中央处理单元预取的逻辑块号的最佳数目 |
| US11656993B2 (en) | 2017-03-30 | 2023-05-23 | Western Digital Technologies, Inc. | LBNs prefetching per CPU |
Also Published As
| Publication number | Publication date |
|---|---|
| DE69130967T2 (de) | 1999-10-21 |
| DE69130967D1 (de) | 1999-04-15 |
| EP0470735B1 (en) | 1999-03-10 |
| US5953740A (en) | 1999-09-14 |
| EP0470735A1 (en) | 1992-02-12 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3323212B2 (ja) | データプレフェッチの方法およびその装置 | |
| US5490113A (en) | Memory stream buffer | |
| US5875451A (en) | Computer hybrid memory including DRAM and EDRAM memory components, with secondary cache in EDRAM for DRAM | |
| US20010013082A1 (en) | Memory paging control apparatus | |
| US5420994A (en) | Method for reading a multiple byte data element in a memory system with at least one cache and a main memory | |
| US5161219A (en) | Computer system with input/output cache | |
| US5287512A (en) | Computer memory system and method for cleaning data elements | |
| JP6228523B2 (ja) | メモリ制御回路および半導体記憶装置 | |
| US5367657A (en) | Method and apparatus for efficient read prefetching of instruction code data in computer memory subsystems | |
| JPH04250543A (ja) | コンピューターメモリシステム | |
| US5434990A (en) | Method for serially or concurrently addressing n individually addressable memories each having an address latch and data latch | |
| US5953740A (en) | Computer memory system having programmable operational characteristics based on characteristics of a central processor | |
| JP3187465B2 (ja) | コンピューターメモリオープンページバイアス法とその装置 | |
| JPH0210446A (ja) | バッファ記憶装置 | |
| EP0377969B1 (en) | I/O cached computer systems | |
| JPS5818710B2 (ja) | 記憶システム | |
| JPS63240651A (ja) | キヤツシユメモリ | |
| JPH04253238A (ja) | コンピューターメモリシステムおよびキャッシュ・オーバーフローに関わる性能の強化法 | |
| JPS6055859B2 (ja) | チャネル・バッファ制御方式 | |
| JPS61235960A (ja) | キヤツシユメモリの制御方法 | |
| JPH0448263B2 (ja) | ||
| JPH0243692A (ja) | マイクロプロセッサ及びそのキャッシュメモリ |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20010717 |