JP2000250957A - Logic simulation device - Google Patents

Logic simulation device

Info

Publication number
JP2000250957A
JP2000250957A JP11052930A JP5293099A JP2000250957A JP 2000250957 A JP2000250957 A JP 2000250957A JP 11052930 A JP11052930 A JP 11052930A JP 5293099 A JP5293099 A JP 5293099A JP 2000250957 A JP2000250957 A JP 2000250957A
Authority
JP
Japan
Prior art keywords
logic
simulator
pseudo
instruction
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP11052930A
Other languages
Japanese (ja)
Inventor
Kaoru Suzuki
薫 鈴木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP11052930A priority Critical patent/JP2000250957A/en
Publication of JP2000250957A publication Critical patent/JP2000250957A/en
Pending legal-status Critical Current

Links

Landscapes

  • Tests Of Electronic Circuits (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

PROBLEM TO BE SOLVED: To execute logic simulation such as a large scale multi-processor system under a condition approximated to actual operation without loading a processor logic file. SOLUTION: A logic simulator 120 to simulate memory control logic at a gate level is linked with an architecture simulator 100 to simulate execution of an instruction at a data transfer level by using a program to be operated on an actual machine. And a function to transfer control to the side of the logic simulator by cyclically executing plural instructions by pseudo advance control and queuing memory requests for an instruction in a memory access system is provided in the architecture simulator 100.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、大規模なマルチプ
ロセッサシステム等の論理シミュレーションに係り、特
に量産プロセッサチップを用いたシステムや大規模なマ
ルチプロセッサ構成のシステム開発等で、プロセッサ論
理ファイルを実装しない状態でシステムシミュレーショ
ンを実現する場合に好適な論理シミュレーション装置に
関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a logic simulation of a large-scale multiprocessor system and the like. The present invention relates to a logic simulation device suitable for realizing a system simulation in a state where no logic simulation is performed.

【0002】[0002]

【従来の技術】従来のマルチプロセッサシステムの論理
シミュレーション方式では、論理シミュレータ又はエミ
ュレータ上にプロセッサ論理(プロセッサ論理ファイ
ル)が実装されている事が前提となっていた。しかし、
市販等の量産プロセッサチップを用いたシステムのセッ
ト開発では、論理シミュレーション段階でプロセッサの
論理ファイルが存在しない場合がある。また、大規模な
マルチプロセッサ構成のシステムをシミュレーション対
象とした場合、対象となる論理ゲート数が論理シミュレ
ータ又はエミュレータに実装出来る論理ゲート数の上限
を越えてしまう為、一定以上のプロセッサ構成では、シ
ステムシミュレーションが実現出来ないか、あるいは、
実装論理ゲート数が増えるにつれてシミュレーション性
能が低下するといった問題が発生する。
2. Description of the Related Art In a conventional logic simulation method of a multiprocessor system, it is assumed that processor logic (processor logic file) is mounted on a logic simulator or emulator. But,
In a set development of a system using a mass-produced processor chip such as a commercially available one, a logic file of a processor may not exist in a logic simulation stage. Also, when a large-scale multiprocessor system is simulated, the number of target logic gates exceeds the upper limit of the number of logic gates that can be implemented in a logic simulator or emulator. If simulation cannot be realized, or
There is a problem that the simulation performance decreases as the number of mounted logic gates increases.

【0003】従来、この様な問題を解決する手法とし
て、プロセッサ論理を実装しない事で全体の実装ゲート
数を減らし、シミュレーション性能向上を図ると共に、
メモリ制御・プロセッサ間ネットワーク論理等の実装規
模を増やす事でシミュレーション対象となるシステム規
模を拡張する方式が提案されている。この方式は、命令
レベルでプログラム実行をシミュレートするアーキテク
チャシミュレータをプロセッサ論理の代わりに論理シミ
ュレータに接続し、アーキテクチャシミュレータと論理
シミュレータを交互にサイクリックに動作させる事で、
大規模な並列プロセッサ等のシステムシミュレーション
を実現するものである。なお、このような論理シミュレ
ーション方式に関しては、例えば特開平8ー96021
号公報に記載されている。
Conventionally, as a method of solving such a problem, not mounting processor logic to reduce the total number of mounted gates and improve simulation performance,
There has been proposed a method of expanding the scale of a system to be simulated by increasing the scale of implementation of memory control and inter-processor network logic. In this method, an architecture simulator that simulates program execution at the instruction level is connected to the logic simulator instead of the processor logic, and the architecture simulator and the logic simulator are operated alternately and cyclically.
This realizes a system simulation of a large-scale parallel processor or the like. Note that such a logic simulation method is described in, for example, JP-A-8-96021.
No., published in Japanese Unexamined Patent Publication No.

【0004】[0004]

【発明が解決しようとする課題】上記従来の方式では、
アーキテクチャシミュレータが実行したメモリアクセス
系命令で発生するメモリリクエスト信号もしくはバスト
ランザクションをメモリ制御論理又はバスに付加し、論
理シミュレータ又はエミュレータを起動する。又、論理
シミュレータ又はエミュレータが任意シミュレーション
サイクルの実行を完了した時点で、アーキテクチャシミ
ュレータが次の命令を実行する。このシーケンスを繰り
返す事でシステムシミュレーションを実現していた。
In the above conventional method,
A memory request signal or a bus transaction generated by a memory access instruction executed by the architecture simulator is added to the memory control logic or bus, and the logic simulator or emulator is started. When the logic simulator or emulator completes execution of an arbitrary simulation cycle, the architecture simulator executes the next instruction. The system simulation was realized by repeating this sequence.

【0005】アーキテクチャシミュレータは、一般的に
パイプラインシミュレータなどとは異なり、データ転送
レベルでプログラムオーダー順に命令を逐次実行する高
速なシミュレータである。上記従来の方式でマルチプロ
セッサシステムのシミュレーションを実施した場合の問
題点は、もしアーキテクチャシミュレータ上のプログラ
ムがメモリリファレンス系命令を発行し、論理シミュレ
ータを起動後、メモリ制御系論理経由でメモリからのリ
プライデータを待っている状態が発生した場合、リプラ
イデータが帰ってくるまで、アーキテクチャシミュレー
タは次命令を実行出来ないことである。これは、アーキ
テクチャシミュレータがパイプライン処理をせず、1シ
ミュレーションサイクルで1命令の処理を完了してしま
う事と、ロードユース(先行するロード命令のターゲッ
トレジスタデータを後続命令で使用するケース)が発生
した場合に誤動作してしまう為である。
[0005] The architecture simulator is generally a high-speed simulator that sequentially executes instructions at the data transfer level in the order of program order, unlike a pipeline simulator or the like. The problem with simulating a multiprocessor system with the conventional method described above is that if the program on the architecture simulator issues a memory reference instruction, activates the logic simulator, and then sends a reply from the memory via the memory control logic. If a state of waiting for data occurs, the architecture simulator cannot execute the next instruction until the reply data returns. This means that the architecture simulator completes processing of one instruction in one simulation cycle without performing pipeline processing, and load use (the case where the target register data of the preceding load instruction is used in the subsequent instruction) occurs. If they do, they will malfunction.

【0006】このように、従来の方式では、メモリリフ
ァレンス系リクエストを単発でしか発行出来ない為、マ
ルチプロセッサ制御、キャッシュ・メモリ制御系論理に
高負荷を与える様な連続したリクエスト列やリクエスト
競合状態を発生させる事が出来ない問題があった。又、
実際のシステム動作と異なるタイミングのシミュレーシ
ョンしか実施できないという問題があった。アーキテク
チャシミュレータをパイプラインシミュレータに置き換
え接続する方法もあるが、パイプラインシミュレータ自
体の開発に多大な工数及び開発期間を費やさねばならな
い。又、論理シミュレータとの接続インタフェースが複
雑になり、パイプラインシミュレータ自体の処理性能も
アーキテクチャシミュレータに比べ非常に低速であるた
め、論理シミュレーション性能が異常に低下する。
As described above, in the conventional method, since the memory reference system request can be issued only in one shot, a continuous request sequence or a request contention state which gives a high load to the multiprocessor control and the cache memory control system logic. There was a problem that could not be generated. or,
There is a problem that only a simulation at a timing different from the actual system operation can be performed. Although there is a method of replacing the architecture simulator with a pipeline simulator and connecting it, a great deal of man-hour and development period must be spent on the development of the pipeline simulator itself. Further, the connection interface with the logic simulator becomes complicated, and the processing performance of the pipeline simulator itself is much lower than that of the architecture simulator, so that the logic simulation performance is abnormally reduced.

【0007】本発明の目的は、これら従来の問題を解決
し、大規模なマルチプロセッサシステム等の論理シミュ
レーションを、プロセッサ論理ファイルを実装しない状
態で、実際の動作に近い高負荷を与えて高速に実施する
ことにある。
SUMMARY OF THE INVENTION An object of the present invention is to solve these conventional problems and to execute a logic simulation of a large-scale multiprocessor system or the like at high speed by applying a high load close to the actual operation without mounting a processor logical file. To implement.

【0008】[0008]

【課題を解決するための手段】本発明は、ゲートレベル
や論理機能レベルでメモリ制御論理をシミュレートする
論理シミュレータとデータ転送レベルで命令実行をシミ
ュレートするアーキテクチャシミュレータを連動させ、
実マシン上で動作するプログラムを用いてマルチプロセ
ッサシステム等の論理シミュレーションを実施する論理
シミュレーションにおいて、アーキテクチャシミュレー
タに、擬似先行制御で複数命令をサイクリックに実行
し、メモリアクセス系命令についてはメモリリクエスト
をキューイングして論理シミュレータ側に制御を渡す機
能を設ける。
According to the present invention, a logic simulator for simulating a memory control logic at a gate level or a logic function level is linked with an architecture simulator for simulating an instruction execution at a data transfer level.
In a logic simulation that performs a logic simulation of a multiprocessor system or the like using a program that runs on a real machine, a plurality of instructions are cyclically executed by an architectural simulator under pseudo-precedence control, and a memory request is issued for a memory access instruction. A function to queue and transfer control to the logic simulator side is provided.

【0009】アーキテクチャシミュレータは、ロードユ
ーズ時の排他制御を実施するために、当該レジスタが有
効無効を示すタグ付き擬似レジスタファイルを備え、対
象命令が使用する擬似レジスタのタグをチェックし、無
効の場合は当該擬似レジスタが有効になるまで待ち処理
に入るようにする。
In order to perform exclusive control at the time of load use, the architecture simulator includes a pseudo register file with a tag indicating whether the register is valid or invalid. Causes the process to wait until the pseudo register becomes valid.

【0010】また、アーキテクチャシミュレータは、メ
モリアクセス系命令のメモリアクセスアドレス計算が完
了した時点で、当該メモリリクエストをキューイング
し、対象擬似レジスタのタグを無効化して、当該メモリ
アクセス系命令の実行を完了し、論理シミュレータ側か
ら当該メモリアクセス系命令のリプライデータを受け取
り、該データを対象擬似レジスタに登録すると、該擬似
レジスタのタグを有効とする。
When the calculation of the memory access address of the memory access instruction is completed, the architecture simulator queues the memory request, invalidates the tag of the target pseudo register, and executes the memory access instruction. Upon completion, the reply data of the memory access instruction is received from the logic simulator side, and when the data is registered in the target pseudo register, the tag of the pseudo register is validated.

【0011】さらに、アーキテクチャシミュレータは、
メモリリクエストキューに登録されているメモリリクエ
ストをキューイング順の他に、場合によってはランダム
に抽出し、論理シミュレータ側に制御を渡す。
Further, the architecture simulator includes:
The memory requests registered in the memory request queue are randomly extracted in some cases in addition to the queuing order, and control is passed to the logic simulator side.

【0012】[0012]

【発明の実施の形態】以下、本発明の一実施例について
図面により説明する。図2は、論理シミュレーション対
象となるシステムの一例の概略構成を示すブロック図で
ある。これは、所謂バス型のSMP構成システムの一例
であり、ノード(#0)200は、ローカルメモリ(L
S#0)201、メモリ制御論理部(SC#0)20
2、プロセッサバス203、及び、該プロセッサバス2
03に接続される各々キャッシュを有する複数のプロセ
ッサ(IP#0〜IP#i)(204)で構成され、該
ノード200はメモリ制御論理部202を介して、同様
の構成のノード(#1)210に接続されているマルチ
プロセッサシステム例である。
DESCRIPTION OF THE PREFERRED EMBODIMENTS One embodiment of the present invention will be described below with reference to the drawings. FIG. 2 is a block diagram illustrating a schematic configuration of an example of a system to be subjected to a logic simulation. This is an example of a so-called bus-type SMP configuration system, and the node (# 0) 200 stores the local memory (L
S # 0) 201, memory control logic unit (SC # 0) 20
2, the processor bus 203, and the processor bus 2
, A plurality of processors (IP # 0 to IP # i) (204) each having a cache connected thereto, and the node 200 has the same configuration via the memory control logic unit 202 as the node (# 1). 2 shows an example of a multiprocessor system connected to the multiprocessor system 210.

【0013】図3は、図2のシステムでメモリアクセス
系動作が発生した場合の動作例を示す図である。いま、
ノード(#0)200上のプロセッサ(IP#0)でメ
モリリードが発生した場合、もし自キャッシュで該当ア
ドレスがヒットした場合、該当データをキャッシュから
読み出す。また、ノード(#1)上のプロセッサ(IP
#n)でデータストアが発生して、該当アドレスが自キ
ャッシュでヒットしなかった場合、バス213に対して
メモリストアのトランザクションが発行され、ストアデ
ータはメモリ制御論理部212を介してローカルメモリ
211に書き込まれる。それと同時に、ノード210、
200内のもし他プロセッサが同一キャッシュアドレス
ライン(ブロック)を持っていた場合、自ノード210
内の他プロセッサに対してはプロセッサバス213を介
して、また、他ノード200内のプロセッサに対しては
メモリ制御論理部212、202を介して、該当キャッ
シュラインのキャンセル要求が該当プロセッサ(IP#
j、IP#iなど)に対して報告され、キャッシュの当
該キャッシュラインが該当プロセッサにより無効化され
る。
FIG. 3 is a diagram showing an example of an operation when a memory access operation occurs in the system of FIG. Now
When a memory read occurs in the processor (IP # 0) on the node (# 0) 200, and when the corresponding address is hit in the own cache, the corresponding data is read from the cache. The processor (IP) on the node (# 1)
If a data store occurs in #n) and the corresponding address does not hit in its own cache, a transaction of a memory store is issued to the bus 213, and the stored data is transferred to the local memory 211 via the memory control logic unit 212. Is written to. At the same time, node 210,
If another processor in 200 has the same cache address line (block), its own node 210
The request for canceling the corresponding cache line is sent to the other processor via the processor bus 213, and to the processor inside the other node 200 via the memory control logic units 212 and 202.
j, IP # i, etc.), and the corresponding cache line of the cache is invalidated by the corresponding processor.

【0014】本発明は、このようなマルチプロセッサシ
ステムにおける動作を、論理シミュレーションにより、
プロセッサ論理ファイルを実装しない状態で、出来る限
り実機に近い動作状態を発生させて検証するものであ
る。
According to the present invention, the operation in such a multiprocessor system is described by a logic simulation.
In the state where the processor logical file is not mounted, an operation state as close as possible to the actual machine is generated and verified.

【0015】図1は、本発明による論理シミュレーショ
ン装置の一実施例を示すブロック図である。アーキテク
チャシミュレータ100は、データ転送レベルで命令実
行をシミュレートするために、擬似キャッシュ101、
擬似アドレス変換バッファ(擬似TLB)102、有効
/無効のタグ付き擬似レジスタファイル103、メモリ
リクエストキュー104、命令を実行する命令処理部1
05、及び、該命令処理部105の起動制御等を行う命
令実行制御部106を具備する。該アーキテクチャシミ
ュレータ100は、図2に示したようなノードの数だけ
存在する。また、一つのアーキテクチャシミュレータ1
00では擬似キャッシュ101、擬似TLB102、タ
グ付き擬似レジスタファイル103及びメモリリクエス
トキュー104は、当該ノード内のプロセッサの数だけ
存在する。なお、メモリリクエストキュー104は、実
際には命令実行制御部106に内蔵されるが、図1では
分かりやすいように外部に示したものである。
FIG. 1 is a block diagram showing an embodiment of a logic simulation apparatus according to the present invention. The architecture simulator 100 includes a pseudo cache 101,
Pseudo address translation buffer (pseudo TLB) 102, valid / invalid pseudo register file 103 with tag, memory request queue 104, instruction processing unit 1 for executing instructions
05, and an instruction execution control unit 106 for controlling activation of the instruction processing unit 105 and the like. There are as many architecture simulators 100 as the number of nodes as shown in FIG. Also, one architecture simulator 1
In 00, the pseudo cache 101, pseudo TLB 102, tagged pseudo register file 103, and memory request queue 104 exist as many as the number of processors in the node. Note that the memory request queue 104 is actually built in the instruction execution control unit 106, but is externally shown in FIG. 1 for easy understanding.

【0016】アーキテクチャシミュレータ100は、ト
ランザクション制御部110を介して論理シミュレータ
120と接続される。トランザクション制御部110
は、アーキテクチャシミュレータ100と論理シミュレ
ータ120間のデータ送受信動作等のバストランザクシ
ョン制御を司るものである。論理シミュレータ120
は、ゲートレベルで論理をシミュレートするサイクルベ
ース又はイベント駆動型回路シミュレータ、あるいは、
論理機能レベルで論理をシミュートするシミュレータで
あり(ここでは、これらを総称して論理シミュレータと
呼ぶ)、各ノードのCSに対応するメモリ制御論理12
1、擬似メモリ130をアクセスするためのメモリ擬似
プロセジャ122を実装している。擬似メモリ130
は、各ノードのLSに対応して複数の領域に分割され、
実機で動作する命令列やデータが格納される。
The architecture simulator 100 is connected to a logic simulator 120 via a transaction control unit 110. Transaction control unit 110
Is responsible for bus transaction control such as data transmission / reception operations between the architecture simulator 100 and the logic simulator 120. Logic simulator 120
Is a cycle-based or event-driven circuit simulator that simulates logic at the gate level, or
This is a simulator that simulates the logic at the logical function level (here, these are collectively called a logic simulator), and the memory control logic 12 corresponding to the CS of each node.
1. A memory pseudo procedure 122 for accessing the pseudo memory 130 is mounted. Pseudo memory 130
Is divided into a plurality of areas corresponding to the LS of each node,
Instruction sequences and data that operate on the actual machine are stored.

【0017】ここで、図1に示したアーキテクチャシミ
ュレータ100、トランザクション制御部110、論理
シミュレータ120及び擬似メモリ130は、実際には
コンピュータ上に構築されるものであることは云うまで
もない。
Here, it goes without saying that the architecture simulator 100, the transaction control unit 110, the logic simulator 120 and the pseudo memory 130 shown in FIG. 1 are actually constructed on a computer.

【0018】図4は、タグ付き擬似レジスタファイル1
03の構成を示す図である。該レジスタファイル103
は、対応プロセッサ(IP)が具備する各レジスタに対
応する擬似レジスタ401、及び、当該擬似レジスタの
有効/無効を示すタグビット402からなる。
FIG. 4 shows a pseudo register file 1 with a tag.
FIG. 3 is a diagram showing a configuration of the third embodiment. The register file 103
Is composed of a pseudo register 401 corresponding to each register included in the corresponding processor (IP), and a tag bit 402 indicating validity / invalidity of the pseudo register.

【0019】図5は、メモリリクエストキュー104の
1エントリのデータ構造例を示す図であり、仮想アドレ
ス、実アドレス、データサイズ、アドレッシングモー
ド、レジスタタイプ(汎用レジスタ、浮動小数点レジス
タ等)レジスタ番号、トランザクションタイプ(リード
動作、ライト動作等)、有効ビット(当該エントリの有
効/無効)、次キューエントリポインタなどからなる。
FIG. 5 is a diagram showing an example of the data structure of one entry of the memory request queue 104, which includes a virtual address, a real address, a data size, an addressing mode, a register type (general purpose register, floating point register, etc.), a register number, It includes a transaction type (read operation, write operation, etc.), a valid bit (valid / invalid of the entry), a next queue entry pointer, and the like.

【0020】後述するように、命令処理部105では、
命令の実行時、当該IP対応のタグ付き擬似レジスタフ
ァイル103内の対応命令が使用する擬似レジスタのタ
グをチエックし、無効の場合は、対象擬似レジスタが有
効になる迄待ち処理に入る。又、キャッシュ時、メモリ
アクセス系命令のメモリアクセスアドレス計算が完了し
た時点で、リクエストIP対応のメモリリクエストキュ
ー104に新規エントリを登録し、当該IP対応のタグ
付き擬似レジスタファイル103の対象擬似レジスタの
タグを無効化して、その時点で当該メモリアクセス系命
令の実行を完了して次命令処理に移る。一方、命令実行
制御部106では、命令処理部105を起動後、メモリ
リクエストキュー104をチエックし、各IPのリクエ
ストを1エントリづつ抽出してトランザクション制御部
110に渡す。又、トランザクション制御部110から
ロードリプライデータを受け取った場合、対象ラインを
該当IPの擬似キャッシュ101に登録すると共に、該
当IPのメモリリクエストキュー104の対象エントリ
に登録されている擬似レジスタにデータを書き込み、そ
のタグを有効とし、メモリリクエストキュー104の対
象エントリを無効化する。
As will be described later, the instruction processing unit 105
When the instruction is executed, the tag of the pseudo register used by the corresponding instruction in the pseudo register file 103 with the tag corresponding to the IP is checked. If the instruction is invalid, the process enters a waiting process until the target pseudo register becomes valid. At the time of caching, when the memory access address calculation of the memory access instruction is completed, a new entry is registered in the memory request queue 104 corresponding to the request IP, and the target pseudo register of the pseudo register file 103 with the tag corresponding to the IP is registered. The tag is invalidated, the execution of the memory access related instruction is completed at that point, and the process proceeds to the next instruction processing. On the other hand, the instruction execution control unit 106 activates the instruction processing unit 105, checks the memory request queue 104, extracts each IP request one entry at a time, and passes it to the transaction control unit 110. When the load reply data is received from the transaction control unit 110, the target line is registered in the pseudo cache 101 of the corresponding IP, and the data is written in the pseudo register registered in the target entry of the memory request queue 104 of the corresponding IP. , The tag is made valid, and the target entry of the memory request queue 104 is invalidated.

【0021】初めに、図6により本論理シミュレーショ
ン装置の全体的な動作を説明する。まず、論理シミュレ
ータ120は、システムの擬似パワーオンリセットなど
を行った後、トランザクション制御部110に制御を渡
し()、トランザクション制御部110は、そのまま
ノード対応のアーキテクチャシミュレータ100に制御
を渡し、アーキテクチャシミュレータ100内の命令実
行制御部106が該制御を受け()、リソース(擬似
キャッシュ101、擬似TLB102、タグ付き擬似レ
ジスタファイル103、メモリリクエストキュー104
等)を初期化する。ここまでが初期シーケンスである。
First, the overall operation of the present logic simulation apparatus will be described with reference to FIG. First, after performing a pseudo power-on reset of the system, the logic simulator 120 passes control to the transaction control unit 110 (), and the transaction control unit 110 passes control to the architecture simulator 100 corresponding to the node as it is, The instruction execution control unit 106 in the control unit 100 receives the control (), and the resources (the pseudo cache 101, the pseudo TLB 102, the pseudo register file with tag 103, the memory request queue 104)
Etc.). This is the initial sequence.

【0022】リソースの初期化後、命令実行制御部10
6は命令処理部105を起動する()。起動制御は、
1シミュレーションサイクル間に複数回実行される。命
令処理部105は、命令実行制御部106から起動を受
けると、命令を処理し、メモリアクセス系命令の場合、
メモリリクエストキュー104にメモリアクセスリクエ
ストを登録し、次命令の処理に移る。ここで、命令処理
部105は、1回の起動制御で、当該ノード内の各IP
についてそれぞれ1命令を処理する。これが、1シミュ
レーションサイクルの間で複数回繰り返される。これに
より、擬似先行制御を可能にしている。
After the resources are initialized, the instruction execution control unit 10
6 activates the instruction processing unit 105 (). Start control is
It is executed multiple times during one simulation cycle. When the instruction processing unit 105 is activated by the instruction execution control unit 106, the instruction processing unit 105 processes the instruction.
The memory access request is registered in the memory request queue 104, and the process proceeds to the next instruction. Here, the command processing unit 105 executes each start control to execute each IP in the node.
Process one instruction each. This is repeated a plurality of times during one simulation cycle. This enables pseudo-precedence control.

【0023】一方、命令実行制御部106は、命令処理
部105の起動が完了すると()、トランザクション
制御部110を起動する()。この時、命令実行制御
部106はメモリリクエストキュー104をチエック
し、キューにエントリが登録されている場合、メモリリ
クエストをトランザクション制御部110に発行する。
トランザクション制御部110は、バストランザクショ
ンデータを生成し、論理シミュレータ100を起動する
()。論理シミュレータ100は擬似メモリ130を
アクセスし、トランザクション制御部110に制御を戻
す()。トランザクション制御部110は命令実行制
御部106を起動し()、メモリリプライデータを渡
す。命令実行制御部106は、メモリリクエストキュー
104の該当エントリの無効化、擬似キャッシュ101
やタグ付き擬似レジスタファイル103への書込みなど
を行った後、再び命令処理部105を起動する()。
以下、処理〜が1シミュレーションサイクル毎に繰
り返される。
On the other hand, when the activation of the instruction processing unit 105 is completed (), the instruction execution control unit 106 activates the transaction control unit 110 (). At this time, the instruction execution control unit 106 checks the memory request queue 104 and issues a memory request to the transaction control unit 110 when an entry is registered in the queue.
The transaction control unit 110 generates bus transaction data and activates the logic simulator 100 (). The logic simulator 100 accesses the pseudo memory 130 and returns control to the transaction control unit 110 (). The transaction control unit 110 activates the instruction execution control unit 106 () and passes the memory reply data. The instruction execution control unit 106 invalidates the corresponding entry in the memory request queue 104,
Then, the instruction processing unit 105 is started again after the writing to the pseudo-register file 103 with tag or the like is performed ().
Hereinafter, the processes (1) to (4) are repeated for each simulation cycle.

【0024】次に、命令処理部105、命令実行制御部
106、トランザクション制御部110の処理について
詳述する。論理シミュレータ120の処理は、従来と基
本的に同様であるため説明は省略する。
Next, the processing of the instruction processing unit 105, the instruction execution control unit 106, and the transaction control unit 110 will be described in detail. The processing of the logic simulator 120 is basically the same as the conventional one, and a description thereof will be omitted.

【0025】図7は、命令処理部105の一実施例の動
作を示すフローチャートであり、1命令の処理に対応す
るものである。命令処理部105は、命令実行アドレス
を取得すると(ステップ700)、アーキテクチャシミ
ュレータ100内の擬似キャッシュ101のタグをチェ
ックし、対象命令アドレスラインが擬似キャッシュ10
1に登録されているか否か判定する(ステップ70
1)。もし、擬似キャッシュ101に未登録の場合は、
擬似メモリ130からの命令ライン転送要求を出す為
に、メモリリクエストキューエントリを作成し(ステッ
プ718)、メモリリクエストキュー104に該エント
リを登録する(ステップ719)。擬似キャッシュ10
1に既に該当命令ラインが登録されている場合は、擬似
キャッシュ101から対象アドレスの命令を読み出し
(ステップ702)、オペコードを解析する(ステップ
703)。次に、メモリアクセス系命令か否か判定し
(ステップ704)、メモリアクセス系命令でなけれ
ば、各命令シミュレート処理を実施する(ステップ70
6)。この時、タグ付き擬似レジスタファイル103を
使用する場合、該当レジスタのタグが無効であれば、有
効になるまで処理が保留となる。
FIG. 7 is a flowchart showing the operation of one embodiment of the instruction processing unit 105, and corresponds to processing of one instruction. When acquiring the instruction execution address (step 700), the instruction processing unit 105 checks the tag of the pseudo cache 101 in the architecture simulator 100 and determines that the target instruction address line is
1 (step 70).
1). If not registered in the pseudo cache 101,
In order to issue an instruction line transfer request from the pseudo memory 130, a memory request queue entry is created (step 718), and the entry is registered in the memory request queue 104 (step 719). Pseudo cache 10
If the corresponding instruction line has already been registered in No. 1, the instruction at the target address is read from the pseudo cache 101 (step 702), and the operation code is analyzed (step 703). Next, it is determined whether or not the instruction is a memory access instruction (step 704). If the instruction is not a memory access instruction, each instruction simulating process is executed (step 70).
6). At this time, when the tag-added pseudo register file 103 is used, if the tag of the register is invalid, the process is suspended until the tag becomes valid.

【0026】メモリアクセス系命令の場合は、メモリア
クセスアドレスを計算し(ステップ705)、擬似キャ
ッシュ101のタグをチェックし、対象オペランドのデ
ータアドレスラインが擬似キャッシュ101に登録され
ているか否か判定する(ステップ707)。擬似キャッ
シュ101に既に該当データラインが登録されている場
合は、擬似キャッシュ101から対象アドレスのデータ
を読み出し(ステップ708)、キャッシュヒットを示
すフラグ(1時的なフラグ)をセット(ステップ70
9)する。該当データラインが擬似キャッシュ2101
に未登録の場合は、対象命令がストア系命令が否か判定
し(ステップ710)、もしストア系命令ならタグ付き
擬似レジスタファイル103からストア対象データを取
得する(ステップ711)。この場合も、該当擬似レジ
スタタグが無効であれば、有効になるまで処理が保留と
なる。ストアデータを取得したなら、ストア対象アドレ
スが擬似キャッシュ101でヒットしたか否か判定し
(ステップ712)、ヒットしていれば、ストア対象デ
ータを擬似キャッシュ101に書き込み、必要があれば
キャッシュタグ情報を更新し(ステップ713)、キャ
ッシュヒットフラグをリセットする(ステップ72
0)。ステップ712でキャッシュヒットしていなけれ
ば、擬似メモリ130からのデータライン転送要求を出
す為に、メモリリクエストキューエントリを作成し(ス
テップ718)、キュー104にエントリを登録する
(ステップ719)。
In the case of a memory access instruction, the memory access address is calculated (step 705), the tag of the pseudo cache 101 is checked, and it is determined whether or not the data address line of the target operand is registered in the pseudo cache 101. (Step 707). If the data line has already been registered in the pseudo cache 101, the data at the target address is read from the pseudo cache 101 (step 708), and a flag indicating a cache hit (temporary flag) is set (step 70).
9). The corresponding data line is a pseudo cache 2101
If not, it is determined whether the target instruction is a store instruction (step 710). If the instruction is a store instruction, the storage target data is acquired from the tagged pseudo register file 103 (step 711). Also in this case, if the corresponding pseudo register tag is invalid, the processing is suspended until it becomes valid. If the store data has been acquired, it is determined whether or not the store target address has hit in the pseudo cache 101 (step 712). If hit, the store target data is written in the pseudo cache 101, and if necessary, the cache tag information Is updated (step 713), and the cache hit flag is reset (step 72).
0). If there is no cache hit in step 712, a memory request queue entry is created to issue a data line transfer request from the pseudo memory 130 (step 718), and the entry is registered in the queue 104 (step 719).

【0027】ステップ710でロード系命令が判定され
た場合、ロードターゲットとなるレジスタの番号を取得
する(ステップ714)。そして、対象データがキャッ
シュでヒットしたか否か判定し(ステップ715)、ヒ
ットしていれば、ロード対象データをタグ付き擬似レジ
スタファイル103に書き込み、対象レジスタタグを有
効とし(ステップ716)、キャッシュヒットフラグを
リセットする(ステップ720)。ステップ716で
も、該当擬似レジスタタグが無効であれば、有効になる
まで書き込みは保留となる。キャッシュヒットしていな
ければ、擬似メモリ130からのデータライン転送要求
を出す為に、擬似レジスタファイル103の対象となる
ターゲットレジスタのタグを無効化し(ステップ71
7)、レジスタデータが確定する迄、この擬似レジスタ
の使用を保留とする。さらに、メモリリクエストキュー
エントリを作成し(ステップ718)、キュー104に
エントリを登録する(ステップ719)。
If a load instruction is determined in step 710, the number of a register to be a load target is obtained (step 714). Then, it is determined whether or not the target data is hit in the cache (step 715). If hit, the load target data is written in the tagged pseudo register file 103, and the target register tag is made valid (step 716). The hit flag is reset (step 720). Also in step 716, if the corresponding pseudo register tag is invalid, writing is suspended until it becomes valid. If there is no cache hit, the tag of the target register in the pseudo register file 103 is invalidated in order to issue a data line transfer request from the pseudo memory 130 (step 71).
7) The use of this pseudo register is suspended until the register data is determined. Further, a memory request queue entry is created (step 718), and the entry is registered in the queue 104 (step 719).

【0028】命令処理部105では、以上の動作をプロ
グラム実行完了まで繰り返す。マルチプロセッサ構成の
システムの場合、擬似キャッシュ101、擬似TLB1
02、擬似レジスタファイル103及びメモリリクエス
トキュー104がプロセッサ台数分用意され、命令処理
部105は、これらリソースを切り替えながら、各プロ
セッサの命令処理を1命令単位でサイクリックに実行す
る。
The instruction processing unit 105 repeats the above operation until the execution of the program is completed. In the case of a system with a multiprocessor configuration, the pseudo cache 101 and the pseudo TLB1
02, the pseudo register files 103 and the memory request queues 104 are prepared by the number of processors, and the instruction processing unit 105 cyclically executes the instruction processing of each processor in units of one instruction while switching these resources.

【0029】図8は、命令処理部105での排他制御の
一実施例の動作を示すフローチャートである。命令処理
部105は、命令をデコードして演算に使用するレジス
タ番号を取得すると(ステップ800)、タグ付き擬似
レジスタファイル103を参照し(ステップ801)、
該当するレジスタタグをチェックする(802)。もし
有効ビットが立っていれば、該当擬似レジスタデータを
取得し(ステップ802)、演算処理に入る(ステップ
803)。もし有効ビットが立っていない場合は、有効
ビットが立つまで、レジスタデータの取得を待つ。な
お、ロード系命令の場合はデータの書き込みを待つ。
FIG. 8 is a flowchart showing the operation of the exclusive control in the instruction processing unit 105 according to an embodiment. When the instruction processing unit 105 decodes the instruction and obtains the register number used for the operation (step 800), the instruction processing unit 105 refers to the tagged pseudo register file 103 (step 801),
The corresponding register tag is checked (802). If the valid bit is set, the corresponding pseudo register data is obtained (step 802), and the operation is started (step 803). If the valid bit is not set, it waits for the register data until the valid bit is set. In the case of a load instruction, the writing of data is waited.

【0030】図9は、命令処理部105の起動時の命令
実行制御部106の一実施例の動作を示すフローチャー
トである。命令実行制御部106は、トランザクション
制御部110より制御を渡され、命令処理部105を起
動する(図6の、)。通常、プロセッサバスとプロ
セッサの周波数差がある為、例えば1バスサイクルが4
プロセッササイクルであった場合、命令処理部105を
4回繰返し起動可能である。命令実行制御部106は命
令処理部105を起動し(ステップ901)、これを所
定回数分繰り返す(ステップ902)。命令処理部10
5の起動が完了すると、トランザクション制御部110
から起動された際にバス権取得IP番号を受け取ってい
ると、それを取得し(ステップ903)、当該IP番号
に対応するプロセッサのメモリリクエストキュー104
の先頭アドレスを取得する(ステップ904)。そし
て、当該メモリリクエストキュー104にエントリが存
在するか否かチェックする(ステップ905)。メモリ
リクエストキュー104にエントリが存在した場合、リ
クエストをプログラミングオーダーで出力するかチェッ
クし(ステップ906)、プログラミングオーダーであ
れば、キューに積まれている先頭エントリを選択し(ス
テップ907)、そうでない場合、登録されているエン
トリの中から乱数的に任意エントリを抽出し(ステップ
908)、トランザクション制御部110から該当トラ
ンザクション(メモリリクエスト)に対するリプライが
返って来た際の識別子としてローカルIDを、該当プロ
セッサのメモリリクエストキュー104における該当エ
ントリに登録する(ステップ909)。キューが空の場
合、または、メモリリクエストへのローカルIDの登録
を完了した時点で、トランザクション制御部110を起
動する(ステップ910)。
FIG. 9 is a flowchart showing the operation of the instruction execution control unit 106 when the instruction processing unit 105 is activated, according to one embodiment. The instruction execution control unit 106 receives control from the transaction control unit 110 and activates the instruction processing unit 105 (in FIG. 6). Usually, since there is a frequency difference between the processor bus and the processor, for example, one bus cycle is four times.
In the case of a processor cycle, the instruction processing unit 105 can be repeatedly activated four times. The instruction execution control unit 106 activates the instruction processing unit 105 (step 901), and repeats this for a predetermined number of times (step 902). Instruction processing unit 10
5 is completed, the transaction control unit 110
If the bus right acquisition IP number has been received at the time of booting from the server, it is acquired (step 903), and the memory request queue 104 of the processor corresponding to the IP number is acquired.
Is obtained (step 904). Then, it is checked whether or not an entry exists in the memory request queue 104 (step 905). If an entry exists in the memory request queue 104, it is checked whether or not the request is output in the programming order (step 906). If the request is in the programming order, the first entry stored in the queue is selected (step 907). In this case, an arbitrary entry is randomly extracted from the registered entries (step 908), and the local ID is used as an identifier when a reply to the transaction (memory request) is returned from the transaction control unit 110, and The corresponding entry is registered in the memory request queue 104 of the processor (step 909). When the queue is empty or when the registration of the local ID in the memory request is completed, the transaction control unit 110 is started (step 910).

【0031】図10は、命令実行制御部106がトラン
ザクション制御部110から制御を受取った際の動作の
一実施例を示すフローチャートである。命令実行制御部
106が起動される際(図6の)、トランザクション
制御部110から、対応するプロセッサ番号、ローカル
ID、リプライアドレス及びデータポインタなどが渡さ
れる(ステップ1000)。命令実行制御部106は、
ローカルIDが0の場合は、他プロセッサリクエストに
付随するキャッシュスヌープリクエストと定義してお
く。このローカルIDをチエックし(ステップ100
1)、もし、ローカルID=0であった場合は、リプラ
イアドレスからキャッシュタグを検索し、該当アドレス
ラインがキャッシュ101に存在するか否かチェックし
(ステップ10003)、存在していた場合、該当キャ
ッシュタグの有効ビットを無効化する(ステップ100
4)。
FIG. 10 is a flowchart showing an embodiment of the operation when the instruction execution control unit 106 receives the control from the transaction control unit 110. When the instruction execution control unit 106 is started (FIG. 6), the corresponding processor number, local ID, reply address, data pointer, and the like are passed from the transaction control unit 110 (step 1000). The instruction execution control unit 106
If the local ID is 0, it is defined as a cache snoop request accompanying another processor request. Check this local ID (step 100
1) If the local ID is 0, a cache tag is searched from the reply address, and it is checked whether or not the corresponding address line exists in the cache 101 (step 10003). Invalidating the valid bit of the cache tag (step 100)
4).

【0032】ローカルIDが0以外だったら、プロセッ
サ番号から対象となるメモリリクエストキュー104を
選択し(ステップ1002)、ローカルIDを使って該
当エントリを検索する(ステップ1005)。そして、
該当エントリから、キャッシュタグポインタを読み出
し、該当キャッシュタグの有効ビットを立て(ステップ
1006)、データを該当キャッシュラインに書き込む
(ステップ1007)。さらに、レジスタタイプとレジ
スタ番号から該当レジスタを判別し、タグ付き擬似レジ
スタファイル103の該当擬似レジスタにデータを書き
込み(ステップ1008)、タグに有効ビットを立てる
(ステップ1009)。全ての処理が完了した後、該当
メモリリクエストキューエントリの有効ビットを落と
し、該エントリを無効化する(ステップ1010)。
If the local ID is other than 0, the target memory request queue 104 is selected from the processor number (step 1002), and the corresponding entry is searched using the local ID (step 1005). And
The cache tag pointer is read from the relevant entry, the valid bit of the relevant cache tag is set (step 1006), and the data is written to the relevant cache line (step 1007). Further, the corresponding register is determined from the register type and the register number, data is written to the corresponding pseudo register of the tagged pseudo register file 103 (step 1008), and an effective bit is set in the tag (step 1009). After all the processes are completed, the valid bit of the corresponding memory request queue entry is dropped and the entry is invalidated (step 1010).

【0033】図11は、トランザクション制御部110
のデータ送受信動作の一実施例を示したフローチャート
である。トランザクション制御部110は、命令実行制
御部106から制御が戻ってくると(図6の)、トラ
ンザクションを生成する為に該当するメモリリクエスト
キューのポインタを取得し(ステップ1100)、キュ
ーエントリに登録されているデータを用いてバストラン
ザクションデータを生成する(ステップ1101)、通
常、複数バイトデータ転送は複数サイクルで完了する
為、バストランザクションデータを実行サイクル分だけ
分割した後(ステップ1102)、1サイクル分のデー
タを論理信号に付加し(ステップ1103)、論理シミ
ュレータ120を起動する(ステップ1104)。1サ
イクル論理実行後、論理シミュレータ120はトランザ
クション制御部110に制御を戻す。トランザクション
制御部110はトランザクションデータの送出が全て完
了する迄、同様の動作を繰り返す(ステップ110
5)。
FIG. 11 shows the transaction control unit 110.
6 is a flowchart showing an example of the data transmission / reception operation of the embodiment. When the control is returned from the instruction execution control unit 106 (FIG. 6), the transaction control unit 110 acquires a pointer of a corresponding memory request queue for generating a transaction (step 1100), and is registered in the queue entry. The bus transaction data is generated using the data (step 1101). Usually, since the transfer of a plurality of bytes is completed in a plurality of cycles, the bus transaction data is divided by the number of execution cycles (step 1102). Is added to the logic signal (step 1103), and the logic simulator 120 is started (step 1104). After executing one cycle of logic, the logic simulator 120 returns control to the transaction control unit 110. The transaction control unit 110 repeats the same operation until transmission of all transaction data is completed (step 110).
5).

【0034】トランザクション制御部110は、バスか
らトランザクションデータを取得した場合(ステップ1
106)、受信データをプログラマブルフォーマットに
データ変換し(ステップ1107)、全ての同一トラン
ザクションデータを取得するまで同様の処理を繰り返す
(ステップ1108)。そして、複数サイクルで受信し
た1トランザクション分のデータをパッキングした後
(ステップ1109)、データポインタを引数に命令実
行制御部106を起動する(1110)。
The transaction control section 110 acquires transaction data from the bus (step 1).
106), the received data is converted into a programmable format (step 1107), and the same processing is repeated until all the same transaction data is obtained (step 1108). Then, after packing one transaction worth of data received in a plurality of cycles (step 1109), the instruction execution control unit 106 is activated with the data pointer as an argument (1110).

【0035】図12は、本発明による論理シミュレーシ
ョン装置の他の実施例を示すブロック図である。これ
は、アーキテクチャシミュレータ100が、擬似キャッ
シュ101、擬似TLB102、タグ付き擬似レジスタ
ファイル103、メモリリクエストキュー104、命令
処理部105、命令実行制御部106、トランザクショ
ン制御部110及び擬似メモリ130をすべて具備する
ようにしたもので、単一ノードマルチプロセッサシステ
ムの論理シミュレーションに適する。本実施例の動作
は、図1の場合と基本的に同様である。
FIG. 12 is a block diagram showing another embodiment of the logic simulation apparatus according to the present invention. The architecture simulator 100 includes a pseudo cache 101, a pseudo TLB 102, a tagged pseudo register file 103, a memory request queue 104, an instruction processing unit 105, an instruction execution control unit 106, a transaction control unit 110, and a pseudo memory 130. This is suitable for logic simulation of a single-node multiprocessor system. The operation of this embodiment is basically the same as that of FIG.

【0036】[0036]

【発明の効果】本発明によれば、論理シミュレータの論
理実装制約を遥かに越える規模のマルチプロセッサ又は
並列プロセッサ構成のシステムシミュレーションを、擬
似先行制御により実動作に近い状態で高速に実施する事
が可能となる。又、プロセッサ論理ファイルが無い状態
でシステムシミュレーションが可能となる為、特に量産
プロセッサチップを用いたシステムの先行開発に有効で
ある。
According to the present invention, a system simulation of a multiprocessor or parallel processor configuration far exceeding the logic implementation restrictions of a logic simulator can be performed at high speed in a state close to actual operation by pseudo-preceding control. It becomes possible. Further, since a system simulation can be performed without a processor logical file, it is particularly effective for advanced development of a system using a mass-produced processor chip.

【図面の簡単な説明】[Brief description of the drawings]

【図1】本発明の論理シミュレーション装置の一実施例
を示したブロック図である。
FIG. 1 is a block diagram showing an embodiment of a logic simulation apparatus according to the present invention.

【図2】シミュレーション対象となるシステムの構成例
を示したブロック図である。
FIG. 2 is a block diagram illustrating a configuration example of a system to be simulated;

【図3】図2のシステムのメモリアクセス系動作の一例
を示した図である。
FIG. 3 is a diagram showing an example of a memory access system operation of the system of FIG. 2;

【図4】タグ付き擬似レジスタファイルの構成例を示す
図である。
FIG. 4 is a diagram showing a configuration example of a pseudo register file with a tag.

【図5】メモリリクエストキューのデータ構造例を示す
図である。
FIG. 5 is a diagram illustrating an example of a data structure of a memory request queue.

【図6】図1の全体的動作を説明するためのシーケンス
図である。
FIG. 6 is a sequence diagram for explaining the overall operation of FIG. 1;

【図7】命令処理部の一実施例の動作フローチャートで
ある。
FIG. 7 is an operation flowchart of an embodiment of an instruction processing unit.

【図8】命令処理部の排他制御の一実施例の動作フロー
チャートである。
FIG. 8 is an operation flowchart of an embodiment of exclusive control of an instruction processing unit.

【図9】命令実行制御部の命令処理部起動に伴う一実施
例の動作フローチャートである。
FIG. 9 is an operation flowchart of an embodiment according to activation of the instruction processing unit of the instruction execution control unit.

【図10】命令実行制御部のトランザクション制御部か
らの起動に伴う一実施例の動作フローチャートである。
FIG. 10 is an operation flowchart of an embodiment according to activation of the instruction execution control unit from the transaction control unit.

【図11】トランザクション制御部のデータ送受信動作
の一実施例を示したフローチャートである。
FIG. 11 is a flowchart showing one embodiment of a data transmission / reception operation of the transaction control unit.

【図12】本発明の論理シミュレーション装置の他の実
施例を示したブロック図である。
FIG. 12 is a block diagram showing another embodiment of the logic simulation apparatus according to the present invention.

【符号の説明】[Explanation of symbols]

100 アーキテクチャシミュレータ 101 擬似キャッシュ 102 擬似TLB 103 タグ付き擬似レジスタファイル 104 メモリリクエストキュー 105 命令処理部 106 命令実行制御部 110 トランザクション制御部 130 擬似メモリ 120 論理シミュレータ 121 メモリ制御論理 122 メモリ擬似プロセジャ REFERENCE SIGNS LIST 100 architecture simulator 101 pseudo cache 102 pseudo TLB 103 pseudo register file with tag 104 memory request queue 105 instruction processing unit 106 instruction execution control unit 110 transaction control unit 130 pseudo memory 120 logic simulator 121 memory control logic 122 memory pseudo processor

Claims (4)

【特許請求の範囲】[Claims] 【請求項1】 メモリ制御論理をシミュレートする論理
シミュレータとデータ転送レベルで命令実行をシミュレ
ートするアーキテクチャシミュレータを連動させ、実マ
シン上で動作するプログラムを用いてプロセッサシステ
ムの論理シミュレーションを実施する装置であって、 アーキテクチャシミュレータは、擬似先行制御で複数命
令をサイクリックに実行し、メモリアクセス系命令につ
いてメモリリクエストをキューイングして論理シミュレ
ータ側に制御を渡す機能を具備していることを特徴とす
る論理シミュレーション装置。
An apparatus for performing a logic simulation of a processor system using a program operating on a real machine by linking a logic simulator for simulating memory control logic and an architecture simulator for simulating instruction execution at a data transfer level. The architecture simulator has a function of cyclically executing a plurality of instructions by pseudo-preceding control, queuing a memory request for a memory access instruction, and passing control to the logic simulator side. Logic simulation device.
【請求項2】 請求項1記載の論理シミュレーション装
置において、アーキテクチャシミュレータは、当該レジ
スタが有効無効を示すタグ付き擬似レジスタファイルを
備え、対象命令が使用する擬似レジスタのタグをチェッ
クし、無効の場合は当該擬似レジスタが有効になるまで
待ち処理に入ることを特徴とする論理シミュレーション
装置。
2. The logic simulator according to claim 1, wherein the architecture simulator includes a tagged pseudo-register file indicating whether the register is valid or invalid, and checks a pseudo-register tag used by the target instruction, and determines whether the register is invalid. Is a logic simulation apparatus which starts waiting until the pseudo register becomes valid.
【請求項3】 請求項2記載の論理シミュレーション装
置において、アーキテクチャシミュレータは、メモリア
クセス系命令のメモリアクセスアドレス計算が完了した
時点で、当該メモリリクエストをキューイングし、対象
擬似レジスタのタグを無効化して、当該メモリアクセス
系命令の実行を完了し、論理シミュレータ側から当該メ
モリアクセス系命令のリプライデータを受け取り、該デ
ータを対象擬似レジスタに登録すると、該擬似レジスタ
のタグを有効とすることを特徴とする論理シミュレーシ
ョン装置。
3. The logic simulator according to claim 2, wherein the architecture simulator queues the memory request when the calculation of the memory access address of the memory access instruction is completed, and invalidates the tag of the target pseudo register. When the execution of the memory access instruction is completed, the reply data of the memory access instruction is received from the logic simulator, and the data is registered in the target pseudo register, the tag of the pseudo register becomes valid. Logic simulation device.
【請求項4】 請求項1、2、3記載の論理シミュレー
ション装置において、アーキテクチャシミュレータは、
メモリリクエストキューに登録されているメモリリクエ
ストをランダムに抽出し、論理シミュレータ側に制御を
渡すことを特徴とする論理シミュレーション装置。
4. The logic simulator according to claim 1, wherein the architecture simulator comprises:
A logic simulation device characterized by randomly extracting a memory request registered in a memory request queue and transferring control to a logic simulator side.
JP11052930A 1999-03-01 1999-03-01 Logic simulation device Pending JP2000250957A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11052930A JP2000250957A (en) 1999-03-01 1999-03-01 Logic simulation device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11052930A JP2000250957A (en) 1999-03-01 1999-03-01 Logic simulation device

Publications (1)

Publication Number Publication Date
JP2000250957A true JP2000250957A (en) 2000-09-14

Family

ID=12928573

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11052930A Pending JP2000250957A (en) 1999-03-01 1999-03-01 Logic simulation device

Country Status (1)

Country Link
JP (1) JP2000250957A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011081623A (en) * 2009-10-07 2011-04-21 Fujitsu Ltd Simulation device, method, and program
JP2011248771A (en) * 2010-05-28 2011-12-08 Fujitsu Ltd Verification support program, logic verification apparatus, and verification support method
US8250545B2 (en) 2002-06-25 2012-08-21 Fujitsu Semiconductor Limited Associated apparatus and method for supporting development of semiconductor device
CN106803296A (en) * 2017-01-12 2017-06-06 南京工程学院 The checking system and method for the current logic of subway gate system that actual situation is combined

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8250545B2 (en) 2002-06-25 2012-08-21 Fujitsu Semiconductor Limited Associated apparatus and method for supporting development of semiconductor device
JP2011081623A (en) * 2009-10-07 2011-04-21 Fujitsu Ltd Simulation device, method, and program
JP2011248771A (en) * 2010-05-28 2011-12-08 Fujitsu Ltd Verification support program, logic verification apparatus, and verification support method
CN106803296A (en) * 2017-01-12 2017-06-06 南京工程学院 The checking system and method for the current logic of subway gate system that actual situation is combined
CN106803296B (en) * 2017-01-12 2019-04-23 南京工程学院 The verifying system and method for the current logic of the subway gate system that actual situation combines

Similar Documents

Publication Publication Date Title
JP3509067B2 (en) Store instruction transfer method and processor
Johns et al. Introduction to the cell broadband engine architecture
US6021261A (en) Method and system for testing a multiprocessor data processing system utilizing a plurality of event tracers
US6266768B1 (en) System and method for permitting out-of-order execution of load instructions
US5805470A (en) Verification of instruction and data fetch resources in a functional model of a speculative out-of order computer system
CN109558168A (en) Low latency accelerator
US5265233A (en) Method and apparatus for providing total and partial store ordering for a memory in multi-processor system
US5815688A (en) Verification of accesses in a functional model of a speculative out-of-order computer system
TW202314486A (en) Processors, methods, systems, and instructions to atomically store to memory data wider than a natively supported data width
CN114580344B (en) Test excitation generation method, verification system and related equipment
JP2000250810A (en) Method, processor and system for executing load instruction
JP2001504957A (en) Memory data aliasing method and apparatus in advanced processor
JP2003044452A (en) Method and system for packaging synchronous memory barrier
US5617553A (en) Computer system which switches bus protocols and controls the writing of a dirty page bit of an address translation buffer
US5751986A (en) Computer system with self-consistent ordering mechanism
JP2003296191A (en) Integrated circuit operable as general purpose processor and processor of peripheral device
CN103885908B (en) Data transmission system and method based on external device and accessible registers
US6301654B1 (en) System and method for permitting out-of-order execution of load and store instructions
JP3155519B2 (en) Method and apparatus for processing a store instruction in a superscalar processor
JP2014520321A (en) Management of operator message buffer for the combined facility
WO1995008799A1 (en) Apparatus and method for emulation routine pointer prefetch
US5408622A (en) Apparatus and method for emulation routine control transfer via host jump instruction creation and insertion
US5794012A (en) Verification of strongly ordered memory accesses in a functional model of an out-of-order computer system
CN103562877B (en) Processing operator message commands
US11748107B2 (en) Complex I/O value prediction for multiple values with physical or virtual addresses

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060913

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061004

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070404