JPH0916472A - キャッシュメモリ試験方法 - Google Patents

キャッシュメモリ試験方法

Info

Publication number
JPH0916472A
JPH0916472A JP7169049A JP16904995A JPH0916472A JP H0916472 A JPH0916472 A JP H0916472A JP 7169049 A JP7169049 A JP 7169049A JP 16904995 A JP16904995 A JP 16904995A JP H0916472 A JPH0916472 A JP H0916472A
Authority
JP
Japan
Prior art keywords
cache memory
data
access
cache
processor
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
Application number
JP7169049A
Other languages
English (en)
Inventor
Yukio Kobayashi
幸夫 小林
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 JP7169049A priority Critical patent/JPH0916472A/ja
Priority to US08/635,399 priority patent/US5748879A/en
Publication of JPH0916472A publication Critical patent/JPH0916472A/ja
Pending legal-status Critical Current

Links

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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing

Abstract

(57)【要約】 【課題】 本発明はキャッシュメモリ試験方法に関し、
同期制御を必要とせず、アクセス競合に絡む膨大なトラ
ンズアクションの試験であっても高速にアクセス源から
キャッシュメモリへのアクセスを制御するキャッシュメ
モリ制御機構を試験可能とすることを目的とする。 【解決手段】 各々がキャッシュメモリを有し、且つ、
アクセス源となるプロセッサが複数主記憶装置に対して
接続されているシステムにおいて、キャッシュメモリ間
又はキャッシュメモリと主記憶装置との間のデータコヒ
レンシーを制御するキャッシュメモリ制御機構の試験方
法であって、前記データコヒレンシーの制御における機
構的な最小単位である制御単位をプロセッサの数に応じ
て分割し、分割された制御単位内に各プロセッサに固有
で互いに異なる位置のキャッシュメモリ内のアクセス領
域を割り当てる第1のステップと、各プロセッサが同じ
制御単位内で各々に固有なアクセス領域に対してのみデ
ータを書き込み読み出して、読み出したデータに基づい
てキャッシュメモリ制御機構の試験を行う第2のステッ
プとを含むように構成する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はキャッシュメモリ試
験方法に関し、特にキャッシュメモリへのアクセスを制
御するキャッシュメモリ制御機構を試験するキャッシュ
メモリ試験方法に関する。
【0002】キャッシュメモリが接続された中央処理装
置(CPU)を複数有するシステムにおいては、アクセ
ス源となる各CPUからキャッシュメモリへのアクセス
を行い、キャッシュメモリへのアクセスを制御するキャ
ッシュメモリ制御機構を試験することが行われる。キャ
ッシュメモリ制御機構の試験は、アクセス源の競合タイ
ミングに絡む膨大なトランズアクション(事象)の試験
であっても、できるだけ高速に行えることが望ましい。
【0003】
【従来の技術】図16は、考えられるキャッシュ試験方
法を説明するためのブロック図である。同図に示すシス
テムは、アクセス源となるCPU100A,100B
と、キャッシュメモリ101A,101Bと、キャッシ
ュメモリ101A,101Bに比べてアクセススピード
の遅いメモリ102とからなる。
【0004】この様なシステムにおいて、キャッシュメ
モリ101A,101Bとメモリ102との間のデータ
コヒレンシー制御は、最新データが書き込まれた領域に
ついてはシステム内に最新のデータのみが存在するよう
に行われる。例えば、キャッシュメモリ101A,10
1B等の2以上のキャッシュメモリに同一領域のデータ
が存在する場合には、不特定の書き込みが行われた後の
全ての読み出しに対して最新のデータのみが読み出さ
れ、書き込み以前の旧データは見えないように制御が行
われる。
【0005】この考えられる試験方法では、アクセス源
であるCPU100Aがキャッシュメモリ101Aに書
き込んだ領域のデータを、このキャッシュメモリ101
Aを共有しない他のアクセス源であるCPU100Bが
読み出してキャッシュメモリ101Bへコピーし、CP
U101Bが読み出したデータがCPU100Aにより
書き込まれたデータであることを検出することにより、
旧データが最新データに置き換えられたことを判定でき
る。CPU100A以外のアクセス源、即ち、ここでは
CPU100Bからのアクセスについても同様の試験を
行うことができる。
【0006】図17は、CPU100A,100Bの動
作を説明するフローチャートである。同図中、ステップ
S101〜S105はCPU100Aの動作に対応し、
ステップS111〜S116はCPU100Bの動作に
対応する。図17において、CPU101Aは、ステッ
プS101でポインタ1の示すデータをメモリ102か
らキャッシュメモリ101Aの領域Aに書き込む。CP
U101Aは、ステップS102で書き込み完了フラグ
をセットする。このステップS102に同期して、CP
U101BはステップS111で書き込みフラグがセッ
トされているか否かを判定し、判定結果がYESとなる
とCPU101BはステップS112で領域Aのデータ
をキャッシュメモリ101Aから読み出してキャッシュ
メモリ101Bへコピーする。CPU101Bは、ステ
ップS113で読み出されたデータがポインタ1の示す
データであるか否かを判定し、判定結果がNOであると
ステップS114でエラー通知を行ってから処理が終了
する。他方、ステップS113の判定結果がYESの場
合、CPU101BはステップS115で書き込み完了
フラグをリセットする。
【0007】このステップS115に同期して、CPU
101AはステップS103で書き込み完了フラグがリ
セットされているか否かを判定し、判定結果がYESと
なるとステップS104でポインタ1を更新する。CP
U101Aは、その後ステップS105で書き込みは全
て完了したか否かを判定し、判定結果がNOであれば処
理がステップS101へ戻り、YESであれば処理は終
了する。他方、CPU101Bは、ステップS115の
後ステップS116で読み出しが全て完了したか否かを
判定し、判定結果がNOであると処理がステップS11
1へ戻り、YESであると処理は終了する。
【0008】
【発明が解決しようとする課題】しかし、上記考えられ
る試験方法では、第1のアクセス源のキャッシュメモリ
に対するデータの書き込みが終了したことを第2のアク
セス源が認識してから、第2のアクセス源は第1のアク
セス源がキャッシュメモリに書き込んだ領域からデータ
の読み出しを行って第1のアクセス源が書き込んだデー
タであることを判定する。つまり、第1のアクセス源に
よるキャッシュメモリに対する書き込みが終了してから
第2のアクセス源によるキャッシュメモリからの読み出
しが行われるように同期制御を行う必要がある。
【0009】上記同期制御は、何らかのプログラム論理
的な手法を用いて行うことが考えられるが、この場合、
同期制御に要するプログラムステップ数はアクセス源に
よる書き込みや読み出しに要するプログラムステップ数
と比べて約数十から数百倍となってしまう。このため、
アクセス源のアクセス時間に対して同期制御に要する時
間が非常に長くなってしまうという問題がある。又、同
期制御に要する時間が非常に長いと、試験パターンが多
い場合には試験効率が非常に悪くなってしまい、膨大な
試験時間が必要となるという問題もある。更に、アクセ
スの同期制御を行う必要があるため、同時アクセス等の
試験を行うことはできないという問題もある。
【0010】そこで、本発明は、上記同期制御を必要と
せず、アクセス競合に絡む膨大なトランズアクションの
試験であっても高速にアクセス源からキャッシュメモリ
へのアクセスを制御するキャッシュメモリ制御機構を試
験することのできるキャッシュメモリ試験方法を提供す
ることを目的とする。
【0011】
【課題を解決するための手段】上記の課題は、請求項1
記載の、各々がキャッシュメモリを有し、且つ、アクセ
ス源となるプロセッサが複数主記憶装置に対して接続さ
れているシステムにおいて、該キャッシュメモリ間又は
該キャッシュメモリと該主記憶装置との間のデータコヒ
レンシーを制御するキャッシュメモリ制御機構の試験方
法であって、該データコヒレンシーの制御における機構
的な最小単位である制御単位をプロセッサの数に応じて
分割し、分割された該制御単位内に各プロセッサに固有
で互いに異なる位置のキャッシュメモリ内のアクセス領
域を割り当てる第1のステップと、各プロセッサが同じ
制御単位内で各々に固有なアクセス領域に対してのみデ
ータを書き込み読み出して、読み出したデータに基づい
てキャッシュメモリ制御機構の試験を行う第2のステッ
プとを含むキャッシュメモリ試験方法によって達成でき
る。
【0012】請求項2記載の発明では、請求項1におい
て、前記第1のステップは、プロセッサの数をN、前記
制御単位の長さをMバイトとすると、各プロセッサに対
してM/Nバイト以下のアクセス領域を割り当てる。請
求項3記載の発明では、請求項1又は2において、前記
第2のステップは、各プロセッサ間のアクセスの同期を
取ることなくキャッシュメモリ制御試験を行う。
【0013】請求項4記載の発明では、請求項1〜3の
いずれかにおいて、前記第2のステップは、各プロセッ
サにランダムな順序で試験用のアクセス命令を実行させ
る。請求項5記載の発明では、請求項4において、各プ
ロセッサに同じアクセス命令列を実行させる。
【0014】請求項6記載の発明では、請求項4におい
て、前記第2のステップは、先行するアクセス命令が書
き込んだアクセス領域のデータを後続するアクセス命令
が読み出し、読み出したデータに演算処理を施して加工
後に同じアクセス領域に書き込み、データを連鎖させる
アクセス命令列で各プロセッサの実行結果を比較するこ
とによりキャッシュメモリ制御機構の試験を行う。
【0015】請求項7記載の発明では、請求項4におい
て、前記第2のステップは、先行するアクセス命令が書
き込んだアクセス領域のデータを後続するアクセス命令
が読み出し、読み出したデータに一定の加工を施した後
に同じアクセス領域に書き込み、データを連鎖させるア
クセス命令列で各プロセッサ毎に実行結果を予測結果と
比較することによりキャッシュメモリ制御機構の試験を
行う。
【0016】請求項8記載の発明では、請求項7におい
て、前記第2のステップは、読み出したデータ或いは加
工後のデータを各プロセッサに固有の別領域に全て記録
し、データの確認で異常を検出した際に記録されたデー
タの変化が一定の法則に基づいていない部分を検索する
ことで試験用アクセス命令列中異常が発生したアクセス
命令を特定する。
【0017】請求項1〜3記載の発明によれば、各プロ
セッサ間の同期処理が不要となるので、高速な試験が可
能となる。請求項4及び5記載の発明によれば、各プロ
セッサが実行するランダムな試験用アクセス命令が競合
し合うことで、予測できないようなアクセス競合タイミ
ングのトランズアクションについても試験が可能とな
る。
【0018】請求項6記載の発明によれば、膨大な数の
ランダムな試験用アクセス命令を実行しても、途中で発
生するコヒレンシー制御異常によるデータ異常を確実に
検出することができる。請求項7記載の発明によれば、
各プロセッサの実行結果は各自で確認できるので、プロ
セッサ間で実行結果を比較する必要のなく、プログラム
制御が簡単になると共に試験時間を短縮できる。
【0019】請求項8記載の発明によれば、試験用アク
セス命令列のどのアクセス命令で制御異常が発生したか
を容易に特定できる。従って、本発明によれば、同期制
御を必要とせず、アクセス競合に絡む膨大なトランズア
クションの試験であっても高速にアクセス源からキャッ
シュメモリへのアクセスを制御するキャッシュメモリ制
御機構を試験することができる。
【0020】
【発明の実施の形態】以下に、本発明の実施の形態を、
実施例を例にとって説明する。
【0021】
【実施例】図1は、本発明になるキャッシュメモリ試験
方法を適用し得るシステムの概略構成を示すブロック図
である。同図中、システムはCPU1A,1Bと、キャ
ッシュメモリ2A,2Bと、キャッシュメモリ2A,2
Bの状態を記録するキャッシュタグ3A,3Bと、キャ
ッシュ処理を制御するキャッシュ制御部4A,4Bと、
バス5と、主記憶装置6とからなる。
【0022】先ず、本発明になるキャッシュメモリ試験
方法の一実施例を図2〜図4と共に説明する。図2は、
実施例におけるアクセスの割り付けを説明する図であ
る。又、図3は実施例におけるキャッシュメモリの状態
遷移を説明する図であり、図4は実施例におけるキャッ
シュタグの状態遷移及びトランザクションを説明する図
である。以下の説明では、便宜上第1のアクセス源がC
PU1Aであり第2のアクセス源がCPU1Bであるも
のとする。
【0023】図1に示す主記憶装置6からデータを読み
出して例えばキャッシュメモリ2Aに書き込むキャッシ
ュ処理を行う場合、通常、キャッシュ処理の最小単位は
8ビット、即ち、1バイトである。しかし、プログラム
やデータの連続性を考慮すると、キャッシュ処理を1バ
イト単位で行うより、ある程度まとまった所定数のバイ
ト単位でキャッシュ処理を行った方がキャッシュ処理を
繰り返す頻度を減少できて効率が良い。そこで、キャッ
シュ処理は例えば8バイト単位とか64バイト単位とか
の制御単位で行われることが多い。本発明では、この制
御単位を積極的に利用する。
【0024】つまり、本実施例では、第1のアクセス源
と第2のアクセス源とには、キャッシュメモリ間又はキ
ャッシュメモリと主記憶装置との間のデータコヒレンシ
ー(一貫性)制御における機構的な最小単位である制御
単位を分割して、固有のアクセス領域を割り当てられて
いる。このため、第1のアクセス源のデータ及び第2の
アクセス源のデータは、図2に示すように夫々同じ制御
単位内の異なる位置に共存する。図2中、制御単位は例
えば64バイトであり、第1のアクセス源のデータ及び
第2のアクセス源のデータには夫々32バイト以下のア
クセス領域が割り当てられている。
【0025】尚、N個のアクセス源が存在する場合に
は、制御単位がMバイトとすると、各アクセス源のデー
タにはM/Nバイト以下のアクセス領域を割り当てるよ
うにすれば良い。図3は、キャッシュメモリ2A,2B
の遷移状態を示す図であり、状態ST1〜ST8を示
す。状態ST1では、CPU1Aはキャッシュメモリ2
A内のCPU1A固有のアクセス領域にデータAを制御
単位の最新データとして書き込む。この状態ST1で
は、キャッシュメモリ2B内ではデータAと同じ制御単
位内で共存するデータが無効化されている。次に、状態
ST2では、CPU1Bがキャッシュメモリ2B内のC
PU1B固有のアクセス領域にデータBを書き込むが、
この際、同じ制御単位内で共存するデータAも反映され
た形で最新データとして書き込まれる。更に、この状態
ST2では、キャッシュメモリ2A内のデータAの制御
単位のデータは、同じ制御単位内へのCPU1Bからの
書き込みによりキャッシュメモリ2B内のデータよりも
古くなってしまうので、制御単位で無効化されている。
従って、この時点では、キャッシュメモリ2B内にのみ
CPU1A及びCPU1Bが書き込んだ最新データが存
在する。
【0026】次に、状態ST3では、新たにCPU1A
からのデータA’の書き込みがあると、キャッシュメモ
リ2A内にのみ両方のCPU1A,1Bのアクセスによ
る最新データA’,Bが存在するようにキャッシュ処理
の制御が行われる。この状態ST3では、キャッシュメ
モリ2B内のデータA,Bの制御単位のデータは、同じ
制御単位内へのCPU1Aからの書き込みによりキャッ
シュメモリ2A内のデータよりも古くなってしまうの
で、制御単位で無効化されている。又、状態ST4で
は、新たにCPU1BからのデータB’の書き込みがあ
ると、キャッシュメモリ2B内にのみ両方のCPU1
A,1Bのアクセスによる最新データA’,B’が存在
するようにキャッシュ処理の制御が行われる。この状態
ST4では、キャッシュメモリ2A内のデータA’,B
の制御単位のデータは、同じ制御単位内へのCPU1B
からの書き込みによりキャッシュメモリ2B内のデータ
よりも古くなってしまうので、制御単位で無効化されて
いる。
【0027】他方、CPU1A,1Bによるキャッシュ
メモリ2A,2Bからの読み出しは、以下のように行わ
れる。状態ST5では、CPU1Aがキャッシュメモリ
2Aから制御単位のデータA’を読み出そうとするが、
キャッシュメモリ2A内の制御単位のデータは無効化さ
れておりデータA’はキャッシュメモリ2B内にあるの
で、先ずデータA’をデータB’と共にキャッシュメモ
リ2Bから読み出す。状態ST6では、CPU1Aがキ
ャッシュメモリ2Bから読み出した制御単位のデータ
A’をA”としてデータB’と共にキャッシュメモリ2
A内に書き込む。この状態ST6では、キャッシュメモ
リ2B内のデータA”,B’の制御単位のデータは、同
じ制御単位内へのCPU1Aからの書き込みによりキャ
ッシュメモリ2A内のデータよりも古くなってしまうの
で、制御単位で無効化されている。
【0028】同様にして、状態ST7では、CPU1B
がキャッシュメモリ2Bから制御単位のデータB’を読
み出そうとするが、キャッシュメモリ2B内の制御単位
のデータは無効化されておりデータB’はキャッシュメ
モリ2A内にあるので、先ずデータB’をデータA”と
共にキャッシュメモリ2Aから読み出す。状態ST8で
は、CPU1Bがキャッシュメモリ2Aから読み出した
制御単位のデータB’をB”としてデータA”と共にキ
ャッシュメモリ2B内に書き込む。この状態ST8で
は、キャッシュメモリ2A内のデータA”,B’の制御
単位のデータは、同じ制御単位内へのCPU1Bからの
書き込みによりキャッシュメモリ2B内のデータよりも
古くなってしまうので、制御単位で無効化されている。
【0029】このようにして、アクセス源から見るとア
クセスするデータ長に関わり無く、制御単位で1つのデ
ータとしてキャッシュ処理が制御される。従って、制御
単位全体を1つのデータと見なしてキャッシュ処理を行
うことができる。又、このようなキャッシュ処理の制御
が行われている時に夫々のアクセス源が自分の書き込ん
だデータを読み出して確認することは、制御単位内のデ
ータを部分確認することと等価であるので、全てのアク
セス源が部分確認を行うことで結果的には全てのデータ
を確認したことになる。
【0030】又、上記の如きキャッシュ処理の制御にお
いては、アクセス源間で同期を取る必要が無く、次々に
アクセスパターンの試験を行うことができる。このた
め、上記の考えられるキャッシュメモリ試験方法に比べ
ると、制御単位のバイト数やアクセス源の数にもよる
が、試験時間を例えば数十分の一から数百分の一以下に
することができる。更に、同期制御が不要であるため、
同時アクセス等の試験を行うことも可能である。
【0031】図4は、本実施例におけるキャッシュタグ
3A,3Bの状態遷移及びトランザクションを説明する
図である。図4において、初期状態では全てのタグは
「無効」(INV)とされている。そして、図3に示す
状態ST1では、CPU1Aに関するタグのみが「単一
最新」(EX&D)となり、キャッシュタグ3Aに記録
される。状態ST2では、キャッシュ処理の制御により
CPU1Bに関するタグが「単一最新」(EX&D)と
なりキャッシュタグ3Bに記録されると共に、CPU1
Aに関するタグは「無効」(INV)に変化してキャッ
シュタグ3Aに記録される。又、状態ST3では、CP
U1Aに関するタグが「単一最新」(EX&D)となり
キャッシュタグ3Aに記録されると共に、CPU1Bに
関するタグは「無効」(INV)に変化してキャッシュ
タグ3Bに記録される。状態ST4では、キャッシュ処
理の制御によりCPU1Bに関するタグが「単一最新」
(EX&D)となりキャッシュタグ3Bに記録されると
共に、CPU1Aに関するタグは「無効」(INV)に
変化してキャッシュタグ3Aに記録される。更に、状態
ST5では、CPU1Aに関するタグが「共有複写」
(SH&M)となりキャッシュタグ3Aに記録される。
【0032】尚、図4中、「共有一致」(SH&C)
は、主記憶装置6から読み出しを行って主記憶装置6と
キャッシュメモリ2A又は2Bとの内容が一致している
状態を示す。又、各種トランズアクションは次のような
表記を用いて図示してあり、括弧〔 ]内はT(トラン
ズアクション)ーバス出力を表す。 P−RD: プロセッサリード P−WT: プロセッサライト RP: リプレース T−CR: Tーバスコヒレントリード T−CRI: T−バスコヒレントリード・アンド・イ
ンバリデート T−CI: T−バスコヒレントインバリデート T−EX: T−バスエクスクルシブ T−RPL: T−バスリプライ T−DT: T−バスデータトランスファ T−CB: T−バスコピーバック T−RP: T−バスリプレース T−R: T−バスリード T−W: T−バスライト H−CR: HDCコヒレントリード H−CRI: HDCコヒレントリード・アンド・イン
バリデート H−CI: HDCコヒレントインバリデート H−LD: HDCデータロード H−RPL: HDCリプライ H−DT: HDCデータトランスファ H−R: HDCリード H−W: HDCライト 図5〜図7は、夫々本実施例の動作を説明する図であ
る。図5は、本実施例におけるキャッシュ処理を模式的
に示す図である。又、図6は本実施例におけるスケジュ
ーラの処理を説明するフローチャートであり、図7は本
実施例における試験命令列を生成する処理を説明するフ
ローチャートである。
【0033】図5中、図1と同一部分には同一符号を付
し、その説明は省略する。図5において、主記憶装置6
とキャッシュメモリ2A,2Bとの間のデータ転送及び
キャッシュメモリ2A,2B間のデータ転送は、図5の
右側に示すように、上記制御単位で行われる。そして、
各CPU1A,1Bは、同じ領域の制御単位内で、且
つ、各CPU1A,1Bに対して割り当てられた固有の
異なる位置をアクセスする。CPU1Aは、ステップS
Aにおいて、CPU1A用のランダムな試験用アクセス
命令列を図7と共に後述する処理により生成する。同様
にして、CPU1Bは、ステップSBにおいて、CPU
1B用のランダムな試験用アクセス命令列を図7と共に
後述する処理により生成する。つまり、制御単位に、各
アクセス源に固有のアクセス領域を割り当てる。
【0034】図6に示すスケジューラの処理は、各アク
セス源であるCPU1A,1B及びアクセス領域のスケ
ジューリングを行う。このスケジューラは、CPU1
A,1Bの上位装置、或いは、CPU1A,1Bのうち
マスタとして使用される方のCPUにより構成される。
図6において、ステップS1は、ランダムに試験領域を
獲得する。ステップS2は、獲得した試験領域に対して
制御単位内の分割を行う。そして、ステップS3は、分
割した領域を各アクセス源に対して割り付ける。
【0035】各アクセス源で実行する試験命令列は、図
7に示すように生成される。図7において、ステップS
11は、ランダムな試験用アクセス命令列を作成する。
ステップS12は、スケジューラのアクセス源毎に、ラ
ンダムな試験用アクセス命令列のアドレス部にスケージ
ューラからのアドレスを割り当てる。ステップS13
は、全部のランダムな試験用アクセス命令列に対してア
ドレスの割り当てが完了したか否かを判定し、判定結果
がNOであると処理はステップS12へ戻る。他方、ス
テップS13の判定結果がYESの場合は、ステップS
14が全部のランダムな試験用アクセス命令列に対して
全てのアクセス源の割り当てが完了したか否かを判定
し、判定結果がNOであると処理はステップS12へ戻
る。ステップS14の判定結果がYESの場合は、ステ
ップS15が各アクセス源において生成されたランダム
な試験用アクセス命令列を実行し、最終結果を比較又は
確認することで試験を行う。つまり、キャッシュメモリ
制御機構に異常がなければ、最終結果は全て一致するは
ずであるので、不一致により異常を検出することができ
る。
【0036】キャッシュメモリ間又はキャッシュメモリ
と主記憶装置との間のデータコヒレンシー制御は、アク
セス源からのタイミングが多様であり、制御の試験にお
いても重要な要素である。この点、本実施例によれば、
アクセス源間の同期を取らずにキャッシュメモリ間又は
キャッシュメモリと主記憶装置との間のデータコヒレン
シー制御の試験が可能となる。従って、本実施例では、
各アクセス源で実行する命令の種類や実行タイミングを
全く自由に設定することが可能である。
【0037】又、多様なタイミングを作り出す方法とし
て、各アクセス源にランダムな順序でアクセス命令を実
行させることで、予測不可能なタイミングの発生をも可
能とすることができる。この場合、最終結果の確認は、
各アクセス源に同じランダムな試験用アクセス命令列を
実行させると共に、各アクセス領域を制御単位内のアク
セス源固有の領域とすることで、キャッシュメモリ制御
機構に異常がなければ実行結果が同一になることを利用
する。つまり、各アクセス源によるランダムな試験用ア
クセス命令列の実行結果を比較することで、キャッシュ
メモリ間又はキャッシュメモリと主記憶装置との間のデ
ータコヒレンシー制御の確認を行うことができる。
【0038】次に、図7に示すステップS11において
ランダムな試験用アクセス命令列を作成する方法の各種
実施例について図8〜図15と共に説明する。図8は、
ランダムな試験用アクセス命令列を作成する方法の第1
実施例を説明するフローチャートであり、図9は、ポイ
ンタを説明する図である。
【0039】図8において、ステップS21は、図9に
示すポインタP1〜P3を初期設定し、ステップS22
は、ランダム数を発生してCPUが有するキャッシュメ
モリのランダム数値表領域にランダム数を格納する。ス
テップS23は、キャッシュメモリ内でポインタP1の
示すランダム値をポインタP2からの相対値としてアク
セス命令テーブルから命令を選択する。ステップS24
は、選択した命令をキャッシュメモリ内のポインタP3
の示す領域に格納する。ステップS25は、ポインタP
1及びポインタP3を更新する。ステップS26は、ポ
インタP3がアクセス命令列領域の最後に達したか否か
を判定し、判定結果がNOであると処理がステップS2
3に戻り、判定結果がYESであると処理が終了する。
【0040】つまり、このランダムな試験用アクセス命
令列を作成する方法の第1実施例では、他のアクセス源
との各種タイミングによる競合状態を作り出せるよう
に、アクセス源の使用するアクセス命令として、ランダ
ムな並びの命令列を多数生成する論理を採用する。これ
により、競合状態等の試験精度を向上することができ
る。
【0041】図10は、ランダムな試験用アクセス命令
列を作成する方法の第2実施例を説明するフローチャー
トであり、図11は、ポインタを説明する図である。図
10において、ステップS31は、図11に示すポイン
タP1及びポインタP2を初期設定し、ステップS32
は、ポインタP1示すの領域に図8で説明した方法で作
成したランダムな試験用アクセス命令列を格納する。ス
テップS33は、キャッシュメモリ内のポインタP1の
示す領域から命令を取り出し、ステップS34は、命令
が書き込み命令であるか否かを判定する。ステップS3
4の判定結果がNOの場合は処理が後述するステップS
39へ進み、YESの場合は処理がステップS35へ進
む。
【0042】ステップS35は、同じアドレスの読み出
し命令を生成し、キャッシュメモリ内のポインタP2の
示す領域に格納する。ステップS36は、ポインタP2
を更新する。ステップS37は、読み出しデータを加工
する演算命令を生成し、キャッシュメモリ内のポインタ
P2の示す領域に格納する。ステップS38は、ポイン
タP2を更新する。ステップS39は、取り出した命令
を、キャッシュメモリ内のポインタP2の示す領域に格
納する。ステップS40は、ポインタP1及びポインタ
P2を更新し、ステップS41は、ポインタP1がラン
ダムアクセス命令列が格納された領域の最後に達したか
否かを判定する。ステップS41の判定結果がNOの場
合は処理がステップS33へ戻り、YESの場合は処理
が終了する。
【0043】つまり、このランダムな試験用アクセス命
令列を作成する方法の第2実施例では、ランダムな順序
のアクセス命令列を生成する際に、先行の書き込みデー
タを読み出し、演算命令等で加工した後に再度書き込む
命令を組み込む論理を採用する。即ち、ランダムな並び
のアクセス命令を多数生成し、更に、書き込みと読み出
し命令の関係をデータの連鎖が行われるように命令の生
成を行う。これにより、先行したアクセスの結果に異常
があると、以後の結果も全て違ってくるため、最終的に
同じ命令列を実行した他のアクセス源の結果と異なるこ
ととなるので異常の検出ができる。従って、命令実行中
にキャッシュメモリのデータに異常があった場合の試験
精度を向上することが可能となる。
【0044】図12は、ランダムな試験用アクセス命令
列を作成する方法の第3実施例を説明するフローチャー
トであり、図13は、ポインタを説明する図である。図
12において、ステップS51は図13に示すポインタ
P1及びポインタP2を初期設定し、ステップS52
は、ポインタP1示すの領域に図8で説明した方法で作
成したランダムな試験用アクセス命令列を格納する。ス
テップS53は、キャッシュメモリ内のポインタP1の
示す領域から命令を取り出し、ステップS54は、命令
が書き込み命令であるか否かを判定する。ステップS5
4の判定結果がNOの場合は処理が後述するステップS
59へ進み、YESの場合は処理がステップS55へ進
む。
【0045】ステップS55は、同じアドレスの読み出
し命令を生成し、キャッシュメモリ内のポインタP2の
示す領域に格納する。ステップS56は、ポインタP2
を更新する。ステップS57は、読み出しデータに対し
て一定の演算を行う予め準備された演算命令を、キャッ
シュメモリ内のポインタP2の示す領域に格納する。ス
テップS58は、ポインタP2を更新する。ステップS
59は、取り出した命令を、キャッシュメモリ内のポイ
ンタP2の示す領域に格納する。ステップS60は、ポ
インタP1及びポインタP2を更新し、ステップS61
は、ポインタP1がランダムアクセス命令列が格納され
た領域の最後に達したか否かを判定する。ステップS6
1の判定結果がNOの場合は処理がステップS53へ戻
り、YESの場合は処理が終了する。
【0046】つまり、このランダムな試験用アクセス命
令列を作成する方法の第3実施例では、ランダムアクセ
ス命令列の生成において、読み出しデータの加工処理を
一定の法則に基づいて行う論理を採用している。ここ
で、一定の法則とは、定数による四則演算等を指す。こ
れにより、最終結果が各アクセス源自身で予測可能であ
るため各アクセス源毎に最終結果を予測結果と比較可能
となり、上記試験用タンダムアクセス命令列を作成する
方法の第2実施例のように他のアクセス源の最終結果と
比較する必要がなくなる。例えば、一定の法則が定数を
掛けるものであれば、最終結果は必ず定数のn(nは自
然数)乗になる。従って、命令実行中にキャッシュメモ
リのデータに異常があった場合の試験精度を向上するこ
とが可能となり、試験時間も短縮できる。
【0047】図14は、ランダムな試験用アクセス命令
列を作成する方法の第4実施例を説明するフローチャー
トであり、図15は、ポインタを説明する図である。図
14において、ステップS71は図15に示すポインタ
P1〜P3を初期設定し、ステップS72は、ポインタ
P1示すの領域に図8で説明した方法で作成したランダ
ムな試験用アクセス命令列を格納する。ステップS73
は、キャッシュメモリ内のポインタP1の示す領域から
命令を取り出し、ステップS74は、命令が書き込み命
令であるか否かを判定する。ステップS74の判定結果
がNOの場合は処理が後述するステップS81へ進み、
YESの場合は処理がステップS75へ進む。
【0048】ステップS75は、同じアドレスの読み出
し命令を生成し、キャッシュメモリ内のポインタP2の
示す領域に格納する。ステップS76は、ポインタP2
を更新する。ステップS77は、読み出しデータを加工
する演算命令を生成して、キャッシュメモリ内のポイン
タP2の示す領域に格納する。ステップS78は、ポイ
ンタP2を更新する。ステップS79は、取り出した命
令と同じ命令で、アドレス部にポインタP3を設定した
命令を、キャッシュメモリ内のポインタP2の示す領域
に格納する。ステップS80は、ポインタP1及びポイ
ンタP2を更新し、ステップS81は、取り出した命令
を、キャッシュメモリ内のポインタP2の示す領域に格
納する。ステップS82は、ポインタP1及びポインタ
P2を更新し、ステップS83はポインタP1がランダ
ムアクセス命令列が格納された領域の最後に達したか否
かを判定する。ステップS83の判定結果がNOの場合
は処理がステップS73へ戻り、YESの場合は処理が
終了する。
【0049】つまり、このランダムな試験用アクセス命
令列を作成する方法の第4実施例では、データ加工前の
データを各アクセス源に固有な別領域に全て記録してお
く論理を採用している。これにより、データの確認で異
常を検出した際に、記録されたデータの変化が一定の法
則に基づいていない部分を検索することで、ランダムな
試験用アクセス命令列のどの命令を実行中に異常が発生
したかを特定できる。尚、加工前のデータを記録する代
わりに加工後のデータを記録しても良い。
【0050】以上、本発明を実施例により説明したが、
本発明は上記実施例に限定されるものではなく、本発明
の範囲内で種々な変形及び改良が可能であることは言う
までもない。
【0051】
【発明の効果】請求項1〜3記載の発明によれば、各プ
ロセッサ間の同期処理が不要となるので、高速な試験が
可能となる。請求項4及び5記載の発明によれば、各プ
ロセッサが実行するランダムな試験用アクセス命令が競
合し合うことで、予測できないようなアクセス競合タイ
ミングのトランズアクションについても試験が可能とな
る。
【0052】請求項6記載の発明によれば、膨大な数の
ランダムな試験用アクセス命令を実行しても、途中で発
生するコヒレンシー制御異常によるデータ異常を確実に
検出することができる。請求項7記載の発明によれば、
各プロセッサの実行結果は各自で確認できるので、プロ
セッサ間で実行結果を比較する必要のなく、プログラム
制御が簡単になると共に試験時間を短縮できる。
【0053】請求項8記載の発明によれば、試験用アク
セス命令列のどのアクセス命令で制御異常が発生したか
を容易に特定できる。従って、本発明によれば、同期制
御を必要とせず、アクセス競合に絡む膨大なトランズア
クションの試験であっても高速にアクセス源からキャッ
シュメモリへのアクセスを制御するキャッシュメモリ制
御機構を試験することができる。
【図面の簡単な説明】
【図1】本発明になるキャッシュメモリ試験方法を適用
し得るシステムの概略構成を示すブロック図である。
【図2】実施例におけるアクセスの割り付けを説明する
図である。
【図3】実施例におけるキャッシュメモリの状態遷移を
説明する図である。
【図4】実施例におけるキャッシュタグの状態遷移及び
トランザクションを説明する図である。
【図5】実施例におけるキャッシュ処理を模式的に示す
図である。
【図6】実施例におけるスケジューラの処理を説明する
フローチャートである。
【図7】実施例における試験命令列を生成する処理を説
明するフローチャートである。
【図8】ランダムな試験用アクセス命令列を作成する方
法の第1実施例を説明するフローチャートである。
【図9】ポインタを説明する図である。
【図10】ランダムな試験用アクセス命令列を作成する
方法の第2実施例を説明するフローチャートである。
【図11】ポインタを説明する図である。
【図12】ランダムな試験用アクセス命令列を作成する
方法の第3実施例を説明するフローチャートである。
【図13】ポインタを説明する図である。
【図14】ランダムな試験用アクセス命令列を作成する
方法の第4実施例を説明するフローチャートである。
【図15】ポインタを説明する図である。
【図16】考えられるキャッシュ試験方法を説明するた
めのブロック図である。
【図17】CPUの動作を説明するフローチャートであ
る。
【符号の説明】
1A,1B CPU 2A,2B キャッシュメモリ 3A,3B キャッシュタグ 4A,4B キャッシュ制御部 5 バス 6 主記憶装置

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 各々がキャッシュメモリを有し、且つ、
    アクセス源となるプロセッサが複数主記憶装置に対して
    接続されているシステムにおいて、該キャッシュメモリ
    間又は該キャッシュメモリと該主記憶装置との間のデー
    タコヒレンシーを制御するキャッシュメモリ制御機構の
    試験方法であって、 該データコヒレンシーの制御における機構的な最小単位
    である制御単位をプロセッサの数に応じて分割し、分割
    された該制御単位内に各プロセッサに固有で互いに異な
    る位置のキャッシュメモリ内のアクセス領域を割り当て
    る第1のステップと、 各プロセッサが同じ制御単位内で各々に固有なアクセス
    領域に対してのみデータを書き込み読み出して、読み出
    したデータに基づいてキャッシュメモリ制御機構の試験
    を行う第2のステップとを含む、キャッシュメモリ試験
    方法。
  2. 【請求項2】 前記第1のステップは、プロセッサの数
    をN、前記制御単位の長さをMバイトとすると、各プロ
    セッサに対してM/Nバイト以下のアクセス領域を割り
    当てる、請求項1記載のキャッシュメモリ試験方法。
  3. 【請求項3】 前記第2のステップは、各プロセッサ間
    のアクセスの同期を取ることなくキャッシュメモリ制御
    試験を行う、請求項1又は2記載のキャッシュメモリ試
    験方法。
  4. 【請求項4】 前記第2のステップは、各プロセッサに
    ランダムな順序で試験用のアクセス命令を実行させる、
    請求項1〜3のうちいずれか1項記載のキャッシュメモ
    リ試験方法。
  5. 【請求項5】 前記第2のステップは、各プロセッサに
    同じアクセス命令列を実行させる、請求項4記載のキャ
    ッシュメモリ試験方法。
  6. 【請求項6】 前記第2のステップは、先行するアクセ
    ス命令が書き込んだアクセス領域のデータを後続するア
    クセス命令が読み出し、読み出したデータに演算処理を
    施して加工後に同じアクセス領域に書き込み、データを
    連鎖させるアクセス命令列で各プロセッサの実行結果を
    比較することによりキャッシュメモリ制御機構の試験を
    行う、請求項4記載のキャッシュメモリ試験方法。
  7. 【請求項7】 前記第2のステップは、先行するアクセ
    ス命令が書き込んだアクセス領域のデータを後続するア
    クセス命令が読み出し、読み出したデータに一定の加工
    を施した後に同じアクセス領域に書き込み、データを連
    鎖させるアクセス命令列で各プロセッサ毎に実行結果を
    予測結果と比較することによりキャッシュメモリ制御機
    構の試験を行う、請求項4記載のキャッシュメモリ試験
    方法。
  8. 【請求項8】 前記第2のステップは、読み出したデー
    タ或いは加工後のデータを各プロセッサに固有の別領域
    に全て記録し、データの確認で異常を検出した際に記録
    されたデータの変化が一定の法則に基づいていない部分
    を検索することで試験用アクセス命令列中異常が発生し
    たアクセス命令を特定する、請求項7記載のキャッシュ
    メモリ試験方法。
JP7169049A 1995-07-04 1995-07-04 キャッシュメモリ試験方法 Pending JPH0916472A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP7169049A JPH0916472A (ja) 1995-07-04 1995-07-04 キャッシュメモリ試験方法
US08/635,399 US5748879A (en) 1995-07-04 1996-04-26 Cache memory testing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7169049A JPH0916472A (ja) 1995-07-04 1995-07-04 キャッシュメモリ試験方法

Publications (1)

Publication Number Publication Date
JPH0916472A true JPH0916472A (ja) 1997-01-17

Family

ID=15879386

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7169049A Pending JPH0916472A (ja) 1995-07-04 1995-07-04 キャッシュメモリ試験方法

Country Status (2)

Country Link
US (1) US5748879A (ja)
JP (1) JPH0916472A (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6745292B1 (en) * 1995-12-08 2004-06-01 Ncr Corporation Apparatus and method for selectively allocating cache lines in a partitioned cache shared by multiprocessors
US5960457A (en) * 1997-05-01 1999-09-28 Advanced Micro Devices, Inc. Cache coherency test system and methodology for testing cache operation in the presence of an external snoop
JPH1145211A (ja) * 1997-07-28 1999-02-16 Fujitsu Ltd 情報処理装置用試験装置および情報処理装置用試験方法
US8055492B2 (en) * 2002-01-10 2011-11-08 International Business Machines Corporation Non-unique results in design verification by test programs
US6912669B2 (en) * 2002-02-21 2005-06-28 International Business Machines Corporation Method and apparatus for maintaining cache coherency in a storage system
US7107493B2 (en) * 2003-01-21 2006-09-12 Hewlett-Packard Development Company, L.P. System and method for testing for memory errors in a computer system
US8850266B2 (en) 2011-06-14 2014-09-30 International Business Machines Corporation Effective validation of execution units within a processor
US8930760B2 (en) 2012-12-17 2015-01-06 International Business Machines Corporation Validating cache coherency protocol within a processor
CN105446840B (zh) * 2015-11-24 2019-02-12 无锡江南计算技术研究所 一种Cache一致性极限测试方法
CN111209604B (zh) * 2018-11-22 2022-03-25 长鑫存储技术有限公司 一种存储器芯片的检测方法、装置和终端

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4686621A (en) * 1983-06-30 1987-08-11 Honeywell Information Systems Inc. Test apparatus for testing a multilevel cache system with graceful degradation capability
DE3502147A1 (de) * 1984-01-23 1985-08-08 Hitachi Microcomputer Engineering Ltd., Kodaira, Tokio/Tokyo Datenverarbeitungssystem mit verbesserter pufferspeichersteuerung
US5553262B1 (en) * 1988-01-21 1999-07-06 Mitsubishi Electric Corp Memory apparatus and method capable of setting attribute of information to be cached
JP2872251B2 (ja) * 1988-10-12 1999-03-17 株式会社日立製作所 情報処理システム
JPH0359741A (ja) * 1989-07-28 1991-03-14 Mitsubishi Electric Corp キャッシュメモリ
JP2820752B2 (ja) * 1990-01-19 1998-11-05 日本電信電話株式会社 密結合マルチプロセッサシステムにおけるキャッシュメモリ一致制御方法
US5537574A (en) * 1990-12-14 1996-07-16 International Business Machines Corporation Sysplex shared data coherency method
JP3192664B2 (ja) * 1991-01-22 2001-07-30 株式会社日立製作所 キャッシュメモリシステムおよびキャッシュメモリコントローラ
US5287503A (en) * 1991-09-27 1994-02-15 Sun Microsystems, Inc. System having control registers coupled to a bus whereby addresses on the bus select a control register and a function to be performed on the control register
US5406504A (en) * 1993-06-30 1995-04-11 Digital Equipment Multiprocessor cache examiner and coherency checker
JPH07129468A (ja) * 1993-11-04 1995-05-19 Matsushita Electric Ind Co Ltd 主記憶制御装置
US5544345A (en) * 1993-11-08 1996-08-06 International Business Machines Corporation Coherence controls for store-multiple shared data coordinated by cache directory entries in a shared electronic storage
JP2665718B2 (ja) * 1993-11-10 1997-10-22 日本電気エンジニアリング株式会社 情報処理装置のキャッシュメモリテスト方法
US5546579A (en) * 1994-05-02 1996-08-13 International Business Machines Corporation Page refreshing procedure using two locking granularities to ensure cache coherency in a multisystem database processing environment having a high-speed shared electronic store
US5603005A (en) * 1994-12-27 1997-02-11 Unisys Corporation Cache coherency scheme for XBAR storage structure with delayed invalidates until associated write request is executed

Also Published As

Publication number Publication date
US5748879A (en) 1998-05-05

Similar Documents

Publication Publication Date Title
US4524416A (en) Stack mechanism with the ability to dynamically alter the size of a stack in a data processing system
KR920008430B1 (ko) 처리 판독 메모리 장치
US5406504A (en) Multiprocessor cache examiner and coherency checker
JP2902976B2 (ja) キャッシュフラッシュ装置
EP0176972B1 (en) Multiprocessor shared pipeline cache memory
US4458310A (en) Cache memory using a lowest priority replacement circuit
JP3705836B2 (ja) コンピュータ・システムのメモリ共用方法
JP4339371B2 (ja) 情報処理装置および情報処理方法
US5960457A (en) Cache coherency test system and methodology for testing cache operation in the presence of an external snoop
US7363435B1 (en) System and method for coherence prediction
EP0049387A2 (en) Multiprocessor system with cache
TWI638311B (zh) Data processing method and processor
US5617553A (en) Computer system which switches bus protocols and controls the writing of a dirty page bit of an address translation buffer
US7664900B2 (en) Multiprocessor system and method for processing memory access
US20080098174A1 (en) Cache memory having pipeline structure and method for controlling the same
US5644748A (en) Processor system including an index buffer circuit and a translation look-aside buffer control circuit for processor-to-processor interfacing
JPH0916472A (ja) キャッシュメモリ試験方法
JP4294059B2 (ja) 情報処理装置および情報処理方法
US5675765A (en) Cache memory system with independently accessible subdivided cache tag arrays
US6862675B1 (en) Microprocessor and device including memory units with different physical addresses
US7043607B2 (en) Information processing system and cache flash control method used for the same
JPH10502756A (ja) ベクトルプロセッサのためのチャンク連鎖
JP3954248B2 (ja) 情報処理装置の試験方法
KR960015583B1 (ko) 다중프로세서의 캐시메모리 필터링장치
JP2700147B2 (ja) 命令キャッシュ・フラッシュ・オン・rei制御

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20021203