JP2924708B2 - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JP2924708B2
JP2924708B2 JP7113740A JP11374095A JP2924708B2 JP 2924708 B2 JP2924708 B2 JP 2924708B2 JP 7113740 A JP7113740 A JP 7113740A JP 11374095 A JP11374095 A JP 11374095A JP 2924708 B2 JP2924708 B2 JP 2924708B2
Authority
JP
Japan
Prior art keywords
data
address
storage device
relocation
bus
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
Application number
JP7113740A
Other languages
English (en)
Other versions
JPH08286928A (ja
Inventor
淳 鳥居
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
Nippon Electric Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP7113740A priority Critical patent/JP2924708B2/ja
Publication of JPH08286928A publication Critical patent/JPH08286928A/ja
Application granted granted Critical
Publication of JP2924708B2 publication Critical patent/JP2924708B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)
  • Devices For Executing Special Programs (AREA)
  • Memory System (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は主記憶の内容の写しを保
持するキャッシュメモリを備えた情報処理装置に関す
る。
【0002】
【従来の技術】プロセッサの性能は半導体技術の向上や
アーキテクチャ的な工夫によって著しく向上している
が、データを記憶する主記憶装置のアクセスタイムはプ
ロセッサの性能向上に追いついておらず、メモリアクセ
スのコストが相対的に増大している。高性能プロセッサ
では、メモリアクセスの時間的局所性や空間的局所性を
活用して、高速なキャッシュメモリを設けることによっ
て、このメモリアクセスコストを低減し、この問題に対
処している。しかしながら、大規模な科学技術計算の中
にはメモリアクセスの局所性がほとんどないため、キャ
ッシュメモリが有効に働かず、メモリアクセスによる遅
延によって汎用のプロセッサでこれらの計算を高速処理
するのは難しいという問題があった。
【0003】このような大規模な科学技術計算を高速に
処理するために、従来のスーパコンピュータでは、主記
憶へのバンド幅を増やしたり、計算のデータのための大
容量のベクトルレジスタを用意し、キャッシュメモリに
頼らないシステムを構成していることは周知の技術であ
る(例えば、情報処理学会学会誌Vol.34,NO.3,pp.361-
371,1993)。このような計算機の構成例を図6に示す。
図6において、ベクトルレジスタ905は、レジスタ記
憶装置908と、その読み出しと書き込みを行う位置を
指定する読み出しポインタ909,読み出しセレクタ9
11,書き込みポインタ910および書き込みセレクタ
912と、加算器913などから構成されており、主記
憶装置901上の不連続配置のデータを連続的にロード
パイプライン902からロードし、演算パイプライン9
04で連続的に演算を行えるようになっている。なお、
903はストアパイプライン、906はレジスタ書き込
み用バス、907はレジスタ読み出し用バスである。こ
のようなシステム構成はコストが高くなり、用途が限定
されてしまうという問題が生じる。
【0004】また、汎用のマイクロプロセッサに、上述
のようなベクトルレジスタやそれに代わる専用のレジス
タを付加して、前述のような科学技術計算に適用しよう
とする技術もいくつか提案されている。例えば、中村氏
らが1993年に発表した論文(中村 宏,位守 弘
充,中澤 喜三郎,「レジスタウィンドウ方式を用いた
疑似ベクトルプロセッサの評価」,情報処理学会論文誌
Vol,34,No.4,pp669-680,1993)では、科学技術計算に用
いられる浮動小数点を格納するレジスタをウィンドウ方
式で拡張して、このレジスタに値をプリフェッチするこ
とによって、主記憶装置のレイテンシ問題に対処してい
る。この方式による浮動小数点レジスタの構成を図7に
示す。この方式では、ローカルレジスタ1006,オー
バラップレジスタ1007,グローバルレジスタ100
8から構成される物理レジスタ1001をハードウェア
で用意し、ウィンドウを切り替えることによって、現在
有効であるレジスタを切り替える。これによって、演算
に使用しているレジスタ以外のレジスタに対するデータ
のロード、ストアを演算と同時に行うことができ、演算
の効率が向上する。なお、図7において、1002〜1
005は物理レジスタで、それぞれウィンドウ0〜3に
対応している。
【0005】
【発明が解決しようとする課題】しかしながら、上記の
処理方式は、数値計算に特化した専用レジスタを用意す
るため、大規模計算に必要充分なレジスタを用意するの
はコストが大きい。また、レジスタが有効に使用できる
用途以外では、これらの資源を活用できない。従って、
価格性能比の向上を要求される汎用のプロセッサには採
用することは難しい。このため、通常のキャッシュメモ
リを有する汎用プロセッサを用いらざるを得ないが、不
連続配置のデータを用いる計算を従来の汎用プロセッサ
で実行した場合、 ・データ参照の局所性が少ないため、キャッシュのヒッ
ト率が低下し、主記憶装置のアクセス遅延が隠蔽できな
くなる。従って、演算パイプラインを有する汎用プロセ
ッサでは、所望データの供給が追いつかないためにパイ
プラインストールが多く発生する。 ・キャッシュメモリでは、所定サイズのラインと呼ばれ
る単位(例えば4ワード)でデータをキャッシングする
ため、1つのデータを読み出す場合にも計算に不必要な
隣接する複数のデータもキャッシングされてしまう。と
いう問題が生じ、性能低下の要因となる。
【0006】そこで本発明では、汎用プロセッサに広く
使用されているキャッシュメモリを不連続配置のデータ
に対して有効に活用できるようにしてキャッシュのヒッ
ト率を高め、上述した問題を解決しようとするものであ
る。
【0007】
【課題を解決するための手段】上記問題を解決するため
に、本発明の情報処理装置は、主記憶装置よりも高速な
記憶装置であって再配置したデータを記憶するためのデ
ータ再配置用記憶装置と、主記憶装置上に不連続に存在
する一連のデータをデータ再配置用記憶装置上に連続す
る一連のデータとして再配置する、プロセッサコアとは
別に設けられたアドレス変換装置とを備え、キャッシュ
メモリはデータ再配置用記憶装置の内容および主記憶装
置の内容の写しを保持するようにし、また主記憶装置上
に不連続に存在する一連のデータを使用するアプリケー
ションプログラムは、前記再配置後のデータをアクセス
するように構成されている。
【0008】また、別の実施例においては、再配置した
データを記憶するために前記データ再配置用記憶装置に
代えて主記憶装置上のデータ再配置領域を使用し、アド
レス変換装置は主記憶装置上に不連続に存在する一連の
データを前記データ再配置領域上に連続する一連のデー
タとして再配置し、キャッシュメモリは主記憶装置の内
容の写しを保持するようにし、主記憶装置上に不連続に
存在する一連のデータを使用するアプリケーションプロ
グラムは、前記再配置後のデータをアクセスするように
構成される。
【0009】アドレス変換装置は、主記憶装置上に不連
続に存在する一連のデータのアドレスが或る規則性を持
っている場合には、その規則性を示す再配置情報に従っ
て再配置すべきデータの読み出しを行い、主記憶装置上
に不連続に存在する一連のデータのアドレスが、主記憶
装置上の別の箇所に格納されたポインタで示される場合
には、そのポインタの格納アドレスを示す再配置情報に
従ってポインタの読み出しと再配置すべきデータの読み
出しとを行う。
【0010】
【作用】本発明においては、アプリケーションプログラ
ムが使用する、主記憶装置上に不連続に存在する一連の
データを、アドレス変換装置が、主記憶装置とは別のデ
ータ再配置用記憶装置上または主記憶装置上に設けられ
たデータ再配置領域上に、アドレスの連続する一連のデ
ータとして再配置し、キャッシュメモリがこの再配置後
のデータをキャッシング対象とする。
【0011】
【実施例】図2は本発明の一実施例の情報処理装置にお
けるメモリアクセスの概念図である。本実施例において
は、プロセッサコア101上で動作するソフトウェアが
アクセスする仮想アドレス空間201中に存在する不連
続配置データ206を、データ再配置仮想アドレス空間
202上で連続データ205としてアクセス可能になる
ように再配置を行う。このために、物理アドレス空間上
にデータ再配置メモリ空間203を用意し、アドレス変
換装置107を用いて物理アドレス空間204上の不連
続データ208(不連続配置データ206に対応する)
を、データ再配置メモリ空間203上に連続データ20
7(連続データ205に対応する)としてコピーするも
のである。
【0012】このように再配置されたデータは、別の仮
想アドレス空間に写像される。従って、不連続データを
アクセスするアプリケーションコードは、別アドレス空
間の連続データをアクセスするように書き替えられてい
る。この書き替えは、ユーザやコンパイラによって行わ
れる。
【0013】図1は図2で説明したようなデータ再配置
機能を備えた本発明の情報処理装置の一実施例の要部ブ
ロック図である。図1において、プロセッサコア101
は演算パイプラインやレジスタセットから構成される通
常のプロセッサのコア部分である。プロセッサコア10
1は、必要なデータの読み出しと書き込みの為にプロセ
ッサデータバス151によりキャッシュメモリインタフ
ェース103と接続されている。キャッシュメモリイン
タフェース103は、キャッシュデータバス153及び
キャッシュアドレスバス167によりキャッシュメモリ
104に接続されると共に、主記憶装置データバス15
2及び主記憶装置物理アドレスバス166により主記憶
装置インタフェース105に接続され、主記憶装置イン
タフェース105は主記憶装置内部データバス154及
び主記憶装置内部アドレスバス168により主記憶装置
106に接続されている。また、仮想アドレスを物理ア
ドレスに変換するためにTLB(Translation Lookasid
e Buffer)102が設けられており、プロセッサコア1
01とプロセッサ仮想アドレスバス165及びTLB制
御線181で接続され、キャッシュメモリインタフェー
ス103とアドレスバス175で接続されている。ここ
までの部分は通常のプロセッサと相違ない。
【0014】本実施例ではさらに、データ再配置のため
に、アドレス変換装置107と、データ再配置用記憶装
置109と、データ再配置用記憶装置インタフェース1
08とが備えられている。
【0015】アドレス変換装置107は、キャッシュメ
モリインタフェース103と信号線183,アドレス変
換主記憶装置アクセス用物理アドレスバス173および
アドレス変換装置用リードデータバス157で接続さ
れ、主記憶装置インタフェース105とアドレス変換主
記憶装置アクセス用物理アドレスバス173,アドレス
変換装置用リードデータバス158及びアドレス変換装
置用ライトデータバス159で接続され、TLB102
とアドレス変換用仮想アドレスバス171,172およ
び信号線186で接続され、更に、データ再配置用記憶
装置インタフェース108とアドレス変換再配置用記憶
装置アクセス用物理アドレスバス174,アドレス変換
装置用ライトデータバス160およびアドレス変換装置
用リードデータバス162で接続されている。また、デ
ータ再配置用記憶装置インタフェース108はデータ再
配置用記憶装置データバス155及びデータ再配置用物
理アドレスバス169によりキャッシュメモリインタフ
ェース103にも接続され、更にデータ再配置用記憶装
置内部データバス156及びデータ再配置用内部アドレ
スバス170を介してデータ再配置用記憶装置109に
接続されている。
【0016】アドレス変換装置107は、再配置をソフ
トウェアから指定するための特殊レジスタ131,再配
置後の物理アドレスを生成するための再配置アドレス生
成装置132,再配置元の物理アドレスを生成するため
の物理アドレス生成装置133,全体の制御を行うシー
ケンサ134,変換情報を保存する変換情報テーブル装
置135を有し、また、実際にデータを再配置するため
に、リードバッファ136,シフタ137,マルチプレ
クサ138,ライトバッファ139,ライトバス140
およびリードバス141を備えている。
【0017】特殊レジスタ131は、プロセッサコア1
01と特殊レジスタアクセス制御線182により、変換
情報テーブル装置135と変換情報テーブル入出力バス
184により、シーケンサ134と信号線191によ
り、物理アドレス生成装置133と信号線193によ
り、それぞれ接続される。シーケンサ134は特殊レジ
スタ131に接続されると共に、TLB102と信号線
186により接続され、また再配置アドレス生成装置1
32,物理アドレス生成装置133,リードバッファ1
36,シフタ137,マルチプレクサ138およびライ
トバッファ139の制御のためにそれらとシーケンサ制
御線185により接続されている。再配置アドレス生成
装置132は、制御線185によりシーケンサ134か
らの制御を受けて、シーケンサ134から信号線194
を通じて伝達される値とTLB102から供給される物
理アドレスとから再配置アドレスを生成し、アドレス変
換再配置用記憶装置アクセス用物理アドレスバス174
を通じてデータ再配置用記憶装置インタフェース108
に伝達する。物理アドレス生成装置133は、制御線1
85によりシーケンサ134からの制御を受けて、アド
レス変換用物理アドレスバス172を通じてTLB10
2から供給される物理アドレスと信号線193を通じて
特殊レジスタ131から供給される値とからアドレス変
換用物理アドレスを生成し、アドレス変換用物理アドレ
スバス173を通じてキャッシュメモリインタフェース
103及び主記憶装置インタフェース105に伝達す
る。
【0018】また、ライトバス140は、アドレス変換
装置用ライトデータバス159により主記憶装置インタ
フェース105に、アドレス変換装置用ライトデータバ
ス160によりデータ再配置用記憶装置インタフェース
108に、アドレス変換装置用ライトデータバス161
によりライトバッファ139に接続される。リードバス
141は、アドレス変換装置用リードデータバス157
によりキャッシュメモリインタフェース103に、アド
レス変換装置用リードデータバス158により主記憶装
置インタフェース105に、アドレス変換装置用リード
データバス162によりデータ再配置用記憶装置インタ
フェース108に、出力バス195によりリードバッフ
ァ136に、出力バス196によりマルチプレクサ13
8に、それぞれ接続される。
【0019】更に、リードバッファ136の出力はシフ
タ137の入力に接続され、シフタ137の出力は、リ
ードバス141の出力およびライトバッファ139の出
力と共にマルチプレクサ138の入力に接続される。マ
ルチプレクサ138の出力はライトバッファ139の入
力に接続され、ライトバッファ139の出力は、アドレ
ス変換装置用ライトデータバス161によりライトバス
140に接続されると共に、マルチプレクサ138の入
力にフィードバックされる。
【0020】以下、このように構成された本実施例の動
作について順を追って説明する。
【0021】本発明によるデータの再配置は、ハードウ
ェアとソフトウェアの協調によって実現される。最初
に、データ再配置情報を設定する必要がある。このデー
タ再配置情報は、ソフトウェアのデータ参照の順序に応
じて決まるため、その設定はソフトウェアによって行わ
れる。ソフトウェアで指示する方法には命令セットを拡
張する方法や、特殊レジスタに値を設定する方法が考え
られるが、本実施例では特殊レジスタ131によって設
定する方法を採用している。特殊レジスタ131は図1
に示すようにアドレス変換装置107中にあり、 ・データの単位(バイト,ワード,ロングワードなど) ・データの開始仮想アドレス ・データ配置の規則 ・データ数 ・再配置仮想アドレス といった再配置情報が、プロセッサコア101上で動作
するソフトウェアからの指示により特殊レジスタアクセ
ス制御線182を通じて特殊レジスタ131に設定され
る。なお、この特殊レジスタ131に設定された再配置
情報は、変換情報テーブル入出力バス184を通じて変
換情報テーブル装置135にも伝達され、後述する書き
戻し時まで保存される。
【0022】例えば、仮想アドレス0x1000番地か
ら始まるデータで、0x1010,0x1020,0x
1030,…と合計100個のデータを、読み出しのみ
で仮想アドレス0x20000番地以降に再配置する場
合には、 ・データの単位 ワード ・データの開始仮想アドレス 0x1000 ・データ配置の規則 +0x10 ・データ数 100 ・再配置仮想アドレス 0x40000 といった再配置情報が特殊レジスタ131に設定され
る。
【0023】ソフトウェアによって特殊レジスタ131
に必要な再配置情報が設定されると、シーケンサ134
が起動され、その制御の下で再配置処理が実行される。
先ず、シーケンサ134は特殊レジスタ131に設定さ
れたデータの開始仮想アドレスをアドレスバス171を
通じてTLB102に送り物理アドレスに変換させる。
TLB102で変換されて得られた物理アドレスはバス
172を通じて物理アドレス生成装置133に伝達され
る。物理アドレス生成装置133は、シーケンサ134
の制御よって、最初はTLB102から伝達された物理
アドレスを選択し、この選択した物理アドレスをそのま
ま物理アドレスバス173を通じて主記憶装置インタフ
ェース105に送出する。なお、そのアドレスの最新デ
ータがキャッシュメモリ104中に存在する可能性もあ
るためキャッシュメモリインタフェース103に対して
も同じアドレスを送出する。その後、物理アドレス生成
装置133は、今回生成した物理アドレスと特殊レジス
タ131に設定されているデータ配置の規則とから2番
目以降の物理アドレスを順次に生成して物理アドレスバ
ス173に順次に出力する動作を、特殊レジスタ131
に設定されたデータ数分の物理アドレスを発生し終える
まで続ける。つまり、前述の例では、仮想アドレス0x
1000が物理アドレス0x2000にマッピングされ
ているとすると、TLB102によって0x1000が
0x2000番地に変換され、物理アドレス生成装置1
33では、0x2000から0x10番地毎の合計10
0個のアドレスを生成して出力する。
【0024】物理アドレス生成装置133からバス17
3を介して物理アドレスの供給を受けたキャッシュメモ
リインタフェース103は、キャッシュメモリ104中
に該当するデータが存在する場合には、そのデータを含
むラインをデータバス157を介してリードバス141
に送る。また、主記憶装置インタフェース105は主記
憶装置106から読み出した該当データを含むラインを
データバス158を介してリードバス141に送信す
る。
【0025】リードバス141は、キャッシュメモリイ
ンタフェース103からデータが送られてきた場合には
そのデータを、送られてきていない場合には主記憶装置
インタフェース105から送られてきたデータをリード
バッファ136に書き込む。このリードバッファ136
に書き込まれたデータは、次段のシフタ137によって
必要に応じて論理シフトされてマルチプレクサ138に
供給される。マルチプレクサ138は、シフタ137か
ら供給されたデータとライトバッファ139に格納され
ているデータとをバイト単位で選択して新たにライトバ
ッファ139に書き込むことで、再配置すべきデータを
ライトバッファ139上で連続するデータとして整列化
する。そして、このライトバッファ139のデータがデ
ータバス161,ライトバス140およびデータバス1
60を介してデータ再配置用記憶装置インタフェース1
08に供給され、データ再配置用記憶装置インタフェー
ス108は再配置アドレス生成装置132から物理アド
レスバス174を通じて同時に供給されている物理アド
レスが指し示すデータ再配置用記憶装置109に、上記
のデータを書き込む。
【0026】これらの機能の動作の詳細を以下具体例を
用いて説明する。なお、データバスは8バイト幅、デー
タ再配置用仮想メモリ空間の0x40000番地はデー
タ再配置用記憶装置109の0x0番地にTLB102
によってマッピングされているとし、その他の設定は前
述した例と同じものとする。
【0027】この場合、主記憶装置インタフェース10
5或いはキャッシュメモリインタフェース103からは
8バイト単位で、0x2007−0x2000番地のデ
ータが最初に送信されて、8バイト容量のリードバッフ
ァ136に格納される。このデータ中の0x2003−
0x2000番地の部分がデータ再配置用記憶装置10
9の0x3−0x0番地に格納すべきデータであり、こ
の場合はシフトする必要がないので、シフタ137でシ
フトされることなくマルチプレクサ138を通じてライ
トバッファ139に格納される。次に、0x2017−
0x2010番地のデータが送られてきて、リードバッ
ファ136に格納される。このデータ中の0x2013
−0x2010番地の部分がデータ再配置用記憶装置1
09の0x7−0x4番地に格納すべきデータであるの
で、シフタ137によって4バイト左シフトを行い、マ
ルチプレクサ139は、下位4バイトはライトバッファ
139の内容を、上位4バイトはシフタ137の内容を
選択し、ライトバッファ139に格納する。これにより
ライトバッファ139には、順に、物理アドレス0x2
013,0x2012,0x2011,0x2010,
0x2003,0x2002,0x2001,0x20
00番地のデータが格納されることになる。
【0028】このデータはデータ再配置用記憶装置10
9の0x0番地から格納すべきデータなので、再配置ア
ドレス生成装置132は0x0番地を発生する。これ
は、シーケンサ134が特殊レジスタ131に設定され
た再配置仮想アドレス0x40000番地をTLB10
2によって物理アドレス0x0に変換してバス172を
通じて再配置アドレス生成装置132に伝達し、再配置
アドレス生成装置132がこの伝達された物理アドレス
0x0をそのまま出力することで行われる。なお、再配
置アドレス生成装置132は、最初の物理アドレス0x
0を生成した後は、自ら生成した物理アドレスとシーケ
ンサ134から信号線194を通じて入力される増分値
(0x8)とから、物理アドレス0x8,0x16,…
というように、0x8番地毎にアドレスを生成する。
【0029】再配置アドレス生成装置132で発生され
た物理アドレス0x0は物理アドレスバス174を通じ
てデータ再配置用記憶装置インタフェース108に送出
され、同時にライトバッファ139に格納されていた上
記のデータがライトデータバス161,ライトバス14
0及びライトデータバス160を通じてデータ再配置用
記憶装置インタフェース108に送出され、データ再配
置用記憶装置インタフェース108がデータ再配置用記
憶装置109の0x0番地から上記のデータを格納す
る。以上で、再配置すべきデータのうち最初の2ワード
のデータ(合計8バイト)のデータ再配置用記憶装置1
09への再配置が完了したことになる。アドレス変換装
置107は以上のような動作を繰り返すことにより、特
殊レジスタ131に設定された全ての再配置対象データ
についての再配置を実施する。そして、再配置の完了
時、シーケンサ134はTLB102に対して、プロセ
ッサコア101及びキャッシュメモリインタフェース1
03からの当該データ再配置仮想アドレス空間202に
対応する変換要求を有効化するよう指示する。
【0030】次に、プロセッサコア101上で動作する
ソフトウェアによるメモリアクセス時の動作について説
明する。
【0031】プロセッサコア101上で動作するアプリ
ケーションプログラムは、前述のようにして再配置され
たデータを、再配置された仮想アドレスに対してアクセ
スし、計算等の所定の処理を実行することになる。この
ため、アプリケーションプログラム中の、例えば、 のように再配置前のアドレスでデータを参照しているコ
ード部分は、例えば、 のように書き替えられている。なお、ここではC言語レ
ベルで書き替える例を示したが、通常はコンパイラによ
ってこれらの再配置と先の再配置情報の特殊レジスタへ
の設定とを組み合わせて自動的に行うのが望ましい。
【0032】さて、上記アプリケーションコードを実行
中のプロセッサコア101が上記の再配置仮想アドレ
ス、例えば0x40000番地に対してアクセスを起こ
すと、当初は該当するデータがキャッシュメモリ104
中に存在しないため、キャッシュメモリインタフェース
103は、該当するデータを含むラインをデータ再配置
用記憶装置インタフェース108を通じてデータ再配置
用記憶装置109から読み出してキャッシュメモリ10
4に格納すると共に、当該ライン中の該当するデータを
プロセッサコア101に返却する。これは次のようにし
て行われる。
【0033】先ず、アクセス番地0x40000がアド
レスバス175によってTLB102に伝達されて、T
LB102によってデータ再配置メモリ空間203への
アクセスにかかるアドレスに変換される。次にキャッシ
ュメモリインタフェース103はこの変換後のアドレス
を含むラインアドレスをアドレスバス169を通じてデ
ータ再配置用記憶装置インタフェース108に伝達す
る。データ再配置用記憶装置インタフェース108は、
伝達されたラインアドレスのラインをデータ再配置用記
憶装置109から読み出し、キャッシュメモリインタフ
ェース103に返却する。キャッシュメモリインタフェ
ース103は、この返却されたラインをキャッシュメモ
リ104に格納し、且つ、そのライン中の該当するデー
タをプロセッサコア101に返却する。このように、再
配置後は通常のデータと同様に再配置データを扱うこと
ができる。なお、プロセッサコア101が再配置完了前
にデータ再配置仮想アドレス空間202をアクセスした
場合、TLB102では、当該データ再配置仮想アドレ
ス空間に対するプロセッサコア101からの変換要求が
未だ有効化されていないので、再配置が終了するまでプ
ロセッサコア101の処理が待たされる。
【0034】またキャッシュメモリ104へはライン単
位でキャッシングされるものであり、データ再配置用記
憶装置109にはアプリケーションコードがアクセスす
るデータのみを連続したアドレスに詰め込んで配置して
あるため、キャッシュのミスヒット時にデータ再配置用
記憶装置109からキャッシュメモリ104にキャッシ
ングされるデータは全てアプリケーションコードがアク
セス対象とするデータとなる。この結果、キャッシュの
ミスヒット率が低下する。
【0035】以上説明したように、本実施例によれば、
プロセッサコア101はキャッシュメモリ104であた
かも連続したアドレスのデータを扱うことが可能にな
る。この結果、 ・キャッシュメモリに不要なデータをロードすることが
なくなる。 ・キャッシュメモリの浪費を回避し、必要なデータがキ
ャッシュメモリからリプレイスされてしまう可能性が低
減する。という効果があり、キャッシュメモリ104を
効率良く利用することができる。なお、再配置の処理を
データを実際に使用するよりも十分前に行うことによ
り、データ再配置中の時間はプロセッサコア101は他
の計算処理を行うことが可能となり、さらに効率的な実
行が可能となる。
【0036】次に、再配置したデータの使用が終了した
場合に、それらのデータを通常空間へ書き戻す際の動作
を説明する。
【0037】プロセッサコア101上で動作するアプリ
ケーションプログラムは、再配置したデータの使用が終
了した場合、特殊レジスタ131にその旨を設定してア
ドレス変換装置107に対してデータの通常空間への書
き戻しを指示する。アドレス変換装置107では、先ず
シーケンサ134が、書き戻しを指示された再配置デー
タに関する再配置情報を変換情報テーブル装置135か
ら特殊レジスタ131に移し、またTLB102に対し
て、プロセッサコア101及びキャッシュメモリインタ
フェース103からの当該データ再配置仮想アドレス空
間202に対応する変換要求を無効化するよう指示す
る。
【0038】次に、シーケンサ134は、再配置アドレ
ス生成装置132でデータ再配置用記憶装置109中の
再配置データのアドレスを発生させて再配置データを順
次に読み取らせ、それらを物理アドレス生成装置133
で発生させた主記憶装置106上のアドレスに順次に書
き込ませていく。ここで、前述したように主記憶装置1
06は特定のバイト単位でしかリードライトできないた
め、書き込み先のデータを一旦読み出し、この読み出し
たデータ中の再配置データ部分をデータ再配置用記憶装
置109から読み出した再配置データで置換し、元のア
ドレスに書き戻すようにする。前述の例の場合、具体的
には以下のような動作が行われる。
【0039】シーケンサ134は、特殊レジスタ131
に設定された再配置仮想アドレス0x40000をTL
B102にて物理アドレス0x0に変換して再配置アド
レス生成装置132に与え、再配置アドレス生成装置1
32は、最初にこの物理アドレス0x0を物理アドレス
バス174を通じてデータ再配置用記憶装置インタフェ
ース108に伝達し、データ再配置用記憶装置インタフ
ェース108は、データ再配置用記憶装置109からデ
ータ再配置メモリ空間203のアドレス0x7−0x0
番地のデータを読み出し、リードデータバス162,リ
ードバス141および出力バス195を通じてリードバ
ッファ136に格納する。同時にシーケンサ134は、
特殊レジスタ131に設定されている開始仮想アドレス
0x1000をTLB102に与えて物理アドレス(例
えば0x2000とする)に変換させてアドレスバス1
72を通じて物理アドレス生成装置133に供給させ、
物理アドレス生成装置133は、最初はこのアドレス0
x2000番地を発生してアドレスバス173を通じキ
ャッシュメモリインタフェース103および主記憶装置
インタフェース105に伝達してリードを要求する。こ
れにより読み出された物理アドレス0x2007−0x
2000番地のデータはキャッシュメモリインタフェー
ス103または主記憶装置インタフェース105からリ
ードバス141に伝達され、リードバス141はこれを
出力バス196を通じてマルチプレクサ138に出力す
る。
【0040】データ再配置メモリ空間の0x3−0x0
番地のデータは物理アドレス0x2003−0x200
0番地に書き戻せばよいので、シフタ137はこの場合
はシフト動作を行わずにリードバッファ136に格納さ
れた0x2007−0x2000のデータをマルチプレ
クサ138に出力し、マルチプレクサ138は上位4バ
イトはリードバス141からきたデータ(0x2007
−0x2004番地のデータ)を、下位4バイトはシフ
タ137からきたデータ(0x3−0x0番地のデー
タ)を選択し、ライトバッファ139に格納する。ライ
トバッファ139に格納されたデータは、ライトバス1
40を通じて主記憶装置インタフェース105に送ら
れ、そのとき物理アドレス生成装置133で発生されて
いる0x2000番地を先頭とする8バイトの領域に書
き込まれる。これで、0x3−0x0の再配置データの
書き戻しが終了したことになる。
【0041】次にシーケンサ134は、物理アドレス生
成装置133から次のアドレス0x2010を発生させ
て、主記憶装置106またはキャッシュメモリ104か
ら0x2017−0x2010番地のデータをリードバ
ス141にロードし、マルチプレクサ138の入力とす
る。リードバッファ136の上位4バイトに残っている
0x7−0x4番地のデータは物理アドレス0x201
3−0x2010番地に書き戻せばよいので、シフタ1
37はこの場合は右に4バイトシフトし、マルチプレク
サ138は上位4バイトはリードバス141からきたデ
ータ(0x2017−0x2014番地のデータ)を、
下位4バイトはシフタ137からきたデータ(0x7−
0x4番地のデータ)を選択し、ライトバッファ139
に格納する。ライトバッファ139に格納されたデータ
は、ライトバス140を通じて主記憶装置インタフェー
ス105に送られ、そのとき物理アドレス生成装置13
3で発生されている0x2010番地を先頭とする8バ
イトの領域に書き込まれる。これで、0x7−0x4の
再配置データの書き戻しが終了したことになる。
【0042】以上のような動作が繰り返されることによ
って、再配置したデータが全て主記憶装置106に書き
戻される。
【0043】図3は本発明の別の実施例にかかる情報処
理装置の要部ブロック図、図4は当該実施例におけるメ
モリアクセスの概念図である。図1および図2で説明し
た実施例では、データ再配置メモリ空間のために、専用
の記憶装置としてデータ再配置用記憶装置109と、そ
のためのインタフェースとしてデータ再配置用記憶装置
インタフェース108を設けた。データ再配置用記憶装
置109は主記憶装置106よりも記憶容量的に少なく
て済むため高速な記憶装置を用いることも可能であり、
使用するデータをその使用に先立って明示的に再配置す
るため、その効果も十分あると考えられる。但し、汎用
システムではできるだけ装置数を減らして低コストにす
る必要がある。そこで、図3および図4に示す実施例で
は、データ再配置専用の記憶装置を省き、メモリ管理を
行うソフトウェアを拡張することによって、主記憶装置
上に再配置データを配置することを可能にする。以下、
本実施例について説明する。
【0044】図3に示すように、本実施例では、図1の
実施例に対して、データ再配置用記憶装置109および
データ再配置用記憶インタフェース108を取り除き、
アドレス変換装置107の内部構造を変更して、再配置
アドレス生成装置132と物理アドレス生成装置133
の出力をセレクタ301によって選択して、アドレスバ
ス302を通じて主記憶装置インタフェース105とキ
ャッシュメモリインタフェース103に供給する構成と
している。
【0045】データの再配置を行う場合には、アプリケ
ーションプログラムはOSなどに対してシステムコール
を発行し、図4に示すように、仮想アドレス空間401
上にデータ再配置仮想アドレス空間402を確保する。
このとき物理アドレス空間404中に、データ再配置仮
想アドレス空間402に対応するデータ再配置物理アド
レス空間403が割り付けられる。その後、アプリケー
ションプログラムは特殊レジスタ131に図1の実施例
と同様な再配置情報を設定する。アドレスの再配置処理
は図1の実施例と同様であるが、ライトバッファ139
に所望のデータが格納された時点でセレクタ301は再
配置アドレス生成装置132で発生するアドレスを選択
し、主記憶装置インタフェース105に送る。これによ
り、主記憶装置106のデータ再配置物理アドレス空間
403にデータを再配置することが可能となる。
【0046】再配置データの書き戻しの際も図1の実施
例とほぼ同様に処理が進められる。但し、再配置データ
は主記憶装置106中に存在するので、再配置データを
リードバッファ136にロードする際にはセレクタ30
1によって、再配置アドレス生成装置132により生成
されたアドレスを主記憶装置インタフェース105に送
信し、主記憶装置インタフェース105は、リードバッ
ファ136に対して再配置データを送るという部分が異
なる。
【0047】図5は本発明の更に別の実施例にかかる情
報処理装置の要部ブロック図である。図1および図3で
説明した実施例では、不連続配置のデータの参照の順序
を数式でアドレス変換装置に与えることによって連続デ
ータに並べ替えた。しかしながら、不連続データの参照
は数式で示すことが可能な規則性でなく、以下のように
ポインタによって示される場合も科学技術計算では多く
出現する。
【0048】このような処理の場合には、データ参照の
規則を数式でアドレス変換装置に与えることができな
い。そこで、図5に示す実施例では、このような場合に
対処するために、データ格納情報を示す変数が格納され
ているポインタを指定することによって、アドレス変換
装置がそのポインタを自動的に読み出してデータの再配
置を行うようにしている。これにより変数のインデック
スによる不連続データの参照を同じ再配置機構の枠組み
で行うことが可能となる。
【0049】図5の実施例は、図3の実施例に対して、
アドレス変換装置107にアドレスキュー501が新た
に設けられている。アドレスキュー501は主記憶装置
106に格納されたポインタ変数の内容を蓄えるFIF
O(First In First Out)型のキューである。また、セ
レクタ301は、アドレスキュー501の内容をアドレ
ス変換用仮想アドレスバス171を通じてTLB102
に送って物理アドレスに変換したアドレスをも選択可能
となるように拡張されている。以下、図3の実施例との
相違部分を中心に、図5および図4を参照して本実施例
の動作を説明する。
【0050】プロセッサコア101上で動作するアプリ
ケーションプログラムは、仮想メモリ空間401上にデ
ータ再配置仮想アドレス空間402を確保した後に、特
殊レジスタ131に例えば下記のような再配置情報を設
定する。 ・参照種類 ポインタ ・データの単位 ワード ・ポインタ開始仮想アドレス 0x1000 ・ポインタ配置の規則 +0x10 ・ポインタ数 100 ・再配置仮想アドレス 0x40000
【0051】このような再配置情報の場合、0x100
0番地に格納されているアドレスが指す番地のデータを
最初のデータとしてロードする必要がある。そこで、シ
ーケンサ134は特殊レジスタ131に設定されたポイ
ンタ開始仮想アドレス0x1000をTLB102で物
理アドレスに変換し、この物理アドレスを物理アドレス
生成装置133から最初に発生させる。このときセレク
タ301はこのアドレスを選択し、キャッシュメモリイ
ンタフェース103及び主記憶装置インタフェース10
5に送信する。これによって読み出された該当番地のデ
ータ(仮想アドレス表現のポインタ)はリードバス14
1を介してアドレスキュー501に格納される。アドレ
スキュー501に格納されたポインタはTLB102に
よって物理アドレスに変換され、セレクタ301はこの
アドレスを選択しキャッシュメモリインタフェース10
3及び主記憶装置インタフェース105に送信する。こ
れによって得られるデータが再配置対象のデータとな
り、リードバッファ136に格納され、以下、図3の実
施例と同様の並べ替え,アドレス変換再配置が行われ
る。
【0052】再配置したデータを主記憶装置106に書
き戻す時にも同様に、アドレスキュー501を介して、
データのポインタをロードして、必要データをロード,
再配置後、書き戻すことになる。再配置後書き戻すまで
にポインタが書き替えられていた場合には新たなポイン
タ変数が示す場所にデータを書き戻すため、データのコ
ピーにもこのアドレス変換装置107を利用することが
可能である。
【0053】
【発明の効果】以上説明したように本発明は、主記憶装
置上に不連続に存在する一連のデータを別のメモリ領域
上に連続するアドレスのデータとして再配置し、この再
配置後のデータを、キャッシング対象にすると共にアプ
リケーションプログラムのアクセス対象にしたので、ア
プリケーションプログラム実行時におけるメモリアクセ
スの局所性が高まり、その分キャッシュヒット率が向上
してアプリケーションプログラムの実行処理速度が向上
する。なお、本発明では、データの再配置処理がオーバ
ヘッドとなるが、一旦再配置すれば、その後の再配置は
不要なので、主記憶装置上に不連続に存在する一連のデ
ータを何度もアクセスするような場合には余り問題には
ならない。
【0054】また、主記憶装置上のデータ再配置領域を
使用する構成によれば、専用のデータ再配置用記憶装置
を使用する場合に比べてハードウェア量を削減でき、低
コスト化が可能である。
【図面の簡単な説明】
【図1】本発明の一実施例の情報処理装置の要部ブロッ
ク図である
【図2】図1の実施例の情報処理装置におけるメモリア
クセスの概念図である。
【図3】本発明の別の実施例の情報処理装置の要部ブロ
ック図である
【図4】図3の実施例の情報処理装置におけるメモリア
クセスの概念図である。
【図5】本発明の更に別の実施例の情報処理装置の要部
ブロック図である。
【図6】従来のベクトル計算機の構成を示すブロック図
である。
【図7】レジスタウィンドウの概念図である。
【符号の説明】
101…プロセッサコア 102…TLB(Translation Lookaside Buffer) 103…キャッシュメモリインタフェース 104…キャッシュメモリ 105…主記憶装置インタフェース 106…主記憶装置 107…アドレス変換装置 108…データ再配置用記憶装置インタフェース 109…データ再配置用記憶装置 131…特殊レジスタ 132…再配置アドレス生成装置 133…物理アドレス生成装置 134…シーケンサ 135…変換情報テーブル装置 136…リードバッファ 137…シフタ 138…マルチプレクサ 139…ライトバッファ 140…ライトバス 141…リードバス 151…プロセッサデータバス 152…主記憶装置データバス 153…キャッシュデータバス 154…主記憶装置内部データバス 155…データ再配置用記憶装置データバス 156…データ再配置用記憶装置内部データバス 157…アドレス変換装置用リードデータバス 158…アドレス変換装置用リードデータバス 159…アドレス変換装置用ライトデータバス 160…アドレス変換装置用ライトデータバス 161…アドレス変換装置用ライトデータバス 162…アドレス変換装置用リードデータバス 165…プロセッサ仮想アドレスバス 166…主記憶装置物理アドレスバス 167…キャッシュアドレスバス 168…主記憶装置内部アドレスバス 169…データ再配置用物理アドレスバス 170…データ再配置用内部アドレスバス 171…アドレス変換用仮想アドレスバス 172…アドレス変換用物理アドレスバス 173…アドレス変換主記憶装置アクセス用物理アドレ
スバス 174…アドレス変換再配置用記憶装置アクセス用物理
アドレスバス 175…アドレスバス 181…TLB制御線 182…特殊レジスタアクセス制御線 183…アドレス変換装置〜キャッシュ情報伝達用の信
号線 184…変換情報テーブル入出力バス 185…シーケンサ制御線 186…アドレス変換装置〜TLB情報伝達用の信号線 201…仮想アドレス空間 202…データ再配置仮想アドレス空間 203…データ再配置メモリ空間 204…物理アドレス空間 205…仮想アドレス空間上の再配置データ 206…仮想アドレス空間上の不連続配置データ 207…データ再配置メモリ空間上の再配置データ 208…物理アドレス空間上の不連続データ 301…セレクタ 302…アドレス変換主記憶装置アクセス用物理アドレ
スバス 401…仮想アドレス空間 402…データ再配置仮想アドレス空間 403…データ再配置物理アドレス空間 404…物理アドレス空間 405…仮想アドレス空間上の再配置データ 406…仮想アドレス空間上の不連続データ 407…データ再配置物理アドレス空間上の再配置デー
タ 408…物理アドレス空間上の不連続データ 501…アドレスキュー

Claims (5)

    (57)【特許請求の範囲】
  1. 【請求項1】 主記憶装置よりも高速な記憶装置であっ
    再配置したデータを記憶するためのデータ再配置用記
    憶装置と、主記憶装置上に不連続に存在する一連のデー
    タを前記データ再配置用記憶装置上に連続する一連のデ
    ータとして再配置する、プロセッサコアとは別に設けら
    れたアドレス変換装置と、データ再配置用記憶装置の内
    容および主記憶装置の内容の写しを保持するキャッシュ
    メモリとを備え、前記主記憶装置上に不連続に存在する
    一連のデータを使用するアプリケーションプログラム
    は、前記再配置後のデータをアクセスするように構成さ
    れることを特徴とする情報処理装置。
  2. 【請求項2】 主記憶装置上に不連続に存在する一連の
    データのアドレスが或る規則性を持っている場合に、そ
    の規則性を示す再配置情報に従って前記アドレス変換装
    置が再配置すべきデータの読み出しを行うことを特徴と
    する請求項1記載の情報処理装置。
  3. 【請求項3】 主記憶装置上に不連続に存在する一連の
    データのアドレスが、主記憶装置上の別の箇所に格納さ
    れたポインタで示される場合に、そのポインタの格納ア
    ドレスを示す再配置情報に従って前記アドレス変換装置
    がポインタに従って再配置すべきデータの読み出しを行
    うことを特徴とする請求項1記載の情報処理装置。
  4. 【請求項4】 主記憶装置の内容の写しを保持するキャ
    ッシュメモリと、再配置したデータを記憶するための、
    主記憶装置上のデータ再配置領域と、主記憶装置上に不
    連続に存在する一連のデータを前記データ再配置領域上
    に連続する一連のデータとして再配置するアドレス変換
    装置とを備え、前記主記憶装置上に不連続に存在する一
    連のデータのアドレスが或る規則性を持っている場合
    に、その規則性を示す再配置情報に従って前記アドレス
    変換装置が再配置すべきデータの読み出しを行い、か
    つ、前記主記憶装置上に不連続に存在する一連のデータ
    を使用するアプリケーションプログラムは、前記再配置
    後のデータをアクセスするように構成されることを特徴
    とする情報処理装置。
  5. 【請求項5】 主記憶装置の内容の写しを保持するキャ
    ッシュメモリと、再配置したデータを記憶するための、
    主記憶装置上のデータ再配置領域と、主記憶装置上に不
    連続に存在する一連のデータを前記データ再配置領域上
    に連続する一連のデータとして再配置するアドレス変換
    装置とを備え、前記主記憶装置上に不連続に存在する一
    連のデータのアドレスが、主記憶装置上の別の箇所に格
    納されたポインタで示される場合に、そのポインタの格
    納アドレスを示す再配置情報に従って前記アドレス変換
    装置がポインタに従って再配置すべきデータの読み出し
    を行い、かつ、前記主記憶装置上に不連続に存在する一
    連のデータを使用するアプリケーションプログラムは、
    前記再配置後のデータをアクセスするように構成される
    ことを特徴とする情報処理装置。
JP7113740A 1995-04-14 1995-04-14 情報処理装置 Expired - Fee Related JP2924708B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7113740A JP2924708B2 (ja) 1995-04-14 1995-04-14 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7113740A JP2924708B2 (ja) 1995-04-14 1995-04-14 情報処理装置

Publications (2)

Publication Number Publication Date
JPH08286928A JPH08286928A (ja) 1996-11-01
JP2924708B2 true JP2924708B2 (ja) 1999-07-26

Family

ID=14619936

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7113740A Expired - Fee Related JP2924708B2 (ja) 1995-04-14 1995-04-14 情報処理装置

Country Status (1)

Country Link
JP (1) JP2924708B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3506024B2 (ja) 1998-12-10 2004-03-15 日本電気株式会社 情報処理装置

Also Published As

Publication number Publication date
JPH08286928A (ja) 1996-11-01

Similar Documents

Publication Publication Date Title
US4701844A (en) Dual cache for independent prefetch and execution units
KR101626533B1 (ko) 가비지 콜렉션을 위한 gpu 서포트
US3898624A (en) Data processing system with variable prefetch and replacement algorithms
US5689653A (en) Vector memory operations
US5717895A (en) Associative scalar data cache with write-through capabilities for a vector processor
JPH09506729A (ja) 浮動小数点データと整数データを記憶するためのローカルキャッシュとグローバルキャッシュを含むメモリシステム
JPH0652511B2 (ja) 情報処理装置のアドレス変換方式
JPH0612327A (ja) キャッシュメモリを有するデータプロセッサ
JPH09128294A (ja) 先取り命令を生成する方法とシステム
JPH01125640A (ja) アドレス変換方式
JPH10187533A (ja) キャッシュシステム、プロセッサ及びプロセッサを動作させる方法
JPH05257803A (ja) 仮想記憶空間管理方法及びアドレス計算装置
US8806177B2 (en) Prefetch engine based translation prefetching
JPH0711793B2 (ja) マイクロプロセッサ
JP2575598B2 (ja) マルチプロセッサ・コンピュータ・システムのシステム・メモリの並行性を増大する方法およびシステム
JPH10293720A (ja) コンピュータシステムにおけるキャッシュ・コヒーレンシー機構および主メモリに保持されている項目に関してキャッシュの内容のコヒーレンシー状態を変更する方法
US6012135A (en) Computer having multiple address ports, each having logical address translation with base and limit memory management
JPWO2004031943A1 (ja) データプロセッサ
JP3506024B2 (ja) 情報処理装置
KR100373576B1 (ko) 변환 장치의 엔트리를 무효로 하는 시스템 및 방법
JP4160228B2 (ja) マイクロプロセッサ
JP2924708B2 (ja) 情報処理装置
US6298355B1 (en) Computer system
US5895486A (en) Method and system for selectively invalidating cache lines during multiple word store operations for memory coherence
JPS6136264B2 (ja)

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090507

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100507

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110507

Year of fee payment: 12

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110507

Year of fee payment: 12

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120507

Year of fee payment: 13

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120507

Year of fee payment: 13

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130507

Year of fee payment: 14

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140507

Year of fee payment: 15

LAPS Cancellation because of no payment of annual fees