JP4001516B2 - 縮退制御装置及び方法 - Google Patents

縮退制御装置及び方法 Download PDF

Info

Publication number
JP4001516B2
JP4001516B2 JP2002197817A JP2002197817A JP4001516B2 JP 4001516 B2 JP4001516 B2 JP 4001516B2 JP 2002197817 A JP2002197817 A JP 2002197817A JP 2002197817 A JP2002197817 A JP 2002197817A JP 4001516 B2 JP4001516 B2 JP 4001516B2
Authority
JP
Japan
Prior art keywords
cache
address
data
instruction
degeneration
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
JP2002197817A
Other languages
English (en)
Other versions
JP2004038798A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2002197817A priority Critical patent/JP4001516B2/ja
Priority to US10/345,952 priority patent/US6883069B2/en
Publication of JP2004038798A publication Critical patent/JP2004038798A/ja
Application granted granted Critical
Publication of JP4001516B2 publication Critical patent/JP4001516B2/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/0804Addressing 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

Description

【0001】
【発明の属する技術分野】
本発明は、キャッシュを有する情報処理装置において、ハードウェアによりキャッシュを縮退する縮退制御装置及び方法に関する。
【0002】
【従来の技術】
従来のキャッシュ縮退方式にはハードウェアで行う方法と、ソフトウェアのオペレーションシステム(OS)で行う方法がある。
【0003】
図1はハードウェア制御の例である従来のメインフレームの構成を示すブロック図である。図において、このメインフレームは中央演算処理装置(以下、CPUと称する)11とメモリシステム12を備えている。CPU11は命令制御部であるCPUコア13とキャッシュ14を含んでいる。キャッシュ14は例えば4ウェイ141〜144からなるセット・アソシアティブ方式で設計されている。メモリシステム12はメモリ・コントロール・ユニット(MCU)15とメモリ16を備えている。
【0004】
キャッシュ14は高集積の記憶装置なのでアルファー線によりビットエラーを起こし易い。1ビットエラーの回数が一定値を超えると、多ビットエラーが起る前にそのビットエラーを起こした部分を含むウェイ又はキャッシュ14を切り離そうとする。しかし、ストアイン方式をとるキャッシュにおいてはまずキャッシュのデータをメモリに掃き出さなければならない。その後キャッシュ部はそのエラー箇所を含むウェイに新たにデータを格納しないようにする。その一連の動作をキャッシュ縮退という。
【0005】
メインフレームの構成では、キャッシュ14から縮退制御の要求がMCU15に報告され、MCU15 がキャッシュ14からのデータをメモリ16に掃き出している。キャッシュ14を含むCPU11 とメモリシステム12の設計開発を基本的に同時に行うメインフレームではキャッシュ14とメモリシステム12の動作仕様を同時に決定でき、縮退制御をMCU15から行うことも可能である。
【0006】
図2はソフトウェア制御の例である従来のオープン系システムにおけるキャッシュ縮退を説明するブロック図である。この例は、キャッシュ縮退動作がソフトウェア又はファームウェアで動作するオペレーティング・システム(OS)により行われる場合である。
【0007】
具体的には、1ビットエラーが生じると、ソフトウェアにその旨が報告され、それに応じてソフトウェアは縮退制御を開始する。例えばこのソフトウェア制御でキャッシュ内の全ウェイのデータを掃き出しさせる場合は、まず、OSはキャッシュ内に存在しないデータの読み出しアドレスを発行してキャッシュミスを起こさせる。その結果、OSはメモリ26をアクセスしてその中のデータを読みに行くがストアイン方式のキャッシュではメモリ26の内容をキャッシュ内のデータに更新するためその読み出しデータをキャッシュに書き込む前に、キャッシュ24に存在する最も古く使われた(LRU)のデータを含むウェイからデータをメモリ26に掃き出させる。例え1ビットエラーが発生している場合でもキャッシュから読み出されるデータはECC回路により正しいデータに修正される。このようにしてキャッシュ縮退前にキャッシュ内のデータをメモリに掃き出してメモリの内容を最新のものにしている。
【0008】
図3はひとつのキャッシュ35に対し複数のCPUコア33と34を有するチップマルチプロセッサシステムにおけるキャッシュ縮退を説明するブロック図である。同図において、チップマルチプロセッサシステムはチップマルチプロセッサ31とメモリシステム32を備えている。
【0009】
キャッシュの縮退動作をする場合は、一方のCPUコア33からソフトウェアによりキャッシュ縮退要求を発行している間は、他方のCPUコア34からはキャッシュアクセスをしてはならないため、そのCPUコアを停止状態にしなければならない。しかし、ソフトウェアでそれを行うにはCPUコアをキャッシュアクセスしないように停止させるソフトウェア命令が必要となってしまい、そのような命令がない場合のキャッシュデータの完全な掃き出しは難しい。つまり実現のためにはソフトウェアによりそのようなストップ状態になるような命令を追加する必要があった。
【0010】
【発明が解決しようとする課題】
メインフレームのようなCPU11とメモリシステム12を同時に開発する場合は、キャッシュ14とメモリシステム16との動作仕様の一致をとることに問題はなく、システム側(MCU)からキャッシュ掃き出しを行うことができる。
【0011】
しかし、オープン系システムでは、CPU21とメモリシステム22とは設計開発が別に行われるので、同一のメモリシステムに異なるCPUを搭載したり、逆に同一のCPUを異なるメモリシステムに搭載する場合がある。近年、CPUの動作周波数はますます高くなる傾向にあり、メモリシステムやI/Oの動作周波数との差がますます開いており、CPUをより高速のものに交換することもしばしば行われる。
【0012】
様々な規模のメモリシステムにのることが考えられるオープンシステムではメモリシステムでキャッシュの掃き出し制御は行わずに、ソフトウェアのOSにより行う場合が多い。
【0013】
ただ、上記のOSによる縮退動作を行うためには、ソフトウェア又はファームウェアがキャッシュサイズ及びウェイ数といったキャッシュ構成を把握していなければならない。またソフトウェアでキャッシュの掃き出しを行うには、キャッシュ制御部がどのようなアルゴリズムでキャッシュのデータを掃き出すウェイを選択するのかを知らなければならない。
【0014】
つまり、前述のように、メモリシステム22は変更せずにCPU21のみを変更する場合にも、CPUのキャッシュサイズ、ウェイ数もしくはキャッシュ制御アルゴリズムが変更となるたびにソフトウェア又はファームウェアを変更する必要が生じ、煩雑であるという問題がある。
【0015】
さらに、図3に示したチップマルチプロセッサシステムのように複数のCPUコアが1つのキャッシュを共有する構成の場合は、ソフトウェア又はファームウェアによりキャッシュ35内のデータのメモリシステム32への掃き出しを行うには、一方のCPUコア33からの命令によりキャッシュ35からのデータの掃き出しを行っている間は、他方のCPUコア34がキャッシュ35に有効なデータを持ってこないように命令投入を抑止しなければならない。
【0016】
しかし、ソフトウェア又はファームウェアにより、CPUコアが命令投入を抑止するようなウェイトステートへの遷移を指示できないアーキテクチャの場合には、この命令抑止制御は不可能であるので、結果的に完全なキャッシュデータの掃き出しが難しく、キャッシュの縮退ができないという問題がある。
【0017】
即ち、CPUコアが命令投入を抑止するようなウェイトステートへの遷移を指示できないアーキテクチャの場合に、一方のCPUコア33がソフトウェアによるキャッシュ35の縮退制御をしている途中で、他方のCPUコア34がメモリにアクセスすることが考えられる。すると、メモリへの掃き出しが終わってから今後の使用を禁止する縮退を行う際に、別のCPUコアからのリクエストのデータがその縮退されるべき箇所に格納されてしまうことも考えられる。
【0018】
本発明の一つの目的は、上記従来技術における問題に鑑み、キャッシュの縮退制御をCPUのハードウェアにより行うことで、ソフトウェア又はファームウェアを変更することなくメモリシステムとCPUとの組み合わせによらない縮退制御装置を提供することにある。
【0019】
本発明の他の目的は、ソフトウェア又はファームウェアにより、CPUが命令投入を抑止するようなウェイトステートへの遷移を指示できないアーキテクチャの場合であっても、チップマルチプロセッサにおいてキャッシュの縮退が可能な縮退制御装置を提供することにある。
【0020】
【課題を解決するための手段】
上記目的を達成するために、本発明の一態様により提供されるものは、命令制御部から出力されるキャッシュフラッシュモード開始信号に応答してソフトウェアからの命令供給を中断するソフトウェア中断部と、キャッシュフラッシュモード開始信号に応じて、キャッシュに対してキャッシュデータの掃き出しを行うフェッチリクエストを生成する命令生成部と、キャッシュすべてに対しそのフェッチリクエストを発行するためのリクエストカウンタと、キャッシュフラッシュモード開始信号に応じてキャッシュデータを掃き出しさせるためのアドレスを生成する掃き出しアドレス生成部とを備えたことを特徴とする縮退制御装置である。
【0021】
これにより、キャッシュフラッシュモード開始信号に応答してソフトウェア命令供給が中断し、ハードウェアにてメモリアクセス及びキャッシュの掃き出しウェイの指定が行われて、キャッシュデータの掃き出しが行われるので、ソフトウェア又はファームウェアを変更することなくメモリシステムとCPUとの組み合わせによらない縮退制御が可能になる。
【0022】
本発明の他の態様により、第1の態様において、中央演算処理装置はひとつのキャッシュに対し複数のCPUコアを備えているチップマルチプロセッサであり、該複数のCPUコアの一つが、命令制御部と、ソフトウェア中断部と、キャッシュ掃き出しリクエスト生成部と、掃き出しアドレス生成部とを備えた縮退制御装置が提供される。
【0023】
これにより、ソフトウェア又はファームウェアにより、CPUコアが命令投入を抑止するようなウェイトステートへの遷移を指示できないアーキテクチャのチップマルチプロセッサであっても、確実にキャッシュの縮退を行うことが可能になる。
【0024】
【発明の実施の形態】
以下、本発明の実施の形態を図面によって説明する。
【0025】
図4は本発明の第1の実施の形態による縮退制御装置の概略構成を示すブロック図である。同図において、この縮退制御装置は中央演算処理装置(以下、CPUと称する)41とメモリシステム42を含む情報処理装置の一部である。
【0026】
CPU41は命令制御部であるCPUコア43とキャッシュ44を含んでいる。キャッシュ44は例えば4ウェイ441〜444からなるセット・アソシアティブ方式で設計されている。メモリシステム42はメモリ・コントロール・ユニット(MCU)45とメモリ46を備えている。
【0027】
本実施の形態においては、キャッシュ44の縮退制御をソフトウェア又はファームウェアにて行うことに替えてハードウェアにて行う。
【0028】
次にその動作の概略を説明する。
【0029】
キャッシュエラーの頻度カウンタ(図示せず)のカウント値が一定数を超えると、キャッシュの縮退要求がCPUコア43に報告される。
【0030】
キャッシュ44の縮退要求が報告されると、ソフトウェア命令のフェッチを止めCPUコア43がソフトウェア命令の実行をしないストップ状態となる。次いで、CPUコア43からハードウェアにより、キャッシュミスを起こし、且つメモリ46のアクセス禁止領域を指定する初期アドレスに対して複数回フェッチリクエストが生成される。フェッチリクエストがキャッシュ全体に対して発行されるようにアドレスを変化させる。またフェッチリクエストの回数を数えるリクエストカウンタを用意している。キャッシュミスを起こすアドレスとはキャッシュ44に存在しないアドレスである。キャッシュミスが生じると上記ハードウェア・フェッチ・リクエストはメモリシステム42内のMCU45を経由してメモリ46に与えられる。しかし、上記初期アドレスはメモリ46のアクセス禁止領域を指定するアドレスなので、メモリからはデータが読み出されない。その時に検出されるアクセス禁止例外のエラー報告をCPUコア43は無視する。
【0031】
通常では、キャッシュ44のLRU(最古)のウェイからMCU45を介してメモリにデータの掃き出しが行われ、メモリ46にライトバックされる。キャッシュ縮退の際には、キャッシュの掃き出しがすべてのウェイで必らず行われるように、フェッチリクエストカウンタの上位2ビットをキャッシュ部に送り、その2ビットで掃き出し対象のウェイを決定している。こうして、キャッシュ44のデータ掃き出しを行う。
【0032】
細かい制御回路の追加を省くために、本実施の形態においては掃き出しリクエストはキャッシュ44のエラー個所だけでなく、すべての領域一様に発行する。このことをキャッシュフラッシュという。
【0033】
図5は図4に示したよる縮退制御装置におけるCPUコア43の詳細な構成を示すブロック図である。同図において、CPUコア43は、キャッシュの劣化報告を受けてキャッシュ44の全ての領域の縮退を行うキャッシュフラッシュモード開始信号を発生する命令制御部51と、キャッシュフラッシュモード開始信号に応答してソフトウェアからの命令供給を中断するソフトウェア中断部52と、キャッシュフラッシュモード開始信号に応じて、キャッシュに対してフエッチリクエストを複数回生成する命令生成部53−aと、キャッシュフラッシュモード開始信号に応じて前記キャッシュのデータを掃き出しさせるためのアドレスを生成する掃き出しアドレス生成部54と、キャッシュすべてに対しそのフェッチリクエストを発行し且つ、掃き出しするウェイを指示するリクエストカウンタ58とを備えている。
【0034】
掃き出しアドレス生成部54は、作業用アドレスレジスタ(WAR)55と有効アドレス演算器(EAG)56とを備えている。
【0035】
作業用アドレスレジスタ55は、命令制御部51が、キャッシュ44(図4)からのキャッシュ劣化報告に応答して生成するキャッシュミスを起こし、且つメモリ46のアクセス禁止領域を指定する初期アドレスを格納する。
【0036】
有効アドレス演算器56は、作業用アドレスレジスタ55の内容に基づいてメモリアクセス禁止領域のアドレスを生成すると共に、生成したアドレスで作業用アドレスレジスタ55の内容を更新する。
【0037】
掃き出しリクエスト命令生成部は、作業用アドレスレジスタ55の出力を有効アドレス演算器54に入力させるか否かを決定するフラグWAR−USEと、キャッシュ44に対する1回のフェッチで掃き出されるデータ量(ブロックのバイト数)を即値データで指定し、オペランドコードOPCODE等を含む命令57をリザベーションステーション53にキューイングして格納する。命令57にはその命令57が未実行の場合は有効を示す“1”を、実行後の場合は無効を示す“0”になるバリッドビットVが含まれている。
【0038】
有効アドレスレジスタ54は、フラグWAR−USEが作業用アドレスレジスタ55の出力を有効アドレス演算器54に入力させることを示している場合は、汎用レジスタのデータでなく作業用レジスタのデータと、命令生成部で生成された即値データを加算して、キャッシュ44のデータを掃き出しさせるためのフェッチ要求アドレス(禁止領域のアドレス)を生成する。
【0039】
命令生成部によりキャッシュの掃き出しが生じるようなフェッチリクエストが、アドレス生成部54が生成したフェッチ要求アドレスのメモリ46にアクセスされるが、禁止領域のアドレスであるので、メモリ46からはデータに読み出されない。この時検出されるエラー信号はエラー検出部で縮退処理中無視する。
【0040】
さらに、掃き出しを起こすフェッチリクエストの発行回数をカウントするリクエストカウンタ57が設けられている。キャッシュ44の縮退のためのデータの掃き出し時には、リクエストカウンタ58のカウント値の一部を掃き出しを起こすウェイ番号として指示する。指示されたウェイから掃き出されたデータはMCU45を介してメモリ46に格納される。キャッシュ44は図示例では4つのウェイ(ウェイ442〜444)からなっており、リクエストカウンタ57の出力の上位2ビットを用いてキャッシュ44内の縮退対象ウェイを指定する。
【0041】
図6は図4及び図5に示した縮退制御装置の状態の遷移を説明する流れ図である。同図において、メモリシステム42と、キャッシュ44と、命令制御部51との動作が図の左から右に向かって示されている。図の左に示すように、キャッシュ44の縮退動作のないノーマルモードにおいて、キャッシュ44の一部に劣化が生じると、劣化報告が命令制御部51内のマシンチェックユニット61に通知される。すると、命令制御部51はソフトウェア命令のフェッチをストップするストップ状態62に遷移する。これにより、命令制御部51はソフトウェアの命令供給、実行をストップする状態63になる。
【0042】
その後命令制御部51はキャッシュフラッシュコマンドモード65に移行する。
【0043】
次いで命令制御部51はキャッシュフラッシュのためのハードウェア命令生成部53−aでフェッチ命令生成状態66になり、リザベーション・ステーション53にハードウェアにより生成されたキャッシュフラッシュ用の命令が格納される。本実施形態では簡単化のため、キャッシュフラッシュの場合はキャッシュ内の全てのデータの掃き出しを行う。
【0044】
そして、このリザベーション・ステーション53からキャッシュ44に向けてフェッチリクエストが出力される。メモリ46のアクセス禁止領域をアクセスさせ、キャッシュミス、及びキャッシュ掃き出しを生じさせる。また、禁止領域なのでメモリ46からはデータのムーブインは行われない。キャッシュ44においては生成されたアドレス、及び掃き出しのためのフェッチリクエストの回数を数えるリクエストカウンタの上位2ビットを用いて指定されたウェイからデータがメモリ46に掃き出される。
【0045】
命令デコードユニット64はキャッシュの掃き出しの完了に応じて完了報告をマシンチェックユニット61及びキャッシュ44に通知する。これを受けてキャッシュ部はエラーを検出した箇所を含むウェイを、以後データを格納しないように切り離し、またマシンチェックユニット61では命令制御部51のソフトウェア命令フェッチストップ状態を解放して、ソフトウェア命令を実行するノーマルモードに移行させる。
【0046】
図7は図4及び図5に示した縮退制御装置におけるリクエストカウンタ57のカウント値によって指定されるキャッシュのウェイ番号を示す図である。前述のように、キャッシュ劣化報告が発生すると、メモリ46のアクセス禁止領域のアドレスが生成されてキャッシュフラッシュモード開始信号が命令制御部51により生成される。リクエストカウンタ57はこのキャッシュフラッシュモード開始のあと、キャッシュデータを掃き出すためのフェッチリクエストの発行回数をカウントする。図において、そのカウント値は16進表示で表されている。本実施の形態ではキャッシュは4ウェイ・セットアソシアティブ方式でこのカウント値の2進数で上位2ビットを掃き出しするウェイの番号としている。またキャッシュ44の全容量は2Mバイトで、一つのブロックの容量は64バイトであり、フェッチリクエストは32K回発行する。ハードウェアで作成された命令57(図5)がキャッシュに発行されたとき、リクエストカウンタ57の出力の上位2ビットが00のときはウェイ1が掃き出され、上位2ビットが01のときはウェイ2が掃き出され、上位2ビットが10のときはウェイ3が掃き出され、上位2ビットが11のときはウェイ4が掃き出し対象になる。
【0047】
以上説明した第1の実施の形態における縮退制御装置の動作をまとめると次のようになる。
【0048】
キャッシュエラーの頻度カウンタの値が一定数を超えたときにキャッシュ44のウェイの一部もしくは全ての縮退要求をCPUコア43内の命令制御部51に報告する。これをトリガーにソフトウェア側からの命令供給を中断するCPUストップ状態に遷移させる。その後ハードウェアデコーダで複数回メモリフェッチリクエストを発行する。この時、現在キャッシュ上にあるデータがメモリ46にライトバックされるようにキャッシュ縮退ミスすることと、キャッシュに新たなデータがムーブインしないようにするため、メモリアクセス禁止領域のアドレスにフェッチリクエストを発行する。そのとき検出されるアクセス禁止例外は無視する。細かい制御回路の追加を省くために、掃き出しリクエストはエラー箇所だけでなく、すべての領域に一様に発行する。
【0049】
キャッシュサイズをすべて網羅するメモリアドレスは、まずCPUコア43内の命令制御部51が要求を受けたときに、作業用アドレスレジスタ(WAR)55にメモリアクセス禁止領域のアドレスを初期ベースアドレスとして用意し、即値データにはブロックサイズ(図7の例では64バイト)を指定して、作業用アドレスレジスタ(WAR)55の内容と即値データとの和を有効アドレス演算器(EAG)56で生成する。発行するフェッチ要求アドレスは次のベースアドレスとして有効アドレス演算器(EAG)56にセットし直し、ウェイのブロックサイズを示す即値データに加算して次のアドレスを生成する。この動作を(キャッシュの容量÷キャッシュのウェイのブロックサイズ)回だけ繰り返す。
【0050】
この回数を数えるリクエストカウンタを用いて、掃き出し対象になるウェイを指定する。
【0051】
図8は本発明の第2の実施の形態による縮退制御装置の構成を示すブロック図である。同図において、この縮退制御装置もCPU81とメモリシステム82を含む情報処理装置の一部である。
【0052】
CPU81は命令制御部である2つのCPUコア83及び84とキャッシュ85を含んでいるチップマルチプロセッサであり、これら2つのCPUコアの一つであるCPU83のみが、図5に示した命令制御部51と、ソフトウェア中断部52と、キャッシュデータの掃き出しを行うためのフェッチリクエストを生成する命令生成部53−aと、縮退掃き出しアドレス生成部54と、掃き出し対象のウェイを指定するリクエストカウンタ58とを備えている。
【0053】
このようなチップマルチプロセッサ(CMP)の構成を有するシステムにおいて、キャッシュ縮退をCPUで行う場合、キャッシュ85からの縮退要求をすべてのCPUコア83及び84に報告し、CPUコア83及び84はストップステートに遷移する。そして、一方のCPUコア83のみが第1の実施の形態で説明した制御を行ってキャッシュの掃き出しを行ってからキャッシュを縮退し、終了通知を他方のCPUコア84に報告して、ソフトウェアにより命令投入を再開する。本発明では縮退するまでのすべての作業をソフトウェアが介在することなくハードウェア制御のみで行っている。ハードウェア制御でCPUコアからの命令供給を抑止、再開することで、ソフトウェアのウェイトステートが用意されていないアーキテクチャでもチップマルチプロセッサ(CMP)のキャッシュの掃き出しが可能となる。
【0054】
本実施形態例では縮退制御装置をCPUコア内に設けているが、CPUコア外に設けて、キャッシュに対する縮退制御を行うことも可能である。
(付記1)中央演算処理装置が有するキャッシュの劣化報告を受けてキャッシュフラッシュ開始信号を発生させる命令制御部と、
前記キャッシュフラッシュモード開始信号に応答してソフトウェアの命令供給を中断するソフトウェア中断部と、
前記キャッシュフラッシュモード開始信号に応じて、前記キャッシュに対してキャッシュデータの掃き出しを行うためのフェッチリクエストを複数回生成する掃き出し命令生成部と、
前記キャッシュフラッシュモード開始信号に応じて前記キャッシュのデータを掃き出しさせるための掃き出しアドレス生成部と、を備えたことを特徴とする、縮退制御装置。
(付記2)前記掃き出し命令生成部は、前記キャッシュフラッシュモードでのキャッシュ掃き出しのためのフェッチリクエストの発行回数をカウントするリクエストカウンタを備えており、キャッシュのすべてのデータのフラッシュが完了する回数に達した時点で、掃き出し完了を前記命令制御部及び前記キャッシュに報告することを特徴とする、付記1記載の縮退制御装置。
(付記3)前記キャッシュは複数のウェイからなっており、前記リクエストカウンタの出力の一部を用いて前記キャッシュ内の掃き出し対象ウェイを指定することを特徴とする、付記2記載の縮退制御装置。
(付記4)前記掃き出しアドレス生成部は、作業用アドレスレジスタと有効アドレス演算器とを備えており、キャッシュフラッシュモード開始の信号により、キャッシュサイズを越えるメモリアクセス禁止領域のアドレスと、掃き出しアドレスの初期ベースアドレスとして前記作業用アドレスレジスタに格納することを特徴とする、付記1記載の縮退制御装置。
(付記5)前記掃き出し命令生成部において、キャッシュブロックサイズ値を即値データに用い、作業用レジスタと前記即値データとの加算して得られたアドレスに対するフェッチリクエストを生成することを特徴とする、請求項1,4記載の縮退制御装置。
(付記6)前記フェッチリクエストをメモリシステムに発行すると同時に、
そのアドレスで作業用アドレスレジスタを更新し、その次のフェッチリクエストのアドレス生成に用いることを特徴とする、付記5記載の縮退制御装置。
(付記7)中央演算処理装置を1つのキャッシュに対し複数のCPUコアを備えているチップマルチプロセッサの構成とし、すべてのCPUコアにキャッシュの劣化報告を行うことを特徴とする、付記1に記載の縮退制御装置。
(付記8)前記チップマルチプロセッサにおいて、CPUコアの1つのみが前記キャッシュ掃き出し命令生成部と前記掃き出しアドレス生成部によりキャッシュデータの掃き出しを行い、他のCPUコアはソフトウェア命令の実行を中断することを特徴とする、付記7記載の縮退制御装置。
(付記9)前記チップマルチプロセッサにおいて、1つのCPUコアによりキャッシュデータの掃き出しが完了したとき、他のCPUコアに完了報告を行い、それぞれのCPUコアがソフトウェア命令の実行を再開することを特徴とする、付記7又は8記載の縮退制御装置。
(付記10)キャッシュを有する中央演算処理装置において、
前記キャッシュの劣化報告を受けてキャッシュフラッシュ開始信号を発生させる命令制御と、
前記キャッシュフラッシュモード開始信号に応答してソフトウェアの命令供給を中断するソフトウェア中断制御と、
前記キャッシュフラッシュモード開始信号に応じて、前記キャッシュに対してキャッシュデータの掃き出しを行うためのフェッチリクエストを複数回生成する掃き出し命令生成制御と、
前記キャッシュフラッシュモード開始信号に応じて前記キャッシュのデータを掃き出しさせるための掃き出しアドレス生成制御と、を特徴とする、縮退制御方法。
(付記11)前記掃き出し命令生成制御では、前記キャッシュフラッシュモードでのキャッシュ掃き出しのためのフェッチリクエストの発行回数をカウントし、キャッシュのすべてのデータのフラッシュが完了する回数に達した時点で、掃き出し完了を前記命令制御部及び前記キャッシュに報告することを特徴とする、付記10記載の縮退制御方法。
(付記12)前記キャッシュは複数のウェイからなっており、前記発行回数をカウントするリクエストカウンタの出力の一部を用いて前記キャッシュ内の掃き出し対象ウェイを指定することを特徴とする、付記11記載の縮退制御方法。
(付記13)前記掃き出しアドレス生成制御は、キャッシュフラッシュモード開始の信号により、キャッシュサイズを越えるメモリアクセス禁止領域のアドレスを、掃き出しアドレスの初期ベースアドレスとして作業用アドレスレジスタに格納することを特徴とする、付記12記載の縮退制御方法。
(付記14)前記掃き出し命令生成制御において、キャッシュブロックサイズ値を即値データに用い、作業用レジスタと前記即値データとの加算して得られたアドレスに対するフェッチリクエストを生成することを特徴とする、付記10または13記載の縮退制御方法。
(付記15)前記フェッチリクエストをメモリシステムに発行すると同時に、そのアドレスで作業用アドレスレジスタを更新し、その次のフェッチリクエストのアドレス生成に用いることを特徴とする、付記14記載の縮退制御方法。
(付記16)前記中央演算処理装置を1つのキャッシュに対し複数のCPUコアを備えているチップマルチプロセッサの構成とし、キャッシュの劣化報告をすべてのCPUコアに行うことを特徴とする、付記10に記載の縮退制御方法。
(付記17)前記チップマルチプロセッサにおいて、前記CPUコアの1つのみが前記キャッシュ掃き出し命令生成制御と前記掃き出しアドレス生成制御によりキャッシュデータの掃き出しを行い、他のCPUコアはソフトウェア命令の実行を中断することを特徴とする、付記16記載の縮退制御方法。
(付記18)前記チップマルチプロセッサにおいて、1つのCPUコアによりキャッシュデータの掃き出しが完了したとき、他のCPUコアに完了報告を行い、それぞれのCPUコアがソフトウェア命令の実行を再開することを特徴とする付記10,16又は17記載の縮退制御方法。
【0055】
【発明の効果】
以上説明したように、本発明によれば、CPU命令解読部及び命令発行部のわずかなハードウェアの資源の追加で、CPUを異なるシステムに搭載する場合や、CMPマイクロアーキテクチャを採用する場合に、システムハードウェア、OSの変更、コンピュータアーキテクチャの追加を全く必要とせずに、キャッシュ縮退が可能になる。
【図面の簡単な説明】
【図1】ハードウェア制御の例である従来のメインフレームの構成を示すブロック図である。
【図2】ソフトウェア制御の例である従来のオープン系システムにおけるキャッシュ縮退を説明するブロック図である。
【図3】従来のオープン系システムのマルチプロセッサシステムにおけるキャッシュ縮退を説明するブロック図である。
【図4】本発明の第1の実施の形態による縮退制御装置の概略構成を示すブロック図である。
【図5】図4に示したよる縮退制御装置におけるCPUコア43の詳細な構成を示すブロック図である。
【図6】図4及び図5に示した縮退制御装置の状態の遷移を説明する流れ図である。
【図7】図4及び図5に示した縮退制御装置におけるリクエストカウンタ57のカウント値によって指定されるキャッシュのウェイ番号を示す図である。
【図8】本発明の第2の実施の形態による縮退制御装置の構成を示すブロック図である。
【符号の説明】
41…中央演算処理装置
42…メモリシステム
43…CPUコア
44…キャッシュ
441〜444…ウェイ
45…MCU
46…メモリ
51…命令制御部
52…ソフトウェア中断部
53…リザベーション・ステーション
54…縮退アドレス生成部
55…作業用アドレスレジスタ
56…有効アドレス演算器
57…リクエストカウンタ

Claims (10)

  1. 中央演算処理装置が有するキャッシュの劣化が発生した場合にキャッシュフラッシュモード開始信号を発生させる命令制御部と、
    前記キャッシュフラッシュモード開始信号に応答してソフトウェアの命令供給を中断するソフトウェア中断部と、
    前記キャッシュフラッシュモード開始信号に応じて、前記キャッシュに対してキャッシュデータの掃き出しを行うためのフェッチリクエストを複数回生成する掃き出し命令生成部と、
    前記キャッシュフラッシュモード開始信号に応じて前記キャッシュのデータを掃き出しさせるための掃き出しアドレス生成部を備えたことを特徴とする縮退制御装置。
  2. 前記掃き出し命令生成部は、前記キャッシュフラッシュモードでのキャッシュ掃き出しのためのフェッチリクエストの発行回数をカウントするリクエストカウンタを備えており
    ャッシュのすべてのデータのフラッシュが完了する回数に達した時点で、掃き出し完了を前記命令制御部及び前記キャッシュに報告することを特徴とする請求項1記載の縮退制御装置。
  3. 前記掃き出しアドレス生成部は、作業用アドレスレジスタと有効アドレス演算器とを備えており、キャッシュフラッシュモード開始信号により、メモリアクセス禁止領域のアドレスを、掃き出しアドレスの初期ベースアドレスとして前記作業用アドレスレジスタに格納することを特徴とする請求項1記載の縮退制御装置。
  4. 前記掃き出しアドレス生成部において、所定のキャッシュブロックサイズ値を即値データに用い、前記作業用アドレスレジスタが保持するアドレスと前記即値データとを前記有効アドレス演算器を用いて加算して得られたアドレスにしてフェッチリクエストを生成することを特徴とする請求項記載の縮退制御装置。
  5. 前記中央演算処理装置は、1つのキャッシュに対し複数のCPUコアを有するとともに前記キャッシュの劣化が発生した場合には、前記複数のCPUコア全て対してキャッシュの劣化通知することを特徴とする請求項1〜4のいずれかに記載の縮退制御装置。
  6. キャッシュを有する中央演算処理装置の縮退制御方法において、
    前記キャッシュ劣化した場合にキャッシュフラッシュモード開始信号を発生させるステップと、
    前記キャッシュフラッシュモード開始信号に応答してソフトウェアの命令供給を中断するステップと、
    前記キャッシュフラッシュモード開始信号に応じて、前記キャッシュに対してキャッシュデータの掃き出しを行うためのフェッチリクエストを複数回生成するステップと、
    前記キャッシュフラッシュモード開始信号に応じて前記キャッシュのデータ掃き出しを行うステップを実行することを特徴とする縮退制御方法。
  7. 前記フェッチリクエストを複数回生成するステップは、
    前記キャッシュフラッシュモード開始信によるキャッシュ掃き出しのためのフェッチリクエストの発行回数をカウントし、前記キャッシュのすべてのデータの掃き出しが完了する回数に達した時点で、掃き出し完了を命令制御部及び前記キャッシュに報告することを特徴とする請求項6記載の縮退制御方法。
  8. 前記キャッシュのデータの掃き出しを行うステップは
    前記キャッシュフラッシュモード開始信号により、メモリアクセス禁止領域のアドレスを、掃き出しアドレスの初期ベースアドレスとして作業用アドレスレジスタに格納することを特徴とする請求項6記載の縮退制御方法。
  9. 前記キャッシュのデータの掃き出しを行うステップにおいて、所定のキャッシュブロックサイズ値を即値データに用い、
    前記作業用アドレスレジスタが保持する前記アドレスと前記即値データとを加算して得られたアドレスに対してフェッチリクエストを生成することを特徴とする請求項記載の縮退制御方法。
  10. 前記中央演算処理装置は、1つのキャッシュに対し複数のCPUコアを有するとともに、前記キャッシュの劣化が発生した場合には、前記複数のCPUコアの全てに対して前記キャッシュの劣化を通知することを特徴とする請求項6〜9のいずれかに記載の縮退制御方法。
JP2002197817A 2002-07-05 2002-07-05 縮退制御装置及び方法 Expired - Fee Related JP4001516B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2002197817A JP4001516B2 (ja) 2002-07-05 2002-07-05 縮退制御装置及び方法
US10/345,952 US6883069B2 (en) 2002-07-05 2003-01-17 Cache control device and manufacturing method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002197817A JP4001516B2 (ja) 2002-07-05 2002-07-05 縮退制御装置及び方法

Publications (2)

Publication Number Publication Date
JP2004038798A JP2004038798A (ja) 2004-02-05
JP4001516B2 true JP4001516B2 (ja) 2007-10-31

Family

ID=29997085

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002197817A Expired - Fee Related JP4001516B2 (ja) 2002-07-05 2002-07-05 縮退制御装置及び方法

Country Status (2)

Country Link
US (1) US6883069B2 (ja)
JP (1) JP4001516B2 (ja)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7529997B2 (en) * 2005-03-14 2009-05-05 International Business Machines Corporation Method for self-correcting cache using line delete, data logging, and fuse repair correction
WO2007097026A1 (ja) * 2006-02-27 2007-08-30 Fujitsu Limited キャッシュ制御装置およびキャッシュ制御プログラム
US8935302B2 (en) 2006-12-06 2015-01-13 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for data block usage information synchronization for a non-volatile storage volume
US8443134B2 (en) 2006-12-06 2013-05-14 Fusion-Io, Inc. Apparatus, system, and method for graceful cache device degradation
US8706968B2 (en) 2007-12-06 2014-04-22 Fusion-Io, Inc. Apparatus, system, and method for redundant write caching
US8489817B2 (en) 2007-12-06 2013-07-16 Fusion-Io, Inc. Apparatus, system, and method for caching data
US9104599B2 (en) 2007-12-06 2015-08-11 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for destaging cached data
KR101490327B1 (ko) 2006-12-06 2015-02-05 퓨전-아이오, 인크. 뱅크 인터리브를 이용한 솔리드-스테이트 스토리지의 명령 관리 장치, 시스템 및 방법
US9519540B2 (en) 2007-12-06 2016-12-13 Sandisk Technologies Llc Apparatus, system, and method for destaging cached data
US7836226B2 (en) 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
CN102696010B (zh) 2009-09-08 2016-03-23 才智知识产权控股公司(2) 用于将数据高速缓存在固态存储设备上的装置、系统和方法
US9122579B2 (en) 2010-01-06 2015-09-01 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for a storage layer
JP5518197B2 (ja) * 2009-09-09 2014-06-11 フュージョン−アイオー・インコーポレーテッド ストレージを割り当てるための装置、システム、および方法
WO2012083308A2 (en) 2010-12-17 2012-06-21 Fusion-Io, Inc. Apparatus, system, and method for persistent data management on a non-volatile storage media
WO2012106362A2 (en) 2011-01-31 2012-08-09 Fusion-Io, Inc. Apparatus, system, and method for managing eviction of data
US9201677B2 (en) 2011-05-23 2015-12-01 Intelligent Intellectual Property Holdings 2 Llc Managing data input/output operations
US9003104B2 (en) 2011-02-15 2015-04-07 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a file-level cache
US8874823B2 (en) 2011-02-15 2014-10-28 Intellectual Property Holdings 2 Llc Systems and methods for managing data input/output operations
US9141527B2 (en) 2011-02-25 2015-09-22 Intelligent Intellectual Property Holdings 2 Llc Managing cache pools
WO2012129191A2 (en) 2011-03-18 2012-09-27 Fusion-Io, Inc. Logical interfaces for contextual storage
US9563555B2 (en) 2011-03-18 2017-02-07 Sandisk Technologies Llc Systems and methods for storage allocation
JP2012234254A (ja) * 2011-04-28 2012-11-29 Toshiba Corp メモリシステム
US9251052B2 (en) 2012-01-12 2016-02-02 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for profiling a non-volatile cache having a logical-to-physical translation layer
US10102117B2 (en) 2012-01-12 2018-10-16 Sandisk Technologies Llc Systems and methods for cache and storage device coordination
US9767032B2 (en) 2012-01-12 2017-09-19 Sandisk Technologies Llc Systems and methods for cache endurance
US9251086B2 (en) 2012-01-24 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for managing a cache
US9116812B2 (en) 2012-01-27 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a de-duplication cache
US10019353B2 (en) 2012-03-02 2018-07-10 Longitude Enterprise Flash S.A.R.L. Systems and methods for referencing data on a storage medium
US9612966B2 (en) 2012-07-03 2017-04-04 Sandisk Technologies Llc Systems, methods and apparatus for a virtual machine cache
US10339056B2 (en) 2012-07-03 2019-07-02 Sandisk Technologies Llc Systems, methods and apparatus for cache transfers
US10346095B2 (en) 2012-08-31 2019-07-09 Sandisk Technologies, Llc Systems, methods, and interfaces for adaptive cache persistence
US10318495B2 (en) 2012-09-24 2019-06-11 Sandisk Technologies Llc Snapshots for a non-volatile device
US10509776B2 (en) 2012-09-24 2019-12-17 Sandisk Technologies Llc Time sequence data management
US9842053B2 (en) 2013-03-15 2017-12-12 Sandisk Technologies Llc Systems and methods for persistent cache logging
US10102144B2 (en) 2013-04-16 2018-10-16 Sandisk Technologies Llc Systems, methods and interfaces for data virtualization
US10558561B2 (en) 2013-04-16 2020-02-11 Sandisk Technologies Llc Systems and methods for storage metadata management
US9842128B2 (en) 2013-08-01 2017-12-12 Sandisk Technologies Llc Systems and methods for atomic storage operations
CN105164656B (zh) * 2013-08-30 2018-03-06 慧与发展有限责任合伙企业 完成包的返回
US10019320B2 (en) 2013-10-18 2018-07-10 Sandisk Technologies Llc Systems and methods for distributed atomic storage operations
US10073630B2 (en) 2013-11-08 2018-09-11 Sandisk Technologies Llc Systems and methods for log coordination
WO2016031049A1 (ja) * 2014-08-29 2016-03-03 株式会社日立製作所 計算機システム及び計算機の制御方法
US9946607B2 (en) 2015-03-04 2018-04-17 Sandisk Technologies Llc Systems and methods for storage error management
JP6477352B2 (ja) * 2015-08-17 2019-03-06 富士通株式会社 演算処理装置、演算処理装置の制御方法および演算処理装置の制御プログラム
TWI582776B (zh) * 2016-01-04 2017-05-11 群聯電子股份有限公司 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
US20180095906A1 (en) * 2016-09-30 2018-04-05 Intel Corporation Hardware-based shared data coherency
JP6880795B2 (ja) * 2017-02-08 2021-06-02 オムロン株式会社 制御装置およびその制御方法
US20240095208A1 (en) * 2022-09-15 2024-03-21 Ampere Computing Llc External quiesce of a core in a multi-core system

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2786058B2 (ja) 1992-06-17 1998-08-13 日本電気株式会社 情報処理装置
JPH08221215A (ja) 1995-02-16 1996-08-30 Fujitsu Ltd 外部記憶制御装置
US5784394A (en) * 1996-11-15 1998-07-21 International Business Machines Corporation Method and system for implementing parity error recovery schemes in a data processing system
US6901532B2 (en) * 2002-03-28 2005-05-31 Honeywell International Inc. System and method for recovering from radiation induced memory errors

Also Published As

Publication number Publication date
JP2004038798A (ja) 2004-02-05
US6883069B2 (en) 2005-04-19
US20040006670A1 (en) 2004-01-08

Similar Documents

Publication Publication Date Title
JP4001516B2 (ja) 縮退制御装置及び方法
US7055003B2 (en) Data cache scrub mechanism for large L2/L3 data cache structures
US7987407B2 (en) Handling of hard errors in a cache of a data processing apparatus
US7240277B2 (en) Memory error detection reporting
US5353430A (en) Method of operating a cache system including determining an elapsed time or amount of data written to cache prior to writing to main storage
US7447845B2 (en) Data processing system, processor and method of data processing in which local memory access requests are serviced by state machines with differing functionality
US7987384B2 (en) Method, system, and computer program product for handling errors in a cache without processor core recovery
US20160283376A1 (en) Cache management request fusing
JP2012103826A (ja) キャッシュメモリシステム
US8205136B2 (en) Fault tolerant encoding of directory states for stuck bits
US5960457A (en) Cache coherency test system and methodology for testing cache operation in the presence of an external snoop
US8621336B2 (en) Error correction in a set associative storage device
US20230297469A1 (en) Parallelized scrubbing transactions
CN111149094A (zh) 处理缓冲器中的错误
JP4181500B2 (ja) ブロッキングなく、キャッシュ参照間に直面するビットエラーを修正する方法および装置
US7689891B2 (en) Method and system for handling stuck bits in cache directories
JP2004062377A (ja) 共有キャッシュメモリ障害処理方式
US20200096569A1 (en) System, Apparatus And Method For Probeless Field Scan Of A Processor
JP3494072B2 (ja) キャッシュメモリ及びその障害検出方法
JPH0773106A (ja) キャッシュメモリ
JP4451887B2 (ja) プロセッサシステム及びキャッシュフラッシュ方法
JPH04248644A (ja) キャッシュメモリ制御回路
JPH06324941A (ja) 再開処理方法
JPH05241955A (ja) フラッシュアレイのエラー処理方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050606

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070508

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070705

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: 20070717

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070814

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

Free format text: PAYMENT UNTIL: 20100824

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4001516

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20110824

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120824

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120824

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130824

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees