(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0013】
<実施形態>
以下、本発明の一実施形態によるデバイスアクセスシステムについて
図1〜
図10を参照して説明する。
図1は、本発明の一実施形態によるデバイスアクセスシステムの概要を示す図である。
図1に示すようにデバイスアクセスシステム100Aは、プロセッサ(Processor)1Aと、デバイスアクセス部2Aと、PCIeSW(Peripheral Component Interconnect Express Switch)3Aと、PCIeで接続されるデバイスであるPCIeデバイス(PCIe device)30A〜33Aと、を含む。本実施形態に係るデバイスアクセスシステム100Aは、一般的なデバイスアクセスシステムと比較して、デバイスアクセス部2Aを備える点で異なる。一般的なデバイスアクセスシステムでは、プロセッサ1Aが備えるプロセッサコアが、PCIeSW3Aを経由してPCIeデバイス30A〜33Aにアクセスするが、デバイスアクセスシステム100Aでは、デバイスアクセス部2Aが代行して、PCIeデバイス30A〜33Aへのアクセスを行う。
【0014】
デバイスアクセス部2Aは、その内部にPCIeデバイス30A〜33Aへのアクセスのためのアクセス命令セットを備える。命令セットは、プロセッサ1AのプロセッサコアがPCIeデバイス30A〜33Aにアクセスする際に発行するアクセス命令群と同じものであり、デバイスアクセス部2Aは、プロセッサ1Aに代わって、任意の命令セットを実行することができる。プロセッサ1Aは、デバイスアクセス部2Aに対し、アクセス対象のデバイスの識別情報とある命令セットの実行を指示し、デバイスアクセス部2Aは、プロセッサ1Aから指定された命令セットを実行して、アクセス対象のデバイスに対してアクセスする。デバイスアクセス部2Aは、必要に応じてアクセスの結果を図示しないメインメモリに格納し、割り込み等によりプロセッサ1Aにアクセス完了を通知する。
【0015】
(構成)
次にFPGA(field-programmable gate array)を用いて
図1のデバイスアクセス部2Aを構成する例を用いて、本実施形態のデバイスアクセス方法についてさらに詳しく説明する。
図2は、本発明の一実施形態によるデバイスアクセスシステムの構成例を示す図である。
図2に示すように演算装置10は、プロセッサ(Processor)1と、FPGA(デバイスアクセス部)2と、PCIeSW3と、RAM(Random Access Memory)4と、を備える。また、演算装置10は、PCIeSW3を介してPCIeデバイス(PCIe device)30〜33と接続されている。
FPGA2は、
図1のデバイスアクセス部2Aを構成する。つまり、FPGA2は、プロセッサ1の指示に基づいて、プロセッサ1の代わりにMMIO方式でPCIeデバイス31等にアクセスする機能を有している。FPGA2がMMIOアクセスを行うと、PCIeSW3を介してPCIeデバイス31等にアクセスが行われる。
【0016】
PCIeSW3は、プロセッサ1やFPGA2とデバイス群、つまりPCIeデバイス(PCIe device)30〜33を接続する。PCIeSW3に接続されるPCIeデバイスは、例えば、NIC(Network Interface Card)やHBA(host bus adapter)などである。
PCIeSW3は64bitのアドレス空間を扱うことができ、任意のアドレスに配下のPCIeデバイス30〜33を割り当て、MMIOアクセスを行う。
図2に示す構成例では、PCIeデバイス30〜33はそれぞれ1GBのリソース(レジスタ又は内部RAM)を有する。例えば、PCIeデバイス30にアドレス0x00000010_00000000〜0x00000010_3FFFFFFFを割り当て、PCIeデバイス31に0x00000010_40000000〜0x00000010_7FFFFFFFを割り当て、PCIeデバイス32に0x00000010_80000000〜0x00000010_BFFFFFFFを割り当て、PCIeデバイス33に0x00000010_C0000000-0x00000010_FFFFFFFFを割り当てる。PCIeSW3に対してMMIO方式によるアクセスが発行された場合、PCIeSW3は、発行されたアドレスに該当するPCIeデバイスへ、アクセスを振り分ける。
【0017】
図3は、本発明の一実施形態によるデバイスアクセスシステムの要部の構成例を示す図である。
図3に示すようにプロセッサ1は、プロセッサコア(Processor Core)11と、PCIeコントローラ(PCIe Controller)12,13と、メモリコントローラ(Memory Controller)14と、割り込みコントローラ(Programmable interrupt controller)16と、を備える。プロセッサコア11、PCIeコントローラ12、PCIeコントローラ13、メモリコントローラ14、割り込みコントローラ16は、内部バス15で接続されている。
【0018】
プロセッサコア11は、32bitアーキテクチャのプロセッサである。プロセッサコア11が、扱うことができるアドレス空間は、0x00000000〜0xFFFFFFFFの2
32bytes、つまり4GBである。内部バス15のアドレス幅は、40bitまで拡張されていて、0x00_00000000〜0xFF_FFFFFFFFの2
40bytes、つまり1024GBまで扱うことができる。
プロセッサコア11内部の32bitのアドレスから、内部バス15で扱う40bitアドレスへは、プロセッサコア11が備えるTLB(translation lookaside buffer)によって任意に変換される。これにより、
図4に示すようにプロセッサコア11が扱える32bitのアドレス空間を、40bitのアドレス空間の一部を割り当てることができる。
【0019】
例えば、
図4の例では、32bitアドレス空間における0x00000000〜0x7FFFFFFFの2GBにRAM4を割り当て、0x80000000〜0xBFFFFFFFの1GBにPCIeデバイス30を割り当て、0xF0000000〜0xF000000FにFPGA2(デバイスアクセス部2A)を割り当てている。
図4の例ように32bitのアドレス空間に割り当てた場合、残りのアドレス空間(図の「未使用」)は1GBを切る。このため、同時に割り当てることができるPCIeデバイスは、PCIeデバイス30の1つのみである。一般的なデバイスアクセス制御では、PCIeデバイス31にアクセスする場合、0x80000000〜0xBFFFFFFFに割り当てるデバイスをPCIeデバイス30からPCIeデバイス31に切り替えてアクセスを行う。これに対し、本実施形態では、デバイスの切り替えを行うことなく、FPGA2を介して、PCIeデバイス31にアクセスすることが可能である。同様にPCIeデバイス32〜33についても、FPGA2を介して、アクセスすることが可能である。また、FPGA2を介して、PCIeデバイス31〜33に並行して(同時に)アクセスすることも可能である。
【0020】
図3に戻る。PCIeコントローラ12には、FPGA2が接続されている。PCIeコントローラ12は、プロセッサコア11とFPGA2の通信を仲介する。例えば、プロセッサコア11がFPGA2に割り当てられたアドレスに向けてMMIOアクセス命令を発行すると、PCIeコントローラ12はそのアクセス命令をFPGA2へ伝える。これにより、プロセッサコア11は、FPGA2の動作を制御することができる。また、FPGA2もMMIOアクセス命令を発行することができる。例えば、アクセス命令の発行先がプロセッサ1に割り当てられたアドレスだった場合、プロセッサ1内のPCIeコントローラ12は、そのアクセス命令を内部アドレスへ変換し、内部バス15経由でその内部アドレスが割り当てられたプロセッサ1内部のモジュールにアクセスする。これにより、FPGA2は、PCIeコントローラ12を経由して、プロセッサ1内部の割り込みコントローラ(PIC)16やメモリコントローラ14を制御することができる。例えば、FPGA2は、PCIeコントローラ12を経由してメモリコントローラ14を制御することによってRAM4にデータをRead、Witeすることができる。
【0021】
PCIeコントローラ13にはPCIeSW3が接続される。例えば、プロセッサコア11は、PCIeデバイス30にアクセスする場合、FPGA2を介さずに直接PCIeSW3を経由して、PCIeデバイス30にMMIOアクセスする。このアクセス方法は、デバイスへの一般的なMMIOアクセス方法である。
【0022】
メモリコントローラ14にはRAM4が接続される。ここで、
図5を参照する。
図5にRAM4におけるメモリ区画の一例を示す。
図5に示すように、RAM4は、演算装置10が実行するプログラムを格納するプログラムコード領域、プログラムの動作に必要なデータを格納する制御データ領域、FPGA2とプロセッサ1の間の通信に使用するデバイスアクセス部使用領域に分割され、それぞれのアドレス・サイズはあらかじめ規定されている。デバイスアクセス部使用領域は、さらにプロセッサ1起因で発行されるアクセスで使用されるデータを格納するデバイスアクセス部使用領域1と、PCIeデバイス起因で実行されるアクセスで使用されるデータを格納するデバイスアクセス部使用領域2に分割されている。
【0023】
さらにデバイスアクセス部使用領域1は、FPGA Entry 0〜FPGA Entry nに分割され、それぞれにはエントリ毎のデータが格納される。
同様にデバイスアクセス部使用領域2は、Processor Entry 0〜Processor Entry nに分割され、それぞれにはエントリ毎のデータが格納される。
【0024】
図3に戻る。割り込みコントローラ16は、割り込みを発生させるモジュールである。割り込みコントローラ16の所定のエリアにデータを書き込むことでプロセッサコア11に割り込みを発生させることができる。
【0025】
次に
図6を参照して、FPGA2(デバイスアクセス部2A)の構成について説明する。
図6は、本発明の一実施形態によるデバイスアクセス部の構成例を示す図である。
図6に示すように、FPGA2は、PCIeインタフェース20A、20Bと、PCIeアクセス制御回路21と、メモリアドレス生成回路22と、命令セット回路23と、デバイスアドレス生成回路24と、を備える。
PCIeインタフェース20Aは、プロセッサ1接続用のインタフェースである。FPGA2は、PCIeインタフェース20Aを介してプロセッサ1と接続されている。
【0026】
PCIeインタフェース20Bは、PCIeSW3接続用のインタフェースである。FPGA2は、PCIeインタフェース20Bを介してPCIeSW3と接続されている。
【0027】
命令セット回路23は、PCIeアクセスの命令セットを実行するための回路である。命令セット回路23は、命令セット回路00〜命令セット回路XXを含む。命令セット回路00〜命令セット回路XXのそれぞれは、プロセッサコア11がPCIeデバイス31等へ発行し得る各命令セット(命令群)に対応する。
【0028】
メモリアドレス生成回路22は、RAM4へアクセスするアドレスを生成する回路である。メモリアドレス生成回路22は、RAMアドレス生成回路00〜RAMアドレス生成回路XXを含む。RAMアドレス生成回路00〜RAMアドレス生成回路XXのそれぞれは、
図5に例示したFPGA Entry 0〜FPGA Entry n、Processor Entry 0〜Processor Entry nの何れかのアドレスを生成する。
【0029】
デバイスアドレス生成回路24は、PCIeデバイス31〜33へアクセスするアドレスを生成する回路である。デバイスアドレス生成回路24は、PCIeDevアドレス生成回路00〜PCIeDevアドレス生成回路XXを含む。PCIeDevアドレス生成回路00〜PCIeDevアドレス生成回路XXのそれぞれは、FPGA2(デバイスアクセス部2A)に接続されるPCIeデバイス31等の何れかのアドレスを生成する。
【0030】
デバイスアクセス部2Aを実現するFPGA2は、64bitアーキテクチャで設計され、最大で0x00000000_00000000〜0xFFFFFFFF_FFFFFFFFの2
64bytesのアドレス空間を扱うことができる。
【0031】
PCIeアクセス制御回路21は、デバイスアクセス部2Aの動作を制御する。例えば、PCIeアクセス制御回路21は、PCIeデバイス31等へのアクセス開始を指示するためのアクセス指示データを書き込むための命令アドレスを有し、これを0x00000010_F0000000に割り当てる。プロセッサコア11は、0xF0000000に対してアクセスを発行し、プロセッサコア11が備えるTLBによって、0x10_F0000000にアドレスが変換されてFPGA2にアクセスする。このアドレス0x10_F0000000に対して予め定めた書式に従った4byteのアクセス指示データを書き込むと、FPGA2は、このアクセス指示データにおいて指定された命令セットを実行する命令セット回路N(Nは00〜XXの何れか)を動作させる。
【0032】
ここで、
図7を参照し、アクセス指示データについて説明する。
図7は、本発明の一実施形態によるアクセス指示データのデータ構造の一例を示す図である。
図示するようにアクセス指示データは4byteで構成される。4byteのうちの先頭から3byteに値が設定され、4byte目は予備の領域である。
先頭のByte0には、Commandデータが設定される。Commandデータには、どの命令セットを実行するかを指定する値が設定される。PCIeアクセス制御回路21は、命令セット回路00〜命令セット回路XXの中から、Byte0に設定された値に対応する回路を起動する。
【0033】
次のByte1には、Deviceデータが設定される。Deviceデータにはアクセス命令の発行先を指定する。具体的には、Byte1には、PCIeSW3に接続されたPCIeデバイス31〜33のうち、どのデバイスかを指定するデバイス番号が設定される。
図2に示すようにPCIeデバイス30〜33毎に、固有のアドレスが割り当てられるため、PCIeデバイスの識別番号であるDevice番号が分かれば、対象のPCIeデバイスにアクセスするためのアドレスを特定することが出来る。デバイスアドレス生成回路24は、このDevice番号に基づいてMMIO方式でのアクセスに用いるアクセス先のアドレスを生成する。
【0034】
次のByte2には、EntryNumberデータが設定される。EntryNumberデータには、アクセスに必要なデータを格納するエリアのエントリ番号を指定する。
図5を参照して説明したように、デバイスアクセス部使用領域1、2は、エントリごとに使用エリアが定められているため、エントリ番号を元に命令回路Nが使用するエリアのRAM4上のアドレスを特定することが出来る。メモリアドレス生成回路22は、このエントリ番号に基づいてRAM4上のアドレスを生成する。
【0035】
図5を参照して説明したようにRAM4のデバイスアクセス部使用領域は、PCIeデバイスからの割り込みをトリガーにFPGA2が実行を開始する場合に使用するデバイスアクセス部使用領域1(FPGA Entry)と、プロセッサ1の要求で実行される命令セットで使用するデバイスアクセス部使用領域2(Processor Entry)と、に分かれる。
【0036】
プロセッサ1起因でアクセスを開始する場合、命令セットで使用するデータ(WriteデータやReadデータとの比較値)があれば、プロセッサコア11は、デバイスアクセス部使用領域2のProcessor Entry 0〜Processor Entry nの何れかのエントリに予めデータを格納してから、そのエントリ番号(Processor Entry 0に書き込んだのであればエントリ番号は“0”)をアクセス指示データのByte2に設定し、命令セットをByte0に設定し、アクセス先のDevice番号をByte1に設定してFPGA2のアドレス(0x10_F0000000)にアクセス指示データを書き込む。
なお、アクセスに必要なデータは、RAM4のデバイスアクセス部使用領域1に書き込んで書き込んだエントリのエントリ番号を通知するほかに、直接、FPGA2にMMIOアクセスにより書き込む方法でもよい。
【0037】
プロセッサ1起因のアクセスにおいて、4byteのアクセス指示データが0x10_F0000000に書き込まれると、PCIeアクセス制御回路21は、命令セット回路00〜命令セット回路XXの中から、先頭のByte0に設定されたCommandデータに応じた回路を起動する。また、PCIeアクセス制御回路21は、デバイスアドレス生成回路24にDevice番号を通知する。デバイスアドレス生成回路24は、Device番号に基づいて、命令セット回路23が発行するアクセスの発行先のアドレスを生成する。また、PCIeアクセス制御回路21は、メモリアドレス生成回路22にエントリ番号を通知する。メモリアドレス生成回路22は、エントリ番号に基づいて、命令セット回路23が使用するデータが格納されたRAM4のアドレスを生成する。PCIeアクセス制御回路21は、生成されたアドレスに基づいて、PCIeインタフェース20Aを介して、RAM4から命令セットで使用するデータを読み出して、起動した命令セット回路00〜XXの何れかへ渡す。起動された命令セット回路23は、デバイスアドレス生成回路24が生成したアドレスに対し、MMIOアクセスを発行する。
【0038】
PCIeデバイス31等の割り込みによるPCIeデバイス起因のアクセスの場合、PCIeアクセス制御回路21は、命令セット回路00〜命令セット回路XXの中から、割り込みに伴って必要となる処理の命令セットを実行する命令セット回路を起動する。一般的に割り込みが発生した場合、割り込み要因を読み出し、割り込みをクリアする。PCIeアクセス制御回路21によって起動された命令セット回路は、読みだした割り込み要因をデバイスアクセス部使用領域1のFPGA Entry 0〜FPGA Entry nの何れかに格納して、MSIによってプロセッサ1に通知する。
【0039】
(動作)
図8は、本発明の一実施形態によるデバイスアクセスの動作例を示す図である。
プロセッサ1が、PCIeデバイス31に対し、複数の命令を含む命令セットαを発行するとする。例えば、プロセッサ1は、RAM4のデバイスアクセス部使用領域2にWriteするデータを格納し(S1)、データを格納したデバイスアクセス部使用領域2のエントリ番号、アクセス先のPCIeデバイス31のデバイス番号、命令セットαを指定して、4byteのアクセス指示データを作成する。プロセッサ1は、アクセス指示データを0x10_F0000000に書き込む。これがFPGA2へのデバイスアクセス指示である(S2)。
【0040】
デバイスアクセス指示を受けたFPGA2では、PCIeアクセス制御回路21が、命令セットα(この例では、PCIeデバイスに対しRead、Write、Readを実行する)に対応する命令セット回路(この例では命令セット回路00とする。命令セット回路00はアドレス生成回路22のRAMアドレス生成回路00と、アドレス生成回路24のPCIeDevアドレス生成回路00を使用する。)を起動する。また、命令セット回路00は、エントリ番号に基づいてメモリアドレス生成回路22(RAMアドレス生成回路00)が生成したWriteするデータが格納されたアドレスからデータを取得する。また、命令セット回路00は、デバイスアドレス生成回路24(PCIeDevアドレス生成回路00)がDevice番号に基づいて生成したアクセス先のアドレスに対して、PCIeSW3を介して、PCIeデバイス31へのアクセスを開始する。
ここで、命令セット回路00は、アクセス先のデバイス(今回の例では、PCIeデバイス31)へ“Read request”を発行し、アクセス先のデバイスから“Read reply”が返ってくると、アクセス先のデバイスへ“Write request”を発行し、続いて、アクセス先のデバイスへ“Read request”を発行して、アクセス先のデバイスからの“Read reply”を受信し、さらにアクセス先のデバイスで読み取ったデータをRAM4に格納し、命令セットの実行完了をプロセッサへ通知するように構成されている。つまり、命令セット回路00は、プロセッサ1の介在を必要としない一連の処理を実行するように構成されている。命令セット回路00の起動後は、命令セット回路00が主体的にこれらの処理を行う。
命令セット回路00は、“Read request”の発行(S3)、“Read reply”の受信(S4)、“Write request”の発行(S5)、“Read request”の発行(S6)、“Read reply”の受信(S7)を順次行う。
【0041】
次に命令セット回路00は、RAM4へデータを格納する。また、命令セット回路00は、メモリコントローラ14へ“Read data Write”を発行する(S8)。これにより、RAM4の当該エントリにPCIeデバイス31からReadしたデータが格納される。
次に命令セット回路00は、MSIを使用してプロセッサ1に命令セットαの完了、データが格納されたエントリ番号を通知する(S9)。
【0042】
比較の為、
図9に一般的なデバイスアクセスの動作例を示す。
デバイスアクセス部2Aを有しない演算装置では、命令セットαをPCIeデバイス31へ発行する場合、プロセッサ1が、PCIeSW3を介して、PCIeデバイス31へ一連の命令セット(S3´〜S7´)を発行する。
図9の方法の場合、S3´〜S4´の期間、S6´〜S7´の期間でプロセッサ1が待ち状態となり、処理が滞る可能性がある。
【0043】
これに対し、本実施形態に係る演算装置10では、
図8に例示するようにS2〜S9の期間は、他の処理を実行することができる。
【0044】
また、
図8の例では、PCIeデバイス31のみにアクセスする例を挙げたが、プロセッサ1は、FPGA2を使用して、PCIeデバイス31へのアクセスと並行して、PCIeデバイス32、33へのアクセスを実行することができる。この場合、プロセッサ1は、PCIeデバイス31へのアクセス指示データを0x10_F0000000に書き込み、続いて、PCIeデバイス32、33へのアクセス指示データを0x10_F0000000に順次書き込む。FPGA2では、PCIeアクセス制御回路21が、0x10_F0000000に書き込まれたアクセス指示データを順次処理する。これにより、一般的なデバイスアクセスでは、例えば、0x10_00000000(
図4)に割り当てるデバイスをPCIeデバイス30〜33の間で次々と切り替えてこれらのデバイスにアクセスしなければならないところ、FPGA2を使用することにより、デバイスの切り替えを行うことなく、PCIeデバイス30〜33へ並行してアクセスを行うことができる。従って、本実施形態によれば、1つのデバイスにアクセスする間、他のデバイスへのアクセスが不可能となり、演算装置10のパフォーマンスが低下するという問題が生じることは無い。
【0045】
上記説明したように、本実施形態のデバイスアクセス部2A(FPGA2)によれば、プロセッサのアドレス空間の所定のアドレスにデバイスアクセス部2Aを割り当てる。これにより、PCIeデバイス毎に個別に割り当てていたアドレスを削減し、限られたアドレス空間で複数のPCIeデバイスに対しMMIOアクセスすることが可能となる。例えば、
図4に示す例では、一般的なデバイスアクセスでは、アドレス空間が不足し、PCIeデバイスを1つしか割り当てることができない。その為、複数のデバイスにアクセスする場合、同じアドレスに割り当てるPCIeデバイスを切り替えて使用する排他制御が必要であった。本実施形態では、デバイスアクセス部2AがPCIeデバイスへのアクセスを代行するため、プロセッサ1のアドレス空間にアクセス先のPCIeデバイスを割り当てる必要がなくなる。その為、排他制御を行わずに同時に複数のPCIeデバイスへアクセスすることができ、パフォーマンスの低下を防ぐことができる。
【0046】
さらに、
図9を用いて説明したように、PCIeデバイス31へのReadアクセスを行った場合には、Replyを待つ必要があり、この間、プロセッサ1は処理を実行できず性能が低下する。これに対し、本実施形態によれば、Reply待ちは、デバイスアクセス部2Aが代行するため、プロセッサ1はPCIeデバイス31へのアクセス中にもデバイスの応答を待つ必要が無く、この間に他の処理を実行することができる。つまり、プロセッサ1からデバイスアクセス部2Aへ命令セットをオフロードすることにより、プロセッサ1の待ち時間を削減して、プロセッサ1の性能を向上することができる。
以上により、パフォーマンス悪化を抑えつつ、デバイスへのアクセスのために必要となるアドレス空間を削減することが可能となる。
【0047】
図10は、本発明の一実施形態によるデバイスアクセス装置の最小構成を示す図である。
デバイスアクセス装置40は、少なくとも制御手段41を備えている。
デバイスアクセス装置40は、プロセッサに代わってMMIO方式でデバイスへのアクセスを行う。制御手段41は、プロセッサの指示に基づいて、アクセス対象のデバイスへの命令セットを発行し、前記命令セットの発行が完了すると、プロセッサへ命令セットの発行完了を通知する。
なお、デバイスアクセス装置40は、実施形態のFPGA2(デバイスアクセス部2A)に対応し、制御手段41は、PCIeアクセス制御回路21に対応する。
【0048】
なお、デバイスアクセス部2Aの各手段による各処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムを、プロセッサ1Aが読み出して実行することによって、上記処理が行われてもよい。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、CD−ROM、DVD−ROM、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしてもよい。また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
【0049】
その他、本発明の趣旨を逸脱しない範囲で、上記した実施の形態における構成要素を周知の構成要素に置き換えることは適宜可能である。また、この発明の技術範囲は上記の実施形態に限られるものではなく、本発明の趣旨を逸脱しない範囲において種々の変更を加えることが可能である。
【解決手段】デバイスアクセス装置は、プロセッサに代わってデバイスへMMIO方式でのアクセスを行うデバイスアクセス装置であって、前記プロセッサの指示に基づいて、前記デバイスへの命令セットを発行し、前記命令セットの発行が完了すると、前記プロセッサへ前記命令セットの発行の完了を通知する制御手段、を備える。