JP2007094986A - シミュレーション装置およびシミュレーション方法 - Google Patents
シミュレーション装置およびシミュレーション方法 Download PDFInfo
- Publication number
- JP2007094986A JP2007094986A JP2005286751A JP2005286751A JP2007094986A JP 2007094986 A JP2007094986 A JP 2007094986A JP 2005286751 A JP2005286751 A JP 2005286751A JP 2005286751 A JP2005286751 A JP 2005286751A JP 2007094986 A JP2007094986 A JP 2007094986A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- unit
- vliw
- information
- simulation apparatus
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Advance Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Debugging And Monitoring (AREA)
Abstract
【課題】処理の高速化を図ることができる。
【解決手段】シミュレーション装置1は、VLIW型プロセッサのシミュレーション装置であり、所定の命令単位毎に構成されるVLIW命令を備えるプログラムファイルを格納する記憶部2と、プログラムファイルを記憶部2から読み出す命令読み出し部3と、読み出したプログラムファイルのVLIW命令をデコードし、その際命令単位内に、相互に干渉する関係を有する命令が存在する場合および例外が発生し得る命令が存在する場合に、それらの命令を識別し得る情報をデコード情報として選択する命令デコード部4と、選択されたデコード情報を保持するデコード情報保持部5と、デコード情報がデコード情報保持部5に格納されているとき、そのデコード情報を利用してVLIW命令を実行する命令実行部6と、を有する。
【選択図】図1
【解決手段】シミュレーション装置1は、VLIW型プロセッサのシミュレーション装置であり、所定の命令単位毎に構成されるVLIW命令を備えるプログラムファイルを格納する記憶部2と、プログラムファイルを記憶部2から読み出す命令読み出し部3と、読み出したプログラムファイルのVLIW命令をデコードし、その際命令単位内に、相互に干渉する関係を有する命令が存在する場合および例外が発生し得る命令が存在する場合に、それらの命令を識別し得る情報をデコード情報として選択する命令デコード部4と、選択されたデコード情報を保持するデコード情報保持部5と、デコード情報がデコード情報保持部5に格納されているとき、そのデコード情報を利用してVLIW命令を実行する命令実行部6と、を有する。
【選択図】図1
Description
本発明はシミュレーション装置およびシミュレーション方法に関し、特に、VLIW型プロセッサのシミュレーション装置およびシミュレーション方法に関する。
例えば、画像データや音声データを処理するディジタル民生機器等においては、そこに搭載されるプロセッサの処理能力が再生時/記録時の画質・音質を大きく左右する。そのため、さらなる高画質・高音質を実現するための、より高速で高性能なプロセッサに対する需要が年々高いものになってきている。
こうしたプロセッサのアーキテクチャーとして採用されることが多いものとしてVLIW(Very Long Instruction Word)方法が知られている。VLIW方法とは、一つの超長命令語中に演算命令、ロード命令、ストア命令、分岐命令等の複数の基本命令を格納しておき、これらの命令をプロセッサ内の複数の機能ユニット(パイプライン)によりそれぞれ並列処理する方法である。換言すれば、プログラムの命令レベルでの並列性を活用して、依存関係にない複数の命令を異なる機能ユニットに割り当て、同時に実行させる方法である。
但し、VLIW方法を採用したプロセッサ(VLIW型プロセッサ)は比較的少数であり、一般に普及しているのは、単一の命令からなる命令語を一つずつ取り出して実行する方式のプロセッサである。そこで、VLIW向けのプログラムの開発環境を提供する意味で、通常のアーキテクチャーのマシンによりVLIWアーキテクチャーのマシンの動作を処理するためのシミュレーション方法が知られている(例えば、特許文献1参照)。
ところで、従来のVLIW型プロセッサのシミュレータを構成する場合、一度各命令の実行結果をテンポラリ領域に保存、全ての命令が実行完了した後にレジスタファイルに書き戻す必要がある。
図5は、シミュレーション方法を行う際のVLIW命令の一例を示す図であり、図6は、図5に示す命令を実行したときの制御フローを説明する図である。
図5では、説明を分かり易くするため、gr1の出現順にgr1a、gr1b、gr1cとする。gr1a、gr1b、gr1cは同じレジスタファイルを指す。
図5では、説明を分かり易くするため、gr1の出現順にgr1a、gr1b、gr1cとする。gr1a、gr1b、gr1cは同じレジスタファイルを指す。
なお、1−VLIWは、VLIW命令を実行する単位(命令単位)であることを示している。
図5、図6に示す例では、add.p命令により、gr1aとgr2との和を演算し、gr1aはgr1b(new gr1)に書き換えられるが、ld命令の実行時においてgr4とに参照するgr1cは、gr1aと同じ値(old gr1)でなければならない。このためシミュレータではld命令の実行後、すぐにレジスタファイルgr1(gr1b)の内容を更新することができない。このため、図6に示すように、従来はレジスタファイルの内容を一旦テンポラリ領域に保存し、全てのVLIW内命令の実行完了の後に、その内容を再びレジスタファイルに書き戻すという方法がとられていた。
図5、図6に示す例では、add.p命令により、gr1aとgr2との和を演算し、gr1aはgr1b(new gr1)に書き換えられるが、ld命令の実行時においてgr4とに参照するgr1cは、gr1aと同じ値(old gr1)でなければならない。このためシミュレータではld命令の実行後、すぐにレジスタファイルgr1(gr1b)の内容を更新することができない。このため、図6に示すように、従来はレジスタファイルの内容を一旦テンポラリ領域に保存し、全てのVLIW内命令の実行完了の後に、その内容を再びレジスタファイルに書き戻すという方法がとられていた。
図7は、VLIW命令の別の例を示す図である。
図7に示すVLIW命令では、add.p命令の実行による、gr1、gr2、gr3と、ld命令の実行によるgr4、gr5、gr6との関連性がなく、前述したような問題はないように思えるが、実際はld命令が、例えばメモリフォルト等の例外を発生する可能性があり、その例外が厳密型の例外の場合は、やはりld命令の実行後、すぐにレジスタファイルの内容(図7の場合、gr3、gr6)を更新することはできない。
図7に示すVLIW命令では、add.p命令の実行による、gr1、gr2、gr3と、ld命令の実行によるgr4、gr5、gr6との関連性がなく、前述したような問題はないように思えるが、実際はld命令が、例えばメモリフォルト等の例外を発生する可能性があり、その例外が厳密型の例外の場合は、やはりld命令の実行後、すぐにレジスタファイルの内容(図7の場合、gr3、gr6)を更新することはできない。
例えばJIT(Just-In-Time)化した場合、前に例示したような命令はホストプロセッサでの数命令に変換されるが、テンポラリ領域を使ったレジスタファイルへの書き戻し処理が必要な場合、本来の処理よりもこの処理の方が大きくなってしまう。
特開2002−304292号公報
ところで、VLIW命令を実行する際には、前述した図5および図7に示したような演算時にテンポラリバッファを必要とする命令は、全体のごく一部であり、他の大部分のVLIW命令に関してはテンポラリバッファを必要としないにもかかわらず、全てのVLIW命令の実行完了の後にレジスタファイルに値を書き戻すという方法が行われていた。すなわち従来の方法は、特に他の高速技術と併用し1命令あたりのホストプロセッサでの必要命令数が少なくなればなる程、相対的にテンポラリ領域を使ったレジスタファイルへの書き戻し処理に必要な命令数が多くなってしまい、処理数が増大する結果、処理時間の遅延を招くという問題があった。
本発明はこのような点に鑑みてなされたものであり、処理の高速化を図ることができるシミュレーション装置およびシミュレーション方法を提供することを目的とする。
本発明では上記問題を解決するために、図1に示すようなシミュレーション装置1が提供される。このシミュレーション装置1は、VLIW型プロセッサのシミュレーション装置であり、所定の命令単位毎に構成されるVLIW命令を備えるプログラムファイルを格納する記憶部2と、プログラムファイルを記憶部2から読み出す命令読み出し部3と、読み出したプログラムファイルのVLIW命令をデコードし、その際命令単位内に、相互に干渉する関係を有する命令が存在する場合および例外が発生し得る命令が存在する場合に、それらの命令を識別し得る情報をデコード情報として選択する命令デコード部4と、選択されたデコード情報を保持するデコード情報保持部5と、デコード情報がデコード情報保持部5に格納されているとき、そのデコード情報を利用してVLIW命令を実行する命令実行部6と、を有する。
このようなシミュレーション装置1によれば、命令読み出し部3により記憶部2からプログラムファイルが読み出される。そして、命令デコード部4により読み出したプログラムファイルのVLIW命令がデコードされ、その際命令単位内に、相互に干渉する関係を有する命令が存在する場合および例外が発生し得る命令が存在する場合に、それらの命令を識別し得る情報がデコード情報として選択される。そして、デコード情報保持部5により選択されたデコード情報が保持される。そして、命令実行部6によりデコード情報がデコード情報保持部5に格納されているとき、そのデコード情報を利用してVLIW命令が実行される。
本発明では、命令デコード部が、命令単位内に相互に干渉する関係を有する命令が存在する場合および例外が発生し得る命令が存在するか否かを判断し、それらの命令を識別し得る情報をデコード情報として選択し、デコード情報保持部がそのデコード情報を保持することにより、以後、VLIW命令を実行する際に、そのデコード情報を再利用することができるため、処理の高速化を図ることができる。
以下、本発明の実施の形態を図面を参照して詳細に説明する。
まず、実施の形態に適用される発明の概要について説明し、その後、実施の形態の具体的な内容を説明する。
まず、実施の形態に適用される発明の概要について説明し、その後、実施の形態の具体的な内容を説明する。
図1は、本実施の形態のシミュレーション装置を示す原理図である。
図1に示すシミュレーション装置1は、アーキテクチャーをシミュレートするシミュレーション装置、すなわちプログラムの開発、性能の評価等に用いられるシミュレーション装置であり、記憶部2、命令読み出し部3、命令デコード部4、デコード情報保持部5、命令実行部6、処理結果保持部7を有している。
図1に示すシミュレーション装置1は、アーキテクチャーをシミュレートするシミュレーション装置、すなわちプログラムの開発、性能の評価等に用いられるシミュレーション装置であり、記憶部2、命令読み出し部3、命令デコード部4、デコード情報保持部5、命令実行部6、処理結果保持部7を有している。
記憶部2には、所定の命令単位毎に構成されるVLIW命令を有するプログラムファイルが格納されている。ここで所定の命令単位とは、VLIW型プロセッサに、並列に処理を行わせる命令の単位である。
命令読み出し部3は、記憶部2からVLIW命令を有するプログラムファイルを読み出す。
命令デコード部4は、命令読み出し部3にて読み出されたプログラムファイルをデコードする。また、命令デコード部4はデコードの際、例えば図7、8に示したように命令単位内に相互に干渉する関係を有する命令が存在する場合や、例えば命令違反や割り込み等の例外が発生し得る命令が存在する場合に、それらの命令を識別し得る情報をデコード情報として選択して出力する。
命令デコード部4は、命令読み出し部3にて読み出されたプログラムファイルをデコードする。また、命令デコード部4はデコードの際、例えば図7、8に示したように命令単位内に相互に干渉する関係を有する命令が存在する場合や、例えば命令違反や割り込み等の例外が発生し得る命令が存在する場合に、それらの命令を識別し得る情報をデコード情報として選択して出力する。
デコード情報保持部5は、命令デコード部4から出力されるデコード情報を保持する。
命令実行部6は、命令読み出し部3にて読み出されたプログラムファイルのVLIW命令を実行する。この際、デコード情報がデコード情報保持部5に格納されているときは、そのデコード情報を利用する。
命令実行部6は、命令読み出し部3にて読み出されたプログラムファイルのVLIW命令を実行する。この際、デコード情報がデコード情報保持部5に格納されているときは、そのデコード情報を利用する。
処理結果保持部7は、命令実行部6で実行された処理結果を保持する。
このようなシミュレーション装置1によれば、VLIW命令を実行する際に、例えば、信号や割り込み等のデコード情報を保持しておき、再度その命令を実行する際にはデコード情報が利用される。
このようなシミュレーション装置1によれば、VLIW命令を実行する際に、例えば、信号や割り込み等のデコード情報を保持しておき、再度その命令を実行する際にはデコード情報が利用される。
以下、本発明の実施の形態を具体的に説明する。
図2は、シミュレーション装置のハードウェア構成例を示す図である。
シミュレーション装置100は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス107を介してRAM(Random Access Memory)102、ハードディスクドライブ(HDD:Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、および通信インタフェース106が接続されている。
図2は、シミュレーション装置のハードウェア構成例を示す図である。
シミュレーション装置100は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス107を介してRAM(Random Access Memory)102、ハードディスクドライブ(HDD:Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、および通信インタフェース106が接続されている。
RAM102には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。HDD103には、OSやアプリケーションプログラムが格納される。また、HDD103内には、プログラムファイルが格納される。
グラフィック処理装置104には、モニタ11が接続されている。グラフィック処理装置104は、CPU101からの命令に従って、画像をモニタ11の画面に表示させる。入力インタフェース105には、キーボード12とマウス13とが接続されている。入力インタフェース105は、キーボード12やマウス13から送られてくる信号を、バス107を介してCPU101に送信する。
通信インタフェース106は、ネットワーク10に接続されている。通信インタフェース106は、ネットワーク10を介して、他のコンピュータとの間でデータの送受信を行う。
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。このようなハードウェア構成のシステムにおいてシミュレーションを行うために、シミュレーション装置100内には、以下のような機能が設けられる。
図3は、シミュレーション装置の機能を示すブロック図である。
シミュレーション装置100は、データベース110、メモリシステム111、命令読み出し部120、命令キャッシュ121、命令デコード部130、命令実行部140、バイパス部150、デコード情報キャッシュ部160を有している。
シミュレーション装置100は、データベース110、メモリシステム111、命令読み出し部120、命令キャッシュ121、命令デコード部130、命令実行部140、バイパス部150、デコード情報キャッシュ部160を有している。
データベース110には、シミュレーション対象の一つのVLIW命令に含まれる全ての命令を備えたプログラムファイル、すなわちシミュレーションに必要なプログラムファイルが格納されている。
メモリシステム111にはデータベース110から読み出したプログラムファイルがロードされる。
命令読み出し部120は、メモリシステム111に格納されたプログラムファイルを読み出す。
命令読み出し部120は、メモリシステム111に格納されたプログラムファイルを読み出す。
命令キャッシュ121は、命令読み出し部120によって読み出されたプログラムファイルをキャッシュする。また、命令読み出し部120は、デコード情報キャッシュ部160にデコード情報が存在しないとき、例えば、シミュレーション装置100がVLIW命令を初めて実行する際には、読み出したプログラムファイルを命令デコード部130に出力し、2回目以降VLIW命令を実行する際には読み出したプログラムファイルをバイパス部150に出力する。
命令デコード部130は、命令キャッシュ121に格納されているプログラムファイルをデコードする。この際、命令デコード部130は、デコードしたVLIW命令内の、レジスタの干渉を生じさせる命令および例外を発生し得る命令の有無をチェックし、該当する命令をデコード情報としてデコード情報キャッシュ部160に出力する。
命令実行部140は、レジスタファイル141、処理部142、テンポラリバッファ143を有している。
命令実行部140は、入力されたプログラムファイル内のVLIW命令に含まれる命令単位毎に命令の実行を行う。すなわち、プログラムファイル内のVLIW命令が、本来のVLIW型プロセッサであれば、どの機能ユニットにより処理されるべきものであるかを特定する。
命令実行部140は、入力されたプログラムファイル内のVLIW命令に含まれる命令単位毎に命令の実行を行う。すなわち、プログラムファイル内のVLIW命令が、本来のVLIW型プロセッサであれば、どの機能ユニットにより処理されるべきものであるかを特定する。
また、命令実行部140は、デコード情報がデコード情報キャッシュ部160に格納されているときは、そのデコード情報を利用して命令の実行を行う。
レジスタファイル141は、VLIW命令を実行する際に実行状態を保持する書き込みレジスタを有している。
レジスタファイル141は、VLIW命令を実行する際に実行状態を保持する書き込みレジスタを有している。
処理部142は、IU処理部142a、LU処理部142b、BU処理部142c、MU処理部142dを有している。
処理部142は、レジスタファイル141から出力された命令の実行を行う。具体的にはIU処理部142aは、演算処理を行い、LU処理部142bは、ロード命令やストア命令の実行を行い、BU処理部142cは、分岐命令の実行を行い、MU処理部142dは、アキュムレータ演算命令・アキュムレータ読み出し命令またはアキュムレータ書き込み命令の実行を行って、それぞれ実行結果をレジスタファイル141に再び出力する(書き戻す)。
処理部142は、レジスタファイル141から出力された命令の実行を行う。具体的にはIU処理部142aは、演算処理を行い、LU処理部142bは、ロード命令やストア命令の実行を行い、BU処理部142cは、分岐命令の実行を行い、MU処理部142dは、アキュムレータ演算命令・アキュムレータ読み出し命令またはアキュムレータ書き込み命令の実行を行って、それぞれ実行結果をレジスタファイル141に再び出力する(書き戻す)。
テンポラリバッファ143は、処理部142で命令が実行されているとき、必要に応じてレジスタファイル141の書き込みレジスタの内容を一時格納し、単位VLIW命令の実行が完了する毎に、レジスタファイル141の書き込みレジスタの値を書き戻す。
バイパス部150は、前述したように、命令読み出し部120の2回目以降のVLIW命令の実行に際し、プログラムファイルのバイパスとなる部位である。
デコード情報キャッシュ部160は、バイパス部150から出力されるプログラムファイルに対して、キャッシュされたデコード情報を適用して出力する。
デコード情報キャッシュ部160は、バイパス部150から出力されるプログラムファイルに対して、キャッシュされたデコード情報を適用して出力する。
次に、シミュレーション装置100の動作について説明する。
図4は、シミュレーション装置の動作を示すフローチャートである。
まず、命令読み出し部120が、メモリシステム111に格納されたプログラムファイルを読み出し、命令キャッシュ121に出力する(ステップS11)。
図4は、シミュレーション装置の動作を示すフローチャートである。
まず、命令読み出し部120が、メモリシステム111に格納されたプログラムファイルを読み出し、命令キャッシュ121に出力する(ステップS11)。
次に、命令読み出し部120が、プログラムファイルのデコードが既に行われたか否かすなわち、デコード情報キャッシュ部160にデコード情報が存在するか否かを判断する(ステップS12)。命令のデコードが既に行われている場合(ステップS12のYes)、ステップS14に移行する。一方、命令のデコードがまだ行われていない場合(ステップS12のNo)、命令デコード部130が、プログラムファイルをデコードする。そしてデコード情報をデコード情報キャッシュ部160に出力する(ステップS13)。
その後、命令実行部140が、入力されたプログラムファイル内のVLIW命令に含まれる命令単位毎に命令の実行を行う(ステップS14)。その際、命令実行部140は、命令がデコード情報に該当する命令か否かを判断する(ステップS15)。命令実行部140は、デコード情報に該当する命令に対しては(ステップS15のYes)、テンポラリバッファ143を使用して(ステップS16)、単位VLIW命令の実行が完了する毎に、レジスタファイル141の書き込みレジスタを書き戻す(ステップS17)。この際、例外発生の可能性を有する命令に対しては、例外が発生しなかった場合にのみ、テンポラリバッファ143からレジスタファイル141に書き戻す。
一方、デコード情報に該当しない命令に対しては(ステップS15のNo)、レジスタファイル141の書き込みレジスタに書き込みを行った後に、テンポラリバッファ143を使用せず、処理部142での処理結果を直接レジスタファイル141の書き込みレジスタを書き戻す(ステップS17)。シミュレーション装置100は、ステップS14〜S17の動作をプログラムファイルのVLIW命令単位毎に繰り返し行う。
また、メモリシステム111内のプログラムファイルが書き換えられた場合においても、対応する命令キャッシュが存在する限り、デコード情報キャッシュ部160の情報は有効であり続ける(デコード情報キャッシュ部160に格納されている)。一方、命令キャッシュ121が無効化されると、CPU101の論理的動作と矛盾を起こさないようにするために、その時点でデコード情報キャッシュ部160の内容は無効化される。
以上述べたように、本実施の形態のシミュレーション装置100によれば、命令デコード部130が、対象とするプログラムファイルにおいてレジスタの干渉または例外を発生し得る命令が存在するか否かを判断し、そのデコード情報をデコード情報キャッシュ部160にキャッシュし、以後、そのデコード情報を再利用することにより、データベース110から読み出されるプログラムファイルのデコード情報に該当しないVLIW命令に対して、テンポラリバッファ143を用いることなくシーケンシャルに実行を行うことができる。これにより、処理の高速化を図ることができる。
なお、前述した実施の形態では、シミュレーション装置100がVLIW命令を初めて実行する際には、読み出したプログラムファイルを命令デコード部130に出力し、2回目以降VLIW命令を実行する際には読み出したプログラムファイルをバイパス部150に出力したが、これに限らず、任意の際にプログラムファイルを命令デコード部130に出力してもよい。この際、命令デコード部130は、プログラムファイルが送られてくる度に前述した動作を逐次行い、デコード情報キャッシュ部160は、デコード情報を既に格納しているとき、命令デコード部130からデコード情報が出力されると、その情報を上書きして保持する。これにより、当該VILW命令が書き換えられた場合にデコード情報を速やかに書き換えることが可能であり、使用するプログラムファイルに即したデコード情報を得ることができる。
以上、本発明のシミュレーション装置およびシミュレーション方法の好適な実施の形態について詳述したが、本発明は、その特定の実施の形態に限定されるものではなく、例えば本発明のシミュレーション装置およびシミュレーション方法は、VLIW型のプロセッサへの適用を主たる目的とするが、同様の実行形態を有する、例えば、水平型マイクロのシミュレーション等にも有効である。
(付記1) VLIW型プロセッサのシミュレーション装置において、
所定の命令単位毎に構成されるVLIW命令を格納する記憶部と、
前記VLIW命令を前記記憶部から読み出す命令読み出し部と、
読み出した前記VLIW命令をデコードし、その際前記命令単位内に、相互に干渉する関係を有する命令が存在する場合および例外が発生し得る命令が存在する場合に、それらの命令を識別し得る情報をデコード情報として選択する命令デコード部と、
前記選択されたデコード情報を保持するデコード情報保持部と、
前記デコード情報が前記デコード情報保持部に格納されているとき、前記デコード情報を利用して前記VLIW命令を実行する命令実行部と、
を有することを特徴とするシミュレーション装置。
所定の命令単位毎に構成されるVLIW命令を格納する記憶部と、
前記VLIW命令を前記記憶部から読み出す命令読み出し部と、
読み出した前記VLIW命令をデコードし、その際前記命令単位内に、相互に干渉する関係を有する命令が存在する場合および例外が発生し得る命令が存在する場合に、それらの命令を識別し得る情報をデコード情報として選択する命令デコード部と、
前記選択されたデコード情報を保持するデコード情報保持部と、
前記デコード情報が前記デコード情報保持部に格納されているとき、前記デコード情報を利用して前記VLIW命令を実行する命令実行部と、
を有することを特徴とするシミュレーション装置。
(付記2) 読み出した前記VLIW命令をキャッシュする命令キャッシュをさらに有し、
前記命令デコード部は、前記命令キャッシュに存在する命令を対象とすることを特徴とする付記1記載のシミュレーション装置。
前記命令デコード部は、前記命令キャッシュに存在する命令を対象とすることを特徴とする付記1記載のシミュレーション装置。
(付記3) 前記デコード情報保持部は、メモリ上の命令の書き換えが生じた場合に、書き換え前の前記デコード情報を棄却することを特徴とする付記1記載のシミュレーション装置。
(付記4) 前記VLIW命令を実行する際に用いられる各変数の値を保持するレジスタファイルと、前記レジスタファイルに格納する前の前記各変数を格納するテンポラリバッファとをさらに有し、
前記命令実行部は、前記VLIW命令をシーケンシャルに実行し、その際前記相互に干渉する関係を有する命令が存在する場合には、前記テンポラリバッファに格納しながら実行し、命令実行後に前記各変数を前記テンポラリバッファから前記レジスタファイルに格納することを特徴とする付記1記載のシミュレーション装置。
前記命令実行部は、前記VLIW命令をシーケンシャルに実行し、その際前記相互に干渉する関係を有する命令が存在する場合には、前記テンポラリバッファに格納しながら実行し、命令実行後に前記各変数を前記テンポラリバッファから前記レジスタファイルに格納することを特徴とする付記1記載のシミュレーション装置。
(付記5) 前記VLIW命令を実行する際に用いられる各変数の値を保持するレジスタファイルと、前記レジスタファイルに格納する前の前記各変数を格納するテンポラリバッファとをさらに有し、
前記命令実行部は、前記VLIW命令をシーケンシャルに実行し、その際前記例外が発生し得る命令が存在する場合には、前記テンポラリバッファに格納しながら実行し、例外が発生しなかった場合、前記各変数を前記テンポラリバッファから前記レジスタファイルに格納することを特徴とする付記1記載のシミュレーション装置。
前記命令実行部は、前記VLIW命令をシーケンシャルに実行し、その際前記例外が発生し得る命令が存在する場合には、前記テンポラリバッファに格納しながら実行し、例外が発生しなかった場合、前記各変数を前記テンポラリバッファから前記レジスタファイルに格納することを特徴とする付記1記載のシミュレーション装置。
(付記6) 前記VLIW命令を実行する際に用いられる各変数の値を保持するレジスタファイルをさらに有し、
前記命令実行部は、前記VLIW命令をシーケンシャルに実行し、その際相互に干渉する関係を有する命令および例外が発生し得る命令が存在しない場合には、命令実行後の前記各変数を直接前記レジスタファイルに格納することを特徴とする付記1記載のシミュレーション装置。
前記命令実行部は、前記VLIW命令をシーケンシャルに実行し、その際相互に干渉する関係を有する命令および例外が発生し得る命令が存在しない場合には、命令実行後の前記各変数を直接前記レジスタファイルに格納することを特徴とする付記1記載のシミュレーション装置。
(付記7) 前記デコード情報の選択は、前記プログラムファイルの最初のデコード時に行われることを特徴とする付記1記載のシミュレーション装置。
(付記8) VLIW型プロセッサのシミュレーション方法において、
所定の命令単位毎に構成されるVLIW命令を格納し、
前記VLIW命令を前記記憶部から読み出し、
読み出した前記VLIW命令をデコードし、その際前記命令単位内に、相互に干渉する関係を有する命令が存在する場合および例外が発生し得る命令が存在する場合に、それらの命令を識別し得る情報をデコード情報として選択し、
前記選択されたデコード情報を保持し、
前記デコード情報が前記デコード情報保持部に格納されているとき、前記デコード情報を利用して前記VLIW命令を実行する、
ことを特徴とするシミュレーション方法。
(付記8) VLIW型プロセッサのシミュレーション方法において、
所定の命令単位毎に構成されるVLIW命令を格納し、
前記VLIW命令を前記記憶部から読み出し、
読み出した前記VLIW命令をデコードし、その際前記命令単位内に、相互に干渉する関係を有する命令が存在する場合および例外が発生し得る命令が存在する場合に、それらの命令を識別し得る情報をデコード情報として選択し、
前記選択されたデコード情報を保持し、
前記デコード情報が前記デコード情報保持部に格納されているとき、前記デコード情報を利用して前記VLIW命令を実行する、
ことを特徴とするシミュレーション方法。
1、100 シミュレーション装置
2 記憶部
3、120 命令読み出し部
4、130 命令デコード部
5 デコード情報保持部
6、140 命令実行部
101 CPU
110 データベース
111 メモリシステム
121 命令キャッシュ
141 レジスタファイル
143 テンポラリバッファ
150 バイパス部
160 デコード情報キャッシュ部
2 記憶部
3、120 命令読み出し部
4、130 命令デコード部
5 デコード情報保持部
6、140 命令実行部
101 CPU
110 データベース
111 メモリシステム
121 命令キャッシュ
141 レジスタファイル
143 テンポラリバッファ
150 バイパス部
160 デコード情報キャッシュ部
Claims (8)
- VLIW型プロセッサのシミュレーション装置において、
所定の命令単位毎に構成されるVLIW命令を格納する記憶部と、
前記VLIW命令を前記記憶部から読み出す命令読み出し部と、
読み出した前記VLIW命令をデコードし、その際前記命令単位内に、相互に干渉する関係を有する命令が存在する場合および例外が発生し得る命令が存在する場合に、それらの命令を識別し得る情報をデコード情報として選択する命令デコード部と、
前記選択されたデコード情報を保持するデコード情報保持部と、
前記デコード情報が前記デコード情報保持部に格納されているとき、前記デコード情報を利用して前記VLIW命令を実行する命令実行部と、
を有することを特徴とするシミュレーション装置。 - 読み出した前記VLIW命令をキャッシュする命令キャッシュをさらに有し、
前記命令デコード部は、前記命令キャッシュに存在する命令を対象とすることを特徴とする請求項1記載のシミュレーション装置。 - 前記デコード情報保持部は、メモリ上の命令の書き換えが生じた場合に、書き換え前の前記デコード情報を棄却することを特徴とする請求項1記載のシミュレーション装置。
- 前記VLIW命令を実行する際に用いられる各変数の値を保持するレジスタファイルと、前記レジスタファイルに格納する前の前記各変数を格納するテンポラリバッファとをさらに有し、
前記命令実行部は、前記VLIW命令をシーケンシャルに実行し、その際前記相互に干渉する関係を有する命令が存在する場合には、前記テンポラリバッファに格納しながら実行し、命令実行後に前記各変数を前記テンポラリバッファから前記レジスタファイルに格納することを特徴とする請求項1記載のシミュレーション装置。 - 前記VLIW命令を実行する際に用いられる各変数の値を保持するレジスタファイルと、前記レジスタファイルに格納する前の前記各変数を格納するテンポラリバッファとをさらに有し、
前記命令実行部は、前記VLIW命令をシーケンシャルに実行し、その際前記例外が発生し得る命令が存在する場合には、前記テンポラリバッファに格納しながら実行し、例外が発生しなかった場合、前記各変数を前記テンポラリバッファから前記レジスタファイルに格納することを特徴とする請求項1記載のシミュレーション装置。 - 前記VLIW命令を実行する際に用いられる各変数の値を保持するレジスタファイルをさらに有し、
前記命令実行部は、前記VLIW命令をシーケンシャルに実行し、その際相互に干渉する関係を有する命令および例外が発生し得る命令が存在しない場合には、命令実行後の前記各変数を直接前記レジスタファイルに格納することを特徴とする請求項1記載のシミュレーション装置。 - 前記デコード情報の選択は、前記プログラムファイルの最初のデコード時に行われることを特徴とする請求項1記載のシミュレーション装置。
- VLIW型プロセッサのシミュレーション方法において、
所定の命令単位毎に構成されるVLIW命令を格納し、
前記VLIW命令を前記記憶部から読み出し、
読み出した前記VLIW命令をデコードし、その際前記命令単位内に、相互に干渉する関係を有する命令が存在する場合および例外が発生し得る命令が存在する場合に、それらの命令を識別し得る情報をデコード情報として選択し、
前記選択されたデコード情報を保持し、
前記デコード情報が前記デコード情報保持部に格納されているとき、前記デコード情報を利用して前記VLIW命令を実行する、
ことを特徴とするシミュレーション方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005286751A JP2007094986A (ja) | 2005-09-30 | 2005-09-30 | シミュレーション装置およびシミュレーション方法 |
US11/299,894 US20070079109A1 (en) | 2005-09-30 | 2005-12-13 | Simulation apparatus and simulation method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005286751A JP2007094986A (ja) | 2005-09-30 | 2005-09-30 | シミュレーション装置およびシミュレーション方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007094986A true JP2007094986A (ja) | 2007-04-12 |
Family
ID=37903228
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005286751A Withdrawn JP2007094986A (ja) | 2005-09-30 | 2005-09-30 | シミュレーション装置およびシミュレーション方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20070079109A1 (ja) |
JP (1) | JP2007094986A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011060080A (ja) * | 2009-09-11 | 2011-03-24 | Renesas Electronics Corp | シミュレーション装置、シミュレーション方法、及びシミュレーション用プログラム |
KR101118593B1 (ko) * | 2008-12-03 | 2012-02-27 | 한국전자통신연구원 | Vliw 명령어 처리 장치 및 방법 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8458671B1 (en) * | 2008-02-12 | 2013-06-04 | Tilera Corporation | Method and system for stack back-tracing in computer programs |
CN107589960B (zh) * | 2017-08-30 | 2020-07-24 | 北京轩宇信息技术有限公司 | 一种基于寄存器访问冲突检测的dsp指令模拟方法 |
CN110580731B (zh) * | 2019-08-28 | 2023-03-14 | 稿定(厦门)科技有限公司 | 3d文字渲染方法、介质、设备及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5416913A (en) * | 1992-07-27 | 1995-05-16 | Intel Corporation | Method and apparatus for dependency checking in a multi-pipelined microprocessor |
US6804770B2 (en) * | 2001-03-22 | 2004-10-12 | International Business Machines Corporation | Method and apparatus for using past history to avoid flush conditions in a microprocessor |
US7302380B2 (en) * | 2002-12-12 | 2007-11-27 | Matsushita Electric, Industrial Co., Ltd. | Simulation apparatus, method and program |
US20070022277A1 (en) * | 2005-07-20 | 2007-01-25 | Kenji Iwamura | Method and system for an enhanced microprocessor |
-
2005
- 2005-09-30 JP JP2005286751A patent/JP2007094986A/ja not_active Withdrawn
- 2005-12-13 US US11/299,894 patent/US20070079109A1/en not_active Abandoned
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101118593B1 (ko) * | 2008-12-03 | 2012-02-27 | 한국전자통신연구원 | Vliw 명령어 처리 장치 및 방법 |
JP2011060080A (ja) * | 2009-09-11 | 2011-03-24 | Renesas Electronics Corp | シミュレーション装置、シミュレーション方法、及びシミュレーション用プログラム |
Also Published As
Publication number | Publication date |
---|---|
US20070079109A1 (en) | 2007-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6837011B2 (ja) | アルゴリズム整合、機能無効化、または性能制限による後方互換性 | |
US9262160B2 (en) | Load latency speculation in an out-of-order computer processor | |
JP5488697B2 (ja) | マルチコアプロセッサシステム、同期制御方法、および同期制御プログラム | |
US8793528B2 (en) | Dynamic hypervisor relocation | |
JP5595633B2 (ja) | シミュレーション方法及びシミュレーション装置 | |
US10261796B2 (en) | Processor and method for executing in-memory copy instructions indicating on-chip or off-chip memory | |
JP5030796B2 (ja) | データ転送中にキャッシュへのアクセスを制限するシステムおよびその方法 | |
US8281318B2 (en) | Systems and methods for inter process communication based on queues | |
JP3760041B2 (ja) | 分岐予測する情報処理装置 | |
US20080082755A1 (en) | Administering An Access Conflict In A Computer Memory Cache | |
CN104317791A (zh) | 汇聚和散布多个数据元素 | |
JPH10254944A (ja) | パワーシミュレーション装置、パワーシミュレーション方法、及びパワーシミュレーションプログラムを記録した機械読み取り可能な記録媒体 | |
US20210110040A1 (en) | Protecting against out-of-bounds buffer references | |
US8205032B2 (en) | Virtual machine control structure identification decoder | |
JP2007094986A (ja) | シミュレーション装置およびシミュレーション方法 | |
KR100770034B1 (ko) | 복수의 레지스터 파일을 이용한 문맥 교환 방법 및 시스템 | |
CN110431536B (zh) | 实现整个数据结构上的断点 | |
JP2000353092A (ja) | 情報処理装置及びそのレジスタファイル切替方法 | |
US8732721B2 (en) | Method for reducing trap overhead when executing a guest in a virtual machine | |
JP5100030B2 (ja) | データプロセッサ、データ処理方法 | |
JP7474779B2 (ja) | 命令順序付け | |
JP5811211B2 (ja) | マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法、およびマルチコアプロセッサシステムの制御プログラム | |
US20050251795A1 (en) | Method, system, and program for optimizing code | |
WO2008157561A2 (en) | Thread virtualization techniques | |
JP2003228492A (ja) | 計算機シミュレーションプログラム、プロセッサのモデルの検証方法、及び計算機シミュレーション方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080704 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20080729 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20100712 |