JP2001051965A - Testing method for information processor and recording medium - Google Patents
Testing method for information processor and recording mediumInfo
- Publication number
- JP2001051965A JP2001051965A JP11228195A JP22819599A JP2001051965A JP 2001051965 A JP2001051965 A JP 2001051965A JP 11228195 A JP11228195 A JP 11228195A JP 22819599 A JP22819599 A JP 22819599A JP 2001051965 A JP2001051965 A JP 2001051965A
- Authority
- JP
- Japan
- Prior art keywords
- cpu
- address
- value
- cache
- instruction
- 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
Links
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
【0001】[0001]
【発明の属する技術分野】本発明は、複数のCPUをバ
スで接続し、各CPUにキャッシュメモリを備えたマル
チCPUシステムを対象としたランダム命令試験で、キ
ャッシュコヒーレンシィ機能の検証を可能にした情報処
理装置の試験方法及び記録媒体に関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention makes it possible to verify a cache coherency function by a random instruction test for a multi-CPU system in which a plurality of CPUs are connected by a bus and each CPU has a cache memory. The present invention relates to a test method and a recording medium for an information processing device.
【0002】[0002]
【従来の技術】以下、従来例を説明する。2. Description of the Related Art A conventional example will be described below.
【0003】§1:キャッシュコヒーレンシィの説明 近年、コンピュータの高速化の一手段として、主記憶メ
モリ(主記憶装置)とは別に、CPUにキャッシュメモ
リと呼ばれる数キロバイトから数メガバイトにも及ぶ高
速メモリを配置し処理のスピードアップを図っている。
この場合、主記憶メモリからキャッシュに読み込まれた
データは、キャッシュメモリ上で動作している間、常に
高速でデータ処理が行える。§1: Description of cache coherency In recent years, as one means of increasing the speed of a computer, a high-speed memory called a cache memory of several kilobytes to several megabytes is called a cache memory separately from a main memory (main memory). To speed up the process.
In this case, data read from the main memory into the cache can always be processed at high speed while operating on the cache memory.
【0004】この制御は、CPU1台の時は自CPU内
部のキャッシュメモリと主記憶メモリとの一致性(Cach
e Coherency :キャッシュコヒーレンシィ)を考慮する
だけで済むが、複数のCPUが搭載された場合は、CP
U相互のキャッシュメモリをも考慮する必要があり、複
雑なハード制御となる。この制御を、図に基づいて簡単
に説明すると次のようになる。In this control, when one CPU is used, the consistency between the cache memory inside the own CPU and the main memory (Cach
e Coherency: It is only necessary to consider cache coherency), but if multiple CPUs are installed, the CP
It is necessary to consider the cache memories of the U and U, and the hardware control becomes complicated. This control is briefly described below with reference to the drawings.
【0005】§2:システム構成と処理概要の説明・・
・図15参照 図15は従来例のシステム構成図である。このシステム
は、マルチCPUシステムの1例であり、複数のCPU
(CPU−0、CPU−1・・・)と主記憶メモリ1
(全CPUで共有する1個のメモリ)と、システムコン
トローラ2等がバスで接続されている。そして、各CP
Uには、それぞれキャッシュメモリ(以下、単に「キャ
ッシュ」とも記す)を持っている。[0005] § 2: Explanation of system configuration and processing outline
FIG. 15 is a system configuration diagram of a conventional example. This system is an example of a multi-CPU system, and includes a plurality of CPUs.
(CPU-0, CPU-1 ...) and main memory 1
(One memory shared by all CPUs) and the system controller 2 are connected by a bus. And each CP
Each U has a cache memory (hereinafter, also simply referred to as “cache”).
【0006】この場合、各CPU内部には一次キャッシ
ュ(以下「L1$」と記す)を設け、各CPUのチップ
の外側には二次キャッシュ(以下「L2$」と記す)を
設けている。前記L1$は小容量のキャッシュであり、
L2$はL1$よりも大容量のキャッシュである。In this case, a primary cache (hereinafter referred to as "L1 $") is provided inside each CPU, and a secondary cache (hereinafter referred to as "L2 $") is provided outside the chip of each CPU. L1 $ is a small-capacity cache,
L2 # is a cache with a larger capacity than L1 #.
【0007】また、前記バスにはシステムコントローラ
2が接続され、該システムコントローラ2に接続された
別のバスには入出力制御部(以下「I/O制御部」と記
す)5を介してROM6等が接続されている。前記シス
テムコントローラ2は、システム内のキャッシュメモリ
の管理等を含む各種制御を行うものであり、該システム
コントローラ2内に、キャッシュ情報テーブル4を有す
るキャッシュ制御部3が設けてある。A system controller 2 is connected to the bus, and another bus connected to the system controller 2 is connected to a ROM 6 via an input / output control unit (hereinafter referred to as an “I / O control unit”) 5. Etc. are connected. The system controller 2 performs various controls including management of a cache memory in the system, and a cache control unit 3 having a cache information table 4 is provided in the system controller 2.
【0008】前記キャッシュ制御部3は、前記各CPU
が持つL1$、L2$の情報をキャッシュ情報テーブル
4に格納し、これらL1$、L2$のキャッシュ制御を
行う機能を備えている。例えば、CPUが主記憶メモリ
1のデータを取り込む場合、先ず、内部のL1$を見に
ゆく。そして、L1$に該当するデータがなければ、他
のCPUへ該当するデータを取りに行くが、この時、前
記CPUはシステムコントローラ2へキャッシュ情報を
貰いに行き、その情報に基づいて他のCPUのデータ読
み込む。[0008] The cache control unit 3 includes a CPU
Has a function of storing the information of L1 $ and L2 $ held in the cache information table 4 and performing cache control of these L1 $ and L2 $. For example, when the CPU fetches data from the main storage memory 1, the CPU first looks at the internal L1 #. If there is no data corresponding to L1 $, the CPU goes to another CPU to retrieve the corresponding data. At this time, the CPU goes to the system controller 2 to obtain cache information, and based on the information, the other CPU Read the data.
【0009】従って、システムコントローラ2は、各C
PUのL1$、L2$の情報を、キャッシュ情報テーブ
ル4に格納し、常に更新しながら管理しておき、各CP
Uに対してこの情報によりキャッシュ制御を行うように
なっている。Therefore, the system controller 2 determines each C
The information of the L1 $ and L2 $ of the PU is stored in the cache information table 4 and managed while being constantly updated.
The cache control is performed on U based on this information.
【0010】前記システムにおいて、各CPUがロード
命令(Load)、及びストア命令(Store )を実行する場
合の処理概要は次の通りである。例えば、前記ロード命
令は、主記憶メモリ1のデータをCPU内のレジスタに
取り込む処理であるが、この場合、最初のロード命令で
あれば、データは主記憶メモリ1→L2$→L1$→C
PU内部のレジスタの順に転送される。In the above system, the processing outline when each CPU executes a load instruction (Load) and a store instruction (Store) is as follows. For example, the load instruction is a process of taking the data of the main memory 1 into a register in the CPU. In this case, if it is the first load instruction, the data is stored in the main memory 1 → L2L → L1 $ → C
The data is transferred in the order of the registers inside the PU.
【0011】また、ストア命令は、CPU内のレジスタ
に格納されているデータを主記憶メモリ1に書き込む処
理であるが、この命令を実行した場合の処理は次の通り
である。先ず、CPU内のレジスタに格納されているス
トアすべきデータに対応するデータがL1$に有るかど
うかを判断し、該データが有れば、L1$の対応するデ
ータを新データ(前記ストア対象のデータ)で書き換え
て処理を終了する。この時、主記憶メモリ1のデータは
書き換えないため古いデータのままである。The store instruction is a process for writing data stored in a register in the CPU into the main memory 1. The process when this instruction is executed is as follows. First, it is determined whether or not data corresponding to the data to be stored stored in the register in the CPU exists in L1 $. If the data exists, the data corresponding to L1 $ is stored in the new data (the storage target). And the process is terminated. At this time, since the data in the main memory 1 is not rewritten, the data remains old.
【0012】しかし、L1$に前記ストア対象のデータ
に対応するデータが無ければ、ストアすべきデータに対
応するデータがL2$に有るかどうかを判断し、該デー
タが有れば、L2$の対応するデータを新データ(前記
ストア対象のデータ)で書き換えて処理を終了する。こ
の時、主記憶メモリ1のデータは書き換えないため古い
データのままである。However, if there is no data corresponding to the data to be stored in L1 #, it is determined whether or not data corresponding to the data to be stored is in L2 #. The corresponding data is rewritten with the new data (the data to be stored), and the process ends. At this time, since the data in the main memory 1 is not rewritten, the data remains old.
【0013】更に、前記ストアすべきデータに対応する
データが、L1$にもL2$にも無ければ、前記対応す
るデータを主記憶メモリ1から読み出してL2$に書き
込み、L2$の対応するデータを新データ(前記ストア
対象のデータ)で書き換えて処理を終了する。この時、
主記憶メモリ1のデータは書き換えないため古いデータ
のままである。Further, if there is no data corresponding to the data to be stored in either L1 # or L2 #, the corresponding data is read from the main memory 1 and written into L2 #, and the corresponding data in L2 # is stored. Is rewritten with the new data (the data to be stored), and the process ends. At this time,
Since the data in the main memory 1 is not rewritten, the data remains old.
【0014】なお、主記憶メモリ1にデータを書き込む
のは、L2$を追い出されたデータである。そして、前
記の各処理はシステムコントローラ2が常に監視してい
て、そのキャッシュメモリの情報は、キャッシュ制御部
3がキャッシュ情報テーブル4に格納している。また、
L1$に有るデータは、必ずL2$にも有る。従って、
各CPUのアクセス命令実行時には、システムコントロ
ーラ2からの前記キャッシュ情報テーブル4の情報を基
に処理を行う。The data to be written to the main storage memory 1 is the data that has been evicted from L2 #. The above processes are constantly monitored by the system controller 2, and the information of the cache memory is stored in the cache information table 4 by the cache control unit 3. Also,
Data in L1 $ is always in L2 $. Therefore,
When each CPU executes an access command, processing is performed based on information in the cache information table 4 from the system controller 2.
【0015】なお、前記キャッシュの制御に関しては、
「MOESI」の理論として多くの文献に記載されてお
り、良く知られている(周知の理論)ので、詳細な説明
は省略する。前記「MOESI」に関する参考文献の1
例としては、例えば、次の参考文献が知られている。Incidentally, regarding the control of the cache,
The theory of “MOESI” is described in many documents and is well known (well-known theory), and thus detailed description is omitted. One of the references related to "MOESI"
For example, the following references are known, for example:
【0016】参考文献:「ultraSPARCTM-IUser′s Manu
al」,Revision 1.0,Sept 18,1995,「 SPARC Technology
Business 」 A Sun Microsystems,Inc.Business 2550 G
arcia Avenue,Mountain View,CA 94043 U.S.A,Part No;
STP1030-UG.(P91-97参照). §3:システム内の処理の説明 前記システムにおいて、例えば、CPU−0が主記憶メ
モリ1の100番地の内容をロード(Load)すると、C
PU−0のキャッシュ(L1$)には主記憶メモリ1の
100番地から1ブロック(例えば、64バイト)分の
データが読み込まれる。次に、主記憶メモリ1の100
番地に新しいデータを格納(Store )すると、CPU−
0のキャッシュ(L1$、又はL2$)は新しいデータ
に置き変わるが、主記憶メモリ1は古いデータを保持し
ている。Reference: "ultraSPARC ™ -IUser's Manu"
al ", Revision 1.0, Sept 18, 1995," SPARC Technology
Business '' A Sun Microsystems, Inc. Business 2550 G
arcia Avenue, Mountain View, CA 94043 USA, Part No;
STP1030-UG. (See pages 91-97). §3: Description of processing in the system In the above system, for example, when the CPU-0 loads the contents of the address 100 in the main memory 1, the C-0
Data of one block (for example, 64 bytes) from address 100 of the main storage memory 1 is read into the PU-0 cache (L1 #). Next, 100 of the main memory 1
When new data is stored at the address (Store), CPU-
The cache 0 (L1 # or L2 #) is replaced with new data, but the main memory 1 holds old data.
【0017】この状態でCPU−1が主記憶メモリ1の
100番地の内容をロードした場合、その時のデータは
主記憶メモリ1から読み出されずにCPU−0のキャッ
シュ(L1$、又はL2$)から読み出される。これは
最新の100番地のデータをCPU−0のキャッシュ
(L1$、又はL2$)が保持しているからである。こ
のような機構を持つシステムにおけるキャッシュの一致
性を検証する手法について次に述べる。In this state, when the CPU-1 loads the contents of the address 100 in the main memory 1, the data at that time is not read from the main memory 1 but is read from the cache (L1 # or L2 #) of the CPU-0. Is read. This is because the latest data at address 100 is held in the cache (L1 # or L2 #) of the CPU-0. A method for verifying cache consistency in a system having such a mechanism will be described below.
【0018】§4:キャッシュの一致性を検証する手法
の説明・・・図16参照 図16は、従来のランダム命令試験例である。一般的
に、或る1つのタスクを複数同時に動作させる場合、ス
タック域、データアクセス域等のデータを書き換える領
域をタスク数分設け、各タスクはそれぞれ自分に割り当
てられた空間を使用することにより実現させている。こ
の手法は、1つのタスクを複数のCPUから共有して動
作させる場合に当てはまり、一般的にはマルチCPUの
ランダム命令試験もこの手法を用いている場合が多い。§4: Description of a method for verifying the coherency of caches--see FIG. 16 FIG. 16 shows a conventional random instruction test example. Generally, when a plurality of certain tasks are operated simultaneously, areas for rewriting data such as a stack area and a data access area are provided for the number of tasks, and each task is realized by using a space allocated to the task. Let me. This method is applicable to a case where one task is shared and operated by a plurality of CPUs. In general, a multi-CPU random instruction test often uses this method.
【0019】従来技術では、1台のCPU配下で動作し
ているランダム命令テスト(この中にはメモリをアクセ
スする命令も含まれている)を単に、複数のCPU配下
で同時に動作させているだけである。つまり、ランダム
命令が同時に複数CPUから実行されれば、そのランダ
ム命令列中に含まれるアクセス命令も複数CPUからラ
ンダムに発信され、結果的にキャッシュ・主記憶メモリ
間のテストができるという考えである。In the prior art, a random instruction test operating under one CPU (including a memory access instruction) is simply operated simultaneously under a plurality of CPUs. It is. In other words, if a random instruction is executed from a plurality of CPUs at the same time, an access instruction included in the random instruction sequence is also randomly transmitted from the plurality of CPUs, and as a result, a test between the cache and the main memory can be performed. .
【0020】例えば、図16に示した例では、ランダム
命令列が異なり、メモリアクセス域が異なる第1のテス
ト例(図16のA図参照)と、ランダム命令列が同じ
で、メモリアクセス域が異なる第2のテスト例(図16
のB図参照)を示している。この場合、前記テスト例1
では、CPU−0とCPU−1が、異なるメモリ域を使
用し、異なる命令列を実行することでテストを行う。ま
た、前記テスト例2では、CPU−0とCPU−1が、
同じメモリ域を使用し、異なる命令列を実行することで
試験を行う。For example, in the example shown in FIG. 16, the random test sequence is different and the memory access area is different from the first test example (see FIG. 16A). A different second test example (FIG. 16)
(See FIG. B). In this case, the test example 1
In the test, the CPU-0 and the CPU-1 perform tests by using different memory areas and executing different instruction sequences. In Test Example 2, CPU-0 and CPU-1 are
The test is performed by using the same memory area and executing different instruction sequences.
【0021】ここで問題となるのが、各CPUからのア
クセス域が別空間に存在するため、或るCPUのメモリ
アクセス動作が他のCPUのキャッシュに対して作用す
ることがない。すなわち、複数CPUに跨がってキャッ
シュコヒーレンシィテストができていないのが現状であ
る。このテストを実現するためには、同一キャッシュラ
インに対してのアクセスが必要になるが、このような手
法は提供されていないのが現状である。The problem here is that since the access area from each CPU exists in another space, the memory access operation of one CPU does not affect the cache of another CPU. That is, at present, the cache coherency test cannot be performed across a plurality of CPUs. To implement this test, it is necessary to access the same cache line, but such a technique is not provided at present.
【0022】[0022]
【発明が解決しようとする課題】前記のような従来のも
のにおいては、次のような課題があった。The above-mentioned prior art has the following problems.
【0023】前記のように、同一キャッシュライン(例
えば、64バイト)に対してのアクセスを可能にするた
めには、各CPUが同一ブロックアドレス(64バイト
バウンダリから64バイト)をアクセスする必要があ
る。ここで、各CPUがアクセスする空間(メモリ領
域)を同じにすれば良いと考えるかもしれないが、各C
PUは非同期に動作しているため、各CPUが同一アド
レスを使うとなると、タイミングによってメモリに書き
込んだ内容を読み出した時に異なるデータを読み出すこ
とがある。これは、そのアドレスの内容を読み出す直前
に、別のCPUがそのアドレスに別の内容を書き込む可
能性があるからである。As described above, to enable access to the same cache line (for example, 64 bytes), each CPU needs to access the same block address (64 bytes from the 64 byte boundary). . Here, it may be considered that the space (memory area) accessed by each CPU should be the same.
Since the PU operates asynchronously, if each CPU uses the same address, different data may be read when reading the contents written to the memory depending on the timing. This is because there is a possibility that another CPU may write another content to the address immediately before reading the content of the address.
【0024】本発明は、このような従来の課題を解決
し、マルチCPUを対象としたランダム命令試験で、各
CPUが同一ブロックをアクセスでき、かつ別のCPU
からデータが破壊されない手法を用いてキャッシュコヒ
ーレンシィ試験を実現できるようにすることを目的とす
る。The present invention solves such a conventional problem, and in a random instruction test for multiple CPUs, each CPU can access the same block and another CPU
It is an object of the present invention to realize a cache coherency test using a method that does not destroy data from the cache.
【0025】[0025]
【課題を解決するための手段】図1は本発明の原理説明
図であり、1は主記憶メモリ、2はシステムコントロー
ラ、3はキャッシュ制御部、4はキャッシュ制御情報テ
ーブル、6はプログラムを格納したROM、9はキャッ
シュメモリを示す。本発明は前記の目的を達成するた
め、次のように構成した。FIG. 1 is an explanatory view of the principle of the present invention. 1 is a main memory, 2 is a system controller, 3 is a cache control unit, 4 is a cache control information table, and 6 is a program. ROM 9 indicates a cache memory. The present invention is configured as follows to achieve the above object.
【0026】(1) :複数のCPU(CPU−0、CPU
−1・・・)をバスで接続し、各CPUにキャッシュメ
モリ9を備えたマルチCPU構成の情報処理装置を対象
とし、前記CPU内で、ベースレジスタの値に、インデ
ックスレジスタの値、或いはディスプレースメント値を
加算して、アクセス命令のオペランドアドレスを生成す
ることにより、ランダム命令列を生成してキャッシュコ
ヒーレンシィ試験を行う情報処理装置の試験方法におい
て、前記ランダム命令列で生成されるアクセス命令のオ
ペランドアドレスを指すベースレジスタの値を各CPU
毎に一定値づつずらした値に設定し、前記オペランドア
ドレスのインデックス部を指すインデックスレジスタの
値と、前記オペランドアドレス内のディスプレースメン
ト値を予め規定しておくことにより、全CPUに同一ア
クセス空間を割り当てた時の各CPUからの重複アクセ
スを回避するようにした。(1): Multiple CPUs (CPU-0, CPU
-1,...) Connected by a bus, and each CPU is provided with a cache memory 9 for an information processing device having a multi-CPU configuration. In the test method of the information processing apparatus for generating a random instruction sequence and performing a cache coherency test by adding a statement value and generating an operand address of an access instruction, the method of the access instruction generated by the random instruction sequence The value of the base register indicating the operand address is
The same access space is set for all CPUs by setting the value of the index register indicating the index part of the operand address and the displacement value in the operand address in advance by setting the value shifted by a constant value every time. Duplicate access from each CPU at the time of assignment is avoided.
【0027】(2) :複数のCPUをバスで接続し、各C
PUにキャッシュメモリを備えたマルチCPU構成の情
報処理装置を対象とし、前記CPU内でランダム命令列
を生成してキャッシュコヒーレンシィ試験を行う情報処
理装置の試験方法において、同一論理空間を持ち、命令
により切り換え可能な異なるコンテキストを複数用意
し、該コンテキスト毎に、それぞれ論理アドレスと実メ
モリの物理アドレスとの対応情報を持ち、前記ランダム
命令列を実行させる過程で、特定命令により前記コンテ
キストを切り換えた際、同一論理アドレスをアクセスし
ても、実メモリの異なる物理アドレスを指すようにして
キャッシュリプレースを行わせ、キャッシュリプレース
回数をより多く生成させるようにした。(2): A plurality of CPUs are connected by a bus, and each C
A test method for an information processing apparatus for performing a cache coherency test by generating a random instruction sequence in the CPU for an information processing apparatus having a multi-CPU configuration including a cache memory in a PU, the method having an identical logical space, A plurality of different contexts that can be switched by are prepared, each of the contexts has correspondence information between a logical address and a physical address of a real memory, and in the process of executing the random instruction sequence, the context is switched by a specific instruction. At this time, even if the same logical address is accessed, the cache replacement is performed by pointing to a different physical address of the real memory, so that the number of cache replacements is generated more.
【0028】(3) :複数のCPUをバスで接続し、各C
PUにキャッシュメモリ9を備えたマルチCPU構成の
情報処理装置を対象とし、前記CPU内でランダム命令
列を生成してキャッシュコヒーレンシィ試験を行う情報
処理装置の試験方法において、各CPUが実行する前記
ランダム命令列内に試験対象キャッシュアドレスの選択
を行う特定命令を設けておき、この特定命令の実行によ
り、各CPUとも、同一の試験対象キャッシュアドレス
を選択し、このアドレスに、各CPUに割り振ったシフ
トバイトを加算した値を求め、この値により、各CPU
から見て、同一キャッシュアドレスで、かつ、アクセス
が重複しないようにした。(3): A plurality of CPUs are connected by a bus, and each C
In a test method for an information processing device that generates a random instruction sequence in the CPU and performs a cache coherency test, the information processing device is intended for an information processing device having a multi-CPU configuration including a cache memory 9 in a PU. A specific instruction for selecting a test target cache address is provided in the random instruction sequence, and by executing this specific instruction, the same test target cache address is selected for each CPU and assigned to each CPU. A value obtained by adding the shift byte is obtained, and this value is used for each CPU.
From the viewpoint of the same cache address and access is not duplicated.
【0029】(4) :複数のCPUをバスで接続し、各C
PUにキャッシュメモリ9を備えたマルチCPU構成の
情報処理装置を対象とし、前記CPU内でランダム命令
列を生成してキャッシュコヒーレンシィ試験を行う情報
処理装置の試験方法において、生成したランダム命令列
を別の空間に複写する処理と、両方のランダム命令空間
に対して、論理アドレスが等しく、物理アドレスが異な
るアドレス変換テーブルを作成し、該テーブルに異なる
コンテキスト値を定義する処理と、初期値として、コン
テキストに値を設定し、或る論理アドレスから試験を開
始させる処理と、或る割り込みを契機に、命令の論理ア
ドレスを前記アドレス変換テーブルから選択し、この値
にランダム命令内アドレスを命令カウンタに設定する処
理と、或る割り込みを契機に、コンテキストの値を切り
換えることにより、論理アドレスの命令カウンタは変わ
らずに、物理アドレスのみ変更できるようにする処理と
を有し、前記処理により、ランダム命令列を頭から順次
実行し、かつ実行空間のみ変化させることで、命令キャ
ッシュのキャッシュコヒーレンシィ試験を可能にした。(4): A plurality of CPUs are connected by a bus, and each C
In a test method for an information processing apparatus that performs a cache coherency test by generating a random instruction sequence in the CPU for an information processing device having a multi-CPU configuration including a cache memory 9 in a PU, A process of copying to another space, a process of creating an address translation table having the same logical address and a different physical address for both random instruction spaces, and defining different context values in the table, A process of setting a value in a context and starting a test from a certain logical address, and upon a certain interrupt, selecting a logical address of an instruction from the address conversion table, and adding an address in a random instruction to the instruction counter for this value. By setting, and by switching the context value triggered by a certain interrupt The instruction counter of the logical address remains unchanged, and only the physical address can be changed. By the above-described processing, the random instruction sequence is sequentially executed from the beginning, and only the execution space is changed. Enabled cache coherency test.
【0030】(5) :複数のCPUをバスで接続し、各C
PUにキャッシュメモリを備えたマルチCPU構成の情
報処理装置を対象とし、前記CPU内で、ベースレジス
タの値に、インデックスレジスタの値、或いはディスプ
レースメント値を加算して、アクセス命令のオペランド
アドレスを生成することにより、ランダム命令列を生成
してキャッシュコヒーレンシィ試験を行う情報処理装置
に、前記ランダム命令列で生成されるアクセス命令のオ
ペランドアドレスを指すベースレジスタの値を各CPU
毎に一定値づつずらした値に設定する手順と、前記オペ
ランドアドレスのインデックス部を指すインデックスレ
ジスタの値と、前記オペランドアドレス内のディスプレ
ースメント値を予め規定しておく手順と、を実行させる
ためのプログラムを記録したコンピュータ読み取り可能
な記録媒体。(5): A plurality of CPUs are connected by a bus, and each C
A multi-CPU information processing device having a cache memory in a PU, and in the CPU, adds an index register value or a displacement value to a base register value to generate an operand address of an access instruction. By doing so, an information processing device that generates a random instruction sequence and performs a cache coherency test stores a value of a base register indicating an operand address of an access instruction generated by the random instruction sequence in each CPU.
A procedure for setting a value shifted by a constant value every time, a procedure for preliminarily defining a displacement value in the operand address and a value of an index register indicating an index portion of the operand address. A computer-readable recording medium on which a program is recorded.
【0031】(作用)前記構成に基づく本発明の作用
を、図1に基づいて説明する。(Operation) The operation of the present invention based on the above configuration will be described with reference to FIG.
【0032】(a) :前記(1) では、前記情報処理装置の
試験を行う際、ランダム命令列で生成されるアクセス命
令のオペランドアドレスを指すベースレジスタの値を各
CPU毎に一定値づつずらした値に設定し、前記オペラ
ンドアドレスのインデックス部を指すインデックスレジ
スタの値と、前記オペランドアドレス内のディスプレー
スメント値を予め規定しておく。(A): In the above (1), when testing the information processing apparatus, the value of the base register indicating the operand address of the access instruction generated by the random instruction sequence is shifted by a constant value for each CPU. The value of the index register indicating the index portion of the operand address and the displacement value in the operand address are defined in advance.
【0033】このようにすれば、全てのCPUから同一
命令を実行した時に、アクセス命令のアクセスアドレス
は、CPU毎に必ず決められたアドレス範囲を指すこと
ができる。すなわち、全CPUに同一アクセス空間を割
り当てた時の各CPUからの重複アクセスを回避するこ
とができる。In this way, when the same instruction is executed from all CPUs, the access address of the access instruction can point to an address range that is always determined for each CPU. That is, duplicate access from each CPU when the same access space is allocated to all CPUs can be avoided.
【0034】従って、マルチCPUを対象としたランダ
ム命令試験で、各CPUが同一ブロックをアクセスで
き、かつ別のCPUからデータが破壊されないようにし
てキャッシュコヒーレンシィ試験を実現できる。Therefore, in a random instruction test for multiple CPUs, a cache coherency test can be realized in which each CPU can access the same block and data is not destroyed by another CPU.
【0035】(b) :前記(2) では、前記情報処理装置の
試験を行う際、同一論理空間を持ち、命令により切り換
え可能な異なるコンテキストを複数用意する。そして、
コンテキスト毎に、それぞれ論理アドレスと実メモリの
物理アドレスとの対応情報を持ち、ランダム命令列を実
行させる過程で、特定命令によりコンテキストを切り換
えた際、同一論理アドレスをアクセスしても、実メモリ
の異なる物理アドレスを指すようにしてキャッシュリプ
レース(例えば、L1$からL2$へのキャッシュデー
タの追い出し)を行わせる。このようにすれば、キャッ
シュリプレース回数をより多く生成することができる。(B): In the above (2), when testing the information processing apparatus, a plurality of different contexts which have the same logical space and can be switched by an instruction are prepared. And
Each context has correspondence information between the logical address and the physical address of the real memory, and in the process of executing a random instruction sequence, when the context is switched by a specific instruction and the same logical address is accessed, even if the same logical address is accessed. Cache replacement (for example, flushing of cache data from L1 # to L2 #) is performed by pointing to a different physical address. This makes it possible to generate a larger number of cache replacements.
【0036】(c) :前記(3) では、前記情報処理装置の
試験を行う際、各CPUが実行するランダム命令列内に
試験対象キャッシュアドレスの選択を行う特定命令(例
えば、Select Line ( ))を設けておき、この特定命令
の実行により、各CPUとも、同一の試験対象キャッシ
ュアドレスを選択し、このアドレスに、各CPUに割り
振ったシフトバイトを加算した値を求め、この値によ
り、各CPUから見て、同一キャッシュアドレスで、か
つ、アクセスが重複しないようにする。(C): In the above (3), when the information processing apparatus is tested, a specific instruction (for example, Select) for selecting a test target cache address in a random instruction sequence executed by each CPU. Line ()) is provided, and by executing this specific instruction, each CPU selects the same cache address to be tested, obtains a value obtained by adding a shift byte allocated to each CPU to this address, and obtains this value. As a result, when viewed from each CPU, the same cache address and the access are not duplicated.
【0037】すなわち、複数CPUから試験対象となる
同一メモリブロック内でアクセスが重複しないメモリア
ドレスを導出することができる。このようにすれば、ラ
ンダム命令列に意図したキャッシュコヒーレンシィ論理
を組み込む手法を実現でき、試験時の全組み合わせの実
現時間を短縮させることが可能になる。That is, it is possible to derive from the plurality of CPUs memory addresses whose accesses do not overlap within the same memory block to be tested. In this way, it is possible to implement a method of incorporating the intended cache coherency logic into the random instruction sequence, and it is possible to reduce the realization time of all combinations at the time of testing.
【0038】(d) :前記(4) では、前記情報処理装置の
試験を行う際、生成したランダム命令列を別の空間に複
写する処理と、両方のランダム命令空間に対して、論理
アドレスが等しく、物理アドレスが異なるアドレス変換
テーブルを作成し、該テーブルに異なるコンテキスト値
を定義する処理と、初期値として、コンテキストに値を
設定し、或る論理アドレスから試験を開始させる処理
と、或る割り込みを契機に、命令の論理アドレスを前記
アドレス変換テーブルから選択し、この値にランダム命
令内アドレスを命令カウンタに設定する処理と、或る割
り込みを契機に、コンテキストの値を切り換えることに
より、論理アドレスの命令カウンタは変わらずに、物理
アドレスのみ変更できるようにする処理とを行う。(D): In the above (4), when the test of the information processing apparatus is performed, a process of copying the generated random instruction sequence into another space, and a process in which a logical address is assigned to both random instruction spaces. A process of creating an address translation table having the same physical address but different physical addresses and defining different context values in the table; a process of setting a value in the context as an initial value and starting a test from a certain logical address; A process of selecting a logical address of an instruction from the address conversion table upon the occurrence of an interrupt and setting a random instruction address in the instruction counter to this value, and switching a value of a context upon the trigger of an interrupt. A process for changing only the physical address without changing the instruction counter of the address is performed.
【0039】そして、前記処理により、ランダム命令列
を頭から順次実行し、かつ実行空間のみ変化させること
で、命令キャッシュのキャッシュコヒーレンシィ試験を
可能にする。By the above processing, the random instruction sequence is sequentially executed from the beginning, and only the execution space is changed, thereby enabling a cache coherency test of the instruction cache.
【0040】(e) :前記(5) では、記録媒体のプログラ
ムを読み出して実行することにより、ランダム命令列で
生成されるアクセス命令のオペランドアドレスを指すベ
ースレジスタの値を各CPU毎に一定値づつずらした値
に設定し、前記オペランドアドレスのインデックス部を
指すインデックスレジスタの値と、前記オペランドアド
レス内のディスプレースメント値を予め規定しておく。(E): In the above (5), by reading and executing the program on the recording medium, the value of the base register indicating the operand address of the access instruction generated by the random instruction sequence is set to a fixed value for each CPU. The offset value is set in advance, and the value of an index register indicating the index portion of the operand address and the displacement value in the operand address are defined in advance.
【0041】このようにすれば、全てのCPUから同一
命令を実行した時に、アクセス命令のアクセスアドレス
は、CPU毎に必ず決められたアドレス範囲を指すこと
ができる。すなわち、全CPUに同一アクセス空間を割
り当てた時の各CPUからの重複アクセスを回避するこ
とができる。In this way, when the same instruction is executed from all CPUs, the access address of the access instruction can point to an address range that is always determined for each CPU. That is, duplicate access from each CPU when the same access space is allocated to all CPUs can be avoided.
【0042】従って、マルチCPUを対象としたランダ
ム命令試験で、各CPUが同一ブロックをアクセスで
き、かつ別のCPUからデータが破壊されないようにし
てキャッシュコヒーレンシィ試験を実現できる。Therefore, in the random instruction test for the multiple CPUs, the cache coherency test can be realized so that each CPU can access the same block and the data is not destroyed by another CPU.
【0043】[0043]
【発明の実施の形態】以下、発明の実施の形態を図面に
基づいて詳細に説明する。Embodiments of the present invention will be described below in detail with reference to the drawings.
【0044】§1:システムの説明・・・図2参照 図2はシステム構成図である。このシステムは、マルチ
CPUシステム(マルチCPU構成の情報処理装置)の
1例であり、バス上に複数(n個)のCPU(CPU−
0、CPU−1・・・CPU−n)と主記憶メモリ1
(全CPUで共有する1個のメモリ)と、システムコン
トローラ2等が搭載されている。そして、各CPUは、
それぞれキャッシュメモリ(以下、単に「キャッシュ」
とも記す)を持っている。§1: Description of the System—See FIG. 2 FIG. 2 is a system configuration diagram. This system is an example of a multi-CPU system (information processing device having a multi-CPU configuration), and a plurality (n) of CPUs (CPU-
0, CPU-1... CPU-n) and main memory 1
(One memory shared by all CPUs), a system controller 2 and the like. And each CPU:
Each cache memory (hereinafter simply "cache")
Also noted).
【0045】この場合、各CPU内部(CPUチップの
内部)にはL1$(一次キャッシュ)を設け、各CPU
の外側(CPUチップとは別のチップ)にはL2$(二
次キャッシュ)を設け、これらをバスにより接続してい
る。なお、この例の場合、一次キャッシュと二次キャッ
シュを設けた例であるが、一般的には更に多くのキャッ
シュ(三次キャッシュ、四次キャッシュ等、一般的には
n次キャッシュまで)設けることもできる。In this case, L1 $ (primary cache) is provided inside each CPU (inside the CPU chip),
L2 # (secondary cache) is provided outside (a chip different from the CPU chip), and these are connected by a bus. In this example, the primary cache and the secondary cache are provided. However, in general, more caches (tertiary cache, quaternary cache, etc., generally up to the nth cache) may be provided. it can.
【0046】前記L1$は小容量のキャッシュであり、
例えば、32KB(キロバイト)のキャッシュメモリ
(それぞれ、Way−0、Way−1、Way−2、W
ay−3とする)を4個で構成する(4つのキャッシュ
領域で構成する)。また、前記L2$は1MB、又は2
MB、又は4MB等の容量を持つ大容量(L1$に比べ
て大容量)のキャッシュである。この場合、図面上で
は、L1$のWay−0、Way−1、Way−2、W
ay−3の各左端がアドレス=0で、右端がアドレス=
32Kとする。そして、図2の斜線部分は、64バイト
幅のキャッシュラインである。L1 $ is a small-capacity cache,
For example, a cache memory of 32 KB (kilobytes) (Way-0, Way-1, Way-2, W
ay-3) (four cache areas). Also, the L2 $ is 1 MB or 2 MB.
This is a large-capacity (larger than L1 $) cache having a capacity of MB or 4 MB. In this case, in the drawing, Way-0, Way-1, Way-2, W
The left end of ay-3 is address = 0, and the right end is address =
32K. The hatched portion in FIG. 2 is a cache line having a width of 64 bytes.
【0047】前記バスには、システムコントローラ2が
接続され、該システムコントローラ2に接続された別の
バスには、入出力制御部(以下「I/O制御部」と記
す)5を介してROM6等が接続されている。前記シス
テムコントローラ2は、システム内のキャッシュ管理等
を含む各種制御を行うものであり、該システムコントロ
ーラ2内に、キャッシュ情報テーブル4を備えたキャッ
シュ制御部3が設けてある。The bus is connected to a system controller 2, and another bus connected to the system controller 2 is connected to a ROM 6 via an input / output control unit (hereinafter referred to as “I / O control unit”) 5. Etc. are connected. The system controller 2 performs various controls including cache management in the system. The system controller 2 includes a cache control unit 3 having a cache information table 4.
【0048】前記キャッシュ制御部3は、各CPUが持
つL1$、L2$の情報(キャッシュ情報)をキャッシ
ュ情報テーブル4に格納し、これらL1$、L2$のキ
ャッシュ管理(又はキャッシュ制御)を行う機能を備え
ている。例えば、CPUが主記憶メモリ1のデータを取
り込む(ロードする)場合、先ず、内部のL1$を見に
ゆく。The cache control unit 3 stores information (cache information) of L1 $ and L2 $ of each CPU in the cache information table 4, and performs cache management (or cache control) of these L1 $ and L2 $. Has functions. For example, when the CPU takes in (loads) the data in the main storage memory 1, first, it looks at the internal L1 #.
【0049】そして、L1$、L2$に該当するデータ
がなければ、他のCPUへ該当するデータを取りに行く
が、この時、前記CPUはシステムコントローラ2へキ
ャッシュ情報を貰いに行き、その情報に基づいて他のC
PUからキャッシュデータを読み込む。If there is no data corresponding to L1 {, L2}, the CPU goes to another CPU to retrieve the corresponding data. At this time, the CPU goes to the system controller 2 to obtain the cache information, and Based on other C
Read cache data from PU.
【0050】従って、システムコントローラ2は、各C
PUのL2$の情報を、キャッシュ情報テーブル4に格
納し、前記情報を常に更新しながら管理しておき、各C
PUに対してこの情報によりキャッシュ制御を行うよう
になっている。また、ROM6には、以下に説明するキ
ャッシュ試験用のプログラムが格納されている。Therefore, the system controller 2 sets each C
The information of the PU L2 # is stored in the cache information table 4 and is managed while constantly updating the information.
The cache control is performed on the PU based on this information. The ROM 6 stores a cache test program described below.
【0051】そして、以下に説明するキャッシュコヒー
レンシィ試験を行う場合には、ROM6に格納されてい
るプログラムを、IPLでCPU(例えば、CPU−
0)が主記憶メモリ1へロードした後、該CPUが主記
憶メモリ1のプログラムを取り込んで実行することで、
このシステム内での試験を行う。When the cache coherency test described below is performed, the program stored in the ROM 6 is transferred to the CPU (for example, CPU-
0) is loaded into the main memory 1, and the CPU fetches and executes the program in the main memory 1,
Perform tests in this system.
【0052】前記システムにおいて、各CPUがロード
命令(Load)、及びストア命令(Store )を実行する場
合の処理概要は次の通りである。例えば、前記ロード命
令は、主記憶メモリ1のデータをCPU内のレジスタに
取り込む処理であるが、この場合、最初の(L1$、L
2$が全て空の状態での)ロード命令であれば、データ
は、主記憶メモリ1→L2$→L1$→CPU内部のレ
ジスタの順に転送される。In the above system, the processing outline when each CPU executes a load instruction (Load) and a store instruction (Store) is as follows. For example, the load instruction is a process of taking the data of the main storage memory 1 into a register in the CPU.
If the instruction is a load instruction (with 2 $ all empty), the data is transferred in the order of main memory 1 → L2 $ → L1 $ → register in the CPU.
【0053】この場合、例えば、主記憶メモリ1の10
0番地のデータをロードするのであれば、主記憶メモリ
1の100番地から64バイト分のデータを読み出し、
このデータをL2$に格納し、その後、該L2$からL
1$へデータを転送し、L1$のWay−3に格納す
る。In this case, for example, 10
If the data at address 0 is to be loaded, 64 bytes of data are read from address 100 of the main memory 1,
This data is stored in L2 #, and then L2 #
The data is transferred to 1 # and stored in Way-1 of L1 #.
【0054】このように動作を繰り返すことで、順次デ
ータのロードを行うと、L1$には、順次Way−3→
Way−2→Way−1→Way−0にそれぞれ64バ
イト分のデータが格納され、図2に示したキャッシュラ
インに、主記憶メモリ1から読み出したデータが順次格
納されるようになる。When data is sequentially loaded by repeating the operation as described above, L1 # is sequentially set to Way-3 →
64 bytes of data are stored in each of Way-2 → Way-1 → Way-0, and the data read from the main storage memory 1 is sequentially stored in the cache line shown in FIG.
【0055】また、ストア命令は、CPU内のレジスタ
に格納されているデータを主記憶メモリ1に書き込む処
理であるが、この命令を実行した場合の処理は次の通り
である。先ず、CPU内のレジスタに格納されているス
トアすべきデータに対応するデータがL1$に有るかど
うかを判断し、該データが有れば、L1$の対応するデ
ータを新データ(前記ストア対象のデータ)で書き換え
て処理を終了する。この時、主記憶メモリ1のデータは
書き換えないため古いデータのままである。The store instruction is a process for writing data stored in a register in the CPU into the main memory 1. The process when this instruction is executed is as follows. First, it is determined whether or not data corresponding to the data to be stored stored in the register in the CPU exists in L1 $. If the data exists, the data corresponding to L1 $ is stored in the new data (the storage target). And the process is terminated. At this time, since the data in the main memory 1 is not rewritten, the data remains old.
【0056】しかし、L1$に前記ストア対象のデータ
に対応するデータが無ければ、ストアすべきデータに対
応するデータがL2$に有るかどうかを判断し、該デー
タが有れば、L2$の対応するデータを新データ(前記
ストア対象のデータ)で書き換えて処理を終了する。こ
の時、主記憶メモリ1のデータは書き換えないため古い
データのままである。However, if there is no data corresponding to the data to be stored in L1 $, it is determined whether or not data corresponding to the data to be stored is in L2 $. The corresponding data is rewritten with the new data (the data to be stored), and the process ends. At this time, since the data in the main memory 1 is not rewritten, the data remains old.
【0057】更に、前記ストアすべきデータに対応する
データが、L1$にもL2$にも無ければ、前記対応す
るデータを主記憶メモリ1から読み出してL2$に書き
込み、L2$の対応するデータを新データ(前記ストア
対象のデータ)で書き換えて処理を終了する。この時、
主記憶メモリ1のデータは書き換えないため古いデータ
のままである。以下、キャッシュコヒーレンシィ試験の
具体例を詳細に説明する。Further, if there is no data corresponding to the data to be stored in either L1 # or L2 #, the corresponding data is read from the main memory 1 and written into L2 #, and the corresponding data in L2 # is stored. Is rewritten with the new data (the data to be stored), and the process ends. At this time,
Since the data in the main memory 1 is not rewritten, the data remains old. Hereinafter, a specific example of the cache coherency test will be described in detail.
【0058】§2:例1の説明・・・図3、図4参照 図3は例1の説明図(その1)であり、A図はオペラン
ドアドレス生成用ベースレジスタの定義、B図はオペラ
ンドアドレス生成用インデックスレジスタの定義、C図
はオペランドアドレス生成用Displacement値の定義を示
す。また、図4は例1の説明図(その2)である。§2: Description of Example 1—See FIGS. 3 and 4 FIG. 3 is an explanatory diagram (part 1) of Example 1; FIG. A is a definition of an operand address generation base register; FIG. Figure C shows the definition of the index register for address generation, and Figure C shows the definition of the displacement value for operand address generation. FIG. 4 is an explanatory diagram (part 2) of Example 1.
【0059】例1は、全CPUに同一アクセス空間を割
り当てた時の各CPUからの重複アクセスを防ぐ手法を
用いた試験方法である。なお、各CPUには、それぞ各
種のレジスタ等が設けてあるが、以下の説明では、各C
PU内に設けたインデックスレジスタを%G1、ベース
レジスタを%G2と記す(%G1、%G2はいずれもレ
ジスタの番号)。Example 1 is a test method using a technique for preventing duplicate access from each CPU when the same access space is allocated to all CPUs. Note that each CPU is provided with various registers and the like.
The index register provided in the PU is referred to as% G1, and the base register is referred to as% G2 (% G1 and% G2 are both register numbers).
【0060】主記憶メモリ1に対するアクセス命令のオ
ペランドアドレスの生成は、:ベースレジスタ(%G
2)のアドレス+インデックスレジスタ(%G1)のア
ドレス(%G2+%G1)、又は、:ベースレジスタ
(%G2)のアドレス+ディスプレースメント値(%G
2+ディスプレースメント値)で決まる。従って、%G
1の値、%G2の値、及びディスプレースメント値を規
定することで、各CPUのアクセスする空間(主記憶メ
モリ1の領域)を同じにして、かつ領域の重複アクセス
を回避させることができる。そこで、各レジスタの定義
を次のようにする。The generation of the operand address of the access instruction to the main storage memory 1 is performed by: a base register (% G
2) address + index register (% G1) address (% G2 +% G1), or: base register (% G2) address + displacement value (% G1)
2 + displacement value). Therefore,% G
By defining the value of 1, the value of% G2, and the displacement value, it is possible to make the space (area of the main memory 1) accessed by each CPU the same and to avoid overlapping access of the area. Therefore, the definition of each register is as follows.
【0061】(1) :オペランドアドレス生成用ベースレ
ジスタの定義 ランダム命令列で生成されるアクセス命令のオペランド
アドレスを指すベースレジスタ(%G2)の値を、各C
PU毎に固定に定義し、各CPUはそのレジスタ(%G
2)の値に16バイトづつずらした値を設定する。な
お、ここで定義した16バイトという値は、キャッシュ
のアクセス単位が64バイトの時に最大4CPUを動作
させた場合の値である。つまり、試験対象のCPU数と
キャッシュのアクセス単位によりこの値は変化する。(1): Definition of a base register for generating an operand address The value of the base register (% G2) indicating the operand address of an access instruction generated by a random instruction sequence is stored in each C
Each PU is defined fixedly, and each CPU has its register (% G
Set a value shifted by 16 bytes to the value of 2). The value of 16 bytes defined here is a value when a maximum of 4 CPUs are operated when the cache access unit is 64 bytes. That is, this value changes depending on the number of CPUs to be tested and the cache access unit.
【0062】この例では、CPU−0〜CPU−3の各
ベースレジスタ(%G2)の値を図3のA図のように設
定する(図のxは16進数のヘキサを意味する記号であ
る)。例えば、CPU−0内のベースレジスタ(%G
2)のアドレスをn=「0x00100000」に設定
し、この値に16バイトづつずらした値を他のCPUの
ベースレジスタに設定する。In this example, the values of the base registers (% G2) of the CPU-0 to CPU-3 are set as shown in FIG. 3A (x is a symbol meaning hexadecimal hexadecimal). ). For example, the base register (% G
The address of 2) is set to n = “0x00100000”, and a value shifted by 16 bytes from this value is set in the base register of another CPU.
【0063】すなわち、CPU−1内のベースレジスタ
(%G2)のアドレス=n+16=「0x001000
10」に設定し、CPU−2内のベースレジスタ(%G
2)のアドレス=n+32=「0x00100020」
に設定し、CPU−3内のベースレジスタ(%G2)の
アドレス=n+48=「0x00100030」に設定
する。That is, the address of the base register (% G2) in the CPU-1 = n + 16 = “0x001000”
10 ”and set the base register (% G
Address of 2) = n + 32 = "0x00100020"
And the address of the base register (% G2) in the CPU-3 = n + 48 = “0x00100030”.
【0064】(2) :オペランドアドレス生成用インデッ
クスレジスタの定義 ランダム命令列で生成されるアクセス命令のオペランド
アドレスのインデックス部を指すインデックスレジスタ
(%G1)の値を固定に定義し、その内容をキャッシュ
のアクセス境界(64バイトバウンダリ)に設定する。
この例では、図3のB図に示したように、インデックス
レジスタ(%G1)に、「0bm・・・mmm0000
00」を設定する。この場合、例えば、0x3c0(m
の単位はビット)とする。(2): Definition of an index register for generating an operand address The value of an index register (% G1) indicating an index portion of an operand address of an access instruction generated by a random instruction sequence is fixedly defined, and its contents are cached. Is set at the access boundary (64-byte boundary).
In this example, as shown in FIG. 3B, “0bm... Mmm0000” is stored in the index register (% G1).
00 ”is set. In this case, for example, 0x3c0 (m
Is in bits).
【0065】(3) :オペランドアドレス生成用ディスプ
レースメント値(直値)の定義 ランダム命令列で生成されるアクセス命令のオペランド
アドレス内のディスプレースメント値のビット4、5を
0固定とする。この例では、ディスプレースメント値は
「0bnnnnnnnn00mmmm」に設定する。こ
の場合、例えば、ディスプレースメント値=0x2c8
(m,nの単位はビット)とする。また、前記値「0b
nnnnnnnn00mmmm」において、図示の右端
のmはビット0、その左側のmはビット1となる。従っ
て、ビット4は右端から5ビット目の0である。(3): Definition of displacement value (direct value) for generating operand address The bits 4 and 5 of the displacement value in the operand address of the access instruction generated by the random instruction sequence are fixed to 0. In this example, the displacement value is set to “0bnnnnnnnn00mmmm”. In this case, for example, the displacement value = 0x2c8
(The units of m and n are bits). The value “0b”
In the “nnnnnnnn00mmmm”, m at the right end in the figure is bit 0, and m on the left side is bit 1. Therefore, bit 4 is the fifth bit 0 from the right end.
【0066】なお、前記ビット4、5は、前記(1) のオ
ペランドアドレス生成用ベースレジスタの定義で説明し
た条件(前記定義した16バイトという値は、キャッシ
ュのアクセス単位が64バイトの時に最大4CPUを動
作させた場合の値である。つまり、試験対象のCPU数
とキャッシュのアクセス単位によりこの値は変化す
る。)により決定する。The bits 4 and 5 correspond to the conditions described in the definition of the operand address generation base register in (1) above (the defined value of 16 bytes is a maximum of 4 CPUs when the cache access unit is 64 bytes). Is operated. That is, this value changes depending on the number of CPUs to be tested and the cache access unit.)
【0067】この場のmの値は、生成された命令の種類
により規定される。例えば、1バイト格納命令が生成さ
れた場合は、「mmmm」の値(mは任意の値)、2バ
イト格納命令が生成された場合は、「mmm0」の値、
4バイト格納命令が生成された場合は、「mm00」の
値、8バイト格納命令が生成された場合は、「mm0
0」の値とする。The value of m in this case is defined by the type of the generated instruction. For example, when a 1-byte storage instruction is generated, a value of “mmmm” (m is an arbitrary value), when a 2-byte storage instruction is generated, a value of “mmm0”
When a 4-byte storage instruction is generated, the value of “mm00” is set. When an 8-byte storage instruction is generated, “mm0” is set.
0 ”.
【0068】すなわち、そのアドレスからデータをアク
セスした時に、16のバウンダリを越えない値を定義す
る必要がある。16バウンダリを越えてアクセスする
と、次のCPUがアクセスする領域にアクセスが及んで
しまうからである。前記の条件で生成されたアクセス命
令のオペランドアドレスは、必ず64バイトバウンダリ
でCPU単位に決められたアドレスを指すことができ
る。例えば、以下の命令が生成された場合で前記の例の
値を当てはめると、図3のC図に示したようになる。That is, it is necessary to define a value that does not exceed 16 boundaries when data is accessed from that address. This is because if the access is made beyond the 16 boundaries, the access reaches the area accessed by the next CPU. The operand address of the access instruction generated under the above conditions can always point to an address determined for each CPU on a 64-byte boundary. For example, when the following instruction is generated and the values of the above example are applied, the result is as shown in FIG. 3C.
【0069】:ベースレジスタ(%G2)のアドレス
+インデックスレジスタ(%G1)のアドレスを適用し
た場合、次のようになる。例えば、8バイトアクセスの
例では、ストア命令をSTX(X:例えば、8バイ
ト)、CPU内に設けられたIレジスタ番号5を%I
5、アクセス命令のアクセスアドレス(オペランドアド
レス)をOPとすると、STX,%I5,[%G2+%
G1]は、次のようになる。なお、前記[%G2+%G
1]は主記憶メモリ1のアドレスを示す。When the address of the base register (% G2) + the address of the index register (% G1) is applied, the following is obtained. For example, in the example of 8-byte access, the store instruction is STX (X: for example, 8 bytes), and the I register number 5 provided in the CPU is% I
5. Assuming that the access address (operand address) of the access instruction is OP, STX,% I5, [% G2 +%
G1] is as follows. Note that the above [% G2 +% G
1] indicates an address of the main memory 1.
【0070】すなわち、CPU−0が、%G2=0x0
0100000+%G1=0x3c0、OP=0x00
1003c0、CPU−1が、%G2=0x00100
010+%G1=0x3c0、OP=0x001003
d0、CPU−2が、%G2=0x00100020+
%G1=0x3c0、OP=0x001003e0、C
PU−3が、%G2=0x00100030+%G1=
0x3c0、OP=0x001003f0となる。That is, the CPU-0 determines that% G2 = 0x0
0100000 +% G1 = 0x3c0, OP = 0x00
1003c0, CPU-1 is% G2 = 0x00100
010 +% G1 = 0x3c0, OP = 0x001003
d0, CPU-2 is% G2 = 0x00100020 +
% G1 = 0x3c0, OP = 0x001003e0, C
PU-3 is% G2 = 0x00100030 +% G1 =
0x3c0 and OP = 0x001003f0.
【0071】:ベースレジスタ(%G2)のアドレス
+ディスプレースメント値のアドレスを適用した場合、
次のようになる。例えば、8バイトアクセスの例では、
ストア命令をSTX(X:例えば、8バイト)、Iレジ
スタ番号5を%I5、オペランドアドレスをOPとする
と、STX,%I5,[%G2+0x2c8]は、次の
ようになる。なお、%I5は、オペランドアドレスを格
納するレジスタである。When the address of the base register (% G2) + the address of the displacement value is applied,
It looks like this: For example, in the example of 8-byte access,
Assuming that the store instruction is STX (X: for example, 8 bytes), the I register number 5 is% I5, and the operand address is OP, STX,% I5, [% G2 + 0x2c8] are as follows. Note that% I5 is a register for storing an operand address.
【0072】すなわち、CPU−0が、%G2=0x0
0100000+Imm13=0x2c8、OP=0x
001002c8、CPU−1が、%G2=0x001
00010+Imm13=0x2c8、OP=0x00
1002d8、CPU−2が、%G2=0x00100
020+Imm13=0x2c8、OP=0x0010
02e8、CPU−3が、%G2=0x0010003
0+Imm13=0x2c8、OP=0x001002
f8となる。なお、前記[%G2+0x2c8]は主記
憶メモリ1のアドレスを示す。That is, the CPU-0 determines that% G2 = 0x0
0100000 + Imm13 = 0x2c8, OP = 0x
001002c8, CPU-1 calculates% G2 = 0x001
00010 + Imm13 = 0x2c8, OP = 0x00
1002d8, CPU-2 is% G2 = 0x00100
020 + Imm13 = 0x2c8, OP = 0x0010
02e8, CPU-3 uses% G2 = 0x0010003
0 + Imm13 = 0x2c8, OP = 0x001002
f8. [% G2 + 0x2c8] indicates the address of the main memory 1.
【0073】前記のように、全てのCPUから同一命令
を実行した時に、前記OPで表されるアクセス命令のア
クセスアドレスは、CPU毎に必ず決められた範囲(こ
の場合は、16バイト)を指すことができる。従って、
各CPUでランダムに発行したアクセス命令(例えば、
ストア命令)は、全CPUに同一アクセス空間(メモリ
領域)を割り当てた時に、各CPUからの重複アクセス
を防止できることになる。この状態を図4に示す。As described above, when the same instruction is executed from all CPUs, the access address of the access instruction represented by the OP indicates a range (16 bytes in this case) which is always determined for each CPU. be able to. Therefore,
An access command issued randomly by each CPU (for example,
When the same access space (memory area) is allocated to all CPUs, a duplicate access from each CPU can be prevented. This state is shown in FIG.
【0074】図4では、CPU−0〜CPU−3は、そ
れぞれ16バイトずつ離れた領域(アドレス範囲)に割
り当てられており、アクセスする場合の重複が防止でき
ている。すなわち、全CPUに同一アクセス空間(メモ
リ領域)を割り当てた時に、各CPUからの重複アクセ
スを確実に防止することが可能になる。In FIG. 4, each of CPU-0 to CPU-3 is assigned to an area (address range) separated by 16 bytes, so that duplication in accessing can be prevented. That is, when the same access space (memory area) is allocated to all CPUs, it is possible to reliably prevent duplicate accesses from each CPU.
【0075】この場合、主記憶メモリ1へアクセスする
際のデータのブロック単位は、例えば64バイトである
が、一般的には、(ブロックサイズ)/(CPU数)=
各CPUに割り当てられたアドレス範囲(図4では16
バイト)である。In this case, the block unit of data when accessing the main storage memory 1 is, for example, 64 bytes, but in general, (block size) / (number of CPUs) =
The address range assigned to each CPU (16 in FIG. 4)
Bytes).
【0076】§3:例2の説明・・・図5参照 図5は例2の説明図であり、アクセス用レジスタ番号と
メモリアドレスの関係を示している。例2は、ウインド
ウの切り換えだけでキャッシュコヒーレンシィの動作環
境を実現することで、ランダム命令列にキャッシュコヒ
ーレンシィの動作環境をより多く生成させる例である。§3: Description of Example 2—See FIG. 5 FIG. 5 is an explanatory diagram of Example 2, showing the relationship between access register numbers and memory addresses. Example 2 is an example in which a cache coherency operation environment is generated in a random instruction sequence by realizing a cache coherency operation environment only by switching windows.
【0077】例えば、「Ultra-sparc 」等のRISC
(Reduced Instruction Set Computer)型コンピュータ
(縮小命令セット・コンピュータ)には、汎用レジスタ
(%G0〜%G7)と各ウインドウ毎にインレジスタ
(%I0〜%I7)、ローカルレジスタ(%L0から%
L7)と、アウトレジスタ(%O0〜%O7)があり、
ウインドウレジスタは、図5に示したように、隣り合う
ウインドウのイン(%I)とアウト(%O)のレジスタ
が重複している(%Iと%Oは内容が同じ)。For example, RISC such as "Ultra-sparc"
(Reduced Instruction Set Computer) type computers (reduced instruction set computers) include general-purpose registers (% G0 to% G7), in-registers (% I0 to% I7) for each window, and local registers (% L0 to% L0).
L7) and an out register (% O0 to% O7),
As shown in FIG. 5, the window registers have the in (% I) and out (% O) registers of adjacent windows overlapping (% I and% O have the same contents).
【0078】この場合、ローカルレジスタ(%L0〜%
L7)はウインドウ(CW0〜CW4)を切り換えると
異なる内容となるが、隣り合うウインドウのアウトレジ
スタ(%O)とインレジスタ(%I)の内容は同じであ
る。これらのレジスタは、プログラムが或るウインドウ
を指している時は、その時のウインドウのレジスタと汎
用レジスタ(%G)のみが使用可能となる。In this case, the local registers (% L0 to% L
L7) has different contents when the windows (CW0 to CW4) are switched, but the contents of the out-register (% O) and the in-register (% I) of the adjacent windows are the same. When these registers point to a certain window, only the registers of the window at that time and the general-purpose registers (% G) can be used.
【0079】そのため、アクセス用として定義するの
は、どのウインドウからでも参照できる汎用レジスタ
(%G)を使用しているケースが殆どである。この場
合、多くても7つのアドレスしか指定できない。この発
明では、アクセスレジスタとして着目したのは、各ウイ
ンドウのローカルレジスタ(%L0〜%L7)であり、
ウインドウが5つあると仮定すると、40個のアドレス
が指定可能となる(ウインドウの切り換えだけで、極め
て多くのレジスタ値が簡単に得られる)。For this reason, it is almost always the case that a general-purpose register (% G) which can be referred to from any window is used for access. In this case, at most only seven addresses can be specified. In the present invention, the local registers (% L0 to% L7) of each window focus on the access registers.
Assuming that there are five windows, 40 addresses can be specified (extraordinarily many register values can be obtained simply by switching windows).
【0080】この40個のレジスタに、予め、論理空間
の異なるアドレスを設定しておくことにより、命令でカ
レントウインドウを切り換えるだけで、キャッシュコヒ
ーレンシィの動作環境がより多く作れる。この場合、カ
レントウインドウCW0〜CW4(CW:Current Wind
ow)は、プログラム上のウインドウ切り換え命令で切り
換え可能なウインドウである。そして、%Lのレジスタ
をCWで切り換えることにより、ベースレジスタとして
使用する。すなわち、%LをCW0〜CW4で切り換え
ることにより、該%Lを前記ベースレジスタとして使用
する。By setting different addresses in the logical space in advance in these forty registers, more operating environments for cache coherency can be created only by switching the current window with an instruction. In this case, the current windows CW0 to CW4 (CW: Current Wind
ow) is a window that can be switched by a window switching command on the program. Then, by switching the register of% L by CW, it is used as a base register. That is, by switching% L between CW0 and CW4, the% L is used as the base register.
【0081】また、前記%Gは前記インデックスレジス
タとして使用する。この場合、%Gには、インデックス
ポインタとして、−64、0、+64の値が格納されて
いるので、これを使用すれば、CWの切り換えだけでキ
ャッシュコヒーレンシィの動作環境を簡単に実現するこ
とが可能になる。The% G is used as the index register. In this case, the values of -64, 0, and +64 are stored in the% G as index pointers, and if these are used, the operating environment of cache coherency can be easily realized only by switching the CW. Becomes possible.
【0082】このように、各ウインドウ毎に設けられた
ローカルレジスタ(%L)に、予め、論理空間の異なる
アドレスを設定しておき、このローカルレジスタをウイ
ンドウにより切り換えて、前記ランダム命令列で生成さ
れるアクセス命令のオペランドアドレスを指すベースレ
ジスタとして使用し、前記汎用レジスタ(%G)を前記
オペランドアドレスのインデックス部を指すインデック
スレジスタとして使用することにより、ウインドウの切
り換えだけで、キャッシュコヒーレンシィの動作環境を
実現できるようにした。As described above, different addresses in the logical space are set in advance in the local registers (% L) provided for each window, and the local registers are switched by the windows to generate the random instruction sequence. By using the general-purpose register (% G) as an index register indicating an index portion of the operand address by using the base register indicating the operand address of the access instruction to be executed, the cache coherency operation can be performed only by switching the window. Environment can be realized.
【0083】なお、この場合には、主記憶メモリ1に対
するアクセス命令のオペランドアドレスの生成は、:
ベースレジスタ(%L)のアドレス+インデックスレジ
スタ(%G)のアドレス(%L+%G)で決まる。In this case, the generation of the operand address of the access instruction to the main storage memory 1 is performed as follows:
It is determined by the address of the base register (% L) + the address of the index register (% G) (% L +% G).
【0084】§4:例3の説明・・・図6参照 図6は例3の説明図であり、L1$リプレースメント用
レジスタの定義(CW0,1,2,3,4)を示してい
る。図6は図5に示したローカルレジスタ%Lを拡大し
た説明図である。例3は、キャッシュリプレース(キャ
ッシュデータの置き換え)の回数をより多くすることに
より、ランダム命令列にキャッシュコヒーレンシィの動
作環境をより多く生成させる例である。§4: Description of Example 3—See FIG. 6 FIG. 6 is an explanatory diagram of Example 3, and shows the definition (CW0, 1, 2, 3, 4) of the L1 replacement register. FIG. 6 is an enlarged explanatory view of the local register% L shown in FIG. Example 3 is an example in which the number of times of cache replacement (replacement of cache data) is increased to generate more operating environments of cache coherency in a random instruction sequence.
【0085】ところで、アクセスするアドレスレジスタ
の数を多く定義しても、実際にアクセスするアドレスが
アクセスレジスタ+(−)0x10000のように範囲
が大きすぎると、キャッシュの該当ライン(キャッシュ
ライン)にアクセスする確率が非常に少なくなり、結果
としてキャッシュリプレース(キャッシュデータの追い
出し)の機会が少なくなってしまう。Even if the number of address registers to be accessed is defined to be large, if the address to be actually accessed has a too large range such as access register + (−) 0 × 10000, the corresponding line (cache line) of the cache is accessed. The probability of performing a cache replacement (cache data eviction) is reduced as a result.
【0086】この場合のキャッシュリプレースは、キャ
ッシュデータの置き換え、すなわち、L1$からL2$
へのデータの追い出しを意味する。例えば、L1$に新
たなデータを書き込む場合、L1$の領域に空きがなけ
れば、L1$内の古いデータから追い出してL2$へ書
き込み、この時追い出しにより空いたL1$内の領域に
新たなデータを書き込む。The cache replacement in this case is performed by replacing the cache data, that is, from L1 # to L2 #.
Eviction of data. For example, when new data is written to L1 #, if there is no free space in the area of L1 #, the old data in L1 # is evicted and written to L2 #. Write data.
【0087】そこで、アドレスを決定する条件である、
インデックスレジスタ(%L)と、ディスプレースメン
ト値(イミーディエイト値)を、マイナス64、0、プ
ラス64(−64,0,+64)の3箇所に固定し、そ
れ以外の値が生成されないようにする。これにより、ア
クセス域は、ローカルレジスタ(%L)の指すアドレス
のプラス、マイナス64バイト以内に限定される。Therefore, the conditions for determining the address are as follows:
The index register (% L) and the displacement value (immediate value) are fixed at three places of minus 64, 0 and plus 64 (−64, 0, +64) so that other values are not generated. I do. As a result, the access area is limited to within plus or minus 64 bytes of the address indicated by the local register (% L).
【0088】この場合、ベースレジスタとして使用する
%L0〜%L7(図5のレジスタ%Lを図6に拡大して
示してある。)は、それぞれL1$のWay−0〜Wa
y−3のそれぞれの幅である32KBに合わせ、32K
Bずつ離して設ける。例えば、%L0と%L1の間隔は
32KB、%L1と%L2の間隔は32KB、%L2と
%L3の間隔は32KBとなっている。In this case,% L0 to% L7 (register% L in FIG. 5 is enlarged and shown in FIG. 6) used as base registers are respectively Way-0 to Wa of L1 #.
According to 32KB which is each width of y-3, 32K
B is provided separately. For example, the interval between% L0 and% L1 is 32 KB, the interval between% L1 and% L2 is 32 KB, and the interval between% L2 and% L3 is 32 KB.
【0089】そして、各%L毎に、インデックスレジス
タとして使用する汎用レジスタ%Gは、32KBのバウ
ンダリから、−64バイト、0バイト、+64バイトの
間隔に設定されている。従って、インデックスレジスタ
として使用する汎用レジスタ%Gにはインデックス値を
入れるが、この場合、%G1にインデックス値=−64
を入れ、%G2にインデックス値=+0を入れ、%G3
にインデックス値=+64を入れる。The general-purpose register% G used as an index register for each% L is set at intervals of -64 bytes, 0 bytes, and +64 bytes from the boundary of 32 KB. Therefore, an index value is put in the general-purpose register% G used as an index register. In this case, the index value = -64 is added to% G1.
, And the index value = +0 in% G2, and% G3
Is set to +64.
【0090】また、ディスプレースメント値(イミーデ
ィエイト値)も、−64バイト、0バイト、+64バイ
トの値を使用する。このようにして、ベースレジスタ
(%L)の値に、インデックスレジスタ(%G)の値、
或いはディスプレースメント値(イミーディエイト値)
を加算して、アクセス命令のオペランドアドレスを生成
することにより、アクセス命令を生成する。The displacement value (immediate value) also uses a value of -64 bytes, 0 bytes, and +64 bytes. In this way, the value of the index register (% G) is added to the value of the base register (% L).
Or displacement value (immediate value)
Is added to generate an operand address of the access instruction, thereby generating an access instruction.
【0091】従って、各CPUで無作為に生成された命
令列で、4回アクセス命令を実行すれば、確率的に1回
は同一キャッシュラインを指すことになる。この場合の
キャッシュラインは、図6に示したL1$内のWay−
0〜Way−3に跨がって斜線で図示したラインであ
る。Therefore, if an access instruction is executed four times with a randomly generated instruction sequence in each CPU, the same cache line is stochastically indicated once. The cache line in this case is represented by the Way-in L1 # shown in FIG.
This is a hatched line extending from 0 to Way-3.
【0092】§5:例4の説明・・・図7参照 図7は例4の説明図であり、試験空間とMMUテーブル
との関係を示している。例4は、キャッシュリプレース
の回数をより多く生成することにより、ランダム命令列
にキャッシュコヒーレンシィの動作環境をより多く生成
させる例である。§5: Description of Example 4—See FIG. 7 FIG. 7 is an explanatory diagram of Example 4, showing the relationship between the test space and the MMU table. Example 4 is an example of generating more cache coherency operating environments in a random instruction sequence by generating a larger number of cache replacements.
【0093】キャッシュリプレース回数をより多くする
方法として、コンテキストの切り換えがある。なお、例
4において、コンテキストとは連続した1つの論理空間
の固まりのことを言う(UNIXマシンの用語)。ま
た、MMUはアドレス変換テーブルのことである。As a method of increasing the number of cache replacements, there is a context switch. Note that in Example 4, the context refers to a group of one continuous logical space (a term of a UNIX machine). MMU is an address translation table.
【0094】図7に示したように、同一論理空間(論理
アドレス=0〜n)を持ち、異なるコンテキストCtx
(この場合、Ctx=a、Ctx=b、Ctx=c)をN個(この例
ではN=3)用意する。この場合、各コンテキスト毎
に、論理アドレス0〜nまでの論理空間を有し、それぞ
れ、論理アドレスと物理アドレスとの対応表を持ってい
る。そして、それぞれの論理アドレスと物理アドレスと
の対応表には異なるデータを設定しておく。As shown in FIG. 7, different contexts Ctx have the same logical space (logical addresses = 0 to n).
In this case, N (Ctx = a, Ctx = b, Ctx = c) are prepared (N = 3 in this example). In this case, each context has a logical space of logical addresses 0 to n, and each has a correspondence table between logical addresses and physical addresses. Then, different data is set in the correspondence table between each logical address and each physical address.
【0095】例えば、図7のCtx=a、Ctx=b、Ctx=cの
論理空間には、論理アドレスと物理アドレスが対応づけ
られているので、この対応アドレス情報を用いれば、コ
ンテキストの切り換えにより、図示矢印で示すように、
論理アドレスが同じでも、異なる物理アドレス(実メモ
リのアドレス)を指す。For example, in the logical space of Ctx = a, Ctx = b, and Ctx = c shown in FIG. 7, a logical address and a physical address are associated with each other. , As shown by the illustrated arrows,
Even though the logical address is the same, it points to a different physical address (real memory address).
【0096】従って、前記環境でランダム命令列を実行
させ(最初のコンテキストは、Ctx=aとする)、或ると
ころでコンテキストを切り換える(例えば、Ctx=aから
Ctx=bに切り換える)ことにより、コンテキストを変え
る前後では論理アドレスは同じであるが、コンテキスト
が異なることから、同一論理アドレスをアクセスして
も、キャッシュリプレースは行われる。Therefore, a random instruction sequence is executed in the environment (the first context is Ctx = a), and the context is switched at a certain point (for example, from Ctx = a).
By switching to Ctx = b), the logical address is the same before and after the context is changed, but since the context is different, cache replacement is performed even if the same logical address is accessed.
【0097】前記のように、キャッシュリプレースさせ
る環境を組み合わせることにより、従来のキャッシュコ
ヒーレンシィの発生回数に比べ、桁違いに多くのキャッ
シュコヒーレンシィ状態を実現させることが可能にな
る。従って、短期間でキャッシュコヒーレンシィの検証
が可能となり、ハードウェアの品質も保証できるように
なる。As described above, by combining the environments in which the caches are replaced, it becomes possible to realize a much larger number of cache coherency states by orders of magnitude than the conventional number of occurrences of the cache coherency. Therefore, the cache coherency can be verified in a short period of time, and the quality of hardware can be guaranteed.
【0098】§6:例5の説明・・・図8参照 図8は例5の説明図であり、A図は試験命令の説明図、
B図はキャッシュアドレステーブルを示す。例5は、ラ
ンダム命令列に意図したキャッシュコヒーレンシィ論理
を組み込むことにより、複数CPUから試験対象となる
同一キャッシュラインを導く例である。§6: Description of Example 5—See FIG. 8 FIG. 8 is an explanatory diagram of Example 5, and FIG.
FIG. B shows a cache address table. Example 5 is an example in which the same cache line to be tested is derived from a plurality of CPUs by incorporating intended cache coherency logic into a random instruction sequence.
【0099】ところで、前記例1〜例4までの試験方法
では、全CPUからランダムにアクセス命令を発行する
ことにより、各CPU内のキャッシュと主記憶メモリ1
間の全状態の組み合わせを実現させることはできるが、
この方法では、どれだけ流せば全組み合わせが実現でき
るか定かでない。そこで、この全状態の組み合わせの実
現時間を短縮させるための手法として、次のような例5
の手法がある。In the test methods of Examples 1 to 4, the access instructions are issued at random from all the CPUs, so that the cache in each CPU and the main memory 1
It is possible to realize a combination of all states between,
With this method, it is not clear how much the combination can be realized. Therefore, as a method for shortening the realization time of the combination of all the states, the following example 5 is used.
There is a technique.
【0100】試験対象キャッシュアドレスの選択は、セ
レクトライン命令「Select Line() 」で与えられる。
この試験では、試験対象となるキャッシュアドレスを選
択し、各CPUに割り振ったシフトバイトを加算した値
を求める。この場合、全CPUが同一物理アドレスを指
すようにする必要があるため、次のような方法を用い
る。The selection of the test target cache address is performed by selecting the select line instruction “Select Line () ".
In this test, a cache address to be tested is selected, and a value obtained by adding a shift byte allocated to each CPU is obtained. In this case, since all CPUs need to point to the same physical address, the following method is used.
【0101】:各CPU毎に、試験キャッシュアドレ
スのテーブルを作成する。このテーブル内の論理アドレ
スは、CPU間で異なっても良いが、物理アドレスは必
ず一致させる必要がある。A test cache address table is created for each CPU. The logical addresses in this table may differ between CPUs, but the physical addresses must always match.
【0102】:各CPUから呼び出されたセレクトラ
イン命令(関数)「Select Line() 」は、呼び出し元
のリンクアドレス(A)の下位の数ビットをインデック
スとし、キャッシュアドレステーブル(B)から対象ア
ドレス(論理アドレス)を求める。この場合、各CPU
は同一アドレス(A)からセレクトライン命令(関数)
「Select Line( ) 」を呼ぶため、各CPUが選択した
アドレスは全て同一物理アドレスを指す。: Selector called from each CPU
In instruction (function) "Select Line () "is the caller
The lower few bits of the link address (A)
Target address from the cache address table (B).
Find dress (logical address). In this case, each CPU
Is a select line instruction (function) from the same address (A)
"Select Line () ”is selected by each CPU.
All addresses point to the same physical address.
【0103】:選ばれた論理アドレスから1ブロック
(64バイト)を、各CPUで分割するため、自CPU
番号に16を掛けた値を足し込む。このようにして選択
された試験アドレスは、各CPUから見て同一メモリブ
ロック(64バイト)内で、かつ、アクセスが重複しな
い値となる。: One block (64 bytes) from the selected logical address is divided by each CPU.
Add the value obtained by multiplying the number by 16. The test address selected in this way has a value within the same memory block (64 bytes) as viewed from each CPU and with no duplicate access.
【0104】この場合、前記セレクトライン命令(関
数)は、Select Line( ) ={C=*(B+(A&0x
f8);D=C+(CPU番号×16);Return
(D)}で表される。この場合、Aはリンクアドレス、
Bは論理アドレス、Cは物理アドレス、Dは16バイト
ずらしたアドレス、16はずらすバイト数、0xf8は
下位のビット、* は括弧内の内容、Return(D)
はDの内容を持ってリターンすることを意味している。In this case, the select line instruction (function) is Line () = {C = * (B + (A & 0x
f8); D = C + (CPU number × 16); Return
(D) It is represented by}. In this case, A is the link address,
B is a logical address, C is a physical address, D is an address shifted by 16 bytes, 16 bytes are shifted, 0xf8 is a lower bit, * is contents in parentheses, Return (D)
Means to return with the contents of D.
【0105】すなわち、Select Line( ) ={C=
* (B+(A&0xf8);D=C+(CPU番号×1
6);Return(D)}は、Bの論理アドレス+
(アドレスA+下位のビット「0xf8」)の内容をも
ってCの値とし、このCの値に(CPU番号×16)の
値を足した値をDとし、このDの値を持ってリターンす
る、という内容である。That is, Select Line () = {C =
* (B + (A &0xf8); D = C + (CPU number × 1
6); Return (D)} is the logical address of B +
The value of (address A + lower-order bit “0xf8”) is used as the value of C, the value obtained by adding the value of (CPU number × 16) to the value of C is used as D, and the process returns with the value of D. Content.
【0106】また、図8のA図では、各CPUが同一命
令(テスト命令、或いは試験命令)を実行することを示
している。そして、図8のB図では、各CPU毎の論理
アドレスBが異なっていても、その論理アドレスから変
換される物理アドレス(キャッシュの物理アドレス)は
全て同じアドレスになることを示している。FIG. 8A shows that each CPU executes the same command (test command or test command). FIG. 8B shows that even if the logical address B of each CPU is different, the physical addresses (cache physical addresses) converted from the logical address are all the same.
【0107】例えば、CPU−0の論理アドレス「50
00000」は物理アドレス「200000」に変換さ
れ、CPU−1の論理アドレス「7000000」は物
理アドレス「200000」に変換される。また、CP
U−0の論理アドレス「5002000」は物理アドレ
ス「202000」に変換され、CPU−1の論理アド
レス「7002000」は物理アドレス「20200
0」に変換される。For example, the logical address “50” of CPU-0
“00000” is converted to a physical address “200000”, and the logical address “7000000” of the CPU-1 is converted to a physical address “200000”. Also, CP
The logical address “5002000” of U-0 is converted to the physical address “202000”, and the logical address “7002000” of the CPU-1 is converted to the physical address “20200”.
0 ”.
【0108】このように、各CPUが実行する前記ラン
ダム命令列内に試験対象キャッシュアドレスの選択を行
う特定命令(セレクトライン命令)を設けておき、この
特定命令の実行により、各CPUとも、同一の試験対象
キャッシュアドレスを選択し、このアドレスに、各CP
Uに割り振ったシフトバイトを加算した値を求め、この
値により、各CPUから見て、同一キャッシュアドレス
で、かつ、アクセスが重複しないようにできる。すなわ
ち、前記セレクト関数により選択されたアドレスは、各
CPUから見て、同一メモリブロック内で、アクセスが
重複しないようにすることができる。As described above, a specific instruction (select line instruction) for selecting a test target cache address is provided in the random instruction sequence executed by each CPU, and by executing this specific instruction, each CPU becomes identical. Test target cache address, and this address
A value obtained by adding the shift byte allocated to U is obtained, and this value allows the same cache address and the same access to be prevented from being seen from each CPU. In other words, the addresses selected by the select function can be prevented from overlapping in the same memory block when viewed from each CPU.
【0109】§7:例6の説明・・・図9参照 図9は例6の説明図であり、(a)はルーチンテーブル
例、(x)はマスタCPU処理(CPU−0)、(y)
はスレーブCPU処理(CPU−1,2,3)を示す。
この場合、CPU−0をマスタとし、他のCPUをスレ
ーブとしているが、マスタCPUはいずれのCPUでも
良い。例6は、ランダム命令列に意図したキャッシュコ
ヒーレンシィ論理を組み込むことにより、意図したキャ
ッシュコヒーレンシィ論理の検証がランダム命令試験で
実現可能にした例である。§7: Explanation of Example 6—See FIG. 9 FIG. 9 is an explanatory diagram of Example 6, (a) is an example of a routine table, (x) is a master CPU process (CPU-0), (y) )
Indicates slave CPU processing (CPU-1, 2, 3).
In this case, the CPU-0 is a master and the other CPUs are slaves, but any master CPU may be used. Example 6 is an example in which verification of intended cache coherency logic can be realized by a random instruction test by incorporating intended cache coherency logic into a random instruction sequence.
【0110】図9に示したようなキャッシュコヒーレン
シィ(キャッシュの一致性)を試験するルーチンを予め
用意する。例えば、(a)に示したようなルーチンテー
ブルを用意する。この(a)に示したルーチンでは、I
F文を使い、各CPU専用処理部(x)、(y)を設け
る。これは全CPUからこのルーチンに起動がかかるた
めであり、かつ、CPU毎に異なる動作をさせるためで
ある。A routine for testing cache coherency (cache consistency) as shown in FIG. 9 is prepared in advance. For example, a routine table as shown in FIG. In the routine shown in FIG.
Using the F statement, processing units (x) and (y) dedicated to each CPU are provided. This is because this routine is started from all CPUs and different operations are performed for each CPU.
【0111】このCPU毎の専用処理部(x)、(y)
に、キャッシュコヒーレンシィの論理(従来例で説明し
た「MOESI」として周知)を組み込んだこのルーチ
ンを、ランダム命令列の生成過程で無作為に展開するこ
とにより、意図的なキャッシュコヒーレンシィ試験が実
現可能になる。以下に、前記ルーチン内の詳細論理を説
明する。The dedicated processing units (x) and (y) for each CPU
This routine, which incorporates the logic of cache coherency (known as "MOESI" described in the conventional example), is developed at random in the process of generating a random instruction sequence, thereby achieving an intentional cache coherency test. Will be possible. Hereinafter, the detailed logic in the routine will be described.
【0112】先ず、試験対象キャッシュライン(図2の
斜線部分参照)を選択(Select Line命令で選択)し、
CPUの同期をとった後、各CPUの命令列に分岐する
(CPU毎に、処理を分けて実行する)。ここでは定義
上、CPU−0をマスタ、その他のCPUをスレーブと
する。前記マスタはキャッシュに或る状態を設定する。
例えば、ストア命令(Store )を使用する。スレーブ
は、マスタが設定したキャッシュの状態に対し、変化を
与える。例えば、ロード命令(Load)により変化を与え
る(データを変化させる)。First, a cache line to be tested (see the hatched portion in FIG. 2) is selected (Select). Line command)
After synchronizing the CPUs, the CPU branches to the instruction sequence of each CPU (processing is executed separately for each CPU). Here, by definition, CPU-0 is a master and other CPUs are slaves. The master sets a state in the cache.
For example, a store instruction (Store) is used. The slave changes the state of the cache set by the master. For example, a change is given by a load instruction (Load) (data is changed).
【0113】この例では、マスタが最新のキャッシュ情
報を持っている時に、スレーブからその情報を読み出し
た時のキャッシュ状態の変化を実現させている。このよ
うにして、前記ストア命令と、ロード命令を変化させる
ことにより、多種多様なキャッシュの状態変化を明確に
実現でき、その時のキャッシュコヒーレンシィ(キャッ
シュの一致性)の検証が可能になる。In this example, when the master has the latest cache information, a change in the cache state when the information is read from the slave is realized. In this way, by changing the store instruction and the load instruction, various state changes of the cache can be clearly realized, and the cache coherency (coherency of the cache) at that time can be verified.
【0114】このように、前記(a)に示すルーチン
を、ランダム命令列生成時に無作為に挿入することによ
り意図したキャッシュコヒーレンシィ論理の検証がラン
ダム命令試験で実現可能となる。例えば、前記キャッシ
ュコヒーレンシィは、次のような内容である。すなわ
ち、データは、主記憶メモリ1や各CPUのL1$、L
2$に格納されているが、最新のデータは必ずしも主記
憶メモリ1にある必要はなく、いずれかのCPUのL1
$、或いはL2$に格納されていることもある。As described above, the verification of the intended cache coherency logic can be realized by the random instruction test by inserting the routine shown in (a) at random when the random instruction sequence is generated. For example, the cache coherency has the following contents. That is, the data is stored in the main memory 1 and the L1 #, L1 of each CPU.
2), the latest data does not necessarily have to be in the main memory 1;
Or L2}.
【0115】つまり、最新のデータは前記主記憶メモリ
1、或いは各CPUのL1$、或いはL2$のいずれか
にあれば良く、どこにあっても良いが、必ずどこかにな
ければならない。これらの論理は全て、「MOESI」
として確立された論理に従って、処理されている。That is, the latest data may be in the main memory 1 or any of L1 # and L2 # of each CPU, and may be anywhere, but must be always somewhere. All of these logics are "MOESI"
It is processed according to the logic established as.
【0116】§8:例7の説明・・・図10、図11参
照 図10は例7の説明図(その1)であり、A図は中間言
語の命令定義体、B図はテーブル例である。また、図1
1は例7の説明図(その2)であり、(x)はマスタC
PU処理(CPU−0)、(y)はスレーブCPU処理
(CPU−1、2、3)を示す。§8: Explanation of Example 7—See FIGS. 10 and 11 FIG. 10 is an explanatory diagram (part 1) of Example 7, where FIG. 10A is an instruction definition body of an intermediate language, and FIG. is there. FIG.
1 is an explanatory diagram (part 2) of Example 7, and (x) is master C
PU processing (CPU-0) and (y) show slave CPU processing (CPU-1, 2, 3).
【0117】例7は、ランダム命令列に意図したキャッ
シュコヒーレンシィ論理を組み込むことにより、キャッ
シュコヒーレンシィ試験における、意図したキャッシュ
データの組み合わせをランダムに実現させる例である。
例7の手法では、意図したキャッシュの動作は1ルーチ
ンで1つ実現できるが、本来の試験はランダム命令試験
であることから、意図したキャッシュの動作にランダム
性を持たせ、キャッシュ動作の組み合わせが1つのルー
チン内で出来ることが望ましい。これを実現する手法を
以下に説明する。Example 7 is an example in which the intended combination of cache data in the cache coherency test is realized at random by incorporating the intended cache coherency logic into the random instruction sequence.
In the method of Example 7, one intended cache operation can be realized by one routine. However, since the original test is a random instruction test, the intended cache operation is given randomness, and the combination of cache operations is changed. It is desirable to be able to do it in one routine. A technique for realizing this will be described below.
【0118】先ず、ルーチン内で定義する図10のA図
に示したような中間言語(マクロ命令)の命令定義体を
用意する。この中間言語(マクロ命令)はランダム命令
列を生成するジェネレータによって解析され、実行形式
の命令に変換される。First, an instruction definition body of an intermediate language (macro instruction) as shown in FIG. 10A to be defined in the routine is prepared. This intermediate language (macro instruction) is analyzed by a generator that generates a random instruction sequence, and is converted into an executable instruction.
【0119】この場合、前記中間言語のパラメータの1
つとして、次のような機能を持たせる。すなわち、「C
HAIN」,「CHAIN LIMIT」,「END」
の各命令において、「CHAIN」は、以降に命令列が
存在することを意味し、「CHAIN LIMIT」
は、以降に命令列が存在することを意味し、かつ、本パ
ラメータで指定した命令列(連続していることが条件)
に対して、メモリに展開する際、展開する命令の順番を
無作為に入れ換えることを意味する。「END」は、命
令列の最終を意味する。In this case, one of the parameters of the intermediate language
First, the following functions are provided. That is, "C
HAIN "," CHAIN LIMIT ”,“ END ”
In each of the instructions “CHAIN”, “CHAIN” means that there is an instruction sequence thereafter, and “CHAIN” LIMIT "
Means that there is an instruction sequence after that, and the instruction sequence specified by this parameter (provided that it is continuous)
On the other hand, this means that the order of instructions to be developed is randomly changed when the data is developed in the memory. “END” means the end of the instruction sequence.
【0120】以上の機能を例を挙げて説明する。図10
のB図、及び図11に示した例は、キャッシュコヒーレ
ンシィ試験の1例である。この場合、CPU−0、1、
2、3が、それぞれ初期化状態からストア命令(STORE)
とロード命令(LOAD)を実行した後に、各CPUからキャ
ッシュ状態を変える幾つかの命令(この例では、D flus
h,U flush,Load,Store,Casxa)を、前記チェインリミ
ット「CHAIN LIMIT」を付加して図10のB図
に示したテーブルを作成する。The above function will be described with an example. FIG.
FIG. 11B and the example shown in FIG.
This is one example of the safety test. In this case, CPU-0, 1,
2 and 3 are store instructions (STORE) from the initialization state respectively
After executing the load instruction (LOAD),
Some commands that change the state of the flus
h, U flush, Load, Store, Casxa)
"CHAIN B in FIG. 10 with "LIMIT" added.
Create the table shown in.
【0121】そして、このテーブルが、前記ジェネレー
タから選択されると、先頭から順に実行形式の命令(機
械語)に置き換えられる。この過程で、図11に示した
(b)の命令列を置き換えるが、この時、置き換える命
令の順序が変わるため、このテーブルが選択される度
に、異なる命令列が生成され、その結果、種々のキャッ
シュ状態の遷移が実現できる。When this table is selected from the generator, the table is replaced with an executable instruction (machine language) in order from the top. In this process, the instruction sequence of (b) shown in FIG. 11 is replaced. At this time, since the order of the instruction to be replaced changes, a different instruction sequence is generated every time this table is selected. Of the cache state can be realized.
【0122】従って、試験の目的である、キャッシュ状
態を変化させる命令の種類と、その命令を発行する直前
の状態を変えることにより、少ないテーブルで多くのキ
ャッシュ状態遷移試験が実現可能になる。Therefore, by changing the type of the instruction for changing the cache state and the state immediately before issuing the instruction, which is the object of the test, many cache state transition tests can be realized with a small number of tables.
【0123】§9:例8の説明・・・図12参照 図12は例8の説明図であり、A図はランダム命令の説
明図、B図は状態1、C図は状態2である。例8は、命
令のキャッシュコヒーレンシィ試験の実現を可能にする
手法である。前記例1〜例7のようなデータ(命令以外
の通常のデータ)のキャッシュコヒーレンシィではな
く、命令のキャッシュコヒーレンシィ試験を可能にさせ
るには、命令実行空間を複数持たせる必要がある。この
条件を満足し、かつ、前記例1〜例7の機能を有効にす
る手法は、次の手順により実現する。§9: Explanation of Example 8—See FIG. 12 FIG. 12 is an explanatory diagram of Example 8, wherein FIG. 12A is an explanatory diagram of a random instruction, FIG. Example 8 is a technique that enables a cache coherency test of an instruction to be realized. Instead of the cache coherency of data (normal data other than an instruction) as in Examples 1 to 7, it is necessary to have a plurality of instruction execution spaces to enable a cache coherency test of an instruction. A method that satisfies this condition and enables the functions of Examples 1 to 7 is realized by the following procedure.
【0124】:生成したランダム命令列を別の空間に
そっくり複写する。: The generated random instruction sequence is completely copied to another space.
【0125】:両方のランダム命令空間(元の命令空
間と複写後の命令空間)に対して、論理アドレスが等し
く、物理アドレス(ランダム命令の空間)が異なるMM
Uテーブル(アドレス変換テーブル)を作成する。そし
て、各MMUテーブルには、異なるコンテキスト値を定
義する。なお、この場合のコンテキストとは、空間を切
り換えるための制御レジスタのことであり、コンテキス
ト値は前記制御レジスタの値である。MM: Both random instruction spaces (original instruction space and copied instruction space) have the same logical address and different physical addresses (random instruction space).
Create a U table (address conversion table). Then, different context values are defined in each MMU table. The context in this case is a control register for switching the space, and the context value is the value of the control register.
【0126】:初期値として、コンテキスト値=10
とし、例えば、論理アドレス=0x000000から試
験を開始する。Context value = 10 as an initial value
For example, the test is started from logical address = 0x000000.
【0127】:或る割り込みを契機に、命令の論理ア
ドレスをMMUテーブルから任意に選択する。この値に
ランダム命令列内のアドレス(ランダム命令列の空間が
1MBと仮定した場合は、1MBバウンダリの値をオア
したアドレス)を命令カウンタに設定する。[0127] When a certain interrupt occurs, the logical address of the instruction is arbitrarily selected from the MMU table. The address in the random instruction sequence (if the space of the random instruction sequence is assumed to be 1 MB, the address obtained by ORing the value of the 1 MB boundary) is set in the instruction counter to this value.
【0128】例えば、0x5050010番地で割り込
みが発生した場合、新命令アドレス(0x700000
0)にランダム命令列内アドレス(0x50010)を
足した値=0x7050010となる。そして、このア
ドレスで復帰することにより、ランダム命令列の実行順
序が乱されることがなく、かつ論理アドレスを変化させ
ることができる。For example, when an interrupt occurs at address 0x505010, a new instruction address (0x70000000)
0) plus a random instruction sequence address (0x50010) = 0x705010. By returning at this address, the execution order of the random instruction sequence is not disturbed, and the logical address can be changed.
【0129】:また、或る割り込みを契機に、コンテ
キストを切り換えて異なったコンテキスト値(10→2
0)を得る。これにより、論理アドレスの命令カウンタ
は変わらずに、物理アドレスのみを変更できる。この場
合、0x300000のランダム命令空間の命令が動作
する。Also, upon a certain interrupt, the context is switched to a different context value (10 → 2
0) is obtained. Thus, only the physical address can be changed without changing the instruction counter of the logical address. In this case, an instruction in a random instruction space of 0x300000 operates.
【0130】:前記〜の処理により、ランダム命
令列は頭から順次実行され、かつ、実行する空間のみ変
化することになる。つまり、実行される物理空間、及び
実行論理アドレスが順次切り換わるため、命令のキャッ
シュコヒーレンシィ試験が可能となる。By the above-mentioned processing, the random instruction sequence is sequentially executed from the beginning, and only the space to be executed changes. That is, since the physical space to be executed and the execution logical address are sequentially switched, a cache coherency test of the instruction can be performed.
【0131】なお、L2$が2MBと仮定すると、実ア
ドレスで2MB離れたアドレスをアクセスすると、キャ
ッシュのリプレースが発生する。また、L1$が64K
Bの4Wayであると仮定すると、16KB離れた論理
アドレスを5回アクセスすることでキャッシュのリプレ
ースが発生する。Assuming that L2 # is 2 MB, replacing an actual address with an address 2 MB away causes cache replacement. Also, L1 $ is 64K
Assuming that the B is 4 Way, the cache is replaced by accessing a logical address 16 KB apart 5 times.
【0132】§10:試験例例の説明・・・図13、図
14参照 図13は試験例の説明図、図14はランダム命令列生成
処理フローチャートである。以下、図13、図14に基
づいて具体的な試験例を説明する。§10: Description of Test Example—See FIGS. 13 and 14 FIG. 13 is an explanatory diagram of the test example, and FIG. 14 is a flowchart of random instruction sequence generation processing. Hereinafter, specific test examples will be described with reference to FIGS.
【0133】(1) :試験例の説明 キャッシュコヒーレンシィの試験は例えば、次のように
して行う。(1): Description of Test Example The cache coherency test is performed, for example, as follows.
【0134】:全CPUから同一タスクに起動をかけ
る。: Start the same task from all CPUs.
【0135】:起動されたタスクはマスタCPU(こ
の例では、CPU−0)と、スレーブCPU(この例で
は、CPU−1、2、3・・・n)にCPUを分け、マ
スタCPUのみ命令の生成を行う。The started task is divided into a master CPU (CPU-0 in this example) and slave CPUs (CPU-1, 2, 3,..., N in this example). Is generated.
【0136】:ランダム命令の生成処理を行う(後述
する)。Perform random instruction generation processing (to be described later).
【0137】:命令生成後、全CPUで同期をとり、
その後、各CPUはレジスタに初期値を設定し、生成さ
れたランダム命令域の先頭に処理を渡す。この場合、初
期値を設定するレジスタの中にアクセス命令のアクセス
専用に割り振られたレジスタ(例えば、G1:インデッ
クス専用、G2:ベースレジスタ専用)には、データ域
を指す論理アドレスと、そのアドレスからのディスプレ
ートメントを指すためのインデックス値を設定する。ま
た、アクセスの変更は、ランダム命令列から呼び出され
たサブルーチンにより変更される。また、何かの割り込
みを契機に変更しても良い。: After instruction generation, all CPUs synchronize
After that, each CPU sets an initial value in the register and passes the process to the head of the generated random instruction area. In this case, the registers (for example, G1: index only, G2: base register only) allocated exclusively for the access of the access instruction among the registers for setting the initial values include the logical address indicating the data area and the address. Set an index value to point to the displacement of The access is changed by a subroutine called from the random instruction sequence. The change may be made in response to some interruption.
【0138】:ランダム命令列の最後の復帰処理によ
り元のタスクに戻る。Return to the original task by the last return processing of the random instruction sequence.
【0139】:最後に試験の結果得られたデータの比
較を行うが、このデータ比較の論理は、例えば、次の
a、bの通りである。Finally, the data obtained as a result of the test is compared. The logic of this data comparison is, for example, as shown in the following a and b.
【0140】a:ランダム命令列の実行で或る条件(例
えば、割り込み)で全レジスタとメモリの内容をトレー
スする。この場合、本ランダム命令列を、走行環境を変
えて2回実行し、2度目の実行の時、1度目にトレース
した情報と比較する。A: Trace the contents of all registers and memory under a certain condition (for example, an interrupt) in the execution of a random instruction sequence. In this case, this random instruction sequence is executed twice while changing the running environment, and when the second execution is performed, the random instruction sequence is compared with the information traced the first time.
【0141】b:本タスク処理を実機と、ソフトシュミ
レータとで実行させ、或る条件で双方のレジスタとメモ
リの内容を比較する。B: This task process is executed by the actual machine and the soft simulator, and the contents of both registers and the memory are compared under certain conditions.
【0142】(2) :ランダム命令の生成処理 以下、図14に基づいてランダム命令の生成処理を説明
する。なお、S1〜S8は各処理ステップを示す。ラン
ダム命令の生成処理が開始されると、先ず、命令生成域
にランダムデータを書き込む(S1)。次に、命令生成
域のランダムデータを用い、ルーチンテーブル、又は命
令変換テーブルから任意の1つを取り出し、命令に変換
後、その命令又は命令列を命令生成域に書き込む。(2): Random Instruction Generation Processing Hereinafter, random instruction generation processing will be described with reference to FIG. In addition, S1 to S8 indicate each processing step. When the process of generating a random instruction is started, first, random data is written in the instruction generation area (S1). Next, using the random data in the instruction generation area, an arbitrary one is extracted from the routine table or the instruction conversion table, converted into an instruction, and then the instruction or the instruction sequence is written in the instruction generation area.
【0143】この処理を順次行うことで、命令生成域全
てにランダム命令を作り上げる。具体的には次の通りで
ある。前記のようにして命令生成域にランダムデータを
書き込んだ後、命令生成域の先頭にポインタPを設定す
る(S2)。そして、前記ポインタPの内容からどちら
かに分岐する(S3)。By sequentially performing this processing, a random instruction is created in the entire instruction generation area. Specifically, it is as follows. After writing the random data in the instruction generation area as described above, the pointer P is set at the head of the instruction generation area (S2). Then, branch to one of the contents of the pointer P (S3).
【0144】一方に分岐した場合は次のような処理を行
う。先ず、命令変換テーブルから任意の命令データをラ
ンダムに選択し、その中にあるANDと、ORデータ
と、ポインタPから読み出したランダムデータとを掛け
合わせて命令を生成する。生成した命令は、ポインタP
のアドレスに格納する。なお、アクセス命令を生成する
場合は、決められたアクセス用レジスタが選ばれるよう
に、前記AND/ORデータを定義する(S4)。When branching to one side, the following processing is performed. First, arbitrary instruction data is randomly selected from the instruction conversion table, and an instruction is generated by multiplying AND data and OR data in the instruction data and random data read from the pointer P. The generated instruction has a pointer P
At the address. When generating an access instruction, the AND / OR data is defined so that a predetermined access register is selected (S4).
【0145】その後、ポインタPの値を更新し(S
5)、最終判定を行ない(S6)、最終処理になるま
で、前記S3の処理から繰り返す。また、前記S3の処
理の結果、他方に分岐した場合は、次のように処理を行
う。先ず、ルーチンテーブルから任意のルーチンをラン
ダムに選択し、そのルーチン内のコマンド列を順次命令
に変換し、ポインタPのアドレス以降に格納する(S
7)。その後、生成した命令の命令数だけポインタPの
値を更新し(S8)、前記S6の処理へ移行する。以上
の処理を行ない、最終判定で最終処理まで終了したと判
定したら、ランダム命令生成処理を終了する。Thereafter, the value of the pointer P is updated (S
5), a final determination is made (S6), and the processing from S3 is repeated until the final processing is performed. If the process branches to the other as a result of the process in S3, the process is performed as follows. First, an arbitrary routine is randomly selected from the routine table, the command sequence in the routine is sequentially converted into an instruction, and the instruction is stored after the address of the pointer P (S
7). After that, the value of the pointer P is updated by the number of instructions of the generated instruction (S8), and the process shifts to S6. The above processing is performed, and when it is determined in the final determination that the processing has been completed up to the final processing, the random instruction generation processing ends.
【0146】§11:試験用プログラムと記録媒体の説
明 図2に示した情報処理装置(情報処理システム)は、図
2に示した構成の他に、通信制御部、ディスプレイ装
置、キーボード、フレキシブルディスクドライブ(フロ
ッピィディスクドライブ)(以下、「FDD」と記
す)、CD−ROMドライブ、ハードディスク装置(以
下「HDD」と記す)等を備えている。§11: Description of Test Program and Recording Medium The information processing apparatus (information processing system) shown in FIG. 2 has a communication control unit, a display device, a keyboard, and a flexible disk in addition to the configuration shown in FIG. A drive (floppy disk drive) (hereinafter referred to as “FDD”), a CD-ROM drive, a hard disk drive (hereinafter referred to as “HDD”), and the like are provided.
【0147】そして、図2に示したシステムは、予めR
OM6に格納(記録、或いは記憶)しておいたプログラ
ムを、CPUの制御により読み出して主記憶メモリ1へ
格納し、該CPUが前記プログラムを実行することによ
り、前記キャッシュコヒーレンシィ試験(情報処理装置
の試験)を行う。Then, the system shown in FIG.
The program stored (recorded or stored) in the OM 6 is read out under the control of the CPU and stored in the main storage memory 1, and the CPU executes the program to execute the cache coherency test (the information processing device). Test).
【0148】しかし、本願発明は、このような例に限ら
ず、例えば、HDDのハードディスクに、次のようにし
て試験用のプログラムを格納し、このプログラムをCP
Uが実行することで前記キャッシュコヒーレンシィ試験
を行うことも可能である。However, the present invention is not limited to such an example. For example, a test program is stored in the hard disk of the HDD as follows, and this program is stored in the CP.
The cache coherency test can be performed by U executing.
【0149】:他の装置で作成されたフレキシブルデ
ィスク(フロッピィディスク)に格納されているプログ
ラム(他の装置で作成したプログラムデータ)を、FD
Dにより読み取り、HDDの記録媒体(ハードディス
ク)に格納する。A program (program data created by another device) stored in a flexible disk (floppy disk) created by another device is copied to an FD.
D and stored in the recording medium (hard disk) of the HDD.
【0150】:光磁気ディスク、或いはCD−ROM
等の記憶媒体に格納されているデータを、CD−ROM
ドライブにより読み取り、HDDの記録媒体(ハードデ
ィスク)に格納する。: Magneto-optical disk or CD-ROM
Data stored in a storage medium such as a CD-ROM
The data is read by the drive and stored in the recording medium (hard disk) of the HDD.
【0151】:LAN等の通信回線を介して他の装置
から伝送されたプログラム等のデータを、通信制御部を
介して受信し、そのデータをHDDの記録媒体(ハード
ディスク)に格納する。: Receives data such as a program transmitted from another device via a communication line such as a LAN via a communication control unit, and stores the data on a recording medium (hard disk) of an HDD.
【0152】[0152]
【発明の効果】以上説明したように、本発明によれば次
のような効果がある。As described above, the present invention has the following effects.
【0153】(1) :キャッシュコヒーレンシィを引き起
こすアクセスレジスタの増加、及びキャッシュリプレー
スの発生確率を増加させた状態で、ランダム命令生成の
特質を活かしたキャッシュコヒーレンシィ機能の検証が
可能になる。つまり、キャッシュに影響を与えるアクセ
ス命令の前後に、ランダム命令が生成されることで、ア
クセス命令の発信タイミングをずらすことができ、色々
な環境下でキャッシュの状態検証が可能となる。従っ
て、ハードウエアの品質向上が実現できる。(1): With an increase in the number of access registers causing cache coherency and an increase in the probability of occurrence of cache replacement, it is possible to verify the cache coherency function utilizing the characteristic of random instruction generation. In other words, by generating a random instruction before and after an access instruction affecting the cache, the transmission timing of the access instruction can be shifted, and the state of the cache can be verified in various environments. Therefore, hardware quality can be improved.
【0154】(2) :マルチCPUを対象としたランダム
命令によるキャッシュコヒーレンシィ試験で、各CPU
が同一ブロックをアクセスでき、かつ別のCPUからデ
ータが破壊されないようにしてキャッシュコヒーレンシ
ィ試験を実現できる。(2): A cache coherency test using random instructions for multiple CPUs,
Can access the same block, and a cache coherency test can be realized by preventing data from being destroyed by another CPU.
【0155】(3) :マルチCPU構成の情報処理装置を
対象とし、該CPU内でランダム命令列を生成してキャ
ッシュコヒーレンシィ試験を行う情報処理装置の試験方
法において、ランダム命令列で生成されるアクセス命令
のオペランドアドレスを指すベースレジスタの値を各C
PU毎に一定値づつずらした値に設定し、前記オペラン
ドアドレスのインデックス部を指すインデックスレジス
タの値と、前記オペランドアドレス内のディスプレース
メント値を予め規定しておく。(3): In a test method for an information processing apparatus in which a random instruction sequence is generated in the CPU and a cache coherency test is performed in an information processing device having a multi-CPU configuration, the random instruction sequence is generated with a random instruction sequence. The value of the base register indicating the operand address of the access instruction is
The value is shifted by a constant value for each PU, and the value of an index register indicating the index portion of the operand address and the displacement value in the operand address are defined in advance.
【0156】このようにすれば、全てのCPUから同一
命令を実行した時に、アクセス命令のアクセスアドレス
は、CPU毎に必ず決められたアドレス範囲(例えば、
16バイト)を指すことができる。すなわち、全CPU
に同一アクセス空間を割り当てた時の各CPUからの重
複アクセスを回避することができる。In this way, when the same instruction is executed from all CPUs, the access address of the access instruction becomes an address range which is always determined for each CPU (for example,
16 bytes). That is, all CPUs
It is possible to avoid duplicate access from each CPU when the same access space is allocated to the CPU.
【0157】従って、マルチCPUを対象としたランダ
ム命令試験で、各CPUが同一ブロックをアクセスで
き、かつ別のCPUからデータが破壊されないようにし
てキャッシュコヒーレンシィ試験を実現できる。Therefore, in a random instruction test for multiple CPUs, a cache coherency test can be realized so that each CPU can access the same block and data is not destroyed by another CPU.
【0158】(4) :前記情報処理装置の試験を行う際、
同一論理空間を持ち、命令により切り換え可能な異なる
コンテキストを複数用意する。そして、コンテキスト毎
に、それぞれ論理アドレスと実メモリの物理アドレスと
の対応情報を持ち、ランダム命令列を実行させる過程
で、特定命令によりコンテキストを切り換えた際、同一
論理アドレスをアクセスしても、実メモリの異なる物理
アドレスを指すようにしてキャッシュリプレースを行わ
せる。このようにすれば、キャッシュリプレース回数を
より多く生成することができる。(4): When testing the information processing apparatus,
A plurality of different contexts having the same logical space and switchable by an instruction are prepared. Then, each context has correspondence information between the logical address and the physical address of the real memory, and in the process of executing the random instruction sequence, when the context is switched by a specific instruction, the same logical address is accessed. Cache replacement is performed by pointing to a different physical address of the memory. This makes it possible to generate a larger number of cache replacements.
【0159】(5) :前記情報処理装置の試験を行う際、
各CPUが実行するランダム命令列内に試験対象キャッ
シュアドレスの選択を行う特定命令を設けておき、この
特定命令の実行により、各CPUとも、同一の試験対象
キャッシュアドレスを選択し、このアドレスに、各CP
Uに割り振ったシフトバイトを加算した値を求め、この
値により、各CPUから見て、同一キャッシュアドレス
で、かつ、アクセスが重複しないようにする。(5): When testing the information processing apparatus,
A specific instruction for selecting a test target cache address is provided in a random instruction sequence executed by each CPU, and by executing this specific instruction, each CPU selects the same test target cache address, and Each CP
A value obtained by adding the shift bytes allocated to U is obtained, and this value is used to prevent the access from being duplicated at the same cache address as seen from each CPU.
【0160】すなわち、複数CPUから試験対象となる
同一メモリブロック内でアクセスが重複しないメモリア
ドレスを導出することができる。このようにすれば、ラ
ンダム命令列に意図したキャッシュコヒーレンシィ論理
を組み込む手法を実現でき、試験時の全組み合わせの実
現時間を短縮させることが可能になる。That is, it is possible to derive a memory address from the plurality of CPUs that does not duplicate access in the same memory block to be tested. In this way, it is possible to implement a method of incorporating the intended cache coherency logic into the random instruction sequence, and it is possible to reduce the realization time of all combinations at the time of testing.
【0161】(6) :前記情報処理装置の試験を行う際、
生成したランダム命令列を別の空間に複写する処理と、
両方のランダム命令空間に対して、論理アドレスが等し
く、物理アドレスが異なるアドレス変換テーブルを作成
し、該テーブルに異なるコンテキスト値を定義する処理
と、初期値として、コンテキストに値を設定し、或る論
理アドレスから試験を開始させる処理と、或る割り込み
を契機に、命令の論理アドレスを前記アドレス変換テー
ブルから選択し、この値にランダム命令内アドレスを命
令カウンタに設定する処理と、或る割り込みを契機に、
コンテキストの値を切り換えることにより、論理アドレ
スの命令カウンタは変わらずに、物理アドレスのみ変更
できるようにする処理とを行う。(6): When testing the information processing apparatus,
A process of copying the generated random instruction sequence to another space;
For both random instruction spaces, create an address translation table having the same logical address and different physical address, define a different context value in the table, and set a value in the context as an initial value. A process for starting a test from a logical address, a trigger for selecting a logical address of an instruction from the address conversion table, and a process for setting an address in a random instruction to an instruction counter to this value. As an opportunity,
By switching the value of the context, a process of changing only the physical address without changing the instruction counter of the logical address is performed.
【0162】そして、前記処理により、ランダム命令列
を頭から順次実行し、かつ実行空間のみ変化させること
で、命令キャッシュのキャッシュコヒーレンシィ試験を
可能にする。By the above-described processing, the random instruction sequence is sequentially executed from the beginning, and only the execution space is changed, thereby enabling the cache coherency test of the instruction cache.
【0163】(7) :前記記録媒体のプログラムを読み出
して実行することにより、ランダム命令列で生成される
アクセス命令のオペランドアドレスを指すベースレジス
タの値を各CPU毎に一定値づつずらした値に設定し、
前記オペランドアドレスのインデックス部を指すインデ
ックスレジスタの値と、前記オペランドアドレス内のデ
ィスプレースメント値を予め規定しておく。(7): By reading and executing the program on the recording medium, the value of the base register indicating the operand address of the access instruction generated by the random instruction sequence is shifted by a constant value for each CPU. Set,
A value of an index register indicating an index portion of the operand address and a displacement value in the operand address are defined in advance.
【0164】このようにすれば、全てのCPUから同一
命令を実行した時に、アクセス命令のアクセスアドレス
は、CPU毎に必ず決められたアドレス範囲を指すこと
ができる。すなわち、全CPUに同一アクセス空間を割
り当てた時の各CPUからの重複アクセスを回避するこ
とができる。In this way, when the same instruction is executed from all CPUs, the access address of the access instruction can point to an address range that is always determined for each CPU. That is, duplicate access from each CPU when the same access space is allocated to all CPUs can be avoided.
【0165】従って、マルチCPUを対象としたランダ
ム命令試験で、各CPUが同一ブロックをアクセスで
き、かつ別のCPUからデータが破壊されないようにし
てキャッシュコヒーレンシィ試験を実現できる。Therefore, in a random instruction test for multiple CPUs, a cache coherency test can be realized while each CPU can access the same block and data is not destroyed by another CPU.
【0166】以上の説明に関して、更に以下の項を開示
する。With respect to the above description, the following items are further disclosed.
【0167】(a) :複数のCPUをバスで接続し、各C
PUにキャッシュメモリを備えたマルチCPU構成の情
報処理装置を対象とし、前記CPU内で、ベースレジス
タの値に、インデックスレジスタの値、或いはディスプ
レースメント値を加算して、アクセス命令のオペランド
アドレスを生成することにより、ランダム命令列を生成
してキャッシュコヒーレンシィ試験を行う情報処理装置
の試験方法において、汎用レジスタと、各ウインドウ毎
にインレジスタ、ローカルレジスタ、アウトレジスタが
有り、命令が或るウインドウを指している時は、その時
のウインドウのレジスタと、汎用レジスタのみが使用可
能になる場合、各ウインドウ毎に設けられたローカルレ
ジスタに、予め、論理空間の異なるアドレスを設定して
おき、このローカルレジスタをウインドウにより切り換
えて、前記ランダム命令列で生成されるアクセス命令の
オペランドアドレスを指すベースレジスタとして使用
し、前記汎用レジスタを前記オペランドアドレスのイン
デックス部を指すインデックスレジスタとして使用する
ことにより、命令によるウインドウの切り換えだけで、
キャッシュコヒーレンシィの動作環境をより多く実現す
る。(A): A plurality of CPUs are connected by a bus
A multi-CPU information processing device having a cache memory in a PU, and in the CPU, adds an index register value or a displacement value to a base register value to generate an operand address of an access instruction. By doing so, in a test method for an information processing apparatus that generates a random instruction sequence and performs a cache coherency test, a general-purpose register, an in-register, a local register, and an out-register for each window, When pointing, when only the register of the window at that time and the general-purpose register can be used, a different address of the logical space is set in advance in a local register provided for each window, and the local register is set. Is switched by a window, and the Use as the base register that points to the operand address of an access instruction generated by the instruction sequence, by using the general-purpose register as an index register to point to the index of the operand address, only the switching of the window by the instruction,
Realize more cache coherency operating environment.
【0168】このようにすれば、既存の多数のレジスタ
を効率的に利用し、ウインドウの切り換えだけでキャッ
シュコヒーレンシィの動作環境を簡単に実現できる。ま
た、ベースレジスタとして使用できるレジスタの数も多
いので、多くの動作環境を簡単に実現できる。In this way, an operating environment of cache coherency can be easily realized by simply using a large number of existing registers and simply switching windows. Further, since there are many registers that can be used as base registers, many operating environments can be easily realized.
【0169】(b) :複数のCPUをバスで接続し、各C
PUにキャッシュメモリを備えたマルチCPU構成の情
報処理装置を対象とし、前記CPU内で、ベースレジス
タの値に、インデックスレジスタの値、或いはディスプ
レースメント値を加算して、アクセス命令のオペランド
アドレスを生成することにより、ランダム命令列を生成
してキャッシュコヒーレンシィ試験を行う情報処理装置
の試験方法において、アクセス命令のアドレスを決定す
る条件である、インデックスレジスタの値と、ディスプ
レースメント値を、キャッシュメモリの幅で規定される
値nに対し、−n、0、+nの3か所に固定し、それ以
外の値が生成されないようにすることにより、キャッシ
ュリプレースの回数をより多く生成する。(B): A plurality of CPUs are connected by a bus
A multi-CPU information processing device having a cache memory in a PU, and in the CPU, adds an index register value or a displacement value to a base register value to generate an operand address of an access instruction. By doing so, in a test method of an information processing device that generates a random instruction sequence and performs a cache coherency test, a value of an index register and a displacement value, which are conditions for determining an address of an access instruction, are stored in a cache memory. With respect to the value n defined by the width, the number of times of cache replacement is generated more by fixing at three places of -n, 0, and + n so that other values are not generated.
【0170】このように、アクセス命令のアドレスを決
定する条件である、インデックスレジスタの値と、ディ
スプレースメント値を、キャッシュメモリの幅で規定さ
れる値n(例えば、n=64)に対し、−n、0、+n
の3か所に固定し、それ以外の値が生成されないように
すれば、キャッシュリプレースの回数をより多く生成す
ることができる。As described above, the value of the index register and the displacement value, which are the conditions for determining the address of the access instruction, are calculated by subtracting the value n (for example, n = 64) defined by the width of the cache memory from- n, 0, + n
If the values are fixed at the three positions described above and other values are not generated, the number of times of cache replacement can be generated more.
【0171】(c) :複数のCPUをバスで接続し、各C
PUにキャッシュメモリを備えたマルチCPU構成の情
報処理装置を対象とし、前記CPU内でランダム命令列
を生成してキャッシュコヒーレンシィ試験を行う情報処
理装置の試験方法において、キャッシュコヒーレンシィ
を試験するルーチンを用意し、このルーチンに、各CP
U毎の専用処理部を設け、該専用処理部にキャッシュコ
ヒーレンシィ試験の論理を組み込んだこのルーチンを、
ランダム命令列の生成過程で無作為に展開することによ
り、意図したキャッシュコヒーレンシィ論理の検証をラ
ンダム命令試験で実現可能にする。このようにすれば、
意図したキャッシュコヒーレンシィ論理の検証がランダ
ム命令試験で実現可能になる。(C): A plurality of CPUs are connected by a bus
A routine for testing cache coherency in an information processing apparatus test method for generating a random instruction sequence in the CPU and performing a cache coherency test for an information processing apparatus having a multi-CPU configuration having a cache memory in a PU Is prepared, and each CP is
A dedicated processing unit is provided for each U, and this dedicated processing unit incorporates the logic of the cache coherency test into this routine.
By random development in the process of generating a random instruction sequence, verification of the intended cache coherency logic can be realized by a random instruction test. If you do this,
Verification of the intended cache coherency logic can be realized by random instruction testing.
【0172】(d) :複数のCPUをバスで接続し、各C
PUにキャッシュメモリを備えたマルチCPU構成の情
報処理装置を対象とし、前記CPU内でランダム命令列
を生成してキャッシュコヒーレンシィ試験を行う情報処
理装置の試験方法において、マクロ命令の命令定義体を
用意し、このマクロ命令をランダム命令列を生成する生
成手段によって解析し、先頭から順に実行形式の命令に
変換する過程で、展開する命令の順番を無作為に入れ換
えることにより、より多くのキャッシュ状態遷移を実現
させる。このようにすれば、より多くのキャッシュ状態
遷移を実現させ、キャッシュコヒーレンシィ試験を行う
ことができる。(D): A plurality of CPUs are connected by a bus
In a test method for an information processing apparatus that performs a cache coherency test by generating a random instruction sequence in the CPU for a multi-CPU information processing apparatus having a cache memory in a PU, Prepare and analyze this macro instruction by the generation means that generates a random instruction sequence, and in the process of converting it from the beginning to the executable form instruction, by changing the order of the instructions to be developed at random, Realize the transition. In this way, more cache state transitions can be realized and a cache coherency test can be performed.
【図1】本発明の原理説明図である。FIG. 1 is a diagram illustrating the principle of the present invention.
【図2】本発明の実施の形態におけるシステム構成図で
ある。FIG. 2 is a system configuration diagram in the embodiment of the present invention.
【図3】本発明の実施の形態における例1の説明図(そ
の1)である。FIG. 3 is an explanatory diagram (part 1) of Example 1 in the embodiment of the present invention.
【図4】本発明の実施の形態における例1の説明図(そ
の2)である。FIG. 4 is an explanatory diagram (part 2) of Example 1 in the embodiment of the present invention.
【図5】本発明の実施の形態における例2の説明図であ
る。FIG. 5 is an explanatory diagram of Example 2 in the embodiment of the present invention.
【図6】本発明の実施の形態における例3の説明図であ
る。FIG. 6 is an explanatory diagram of Example 3 in the embodiment of the present invention.
【図7】本発明の実施の形態における例4の説明図であ
る。FIG. 7 is an explanatory diagram of Example 4 in the embodiment of the present invention.
【図8】本発明の実施の形態における例5の説明図であ
る。FIG. 8 is an explanatory diagram of Example 5 in the embodiment of the present invention.
【図9】本発明の実施の形態における例6の説明図であ
る。FIG. 9 is an explanatory diagram of Example 6 in the embodiment of the present invention.
【図10】本発明の実施の形態における例7の説明図
(その1)である。FIG. 10 is an explanatory diagram (No. 1) of Example 7 in the embodiment of the present invention.
【図11】本発明の実施の形態における例7の説明図
(その2)である。FIG. 11 is an explanatory view (No. 2) of Example 7 in the embodiment of the present invention.
【図12】本発明の実施の形態における例8の説明図で
ある。FIG. 12 is an explanatory diagram of Example 8 in the embodiment of the present invention.
【図13】本発明の実施の形態における試験例の説明図
である。FIG. 13 is an explanatory diagram of a test example according to the embodiment of the present invention.
【図14】本発明の実施の形態におけるランダム命令列
生成処理フローチャートである。FIG. 14 is a flowchart of a random instruction sequence generation process according to the embodiment of the present invention.
【図15】従来例のシステム構成図である。FIG. 15 is a system configuration diagram of a conventional example.
【図16】従来のランダム命令試験例である。FIG. 16 is an example of a conventional random instruction test.
1 主記憶メモリ(主記憶装置) 2 システムコントローラ 3 キャッシュ制御部 4 キャッシュ情報テーブル 5 I/O制御部(入出力制御部) 6 ROM 9 キャッシュメモリ L1$ 一次キャッシュ(一次キャッシュメモリ) L2$ 二次キャッシュ(二次キャッシュメモリ) DESCRIPTION OF SYMBOLS 1 Main memory (main memory) 2 System controller 3 Cache control unit 4 Cache information table 5 I / O control unit (input / output control unit) 6 ROM 9 Cache memory L1 Primary cache (Primary cache memory) L2 $ Secondary Cache (secondary cache memory)
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) G06F 12/08 320 G06F 12/08 320 12/12 12/12 A 12/16 330 12/16 330B 13/00 301 13/00 301T Fターム(参考) 5B005 JJ01 KK12 LL11 MM05 MM12 PP12 RR02 UU32 VV22 5B018 GA03 HA32 MA03 QA13 RA11 5B045 BB12 DD12 JJ02 5B048 AA17 AA19 FF03 5B083 AA08 BB08 CE01 EE02 ──────────────────────────────────────────────────続 き Continued on the front page (51) Int.Cl. 7 Identification symbol FI Theme coat ゛ (Reference) G06F 12/08 320 G06F 12/08 320 12/12 12/12 A 12/16 330 12/16 330B 13 / 00 301 13/00 301T F-term (reference) 5B005 JJ01 KK12 LL11 MM05 MM12 PP12 RR02 UU32 VV22 5B018 GA03 HA32 MA03 QA13 RA11 5B045 BB12 DD12 JJ02 5B048 AA17 AA19 FF03 5B083 AA08 BB08 CE01EE02
Claims (5)
キャッシュメモリを備えたマルチCPU構成の情報処理
装置を対象とし、前記CPU内で、ベースレジスタの値
に、インデックスレジスタの値、或いはディスプレース
メント値を加算して、アクセス命令のオペランドアドレ
スを生成することにより、ランダム命令列を生成してキ
ャッシュコヒーレンシィ試験を行う情報処理装置の試験
方法において、 前記ランダム命令列で生成されるアクセス命令のオペラ
ンドアドレスを指すベースレジスタの値を各CPU毎に
一定値づつずらした値に設定し、 前記オペランドアドレスのインデックス部を指すインデ
ックスレジスタの値と、前記オペランドアドレス内のデ
ィスプレースメント値を予め規定しておくことにより、 全CPUに同一アクセス空間を割り当てた時の各CPU
からの重複アクセスを回避することを特徴とする情報処
理装置の試験方法。1. A multi-CPU information processing apparatus in which a plurality of CPUs are connected by a bus and each CPU is provided with a cache memory. In the CPU, a base register value, an index register value, or In a test method of an information processing apparatus for generating a random instruction sequence and performing a cache coherency test by adding a displacement value and generating an operand address of an access instruction, the access instruction generated by the random instruction sequence The value of the base register indicating the operand address is set to a value shifted by a constant value for each CPU, and the value of the index register indicating the index portion of the operand address and the displacement value in the operand address are defined in advance. The same access to all CPUs. Each CPU at the time of allocation of space
A method for testing an information processing apparatus, characterized by avoiding duplicate access from a user.
キャッシュメモリを備えたマルチCPU構成の情報処理
装置を対象とし、前記CPU内でランダム命令列を生成
してキャッシュコヒーレンシィ試験を行う情報処理装置
の試験方法において、 同一論理空間を持ち、命令により切り換え可能な異なる
コンテキストを複数用意し、該コンテキスト毎に、それ
ぞれ論理アドレスと実メモリの物理アドレスとの対応情
報を持ち、 前記ランダム命令列を実行させる過程で、特定命令によ
り前記コンテキストを切り換えた際、同一論理アドレス
をアクセスしても、実メモリの異なる物理アドレスを指
すようにしてキャッシュリプレースを行わせ、キャッシ
ュリプレース回数をより多く生成させることを特徴とす
る情報処理装置の試験方法。2. A multi-CPU information processing apparatus having a plurality of CPUs connected by a bus and a cache memory for each CPU. A random instruction sequence is generated in the CPUs to perform a cache coherency test. In the test method for an information processing device, a plurality of different contexts having the same logical space and switchable by an instruction are prepared, and each of the contexts has correspondence information between a logical address and a physical address of a real memory, and the random instruction In the process of executing a column, when the context is switched by a specific instruction, even if the same logical address is accessed, the cache is replaced by pointing to a different physical address in the real memory, and the number of cache replacements is generated more. A method for testing an information processing apparatus, the method comprising:
キャッシュメモリを備えたマルチCPU構成の情報処理
装置を対象とし、前記CPU内でランダム命令列を生成
してキャッシュコヒーレンシィ試験を行う情報処理装置
の試験方法において、 各CPUが実行する前記ランダム命令列内に試験対象キ
ャッシュアドレスの選択を行う特定命令を設けておき、 この特定命令の実行により、各CPUとも、同一の試験
対象キャッシュアドレスを選択し、このアドレスに、各
CPUに割り振ったシフトバイトを加算した値を求め、
この値により、各CPUから見て、同一キャッシュアド
レスで、かつ、アクセスが重複しないようにしたことを
特徴とする情報処理装置の試験方法。3. A cache coherency test is performed by connecting a plurality of CPUs via a bus and generating a random instruction sequence in the CPU for a multi-CPU information processing apparatus having a cache memory for each CPU. In the test method for an information processing device, a specific instruction for selecting a test target cache address is provided in the random instruction sequence executed by each CPU, and the execution of the specific instruction causes each CPU to execute the same test target cache. An address is selected, and a value obtained by adding a shift byte allocated to each CPU to this address is obtained.
A test method for an information processing apparatus, characterized in that the same cache address and the same access are not duplicated when viewed from each CPU by using this value.
キャッシュメモリを備えたマルチCPU構成の情報処理
装置を対象とし、前記CPU内でランダム命令列を生成
してキャッシュコヒーレンシィ試験を行う情報処理装置
の試験方法において、 生成したランダム命令列を別の空間に複写する処理と、 両方のランダム命令空間に対して、論理アドレスが等し
く、物理アドレスが異なるアドレス変換テーブルを作成
し、該テーブルに異なるコンテキスト値を定義する処理
と、 初期値として、コンテキストに値を設定し、或る論理ア
ドレスから試験を開始させる処理と、 或る割り込みを契機に、命令の論理アドレスを前記アド
レス変換テーブルから選択し、この値にランダム命令内
アドレスを命令カウンタに設定する処理と、 或る割り込みを契機に、コンテキストの値を切り換える
ことにより、論理アドレスの命令カウンタは変わらず
に、物理アドレスのみ変更できるようにする処理とを有
し、 前記処理により、ランダム命令列を頭から順次実行し、
かつ実行空間のみ変化させることで、命令キャッシュの
キャッシュコヒーレンシィ試験を可能にしたことを特徴
とする情報処理装置の試験方法。4. A cache coherency test in which a plurality of CPUs are connected by a bus and a random instruction sequence is generated in said CPU for a multi-CPU information processing apparatus having a cache memory for each CPU. In the test method of the information processing apparatus, a process of copying the generated random instruction sequence to another space, and creating an address translation table having the same logical address and different physical address for both random instruction spaces, A process of defining a different context value as an initial value, a process of setting a value to a context as an initial value, and starting a test from a certain logical address, and a certain interrupt triggering the logical address of an instruction from the address conversion table. Select and set the address in the random instruction to the instruction counter to this value. The machine, by switching the value of the context, the unchanged instruction counter of the logical address, and a process to be able to change only the physical address, by the process, sequentially perform a random instruction sequence from the beginning,
A test method for an information processing apparatus, wherein a cache coherency test of an instruction cache is enabled by changing only an execution space.
キャッシュメモリを備えたマルチCPU構成の情報処理
装置を対象とし、前記CPU内で、ベースレジスタの値
に、インデックスレジスタの値、或いはディスプレース
メント値を加算して、アクセス命令のオペランドアドレ
スを生成することにより、ランダム命令列を生成してキ
ャッシュコヒーレンシィ試験を行う情報処理装置に、 前記ランダム命令列で生成されるアクセス命令のオペラ
ンドアドレスを指すベースレジスタの値を各CPU毎に
一定値づつずらした値に設定する手順と、 前記オペランドアドレスのインデックス部を指すインデ
ックスレジスタの値と、前記オペランドアドレス内のデ
ィスプレースメント値を予め規定しておく手順と、 を実行させるためのプログラムを記録したコンピュータ
読み取り可能な記録媒体。5. A multi-CPU information processing device in which a plurality of CPUs are connected by a bus and each CPU is provided with a cache memory. In the CPU, a base register value, an index register value, or By adding a displacement value and generating an operand address of an access instruction, an information processing apparatus that generates a random instruction sequence and performs a cache coherency test is provided with an operand address of an access instruction generated by the random instruction sequence. Setting the value of the base register pointing to a value shifted by a constant value for each CPU; and predefining the value of the index register pointing to the index part of the operand address and the displacement value in the operand address. And the program to execute Computer readable recording medium.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP22819599A JP3954248B2 (en) | 1999-08-12 | 1999-08-12 | Testing method for information processing apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP22819599A JP3954248B2 (en) | 1999-08-12 | 1999-08-12 | Testing method for information processing apparatus |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001051965A true JP2001051965A (en) | 2001-02-23 |
JP3954248B2 JP3954248B2 (en) | 2007-08-08 |
Family
ID=16872702
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP22819599A Expired - Fee Related JP3954248B2 (en) | 1999-08-12 | 1999-08-12 | Testing method for information processing apparatus |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3954248B2 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7398515B2 (en) | 2003-07-16 | 2008-07-08 | International Business Machines Corporation | Buckets of commands in a multiprocessor-based verification environment |
JP2011192211A (en) * | 2010-03-16 | 2011-09-29 | Fujitsu Ltd | Control device, test method, and test program |
US9280475B2 (en) | 2013-05-28 | 2016-03-08 | Fujitsu Limited | Variable updating device and variable updating method |
CN118069580A (en) * | 2024-04-22 | 2024-05-24 | 江苏华存电子科技有限公司 | Synchronization method for recording information by using two ping-pong caches through double CPUs |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5181699B2 (en) * | 2008-01-31 | 2013-04-10 | 富士通株式会社 | Computer test method, program, and information processing apparatus |
-
1999
- 1999-08-12 JP JP22819599A patent/JP3954248B2/en not_active Expired - Fee Related
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7398515B2 (en) | 2003-07-16 | 2008-07-08 | International Business Machines Corporation | Buckets of commands in a multiprocessor-based verification environment |
US8196111B2 (en) | 2003-07-16 | 2012-06-05 | International Business Machines Corporation | Buckets of commands in a multiprocessor-based verification environment |
JP2011192211A (en) * | 2010-03-16 | 2011-09-29 | Fujitsu Ltd | Control device, test method, and test program |
US9280475B2 (en) | 2013-05-28 | 2016-03-08 | Fujitsu Limited | Variable updating device and variable updating method |
CN118069580A (en) * | 2024-04-22 | 2024-05-24 | 江苏华存电子科技有限公司 | Synchronization method for recording information by using two ping-pong caches through double CPUs |
Also Published As
Publication number | Publication date |
---|---|
JP3954248B2 (en) | 2007-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7533246B2 (en) | Application program execution enhancing instruction set generation for coprocessor and code conversion with marking for function call translation | |
JP4220469B2 (en) | RAM processor cache memory for boot code execution | |
CN106155577B (en) | Access method, equipment and the system of exented memory | |
US5617553A (en) | Computer system which switches bus protocols and controls the writing of a dirty page bit of an address translation buffer | |
IE990754A1 (en) | An apparatus for software initiated prefetch and method therefor | |
JP5733385B2 (en) | Endian conversion method and system | |
US5604889A (en) | Memory management system for checkpointed logic simulator with increased locality of data | |
GB2443298A (en) | Cache memory with tag memory bypass circuit | |
US6560676B1 (en) | Cache memory system having a replace way limitation circuit and a processor | |
JP2002251321A (en) | Cache memory system device | |
JPH10293720A (en) | Cache coherency mechanism in computer system, and method for changing coherency state of cache content about item held in main memory | |
KR20200107997A (en) | Multi guard tag setting command | |
US7676774B2 (en) | System LSI verification system and system LSI verification method | |
JP3764405B2 (en) | Debugging apparatus and debugging method | |
JP2001051965A (en) | Testing method for information processor and recording medium | |
JP2002032264A (en) | Cache memory device and central processing unit using the same | |
JPH0916472A (en) | Method for testing cache memory | |
EP3759606B1 (en) | An apparatus and method for accessing metadata when debugging a device | |
US6862675B1 (en) | Microprocessor and device including memory units with different physical addresses | |
Thorington et al. | An adaptive replacement algorithm for paged-memory computer systems | |
Grevtsev et al. | Multicore processor models verification in the early stages | |
JP5469106B2 (en) | Computer system, test apparatus, test method, and test program | |
JP4116346B2 (en) | Arithmetic processing device and address conversion method thereof | |
JP3424430B2 (en) | Processor | |
Jifeng et al. | Design and verification of a coherent shared memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040701 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050412 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20060404 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060606 |
|
A911 | Transfer of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20060707 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070320 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070326 |
|
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: 20070424 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070426 |
|
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: 20100511 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110511 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120511 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130511 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140511 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |