JP2004013868A - 情報処理装置及びそれに用いるキャッシュフラッシュ制御方法 - Google Patents

情報処理装置及びそれに用いるキャッシュフラッシュ制御方法 Download PDF

Info

Publication number
JP2004013868A
JP2004013868A JP2002170839A JP2002170839A JP2004013868A JP 2004013868 A JP2004013868 A JP 2004013868A JP 2002170839 A JP2002170839 A JP 2002170839A JP 2002170839 A JP2002170839 A JP 2002170839A JP 2004013868 A JP2004013868 A JP 2004013868A
Authority
JP
Japan
Prior art keywords
address
cache
memory
unit
flash
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.)
Granted
Application number
JP2002170839A
Other languages
English (en)
Other versions
JP3876771B2 (ja
Inventor
Kenji Ezoe
江副 健司
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
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2002170839A priority Critical patent/JP3876771B2/ja
Priority to US10/459,931 priority patent/US7043607B2/en
Publication of JP2004013868A publication Critical patent/JP2004013868A/ja
Application granted granted Critical
Publication of JP3876771B2 publication Critical patent/JP3876771B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0808Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means

Abstract

【課題】LSIピンの大幅な多ピン化を行うことなく、キャッシュアドレスとVSC命令のストアアドレスとのアドレス比較処理の高速化が可能な情報処理装置を提供する。
【解決手段】ベクトルユニット21,31はフラッシュアドレスをフラッシュアドレスアレイ24,34へ出力する。マスタユニット2及びスレーブユニット3はフラッシュアドレスアレイ24,34でキャッシュに登録されているアドレスとフラッシュアドレスとの比較を行い、アドレスが一致していた場合に一致アドレスをアドレスアレイ25へ送出する。フラッシュアドレスアレイ24,34から送出されたアドレスを基にアドレスアレイ25の該当アドレスのフラッシュを行い、キャッシュ制御回路23がマスタユニット2とスレーブユニット3との両方からのEND信号を受信していた場合にフラッシュ処理を終了する。
【選択図】   図1

Description

【0001】
【発明の属する技術分野】
本発明は情報処理装置及びそれに用いるキャッシュフラッシュ制御方法に関し、特にベクトル方式を用いる情報処理装置におけるキャッシュフラッシュの制御方法に関する。
【0002】
【従来の技術】
近年、情報処理装置の動作周波数の向上によって、クロック分配回路の遅延が周波数の向上に対応することができず、その結果、異なる分割単位[CPU(中央処理装置)/LSI(大規模集積回路)等]を位相の一致したクロックで制御することが非常に困難になっている。
【0003】
この問題に対する一つの解決策として、非同期クロックで動作するCPU間の同期をとる際に、ソフトウェアによって同期をとる手段がある。例えば、バリア同期/通信レジスタといったハードウェアの機能を利用し、コンパイラ/人手指定によって分割された複数のプロセスをOS(Operating System)が異なるCPUにディスパッチする方法である。
【0004】
この方法では、プロセス群が全く異なるタイミングで動作する前提に基づいているので、CPU間のクロックが非同期であっても、ハードウェア機能に起因する動作の不正問題が発生しない。このような方式は、例えばスカラ型並列スーパコンピュータと呼ばれている製品において実現されている。
【0005】
上記のようなハードウェアによる並列処理サポート機能の実現は、マイクロプロセッサのクロック速度向上、CPU−メモリ間のバンド幅拡大等の機能と比較すると、非常に安価で実現容易であり、見かけ上の性能価格比の向上策として一般的である。
【0006】
しかしながら、上記のようなソフトウェアによる並列処理による速度向上には、プログラム並列化が非常に困難であるというような問題がある。具体的には、並列化されていないプログラムの並列化限界が、プログラムによって千差万別である。
【0007】
また、仮に並列化することができたとしても、そのデバッグ作業が並列化されていないプログラムより格段に困難なことである。その作業は、性能チュ−ニングで行われるのが一般的であるが、並列コンピュータ技術に関する高度なスキルを必要とする。このような困難な作業を、ハードウェアがバージョンアップする毎に行う必要がある。
【0008】
さらに、上記の理由からプログラムの膨大な資産を活かしにくい問題もある。仮に並列処理の技術的課題を克服したとしても、それを現場で運用するためには、人的リソース不足等の多くの問題が存在する。
【0009】
このような問題の解決策の1つが、ハードウェアによる並列処理であり、その具体的な製品がベクトル型スーパコンピュータと呼ばれるものである。ベクトル方式とは、複数のデータに対して、同様の演算/メモリアクセスを行わせる並列処理方式[SIMD(Single Instractionstream Multiple Datastream:単一命令多重データ処理)型]の1つである。
【0010】
その複数のデ−タを格納する部分をベクトルレジスタと呼び、そのベクトルレジスタの要素データ全てに対して同一の演算/メモリアクセス/転送を指示する命令をベクトル命令と呼ぶ。例えば、
LVL  VL<−128
VADD V7<−V5+V4
のように、VL(ベクトル・レングス・レジスタ)に動作指示対象の要素数128をLVL(Load VL)命令によってセットする。その後、VADD(ベクトル加算)命令によって、V5/V4の各々の128要素をV7の128要素領域に加算してセットする。
【0011】
以上のように、ベクトル方式ではプロセス間の同期が不要なので、シングルCPUの延長で並列処理を実現することができる。また、並列化手法として実績があり、自動ベクトル化コンパイラ技術も製品レベルで発達している。
【0012】
このようなベクトル命令を実行するベクトルユニットを複数の非同期動作ユニットにまたがる形で実現したとしても、ベクトル計算機風にCPUをハードウェアによって同期させることで、プログラマにとっては容易に並列処理による演算の高速化を実現することができる。
【0013】
このような有効なベクトル方式においても、実効的な性能向上を実現するには、それに見合ったCPU−メモリ間のバンド幅の確保が必要となる。しかしながら、LSI1個当たりのメモリとの接続のために使用可能なピン数には限りがある。この問題の解決策の1つとして、ベクトルユニットを複数のLSIに分割することで、CPUの多数ピン化にある程度の歯止めをかけることができる。
【0014】
しかしながら、動作クロックが数100MHzレベルになると、クロックスキューの増加等の要因によって、分割したLSIが同期したクロックで動作することができなくなる。
【0015】
【発明が解決しようとする課題】
上述した従来の情報処理装置では、ベクトルユニットを複数の非同期動作ユニットにまたがる形で実現した場合、VSC(ベクトル・スキャタ)命令に関して下記のような問題がある。
【0016】
VSC命令はベクトル型計算機において、非常に重要な命令である。その命令仕様について、図6に基づいて説明する。yフィールドで指定されるベクトルレジスタVyの内容をアドレスとして、それに対応するZフィールドで指定したベクトルレジスタVzの内容をメモリにストアする。
【0017】
まず最初に、簡単にベクトル型CPUのベクトル命令処理を説明すると、ベクトル命令では一度に大量のデータ転送を行うため、キャッシュメモリ(以下、キャッシュとする) にはアクセスせずに、直接メモリにアクセスする。しかしながら、通常のプログラムはスカラ演算とベクトル演算とが混在しており、スカラ演算ではキャッシュのデータを使用して演算を行う。
【0018】
そのため、スカラ演算とベクトル演算とが共通のデータを利用する場合を考慮してキャッシュとメモリとのコヒーレンシを保つために、スカラストア命令の場合にはストアデータをキャッシュとメモリとに同時に書込み(Store Through)、ベクトルストア命令の場合にはメモリに直接データを書込むと同時に、キャッシュに登録されているアドレスとベクトルストアアドレスとの比較を行い、アドレスが一致していた場合には該当キャッシュラインの無効化(フラッシュ) を行う。
【0019】
ここで、本発明で必要となるキャッシュの構造について図8を用いて説明する。例として、アドレスのビット数を40bitとする。キャッシュの構成は64KB、2wayセットアソシアティブ、ラインサイズ256Bとする。この場合、図7に示すように、キャッシュのブロック内アドレスは8bit(最小アクセス単位を1B毎とすると、256B=2の8乗Bとなるため)、インデックスアドレス(キャッシュのラインアドレス)は7bit(2wayの64KB構成なので、(1way=32KB)/(1ライン256B)=128=2の7乗となるため)、タグアドレスは25bit(40−8−7=25bit)となる。
【0020】
図8を参照すると、キャッシュはアドレスアレイ(以下、AAとする)とデータアレイ(以下、DAとする)とから構成される。AAにはタグアドレスが格納され、DAにはデータが格納されている。また、各ライン毎にラインが有効であることを示すVALIDbit(以下、Vbitとする)を持つ。この場合、Vbit=1でキャッシュライン有効、Vbit=0でキャッシュライン無効となる。
【0021】
次に、VSC命令のキャッシュフラッシュ処理について、図9を用いて説明する。キャッシュフラッシュとは、ベクトルストア命令等の直接メモリへアクセスする命令によってキャッシュのデータとメモリのデータとの不一致が発生したために、該当するキャッシュラインを無効化する処理のことを指す。
【0022】
キャッシュフラッシュはキャッシュライン毎に行われるため、図7に示すように、ブロック内アドレス(40bitの下位8bit)は比較する必要がなく、VSC命令のストアアドレス(以下、このベクトル命令のフラッシュ処理に利用するストアアドレスをフラッシュアドレスとする)の上位32bitの比較で良い。
【0023】
VSC命令のフラッシュアドレスの下位7bitをフラッシュアドレスアレイ(フラッシュ処理に用いるアドレスアレイのコピー、以下、FAAとする)のインデックスアドレス7bitと比較し、一致するラインのタグアドレス25bit及びVbitがFAAから出力される。
【0024】
FAAから出力されたタグアドレス25bitとVSC命令のフラッシュアドレスの上位25bitとを比較する。比較した結果、全bitが一致し、かつVbitが1であった場合には、AAの該当インデックスアドレスのVbitを0にして、キャッシュラインのフラッシュを行う。
【0025】
次に、キャッシュミス時のキャッシュ更新処理(アップデーション処理)について図10を用いて説明する。キャッシュミスが発生した場合は、キャッシュの内容を更新する必要がある。AAのアップデーションについて考えると、2way以上のキャッシュ構成の場合には、キャッシュ追い出しアルゴリズム[例えば、LRU(Least Recently Used)等]によって更新するwayを決定する。これは2wayなので、2bitで表すこととする。
【0026】
キュッシュミスしたロード命令のアドレス40bitの下位8bitはブロック内アドレスなので不必要となり、次の下位7bitを更新するキャッシュラインのインデックスアドレスとし、対応するラインにタグアドレス25bitを書込む。
【0027】
また、Vbit=1として更新したキャッシュラインが有効であることを示す。これで、アップデーション処理は終了となる。ちなみに、FAAはAAのコピーであるため、AAのアップデーションを行う場合には、FAAも同時にアップデーションを行うことが必要となる。
【0028】
これらをふまえて、ベクトルユニットを複数の非同期動作ユニットにまたがる形で実現した場合の従来技術について、図2(b)及び図5を参照して説明する。図5に示すように、CPU5はマスタユニット6とスレーブユニット7とから構成されている。このような構成の場合、キャッシュのコヒーレンシを保ちかつ制御を簡略化するためにキャッシュを共有する必要が生じる。
【0029】
キャッシュの共有を考えた場合、マスタユニット6のアドレスアレイ65のみを使用することになる。このような構成の場合、VSC命令が実行されるとVzのストアデータをマスタユニット6のベクトルユニット61では信号線500、スレーブユニット7のベクトルユニット71では信号線600を用いてメモリユニット8に書込む[図2(b)のS31]。
【0030】
同時に、ベクトルユニット61はVyのフラッシュアドレスを信号線501を使用してFAA64へ出力し[図2(b)のS32]、ベクトルユニット71は信号線601を使用してFAA64へ出力する[図2(b)のS33]。最後のベクトル要素までフラッシュアドレスの出力が終わると、ベクトルユニット61は信号線502を使用してキャッシュ制御部63へEND信号を出力し、ベクトルユニット71は信号線602を使用してキャッシュ制御部63へEND信号を出力する。
【0031】
マスタユニット6のFAA64でキャッシュに登録されているアドレスとフラッシュアドレスとの比較を行う[図2(b)のS34]。この比較結果において、アドレスが一致していた場合には一致アドレスをAA65へ送出する[図2(b)のS35]。
【0032】
最後に、AA65の該当アドレスのフラッシュを行いかつキャッシュ制御回路63がマスタユニット6とスレーブユニット7との両方からのEND信号を受信していた場合にフラッシュ処理を終了する[図2(b)のS36]。
【0033】
ここで、マスタユニット6とスレーブユニット7とは各々ベクトル要素256ずつ処理することができるものと仮定し、ベクトルユニット71とFAA64とを接続する信号線601に注目すると、1T(1クロック)当たり一要素のフラッシュアドレス出力をすると、インデックスアドレス7bit+タグアドレス25bit=合計32bitの信号線が必要となる。
【0034】
この場合、ベクトル要素数が256であれば、フラッシュアドレス出力が終了するまでに256Tかかることになり、非現実的な処理速度となる。VSC命令のフラッシュアドレスとキャッシュアドレスとの比較が終了するまでは、次の命令のキャッシュフラッシュ処理やキャッシュミス時に発生するキャッシュの更新処理が行えないため、性能向上のためにはアドレス比較処理の高速化が必須となる。
【0035】
高速化のために、1T当たりにベクトル要素n個を処理できるようにすると、32bit×n本の信号線601が必要となり、LSIピン数が飛躍的に増大するという問題がある。これによって、上記の背景で述べたベクトルユニットを複数のLSIに分割することで、CPUの多数ピン化にある程度の歯止めをかけることができるという効果が無くなってしまう。
【0036】
そこで、本発明の目的は上記の問題点を解消し、LSIピンの大幅な多ピン化を行うことなく、キャッシュアドレスとVSC命令のストアアドレスとのアドレス比較処理を高速に行うことができる情報処理装置及びそれに用いるキャッシュフラッシュ制御方法を提供することにある。
【0037】
【課題を解決するための手段】
本発明による情報処理装置は、ベクトルユニットを複数の非同期動作ユニットに分割した構成をとり、直接メモリへアクセスする命令によってキャッシュメモリのデータと前記メモリのデータとの不一致が発生した時に該当キャッシュラインを無効化するキャッシュフラッシュ制御を行う情報処理装置であって、前記メモリへのストアアドレスを示すフラッシュアドレスと前記キャッシュメモリへのアドレスとの比較処理を前記複数の非同期動作ユニットで分割して実行している。
【0038】
本発明による他の情報処理装置は、ベクトルユニットをマスタユニットとスレーブユニットとに分割した構成をとり、直接メモリへアクセスする命令によってキャッシュメモリのデータと前記メモリのデータとの不一致が発生した時に該当キャッシュラインを無効化するキャッシュフラッシュ制御を行う情報処理装置であって、前記メモリへのストアアドレスを示すフラッシュアドレスと前記キャッシュメモリへのアドレスとの比較処理を前記マスタユニット及び前記スレーブユニットで分割して実行している。
【0039】
本発明によるキャッシュフラッシュ制御方法は、ベクトルユニットを複数の非同期動作ユニットに分割した構成をとり、直接メモリへアクセスする命令によってキャッシュメモリのデータと前記メモリのデータとの不一致が発生した時に該当キャッシュラインを無効化するキャッシュフラッシュ制御を行うキャッシュフラッシュ制御方法であって、前記メモリへのストアアドレスを示すフラッシュアドレスと前記キャッシュメモリへのアドレスとの比較処理を前記複数の非同期動作ユニットで分割して実行している。
【0040】
本発明による他のキャッシュフラッシュ制御方法は、ベクトルユニットをマスタユニットとスレーブユニットとに分割した構成をとり、直接メモリへアクセスする命令によってキャッシュメモリのデータと前記メモリのデータとの不一致が発生した時に該当キャッシュラインを無効化するキャッシュフラッシュ制御を行うキャッシュフラッシュ制御方法であって、前記メモリへのストアアドレスを示すフラッシュアドレスと前記キャッシュメモリへのアドレスとの比較処理を前記マスタユニット及び前記スレーブユニットで分割して実行している。
【0041】
すなわち、本発明の情報処理装置のキャッシュフラッシュ制御方法は、VSC(ベクトル・スキャタ)命令のフラッシュアドレスとキャッシュアドレスとの比較処理を複数のユニットで分割して実行し、アドレス一致したもののみをマスタユニット内のアドレスアレイに出力し、キャッシュフラッシュ処理を行つている。
【0042】
これによって、本発明では、ベクトルユニットを複数の非同期動作ユニットに分割した構成を採用するシステムにおいて、非同期動作する異なるユニット間でのVSC命令のキャッシュフラッシュ制御をLSIピンの大幅な多ピン化を行わずに解決し、かつキャッシュアドレスとVSC命令のストアアドレスとのアドレス比較処理を高速化することが可能となる。
【0043】
【発明の実施の形態】
次に、本発明の実施例について図面を参照して説明する。図1は本発明の一実施例による情報処理装置内のCPU(中央処理装置)の構成を示すブロック図である。図1において、1つのCPU1はマスタユニット2とスレーブユニット3との2つの非同期動作部分に分割される。これらマスタユニット2及びスレーブユニット3は異なる2つのLSIである場合が多い。しかしながら、今後、クロックの高速化によって、同一LSI内部であっても、非同期に動作する複数のユニットが存在することもありうる。
【0044】
図1において、CPU1はマスタユニット2とスレーブユニット3とに分割され、外部にメモリユニット4が接続されている。マスタユニット2はスカラユニット20とベクトルユニット21とから構成され、スレーブユニット3もスカラユニット30とベクトルユニット31とから構成されている。尚、100〜105,200〜204はそれぞれ信号線である。
【0045】
スカラユニット20は命令制御回路22と、キャッシュ制御回路23と、フラッシュアドレスアレイ24と、アドレスアレイ25とから構成され、スカラユニット30は命令制御回路32と、キャッシュ制御回路33と、フラッシュアドレスアレイ34と、アドレスアレイ35とから構成されている。但し、本実施例において、スカラユニット30のキャッシュ制御回路33及びアドレスアレイ35は未使用である。
【0046】
図2は本発明の一実施例によるキャッシュフラッシュ制御動作を示すタイムチャートである。これら図1及び図2を参照して本発明の一実施例によるキャッシュフラッシュ制御について説明する。以下、アドレスアレイをAAとし、フラッシュ処理に用いるAAのコピーであるフラッシュアドレスアレイをFAAとし、VSC命令のストアアドレスをフラッシュアドレスとする。
【0047】
VSC命令が実行されると、マスタユニット2のベクトルユニット21は信号線100を介してVzのストアデータをメモリユニット4に書込み、スレーブユニット3のベクトルユニット31は信号線200を介してVzのストアデータをメモリユニット4に書込む[図2(a)のS1]。
【0048】
同時に、マスタユニット2のベクトルユニット21は信号線101を介してVyのフラッシュアドレスをFAA24へ出力し[図2(a)のS2]、スレーブユニット3のベクトルユニット31は信号線201を使用してVyのフラッシュアドレスをFAA34へ出力する[図2(a)のS5]。
【0049】
最後のベクトル要素までフラッシュアドレスの出力が終わると、ベクトルユニット21は信号線105を使用してキャッシュ制御部23へEND信号を出力し、ベクトルユニット31は信号線204を使用してキャッシュ制御部23へEND信号を出力する。
【0050】
マスタユニット2ではFAA24でキャッシュに登録されているアドレスとフラッシュアドレスとの比較を行い[図2(a)のS3]、スレーブユニット3ではFAA34でキャッシュに登録されているアドレスとフラッシュアドレスとの比較を行う[図2(a)のS6]。
【0051】
マスタユニット2のFAA24で比較した結果、アドレスが一致していた場合には一致アドレスをAA25へ送出し[図2(a)のS4]、スレーブユニット3のFAA34で比較した結果、アドレスが一致していた場合には一致アドレスをAA25へ送出する[図2(a)のS7]。
【0052】
最後に、FAA24及びFAA34から送出されたアドレスを基にAA25の該当アドレスのフラッシュを行い、かつキャッシュ制御回路23がマスタユニット2とスレーブユニット3との両方からのEND信号を受信していた場合にフラッシュ処理を終了する[図2(a)のS8]。
【0053】
ところで、キャッシュミス時のアップデーション処理(キャッシュミス時のキャッシュ更新処理)は、本実施例では信号線103を使用してAA25、信号線104を使用してFAA24、信号線203を使用してFAA34に対して行う。
【0054】
図3は本発明の一実施例によるCPU1の詳細な構成を示すブロック図である。図3において、マスタユニット2はスカラユニット20と、ベクトルユニット21とから構成されている。スカラユニット20はキャッシュ制御回路23と、FAA24と、AA25と、フラッシュアドレスバッファ(以下、FABFとする)26と、セレクタ27とから構成されている。ベクトルユニット21はベクトルレジスタ21aを備えている。
【0055】
スレーブユニット3はスカラユニット30と、ベクトルユニット31とから構成されている。スカラユニット30はFAA34と、未使用のAA35と、FABF36と、セレクタ37とから構成されている。ベクトルユニット31はベクトルレジスタ31aを備えている。尚、101〜108,201〜207はそれぞれ信号線である。
【0056】
図4は図3のCPU1におけるキャッシュフラッシュ制御動作を示すタイムチャートである。これら図3及び図4を参照してCPU1におけるキャッシュフラッシュ制御動作について説明する。
【0057】
VSC命令が実行されると、メモリユニット4への書込みが行われ(図4のS11)、これと同時に、ベクトルレジスタ21aからFAA24にVSC命令のフラッシュアドレスが出力され(図4のS12)、アドレス比較が行われる(図4のS13)。
【0058】
このとき同時に、ベクトルレジスタ31aからFAA34にVSC命令のフラッシュアドレスが出力され(図4のS16)、アドレス比較が行われる(図4のS17)。
【0059】
アドレス比較はインデックスアドレス7bit及びタグアドレス25bitの合計32bitの比較となる。アドレスが一致した場合、FAA24はアドレスの一致したインデックスアドレス7bitとway番号とをFABF26へ出力する(図4のS14)。また、FAA34はアドレスの一致したインデックスアドレス7bitとway番号とをFABF36へ出力する(図4のS18)。
【0060】
FABF26はアドレスアレイ25へのアドレス出力時に、スレーブユニット3とのアドレス送出が競合した場合、アドレスの一致したインデックスアドレス7bitとway番号とを一時的に格納するバッファである。FABF26はアドレス送出の競合がない場合、信号線106を使ってバイパス可能である。信号線106(バイパス)と信号線107(FABF26の出力)との選択はセレクタ27で行われる。
【0061】
FABF36はスレーブユニット3からAA25へのアドレス出力時に、信号線207の本数が少なく、アドレス転送性能がネックになる場合に、アドレスの一致したインデックスアドレス7bitとway番号とを一時的に格納するバッファである。FABF36は十分なアドレス転送性能がある場合、信号線205を使ってバイパス可能である。信号線205(バイパス)と信号線206(FABF36の出力)との選択はセレクタ37で行われる。
【0062】
当然のことながら、これらのアドレス転送性能に不足がない構成の場合には、FABF26と信号線107とが存在しない構成、FABF36と信号線206とセレクタ37とが存在しない構成も可能である。これらのFABF26,36を使用しない場合、図4のS15及びS19の動作はなくなる。
【0063】
マスタユニット2内で比較されて一致したインデックスアドレス7bitとway番号とがFABF26から出力され(図4のS15)、スレーブユニット3内で比較されて一致したインデックスアドレス7bitとway番号とがFABF36から出力され(図4のS19)、セレクタ27で競合調停され、AA25のキャッシュフラッシュ処理を行う(図4のS20)。
【0064】
VSC命令の全ベクトル要素256個のストアアドレスが出力が終わった場合、ベクトルユニット21は信号線105を通してキャッシュ制御回路23へEND信号を出力し、ベクトルユニット31は信号線204を通してキャッシュ制御回路23へEND信号を出力する。
【0065】
キャッシュ制御回路23は両方のEND信号の受信を確認すると、VSC命令のキャッシュフラッシュ処理終了とし、次の命令を実行することができる。それから、キャッシュミスが発生してキャッシュの更新作業が必要になった場合には、AA25のみでなく、そのコピーであるFAA24、FAA34の更新が必要となる。そのため、キャッシュ制御回路23から信号線104を使用してFAA24の更新を行い、キャッシュ制御回路23から信号線203を使用してFAA34の更新を行い、キャッシュ制御回路23から信号線103を使用してAA25の更新を行う。
【0066】
このように、本発明では、上記の構成をとる場合、従来技術と比較して、ベクトルレジスタ31aからスレーブユニット3内のスカラユニット30にあるFAA34を使用してアドレス比較を行うために、32bitのVSC命令のフラッシュアドレスをスレーブユニット3からマスタユニット2へ出力せずにすみ、LSIピン数が大幅に増加することはない。
【0067】
但し、キャッシュミス時にFAA24、FAA34、FAA25の同時更新が必要なため、信号線103,104,203が必要となるが、スカラロード命令によるキャッシュミスであれば、1命令1アドレスのため、ベクトル命令のようなn要素を同時に処理する必要はなく、「インデックスアドレス7bit+タグアドレス25bit+way番号(例えば、2wayの場合2bit)=合計34bit」で十分であり、LSIピン数の増加も少ない。
【0068】
また、更なる効果として、マスタユニット2内のFAA24とスレーブユニット3内のFAA34とで同時にアドレス比較しているため、約2倍のアドレス比較速度が得られる。アドレス一致した場合にAA25へ出力するためのアドレスは、先に述べたように、「インデックスアドレス7bitとway番号(例えば、2wayの場合2bit)=合計9bit」となり、従来技術の32bit×n(nは1Tで同時に処理するベクトル要素数)と比較すると、大幅に少なくて良い。
【0069】
さらに、実際のプログラムではVSC命令のストアアドレスを示すフラッシュアドレスとキャッシュアドレスとが一致する可能性が非常に低いデータも得られており、ベクトル命令といえども信号線207をn倍する必要はなく、LSIピン数削減の効果が非常に大きい。
【0070】
上述したように、本発明では、ベクトルユニットを複数の非同期動作ユニットに分割した構成を採用するシステムにおいて、非同期動作する異なるユニット間でのVSC命令のキャッシュフラッシュ制御をLSIピンの大幅な多ピン化を行わずに解決し、かつキャッシュアドレスとフラッシュアドレスとのアドレス比較処理を高速化することができる。
【0071】
【発明の効果】
以上説明したように本発明は、ベクトルユニットをマスタユニットとスレーブユニットとに分割した構成をとり、直接メモリへアクセスする命令によってキャッシュのデータとメモリのデータとの不一致が発生した時にキャッシュラインを無効化するキャッシュフラッシュ制御を行うシステムにおいて、メモリへのストアアドレスとキャッシュへのアドレスとの比較処理をマスタユニット及びスレーブユニットで分割して実行することによって、LSIピンの大幅な多ピン化を行うことなく、キャッシュアドレスとVSC命令のストアアドレスとのアドレス比較処理を高速に行うことができる情報処理装置及びそれに用いるキャッシュフラッシュ制御方法を提供するという効果が得られる。
【図面の簡単な説明】
【図1】本発明の一実施例による情報処理装置内のCPUの構成を示すブロック図である。
【図2】(a)は本発明の一実施例によるキャッシュフラッシュ制御動作を示すタイムチャートであり、(b)は従来のキャッシュフラッシュ制御動作を示すタイムチャートである。
【図3】本発明の一実施例によるCPUの詳細な構成を示すブロック図である。
【図4】図3のCPUにおけるキャッシュフラッシュ制御動作を示すタイムチャートである。
【図5】従来のCPUの詳細な構成を示すブロック図である。
【図6】VSC命令の命令仕様を示す図である。
【図7】アドレスのbit例を示す図である。
【図8】キャッシュの構造を説明するための図である。
【図9】キャッシュフラッシュ処理を説明するための図である。
【図10】キャッシュアップデーション処理を説明するための図である。
【符号の説明】
1 CPU
2 マスタユニット
3 スレーブユニット
4 メモリユニット
20,30 スカラユニット
21,31 ベクトルユニット
22,32 命令制御回路
23,33 キャッシュ制御回路
24,34 フラッシュアドレスアレイ
25,35 アドレスアレイ
26,36 フラッシュアドレスバッファ
27,37 セレクタ

Claims (8)

  1. ベクトルユニットを複数の非同期動作ユニットに分割した構成をとり、直接メモリへアクセスする命令によってキャッシュメモリのデータと前記メモリのデータとの不一致が発生した時に該当キャッシュラインを無効化するキャッシュフラッシュ制御を行う情報処理装置であって、前記メモリへのストアアドレスを示すフラッシュアドレスと前記キャッシュメモリへのアドレスとの比較処理を前記複数の非同期動作ユニットで分割して実行することを特徴とする情報処理装置。
  2. 前記複数の非同期動作ユニットから出力された前記フラッシュアドレスを用いて前記キャッシュフラッシュ制御を行うことを特徴とする請求項1記載の情報処理装置。
  3. ベクトルユニットをマスタユニットとスレーブユニットとに分割した構成をとり、直接メモリへアクセスする命令によってキャッシュメモリのデータと前記メモリのデータとの不一致が発生した時に該当キャッシュラインを無効化するキャッシュフラッシュ制御を行う情報処理装置であって、前記メモリへのストアアドレスを示すフラッシュアドレスと前記キャッシュメモリへのアドレスとの比較処理を前記マスタユニット及び前記スレーブユニットで分割して実行することを特徴とする情報処理装置。
  4. 前記スレーブユニットから前記比較処理で一致したフラッシュアドレスのみを前記マスタユニット内のアドレスアレイへ出力することを特徴とする請求項3記載の情報処理装置。
  5. ベクトルユニットを複数の非同期動作ユニットに分割した構成をとり、直接メモリへアクセスする命令によってキャッシュメモリのデータと前記メモリのデータとの不一致が発生した時に該当キャッシュラインを無効化するキャッシュフラッシュ制御を行うキャッシュフラッシュ制御方法であって、前記メモリへのストアアドレスを示すフラッシュアドレスと前記キャッシュメモリへのアドレスとの比較処理を前記複数の非同期動作ユニットで分割して実行することを特徴とするキャッシュフラッシュ制御方法。
  6. 前記複数の非同期動作ユニットから出力された前記フラッシュアドレスを用いて前記キャッシュフラッシュ制御を行うことを特徴とする請求項5記載のキャッシュフラッシュ制御方法。
  7. ベクトルユニットをマスタユニットとスレーブユニットとに分割した構成をとり、直接メモリへアクセスする命令によってキャッシュメモリのデータと前記メモリのデータとの不一致が発生した時に該当キャッシュラインを無効化するキャッシュフラッシュ制御を行うキャッシュフラッシュ制御方法であって、前記メモリへのストアアドレスを示すフラッシュアドレスと前記キャッシュメモリへのアドレスとの比較処理を前記マスタユニット及び前記スレーブユニットで分割して実行することを特徴とするキャッシュフラッシュ制御方法。
  8. 前記スレーブユニットから前記比較処理で一致したフラッシュアドレスのみを前記マスタユニット内のアドレスアレイへ出力することを特徴とする請求項7記載のキャッシュフラッシュ制御方法。
JP2002170839A 2002-06-12 2002-06-12 情報処理装置及びそれに用いるキャッシュフラッシュ制御方法 Expired - Fee Related JP3876771B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2002170839A JP3876771B2 (ja) 2002-06-12 2002-06-12 情報処理装置及びそれに用いるキャッシュフラッシュ制御方法
US10/459,931 US7043607B2 (en) 2002-06-12 2003-06-12 Information processing system and cache flash control method used for the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002170839A JP3876771B2 (ja) 2002-06-12 2002-06-12 情報処理装置及びそれに用いるキャッシュフラッシュ制御方法

Publications (2)

Publication Number Publication Date
JP2004013868A true JP2004013868A (ja) 2004-01-15
JP3876771B2 JP3876771B2 (ja) 2007-02-07

Family

ID=29727781

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002170839A Expired - Fee Related JP3876771B2 (ja) 2002-06-12 2002-06-12 情報処理装置及びそれに用いるキャッシュフラッシュ制御方法

Country Status (2)

Country Link
US (1) US7043607B2 (ja)
JP (1) JP3876771B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9304917B2 (en) 2013-02-05 2016-04-05 Nec Corporation Flush control apparatus, flush control method and cache memory apparatus

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7882299B2 (en) * 2004-12-21 2011-02-01 Sandisk Corporation System and method for use of on-chip non-volatile memory write cache
TW200717246A (en) * 2005-06-24 2007-05-01 Koninkl Philips Electronics Nv Self-synchronizing data streaming between address-based producer and consumer circuits
US9164676B2 (en) * 2011-11-30 2015-10-20 International Business Machines Corporation Storing multi-stream non-linear access patterns in a flash based file-system
CN105373488A (zh) * 2014-08-08 2016-03-02 中兴通讯股份有限公司 合法内存访问的探测方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0348628A3 (en) * 1988-06-28 1991-01-02 International Business Machines Corporation Cache storage system
US5123095A (en) * 1989-01-17 1992-06-16 Ergo Computing, Inc. Integrated scalar and vector processors with vector addressing by the scalar processor
US5418973A (en) * 1992-06-22 1995-05-23 Digital Equipment Corporation Digital computer system with cache controller coordinating both vector and scalar operations

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9304917B2 (en) 2013-02-05 2016-04-05 Nec Corporation Flush control apparatus, flush control method and cache memory apparatus

Also Published As

Publication number Publication date
US7043607B2 (en) 2006-05-09
JP3876771B2 (ja) 2007-02-07
US20030233513A1 (en) 2003-12-18

Similar Documents

Publication Publication Date Title
US5920714A (en) System and method for distributed multiprocessor communications
EP0176972B1 (en) Multiprocessor shared pipeline cache memory
US5185878A (en) Programmable cache memory as well as system incorporating same and method of operating programmable cache memory
JP3218317B2 (ja) 集積キャッシュユニットおよびその構成方法
JP3158161B2 (ja) 集積キャッシュユニットおよび集積キャッシュユニットにおいてインターロック変数をキャッシュする方法
US4586133A (en) Multilevel controller for a cache memory interface in a multiprocessing system
US6408345B1 (en) Superscalar memory transfer controller in multilevel memory organization
JP3218773B2 (ja) キャッシュ・コントローラ
US7228389B2 (en) System and method for maintaining cache coherency in a shared memory system
US5845324A (en) Dual bus network cache controller system having rapid invalidation cycles and reduced latency for cache access
US5265233A (en) Method and apparatus for providing total and partial store ordering for a memory in multi-processor system
KR920006851A (ko) 데이터 처리시스템 및 방법
JPH02190930A (ja) ソフトウエア命令実行装置
US6546465B1 (en) Chaining directory reads and writes to reduce DRAM bandwidth in a directory based CC-NUMA protocol
US6035376A (en) System and method for changing the states of directory-based caches and memories from read/write to read-only
US5737756A (en) Dual bus computer network using dual busses with dual spy modules enabling clearing of invalidation queue for processor with store through cache while providing retry cycles for incomplete accesses to invalidation queue
JP3218316B2 (ja) 集積キャッシュユニットおよびその内部でキャッシュ機能を実現するための方法
JPH06318174A (ja) キャッシュ・メモリ・システム及び主メモリに記憶されているデータのサブセットをキャッシュする方法
JP3876771B2 (ja) 情報処理装置及びそれに用いるキャッシュフラッシュ制御方法
JPH0916472A (ja) キャッシュメモリ試験方法
US6298355B1 (en) Computer system
EP0374598B1 (en) Control store addressing from multiple sources
JP2001043133A (ja) マルチプロセッサ・システムにおいてライトスルー・ストア・オペレーションでキャッシュ・コヒーレンシを維持するための方法およびシステム
US7073004B2 (en) Method and data processing system for microprocessor communication in a cluster-based multi-processor network
JPH0680503B2 (ja) 相互問い合わせ要求に優先権を与える方法及び装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040426

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20061002

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20061010

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20061023

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20091110

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20101110

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20111110

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20111110

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20121110

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees