JP5471841B2 - 検証支援プログラム、論理検証装置、および検証支援方法 - Google Patents

検証支援プログラム、論理検証装置、および検証支援方法 Download PDF

Info

Publication number
JP5471841B2
JP5471841B2 JP2010123343A JP2010123343A JP5471841B2 JP 5471841 B2 JP5471841 B2 JP 5471841B2 JP 2010123343 A JP2010123343 A JP 2010123343A JP 2010123343 A JP2010123343 A JP 2010123343A JP 5471841 B2 JP5471841 B2 JP 5471841B2
Authority
JP
Japan
Prior art keywords
model
verification
hardware
control circuit
models
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.)
Expired - Fee Related
Application number
JP2010123343A
Other languages
English (en)
Other versions
JP2011248771A (ja
Inventor
潤一郎 渡辺
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 JP2010123343A priority Critical patent/JP5471841B2/ja
Priority to US13/086,088 priority patent/US20110295584A1/en
Publication of JP2011248771A publication Critical patent/JP2011248771A/ja
Application granted granted Critical
Publication of JP5471841B2 publication Critical patent/JP5471841B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3323Design verification, e.g. functional simulation or model checking using formal methods, e.g. equivalence checking or property checking

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Description

本発明は、検証対象回路の論理検証を支援する検証支援プログラム、論理検証装置、および検証支援方法に関する。
従来から、SMP(Symmetric Multiple Processor)構成の大型サーバシステムの論理検証では、シミュレータ上に構築する回路量を抑えるために、システムの一部を検証対象とする検証モデルを構築する。具体的には、例えば、システム内の複数のシステムボードのうち一部のシステムボードを検証対象として検証モデルを構築する。また、大型サーバシステムの検証モデルを構成する従来技術として、一部のシステムボードをビヘイビア・レベルで記述した動作モデルで設計してモデルの抽象度を高くすることで、回路量を削減するものがある。論理検証に関する技術を開示する文献としては、例えば下記特許文献1,2を参照のこと。
特開2001−101247号公報 特開2007−40892号公報
しかしながら、上述した従来技術では、互いに同期して動作させる複数のハードウェアを検証対象回路が含む場合、検証モデルの回路量を削減することが難しいという問題がある。具体的には、例えば、複数のハードウェアを同期して動作させる場合、各ハードウェアを等価な論理で構成する。このため、同期して動作させる複数のハードウェアについては、回路構成を簡略化することが難しく、検証モデルの回路量を削減することが難しい。
また、動作モデルにクロックの概念がない場合、レジスタ転送レベルで記述されたモデルに結合させるためにインターフェース変換器が必要となる。このため、実機には搭載されないインターフェース変換器の設計や検証が別途必要となるという問題がある。また、ビヘイビア・レベルで記述された動作モデルでは、実際の回路動作をレジスタ転送レベルで正確に検証することが難しいという問題がある。
本発明は、上述した従来技術による問題点を解消するため、検証対象回路の検証モデルの回路量を削減することができる検証支援プログラム、論理検証装置、および検証支援方法を提供することを目的とする。
上述した課題を解決し、目的を達成するため、開示の検証支援プログラム、論理検証装置、および検証支援方法は、互いに同期して動作する、回路構成が等価な複数の制御回路と、前記制御回路に対応する、同一の命令を処理するハードウェアとを含むシステムの論理検証を実行する際に、前記複数の制御回路のいずれか一つの制御回路の機能をモデル化した制御回路モデルにより、前記各ハードウェアの機能をモデル化した複数のハードウェアモデルからの命令を受け付け、受け付けた命令群の中から、前記ハードウェアモデルが処理する命令を決定し、決定された命令の処理要求を、前記複数のハードウェアモデルに通知することを要件とする。
本検証支援プログラム、論理検証装置、および検証支援方法によれば、検証対象回路の検証モデルの回路量を削減することができるという効果を奏する。
実施の形態1にかかる検証対象回路の一例を示す説明図である。 実施の形態1にかかる検証対象回路の検証モデルの一例を示す説明図である。 検証対象のハードウェアモデルの一例を示す説明図である。 検証対象以外のハードウェアモデルの一例を示す説明図である。 実施の形態1にかかる論理検証装置のハードウェア構成を示すブロック図である。 実施の形態1にかかる検証モデルの動作例を示すシーケンス図である。 実施の形態2にかかる検証対象回路の一例を示す説明図である。 プライオリティ制御部の待ち行列の構成例を示す説明図である。 メモリ要求の決定例を示す説明図である。 実施の形態2にかかるSMPシステムの動作例を示すシーケンス図(その1)である。 動作指示テーブルの記憶内容の一例を示す説明図である。 実施の形態2にかかるSMPシステムの検証モデルの一例を示す説明図である。 疑似システムボードモデルの一例を示す説明図である。 プライオリティ制御部モデルの機能的構成を示すブロック図である。 プライオリティ制御部モデルの通知部の具体的な処理内容を示す説明図である。 プライオリティ制御部モデルの動作手順の一例を示すフローチャートである。 疑似CPUモデルの具体例を示す説明図である。 疑似主記憶装置モデルの具体例を示す説明図である。 疑似I/Oモデルの具体例を示す説明図である。 実施の形態2にかかる検証対象回路の変形例を示す説明図である。 実施の形態2にかかるSMPシステムの動作例を示すシーケンス図(その2)である。 実施の形態2にかかる検証対象回路の変形例の検証モデルを示す説明図である。
以下に添付図面を参照して、この発明にかかる検証支援プログラム、論理検証装置、および検証支援方法の好適な実施の形態を詳細に説明する。
(実施の形態1)
図1は、実施の形態1にかかる検証対象回路の一例を示す説明図である。図1において、システム100は、複数のハードウェアH1〜Hnと、複数の制御回路C1〜Cnと、スイッチ装置Sとを含む構成である。システム100において、複数の制御回路C1〜Cn同士は、スイッチ装置Sを介して接続されている。また、ハードウェアH1〜Hnと対応する制御回路C1〜Cnは直接接続されている。
ここで、システム100は、論理検証の対象となる検証対象回路である。論理検証とは、論理設計段階の検証であり、仕様をもとに記述した回路が、仕様通りに動作するかを確認する作業である。システム100は、例えば、SMP構成のスーパーコンピュータやデータセンタ・サーバなどの大型サーバシステムである。
ハードウェアH1〜Hnは、検証対象となるハードウェアであり、システムボードやLSI(Large Scale Integration)などである。ハードウェアH♯は、例えば、複数のCPU11♯と主記憶装置12♯を含む構成である(♯=1,2,…,n)。CPU11♯は、各種命令を処理する。主記憶装置12♯は、CPU11♯がアクセス可能なROM(Read‐Only Memory)やRAM(Random Access Memory)などの記憶装置である。
制御回路C1〜Cnは、互いに同期して動作する、回路構成が等価なハードウェアである。制御回路C♯は、例えば、スイッチ装置Sを介して、複数のハードウェアH1〜Hnを発行元とする命令を受け付ける。命令は、例えば、システム100内のいずれかの主記憶装置12♯にアクセスするためのメモリ要求である。制御回路C♯が受け付けた命令は、例えば、制御回路C♯の待ち行列に登録される。制御回路C♯は、命令の発行元や命令の種類などに応じて複数の待ち行列を有する。待ち行列は、例えば、FIFO(First In First Out)メモリを並列に組むことで実現される。
制御回路C♯は、複数のハードウェアH1〜Hnを発行元とする命令群の中から、制御回路C♯に直接接続されているハードウェア♯が処理する命令を決定する。具体的には、例えば、制御回路C♯は、制御回路C♯の回路構成に基づく決定アルゴリズムに基づいて、待ち行列に登録されている命令群の中から処理対象となる命令を決定する。
スイッチ装置Sは、制御回路C1〜Cn間のデータを中継する中継装置である。スイッチ装置Sは、例えば、制御回路C1〜Cn間でデータをやり取りする際に、経路を動的に選択するクロスバースイッチである。
システム100において、複数のハードウェアH1〜Hnから発行される命令は、スイッチ装置Sを介して全制御回路C1〜Cnにブロードキャストされ、各制御回路C♯の待ち行列に登録される。また、複数の制御回路C1〜Cnの回路構成は等価なため、各制御回路C♯の命令を決定する決定アルゴリズムは同じである。
したがって、システム100では、制御回路C1〜Cnがクロックにより同期して動作することで、各制御回路C♯の待ち行列に登録されている命令群が同じ順序で処理されることになる。なお、図面では、各ハードウェアH♯と各制御回路C♯とが別体に設けられる構成としたが、ハードウェアH♯上に制御回路C♯が搭載される構成としてもよい。
(検証モデルの一例)
図2は、実施の形態1にかかる検証対象回路の検証モデルの一例を示す説明図である。図2において、検証モデル200は、複数のハードウェアモデルHM1〜HMnと、制御回路モデルCMと、スイッチ装置モデルSMとを含む構成である。
検証モデル200は、図1に示したシステム100の論理検証を行うためのモデルである。検証モデル200は、例えば、Verilog HDL(Hardware Description Language)やVHDL(VHSIC HDL)などのハードウェア記述言語を用いて記述される。
ハードウェアモデルHM♯は、ハードウェアH♯(図1参照)の機能をモデル化したものである。制御回路モデルCMは、複数の制御回路C1〜Cn(図1参照)のうちいずれか一つの制御回路C♯(ここでは、制御回路C1)の機能をモデル化したものである。スイッチ装置モデルSMは、スイッチ装置Sの機能をモデル化したものである。
検証モデル200において、制御回路モデルCMは、いずれか一つのハードウェアモデルHM♯(ここでは、ハードウェアモデルHM1)と直接接続されている。ハードウェアモデルHM1は、制御回路C1に直接接続されているハードウェアH1の機能をモデル化したものである。また、制御回路モデルCMは、スイッチ装置モデルSMを介して、ハードウェアモデルHM2〜HMnと接続されている。ハードウェアモデルHM2〜HMnは、制御回路C1以外の各制御回路C2〜Cnに直接接続されている各ハードウェアH2〜Hnの機能をモデル化したものである。
さらに、制御回路モデルCMは、信号線210を介して、ハードウェアモデルHM2〜HMnと直接接続されている。信号線210は、実際の回路上(図1のシステム100上)では物理的な制約により結線できない信号線であり、検証モデル200上のみに存在する信号線である。信号線210は、例えば、検証対象回路を記述するハードウェア記述言語を用いて、実際の設計記述と同様に記述される。
ここで、ハードウェアモデルHM♯の一例について説明する。大型サーバシステムなどの大規模なシステム100の論理検証では、シミュレータ上に構築できる検証モデルの回路容量が限られているため、システム100の一部を検証対象とする検証モデル200を構築する。
このため、ハードウェアH1〜Hnのうち検証対象となるもの以外のハードウェアは、論理検証に必要となる機能のみをモデル化すればよく、このようなモデル化によって検証モデルを構成する回路量を削減することができる。以下、ハードウェアH1〜HnのうちハードウェアH1を検証対象とした場合を例に挙げて、検証対象および検証対象以外のハードウェアモデルの一例について説明する。
図3は、検証対象のハードウェアモデルの一例を示す説明図である。図3において、ハードウェアモデルHM1は、複数のCPUモデル211と、主記憶装置モデル221とを含む構成である。CPUモデル211および主記憶装置モデル221は、制御回路モデルCMと直接接続されている。
CPUモデル211は、ハードウェアH1内のCPU111(図1参照:♯=1)と同一の機能をモデル化したものである。主記憶装置モデル221は、ハードウェアH1内の主記憶装置121(図1参照:♯=1)と同一の機能をモデル化したものである。
図4は、検証対象以外のハードウェアモデルの一例を示す説明図である。図4において、ハードウェアモデルHM♯は、疑似制御回路モデルSCM♯と、疑似CPUモデル21♯と、疑似主記憶装置モデル22♯とを含む構成である(ただし、♯=2,3,…,n)。疑似制御回路モデルSCM♯は、制御回路モデルCMおよびスイッチ装置モデルSMと直接接続されている。
疑似制御回路モデルSCM♯は、制御回路C♯(図1参照:♯=2,3,…,n)の機能のうち論理検証に必要となる機能のみをモデル化したものである。疑似CPUモデル21♯は、CPU11♯(図1参照:♯=2,3,…,n)の機能のうち論理検証に必要となる機能のみをモデル化したものである。疑似主記憶装置モデル22♯は、主記憶装置12♯(図1参照:♯=2,3,…,n)の機能のうち論理検証に必要となる機能のみをモデル化したものである。
(論理検証装置のハードウェア構成)
図5は、実施の形態1にかかる論理検証装置のハードウェア構成を示すブロック図である。図5において、論理検証装置500は、CPU501と、ROM502と、RAM503と、磁気ディスクドライブ504と、磁気ディスク505と、光ディスクドライブ506と、光ディスク507と、ディスプレイ508と、I/F(Interface)509と、キーボード510と、マウス511と、スキャナ512と、プリンタ513とを備えている。また、各構成部はバス520によってそれぞれ接続されている。
ここで、CPU501は、論理検証装置500の全体の制御を司る。ROM502は、ブートプログラム、論理検証用のテストプログラムなどのプログラムを記憶している。RAM503は、CPU501のワークエリアとして使用される。磁気ディスクドライブ504は、CPU501の制御にしたがって磁気ディスク505に対するデータのリード/ライトを制御する。磁気ディスク505は、磁気ディスクドライブ504の制御で書き込まれたデータを記憶する。
光ディスクドライブ506は、CPU501の制御にしたがって光ディスク507に対するデータのリード/ライトを制御する。光ディスク507は、光ディスクドライブ506の制御で書き込まれたデータを記憶したり、光ディスク507に記憶されたデータをコンピュータに読み取らせたりする。
ディスプレイ508は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ508は、例えば、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
I/F509は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク514に接続され、このネットワーク514を介して他の装置に接続される。そして、I/F509は、ネットワーク514と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F509には、例えばモデムやLANアダプタなどを採用することができる。
キーボード510は、文字、数字、各種指示などの入力のためのキーを備え、データの入力を行う。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス511は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などを行う。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
スキャナ512は、画像を光学的に読み取り、論理検証装置500内に画像データを取り込む。なお、スキャナ512は、OCR(Optical Character Reader)機能を持たせてもよい。また、プリンタ513は、画像データや文書データを印刷する。プリンタ513には、例えば、レーザプリンタやインクジェットプリンタを採用することができる。なお、上述した構成部501〜513のうち一部の構成部(例えば、スキャナ512、プリンタ513など)を論理検証装置500から省略することにしてもよい。
(検証モデル200の動作例)
図6は、実施の形態1にかかる検証モデルの動作例を示すシーケンス図である。以下に説明する検証モデル200の動作例は、検証モデル200の記述データやテストパターンを、図5に示した論理検証装置500に入力して論理検証を実行することで実現される。
図6のシーケンス図において、(1)制御回路モデルCMは、スイッチ装置モデルSMを介して、複数のハードウェアモデルHM1〜HMnからの命令を受け付ける。
(2)制御回路モデルCMは、受け付けた命令を制御回路モデルCMの待ち行列に登録する。
(3)制御回路モデルCMは、待ち行列に登録されている命令群の中から、ハードウェアモデルHM1が処理する命令を決定する。なお、ハードウェアモデルHM1は、制御回路モデルCMのモデル元となる制御回路C1に直接接続されているハードウェアH1の機能をモデル化したものである。具体的には、例えば、制御回路モデルCMは、制御回路C♯の回路構成に基づく決定アルゴリズムに基づいて、処理対象となる命令を決定する。
(4)制御回路モデルCMは、決定された命令の処理要求を、ハードウェアモデルHM1〜HMnに通知する。具体的には、例えば、制御回路モデルCMは、命令の処理要求を、ハードウェアモデルHM1内のCPUモデル211に通知するとともに、ハードウェアモデルHM2〜HMn内の疑似制御回路モデルSCM2〜SCMnに通知する。各疑似制御回路モデルSCM2〜SCMnに通知された命令の実行要求は、各疑似制御回路モデルSCM2〜SCMnから各ハードウェアモデルHM2〜HMnに通知される。
(5)各ハードウェアモデルHM1〜HMnは、制御回路モデルCMから要求された命令を処理する。具体的には、ハードウェアモデルHM1内のCPUモデル211が命令を処理するとともに、各ハードウェアモデルHM2〜HMn内の各疑似CPUモデル212〜21nが命令を処理する。なお、上記(4)において、制御回路モデルCMは、各擬似制御回路モデルSCM2〜SCMnを介すことなく、各ハードウェアモデルHM2〜HMn内の各疑似CPUモデル212〜21nに命令の処理要求を直接通知することにしてもよい。
以上説明したように、実施の形態1にかかる検証モデル200によれば、制御回路モデルCMにより、システム100上には存在しない検証モデル200上の信号線210を介して、全ハードウェアモデルHM1〜HMnに命令の処理要求を通知することができる。これにより、処理対象となる命令を決定して各ハードウェアモデルHM1〜HMnに処理対象命令を通知する各制御回路C1〜Cnの機能を一つにまとめることができ、検証モデル200の回路量を削減することができる。
また、検証モデル200によれば、レジスタ転送レベルやゲートレベルで検証モデル200を記述することで、制御回路モデルCMをクロックに同期して動作させることができる。この結果、クロックに同期して制御回路モデルCMから命令の処理要求を通知でき、ハードウェアモデルHM1〜HMnをクロック精度で同期して動作させることができる。これにより、クロック精度で同期して動作させるためのインターフェース変換器などを検証モデル200内に設ける必要がない。
また、検証モデル200によれば、制御回路モデルCMとハードウェアモデルHM2〜HMnとを直接接続する信号線210を介して、命令の処理要求を制御回路モデルCMから各ハードウェアモデルHM2〜HMnに通知することができる。これにより、ハードウェアモデルHM♯内の疑似制御回路モデルSCM♯と、疑似CPUモデル21♯、疑似主記憶装置モデル22♯との間に中継回路を持たせる必要がなくなり、ハードウェアモデルHM♯を簡略化して設計することができる。
(実施の形態2)
つぎに、実施の形態2にかかる検証対象回路について説明する。実施の形態1で説明した箇所と同様の箇所については、図示および説明を省略する。また、以下の説明では、制御回路C1〜Cnを「プライオリティ制御回路P1〜Pn」、制御回路モデルCMを「プライオリティ制御回路モデルPM」、疑似制御回路モデルSCMを「疑似プライオリティ制御回路SPM」と表記する。
図7は、実施の形態2にかかる検証対象回路の一例を示す説明図である。図7において、SMPシステム700は、複数のシステムボードS1〜Snと、クロスバースイッチBとを含む構成である。SMPシステム700において、複数のシステムボードS1〜Snは、クロスバースイッチBを介して接続されている。
ここで、SMPシステム700は、論理検証の対象となるシステムボードS1〜Snを含む検証対象回路である。SMPシステム700は、システムボードS1〜Sn内の複数のCPU11♯(♯=1,2,…,n)が同等な立場で処理を分担するSMP構成のシステムである。
システムボードS♯は、システムコントローラ71♯と、複数のCPU11♯と、主記憶装置12♯とを含む構成である。システムコントローラ71♯は、プライオリティ制御部P♯と、CPU制御部72♯と、主記憶装置制御部73♯と、クロスバースイッチ制御部74♯と、I/O制御部75♯とを含む構成である。システムボードS♯は、図1に示したハードウェアH♯に相当する。
プライオリティ制御部P1〜Pnは、互い同期して動作する、回路構成が等価な回路である。プライオリティ制御部P♯は、クロスバースイッチBを介して、複数のシステムボードS1〜Snを発行元とするメモリ要求を受け付ける。ここで、メモリ要求は、SMPシステム700において複数のCPU111〜11nが、メモリ(主記憶装置121〜12n)を共有するためのものである。すなわち、メモリ要求は、SMPシステム700におけるコヒーレンシを確保するためのものである。
メモリ要求は、例えば、要求先のメモリの物理アドレス、要求元のCPU番号、データの要求タイプ(共有型、排他型)、パケット番号などを含む情報である。プライオリティ制御部P♯が受け付けたメモリ要求は、例えば、プライオリティ制御部P♯の待ち行列に登録される。プライオリティ制御部P♯の待ち行列の具体例については、図8を用いて後述する。
プライオリティ制御部P♯は、特定の決定アルゴリズムに基づいて、待ち行列に登録されているメモリ要求群の中から、システムボードS♯が処理するメモリ要求を決定する。メモリ要求の決定例については、図9を用いて後述する。
CPU制御部72♯は、複数のCPU11♯を制御する。主記憶装置制御部73♯は、主記憶装置12♯を制御する。クロスバースイッチ制御部74♯は、クロスバースイッチBを制御する。I/O制御部75♯は、プライオリティ制御部P♯に対するデータの入出力を制御する。
クロスバースイッチBは、プライオリティ制御部P1〜Pn間でデータをやり取りする際に、経路を動的に選択する。具体的には、例えば、クロスバースイッチBは、クロスバースイッチ制御部74♯の制御にしたがって、データをやり取りする経路を選択する。なお、クロスバースイッチBは、図1に示したスイッチ装置Sに相当する。
(プライオリティ制御部P♯の待ち行列)
図8は、プライオリティ制御部の待ち行列の構成例を示す説明図である。ここでは、メモリ要求の発行元として、CPU_X,CPU_Y,CPU_Zを例に挙げて説明する。CPU_X,CPU_Y,CPU_Zは、SMPシステム700内のいずれかのCPUである。
図8において、プライオリティ制御部P♯は、メモリ要求の発行元となるCPU_X,CPU_Y,CPU_Zごとに、待ち行列810,820,830を有している。待ち行列810,820,830には、対応するCPU_X,CPU_Y,CPU_Zからの新規のメモリ要求のほか、再実行するメモリ要求が登録される。
プライオリティ制御部P♯は、特定の決定アルゴリズムに基づいて、待ち行列810,820,830に登録されているメモリ要求が効率よくかつ必要に応じて均等に処理されるように、処理対象となるメモリ要求を決定する。また、プライオリティ制御部P♯は、決定されたメモリ要求をスヌープパイプライン840に投入する。
スヌープパイプライン840は、プライオリティ制御部P♯がパイプライン処理を実行するためのものであり、複数のステージs0〜s7を含む構成である。各ステージs0〜s7で実行される処理は予め決まっており、s0→s1→s2→s3→s4→s5→s6→s7の順に実行される。スヌープパイプライン840は、例えば、複数のFF(FlipFlop)などの記憶装置により実現される。
図9は、メモリ要求の決定例を示す説明図である。図9において、CPU_Xに対応する待ち行列810には、メモリ要求A0,A1,A2が登録されている。CPU_Yに対応する待ち行列820には、メモリ要求B0,B1,B2が登録されている。CPU_Zに対応する待ち行列830には、メモリ要求C0,C1,C2が登録されている。
ここでは、プライオリティ制御部P♯は、各待ち行列810,820,830の先頭のメモリ要求のうち、リトライ回数(図9中、「retry」)が最大のメモリ要求を処理対象に決定する。リトライ回数は、主記憶装置12♯の使用状況などにより、スヌープパイプライン840に投入されたメモリ要求が、再実行するメモリ要求として待ち行列810,820,830に差し戻された回数である。
また、プライオリティ制御部P♯は、先頭のメモリ要求のうちリトライ回数が同一のメモリ要求があった場合、待ち行列810,820,830の優先順位に基づいて、処理対象となるメモリ要求を決定する。ここでは、待ち行列810の優先順位が最も高く、待ち行列830の優先順位が最も低く設定されているとする。
図9の(a)では、各待ち行列810,820,830の先頭のメモリ要求A0,B0,C0は、いずれもリトライ回数が「0」である。この場合、プライオリティ制御部P♯は、優先順位が最も高い待ち行列810の先頭のメモリ要求A0を処理対象として決定して、スヌープパイプライン840に投入する。
図9の(b)では、待ち行列810,830の先頭のメモリ要求A0,C0のリトライ回数は「0」であり、待ち行列820の先頭のメモリ要求B0のリトライ回数は「1」である。この場合、プライオリティ制御部P♯は、リトライ回数が最大のメモリ要求B0を処理対象として決定して、スヌープパイプライン840に投入する。
(SMPシステム700の動作例)
図10は、実施の形態2にかかるSMPシステムの動作例を示すシーケンス図(その1)である。ここでは、SMPシステム700内のシステムボードS♯とクロスバースイッチBとの間の動作シーケンスについて説明する。図10のシーケンス図において、(1)システムボードS♯内のプライオリティ制御部P♯は、I/O制御部75♯を介して、CPU11♯から発行されたメモリ要求をクロスバースイッチBに送信する。
(2)クロスバースイッチBは、システムボードS♯からのメモリ要求を受信して、該メモリ要求をシステムボードS1〜Snにブロードキャストする。すなわち、クロスバースイッチBから、各プライオリティ制御部P1〜Pnに同一のクロックと同一のメモリ要求が入力される。この結果、全プライオリティ制御部P1〜Pnが同期して動作する。
(3)システムボードS♯内のプライオリティ制御部P♯は、クロスバースイッチBからのメモリ要求を受け付けて、待ち行列にメモリ要求を登録する。
(4)システムボードS♯内のプライオリティ制御部P♯は、待ち行列に登録されているメモリ要求群の中から、システムボードS♯に搭載されたCPU11♯の処理対象となるメモリ要求を決定する。(4)の処理は、プライオリティ制御部P♯のスヌープパイプライン840のステージs0の処理に相当する。
(5)システムボードS♯内のプライオリティ制御部P♯は、決定されたメモリ要求に関するスヌープ処理を実行する。具体的には、まず、プライオリティ制御部P♯が、要求先のメモリのデータをキャッシュしているか否かを問い合わせるスヌープ要求を、CPU11♯に送信する。そして、プライオリティ制御部P♯が、CPU11♯のキャッシュ状態を表すスヌープ応答をCPU11♯から受信する。(5)の処理は、スヌープパイプライン840のステージs1の処理に相当する。なお、CPU11♯のキャッシュ状態としては、例えば、MESIプロトコルに基づく以下の4つの状態がある。
・M(Modified):CPU11♯のキャッシュだけに存在し、キャッシュ上の値は主記憶装置12♯上の値から変更されている。
・E(Exclusive):CPU11♯のキャッシュだけに存在するが、キャッシュ上の値は主記憶装置12♯上の値と一致している。
・S(Shared):SMPシステム700内の他のCPUのキャッシュにも同じキャッシュラインが存在している。
・I(Invalid):キャッシュラインは無効である。
(6)システムボードS♯内のプライオリティ制御部P♯は、システムボードS♯内のCPU11♯のキャッシュ状態をクロスバースイッチBに報告する。(6)の処理は、スヌープパイプライン840のステージs2の処理に相当する。
(7)クロスバースイッチBは、各システムボードS1〜Snから報告されたキャッシュ状態をマージする。なお、マージとは、例えば、各システムボードS1〜Snからのキャッシュ状態を組み合わせて、SMPシステム700のシステム全体のキャッシュ状態として集約することである。
(8)クロスバースイッチBは、システム全体のキャッシュ状態をシステムボードS1〜Snにブロードキャストする。
(9)システムボードS♯内のプライオリティ制御部P♯は、クロスバースイッチBからのシステム全体のキャッシュ状態を受信する。(9)においてシステム全体のキャッシュ状態を受信するまで待つ処理は、スヌープパイプライン840のステージs3〜s5の処理に相当する。また、(9)においてシステム全体のキャッシュ状態を受信する処理は、スヌープパイプライン840のステージs6の処理に相当する。
(10)システムボードS♯内のプライオリティ制御部P♯は、システム全体のキャッシュ状態と、CPU11♯のキャッシュ状態とに基づいて、ユニットに指示する動作指示を決定する。具体的には、例えば、プライオリティ制御部P♯が、図11に示す動作指示テーブル1100を参照して、CPU11♯に指示する動作指示を決定する。(10)の処理は、スヌープパイプライン840のステージs7の処理に相当する。
図11は、動作指示テーブルの記憶内容の一例を示す説明図である。図11において、動作指示テーブル1100は、キャッシュ状態(システム全体/自SB)、物理アドレス、要求タイプおよび動作指示のフィールドを有している。各フィールドに情報を設定することで、動作指示情報1100−1〜1100−10がレコードとして記憶されている。
動作指示テーブル1100は、例えば、各システムボードS♯内の各プライオリティ制御部P♯が保持している。キャッシュ状態(システム全体)は、SMPシステム700のシステム全体のキャッシュ状態である。キャッシュ状態(自SB)は、CPU11♯のキャッシュ状態である。すなわち、プライオリティ制御部P♯と同一のシステムボードS♯内のCPU11♯のキャッシュ状態がキャッシュ状態(自SB)となる。
物理アドレスおよび要求タイプは、メモリ要求に含まれている要求先のメモリ(主記憶装置121〜12n)の物理アドレスおよびデータの要求タイプである。動作指示は、各ユニットに指示する動作指示である。なお、ユニットは、例えば、システムボードS♯上のCPU11♯、主記憶装置12♯、I/O制御部75♯などである。
ここで、動作指示情報1100−1を例に挙げると、システム全体および自SBのキャッシュ状態が「M」で、要求タイプが「共有型」の場合、プライオリティ制御部P♯が、キャッシュしているデータを他のシステムボードS♯に送信する動作指示(「CPUキャッシュデータを送信」)をCPU11♯に行う。
(検証モデルの一例)
図12は、実施の形態2にかかるSMPシステムの検証モデルの一例を示す説明図である。図12において、検証モデル1200は、システムボードモデルSMと、プライオリティ制御部モデルPMと、疑似システムボードモデルSSM2〜SSMnと、疑似プライオリティ制御部モデルSPM2〜SPMnと、を含む構成である。
システムボードモデルSMは、システムボードS1(図7参照)と同一の機能をモデル化したものである。プライオリティ制御部モデルPMは、システムボードS1内のプライオリティ制御部P1と同一の機能をモデル化したものである。なお、図示は省略するが、システムボードモデルSMには、システムボードS1内のシステムコントローラ711、CPU111および主記憶装置121と同一の機能をモデル化したものも含まれている。
疑似システムボードモデルSSM♯は、システムボードS♯(図7参照)の機能を簡略化してモデル化したものである(ただし、♯=2,3,…,n)。疑似プライオリティ制御部モデルSPM♯は、システムボードS♯内のプライオリティ制御部P♯の機能を簡略化してモデル化したものである(ただし、♯=2,3,…,n)。クロスバースイッチモデルBMは、クロスバースイッチB(図7参照)と同一の機能をモデル化したものである。
検証モデル1200において、プライオリティ制御部モデルPMおよび疑似プライオリティ制御部モデルSPM2〜SPMnは、クロスバースイッチモデルBMを介して接続されている。また、プライオリティ制御部モデルPMは、信号線1210を介して、疑似プライオリティ制御部モデルSPM2〜SPMnと直接接続されている。信号線1210は、実際の回路上(SMPシステム700上)では物理的な制約により結線できない信号線であり、検証モデル1200上のみに存在する信号線である。
図13は、疑似システムボードモデルの一例を示す説明図である。図13において、疑似システムボードモデルSSM♯は、疑似プライオリティ制御部モデルSPM♯と、疑似CPUモデル131♯と、疑似主記憶装置モデル132♯と、クロスバースイッチ制御部モデル133♯と、疑似I/Oモデル134♯と、を含む構成である(ただし、♯=2,3,…,n)。
疑似プライオリティ制御部モデルSPM♯は、プライオリティ制御部P♯の機能のうち論理検証に必要となる機能のみをモデル化したものである。疑似CPUモデル131♯は、CPU11♯の機能のうち論理検証に必要となる機能のみをモデル化したものである。疑似主記憶装置モデル132♯は、主記憶装置12♯の機能のうち論理検証に必要となる機能のみをモデル化したものである。
クロスバースイッチ制御部モデル133♯は、クロスバースイッチ制御部74♯と同一の機能をモデル化したものである。疑似I/Oモデル134♯は、I/O制御部75♯の機能のうち論理検証に必要となる機能のみをモデル化したものである。なお、疑似CPUモデル131♯、疑似主記憶装置モデル132♯および疑似I/Oモデル134♯の具体例は、図17〜図19を用いて後述する。
疑似システムボードモデルSSM♯では、疑似プライオリティ制御部モデルSPM♯と疑似CPUモデル131♯、疑似主記憶装置モデル132♯、疑似I/Oモデル134♯とを直接接続する。これにより、図7に示したシステムボードS♯をそのままモデル化した場合に比べて、疑似システムボードモデルSSM♯を簡略化して設計することができる。この結果、検証モデル1200の論理規模を削減し、検証モデル1200の設計および検証の省力化を図ることができる。
(プライオリティ制御部モデルPMの機能的構成)
図14は、プライオリティ制御部モデルの機能的構成を示すブロック図である。図14において、プライオリティ制御部モデルPMは、受付部1401と、決定部1402と、通知部1403と、送信部1404と、受信部1405と、を含む構成である。
受付部1401は、クロスバースイッチモデルBMを介して、システムボードモデルSMおよび疑似システムボードモデルSSM2〜SSMnを発行元とするメモリ要求を受け付ける。受け付けたメモリ要求は、プライオリティ制御部モデルPMの待ち行列に登録される。プライオリティ制御部モデルPMの待ち行列は、例えば、図8に示した待ち行列810,820,830をモデル化したものである。
決定部1402は、待ち行列に登録されているメモリ要求群の中からシステムボードモデルSMが処理するメモリ要求を決定する。具体的には、例えば、決定部1402が、プライオリティ制御部P♯と同一の決定アルゴリズムに基づいて、処理対象となるメモリ要求を決定する。決定されたメモリ要求は、スヌープパイプラインモデル1510(図15参照)に投入される。
通知部1403は、決定されたメモリ要求をシステムボードモデルSMおよび疑似システムボードモデルSSM2〜SSMnに通知する。具体的には、例えば、通知部1403が、プライオリティ制御部モデルPMのスヌープパイプラインモデル1510および疑似プライオリティ制御部モデルSPM2〜SPMnのスヌープパイプラインモデル1520(図15参照)にメモリ要求を投入する。なお、通知部1403の具体的な処理内容については、図15を用いて後述する。
送信部1404は、メモリ要求をシステムボードモデルSMに通知した結果得られるシステムボードモデルSM内のCPUモデルのキャッシュ状態を、クロスバースイッチモデルBMに送信する。なお、CPUモデルは、システムボードS1内のCPU111と同一の機能をモデル化したものである。
受信部1405は、CPUモデルのキャッシュ状態を送信した結果、検証モデル1200のシステム全体のキャッシュ状態をクロスバースイッチモデルBMから受信する。また、通知部1403は、受信したシステム全体のキャッシュ状態をシステムボードモデルSMおよび疑似システムボードモデルSSM2〜SSMnに通知する。
具体的には、例えば、通知部1403が、プライオリティ制御部モデルPMのスヌープパイプラインモデル1510および疑似プライオリティ制御部モデルSPM2〜SPMnのスヌープパイプラインモデル1520(図15参照)にシステム全体のキャッシュ状態を投入する。この結果、プライオリティ制御部モデルPMおよび疑似プライオリティ制御部モデルSPM2〜SPMnにおいて動作指示が決定されて、各ユニットに動作指示が送信される。
(通知部1403の具体的処理内容)
図15は、プライオリティ制御部モデルの通知部の具体的な処理内容を示す説明図である。図15において、プライオリティ制御部モデルPMが有するスヌープパイプラインモデル1510と、疑似プライオリティ制御部モデルSPM♯が有するスヌープパイプラインモデル1520とが示されている。
スヌープパイプラインモデル1510は、プライオリティ制御部P♯が有するスヌープパイプライン840と同一の機能をモデル化したものである。具体的には、スヌープパイプラインモデル1510は、ステージs0〜s7を含む構成である。スヌープパイプラインモデル1510の各ステージs0〜s7は、スヌープパイプライン840の各ステージs0〜s7にそれぞれ対応している。
スヌープパイプラインモデル1520は、プライオリティ制御部P♯が有するスヌープパイプライン840の機能を簡略化してモデル化したものである。具体的には、スヌープパイプラインモデル1520は、ステージs1’,s2’,s7’を含む構成である。スヌープパイプラインモデル1520の各ステージs1’,s2’,s7’は、スヌープパイプライン840の各ステージs1,s2,s7にそれぞれ対応している。
ここで、スヌープパイプラインモデル1510のステージs0と、スヌープパイプラインモデル1520のステージs1’は、論理検証用の信号線1210を介して接続されている。また、スヌープパイプラインモデル1510のステージs6と、スヌープパイプラインモデル1520のステージs7’は、論理検証用の信号線1210を介して接続されている。具体的には、例えば、検証モデル1200の記述データにおいて、スヌープパイプラインモデル1510とスヌープパイプラインモデル1520とのステージ間の接続関係および入出力関係をハードウェア記述言語で定義することで、信号線1210を実現できる。
通知部1403は、スヌープパイプラインモデル1510のステージs0にメモリ要求が投入されると、信号線1210を介して、スヌープパイプラインモデル1510のステージs1とスヌープパイプラインモデル1520のステージs1’にメモリ要求を投入する。なお、ステージs0に投入されるメモリ要求は、上記決定部1402によって決定された処理対象となるメモリ要求である。
また、通知部1403は、スヌープパイプラインモデル1510のステージs6でシステム全体のキャッシュ状態を受信すると、スヌープパイプラインモデル1510のステージs7とスヌープパイプラインモデル1520のステージs7’にシステム全体のキャッシュ状態を投入する。
なお、スヌープパイプラインモデル1510において、各ステージs0〜s6の処理結果は、以降のステージにも投入される。同様に、スヌープパイプラインモデル1520において、各ステージs1’,s2’の処理結果は、以降のステージにも投入される。例えば、スヌープパイプラインモデル1510のステージs0に投入されたメモリ要求はステージs1にも投入される。すなわち、後続の処理に必要となる情報が、以降のステージに投入される。
このように、スヌープパイプラインモデル1510とスヌープパイプラインモデル152とのステージ間を接続することで、メモリ要求やシステム全体のキャッシュ状態を通知することができる。これにより、疑似プライオリティ制御部モデルSPM♯は、待ち行列を持たなくてもスヌープ動作を行うことができる。また、疑似プライオリティ制御部モデルSPM♯のスヌープパイプラインモデル1520では、スヌープパイプラインモデル1510のステージs0およびステージs3〜s6に対応するステージが不要となる。
なお、疑似システムボードモデルSSM♯がレジスタ転送レベルで記述される回路の場合、多くの論理シミュレータで階層をまたいで信号を参照することが可能なため、実際の回路に変更を加えなくても論理検証用の結線(信号線1210)を行うことができる。
(プライオリティ制御部モデルPMの動作手順)
図16は、プライオリティ制御部モデルの動作手順の一例を示すフローチャートである。図16において、決定部1402により、待ち行列に登録されているメモリ要求群の中から、システムボードモデルSMが処理するメモリ要求を決定する(ステップS1601)。
そして、通知部1403により、決定されたメモリ要求をシステムボードモデルSMおよび疑似システムボードモデルSSM2〜SSMnに通知する(ステップS1602)。つぎに、送信部1404により、メモリ要求をシステムボードモデルSMに通知した結果得られるシステムボードモデルSM内のCPUモデルのキャッシュ状態を、クロスバースイッチモデルBMに送信する(ステップS1603)。
このあと、受信部1405により、検証モデル1200のシステム全体のキャッシュ状態をクロスバースイッチモデルBMから受信したか否かを判断する(ステップS1604)。ここで、受信部1405により、システム全体のキャッシュ状態を受信するのを待つ(ステップS1604:No)。
そして、検証モデル1200のシステム全体のキャッシュ状態を受信した場合(ステップS1604:Yes)、通知部1403により、受信したシステム全体のキャッシュ状態をシステムボードモデルSMおよび疑似システムボードモデルSSM2〜SSMnに通知して(ステップS1605)、本フローチャートによる一連の動作を終了する。
(疑似CPUモデル131♯の具体例)
図17は、疑似CPUモデルの具体例を示す説明図である。図17において、疑似CPUモデル131♯は、複数のCPUコアモデル171♯と、バスコントローラモデル172♯と、キャッシュモデル173♯と、を含む構成である。疑似CPUモデル131♯は、図7に示したシステムコントローラ71♯内のCPU制御部72♯の機能を統合した設計である。
CPUコアモデル171♯は、メモリ要求を生成して、バスコントローラモデル172♯にメモリ要求を通知する。バスコントローラモデル172♯は、疑似プライオリティ制御部モデルSPM♯に対してメモリ要求を出力する。また、バスコントローラモデル172♯は、疑似プライオリティ制御部モデルSPM♯を介して、スヌープ要求を受信する。そして、バスコントローラモデル172♯は、スヌープ動作を行って、疑似プライオリティ制御部モデルSPM♯に対してスヌープ応答を出力する。
疑似CPUモデル131♯は、論理検証に必要ない要素、例えば、電源制御回路、テスト回路、高速化回路を削除した設計となっている。また、疑似CPUモデル131♯では、CPUコアモデル171♯から演算機、レジスタを削減した設計とすることで、実際のCPU11♯より簡略化することができる。また、複数のCPUコアモデル171♯のキャッシュモデルをキャッシュモデル173♯として集約することで、回路量を削減することができる。
(疑似主記憶装置モデル132♯の具体例)
図18は、疑似主記憶装置モデルの具体例を示す説明図である。図18において、疑似主記憶装置モデル132♯は、メモリコントローラモデル181♯と、RAMモデル182♯と、を含む構成である。疑似主記憶装置モデル132♯は、図7に示したシステムコントローラ71♯の主記憶装置制御部73♯の機能を統合した設計である。
メモリコントローラモデル181♯は、疑似プライオリティ制御部モデルSPM♯を介して、RAMモデル182♯のリード・ライト要求を受信して、RAMモデル182♯のリード・ライトを行う。
疑似主記憶装置モデル132♯は、論理検証に必要ない要素、例えば、電源制御回路、テスト回路、DIIMコントローラ機能を削除した設計となっている。また、疑似主記憶装置モデル132♯では、論理検証に必要な最低限の容量に記憶容量を制限することで、実際の主記憶装置12♯より簡略化して、回路量を削減することができる。
(疑似I/Oモデル134♯の具体例)
図19は、疑似I/Oモデルの具体例を示す説明図である。図19において、疑似I/Oモデル134♯は、I/Oアドレス空間テスト用RAMモデル191♯と、I/Oバスコントローラモデル192♯と、DMA(Direct Memory Access)テスト用RAMモデル193♯と、を含む構成である。
疑似I/Oモデル134♯は、図7に示したシステムコントローラ71♯のI/O制御部75♯の機能を統合した設計である。I/Oバスコントローラモデル192♯は、DMAリード・ライト要求を生成し、このDMAリード・ライト要求をメモリ要求として疑似プライオリティ制御部モデルSPM♯に対して出力する。
また、I/Oバスコントローラモデル192♯は、疑似プライオリティ制御部モデルSPM♯を介して、PIO(Programmed I/O)リード・ライト要求を受信する。そして、I/Oバスコントローラモデル192♯は、I/Oアドレス空間テスト用RAMモデル191♯からPIOリードデータを読み出し、I/Oアドレス空間テスト用RAMモデル191♯にPIOライトデータを書き込む。
また、I/Oバスコントローラモデル192♯は、DMAテスト用RAMモデル193♯からDMAライトデータを出力し、DMAリードデータが到着した際にはDMAテスト用RAMモデル193♯に書き込む。疑似I/Oモデル134♯では、論理検証に必要ない要素、例えば、電源制御回路、テスト回路、シリアル・パラレル変換回路を削除することで、実際のI/O制御部75♯より簡略化して、回路量を削減することができる。
(検証対象回路の変形例)
図20は、実施の形態2にかかる検証対象回路の変形例を示す説明図である。図20において、システムボード2000は、プライオリティ制御部P1,P2と、複数のCPU111,112と、主記憶装置121,122と、を含む構成である。システムボード2000は、クロスバースイッチBを用いることなく、物理的に1枚の基板上に同期して動作する複数のプライオリティ制御部P1,P2を含むSMP構成のシステムである。
図21は、実施の形態2にかかるSMPシステムの動作例を示すシーケンス図(その2)である。ここでは、システムボード2000内のプライオリティ制御部P1がメモリ要求を発行する場合について説明する。ただし、以下に説明する(2)〜(7)の動作は、プライオリティ制御部P1,P2が同期して行う。
図21のシーケンス図において、(1)プライオリティ制御部P1は、メモリ要求をプライオリティ制御部P2に送信する。
(2)プライオリティ制御部P1,P2はそれぞれ、待ち行列にメモリ要求を登録する。
(3)プライオリティ制御部P1,P2は、待ち行列に登録されているメモリ要求群の中から処理対象となるメモリ要求を決定する。
(4)プライオリティ制御部P1,P2は、決定されたメモリ要求に関するスヌープ処理を実行する。
(5)プライオリティ制御部P1,P2は、CPU111,112のキャッシュ状態を相互に報告する。
(6)プライオリティ制御部P1,P2は、CPU111,112のキャッシュ状態をマージする。
(7)プライオリティ制御部P1,P2は、マージしたCPU111,112のキャッシュ状態に基づいて、ユニットに指示する動作指示を決定する。
図22は、実施の形態2にかかる検証対象回路の変形例の検証モデルを示す説明図である。図22において、システムボードモデル2200は、システムボード2000の検証モデルである。システムボードモデル2200は、プライオリティ制御部モデルPMと、疑似プライオリティ制御部モデルSPM2と、複数のCPUモデル2201と、主記憶装置モデル2202と、疑似CPUモデル1312と、疑似主記憶装置モデル1322と、を含む構成である。
システムボードモデル2200において、プライオリティ制御部モデルPMと疑似プライオリティ制御部モデルSPM2は、論理検証用の信号線2210を介して接続されている。なお、プライオリティ制御部P♯を含む多数の論理回路が同一のLSI(物理チップ)に内蔵されるが、内部の距離が長いために実回路では直結できないような場合も本手法を適用可能である。
以上説明したように、実施の形態2にかかる検証モデル1200によれば、プライオリティ制御部モデルPMにより、検証モデル1200上の信号線1210を介して、疑似システムボードモデルSSM2〜SSMnにメモリ要求を通知することができる。これにより、システムボードS1〜Snごとに処理対象となるメモリ要求を決定するプライオリティ制御部P1〜Pnの機能を一つにまとめることができ、検証モデル1200の回路量を削減することができる。例えば、n枚のシステムボードS1〜Snを含む大規模システムの論理検証において、プライオリティ制御部P1〜Pnに関するモデルの回路量を1/nに削減することができる。
また、検証モデル1200によれば、各疑似プライオリティ制御部モデルSPM2〜SPMnは、プライオリティ制御部モデルPMから信号線1210を介してメモリ要求を受信することで、待ち行列を持たなくてもスヌープ動作を行うことができる。
また、検証モデル1200によれば、各疑似プライオリティ制御部モデルSPM2〜SPMnは、プライオリティ制御部モデルPMから信号線1210を介してシステム全体のキャッシュ状態を受信することができる。これにより、各疑似プライオリティ制御部モデルSPM2〜SPMnは、スヌープパイプラインモデル1510のステージs3〜s6に相当する中間ステージを持たなくても各ユニットの動作指示を決定することができる。
また、検証モデル1200によれば、システムボードモデルSMからクロックに同期して動作する順序回路の出力を分配して疑似システムボードモデルSSM♯に結線することで、クロックレベルの精度で疑似システムボードモデルSSM♯を動作させることができる。
また、検証モデル1200によれば、検証対象以外のシステムボードS2〜Sn上の構成を簡略化してモデル化することにより、検証モデル1200の回路量を削減することができる。例えば、疑似CPUモデル131♯、疑似主記憶装置モデル132♯および疑似I/Oモデル134♯を、実際のCPU11♯、主記憶装置12♯およびI/O制御部75♯より簡略化して、検証モデル1200の回路量を削減することができる。
これらのことから、本検証支援プログラム、論理検証装置、および検証支援方法によれば、既存の計算機システム上に、大型サーバシステムの検証モデルを構成して、クロックレベルの精度で大型システムの論理検証を行うことができる。具体的には、例えば、上述した検証モデルをシミュレータに搭載し、テストパターンの印加、テストプログラムの走行といった検証手法を実施することによって、従来は困難であったクロックレベルの精度で大規模システムの論理検証を行うことが可能となる。
なお、本実施の形態で説明した検証支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本検証支援プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本検証支援プログラムは、インターネット等のネットワークを介して配布して、コンピュータにダウンロードしてもよい。
100 システム
131♯ 疑似CPUモデル
132♯ 疑似主記憶装置モデル
134♯ 疑似I/Oモデル
500 論理検証装置
810,820,830 待ち行列
840 スヌープパイプライン
1100 動作指示テーブル
1401 受付部
1402 決定部
1403 通知部
1404 送信部
1405 受信部
1510,1520 スヌープパイプラインモデル
B クロスバースイッチ
BM クロスバースイッチモデル
C1〜Cn,C♯ 制御回路
CM 制御回路モデル
H1〜Hn,H♯ ハードウェア
HM1〜HMn,HM♯ ハードウェアモデル
P1〜Pn,P♯ プライオリティ制御部
PM プライオリティ制御部モデル
S スイッチ装置
S1〜Sn,S♯ システムボード
SM スイッチ装置モデル
SPM2〜SPMn,SPM♯ 疑似プライオリティ制御部モデル
SSM2〜SSMn,SSM♯ 疑似システムボードモデル

Claims (10)

  1. 互いに同期して動作する、回路構成が等価な複数の制御回路と、前記制御回路に対応する、同一の命令を処理するハードウェアとを含むシステムの論理検証を、前記複数の制御回路のいずれか一つの制御回路の機能をモデル化した制御回路モデルと、前記各ハードウェアの機能をモデル化した複数のハードウェアモデルとを含む前記システムの検証モデルを用いて実行するコンピュータに、
    前記制御回路モデルにより、前記複数のハードウェアモデルからの命令を受け付けさせる受付工程と、
    前記制御回路モデルにより、前記受付工程によって受け付けた命令群の中から、前記ハードウェアモデルが処理する命令を決定させる決定工程と、
    前記制御回路モデルにより、当該制御回路モデルと前記複数のハードウェアモデルとを直接接続する論理検証用の信号線を用いて、前記決定工程によって決定された命令の処理要求を、前記複数のハードウェアモデルに通知させる通知工程と、
    を実行させることを特徴とする検証支援プログラム。
  2. 前記ハードウェアモデルは、前記ハードウェア内のCPUおよび主記憶装置の機能をそれぞれモデル化したCPUモデルおよび主記憶装置モデルを含み、
    前記通知工程は、
    前記制御回路モデルにより、前記検証モデル内のいずれかの主記憶装置モデルに記憶されているデータを、前記各ハードウェアモデル内の前記CPUモデルがキャッシュしているか否かを問い合わせるスヌープ要求を、前記複数のハードウェアモデルに通知させることを特徴とする請求項1に記載の検証支援プログラム。
  3. 前記コンピュータに、
    前記制御回路モデルにより、前記通知工程(以下、「第1の通知工程」)によって前記スヌープ要求が通知された結果得られる前記各ハードウェアモデルのスヌープ応答を、前記複数のハードウェアモデルに通知させる第2の通知工程を実行させることを特徴とする請求項2に記載の検証支援プログラム。
  4. 前記第1の通知工程は、
    前記制御回路モデルにより、当該制御回路モデルと前記複数のハードウェアモデルとを直接接続する論理検証用の信号線を用いて、前記スヌープ要求を通知させることを特徴とする請求項3に記載の検証支援プログラム。
  5. 前記第2の通知工程は、
    前記制御回路モデルにより、当該制御回路モデルと前記複数のハードウェアモデルとを直接接続する論理検証用の信号線を用いて、前記スヌープ応答を通知させることを特徴とする請求項〜4のいずれか一つに記載の検証支援プログラム。
  6. 前記検証モデルは、前記複数のハードウェアモデルのうち前記一つの制御回路に直接接続されたハードウェアの機能をモデル化したハードウェアモデルを検証対象とすることを特徴とする請求項1〜5のいずれか一つに記載の検証支援プログラム。
  7. 前記検証モデルは、レジスタ転送レベルで記述されることを特徴とする請求項1〜6のいずれか一つに記載の検証支援プログラム。
  8. 前記検証モデルは、ゲートレベルで記述されることを特徴とする請求項1〜6のいずれか一つに記載の検証支援プログラム。
  9. 互いに同期して動作する、回路構成が等価な複数の制御回路と、前記制御回路に対応する、同一の命令を処理するハードウェアとを含むシステムの論理検証を実行する論理検証装置において、
    前記複数の制御回路のいずれか一つの制御回路の機能をモデル化した制御回路モデルにより、前記各ハードウェアの機能をモデル化した複数のハードウェアモデルからの命令を受け付ける受付手段と、
    前記制御回路モデルにより、前記受付手段によって受け付けた命令群の中から、前記ハードウェアモデルが処理する命令を決定する決定手段と、
    前記制御回路モデルにより、当該制御回路モデルと前記複数のハードウェアモデルとを直接接続する論理検証用の信号線を用いて、前記決定手段によって決定された命令の処理要求を、前記複数のハードウェアモデルに通知する通知手段と、
    を備えることを特徴とする論理検証装置。
  10. 互いに同期して動作する、回路構成が等価な複数の制御回路と、前記制御回路に対応する、同一の命令を処理するハードウェアとを含むシステムの論理検証を、前記複数の制御回路のいずれか一つの制御回路の機能をモデル化した制御回路モデルと、前記各ハードウェアの機能をモデル化した複数のハードウェアモデルとを含む前記システムの検証モデルを用いて実行するコンピュータが、
    前記制御回路モデルにより、前記複数のハードウェアモデルからの命令を受け付ける受付工程と、
    前記制御回路モデルにより、前記受付工程によって受け付けた命令群の中から、前記ハードウェアモデルが処理する命令を決定する決定工程と、
    前記制御回路モデルにより、当該制御回路モデルと前記複数のハードウェアモデルとを直接接続する論理検証用の信号線を用いて、前記決定工程によって決定された命令の処理要求を、前記複数のハードウェアモデルに通知する通知工程と、
    を実行することを特徴とする検証支援方法。
JP2010123343A 2010-05-28 2010-05-28 検証支援プログラム、論理検証装置、および検証支援方法 Expired - Fee Related JP5471841B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010123343A JP5471841B2 (ja) 2010-05-28 2010-05-28 検証支援プログラム、論理検証装置、および検証支援方法
US13/086,088 US20110295584A1 (en) 2010-05-28 2011-04-13 Verification support program, logic verification device, and verification support method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010123343A JP5471841B2 (ja) 2010-05-28 2010-05-28 検証支援プログラム、論理検証装置、および検証支援方法

Publications (2)

Publication Number Publication Date
JP2011248771A JP2011248771A (ja) 2011-12-08
JP5471841B2 true JP5471841B2 (ja) 2014-04-16

Family

ID=45022792

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010123343A Expired - Fee Related JP5471841B2 (ja) 2010-05-28 2010-05-28 検証支援プログラム、論理検証装置、および検証支援方法

Country Status (2)

Country Link
US (1) US20110295584A1 (ja)
JP (1) JP5471841B2 (ja)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000250957A (ja) * 1999-03-01 2000-09-14 Hitachi Ltd 論理シミュレーション装置
JP2001101247A (ja) * 1999-09-29 2001-04-13 Matsushita Electric Ind Co Ltd 集積回路装置の検証方法および検証用インターフェースモデルの生成方法
JP4974638B2 (ja) * 2006-10-16 2012-07-11 キヤノン株式会社 シミュレーション装置及びシミュレーション方法
JP4403187B2 (ja) * 2007-03-30 2010-01-20 富士通株式会社 設計データ変換プログラム、該プログラムを記録した記録媒体、設計データ変換装置、および設計データ変換方法
GB2450130B (en) * 2007-06-13 2012-04-18 Advanced Risc Mach Ltd An apparatus and method for performing a sequence of verification tests to verify a design of a data processing system
JP2009223759A (ja) * 2008-03-18 2009-10-01 Fujitsu Ltd 情報処理装置,メモリ制御方法およびメモリ制御装置

Also Published As

Publication number Publication date
US20110295584A1 (en) 2011-12-01
JP2011248771A (ja) 2011-12-08

Similar Documents

Publication Publication Date Title
CN103049406B (zh) 用于i/o流量的一致性开关
US20140181417A1 (en) Cache coherency using die-stacked memory device with logic die
US6542861B1 (en) Simulation environment cache model apparatus and method therefor
US20130318308A1 (en) Scalable cache coherence for a network on a chip
JP4667206B2 (ja) マルチコアモデルシミュレーションプログラム、該プログラムを記録した記録媒体、マルチコアモデルシミュレータ、およびマルチコアモデルシミュレーション方法
US9286223B2 (en) Merging demand load requests with prefetch load requests
CN105793832A (zh) 快取管理请求合并
CN101410797A (zh) 无序处理器中的事务存储器
US7877249B2 (en) Concealment of external array accesses in a hardware simulation accelerator
US20060053255A1 (en) Apparatus and method for retrieving data from a data storage system
US9679098B2 (en) Protocol probes
US5794012A (en) Verification of strongly ordered memory accesses in a functional model of an out-of-order computer system
Biswal et al. Cache coherency controller verification IP using systemverilog assertions (SVA) and universal verification methodologies (UVM)
JP5471841B2 (ja) 検証支援プログラム、論理検証装置、および検証支援方法
US7296167B1 (en) Combined system responses in a chip multiprocessor
US8688428B2 (en) Performance evaluation device, performance evaluation method and simulation program
Eggers Simplicity versus accuracy in a model of cache coherency overhead
US20230056423A1 (en) Processor core simulator including trace-based coherent cache driven memory traffic generator
JP5262909B2 (ja) 検証支援プログラム、検証支援装置および検証支援方法
US11176038B2 (en) Cache-inhibited write operations
US9910943B2 (en) Distributed state and data functional coverage
JP5789832B2 (ja) 集積回路装置、検証装置及び検証方法
Wu et al. A hardware platform for exploring predictable cache coherence protocols for real-time multicores
US7716392B2 (en) Computer system having an I/O module directly connected to a main storage for DMA transfer
Steinman et al. The alphaserver 4100 cached processor module architecture and design

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130403

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131003

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131008

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131209

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140107

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140120

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees