JP3243996B2 - メモリ制御方法およびその装置 - Google Patents
メモリ制御方法およびその装置Info
- Publication number
- JP3243996B2 JP3243996B2 JP05686996A JP5686996A JP3243996B2 JP 3243996 B2 JP3243996 B2 JP 3243996B2 JP 05686996 A JP05686996 A JP 05686996A JP 5686996 A JP5686996 A JP 5686996A JP 3243996 B2 JP3243996 B2 JP 3243996B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- directory
- address
- request
- bank
- 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 - Fee Related
Links
Landscapes
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
リ制御方法及び装置に関する。
モリなどからなるプロセッサを、複数相互接続した並列
型計算機においては、主記憶は、バスを介して複数のプ
ロセッサと接続される構成の他、ネットワークを介して
接続される場合もある。また、主記憶を、それぞれのプ
ロセッサに分散配置して設け、相互に接続するようにし
た構成もある。
有メモリ環境を実現する方法として、主記憶を所定の管
理単位(「メモリブロック」という)に分け、「ディレ
クトリ」と呼ばれるメモリ管理情報を持ち、これによっ
て、それぞれのプロセッサのキャッシュメモリと主記憶
との一貫性を保つ方法が採用されている。このディレク
トリには、メモリブロックの状態と、このメモリブロッ
クのコピー(写し)をキャッシュメモリに保持している
プロセッサの情報と、が記録管理されている。
を保つということは、すなわち、各プロセッサがあるメ
モリブロックに対して、書き込みを排他的に行なうこと
ができ、読み出しでは最新の値が得られる、ということ
を保証することを意味している。
ロックに書き込みを行なう場合、まず、該メモリブロッ
クに対応するディレクトリ情報によって、そのコピーを
キャッシュメモリに保持しているプロセッサがある場合
には、これ(キャッシュメモリのコピー)を無効化する
などの処理を、実際のメモリブロックへの書き込みと同
時に行なう必要がある。
リアクセスは、単にメモリを読み書きするだけで済む。
らなる並列型計算機で共有メモリ環境を実現した場合、
あるメモリブロックをアクセスする時には、これに先だ
ってディレクトリ情報を読み出しキャッシュメモリの一
貫性を保つために必要な処理を行なった後に、実際のメ
モリブロックをアクセスしなければならない。
算機においては、メモリブロックのアクセス時に、ディ
レクトリのアクセスとデータ自体のアクセスとが必要と
され、このため遅延が倍増してしまうという問題点を有
している。特に小さい単位(メモリブロックのサイズが
小)でメモリ管理を行なう場合、この問題が顕著にな
る。
として、ディレクトリを主記憶の一部に置くという方法
が用いられている。しかしながら、この従来の方法で
は、1回のメモリアクセスに対して、ディレクトリのア
クセスと、データ自体のアクセスと、速度の遅い主記憶
を複数回アクセスすることになり、メモリアクセスの遅
延が大きくなるという問題がある。
リ専用の高速メモリを用いる方法もあるが、この場合、
確かにディレクトリのアクセスは高速化するものの、回
路が複雑となり、コストも上昇するという問題点を有し
ている。
消するために為されたものであり、その目的は、簡単な
回路で、ディレクトリを用いた共有メモリ型並列計算機
におけるメモリアクセスの遅延を向上するメモリ制御装
置及び方法を提供することにある。
めに、本発明は、ある情報の操作を行う際に、少なくと
も2種類のデータを連続してアクセスするような、情報
処理装置におけるメモリの制御方法において、主記憶
が、行アドレスを指定した後に列アドレスを指定してデ
ータのアクセスが行われ、複数の内部バンクの内部バン
ク毎に行アドレスが保持されるように構成されてなるダ
イナミックランダムアクセスメモリ(以下「シンクロナ
スDRAM」という)からなり、所定のアドレスビット
にて前記シンクロナスDRAMの内部バンクの選択を行
なうメモリ制御装置を備え、連続してアクセスする少な
くとも2種類のデータをそれぞれ異なる内部バンクに配
置することによって、それぞれ行アドレスを保持した状
態のままアクセスを行なうことを特徴とするメモリ制御
方法を提供する。
は、主記憶をシンクロナス(Synchronous)DRAMに
よって構成し、ディレクトリを主記憶の一部に置き、メ
モリ制御装置は特定のアドレスビットでシンクロナスD
RAMの内部バンクの選択を行ない、メモリブロックと
これに対応するディレクトリを異なる内部バンクに配置
することによって、キャッシュの一貫性を保つ処理を行
なうためのディレクトリアクセスとデータアクセスとを
それぞれ行アドレスを保持した状態にして行なうことを
特徴としたものである。
プリチャージをして行アドレスを指定した後に、列アド
レスを指定してデータの読み出しあるいは書き込みを行
なう。但し、同じ行ページ内のアドレスをアクセスする
場合は、プリチャージと行アドレス指定を省略すること
ができる。
数の内部バンクをもち、それぞれの内部バンク毎に、行
アドレスを保持しておくことができ、その行(row)
に対するアクセスを高速に行なうことができる。また、
一方の内部バンクのデータの読み出しあるいは書き込み
と、もう一方の内部バンクのプリチャージや行アドレス
の指定を同時に行なうことができる。
行物(NEC Data Book、「IC Memory Dynamic
RAM」、1994年)などに記載された詳細仕様が参照
される。
ては、上記の如く、主記憶をシンクロナスDRAMにて
構成し、ディレクトリは主記憶の一部に置くものとす
る。従って、ディレクトリのために専用の回路を設ける
必要はなく、ハードウェア構成が簡単になる。
た所定のアドレスビットにてシンクロナスDRAMの内
部バンクの選択を行なう、ディレクトリは予め定められ
たディレクトリ先頭番地から置かれ、あるメモリブロッ
クに対するディレクトリは基本的に、[(ディレクトリ
先頭番地)+(該当メモリブロックの番地の上位ビッ
ト)]に格納される。上記の方法で、ディレクトリの番
地を求めた上、メモリブロック番地のiビット(A
[i])が“1”の場合、ディレクトリ番地のiビット
(DA[i])を“0”、A[i]=“0”の場合DA
[i]=“1”とすることで、メモリブロックとこれに
対応するディレクトリを異なる内部バンクに配置し、デ
ータとディレクトリのアクセスについて、それぞれ行ア
ドレスを保持した状態にしておくことができ、少ないハ
ードウェアコストにて、CPUからのメモリリクエスト
を高速に処理することができる。
参照して詳細に説明する。
実施形態の構成を示す図である。本実施形態において、
並列計算機は、N台のプロセッサ1−1〜1−Nをプロ
セッサ間ネットワーク2によって相互に接続したもので
ある。プロセッサ1−1〜1−Nは全て同じ構成を有し
ており、図1には、1つのプロセッサ1−1を例にその
内部構成を拡大して示してある。
などを行なうCPU11と、キャッシュメモリ12と、
メモリ制御装置13と、主記憶14と、プロセッサ間通
信装置18と、から構成されている。
部に置かれ、あるメモリブロック16に対応するディレ
クトリ17は、メモリブロック16とは異なる内部バン
クに配置される。
じて主記憶14のアクセスをメモリ制御装置13に要求
する。この際、CPU11は、ある番地のメモリブロッ
クへのアクセスを要求するだけで、そのメモリブロック
が、複数のプロセッサ1−1〜1−N上のうち、どのプ
ロセッサの主記憶14にあるか、他のプロセッサのキャ
ッシュメモリ12にはコピーが存在するか、等について
関知しない。
からの要求を受け付けた時の処理例を示す。
要求(リクエスト)を受け際に、処理S1では、CPU
11からのリクエストアドレスが、自プロセッサ1−1
の主記憶14にあるか否かを判定する。処理S2〜処理
S7は、自プロセッサ1−1の主記憶14に対するリク
エストの処理手順である。
対するディレクトリアドレスを求める。処理S3では、
処理S2で求めたアドレスによってディレクトリ15の
内容を読み出す。ディレクトリ15には、対応するメモ
リブロックの状態と、複数のプロセッサ1−1〜1−N
のうちのいずれのプロセッサのキャッシュメモリにその
コピーが存在するかの情報と、が書き込まれており、処
理S4では、これらの情報から主記憶14と各プロセッ
サ1−1〜1−Nのキャッシュメモリ12との一貫性を
保つ処理を行なう。
込みリクエストのいずれであるかを判定し、リクエスト
が、読み出しリクエストの場合には、処理S6で主記憶
14のデータを読み出し、処理S7で読み出したメモリ
ブロックをCPU11に渡す。処理S5でリクエスト
が、書き込みリクエストの場合には、処理S8で主記憶
14にデータを書き込む。
1からのリクエストアドレスが他プロセッサ1−2〜1
−Nの主記憶14へのリクエストである場合の処理手順
である。
レスから、どのプロセッサ1−2〜1−Nの主記憶14
へのリクエストであるかを求め、プロセッサ間通信装置
18を介して、該当するプロセッサ1−2〜1−Nにリ
クエストを転送する。
し/書き込みリクエストのいずれであるかを判定し、リ
クエストが読み出しリクエストの場合は、処理S11で
リクエストを送ったプロセッサ1−2〜1−Nからリク
エストしたメモリブロックが転送されて来るのを待ち、
処理S13で、転送されたメモリブロックをCPU11
に渡す。処理S10でリクエストが書き込みリクエスト
の場合には、処理はそのまま終了する。
セッサ間ネットワーク2とプロセッサ間通信装置18を
経由して、他のプロセッサ1−2〜1−NのCPU11
からの要求を受け付けた時の処理例を示す。
に対するディレクトリアドレスを求める。処理S22で
は、処理S21で求めたアドレスによってディレクトリ
15の内容を読み出す。ディレクトリ15には、そのメ
モリブロックの状態とどのプロセッサのキャッシュメモ
リにそのコピーが存在するかの情報が書かれており、処
理S23では、それらの情報から主記憶14と各プロセ
ッサ1−1〜1−Nのキャッシュメモリ12との一貫性
を保つ処理を行なう。
出しリクエストの場合は、処理S25で主記憶14のデ
ータを読み出し、処理S26で読み出したメモリブロッ
クをプロセッサ間通信装置18を介して要求元プロセッ
サ1−2〜1−Nに転送する。
クエストの場合は、処理S27で主記憶14にデータを
書き込む。
シンクロナスDRAMによって構成される主記憶14の
一部に置かれる。
クの割り当ての一例を示した図である。図4に示した構
成例は、内部に異なる2つの内部バンクを持つシンクロ
ナスDRAMの例である。
例は、メモリ空間を示すアドレスの最上位ビットを用い
て内部バンクを選択する構成とされ、主記憶空間30は
前半分が内部バンク0領域31となり、後半分が内部バ
ンク1領域32に割り当てられる。
当ての例は、メモリ空間を示すアドレスの上位2ビット
を用いて内部バンクを選択する構成とされ、主記憶空間
40は4分の1ずつ、内部バンク0領域41、内部バン
ク1領域42、内部バンク0領域41、内部バンク1領
域42に割り当てられる。
リマップとディレクトリの配置の概要を示す。
iを用いる。主記憶空間51は、データ領域52とディ
レクトリ領域53とに分けられる。ディレクトリ領域5
3は、主記憶空間51の予め設定されたディレクトリ先
頭番地55からの空間に置かれる。
4に対応するディレクトリは、ディレクトリ領域53の
内部バンク1領域内に配置される(対応するディレクト
リ56)。
ける、リクエストアドレスから対応するディレクトリア
ドレスを求める計算方法の例を示す図である。図6
(A)は、ディレクトリアドレスの計算手順を模式的に
示す図である。図6(B)はアドレス変換の真理値表を
示す図である。
エストアドレス(A[L:0])を示しており、メモリブロ
ックがいずれの内部バンクにあるかは、第iビット(内
部バンク選択ビット)で示される。また、最下位のnビ
ットは、ブロック内のオフセットアドレスを示す。
ビットシフトする(右にnビットシフトし、上位側nビ
ットには“0”がセットされる)。
リ先頭アドレス(DTop)を示す。ディレクトリ先頭ア
ドレスは内部ブロックの境界にあるものとする。
リクエストアドレスとディレクトリ先頭アドレスの和を
計算し、仮ディレクトリアドレス(TDA[L:0])を計
算する。
ィレクトリアドレス(TDA)と、図6(B)のアドレ
ス変換真理値表に従って、ディレクトリアドレス(DA
[L:0])を計算する。
ドレス(DA)を決めることで、メモリ制御装置におい
て、メモリブロックとそれに対応するディレクトリを自
動的に異なる内部バンクに割り当てることが可能とな
る。
算する処理を実現するアドレス変換回路の構成例を示す
図である。
A[L..0]を入力しnビットシフトするシフタ61
と、シフタ61の出力とデイレクトリ先頭アドレスを加
算する加算器62と、リクエストアドレスA[i]と加
算器62の出力である仮ディレクトリアドレスのiビッ
ト(TDA[i])とを比較する比較器64と、仮ディ
レクトリアドレスのi−nビット(TDA[i−n]
と、リクエストアドレスiビット(A[i])のインバ
ータ63による反転出力と、のいずれか一方を、比較器
64の出力を選択制御信号として選択出力するセレクタ
65と、からなる。
[L..0]をnビットシフトし、その結果は、ディレク
トリ先頭アドレスDTop[L..0]と加算器62で加算
され、仮ディレクトリアドレスTDA[L..0]が求め
られる。インバータ63、比較器64、及びセレクタ6
5は、図6(B)の真理値表に従ったアドレス変換を行
なう。
[i])は、リクエストアドレスのiビット(A
[i])を反転した値を用い、ディレクトリアドレスの
i−nビット(DA[i−n])は、仮ディレクトリア
ドレスのi−nビット(TDA[i−n])とリクエス
トアドレスのiビット(A[i])とが一致する時はA
[i]を反転した値とし、一致しない時はTDA[i−
n]となる。
DRAMバンクで構成した例であるが、主記憶を複数の
メモリバンクによって構成する場合も、同様に処理する
ことができる。この場合は、独立して、行アドレスを保
持しておくことができるバンク数は、(メモリバンク
数)×(内部バンク数)となる。
によって構成する場合、各バンク毎にそのバンク内にデ
ィレクトリを配置する方法と、主記憶領域全体のディレ
クトリをあるメモリブロックにまとめて配置する方法が
考えられる。各バンク毎にそのバンク内にディレクトリ
を配置する方法では、上記のディレクトリアドレス計算
方法がそのまま適用できる。
リブロックにまとめて配置する方法の一例を図8に示
す。図8は、全体が4つのメモリバンクで構成され、ア
ドレスの最上位の2ビットでバンクの選択を行ない、次
の1ビットで各バンクの内部バンクの選択を行なうよう
にした構成を示すものであり、主記憶空間71は、バン
ク0領域72、バンク1領域73、バンク2領域73、
及びバンク3領域74から構成される。
4の内部バンク1にまとめて配置され、主記憶空間71
の残りの部分はデータ領域76である。この場合、ディ
レクトリは、常にデータと独立したバンクにあるので、
データとは独立に行アドレスを保持することができ、デ
ィレクトリとデータとの連続アクセスが起こった場合
に、高速に処理を行なうことが可能である。
明する。図9は、本発明を適用した並列計算機の第2の
実施形態の構成を示す図である。本実施形態において、
並列計算機は、N台のプロセッサ81−1〜81−Nを
バス82によって相互に接続したものである。
U811と、キャッシュメモリ812とで構成される。
CPU811は演算処理等を司り、必要に応じてバスを
通してメモリ制御装置83に主記憶84のアクセスを要
求する。主記憶84はシンクロナスDRAMによって構
成され、ディレクトリ85は主記憶84の一部に置かれ
る。
1〜81−NのCPU811からの要求を受け付け、デ
ィレクトリ85をアクセスしキャッシュメモリ812の
一貫性を保ち、主記憶84のデータの読み書きの処理を
行なう。
ドレスの計算方法は、前記第1の実施形態に準ずる。
明する。図10は、本発明を適用した並列計算機の第3
の実施形態の構成を示す図である。この並列計算機は、
N台のプロセッサ91−1〜91−Nと、M台のメモリ
ユニット93−1〜93−Mをプロセッサ−メモリ間ネ
ットワーク92によって相互に接続したものである。
U911と、キャッシュメモリ912とで構成される。
CPU911は演算処理等を司り、必要に応じてプロセ
ッサ−メモリ間ネットワーク92を通してメモリユニッ
ト93−1〜93−Mに主記憶932のアクセスを要求
する。各メモリユニット93−1〜93−Mは、メモリ
制御装置931とシンクロナスDRAMによって構成さ
れる主記憶932から成る。ディレクトリ933は主記
憶932の一部に置かれる。
モリ間ネットワーク92から要求を受け付け、ディレク
トリ933をアクセスしキャッシュの一貫性を保ち、主
記憶932の読み書きの処理を行なう。ディレクトリ9
33の配置とディレクトリアドレスの計算方法は、前記
第1の実施形態に準ずる。
記憶をシンクロナスDRAMを用いて構成し、メモリ制
御装置において、あるメモリブロックとそれに対応する
ディレクトリを異なる内部バンクに配置することで、そ
れぞれ行アドレスを保持したまま高速にアクセス可能に
なるため、特別なハードウェアを用いることなく、CP
Uなどからのメモリ読み書きのリクエストをより高速に
処理し得るという効果を有する。
示す図である。
がCPUからの要求を受け付けた時の処理例を示すフロ
ーチャートである。
の他のプロセッサのCPUからの要求を受け付けた時の
処理例を示すフローチャートである。
RAMの内部バンクの割り当て例を示す図である。
マップとディレクトリの配置の概要を示す図である。
におけるディレクトリアドレスの計算方法の例を示す図
である。
におけるディレクトリアドレスのアドレス変換回路の構
成の示す図である。
メモリバンクで構成した場合ディレクトリの配置例を示
す図である。
成を示す図である。
構成を示す図である。
Claims (2)
- 【請求項1】CPUと主記憶の一部のコピーを保持する
キャッシュメモリを含むプロセッサを複数備えて成る並
列計算機におけるディレクトリを用いた共有メモリの制
御方法において、 主記憶を複数の内部バンクを有するシンクロナスDRA
Mで構成し、 ディレクトリを前記主記憶の一部に置き、所定のアドレ
スビットで前記シンクロナスDRAMの内部バンクの選
択を行なうメモリ制御装置を備え、 メモリブロックとこれに対応するディレクトリとが異な
る内部バンクに配置され、 キャッシュの一貫性を保つ処理を行なうためのディレク
トリアクセスとデータアクセスをそれぞれ行アドレスを
保持した状態にて行なうことを特徴とする共有メモリ型
並列計算機のメモリ制御方法。 - 【請求項2】CPUと主記憶の一部のコピーを保持する
キャッシュメモリを含むプロセッサを複数備えて成る並
列計算機におけるディレクトリを用いた共有メモリの制
御装置において、 複数の内部バンクを有するシンクロナスDRAMからな
る主記憶を備え、 ディレクトリを前記主記憶の一部に置き、 所定のアドレスビットで前記シンクロナスDRAMの内
部バンクの選択を行ない、 メモリブロックとこれに対応するディレクトリとが異な
る内部バンクに配置され、 キャッシュの一貫性を保つ処理を行なうためのディレク
トリアクセスとデータアクセスがそれぞれ行アドレスを
保持した状態にて行われるように構成されたことを特徴
とする共有メモリ型並列計算機のメモリ制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP05686996A JP3243996B2 (ja) | 1996-02-19 | 1996-02-19 | メモリ制御方法およびその装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP05686996A JP3243996B2 (ja) | 1996-02-19 | 1996-02-19 | メモリ制御方法およびその装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH09223066A JPH09223066A (ja) | 1997-08-26 |
JP3243996B2 true JP3243996B2 (ja) | 2002-01-07 |
Family
ID=13039438
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP05686996A Expired - Fee Related JP3243996B2 (ja) | 1996-02-19 | 1996-02-19 | メモリ制御方法およびその装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3243996B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001175463A (ja) * | 1999-12-16 | 2001-06-29 | Matsushita Electric Ind Co Ltd | コンピュータ装置 |
-
1996
- 1996-02-19 JP JP05686996A patent/JP3243996B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH09223066A (ja) | 1997-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5586283A (en) | Method and apparatus for the reduction of tablewalk latencies in a translation look aside buffer | |
US4400774A (en) | Cache addressing arrangement in a computer system | |
JPS6334652A (ja) | コンピユ−タ・メモリのアクセス方法およびシステム | |
JP2000242559A (ja) | 情報処理装置及び半導体装置 | |
RU97117589A (ru) | Контроллер памяти, который выполняет команды считывания и записи не в порядке простой очереди | |
JP2561261B2 (ja) | バッファ記憶アクセス方法 | |
JP3243996B2 (ja) | メモリ制御方法およびその装置 | |
EP0505157B1 (en) | Memory access control | |
JPH10162157A (ja) | グラフィックコントローラ | |
US6775742B2 (en) | Memory device storing data and directory information thereon, and method for providing the directory information and the data in the memory device | |
US6629219B1 (en) | Method and apparatus for providing highly programmable memory mapping and improved interleaving | |
JP4071930B2 (ja) | シンクロナスdram | |
US4493030A (en) | Plural data processor groups controlling a telecommunications exchange | |
JPH0561769A (ja) | メモリ・アクセス方法 | |
JPH0520195A (ja) | キヤツシユメモリ制御装置 | |
JPH05108471A (ja) | メモリ装置 | |
JPH1091527A (ja) | 記憶装置および記録媒体 | |
JPH01195552A (ja) | メモリアクセス制御方式 | |
JP2684752B2 (ja) | 拡張記憶制御方式 | |
JPS6037932B2 (ja) | キャッシュメモリ制御方式 | |
JP2000066946A (ja) | メモリコントローラ | |
JPS6336346A (ja) | バンク切替回路 | |
JPH05250256A (ja) | メモリアクセス方法 | |
JPH0414153A (ja) | メモリアクセス回路 | |
JPH0589668A (ja) | メモリ装置とこれを用いたデータ処理システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20010605 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20010925 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071026 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081026 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091026 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091026 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101026 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111026 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121026 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131026 Year of fee payment: 12 |
|
LAPS | Cancellation because of no payment of annual fees |