JP2003015968A - バスシミュレータ - Google Patents

バスシミュレータ

Info

Publication number
JP2003015968A
JP2003015968A JP2001198539A JP2001198539A JP2003015968A JP 2003015968 A JP2003015968 A JP 2003015968A JP 2001198539 A JP2001198539 A JP 2001198539A JP 2001198539 A JP2001198539 A JP 2001198539A JP 2003015968 A JP2003015968 A JP 2003015968A
Authority
JP
Japan
Prior art keywords
bus
data
transaction
module
state
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.)
Withdrawn
Application number
JP2001198539A
Other languages
English (en)
Inventor
Yoshihisa Saito
美寿 齋藤
Shigetoshi Wakayama
繁俊 若山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2001198539A priority Critical patent/JP2003015968A/ja
Publication of JP2003015968A publication Critical patent/JP2003015968A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【課題】本発明は、バスの構成をフレキシブルに変える
ことが可能なバスシミュレータを提供することを目的と
する。 【解決手段】バスシミュレータは、バスへのバストラン
ザクションの発行及びバスからのバストランザクション
の受信の少なくとも一方を実行するモジュールと、バス
に発行されたバストランザクションを記録するテーブル
を含みテーブルからバストランザクションを選択するこ
とでバス調停を実行し選択されたバストランザクション
を発行先モジュールに転送するバス部を含み、バストラ
ンザクションを表現するデータ構造はバストランザクシ
ョン間で共通の項目を含み、共通項目は少なくとも発行
元モジュールを識別する項目及び発行先モジュールを識
別する項目を含む。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は一般にシミュレータ
に関し、詳しくは、メモリサイクル及びバスサイクル精
度の高いバスシミュレータに関する。
【0002】
【従来の技術】LSI技術の高度化に伴い、システムの
広範囲な部分を単一のLSIに出来るようになってきて
いる。LSI上にシステムを構成するにあたって重要な
役割を担うのが、各リソース間の情報のやり取りを媒介
するバスである。
【0003】従来、バス設計をする場合には、必要とさ
れるバンド幅の条件や設計者の経験等に基づいて、バス
幅やバス形態等を決定していた。リアルタイム性が必要
とされるプログラム開発では、プロセッサのシミュレー
タについては高いサイクル精度で動作するものがある
が、バス部分まで含めてサイクル精度が高いシミュレー
ションを高速に実行できるものはない。
【0004】例えば特許公報第2663893には、プ
ロセッサ等に用いられるアーキテクチャシミュレータが
開示されている。このシミュレータの場合、バス部はバ
ス遅延情報をハードウェア毎に用意することになり、バ
スサイクルに関しては高い精度を実現出来るものではな
い。またバス形態やパラメータを変更することを想定し
ていないため、バスの構成が変わればシミュレータを作
り直す必要がある。
【0005】一方、バスの構成を評価する従来の技術と
しては、特開平10−340251に開示の技術があ
る。この方式では、バスの調停モデルにバス内モジュー
ルからリクエストを発行し、調停後グラントを返し、グ
ラントを受け取ったモジュールが動作権を得て動作する
ことでバス動作をシミュレートしている。この方式では
バスプロトコルをリクエスト、グラントに統一すること
で、細かな制御信号等を削除して、汎用性を出す工夫を
している。この方式では、バス調停そのものは抽象化さ
れているが、モジュール動作は各固有動作を行う。
【0006】
【発明が解決しようとする課題】特開平10−3402
51の方式では調停の仕方を変えることで複数のバス形
態を実現できるが、ハードウェアのバスに近いプロトコ
ル(リクエスト、グラント)を用いており、ハードウェ
アの信号に近い形のシミュレーションである。このた
め、バストランザクションが開始してから終了するまで
のトランザクション全体の情報や、そのトランザクショ
ンが新たなトランザクションを生み出した場合に新規ト
ランザクションまで含めた全ての情報を集めることが難
しい。つまり、シミュレータで得られた結果を、有効に
利用することが難しい。
【0007】例えばバスにプロセッサが接続されている
場合、プロセッサの性能を調べるためには、プロセッサ
のある命令を実行して、動作の推移を逐次調べていく必
要がある。即ち例えば、ある命令がバスのトランザクシ
ョンを生成し、そのトランザクション終了後の結果をプ
ロセッサに返すような場合、この命令から追跡して、そ
れに関わるキャッシュやバス等の動作を全て把握する必
要がある。しかし特開平10−340251の方式で
は、こうした情報を把握して、プロセッサの性能評価に
利用することは難しい。
【0008】このような動的な情報を利用できるのであ
れば、ソフトウェア開発時において、ソフトウェア開発
者は、バスのレイテンシや競合の有無等の情報に基づい
てシステムを最適化することができる。またハードウェ
アのアーキテクチャ設計の面からも、ハードウェア構成
上ボトルネックになっている箇所とソフトウェア処理と
の関連が分かるため、ターゲットとするアプリケーショ
ンに即してハードウェアを最適化すること等が可能とな
る。
【0009】更に特開平10−340251の方式で
は、シミュレーションの形態がハードウェアの信号に近
いために、リクエスト・グラント方式とは異なるバス構
成、例えばビジー制御によるバス構成等の実現が難し
く、柔軟性が十分でない。またバスパラメータやアーキ
テクチャを設定する方法がない。
【0010】以上を鑑みて、本発明は、バスの構成をフ
レキシブルに変えることが可能なバスシミュレータを提
供することを目的とする。
【0011】
【課題を解決するための手段】本発明によるバスシミュ
レータは、バスへのバストランザクションの発行及び該
バスからのバストランザクションの受信の少なくとも一
方を実行するモジュールと、該バスに発行された該バス
トランザクションを記録するテーブルを含み該テーブル
からバストランザクションを選択することでバス調停を
実行し該選択されたバストランザクションを発行先モジ
ュールに転送するバス部を含み、該バストランザクショ
ンを表現するデータ構造は該バストランザクション間で
共通の項目を含み、該共通項目は少なくとも発行元モジ
ュールを識別する項目及び発行先モジュールを識別する
項目を含むことを特徴とする。
【0012】上記発明では、バストランザクションを選
択して発行先に渡すことで、このトランザクションに関
して、バスへの発行、バス内での調停、発行先への到達
をシミュレーション表現できる。このようにトランザク
ションを選択して発行先に渡すことは、実際のハードウ
ェアにおいて、複数のリクエストがバス内モジュールか
らバスに発行されたときに、その中の一つにバス権を与
えることに相当する。即ち、調停によりバス権を選択的
に付与するのと同じことを、抽象的にシミュレーション
によって実現することが出来る。これにより、バス部に
おけるデータ調停に相当する選択処理を種々の異なった
方式で実行することが容易となり、複数種類のバスを容
易に実現することができる。この際、各モジュールは、
バスを表現するテーブルにバストランザクションを発行
する機能と、そのテーブルからバストランザクションを
受け取る機能を備えればよい。従って、テーブルでの選
択の仕方即ちバスの種類に変更があっても、各モジュー
ルには変更を加える必要はない。このようにして本発明
では、バスの形態をシミュレーション実行単位で容易に
変更することが可能となる。
【0013】
【発明の実施の形態】以下に、本発明の実施例を添付の
図面を用いて詳細に説明する。
【0014】図1は、トランザクションを表現するデー
タ構造の一部を示す図である。
【0015】本発明においては、図1に示されるように
データ構造としてバスのトランザクションを表現する。
このように、リクエスト及びグラントのようなハードウ
ェア依存のバスプロトコルに関する情報ではなく、バス
トランザクションやメモリトランザクションといった一
連の動き全体を纏めてデータ構造として与えることで、
トランザクションの抽象化を行い、バスの抽象化を実現
することが出来る。この結果、任意のバス形態及びパラ
メータ設定に対する柔軟性、更にトランザクションが纏
まっていることによる容易なボトルネック解析を提供す
ることが出来る。
【0016】一連のバストランザクションは、バスへの
コマンド発行、コマンド調停、コマンドの発行元受取、
バスへのデータ発行、データ調停、データの発行先受取
等を含む。このトランザクションを図1に示されるよう
なデータ構造で表現し、バストランザクションの情報に
関してバスモジュール発行元への依存性をなくすため
に、発行元モジュールを識別するメンバ、発行先モジュ
ールを識別するメンバ等の共通メンバをデータ構造内に
設ける。ここで共通メンバとは、異なる種類のトランザ
クションであっても全てのトランザクションに共通して
設けられるメンバである。このような共通メンバを設け
ることによって、統一的なバストランクションの調停が
可能になる。
【0017】図2は、図1のデータ構造を用いたバスト
ランザクションの概念を示す図である。
【0018】図1のデータ構造をもつトランザクション
を、バス部を表現するテーブルに入れることがバスへの
リクエスト発行に相当する。そのテーブル内にエントリ
がある場合はバスにリクエストが存在する状態であり、
エントリが無い場合はリクエストが存在しない状態であ
る。当該テーブル内にエントリが一つだけ存在する場合
には、それを選択する。選択されたトランザクションの
データ構造において、発行先モジュールを表現するメン
バを参照し、発行先のバス内モジュールを特定する。特
定されたバス内モジュールに対して、本発明のデータ構
造を有するトランザクションを渡す。
【0019】バステーブル内にエントリが複数ある場合
には、優先順位に従って、当該データ構造を有するトラ
ンザクションを一つ選択する。この優先順位は、発行元
モジュールの種類(source_module)、発行先モジュー
ルの種類(destination_module)、トランザクションの
バスへの発行時間(time_bus_issue)等に基づいて設定
することが出来る。このように優先順位に従って選択す
る選択行為が、バス部におけるデータ調停に相当する。
この選択を種々の異なった方式で実行することで、複数
種類のバスを実現することができる。
【0020】上述のようにしてトランザクションを選択
して発行先に渡すことで、このトランザクションに関し
て、バスへの発行、バス内での調停、発行先への到達を
シミュレーション表現できる。このようにトランザクシ
ョンを選択して発行先に渡すことは、実際のハードウェ
アにおいて、複数のリクエストがバス内モジュールから
バスに発行されたときに、その中の一つにバス権を与え
ることに相当する。即ち、調停によりバス権を選択的に
付与するのと同じことを、抽象的にシミュレーションに
よって実現している。
【0021】バス内モジュールは、本発明のデータ構造
を有するトランザクションを、バスを表現するテーブル
に発行する機能と、そのテーブルから当該データ構造を
有するトランザクションを受け取る機能を備えればよ
い。従って、テーブルでの選択の仕方即ちバスの種類に
変更があっても、バス内モジュールには変更を加える必
要はない。
【0022】図3は、優勢順位テーブルの構成例を示す
図である。
【0023】バス部に発行されたトランザクションは、
バスを表現するテーブルにリンクされる。このバスのテ
ーブルからトランザクションを選択するための優先順位
の決定を、優先順位を記載したテーブルを参照して実行
することが出来る。図3は、そのような優先順位を記載
したテーブルをポインタによるリンクで模式的に示した
図である。このテーブルは初期化時に設定可能であり、
またテーブル内の順序をシミュレーション中に動的に変
える機構をもたせてもよい。シミュレータは、このテー
ブルに登録される優先順位とトランザクションデータ構
造内に記載されている発行元モジュールや発行先モジュ
ールとを比べて、優先順位の高いトランザクションを選
択する。
【0024】図4乃至図6は、優先順位に従って選択す
る選択行為を種々の異なった方式で実行することで、複
数種類のバスを実現する様子を説明するための図であ
る。
【0025】図4は、1本のバスで構成される場合のバ
ストランザクション選択を示す図である。
【0026】図4に示されるように、バス部に発行され
たトランザクションがリンクされたバス内テーブルか
ら、優先順位テーブルに記載された優先順位に従って、
一つのトランザクションを選択する。これは即ち、実際
のハードウェアにおいて、複数のリクエストがモジュー
ルから1本のバスに発行されたときに、その中の一つに
バス権を与えることに相当する。
【0027】図5は、複数のバスで構成される場合のバ
ストランザクション選択を示す図である。
【0028】図5に示されるように、バス部に発行され
たトランザクションがリンクされたバス内テーブルか
ら、優先順位テーブルに記載された優先順位に従って、
最大n個のトランザクションを選択する。これは即ち、
実際のハードウェアにおいて、複数のリクエストがモジ
ュールから複数本(n本)のバスに発行されたときに、
その中から最大n個のリクエストにバス権を与えるのと
同じことを抽象的に実現している。
【0029】図6は、クロスバー構成のバスの場合につ
いてバストランザクション選択を示す図である。
【0030】クロスバー構成のバスは、概念的には、縦
方向に一列に配置されたモジュールと横方向に一列に配
置されたモジュールとの間で、バスが縦横に二次元配列
された構成であり、縦方向のバスと横方向のバスを辿る
ことで、任意のモジュールから任意のモジュールに接続
することが出来る。クロスバー構成のバスにおいては、
転送先が異なる複数のリクエスト間には衝突はないが、
転送先が同一である複数のリクエスト間では衝突するた
め一つのリクエストを選択するよう調停する必要があ
る。
【0031】図6に示されるように、バス部のテーブル
内にエントリがあるとき、まずエントリ(トランザクシ
ョン)を発行先毎に分けたテーブルを生成する。発行先
毎に分けたテーブルから、発行先別に用意した優先順位
テーブルに記載された優先順位に従ってトランザクショ
ンを選択する。この選択したトランザクションを発行先
に渡す。このように発行先ごとに調停を行うことで、発
行先が受け取り可能な状態の場合には、一つの選択され
たトランザクションを受け取ることができる。また、発
行先が異なるトランザクション同士の間では、互いに影
響し合うことはない。
【0032】図7は、転送データの状態を表現するデー
タ構造のメンバを有するトランザクションのデータ構造
を示す図である。
【0033】図7に示されるトランザクションデータ構
造は、共通メンバとして少なくともバス内モジュールの
発行元モジュールを識別するメンバ、発行先モジュール
を識別するメンバを有し、更に転送データの状態を表現
するデータ構造を持つメンバ(data_state)を有する。
【0034】その転送データの状態を表現するメンバは
少なくともバースト数分(MAX_BURST_LENGTH)のフィー
ルドを備え、各フィールドは転送データの状態を保持す
る。その状態には少なくとも、「データ発行元にあ
る」、「バス内にある」、「データ発行先にある」とい
う3つの状態がある。このフィールドを「データ発行元
にある」から開始して、「バス内にある」、更に「デー
タ発行先にある」の順で遷移させることによってバース
ト内の各データを転送する。
【0035】図8は、図7のデータ構造を用いた場合の
データのバス転送を示す。
【0036】データを表現するメンバは、先頭のデータ
と共に、バス内を発行元から発行先に転送される。後続
のバーストデータは、各バーストデータを表すフィール
ドの状態を遷移していくことで、データの転送を表現す
ることが出来る。
【0037】以下に、本発明によるバスシミュレータの
動作フローを詳細に説明する。
【0038】図9は、本発明によるバスシミュレータの
動作を示すフローチャートである。図9には、各サイク
ルでトランザクションが処理されていく様子についての
概要を示す。バス形態としては、スプリットバス(コマ
ンドとデータとが別々に調停される構成)でバス本数が
1本の場合を例としている。なお図面左にある@cycle
n、@cycle n+1、等は、シミュレーション上でのクロッ
クサイクルを示す。
【0039】ステップS1で、request(command)を、so
urce module からcommand busへ発行する。
【0040】ステップS2で、request(command)をcomm
and bus 内で調停・選択し、更に選択されたrequest を
destination へ発行する。
【0041】ステップS3で、request(command)を受け
取ったdestination の動作を実行する。
【0042】ステップS4で、Read reply data を(当
該request に関する)destination module からbus へ発
行する。これをburst 長分繰り返す。
【0043】ステップS5で、Read reply data をbus
から(当該request に関する)sourcemodule へ発行す
る。これをburst 長分繰り返す。
【0044】ステップS6で、Write data を(当該requ
est に関する)source module からbus へ発行する。こ
れをburst 長分繰り返す。
【0045】ステップS7で、Write data をbus から
(当該request に関する)destinationmodule へ発行す
る。これをburst 長分繰り返す。
【0046】図10は、図9のcycle nでのrequest(com
mand)発行モジュール(ステップS1)での動作フロー
を示す。この処理は、各モジュールにおいて独立に実行
されるものであり、図10には、例えばモジュールAで
のリクエスト発行処理をしめす。
【0047】ステップS1で、bus に発行したいreques
t はあるか判定する。NOならステップS4に進む。
【0048】ステップS2で、module A 内先行の自mod
ule からのrequest がバスに残っているか(=bus 内tab
le_1 に先行request があるか)を判定する。YESな
らステップS4に進む。
【0049】ステップS3で、request をbus に発行す
る(=bus 内table_1 用にtransaction をenqueueす
る)。
【0050】ステップS4で、本cycle でのmodule A
からのrequest 発行routine を終了する。
【0051】図11は、図9のcycle n+1(ステップS
2)でのbus内table_1(request(command))用バス内テ
ーブルの動作フローを示す。
【0052】ステップS1で、bus 内にrequest(transa
ction)があるか(=bus 内table_1にtransactionがある
か)を判定する。NOであれば、ステップS5に進む。
【0053】ステップS2で、transaction を選択す
る。
【0054】ステップS3で、選択したtransaction 内
のdestination 情報を読み取る。
【0055】ステップS4で、選択したtransaction を
destination module に発行 (=bus内table_1からtrans
action をdequeue し、destination module 内queue_1
にtransaction をenqueue)する。
【0056】ステップS5で、本cycle でのbus 内tabl
e_1 での動作routine を終了する。
【0057】図12は、図9のステップS3でのコマン
ドを受け取ったmoduleの動作を示すフローチャートであ
る。transactionがキューにあるか判定し(ステップS
1)、transactionを選択し(ステップS2)、transac
tionがReadであるかWriteであるかを判定する(ステッ
プS3)。Readコマンドであった場合には各モジュール
特有のRead シーケンスが起動する(ステップS4)。R
eadシーケンスは基本的には、モジュールや他のコマン
ドとの干渉によって決定され、あるレイテンシ後Read r
eplyデータが用意される。Writeコマンドであった場合
には、Writeシーケンスが起動される(ステップS
5)。Writeシーケンスは基本的には、コマンド発行元
からのWriteデータを待ち、各モジュール特有のWrite動
作を行う。
【0058】図13は、図12のステップS4のRead
シーケンスの一部に相当し、コマンド受取側モジュール
(= data発行側モジュール)からのバスへのリードリプ
ライデータの発行フローを示す。
【0059】Reply dataがあるかを判定し(ステップS
1)、YESであれば、更にバス内に本モジュールから
の先行read reply dataがあるかを判定する(ステップ
S2)。YESであれば処理を終了する。
【0060】ステップS3で、リードデータの先頭(バ
ーストデータの先頭)がバスに発行される場合と、リー
ドデータの後続(バーストデータの後続)の場合とを判
別する。リードデータの先頭(バーストデータの先頭)を
バスに発行する場合の動作が、ステップS4乃至S6で
実行される。リードデータの後続(バーストデータの後
続)をバスに発行する場合の動作が、ステップS7及び
S8で実行される。リードデータはdata_transactionと
して図中に示されている。 またバーストデータ転送を
表現するために、data_transactionのメンバとしてdata
_no_of_in_busを使用する。
【0061】ステップS9で、このデータは該data_tra
nsaction の最後尾データか否かを判定する。NOの場
合には、ステップS11に進む。
【0062】ステップS10で、destination module
内data_queue2 から当該data_transaction をdequeue
する。
【0063】ステップS11で、本サイクルでのdestin
ation module からのread reply 動作を終了する。
【0064】図14は、Read dataのバス内table_2 (Re
ad data 用table)の動作フローを示す。図14の処理
で、Read dataのバス内での調停及びデータ転送を行
う。リードデータはdata_transactionとして示される。
またバーストデータ転送を表現するために、data_trans
actionのメンバとしてdata_no_of_in_data_accept_modu
leを使用する。
【0065】ステップS1で、bus 内にread reply dat
a があるか(=bus 内table_2 にdata_transaction があ
るか)を判定する。NOの場合は、本cycle でのbus 内
table_2 での動作routine を終了する。
【0066】ステップS2で、新規にdata_transaction
を選択できるか(すなわちread data bus 占有flag が
bus 本数未満か)を判定する。YESならステップS3
に進み、NOならステップS10に進む。
【0067】ステップS3で、(data_state[ 0] == IN
_DATA_BUS)であるdata_transaction を優先順位に従い
選択する。
【0068】ステップS4で、当該data_transaction
をdata accept module に発行する(すなわち当該data_
transaction をdata accept module 内のqueue_2 にenq
ueue する)。
【0069】ステップS5で、当該data_transaction
のdata_state を更新し、data_transaction->data_no_o
f_data_accept_module を1に設定する(すなわちdata_
state[ data_transaction->data_no_of_data_accept_mo
dule] =DATA_IN_ACCEPT_MODULE;data_transaction->dat
a_no_of_data_accept_module =1;とする)。
【0070】ステップS6で、当該data_transaction
内の最後のdataであるか否かを判定する。YESであれ
ば、ステップS7及びS8で、当該data_transaction
をbus内table_2 からdequeue して、read data bus 占
有flag は変更しない。ステップS6でNOであれば、
ステップS9において、read data bus 占有flag を+
1する。
【0071】ステップS10で、先頭データをdata acc
ept module に発行済のdata_transaction はあるか(す
なわち data__state[ 0] ==IN_DATA_ACCEPT_MODULE で
あるdata_transaction があるか)を判定する。NOの
場合は、本cycle でのbus 内table_2 での動作routine
を終了する。
【0072】ステップS11で、当該data_transaction
のdata_state を更新し、data_transaction->data_no_
of_data_accept_module を+1する(すなわちdata_sta
te[data_transaction->data_no_of_data_accept_modul
e] =DATA_IN_ACCEPT_MODULE;++data_transaction->data
_no_of_data_accept_module;とする)。
【0073】ステップS12で、当該data_transaction
内の最後のdataであるか判定する。NOの場合は、ス
テップS10に戻る。ステップS10では、bus 内tabl
e_2内の次のエントリについて操作を繰り返す。これら
の動作をbus 内table_2 内のエントリについて一周分行
う。
【0074】ステップS13で、当該data_transaction
をbus 内table_2 からdequeue する。
【0075】ステップS14で、read data bus 占有fl
ag を−1する。その後、処理はステップS10に戻
る。ステップS10では、bus 内table_2 内の次のエン
トリについて操作を繰り返す。これらの動作をbus 内ta
ble_2 内のエントリについて一周分行う。
【0076】図15は、図12のステップS5のWrite
シーケンスの一部に相当し、Write時のコマンド発行側
モジュール(= data発行側モジュール)からのバスへの
ライトデータの発行フローを示す。
【0077】Write dataがあるかを判定し(ステップS
1)、YESであれば、更にバス内に本モジュールから
の先行write dataがあるかを判定する(ステップS
2)。YESであれば処理を終了する。
【0078】ステップS3で、ライトデータの先頭(バ
ーストデータの先頭)がバスに発行される場合と、ライ
トデータの後続(バーストデータの後続)の場合とを判
別する。ライトデータの先頭(バーストデータの先頭)を
バスに発行する場合の動作が、ステップS4乃至S6で
実行される。ライトデータの後続(バーストデータの後
続)をバスに発行する場合の動作が、ステップS7及び
S8で実行される。ライトデータはdata_transactionと
して図中に示されている。またバーストデータ転送を表
現するために、data_transactionのメンバとしてdata_n
o_of_in_busを使用する。
【0079】ステップS9で、このデータは該data_tra
nsaction の最後尾データか否かを判定する。NOの場
合には、ステップS11に進む。
【0080】ステップS10で、destination module
内data_queue3 から当該data_transaction をdequeue
する。
【0081】ステップS11で、本サイクルでのsource
moduleからのwrite動作を終了する。
【0082】図16は、Write dataのバス内table_3 (W
rite data 用table)の動作フローを示す。この処理で、
Write dataのバス内での調停及びデータ転送を行う。ラ
イトデータはdata_transactionとして示される。またバ
ーストデータ転送を表現するために、data_transaction
のメンバとしてdata_no_of_in_data_accept_moduleを使
用する。
【0083】ステップS1で、bus 内にwrite data が
あるか(=bus 内table_3 にdata_transaction がある
か)を判定する。NOの場合は、本cycle でのbus 内ta
ble_3での動作routine を終了する。
【0084】ステップS2で、新規にdata_transaction
を選択できるか(すなわちwrite data bus 占有flag
がbus 本数未満か)を判定する。YESならステップS
3に進み、NOならステップS10に進む。
【0085】ステップS3で、(data_state[ 0] == IN
_DATA_BUS)であるdata_transaction を優先順位に従い
選択する。
【0086】ステップS4で、当該data_transaction
をdata accept module に発行する(すなわち当該data_
transaction をdata accept module 内のqueue_3 にenq
ueue する)。
【0087】ステップS5で、当該data_transaction
のdata_state を更新し、data_transaction->data_no_o
f_data_accept_module を1に設定する(すなわちdata_
state[ data_transaction->data_no_of_data_accept_mo
dule] =DATA_IN_ACCEPT_MODULE;data_transaction->dat
a_no_of_data_accept_module =1;とする)。
【0088】ステップS6で、当該data_transaction
内の最後のdataであるか否かを判定する。YESであれ
ば、ステップS7及びS8で、当該data_transaction
をbus内table_3 からdequeue して、write data bus 占
有flag は変更しない。ステップS6でNOであれば、
ステップS9において、write data bus 占有flag を+
1する。
【0089】ステップS10で、先頭データをdata acc
ept module に発行済のdata_transaction はあるか(す
なわち data__state[ 0] ==IN_DATA_ACCEPT_MODULE で
あるdata_transaction があるか)を判定する。NOの
場合は、本cycle でのbus 内table_3 での動作routine
を終了する。
【0090】ステップS11で、当該data_transaction
のdata_state を更新し、data_transaction->data_no_
of_data_accept_module を+1する(すなわちdata_sta
te[data_transaction->data_no_of_data_accept_modul
e] =DATA_IN_ACCEPT_MODULE;++data_transaction->data
_no_of_data_accept_module;とする)。
【0091】ステップS12で、当該data_transaction
内の最後のdataであるか判定する。NOの場合は、ス
テップS10に戻る。ステップS10では、bus 内tabl
e_3内の次のエントリについて操作を繰り返す。この操
作はbus 内table_3 内のエントリについて一周分行う。
【0092】ステップS13で、当該data_transaction
をbus 内table_3 からdequeue する。
【0093】ステップS14で、write data bus 占有f
lag を−1する。その後、処理はステップS10に戻
る。ステップS10では、bus 内table_3 内の次のエン
トリについて操作を繰り返す。この操作はbus 内table_
3 内のエントリについて一周分行う。
【0094】図9乃至16は、あるトランザクションに
注目しその処理の流れを説明している。しかし実際の動
作においては、シミュレータはハードウェアをシミュレ
ートしているために、全てのバス内オペレーションが並
列に動作する。
【0095】図17は、スプリットバスの場合のシミュ
レータの構成の例を示す図である。(a)にはバス内各
モジュールの構成が示され、(b)にはバス部の構成が
示される。各モジュール10−1乃至10−nは、ソー
スモジュール部分11と、デスティネーションモジュー
ル部分12を含む。ソースモジュール部分11は、リク
エスト発行部13、Writeデータ発行部14、Readデー
タ受取部15を含む。またデスティネーションモジュー
ル部分12は、リクエスト受取部16、Writeデータ受
取部17、Readデータ発行部18を含む。またバス部2
0は、リクエストテーブル21(table_1)、リードデ
ータテーブル22(table_2)、及びライトデータテー
ブル23(table_3)を含む。
【0096】各モジュールの各部分及びバス部の各部分
は関数であり、サイクル毎に並列に動作する。トランザ
クションはオブジェクトとしてバス内を移動しながら、
各部分における関数により動作する。
【0097】図18は、シミュレータの動作の仕方を示
す図である。
【0098】ソフトウェアはハードウェアと異なり実際
にはシーケンシャルに記述される。従って図18のよう
に、あるクロックサイクルにおいて各関数を逐次動作さ
せて、その後次のクロックサイクルに設定し、更に各関
数を逐次動作させるという動作を順次繰り返す。これに
よって、サイクル内(同一クロック内)での擬似的な並
列動作を実現することが出来る。
【0099】図19は、本発明のバスシミュレータを実
行する際の構成の一例を示す図である。
【0100】図19では、プロセッササイクルアキュレ
ットシミュレータ31とキャッシュシミュレータ32と
が、本発明によるバスシミュレータ30に接続される。
バスシミュレータ30から見ると、プロセッサシミュレ
ータ31はキャッシュシミュレータ32を介してバスシ
ミュレータ30につながっており、キャッシュシミュレ
ータ32がバス内モジュールの一つとなる。またバスシ
ミュレータ30にはバス内モジュールとしてメモリコン
トローラ33とIOコントローラ34とがつながる。メ
モリコントローラ33はその内部にメモリモデル33a
を備え、その制御はハードウェアをシミュレートしたも
のである。またIOコントローラ34は外部バス35を
備える。これらの構成は、バスアーキテクチャファイル
内に記載される情報であり、各々のシミュレーション単
位で自由に変更することが可能である。図20は、本発
明によるバスシミュレータとインプット及びアウトプッ
トを示す模式図である。
【0101】シミュレータ40は、コンピュータにより
実現され、具体的にはRAMに格納されたシミュレータ
プログラムをCPUが実行することにより実現される。
シミュレータプログラムは、例えば、フロッピー(登録
商標)ディスク、CD−ROM、CD、メモリカード、
或いはネットワーク上のリモートサイトに存在するスト
レージ等の記憶媒体46によって提供される。このシミ
ュレータプログラムをコンピュータのメモリにロードし
てシミュレーションを実行する。
【0102】まず初期化時に、シミュレータ40にバス
アーキテクチャ情報44を取り込むことにより、バスの
構成及びバス内モジュールの種類と個数が設定される。
バスアーキテクチャ情報44には、バス幅等パラメータ
系の情報も含まれている。その後シミュレータ40の実
行開始をすると、データ部41からはシミュレーション
対象のデータ情報、プロセッサ部42からはシミュレー
ション対象の命令情報が与えられる。また、外部からの
IOアクセスに対応するデータとして、トランザクショ
ンがIOアクセス情報ファイル43から供給される。シ
ミュレータ40による実行の結果が、実行結果ファイル
45に出力される。実行結果ファイル45に出力される
情報には、プロセッサの命令実行結果、実行サイクル
数、バスアクセスを生じる命令毎のバスでの遅延情報、
命令フェッチに関わるバスでの遅延情報、バス内トラン
ザクションの干渉やレイテンシ情報が含まれる。更に、
IOからのトランザクションの遅延情報や、バス内のト
ランザクションの干渉情報が出力される。
【0103】図21は、本発明によるバスアーキテクチ
ャファイルの一部を示す図である。
【0104】図21に示されるように、バス形態情報、
バス内パラメータ(バス幅、周波数比等)、バスでのレ
イテンシ情報、バスにつながるバス内モジュールの種
類、バスにつながるバス内モジュール数等のバスに関わ
る情報が、バスアーキテクチャファイルに含まれる。シ
ミュレーション時に、このファイルの情報をシミュレー
タ内に取り込み、バス形態、パラメータ、レイテンシ、
バスにつながるバス内モジュール種、バスにつながるバ
ス内モジュール数、バス調停に関わる優先順位情報等バ
スに関わる情報を設定し、その設定情報に従ってシミュ
レータが動作する。
【0105】このバスアーキテクチャファイルの内容を
変更することによって、他の部分に特に修正を施すこと
なく、シミュレーション対象のバス構成やバス調停の優
先順位等を自由に変更することが出来る。
【0106】図22は、本発明によるバストランザクシ
ョンを表現するデータ構造の例を示す図である。
【0107】図22に示されるように、本発明によるバ
ストランザクションを表現するデータ構造には、トラン
ザクション発行元モジュールタイプ、トランザクション
発行元モジュールID、トランザクション発行先モジュ
ールタイプ、トランザクション発行先モジュールIDの
メンバが含まれる。また、トランザクションのデータサ
イズ、READ/WRITEの属性をあらわすメンバ、トランザク
ションの対象アドレスが設けられる。また、データ転送
をつかさどるメンバ(“rdata”及び“wdata”)のリン
クノードを有する。
【0108】更に、本発明によるバストランザクション
を表現するデータ構造は、バス内でのイベントがおきた
時間を記録するメンバ(event_information)を含む。
従って、ハードウェアでは個々に分離されてしまうバス
トランザクション内の動作を、一括して管理することが
できる。このイベント情報はシミュレーションを実行中
にトランザクションが進行するにつれて、リアルタイム
で更新されていく。この情報を用いればトランザクショ
ンが何時発生して、バス内の競合により滞留した時間、
発行先で消費した時間等の情報が分かる。これらの情報
を使用すれば、ボトルネックの部分の把握ができ、ハー
ドウェア構成の最適化、アプリケーションソフトウェア
の最適化が可能になる。
【0109】図23は、本発明によるバスアーキテクチ
ャファイルの具体例を示す図である。このバスアーキテ
クチャファイルは、バスが一本であり、コマンドとデー
タが一体になったインターロックバスを示す。図24
は、図23のバスアーキテクチャファイルによって実現
されるバス構成を概念的に示す。
【0110】図25は、バス構造がインターロック型で
ある場合においてバストランザクションの動作の一例を
示す図である。
【0111】バス内モジュールでトランザクションを発
行し(サイクル0)、バス内トランザクションテーブル
に発行されたトランザクションをリンクする(サイクル
1)。バス内トランザクションテーブルからトランザク
ションを選択し、そのトランザクションを発行先に渡す
(サイクル2)。そのトランザクションと同時又は一定
レイテンシ後(これらの設定はパラメータで規定され
る)に、データ転送を表現するメンバ(データトランザ
クション)を発行元から発行先に渡す(サイクル3)。
その後サイクルが進むごとにメンバ内の転送データの状
態を、「データ発行元にある」状態から、「バス内にあ
る」状態、更に「データ発行先にある」状態に遷移させ
ていくことで、データ転送を表現する。最後のデータま
で転送完了状態になったら、再びトランザクションをリ
ンクしているテーブルから次のトランザクションを選択
し、データ転送を開始する。
【0112】図26は、本発明によるバスアーキテクチ
ャファイルの別の具体例を示す図である。このバスアー
キテクチャファイルは、バスが一本であり、コマンドと
データとを独立に動作させるスプリットバスに相当す
る。データに関しては、read/writeが共通バスである構
成となっている。図27は、図26のバスアーキテクチ
ャファイルによって実現されるバス構成を概念的に示
す。図28(a)は、図26のバスアーキテクチャファ
イルによって実現されるバストランザクション動作を示
し、コマンド系の動作に相当する。図28(b)は、図
26のバスアーキテクチャファイルによって実現される
データトランザクション動作を示し、データ系の動作に
相当する。
【0113】上記の構成では、データ転送に関して、ト
ランザクション内の転送データを表現するデータ構造を
有するメンバ(データトランザクション)をリンクでき
るテーブルをバス部に設け、そのテーブルをリードデー
タ及びライトデータで共用する。
【0114】図29は、バス構造がスプリット型である
場合においてバストランザクションの動作の一例を示す
図である。
【0115】コマンド系のトランザクションを管理する
テーブルとは別に、データ転送に関して、トランザクシ
ョン内の転送データを表現するデータ構造を有するメン
バ(データトランザクション)をリンクできるテーブル
をバス部に設ける。また、データ選択用の優先順位を記
載したテーブルも別途設ける。この形態で、トランザク
ションがバス内モジュールからバスへ発行されると、そ
のトランザクションは、バスへ発行されたトランザクシ
ョンをリンクするテーブルに入れられる。そのテーブル
から優先順位テーブル内の優先順位にしたがいトランザ
クションを選択し、選択したトランザクションを発行先
に渡す。このとき受取先ではコマンドのリクエストが来
たと解釈する。このときデータの転送は起動されない。
【0116】上記選択されたトランザクションが発行先
に渡ったあと、データ発行元(ライトならトランザクシ
ョン発行元、リードならトランザクション発行先)か
ら、データトランザクションを上記データトランザクシ
ョン用のバス内テーブルに発行する(サイクル1)。こ
のときこのデータトランザクションの先頭データを表す
フィールドのデータの状態は「データ発行元にある」状
態から「バス内にある」状態に遷移する。データトラン
ザクション用のバス内テーブルから、トランザクション
の場合と同様に、別途用意した優先順位テーブルに記載
された優先順位に従い、データトランザクションを表現
するデータ構造を選択し、データ発行先に渡す(サイク
ル2)。このとき先頭データの状態は「バス内にある」
状態から「データ発行先」にある状態に遷移する。も
し、このデータトランザクションが後続のデータ転送を
伴っている場合には直後のデータから順番に「バス内に
ある」状態から「データ発行先にある」状態にサイクル
を追うごとに遷移していき、後続データ転送を行う。最
後のデータまで転送完了状態になったら、再びバスから
発行されたトランザクションをリンクしているテーブル
から次のトランザクションを選択し、データ転送を開始
する。
【0117】図30は、本発明によるバスアーキテクチ
ャファイルの一例を示す図である。このバスアーキテク
チャファイルは、バスが1本(1セット:コマンドバ
ス、リードデータバス、ライトデータバス)であり、コ
マンドとデータを独立に動作させるスプリットバスに相
当する。データに関してはread/write夫々が、独立のバ
スである構成となっている。図31は、図30のバスア
ーキテクチャファイルによって実現されるバス構成を概
念的に示す。図32(a)は、図31のバスアーキテク
チャファイルによって実現されるバストランザクション
動作を示し、コマンド系の動作に相当する。図32
(b)は、図31のバスアーキテクチャファイルによっ
て実現されるデータトランザクション動作を示し、リー
ドデータ系の動作に相当する。更に図32(c)は、図
31のバスアーキテクチャファイルによって実現される
データトランザクション動作を示し、ライトデータ系の
動作に相当する。
【0118】上記構成では、データ転送に関して、トラ
ンザクション内の転送データを表現するデータ構造を有
するメンバ(データトランザクション)をリンクできる
テーブルをバス部に設け、そのテーブルをリードデータ
用とライトデータ用とに別々に用意し、更に、データト
ランザクションの選択用の優先順位テーブルもリードデ
ータ用とライトデータ用とで別々に設ける。リードデー
タに関しては、リードデータトランザクションのテーブ
ルから、リードデータ用の優先順位テーブルに記載され
る優先順位に従って選択する。ライトデータに関して
は、ライトデータトランザクションのテーブルから、ラ
イトデータ用の優先順位テーブルに記載される優先順位
に従って選択する。
【0119】図33及び図34は、本発明によるバスア
ーキテクチャファイルの一例を示す図である。このバス
アーキテクチャファイルは、バスの形態がクロスバーで
あり、且つスプリットバスでリード/ライトが独立動作
する構成である。図35は、図33及び34のバスアー
キテクチャファイルによって実現されるバス構成を概念
的に示す。図35に示されるように、バスには、4つの
メモリコントローラと一つのIOが接続される。更にI
キャッシュとDキャッシュとがバスに接続される。プロ
セッサは、このキャッシュを介してバスとやり取りをす
る。この場合、コマンド系、リードデータ系、及びライ
トデータ系のトランザクション動作は、全て図6に示さ
れるトランザクションの流れと同様である。
【0120】図36は、本発明によるバスアーキテクチ
ャファイルの一例を示す図である。このバスアーキテク
チャファイルは、バスが2本(2セット:コマンドバス
x2、リードデータバスx2、ライトデータバスx2)
であり、コマンドとデータを独立に動作させるスプリッ
トバスに相当する。データに関してはread/write夫々
が、独立のバスである構成となっている。またマルチプ
ロセッサであり2次キャッシュが設けられる構成となっ
ている。図37は、図36のバスアーキテクチャファイ
ルによって実現されるバス構成を概念的に示す。バスに
は2つのプロセッサと一つの2次キャッシュが接続さ
れ、更に、メモリコントローラとIOとが一つづつ接続
される。図38(a)は、図36のバスアーキテクチャ
ファイルによって実現されるバストランザクション動作
を示し、コマンド系の動作に相当する。図38(b)
は、図36のバスアーキテクチャファイルによって実現
されるデータトランザクション動作を示し、リードデー
タ系の動作に相当する。更に図38(c)は、図36の
バスアーキテクチャファイルによって実現されるデータ
トランザクション動作を示し、ライトデータ系の動作に
相当する。
【0121】以下に、本発明の第2の実施例を説明す
る。
【0122】図39は、本発明の第2の実施例によるト
ランザクションのデータ構造の一部を示す。
【0123】当該データ構造には、トランザクション発
行元モジュールタイプ、トランザクション発行元モジュ
ールID、トランザクション発行先モジュールタイプ、
トランザクション発行先モジュールIDのメンバが含ま
れる。また、トランザクションのデータサイズ、READ/W
RITEの属性をあらわすメンバ、及びトランザクションの
対象アドレスが設けられる。更に、データ転送をつかさ
どるメンバ“rdata”“wdata”のリンクノードを有す
る。また、このトランザクションに関連するトランザク
ションを示すリンクノード prev_relation及びnext_rel
ationが設けられ、このノードを使用することで、関連
するトランザクション同士はlist構造を構成するように
リンクされる。このリンクノードを辿れば、お互いに関
係するトランザクションを知ることができる。また更
に、トランザクションIDメンバが設けられ、トランザ
クションの発生順に順次IDがアサインされる。これに
よって、一連のトランザクションを発生順にトレースす
ることができる。
【0124】互いに関連するトランザクションとして
は、例えば、DMA転送が複数のトランザクションに分
割される場合の各トランザクションが考えられる。例え
ば、図40のようなバス構成で、DMAコントローラ1
00によってDMA転送する場合を想定する。適切な形
にアーキテクチャファイルを記述することで、図40の
バス構成を実現することができる。
【0125】図40において、バス110にはIキャッ
シュ101及びDキャッシュ102が接続され、これら
のキャッシュ経由でプロセッサ103がバス110に接
続される。バス110には更に、メモリコントローラ1
04、IOユニット105、及びDMAコントローラ10
0が接続される。
【0126】図40の構成において、プロセッサ103
がDMAコントローラ100内のDMAレジスタを設定
すると、DMAが起動する。例えば、256バイトのデ
ータをメモリコントローラ104に繋がるDRAMから
リードし、IOユニット105に出力するためにDMA
を起動する。ここで、この場合のバス構成では、最大転
送サイズが64バイトであると想定する。
【0127】図41は、DMAオペレーションの処理の
流れを示す図である。DMAコントローラ100は、2
56バイトのアクセスを4つのアクセスに分割する。ト
ランザクションとしては8個に分割される。CPU10
3がDMA起動をリクエストすると(ステップS1)、
DMAコントローラ100がメモリコントローラ104
を介して64バイトをDRAMから読み出し(ステップ
S2:トランザクション1)、読み出した64バイトデ
ータをIOユニット105にライトする(ステップS
3:トランザクション2)。この動作を4回繰り返すこ
とで、256バイトのアクセスを4つのアクセスに分割
して実行する。
【0128】図42は、トランザクションのリンク及び
ID割り当ての様子を示す。図42に示されるように、
トランザクションは発生した順にリンクさせ、その順番
にIDが割り当てられる。このようなリンク構造を使用
することで、DMA動作が開始されてから終わるまでの
一連の動作をトレースすることができる。実際にはこの
DMA動作の間に他のバスアクセスが入ってくるため
に、単純に8回連続するわけではない。従って、このよ
うに関連するトランザクションを一括して管理できる方
法が提供されていないと、上記8個のトランザクション
は独立した別個のものとして扱われ、トレースすること
ができないことになる。
【0129】なお上記本発明の説明において、データ構
造はC言語でインプリメントされているが、言語はこれ
に限定されるものではない。
【0130】以上、本発明を実施例に基づいて説明した
が、本発明は上記実施例に限定されるものではなく、特
許請求の範囲に記載の範囲内で様々な変形が可能であ
る。
【0131】
【発明の効果】本発明は、バスの動作をハードウェアに
即して容易にかつ忠実に表現する手段を提供する。従っ
て、バスの構成に関わらず高いサイクル精度のシミュレ
ーション結果が得られる。またバスの形態やパラメータ
をシミュレーション実行単位で容易に変更することが可
能な手段を提供する。
【0132】またハードウェアとは独立してトランザク
ション単位でデータ管理をすることで、リクエスト・グ
ラント論理以外の例えばビジー制御に基づいたバス構成
等の実現が容易であるだけでなく、シミュレーション実
行後のボトルネックの解析や、これを用いたアーキテク
チャ、アプリケーションソフトウェアの最適化が可能と
なる。
【図面の簡単な説明】
【図1】トランザクションを表現するデータ構造の一部
を示す図である。
【図2】図1のデータ構造を用いたバストランザクショ
ンの概念を示す図である
【図3】優勢順位テーブルの構成例を示す図である。
【図4】1本のバスで構成される場合のバストランザク
ション選択を示す図である。
【図5】複数のバスで構成される場合のバストランザク
ション選択を示す図である。
【図6】クロスバー構成のバスの場合についてバストラ
ンザクション選択を示す図である。
【図7】転送データの状態を表現するデータ構造のメン
バを有するトランザクションのデータ構造を示す図であ
る。
【図8】図7のデータ構造を用いた場合のデータのバス
転送を示す図である。
【図9】本発明によるバスシミュレータの動作を示すフ
ローチャートである。
【図10】図9のcycle nでのrequest発行モジュールで
の動作フローを示す図である。
【図11】図9のcycle n+1でのバス内テーブルの動作
フローを示す図である。
【図12】図9のステップS3でのコマンドを受け取っ
たmoduleの動作を示すフローチャートである。
【図13】図12のステップS4のRead シーケンスの
一部に相当し、コマンド受取側モジュールからのバスへ
のリードリプライデータの発行フローを示す図である。
【図14】Read dataのバス内table_2の動作フローを示
す図である。
【図15】図12のステップS5のWrite シーケンスの
一部に相当し、Write時のコマンド発行側モジュールか
らのバスへのライトデータの発行フローを示す図であ
る。
【図16】Write dataのバス内table_3の動作フローを
示す図である。
【図17】スプリットバスの場合のシミュレータの構成
の例を示す図である。
【図18】シミュレータの動作の仕方を示す図である。
【図19】本発明のバスシミュレータを実行する際の構
成の一例を示す図である。
【図20】本発明によるバスシミュレータとインプット
及びアウトプットを示す模式図である。
【図21】本発明によるバスアーキテクチャファイルの
一部を示す図である。
【図22】本発明によるバストランザクションを表現す
るデータ構造の例を示す図である。
【図23】本発明によるバスアーキテクチャファイルの
具体例を示す図である。
【図24】図23のバスアーキテクチャファイルによっ
て実現されるバス構成を概念的に示す図である。
【図25】バス構造がインターロック型である場合にお
いてバストランザクションの動作の一例を示す図であ
る。
【図26】本発明によるバスアーキテクチャファイルの
別の具体例を示す図である。
【図27】図26のバスアーキテクチャファイルによっ
て実現されるバス構成を概念的に示す図である。
【図28】(a)は、図26のバスアーキテクチャファ
イルによって実現されるバストランザクション動作を示
し、(b)は、図26のバスアーキテクチャファイルに
よって実現されるデータトランザクション動作を示す図
である。
【図29】バス構造がスプリット型である場合において
バストランザクションの動作の一例を示す図である。
【図30】本発明によるバスアーキテクチャファイルの
一例を示す図である。
【図31】図30のバスアーキテクチャファイルによっ
て実現されるバス構成を概念的に示す図である。
【図32】(a)は、図31のバスアーキテクチャファ
イルによって実現されるバストランザクション動作を示
し、(b)は、図31のバスアーキテクチャファイルに
よって実現されるリードデータトランザクション動作を
示し、(c)は、図31のバスアーキテクチャファイル
によって実現されるライトデータトランザクション動作
を示す図である。
【図33】本発明によるバスアーキテクチャファイルの
一例を示す図である。
【図34】本発明によるバスアーキテクチャファイルの
一例を示す図である。
【図35】図33及び34のバスアーキテクチャファイ
ルによって実現されるバス構成を概念的に示す図であ
る。
【図36】本発明によるバスアーキテクチャファイルの
一例を示す図である。
【図37】図36のバスアーキテクチャファイルによっ
て実現されるバス構成を概念的に示す図である。
【図38】(a)は、図36のバスアーキテクチャファ
イルによって実現されるバストランザクション動作を示
し、(b)は、図36のバスアーキテクチャファイルに
よって実現されるリードデータトランザクション動作を
示し、(c)は、図36のバスアーキテクチャファイル
によって実現されるライトデータトランザクション動作
を示す図である。
【図39】本発明の第2の実施例によるトランザクショ
ンのデータ構造の一部を示す図である。
【図40】DMAコントローラが設けられるバス構造の
一例を示す図である。
【図41】DMAオペレーションの処理の流れを示す図
である。
【図42】トランザクションのリンク及びID割り当て
の様子を示す図である。
【符号の説明】
11 ソースモジュール部分 12 デスティネーションモジュール 13 リクエスト発行部 14 Writeデータ発行部 15 Readデータ受取部 16 リクエスト受取部 17 Writeデータ受取部 18 Readデータ発行部 20 バス部 21 リクエストテーブル 22 リードデータテーブル 23 ライトデータテーブル
───────────────────────────────────────────────────── フロントページの続き Fターム(参考) 5B046 AA07 JA04 5B083 AA08 CC11 EE11 EE12

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】バスへのバストランザクションの発行及び
    該バスからのバストランザクションの受信の少なくとも
    一方を実行するモジュールと、 該バスに発行された該バストランザクションを記録する
    テーブルを含み該テーブルからバストランザクションを
    選択することでバス調停を実行し該選択されたバストラ
    ンザクションを発行先モジュールに転送するバス部を含
    み、該バストランザクションを表現するデータ構造は該
    バストランザクション間で共通の項目を含み、該共通項
    目は少なくとも発行元モジュールを識別する項目及び発
    行先モジュールを識別する項目を含むことを特徴とする
    バスシミュレータ。
  2. 【請求項2】該バス部は該テーブルからバストランザク
    ションを選択する優先順位を定義する優先順位テーブル
    を含み、該優先順位テーブルを初期化時に設定すると共
    に必要に応じて該優先順位テーブル内の優先順位を動的
    に切り替えることを特徴とする請求項1記載のバスシミ
    ュレータ。
  3. 【請求項3】該バス部は該テーブルから同時に選択する
    バストランザクションの数によって該バスの本数を表現
    することを特徴とする請求項1記載のバスシミュレー
    タ。
  4. 【請求項4】該バス部は、該テーブル内に記録される該
    バストランザクションを発行先毎に複数のグループに分
    け、発行先毎に指定される優先順位に従い該複数のグル
    ープの各々から一つのバストランザクションを選択する
    ことを特徴とする請求項1記載のバスシミュレータ。
  5. 【請求項5】該共通の項目は転送データの状態を表現す
    る項目を更に含み、該転送データの状態を表現する項目
    は転送データ個数分だけのフィールドを含み、各フィー
    ルドは「データ発行元にある」状態、「バス内にある」
    状態、及び「データ発行先にある」状態のいずれかの状
    態を持ち、該状態を遷移させることにより各データを転
    送することを特徴とする請求項1記載のバスシミュレー
    タ。
  6. 【請求項6】該テーブルからバストランザクションを選
    択することで該転送データの転送を開始することを特徴
    とする請求項5記載のバスシミュレータ。
  7. 【請求項7】データ転送元モジュールは該転送データの
    状態を表現する項目を該バス部に発行し、該バス部は該
    バス部に発行された該転送データの状態を表現する項目
    を記録するデータトランザクションテーブルを含み、該
    データトランザクションテーブルから該転送データの状
    態を表現する項目を選択することで転送データの調停を
    実行することを特徴とする請求項5記載のバスシミュレ
    ータ。
  8. 【請求項8】該データトランザクションテーブルがデー
    タ読み出し及びデータ書き込み間で同一であるか或いは
    別々であるかによって異なったバス構成を表現すること
    を特徴とする請求項7記載のバスシミュレータ。
  9. 【請求項9】該データ構造は、バス内でのイベントが起
    きた時間を記録する項目を更に含むことを特徴とする請
    求項1記載のバスシミュレータ。
  10. 【請求項10】該データ構造は関連する他のバストラン
    ザクションを示すリンクを含み、該リンクを介して関連
    する複数のトランザクション同士をlist構造に連結する
    ことを特徴とする請求項1記載のバスシミュレータ。
JP2001198539A 2001-06-29 2001-06-29 バスシミュレータ Withdrawn JP2003015968A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001198539A JP2003015968A (ja) 2001-06-29 2001-06-29 バスシミュレータ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001198539A JP2003015968A (ja) 2001-06-29 2001-06-29 バスシミュレータ

Publications (1)

Publication Number Publication Date
JP2003015968A true JP2003015968A (ja) 2003-01-17

Family

ID=19035971

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001198539A Withdrawn JP2003015968A (ja) 2001-06-29 2001-06-29 バスシミュレータ

Country Status (1)

Country Link
JP (1) JP2003015968A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005044343A (ja) * 2003-06-21 2005-02-17 Samsung Electronics Co Ltd データバス幅を自在に変更する携帯用保存装置及び方法
JP2009093491A (ja) * 2007-10-10 2009-04-30 Fujitsu Ltd 検証シナリオ作成プログラム、該プログラムを記録した記録媒体、検証シナリオ作成装置、および検証シナリオ作成方法
JP2010092106A (ja) * 2008-10-03 2010-04-22 Toshiba Corp アーキテクチャ検証装置
JP2010286885A (ja) * 2009-06-09 2010-12-24 Toshiba Corp アーキテクチャ検証装置
US7865345B2 (en) 2004-09-09 2011-01-04 Canon Kabushiki Kaisha Simulation apparatus and method
CN102681525A (zh) * 2011-03-15 2012-09-19 安凯(广州)微电子技术有限公司 一种转换控制器的验证方法及系统
JP2014528362A (ja) * 2011-10-06 2014-10-27 セラムテック ゲゼルシャフト ミット ベシュレンクテル ハフツングCeramTec GmbH 小型化されたインサート

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005044343A (ja) * 2003-06-21 2005-02-17 Samsung Electronics Co Ltd データバス幅を自在に変更する携帯用保存装置及び方法
JP4579589B2 (ja) * 2003-06-21 2010-11-10 三星電子株式会社 データバス幅を自在に変更する携帯用保存装置及び方法
US7865345B2 (en) 2004-09-09 2011-01-04 Canon Kabushiki Kaisha Simulation apparatus and method
JP2009093491A (ja) * 2007-10-10 2009-04-30 Fujitsu Ltd 検証シナリオ作成プログラム、該プログラムを記録した記録媒体、検証シナリオ作成装置、および検証シナリオ作成方法
JP2010092106A (ja) * 2008-10-03 2010-04-22 Toshiba Corp アーキテクチャ検証装置
JP2010286885A (ja) * 2009-06-09 2010-12-24 Toshiba Corp アーキテクチャ検証装置
CN102681525A (zh) * 2011-03-15 2012-09-19 安凯(广州)微电子技术有限公司 一种转换控制器的验证方法及系统
JP2014528362A (ja) * 2011-10-06 2014-10-27 セラムテック ゲゼルシャフト ミット ベシュレンクテル ハフツングCeramTec GmbH 小型化されたインサート

Similar Documents

Publication Publication Date Title
KR102167058B1 (ko) 칩 밖으로 데이터 송신하기
JP4359377B2 (ja) ハブおよびポートを持つ転送コントローラ・アーキテクチャ
KR101467932B1 (ko) 상호접속부에서 멀티-쓰레드 오더링된 큐들에 대한 공유 저장기
US7487302B2 (en) Service layer architecture for memory access system and method
JP5948628B2 (ja) 記憶システム及び方法
CN102414671B (zh) 对于不同源的分级内存仲裁技术
US7240268B2 (en) Test component and method of operation thereof
US8677045B2 (en) Transaction reordering system and method with protocol indifference
CN101243396B (zh) 用于在虚拟化环境中支持通用串行总线装置的方法和设备
EP0409285B1 (en) Method and apparatus for data transfer between processor elements
US9032162B1 (en) Systems and methods for providing memory controllers with memory access request merging capabilities
US8954644B2 (en) Apparatus and method for controlling memory
JP5895840B2 (ja) マルチプロセッサシステム、実行制御方法、実行制御プログラム
US6507809B1 (en) Method and system for simulating performance of a computer system
US20120239372A1 (en) Efficient discrete event simulation using priority queue tagging
US6681270B1 (en) Effective channel priority processing for transfer controller with hub and ports
US8468006B2 (en) Method of combined simulation of the software and hardware parts of a computer system, and associated system
CN114827048B (zh) 一种动态可配高性能队列调度方法、系统、处理器及协议
JP2003015968A (ja) バスシミュレータ
RU2643622C1 (ru) Вычислительный модуль
US7370139B2 (en) Methods and structures for efficient storage of task file information in serial ATA environments
US20050071145A1 (en) Simulation apparatus, simulation program, and recording medium
JPH08212178A (ja) 並列計算機
Andreozzi et al. A MILP approach to DRAM access worst-case analysis
KR101414453B1 (ko) 메모리 제어장치 및 제어방법, 그리고 그 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20080902