JP5924060B2 - I/o制御装置およびi/o装置の制御方法、並びにコンピュータ・プログラム - Google Patents

I/o制御装置およびi/o装置の制御方法、並びにコンピュータ・プログラム Download PDF

Info

Publication number
JP5924060B2
JP5924060B2 JP2012067746A JP2012067746A JP5924060B2 JP 5924060 B2 JP5924060 B2 JP 5924060B2 JP 2012067746 A JP2012067746 A JP 2012067746A JP 2012067746 A JP2012067746 A JP 2012067746A JP 5924060 B2 JP5924060 B2 JP 5924060B2
Authority
JP
Japan
Prior art keywords
transaction
control unit
instruction
access
buffer
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.)
Active
Application number
JP2012067746A
Other languages
English (en)
Other versions
JP2013200646A (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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2012067746A priority Critical patent/JP5924060B2/ja
Publication of JP2013200646A publication Critical patent/JP2013200646A/ja
Application granted granted Critical
Publication of JP5924060B2 publication Critical patent/JP5924060B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Bus Control (AREA)

Description

本発明は、主記憶装置に対する処理をI/O装置等によって制御する技術分野に関する。
近年、サーバやパーソナルコンピュータ等の電子機器は、高性能な演算処理装置や主記憶装置を搭載している。そのため、サーバやパーソナルコンピュータ等の電子機器は、作業等を処理する処理能力が飛躍的に向上している。これは、演算処理装置や主記憶装置が、高速で処理を実行するためである。また、サーバやパーソナルコンピュータ等の電子機器は、演算処理装置や主記憶装置が作業等を処理するためのデータをI/O(Input/Output)装置に格納する。演算処理装置や主記憶装置が高速で処理を実行するのに対して、I/O装置の処理速度は、演算処理装置や主記憶装置と比較した場合、低速である。そのため、演算処理装置や主記憶装置の処理能力とI/O装置の処理能力との間には、ギャップが発生する。これらから、I/O装置の処理能力は、サーバやパーソナルコンピュータ等の性能を決定する大きな要因となっている。
また、一般的に、大規模なコンピュータシステムでは、演算処理装置がI/O装置の処理を制御するのではなく、I/O装置がI/Oデバイスと主記憶装置とのデータ転送処理を担う構造となっている。大規模なコンピュータシステムにおいて、I/O装置の処理時間は、主記憶装置に対するアクセス処理が占める割合が大きい。このため、大規模なコンピュータシステムは、I/O装置のI/O処理時間を短くすることが不可欠である。
このような背景から、サーバやパーソナルコンピュータ等の電子機器は、I/O装置の処理性能を向上させる必要がある。例えば、特許文献1は、システムからの主記憶装置に対する処理要求に対し順位番号を付与する。主記憶アクセス制御装置は、付与した順位番号に従って処理要求を実行する優先順位制御方式について開示する。
特許文献1に記載された優先順位制御方式は、複数のシステムから主記憶装置に対する処理要求を、処理待受けのためにシステム夫々に対応して設けたバッファメモリに格納する。リクエスト番号用カウンタは、バッファメモリを格納する際、バッファメモリ夫々が受け付けた処理要求に受付時点の順位番号を付与する。主記憶アクセス制御装置は、付与した順位番号順にバッファメモリに格納された処理要求を読み出すと共に、読み出した処理を実行する。また、主記憶アクセス制御装置は、読み出し出力夫々が同一順位番号である場合、システム処理の順序に従って処理を実行する。
このように、特許文献1は、システムから主記憶装置に対する処理要求を受付けた順序で実行すると共に、同一順位番号の時は、システム処理が定める順序に従って処理を実行する技術を開示する。
また、特許文献2は、入出力装置からの主記憶装置または通信バッファに対するアクセス要求にアクセス順序を示すアクセス要求識別子を付加し、付加した順序で入出力装置に送出する計算機システムについて開示する。
特許文献2に記載された計算機システムは、入出力装置からの主記憶装置MSまたは通信バッファCBSに対するアクセス要求に対して、アクセス要求の制御情報にアクセス順序を示すアクセス要求識別子を付加する。主記憶装置MSまたは通信バッファCBSは、入出力装置からのアクセス要求に対してデータを出力し、出力したデータをデータ・スタック群に格納する。データ・スタック群に格納したデータは、アクセス要求識別子で決まる順序で入出力装置にデータを送出する。また、通信バッファCBSにデータを書き込む際、CBS格納検出回路は、通信バッファCBSに格納するタイミングを検出する。CBS格納検出回路は、検出した通信バッファCBSに格納するタイミングを優先順位決定回路に報告する。優先順位決定回路は、CBS格納検出回路からの報告に対し、一定の間、通信バッファCBSへのアクセスの優先順位決定(選択)を停止する。
このように、特許文献2は、入出力装置からの主記憶装置MSまたは通信バッファCBSに対するアクセス要求に対して、アクセス要求識別子を付与する。さらに、主記憶装置MSまたは通信バッファCBSは、アクセス要求に対して、データをデータ・スタック群に格納する。このため、主記憶装置MSと通信バッファCBSとのアクセス速度が異なる記憶装置を有する計算機システムは、アクセス速度が異なることによりデータ転送の完了した順序が逆転した場合であっても、アクセス要求識別子を基に、決められた順序でデータ・スタック群に格納されたデータを入出力装置に送出する。このため、優先順位決定回路は、主記憶装置MSに対するアクセスが終了することを待つことなく、後続の通信バッファCBSへのアクセスを開始する技術を開示する。
特開昭60−074074号公報 特開平06−187231号公報
しかしながら、上述した特許文献1および特許文献2では、入出力装置から要求された順序にて、データの送受信をすることが記載されているに留まり、そのデータをどのように効率よく送受信するかについては、述べられていない。
さらに、特許文献2では、通信バッファCBSに格納するタイミングの間、他のアクセスを停止する。このため、特許文献2では、他のアクセス命令を全て停止してしまうので、主記憶装置に対する複数のアクセス命令が発行された場合、効率よくデータ送受信をすることが考慮されておらず、複数のアクセス命令の実行待ちが発生する。そのため、特許文献2に開示された技術によっては、依然としてI/O処理全体の遅延は、解決することが困難である。
例えば、I/O装置が主記憶装置に対するデータ転送方法は、I/Oプロセッサ等がI/O装置と主記憶装置とのデータ転送を管理するPIO(Programmed Input Output)方式と、I/Oプロセッサ等が転送要求を行い、その転送要求を受けたDMA(Direct Memory Access)コントローラが実際の転送命令を発行するDMA(Direct Memory Access)方式による方法がある。
PIO方式は、プロセッサ等により主記憶装置に対して、ロード命令、ストア命令、SYNC(synchronization)命令(順序制御命令)、FLUSH命令(同期制御命令)等の複数の命令を実行する。そのため、PIO方式は、データ量が少ない場合のデータ送受信に向いている。
一方、DMA方式は、プロセッサ等によりデータ転送要求をDMAコントローラに発行する。データ転送要求を受けたDMAコントローラは、主記憶装置に対して、ロード命令、ストア命令を実行する。I/O装置は、主記憶装置に対してのデータ転送処理をDMAコントローラに任せることができる。そのため、DMA方式は、データ量が多い場合のデータ送受信に向いている。
このように、I/O装置は、これら、PIO方式、DMA方式を組み合わせることで、全体のI/O処理時間を短くしている。
しかしながら、PIO方式において、SYNC命令およびFLUSH命令等の主記憶装置に対するアクセスを停止する必要のある命令が発行された場合、主記憶装置のアクセス制御を担うメモリコントローラは、主記憶装置に対して発行するSYNC命令およびFLUSH命令の実行が終了するまで、後続する他のアクセス命令を抑止するように動作する。
以下の説明において、I/OプロセッサやI/Oプロセッサからアクセス制御されることにより、I/O装置を制御するソフトウェア(Firmware;以降、「FW」と称する)等を総称してリクエストリソースと称する(以下の実施形態においても同様)。
より具体的に、I/OプロセッサがSYNC命令またはFLUSH命令を発行した際、メモリコントローラは、SYNC命令またはFLUSH命令が完了するまで、後続の命令を実行することを抑止する。
さらに、メモリコントローラは、同じリクエストリソースが発行したアクセス命令だけでなく、他のリクエストリソースが発行した命令も同様に抑止してしまうという課題がある。そのため、I/O処理全体における遅延の原因となっている。
本発明の主たる目的は、上述した課題であるI/O制御装置によって主記憶装置に対するアクセス命令を制御することにより、I/O装置全体の処理遅延を改善するI/O制御装置等を提供することにある。
上記の課題を達成すべく、本発明に係るI/O制御装置は、以下の構成を備えることを特徴とする。
即ち、本発明に係るI/O制御装置は、
アクセスリソースが発行する主記憶装置に対する命令の種別を判別し、判別した結果、アクセス命令だと判別した場合には、第1のトランザクションを生成する一方、転送指示命令だと判別した場合には、第2のトランザクションを生成する第1の制御部と、前記第2のトランザクションが生成された場合に、前記第2のトランザクションを基にデータ転送に適したアクセス命令単位に分割した第3のトランザクションを生成する第2の制御部と、前記第1のトランザクションと前記第3のトランザクションとが生成された場合に、該生成された第1及び第3のトランザクションをトランザクション毎に格納し、格納したときの順序と同じ順序でメモリコントローラに送信する第3の制御部と、を備えることを特徴とする。
また、同目的を達成すべく、本発明に係る記憶デバイスにおける異常分析方法は、以下の構成を備えることを特徴とする。
即ち、本発明に係るI/O装置の制御方法は、
アクセスリソースが発行する主記憶装置に対する命令の種別を判別し、判別した結果、アクセス命令だと判別した場合には、第1のトランザクションを生成する一方で、転送指示命令だと判別した場合には、第2のトランザクションを生成し、前記第2のトランザクションが生成された場合に、前記第2のトランザクションを基にデータ転送に適したアクセス命令単位に分割した第3のトランザクションを生成し、前記第1のトランザクションと前記第3のトランザクションとが生成された場合に、該生成された第1及び第3のトランザクションをトランザクション毎に格納し、格納したときの順序と同じ順序でメモリコントローラに送信することを特徴とする。
尚、同目的は、上記の各構成を有するI/O制御装置およびI/O装置の制御方法を、コンピュータによって実現するコンピュータ・プログラム、およびそのコンピュータ・プログラムが格納されている、コンピュータ読み取り可能な記憶媒体によっても達成される。
本発明によれば、I/O制御装置によって主記憶装置に対するアクセス命令を制御することにより、I/O処理全体の遅延を改善することができる。
本発明の第1の実施形態におけるI/O装置の構成を示すブロック図である。 本発明の第1の実施形態における第1のサブ制御部の構成を示すブロック図である。 本発明の第1の実施形態における第2のサブ制御部の構成を示すブロック図である。 本発明の第1の実施形態における第3の制御部の構成を示すブロック図である。 本発明の第2の実施形態におけるI/O装置の構成を示すブロック図である。 本発明の第2の実施形態におけるFW制御部の構成を示すブロック図である。 本発明の第2の実施形態におけるDMA制御部の構成を示すブロック図である。 本発明の第2の実施形態におけるTXN制御部の構成を示すブロック図である。 本発明の第2の実施形態におけるI/O制御装置が行う送信処理を示すフローチャート図である。 本発明の第2の実施形態におけるI/O制御装置が行う受信処理を示すフローチャート図である。 本発明の第2の実施形態の変形例におけるI/O装置の構成を示すブロック図である。 本発明の第3の実施形態におけるI/O装置の構成を示すブロック図である。 本発明の第3の実施形態におけるFW制御部の構成を示すブロック図である。 本発明の第3の実施形態におけるDMA制御部の構成を示すブロック図である。 本発明の第3の実施形態におけるTXN制御部の構成を示すブロック図である。 本発明の第3の実施形態におけるアクセス命令の処理を示すシーケンス図である。 本発明の第3の実施形態における複数のアクセス命令の処理を示すシーケンス図である。 本発明を適用可能なコンピュータシステムの構成を示す概略ブロック図である。
以下、本発明の実施形態について図面を参照して詳細に説明する。
なお、実施形態では、本発明をコンピュータシステムに適用した場合を例として説明する。
図18は、本発明を適用可能なコンピュータシステムの構成を示す概略ブロック図である。
図18において、係るコンピュータシステムは、I/O装置1、メモリコントローラ2、主記憶装置3、演算処理装置4、ディスク装置6、LAN(Local Area Network)7、テープ装置8、ホストコンピュータ9を有する。
I/O装置1は、複数のチャンネル(Channel、CH)スロット5を有する。チャンネルスロット5は、チャンネルカードを搭載することにより、ディスク装置6、LAN7、テープ装置8、ホストコンピュータ9等を実装する。
メモリコントローラ2は、コンピュータシステム上で主記憶装置3に記憶されたデータのロードおよびストア等を実行する際、主記憶装置3を制御する制御装置である。
主記憶装置3は、演算処理装置4がメモリコントローラ2を介してアクセスすることができる記憶装置である。
演算処理装置4は、コンピュータシステムの全体の動作を司るものである。
以下、上述した構成により実行される処理の詳細について説明する。
<第1の実施形態>
図1は、本発明の第1の実施形態におけるI/O装置1の構成を示すブロック図である。
図1において、I/O装置1は、大別して、I/O制御装置10を有する。
より具体的に、I/O制御装置10は、第1の制御部12、第2の制御部13、第3の制御部14を有する。
より具体的に、第1の制御部12は、第1のサブ制御部15、第2のサブ制御部16を有する。
第1の制御部12は、リクエストリソース11から送信された主記憶装置3に対するアクセス命令を受信すると共に、受信したアクセス命令のヘッダに格納された情報を基に転送方式を判別する。第1の制御部12は、転送方式を判別した結果、主記憶装置に対するアクセス命令(PIO方式)であると判別した場合、アクセス命令を第1のサブ制御部15に入力する。一方、第1の制御部12は、データ転送要求(DMA方式)であると判別した場合、アクセス命令を第2のサブ制御部16に入力する。
図2は、第1の実施形態に係るI/O制御装置のうち、第1のサブ制御部15の構成を示すブロック図である。第1のサブ制御部15は、第1のバッファ20、第1のID(identification)管理部21を有する。
第1のバッファ20は、第1の制御部12から入力された主記憶装置3へのアクセス命令の消失を防止するためにアクセス命令を格納する。
以下の説明において、本実施形態では、説明の便宜上、第1のID管理部21にて生成されたトランザクションを第1のトランザクションと称する。また、第2のID管理部23にて生成されたトランザクションを第2のトランザクションと称する。さらに、第3のサブ制御部17にて生成されたトランザクションを第3のトランザクションと称する(以下の実施形態においても同様)。
第1のID管理部21は、第1のバッファ20に格納したアクセス命令を読み出す。第1のID管理部21は、読み出したアクセス命令にID(identification、識別子)を付与すると共に、主記憶装置3にアクセスするためのトランザクション(第1のトランザクション)を生成する。さらに、第1のID管理部21は、付与したIDとトランザクションとを記憶(記述)したIDリストを作成する。
第1のID管理部21は、生成したトランザクション(第1のトランザクション)を第1の制御部12を経由して第3の制御部14に送信する。
また、第1のID管理部21は、第3の制御部14が送信したリプライトランザクションを、第1の制御部12を経由して受信する。第1のID管理部21は、受信したリプライトランザクションに埋め込まれたIDを読み込むと共に、読み込んだIDと作成したIDリストとに基づいてリプライ結果(リプライデータを含む)を、リクエストリソース11が指定したリプライエリアに格納する。
図3は、第1の実施形態に係るI/O制御装置のうち、第2のサブ制御部16の構成を示すブロック図である。第2のサブ制御部16は、DMAコントローラ22、第2のID管理部23を有する。
DMAコントローラ22は、リクエストリソース11から送信されたDMA転送要求を、第1の制御部12を経由して受信する。
DMAコントローラ22は、受信したDMA転送要求に応じて、主記憶装置3にアクセスするアドレスとデータサイズを指定したトランザクションを生成する。DMAコントローラ22は、第2のID管理部23に生成したトランザクションを送信する。
第2のID管理部23は、DMAコントローラ22から送信されたトランザクションを受信する。第2のID管理部23は、受信したトランザクションにID(identification、識別子)を付与すると共に、主記憶装置3にアクセスするためのトランザクション(第2のトランザクション)を生成する。さらに、第2のID管理部23は、付与したIDとトランザクションとを記憶(記述)したIDリストを作成する。
第2のID管理部23は、生成したトランザクション(第2のトランザクション)を、第1の制御部12を経由して第3のサブ制御部17に送信する。
また、第2のID管理部23は、第4のサブ制御部18が送信したリプライトランザクションを、第1の制御部12を経由して受信する。第2のID管理部23は、受信したリプライトランザクションに埋め込まれたIDを読み込むと共に、読み込んだIDと作成したIDリストとに基づいてリプライ結果(リプライデータを含む)をリクエストリソース11が指定したリプライエリアに格納する。
尚、第1のID管理部21および第2のID管理部23が付与するIDは、トランザクション情報のヘッダデータの一部として埋め込めばよい。尚、一例として、トランザクション情報のヘッダデータの一部として埋め込む場合を示したが、トランザクション情報のヘッダデータに限らずトランザクション情報の未使用領域(エリア)にIDを埋め込んでもよい。
第2の制御部13は、第3のサブ制御部17、第4のサブ制御部18を有する。
第3のサブ制御部17は、第2のID管理部23が送信するトランザクション(第2のトランザクション)を格納する。さらに、第3のサブ制御部17は、格納したトランザクション(第2のトランザクション)を、主記憶装置3からのデータ転送に適したアクセス命令単位に変換したトランザクション(第3のトランザクション)を生成する(詳細については、後述する)。
第3のサブ制御部17は、生成したトランザクション(第3のトランザクション)を第3の制御部14に送信すると共に、第4のサブ制御部18にトランザクション情報を送信する。
第4のサブ制御部18は、第3のサブ制御部17から送信されたトランザクション情報を格納する。
また、第4のサブ制御部18は、第3の制御部14から送信されたリプライトランザクションを受信すると共に、受信したリプライトランザクションを格納する。
第4のサブ制御部18は、格納したリプライトランザクションを第3のサブ制御部17から受信したトランザクション情報を基にアクセス命令単位に分割されたリプライトランザクションを結合することにより、リプライトランザクションを生成する(詳細については、後述する)。
第4のサブ制御部18は、生成したリプライトランザクションを、第1の制御部12を経由して第2のサブ制御部16に送信する。
第3の制御部14は、メモリコントローラ2とのI/Oインターフェース制御機能を有し、メモリコントローラ2とのトランザクションを送受信する機能を有する。
第3の制御部14は、第1のサブ制御部15または、第3のサブ制御部17から送信されたトランザクションを受信する。
図4は、第1の実施形態に係るI/O制御装置のうち、第3の制御部14の構成を示すブロック図である。第3の制御部14は、第2のバッファ24、第3のバッファ25、アクセス制御部26、送信バッファ27、受信バッファ28を有する。
第2のバッファ24は、第1のサブ制御部15から送信されたトランザクション(第1のトランザクション)を格納する。
第3のバッファ25は、第3のサブ制御部17から送信されたトランザクション(第3のトランザクション)を格納する。
アクセス制御部26は、第2のバッファ24および第3のバッファ25に格納されたトランザクションを読み出す。アクセス制御部26は、読み出したトランザクションを送信バッファ27に送信する。
より具体的に、アクセス制御部26は、第3のバッファ25に格納されたトランザクション(第3のトランザクション)を読み出す。アクセス制御部26は、読み出したトランザクション(第3のトランザクション)を送信バッファ27に送信する。
一方、アクセス制御部26は、第2のバッファ24に格納されたトランザクション(第1のトランザクション)に対してアクセス命令の種別を解析する。アクセス制御部26は、解析した結果、主記憶装置3へのアクセス命令がSYNC命令またはFLUSH命令であると判断した場合、命令発行抑止フラグを設定すると共に、送信バッファ27に当該アクセス命令を送信する。
アクセス制御部26は、命令発行抑止フラグを設定した場合、送信したトランザクション(第1のトランザクション)に対するリプライトランザクションを受信するまで待機する。より具体的に、アクセス制御部26は、命令発行抑止フラグを設定後、第2のバッファ24に格納されているトランザクション(第1のトランザクション)の読み出しを抑止する。
尚、アクセス制御部26は、命令発行抑止フラグを設定した場合であっても、第3のバッファ25に格納されたトランザクション(第3のトランザクション)を、抑止することなく読み出す。
送信バッファ27は、アクセス制御部26から送信されたトランザクションの消失を防止するために格納すると共に、トランザクションを格納した順序でメモリコントローラ2に送信する。
メモリコントローラ2は、送信バッファ27から送信されたトランザクションを受信すると共に、受信した主記憶装置3に対するトランザクションを実行する。メモリコントローラ2は、実行したリプライをリプライトランザクションとして、第3の制御部14に送信する。
第3の制御部14は、メモリコントローラ2からのリプライトランザクションを受信すると共に、受信したリプライトランザクションを受信バッファ28に入力する。
受信バッファ28は、メモリコントローラ2からのリプライトランザクションを受信すると共に、受信したリプライトランザクションを格納する。さらに、受信バッファ28は、格納したリプライトランザクションをアクセス制御部26に送信する。
尚、第1のID管理部21および第2のID管理部23によってトランザクションに埋め込まれたIDは、メモリコントローラ2によってリプライトランザクション情報のヘッダデータの一部としてリプライトランザクションに引き継がれる。
アクセス制御部26は、受信バッファ28からリプライトランザクションを受信する。アクセス制御部26は、受信したリプライトランザクションのヘッダに格納された情報を基に転送方式を判別する。
アクセス制御部26は、転送方式を判別した結果、主記憶装置に対するアクセス命令(PIO方式)であると判別した場合、命令発行抑止フラグを設定した命令であるか否かを解析する。
より具体的に、アクセス制御部26は、解析の結果、リプライトランザクションが命令発行抑止フラグを設定した命令であると判別した場合、命令発行抑止フラグを解除する。さらに、アクセス制御部26は、リプライトランザクションを第1のサブ制御部15に送信する。
一方、アクセス制御部26は、転送方式を判別した結果、データ転送要求(DMA方式)であると判別した場合、リプライトランザクションを第4のサブ制御部18に送信する。
尚、アクセス制御部26は、命令発行抑止フラグを解除した場合、第2のバッファ24に格納されているトランザクションの読み出しを開始する。
尚、アクセス制御部26は、受信したリプライトランザクションの要求元が第1のサブ制御部15である場合、リプライトランザクションを第1のサブ制御部15に送信する。また、アクセス制御部26は、受信したリプライトランザクションの要求元が第3のサブ制御部17である場合、リプライトランザクションを第4のサブ制御部18に送信する。
このように本実施の形態に係るI/O制御装置10によれば、主記憶装置に対するアクセス命令の制御をメモリコントローラではなく、I/O制御装置10によって制御することにより、I/O装置全体の処理遅延を改善する。特に、本実施の形態によれば、SYNC命令およびFLUSH命令が発行された場合においても、SYNC命令およびFLUSH命令の後続命令のみを抑止することでI/O処理全体の処理時間の短縮を実現できる。
<第2の実施形態>
次に、上述した第1の実施形態に係るI/O制御装置10を基本とする第2の実施形態について説明する。以下の説明においては、本実施形態に係る特徴的な部分を中心に説明する。その際、上述した第1の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明は省略する。
図5は、本発明の第2の実施形態におけるI/O装置1aの構成を示すブロック図である。
図5において、I/O装置1aは、大別して、I/O制御装置30を有する。
より具体的に、I/O制御装置30は、I/Oプロセッサインタフェース(Interfac;以降、「I/F」と称する)制御部33、ユニット34、メモリコントローラI/F制御部35を有する。尚、I/OプロセッサI/F制御部33は、第1の実施形態における第1の制御部12に相当する。また、ユニット34は、第1の実施形態における第2の制御部13に相当する。
I/Oプロセッサ32は、ローカルメモリ31とのメモリインターフェースを有し、ローカルメモリ31へのアクセス制御機能を有する。尚、I/Oプロセッサ32は、第1の実施形態におけるリクエストリソース11に相当する。
ローカルメモリ31は、I/Oプロセッサ32からアクセス制御されることにより、I/O装置を制御するソフトウェア(FW)とチャンネルスロット5に実装されるチャンネルカードを制御するソフトウェア(FW)とを格納したワークエリアを有する。また、ローカルメモリ31は、主記憶装置3へのストアデータおよび主記憶装置3からのロードデータを一時的に格納する。さらに、ローカルメモリ31は、I/Oプロセッサ32が送信した主記憶装置3に対するアクセス命令のリプライエリアとして使用する。
I/OプロセッサI/F制御部33は、I/O制御装置30とI/Oプロセッサ32との間でトランザクションの送受信を制御する機能を有する。
より具体的に、I/OプロセッサI/F制御部33は、FW制御部36、DMA制御部37を有する。FW制御部36は、第1の実施形態における第1のサブ制御部15に相当する。また、DMA制御部37は、第1の実施形態における第2のサブ制御部16に相当する。
図6は、第2の実施形態に係るI/O制御装置のうち、FW制御部36の構成を示すブロック図である。FW制御部36は、命令発行用バッファ41、第1のID管理部21を有する。命令発行用バッファ41は、第1の実施形態における第1のバッファ20に相当する。
図7は、第2の実施形態に係るI/O制御装置のうち、DMA制御部37の構成を示すブロック図である。DMA制御部37は、DMAコントローラ22、第2のID管理部23を有する。
ユニット34は、インバウンド制御部38、アウトバウンド制御部39を有する。インバウンド制御部38は、第1の実施形態における第3のサブ制御部17に相当する。また、アウトバウンド制御部39は、第1の実施形態における第4のサブ制御部18に相当する。
メモリコントローラI/F制御部35は、トランザクション(transaction;以降、「TXN」と称する)制御部40を有する。メモリコントローラI/F制御部35は、メモリコントローラ2とのI/Oインターフェース制御機能を有し、メモリコントローラ2とのトランザクションを送受信する機能を有する。TXN制御部40は、第1の実施形態における第3の制御部14に相当する。
メモリコントローラI/F制御部35は、インバウンド制御部38またはFW制御部36からのトランザクションを受信すると共に、受信したトランザクションをTXN制御部40に入力する。
また、メモリコントローラI/F制御部35は、メモリコントローラ2から送信されたリプライトランザクションを受信すると共に、受信したリプライトランザクションをTXN制御部40に入力する。
さらに、メモリコントローラI/F制御部35は、TXN制御部40にてリプライ確認されたリプライトランザクションを、FW制御部36またはアウトバウンド制御部39に送信する。
図8は、第2の実施形態に係るI/O制御装置のうち、TXN制御部40の構成を示すブロック図である。TXN制御部40は、FWリクエストバッファ42、インバウンドリクエストバッファ43、トランザクション(transaction;以降、「TXN」と称する)送受信制御部44、送信バッファ27、受信バッファ28を有する。
尚、FWリクエストバッファ42は、第1の実施形態における第2のバッファ24に相当する。また、インバウンドリクエストバッファ43は、第1の実施形態における第3のバッファ25に相当する。さらに、TXN送受信制御部44は、第1の実施形態におけるアクセス制御部26に相当する。
次に、本発明の第2の実施形態に係るより具体的なI/O制御装置の動作について説明する。
図9は、第2の実施形態のI/O制御装置が行う送信処理を示すフローチャートである。また、図10は、第2の実施形態のI/O制御装置が行う受信処理を示すフローチャートである。係るフローチャートに沿ってI/O制御装置の処理手順を説明する。
PIO方式において、I/Oプロセッサ32上で動作する制御ソフトウェア(FW)によって主記憶装置3に対してロード命令、ストア命令、SYNC命令(順序制御命令)、FLUSH命令(同期制御命令)等の複数のアクセス命令を実行する場合の動作について詳細に説明する。
I/Oプロセッサ32上で動作する制御ソフトウェア(FW)は、主記憶装置3に対するアクセス命令であるトランザクションをI/OプロセッサI/F制御部33に送信する。
I/OプロセッサI/F制御部33は、制御ソフトウェア(FW)から送信されたトランザクションを受信すると共に、受信したトランザクションのヘッダに格納された情報を基に転送方式を判別する。I/OプロセッサI/F制御部33は、転送方式を判別した結果、送信されたトランザクションをFW制御部36に入力する(ステップS1において「YES」)。
FW制御部36は、入力されたトランザクションを、命令発行用バッファ41に格納する。
第1のID管理部21は、命令発行用バッファ41に格納されたトランザクションを格納された順序で読み出す。第1のID管理部21は、読み出したトランザクションにIDを付与すると共に、主記憶装置3にアクセスするためのトランザクション(第1のトランザクション)を生成する。さらに、第1のID管理部21は、付与したIDとトランザクションとを記憶(記述)したIDリストを作成する。
第1のID管理部21は、生成したトランザクション(第1のトランザクション)を、メモリコントローラI/F制御部35に送信する(ステップS2)。
第1のID管理部21が付与したIDは、トランザクション情報のヘッダデータの一部として埋め込まれる。
メモリコントローラI/F制御部35は、トランザクション(第1のトランザクション)を受信すると共に、TXN制御部40に入力する。
TXN制御部40は、入力されたトランザクション(第1のトランザクション)を、FWリクエストバッファ42に格納する。TXN送受信制御部44は、FWリクエストバッファ42に格納された順序でトランザクション(第1のトランザクション)を読み出す。
TXN送受信制御部44は、読み出したトランザクション(第1のトランザクション)を解析する(ステップS5)。TXN送受信制御部44は、解析した結果、SYNC命令またはFLUSH命令であると判断した場合(ステップS6において「YES」)、命令発行抑止フラグを設定する(ステップS7)。
TXN送受信制御部44は、命令発行抑止フラグを設定後、送信バッファ27にトランザクション(第1のトランザクション)を送信する。
TXN送受信制御部44は、命令発行抑止フラグを設定した場合、送信したトランザクション(第1のトランザクション)に対するリプライトランザクションを、受信するまでFWリクエストバッファ42に格納されたトランザクション(第1のトランザクション)の読み出しを抑止する。
送信バッファ27は、トランザクション(第1のトランザクション)を格納すると共に、トランザクションが格納された順序でメモリコントローラI/F制御部35を、経由してメモリコントローラ2にトランザクション(第1のトランザクション)を送信する(ステップS8)。
次に、第2の実施形態のI/O制御装置が行う受信処理について、図10を参照して説明する。
メモリコントローラ2は、受信した主記憶装置3に対するトランザクション(第1のトランザクション)を実行する。メモリコントローラ2は、実行したリプライをリプライトランザクションとして、メモリコントローラI/F制御部35に送信する。
メモリコントローラ2は、トランザクション(第1のトランザクション)のヘッダ情報を、使用してリプライトランザクションのヘッダ情報の生成を行う。そのため、メモリコントローラ2は、トランザクション(第1のトランザクション)に埋め込まれているID情報も引き継ぐ。
メモリコントローラI/F制御部35は、リプライトランザクションを受信すると共に、TXN制御部40に入力する。
受信バッファ28は、TXN制御部40に入力したリプライトランザクションを格納する(ステップS21)。さらに、受信バッファ28は、格納したリプライトランザクションをTXN送受信制御部44に送信する。
TXN送受信制御部44は、受信バッファ28から送信されたリプライトランザクションを受信する。
TXN送受信制御部44は、受信したリプライトランザクションのヘッダに格納された情報を基に転送方式を判別する。
TXN送受信制御部44は、転送方式を判別した結果、主記憶装置に対するアクセス命令(PIO方式)であると判別した場合(ステップS22において「YES」)、命令発行抑止フラグを設定した命令であるか解析する(ステップS23)。
TXN送受信制御部44は、解析した結果、命令発行抑止フラグを設定したトランザクションのリプライであると判別した場合(ステップS24において「YES」)、命令発行抑止フラグを解除する(ステップS25)。
TXN送受信制御部44は、命令発行抑止フラグを解除後、FW制御部36にリプライトランザクションをメモリコントローラI/F制御部35を経由して送信する。
一方、TXN送受信制御部44は、命令発行抑止フラグを設定したトランザクションのリプライでないと判別した場合(ステップS24において「NO」)、FW制御部36にリプライトランザクションを、メモリコントローラI/F制御部35を経由して送信する。
尚、TXN送受信制御部44は、命令発行抑止フラグを解除した場合、FWリクエストバッファ42に格納されているトランザクションの読み出しを開始する。
I/OプロセッサI/F制御部33は、TXN送受信制御部44から送信されたリプライトランザクションを受信すると共に、受信したリプライトランザクションをFW制御部36に入力する。
第1のID管理部21は、FW制御部36に入力したリプライトランザクションを受信する。
第1のID管理部21は、リプライトランザクションに含まれるIDとトランザクション(第1のトランザクション)生成時に作成したIDリストとを照合する。第1のID管理部21は、IDリストを照合した結果、ローカルメモリ2に格納するリプライエリアを決定する(ステップS27)。第1のID管理部21は、決定したリプライエリアにI/Oプロセッサ32を経由してリプライトランザクションを送信する(ステップS28)。
I/Oプロセッサ32上で動作する制御ソフトウェア(FW)は、ローカルメモリ2内のリプライエリアを確認することにより、送信したトランザクションの結果を取得する。
次に、DMA方式において、I/Oプロセッサ32上で動作する制御ソフトウェア(FW)よってDMA転送要求を、DMAコントローラに送信する。DMAコントローラ22は、DMA転送要求を基に主記憶装置3に対してロード命令、ストア命令を実行する場合の動作について詳細に説明する。
さらに、第2の実施形態のI/O制御装置が行う送信処理について、図9を参照して説明する。
I/Oプロセッサ32上で動作する制御ソフトウェア(FW)は、DMA転送要求を送信する。
I/OプロセッサI/F制御部33は、制御ソフトウェア(FW)から送信されたDMA転送要求を受信すると共に、受信したDMA転送要求のヘッダに格納された情報を基に転送方式を判別する(ステップS1において「NO」)。I/OプロセッサI/F制御部33は、転送方式を判別した結果、DMA制御部37に入力する。
DMAコントローラ22は、DMA制御部37に入力したDMA転送要求を基に主記憶装置3に対するアクセスするためのアドレスとデータサイズを指定したトランザクションを生成する。より具体的に、一例として、トランザクションは、例えば、アドレス0000h、サイズ100h(256B)と指定することができる。尚、本実施形態では、説明の便宜上、簡単な数値を例に説明したが、これに限定されない。
DMAコントローラ22は、生成したトランザクションを第2のID管理部23に送信する。
第2のID管理部23は、DMAコントローラ22が生成したトランザクションを受信する。第2のID管理部23は、受信したトランザクションにIDを付与すると共に、主記憶装置3にアクセスするためのトランザクション(第2のトランザクション)を生成する(ステップS3)。また、第1のID管理機能23は、付与したIDとトランザクションとを記憶(記述)したIDリストを作成する。
第2のID管理部23は、生成したトランザクション(第2のトランザクション)を、I/OプロセッサI/F制御部33を経由してインバウンド制御部38に送信する。
インバウンド制御部38は、第2のID管理部23が送信するトランザクション(第2のトランザクション)を格納する。さらに、インバウンド制御部38は、格納したトランザクション(第2のトランザクション)を、主記憶装置3へのデータ転送に適したアクセス命令単位に変換したトランザクション(第3のトランザクション)を生成する(ステップS4)。
より具体的に、一例として、アクセス命令単位に変換したトランザクション(第3のトランザクション)は、例えば、アドレス0000h、サイズ100h(256B)と指定したトランザクション(第2のトランザクション)をアドレス0000h〜003Fh、サイズ40h(64B)、アドレス0040h〜007Fh、サイズ40h(64B)、サイズ0080h〜00BFh、サイズ40h(64B)、アドレス00C0h〜00FFh、サイズ40h(64B)となるように分割することができる。尚、本実施形態では、説明の便宜上、簡単な数値を例に説明したが、これに限定されない。
インバウンド制御部38は、生成したトランザクション(第3のトランザクション)を、メモリコントローラI/F制御部35に送信すると共に、アウトバウンド制御部39にトランザクション情報として送信する。
アウトバウンド制御部39は、インバウンド制御部38から送信されたトランザクション情報を格納する。
メモリコントローラI/F制御部35は、インバウンド制御部38からのトランザクション(第3のトランザクション)を受信すると共に、受信したトランザクション(第3のトランザクション)をTXN制御部40に入力する。
インバウンドリクエストバッファ43は、TXN制御部40に入力したトランザクション(第3のトランザクション)を格納する。
TXN送受信制御部44は、インバウンドリクエストバッファ43に格納されたトランザクション(第3のトランザクション)を読み出す。
TXN送受信制御部44は、読み出したトランザクション(第3のトランザクション)を送信バッファ27に送信する。
送信バッファ27は、TXN送受信制御部44から送信されたトランザクションの消失を防止するために格納すると共に、トランザクションが格納された順序でメモリコントローラI/F制御部35を、経由してメモリコントローラ2にトランザクショを送信する(ステップS8)。
次に、第2の実施形態のI/O制御装置が行う受信処理について、図10を参照して説明する。
メモリコントローラ2は、受信した主記憶装置3に対するトランザクション(第3のトランザクション)を実行する。メモリコントローラ2は、実行したリプライをリプライトランザクションとして、メモリコントローラI/F制御部35に送信する。
メモリコントローラ2は、トランザクション(第3のトランザクション)のヘッダ情報を使用してリプライトランザクションのヘッダ情報の生成を行う。そのため、メモリコントローラ2は、トランザクション(第3のトランザクション)に埋め込まれているID情報も引き継ぐ。
メモリコントローラI/F制御部35は、リプライトランザクションを受信すると共に、TXN制御部40に入力する。
受信バッファ28は、TXN制御部40に入力されたリプライトランザクションを格納する(ステップS21)。さらに、受信バッファ28は、格納したリプライトランザクションをTXN送受信制御部44に送信する。
TXN送受信制御部44は、受信バッファ28から送信されたリプライトランザクションを受信する。
TXN送受信制御部44は、受信したリプライトランザクションのヘッダに格納された情報を基に転送方式を判別する。
TXN送受信制御部44は、転送方式を判別した結果、主記憶装置に対するデータ転送要求(DMA方式)であると判別した場合、アウトバウンド制御部39にリプライトランザクションを、メモリコントローラI/F制御部35を経由して送信する(ステップS22において「NO」)。
アウトバウンド制御部39は、メモリコントローラI/F制御部35から送信されたリプライトランザクションを受信すると共に、受信したリプライトランザクションを格納する。
メモリコントローラ2は、インバウンド制御部38で分割された複数のトランザクションに対して、複数のリプライトランザクションを送信する。このため、アウトバウンド制御部39は、インバウンド制御部38から受信したトランザクション情報を基に分割した複数のリプライトランザクションを、全て受信するように待機する。アウトバウンド制御部39は、インバウンド制御部38から受信したトランザクション情報を基に、アクセス命令単位に分割されたリプライトランザクションを結合したリプライトランザクションを生成する(ステップS26)。
アウトバウンド制御部39は、生成したリプライトランザクションを、I/OプロセッサI/F制御部33に送信する。
I/OプロセッサI/F制御部33は、リプライトランザクションを受信すると共に、DMA制御部37に入力する。
第2のID管理部23は、DMA制御部37に入力したリプライトランザクションに含まれるIDとトランザクション(第2のトランザクション)生成時に作成したIDリストとを照合する。第2のID管理部23は、IDリストを照合した結果、ローカルメモリ2に格納するリプライエリアを決定する(ステップS27)。第2のID管理部23は、決定したリプライエリアにI/Oプロセッサを経由してリプライトランザクションを送信すると共に、制御ソフトウェア(FW)にデータ転送が完了したことを通知する(ステップS28)。
このように本実施の形態に係るI/O制御装置30によれば、第1の実施形態において説明した効果を享受できると共に、さらに、第2の実施形態にて説明したI/O制御装置をI/O装置を搭載可能な電子機器等に利用して実現することができる。
(第2の実施形態の変形例)
尚、上述した第2の実施形態に基づいて、以下に説明する変形例も実現可能である。
図11は、本発明の第2の実施形態の変形例におけるI/O装置1bの構成を示すブロック図である。
図11において、I/O装置1bは、大別して、I/O制御装置45を有する。
即ち、第2の実施形態の変形例において、I/O制御装置45は、図11に示す如くスイッチI/F制御部46を、さらに、有する。これにより、チャンネルカードが主記憶装置3に対するトランザクションを発行する機能を有する場合、I/O制御装置45は、I/Oプロセッサ32上で動作する制御ソフトウェア(FW)によってチャンネルカードが発行したトランザクションを制御することができる。
チャンネルスロット5は、SCSI(Small Computer System Interface)カードやLANカード等の各種チャンネルカードを搭載することにより、ディスク装置やLAN等のI/Oデバイスを接続することができる。
スイッチ47は、I/O制御装置45、I/Oプロセッサ32、チャンネルスロット5との間でトランザクションを制御する機能を有する。
スイッチI/F制御部46は、スイッチ47のI/Oインターフェース機能を有し、スイッチ47とインバウンド制御部38およびアウトバウンド制御部39との間でトランザクションの送受信を制御する。
より具体的に、一例として、I/Oプロセッサ32上で動作する制御ソフトウェア(FW)は、データ転送要求をチャンネルカードに送信する。チャンネルカードは、主記憶装置3に対してアクセスするためのトランザクションを生成すると共に、生成したトランザクションをスイッチ47に送信する。
スイッチ47は、スイッチI/F制御部46にトランザクションを送信する。
スイッチI/F制御部46は、スイッチ47から送信されたトランザクションを受信する。スイッチI/F制御部46は、受信したトランザクションにIDを付与すると共に、主記憶装置3にアクセスするためのトランザクションを生成する。さらに、スイッチI/F制御部46は、生成したトランザクションをインバウンド制御部38に送信する。
また、スイッチI/F制御部46は、アウトバウンド制御部39から送信されたリプライトランザクションを受信すると共に、受信したリプライトランザクションをスイッチ47を経由して、チャンネルカードに送信する。
スイッチ47は、主記憶装置3からのリプライトランザクションをチャンネルスロット5に搭載されたチャンネルカードに送信する。チャンネルスロット5に搭載されたチャンネルカードは、リプライトランザクションを受信する。尚、説明の便宜上、上述した構成を例に説明したが、これに限定されない。
このように本実施の形態の変形例に係るI/O制御装置45によれば、第1および第2の実施形態において説明した効果を享受できると共に、さらに、スイッチI/F制御部46を設けることで、I/Oデバイスから送信された主記憶装置3に対するアクセス命令の制御をメモリコントローラではなく、I/O制御装置45によって制御することができる。このため、I/O制御装置45は、I/O処理全体の処理時間の短縮を実現できる。
<第3の実施形態>
次に、上述した第2の実施形態の変形例に係るI/O制御装置45を基本とする第3の実施形態について説明する。以下の説明においては、本実施形態に係る特徴的な部分を中心に説明する。その際、上述した各実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明は省略する。
以下の説明において、本実施形態では、説明の便宜上、I/Oプロセッサ32上で動作する4つの制御ソフトウェアを識別するために、FW(a)、FW(b)、FW(c)、FW(d)と称する。また、FW(a)、FW(b)、FW(c)、FW(d)のそれぞれに対応して、動作する各部名称の参照番号末尾に(a)、(b)、(c)、(d)を付与することによりそれぞれの制御ソフトウェアに対応する各部名称を識別する。
本実施形態では、第2の実施形態の変形例において説明したI/O制御装置45に、I/Oプロセッサ32上で動作する複数の制御ソフトウェア(FW(a)、FW(b)、FW(c)、FW(d))によって、主記憶装置に対してアクセス命令を実行する場合の動作について詳細に説明する。
図12は、本発明の第3の実施形態におけるI/O装置1cの構成を示すブロック図である。
図12において、I/O装置1cは、大別して、I/O制御装置50を有する。
図12において、I/O制御装置50は、I/OプロセッサI/F制御部51、ユニット34、メモリコントローラI/F制御部52、スイッチI/F制御部46を有する。
尚、ユニット34は、制御ソフトウェア(FW(a)、FW(b)、FW(c)、FW(d))と対応した同数のユニット34を有する。
I/OプロセッサI/F制御部51は、FW制御部53、DMA制御部54を有する。
図13は、第3の実施形態に係るI/O制御装置のうち、FW制御部53の構成を示すブロック図である。
FW制御部53は、制御ソフトウェア(FW(a)、FW(b)、FW(c)、FW(d))と対応した同数の第1のID管理部21および命令発行用バッファ41を有する。
図14は、第3の実施形態に係るI/O制御装置のうち、DMA制御部54の構成を示すブロック図である。
DMA制御部54は、制御ソフトウェア(FW(a)、FW(b)、FW(c)、FW(d))と対応した同数のDMAコントローラ22および第2のID管理部23を有する。
メモリコントローラI/F制御部52は、TXN制御部55を有する。
図15は、第3の実施形態に係るI/O制御装置のうち、TXN制御部55の構成を示すブロック図である。
TXN制御部55は、制御ソフトウェア(FW(a)、FW(b)、FW(c)、FW(d))と対応した同数のFWリクエストバッファ42、インバウンドリクエストバッファ43、TXN送受信制御部44を有する。
さらに、TXN制御部55は、複数のTXN送受信制御部44と接続された送信バッファ27と受信バッファ28とを有する。
次に、本発明の第3の実施形態に係るより具体的なI/O制御装置の動作について説明する。
PIO方式において、I/Oプロセッサ32上で動作する4つの制御ソフトウェア(FW(a)、FW(b)、FW(c)、FW(d))によって主記憶装置3に対するロード命令、SYNC命令(順序制御命令)等の複数の命令を実行する場合の動作について詳細に説明する。
図16は、第3の実施形態に係るI/O制御装置のうち、4つの制御ソフトウェア(FW(a)、FW(b)、FW(c)、FW(d))によって主記憶装置3に対するアクセス命令の処理を実行した場合の状態遷移を示すシーケンス図である。
FW(a)は、命令(a1)、SYNC命令(a2)、命令(a3)の順序でI/OプロセッサI/F制御部51にトランザクションを送信する。
I/OプロセッサI/F制御部51は、命令(a1)、SYNC命令(a2)、命令(a3)を受信すると共に、転送方式を判別し、FW制御部53に入力する。
FW制御部53は、入力した順序で命令(a1)、SYNC命令(a2)、命令(a3)を命令発行用バッファ41(a)に格納する。
第1のID管理部21(a)は、命令発行用バッファ41(a)に格納されたトランザクションを、格納された順序で読み出す。第1のID管理部21(a)は、読み出した命令(a1)、SYNC命令(a2)、命令(a3)にIDを付与すると共に、I/OプロセッサI/F制御部51を経由してメモリコントローラI/F制御部52に送信する。さらに、第1のID管理部21(a)は、付与したIDとトランザクションとを記憶(記述)したIDリスト(a)を作成する。
メモリコントローラI/F制御部52は、IDを付与された命令(a1)、SYNC命令(a2)、命令(a3)を受信すると共に、TXN制御部55に入力する。
TXN制御部55は、入力された順序で命令(a1)、SYNC命令(a2)、命令(a3)をFWリクエストバッファ42(a)に格納する。
TXN送受信制御部44(a)は、FWリクエストバッファ42(a)に格納された命令(a1)、SYNC命令(a2)、命令(a3)を格納された順序で読み出すと共に、読み出した命令を解析する。
TXN送受信制御部44(a)は、命令(a1)を送信バッファ27に送信する。
送信バッファ27は、命令(a1)を格納する。
次に、TXN送受信制御部44(a)は、SYNC命令(a2)を解析した結果、SYNC命令であると判断したため、命令発行抑止フラグを設定すると共に、送信バッファ27にSYNC命令(a2)を送信する。
送信バッファ27は、SYNC命令(a2)を格納する。
TXN送受信制御部44(a)は、命令発行抑止フラグが設定されているため、SYNC命令(a2)に対するリプライが返却されるまで、FWリクエストバッファ42(a)から命令(a3)を読み出すことを抑止する。
次に、FW(b)は、命令(b1)、命令(b2)、命令(b3)の順序でI/OプロセッサI/F制御部51に命令を送信する。
I/OプロセッサI/F制御部51は、命令(b1)、命令(b2)、命令(b3)を受信すると共に、転送方式を判別し、FW制御部53に入力する。
FW制御部53は、入力した順序で命令(b1)、命令(b2)、命令(b3)を
命令発行用バッファ41(b)に格納する。
第1のID管理部21(b)は、命令発行用バッファ41(b)に格納されたトランザクションを格納された順序で読み出す。第1のID管理部21(b)は、読み出した命令(b1)、命令(b2)、命令(b3)にIDを付与すると共に、I/OプロセッサI/F制御部51を経由してメモリコントローラI/F制御部52に送信する。さらに、第1のID管理部21(b)は、付与したIDとトランザクションとを記憶(記述)したIDリスト(b)を作成する。
メモリコントローラI/F制御部52は、IDを付与された命令(b1)、命令(b2)、命令(b3)を受信すると共に、TXN制御部55に入力する。
TXN制御部55は、入力された命令(b1)、命令(b2)、命令(b3)をFWリクエストバッファ42(b)に格納する。
TXN送受信制御部44(b)は、FWリクエストバッファ42(b)に格納された命令(b1)、命令(b2)、命令(b3)を格納された順序で読み出すと共に、読み出した命令を解析する。
TXN送受信制御部44(b)は、命令(b1)、命令(b2)、命令(b3)の順序で、これらの命令を、送信バッファ27に送信する。
送信バッファ27は、命令(b1)、命令(b2)、命令(b3)をTXN送受信制御部44(b)から送信された順序で格納する。
次に、FW(c)は、命令(c1)、命令(c2)、命令(c3)の順序でI/OプロセッサI/F制御部51に送信する。
I/OプロセッサI/F制御部51は、命令(c1)、命令(c2)、命令(c3)を受信すると共に、転送方式を判別し、FW制御部53に入力する。
FW制御部53は、入力した命令(c1)、命令(c2)、命令(c3)を命令発行用バッファ41(c)に格納する。
第1のID管理部21(c)は、命令発行用バッファ41(c)に格納されたトランザクションを格納された順序で読み出す。第1のID管理部21(c)は、読み出した命令(c1)、命令(c2)、命令(c3)にIDを付与すると共に、I/OプロセッサI/F制御部51を経由してメモリコントローラI/F制御部52に送信する。さらに、第1のID管理部21(c)は、付与したIDとトランザクションとを記憶(記述)したIDリスト(c)を作成する。
メモリコントローラI/F制御部52は、IDを付与された命令(c1)、命令(c2)、命令(c3)を受信すると共に、TXN制御部55に入力する。
TXN制御部55は、入力された順序で命令(c1)、命令(c2)、命令(c3)をFWリクエストバッファ42(c)に格納する。
TXN送受信制御部44(c)は、FWリクエストバッファ42(c)に格納された命令(c1)、命令(c2)、命令(c3)を格納された順序で読み出すと共に、読み出した命令を解析する。
TXN送受信制御部44(c)は、命令(c1)、命令(c2)、命令(c3)の順序で、これらの命令を、送信バッファ27に送信する。
送信バッファ27は、命令(c1)、命令(c2)、命令(c3)をTXN送受信制御部44(c)から送信された順序で格納する。
次に、FW(d)は、命令(d1)、命令(d2)、命令(d3)の順序でI/OプロセッサI/F制御部51に送信する。
I/OプロセッサI/F制御部51は、命令(d1)、命令(d2)、命令(d3)を受信すると共に、転送方式を判別し、FW制御部53に入力する。
FW制御部53は、入力した順序で命令(d1)、命令(d2)、命令(d3)を命令発行用バッファ41(d)に格納する。
第1のID管理部21(d)は、命令発行用バッファ41(d)に格納されたトランザクションを格納された順序で読み出す。第1のID管理部21(d)は、読み出した命令(d1)、命令(d2)、命令(d3)にIDを付与すると共に、I/OプロセッサI/F制御部51を経由してメモリコントローラI/F制御部52に送信する。さらに、第1のID管理部21(d)は、付与したIDとトランザクションとを記憶(記述)したIDリスト(d)を作成する。
メモリコントローラI/F制御部52は、IDを付与された命令(d1)、命令(d2)、命令(d3)を受信すると共に、TXN制御部55に入力する。
TXN制御部55は、入力された命令(d1)、命令(d2)、命令(d3)をFWリクエストバッファ42(d)に格納する。
TXN送受信制御部44(d)は、FWリクエストバッファ42(d)に格納された命令(d1)、命令(d2)、命令(d3)を格納された順序で読み出すと共に、読み出した命令を解析する。
TXN送受信制御部44(d)は、命令(d1)、命令(d2)、命令(d3)の順序で、これらの命令を、送信バッファ27に送信する。
送信バッファ27は、命令(d1)、命令(d2)、命令(d3)をTXN送受信制御部44(d)から送信された順序で格納する。
送信バッファ27は、命令を格納した順序でメモリコントローラI/F制御部52を経由してメモリコントローラ2に送信する。
次に、第3の実施形態のI/O制御装置が行う受信処理について説明する。
メモリコントローラ2は、受信した命令を受信した順序で実行し、リプライのトランザクションをメモリコントローラI/F制御部52に送信する。
メモリコントローラI/F制御部52は、リプライトランザクションを受信すると共に、TXN制御部55に入力する。
受信バッファ28は、TXN制御部55に入力したリプライトランザクションを格納する。さらに、受信バッファ28は、格納したリプライトランザクションをTXN送受信制御部44(a)乃至TXN送受信制御部44(d)に送信する。TXN送受信制御部44(a)乃至TXN送受信制御部44(d)は、受信バッファ28からリプライトランザクションを受信する。
より具体的に、TXN送受信制御部44(a)は、FW(a)が送信した命令(a1)およびSYNC命令(a2)に対するリプライトランザクションを受信する。また、TXN送受信制御部44(b)は、FW(b)が送信した命令(b1)乃至命令(b3)に対するリプライトランザクションを受信する。TXN送受信制御部44(c)は、FW(c)が発行した命令(c1)乃至命令(c3)に対するリプライトランザクションを受信する。TXN送受信制御部44(d)は、FW(d)が送信した命令(d1)乃至命令(d3)に対するリプライトランザクションを受信する。
TXN送受信制御部44(a)乃至TXN送受信制御部44(d)は、受信したリプライトランザクションのヘッダに格納された情報を基に転送方式を判別する。TXN送受信制御部44(a)乃至TXN送受信制御部44(d)は、転送方式を判別した結果、主記憶装置に対するアクセス命令(PIO方式)であると判別した場合、命令発行抑止フラグを設定した命令であるか解析する。
より具体的に、TXN送受信制御部44(a)は、命令(a1)およびSYNC命令(a2)に対するリプライトランザクションを受信した際、転送方式を判別する。TXN送受信制御部44(a)は、転送方式を判別した結果、主記憶装置に対するアクセス命令(PIO方式)であると判別した場合、命令発行抑止フラグを設定した命令であるか解析する。TXN送受信制御部44(a)は、解析した結果、SYNC命令(a2)に対するリプライトランザクションについて命令発行抑止フラグを設定したトランザクションのリプライであると判別する。TXN送受信制御部44(a)は、命令発行抑止フラグを解除する。
また、TXN送受信制御部44(a)乃至TXN送受信制御部44(d)は、受信したリプライトランザクションの転送方式を判別結果に応じて、FW制御部53およびDMA制御部54に送信する。
より具体的に、TXN送受信制御部44は、FW制御部53から送信されたトランザクションに対するリプライトランザクションは、FW制御部53に送信する。さらに、TXN送受信制御部44は、DMA制御部54から送信されたトランザクションに対するリプライトランザクションは、アウトバウンド制御部15を経由してDMA制御部54に送信する。
尚、TXN送受信制御部44(a)は、命令発行抑止フラグを解除後、FWリクエストバッファ42(a)に格納されている命令(a3)を読み出すと共に、送信バッファ27に送信する。
TXN送受信制御部44から送信されたリプライトランザクションは、I/OプロセッサI/F制御部51を、経由してFW制御部53に入力する。
尚、TXN送受信制御部44(a)から送信されたリプライトランザクションは、第1のID管理部21(a)に入力する。TXN送受信制御部44(b)から送信されたリプライトランザクションは、第1のID管理部21(b)に入力する。TXN送受信制御部44(c)から送信されたリプライトランザクションは、第1のID管理部21(c)に入力する。TXN送受信制御部44(d)から送信されたリプライトランザクションは、第1のID管理部21(d)に入力する。
このように、異なるリクエストリソース(FW(a)、FW(b)、FW(c)、FW(d))が送信した主記憶装置に対するアクセス命令((b1)〜(d1))が、他のリクエストリソースが発行したSYNC命令(a2)の影響を受けることなく、実行可能となる。
次に、本発明の第3の実施形態に係るより具体的なI/O制御装置の動作について説明する。
PIO方式およびDMA方式を組み合わせて行う場合において、I/Oプロセッサ32上で動作する制御ソフトウェア(FW(a))によって主記憶装置に対するロード命令、SYNC命令(順序制御命令)等の複数の命令を実行する場合の動作について詳細に説明する。
図17は、第3の実施形態に係るI/O制御装置のうち、制御ソフトウェア(FW(a))によってPIO方式およびDMA方式を組み合わせて、主記憶装置に対するアクセス命令の処理を実行した場合の状態遷移を示すシーケンス図である。
FW(a)は、I/OプロセッサI/F制御部51に主記憶装置3に対するアクセス命令を送信する。尚、FW(a)は、PIO方式を実行するためのアクセス命令である命令(a1)、SYNC命令(a2)、命令(a3)の順序で送信する。次に、FW(a)は、DMA方式を実行するために、DMA転送要求であるDMAアクセス命令(B1)を送信する。
I/OプロセッサI/F制御部51は、受信した命令のヘッダに格納された情報を基に転送方式を判別した結果、命令(a1)、SYNC命令(a2)、命令(a3)を、FW制御部53に入力する。また、I/OプロセッサI/F制御部51は、DMAアクセス命令(B1)を、DMA制御部54に入力する。
尚、FW(a)が送信した命令(a1)、SYNC命令(a2)、命令(a3)に関する動作は、上述した通りの動作を実行するため、以下の説明では、簡略に表現する。
DMAコントローラ22(a)は、I/OプロセッサI/F制御部51から入力されたDMAアクセス命令(B1)に応じて、主記憶装置3にアクセスするアドレスとデータサイズとを指定したトランザクションを生成する。DMAコントローラ22(a)は、第2のID管理部23(a)に生成したトランザクションを送信する。
第2のID管理部23(a)は、DMAコントローラ22(a)から送信されたトランザクションを受信する。第2のID管理部23(a)は、受信したトランザクションにIDを付与すると共に、I/OプロセッサI/F制御部51を経由してインバウンド制御部38(a)に送信する。さらに、第2のID管理部23(a)は、付与したIDとトランザクションとを記憶(記述)したIDリスト(a)を作成する。
インバウンド制御部38(a)は、第2のID管理部23(a)が送信したトランザクションを格納する。さらに、インバウンド制御部38(a)は、格納したトランザクションを主記憶装置3へのデータ転送に適したアクセス命令単位に変換した第3のトランザクション(命令(b1)、命令(b2)、命令(b3))を生成する。
インバウンド制御部38(a)は、生成したトランザクションを命令(b1)、命令(b2)、命令(b3)の順序でメモリコントローラI/F制御部52を経由してTXN制御部55に送信すると共に、アウトバウンド制御部39(a)に第3のトランザクションをトランザクション情報として送信する。
アウトバウンド制御部39(a)は、インバウンド制御部38(a)から送信されたトランザクション情報を格納する。
インバウンドリクエストバッファ43(a)は、インバウンド制御部38(a)から送信された順序でトランザクション(命令(b1)、命令(b2)、命令(b3))を格納する。
TXN送受信制御部44(a)は、インバウンドリクエストバッファ43(a)に格納された順序でトランザクション(命令(b1)、命令(b2)、命令(b3))を読み出す。TXN送受信制御部44(a)は、読み出したトランザクションを解析すると共に、トランザクションを送信バッファ27に送信する。
送信バッファ27は、TXN送受信制御部44(a)から送信されたトランザクション(命令(b1)、命令(b2)、命令(b3))を送信された順序で格納する。
TXN送受信制御部44(a)は、SYNC命令(a2)を送信した場合であっても、先行する命令が完了することを待機することなく、後続の命令(b1)乃至命令(b3)を続けて送信することができる。
送信バッファ27は、命令(a1)、SYNC命令(a2)、命令(b1)、命令(b2)、命令(b3)を格納した順序でメモリコントローラI/F制御部52を経由してメモリコントローラ2に命令を送信する。
次に、第3の実施形態のI/O制御装置が行う受信処理について説明する。
メモリコントローラ2は、受信した命令を受信した順序で実行し、リプライのトランザクションをメモリコントローラI/F制御部52に送信する。
メモリコントローラI/F制御部52は、リプライトランザクションを受信すると共に、TXN制御部55に入力する。
受信バッファ28は、TXN制御部55から入力されたリプライトランザクションを格納する。さらに、受信バッファ28は、格納したリプライトランザクションをTXN送受信制御部44(a)に送信する。
TXN送受信制御部44(a)は、受信バッファ28からリプライトランザクションを受信する。
TXN送受信制御部44は、受信したリプライトランザクションのヘッダに格納された情報を基に転送方式を判別する。
TXN送受信制御部44(a)は、転送方式を判別した結果、主記憶装置に対するデータ転送要求(DMA方式)であると判別した場合、メモリコントローラI/F制御部52を、経由してアウトバウンド制御部39(a)に送信する。
アウトバウンド制御部39(a)は、メモリコントローラI/F制御部52から送信されたリプライトランザクションを受信すると共に、受信したリプライトランザクションを格納する。
メモリコントローラ2は、インバウンド制御部38(a)で分割された複数のトランザクション(命令(b1)、命令(b2)、命令(b3))に対し、複数のリプライトランザクションを送信する。このため、アウトバウンド制御部39(a)は、格納したリプライトランザクションをインバウンド制御部38(a)から受信したトランザクション情報を基に、分割された複数のリプライトランザクションを全て受信するように待機する。アウトバウンド制御部39(a)は、インバウンド制御部38(a)から受信したトランザクション情報を基に、アクセス命令単位に分割されたリプライトランザクションを結合しリプライトランザクション(リプライ(B1))を生成する。
アウトバウンド制御部39(a)は、生成したリプライトランザクションを、I/OプロセッサI/F制御部51に送信する。
I/OプロセッサI/F制御部51は、リプライトランザクションを受信すると共に、DMA制御部54に入力する。
尚、説明の便宜上、SYNC命令及びロード命令を例に説明したが、この場合に限らずFLUSH命令やストア命令など他の命令であってもよい。
尚、本実施形態に係るI/O制御装置は、SYNC命令またはFLUSH命令を送信したリクエストリソースに対し、後続の命令について読み出しを抑止したが、これに限らずI/O制御装置は、SYNC命令またはFLUSH命令が発行された場合、全てのリクエストリソースが発行した命令に対して、読み出しを抑止するように設定してもよい。
このように本実施の形態に係るI/O制御装置50によれば、各実施形態において説明した効果を享受できると共に、さらに、複数のリクエストリソース(FW(a)、FW(b)、FW(c)、FW(d))が発行する主記憶装置3に対する複数のアクセス命令の制御をメモリコントローラではなく、I/O制御装置50によって制御することにより、さらに、I/O装置全体の処理遅延を改善する。特に、本実施の形態によれば、SYNC命令およびFLUSH命令が発行された場合においても、SYNC命令およびFLUSH命令を発行したリクエストリソースだけの後続命令を抑止することで、I/O処理全体の処理時間をさらに短縮することが実現できる。また、I/0制御装置50によれば、抑止する対象を変更することで、複数の主記憶装置に対するアクセスの制御方法を確立できる。
尚、上述した各実施形態に説明した本発明は、説明の便宜上、メモリコントローラ2に対し、複数のI/O装置を有する場合について明記していないが、複数のI/O装置を有する場合においても、それぞれのI/O装置に設けたI/O制御装置において、SYNC命令およびFLUSH命令を発行したリクエストリソースだけの後続命令を抑止することで、I/O処理全体の処理時間をさらに短縮することができる。
尚、上述した各実施形態およびその変形例の一部又は全部は、以下の付記のようにも記載されうる。しかしながら、上述した実施形態及びその変形例により例示的に説明した本発明は、以下には限らない。即ち、
(付記1)
アクセスリソースが発行する主記憶装置に対する命令の種別を判別し、判別した結果、アクセス命令だと判別した場合には、第1のトランザクションを生成する一方、転送指示命令だと判別した場合には、第2のトランザクションを生成する第1の制御部と、
前記第2のトランザクションが生成された場合に、前記第2のトランザクションを基にデータ転送に適したアクセス命令単位に分割した第3のトランザクションを生成する第2の制御部と、
前記第1のトランザクションと前記第3のトランザクションとが生成された場合に、該生成された第1及び第3のトランザクションをトランザクション毎に格納し、格納したときの順序と同じ順序でメモリコントローラに送信する第3の制御部と、
を備えることを特徴とするI/O制御装置。
(付記2)
前記第1の制御部は、
前記命令が前記アクセス命令だと判別した場合には、該アクセス命令を基に前記第1のトランザクションを生成する第1のサブ制御部と、
前記命令が前記転送指示命令だと判別した場合には、該転送指示命令を基に前記第2のトランザクションを生成する第2のサブ制御部と、
を含むことを特徴とした付記1に記載のI/O制御装置。
(付記3)
前記第1のサブ制御部は、
前記アクセス命令を格納する第1のバッファと、
前記第1のバッファから読み出した前記アクセス命令に識別子を付与することにより、前記第1のトランザクションを生成し、前記識別子と前記識別子に対応した該第1のトランザクションとを記述したリストを含むことを特徴した付記2に記載のI/O制御装置。
(付記4)
前記第2のサブ制御部は、
前記転送指示命令を基に前記主記憶装置にアクセスするアドレスとデータサイズとを指定したトランザクションを生成するDMAコントローラと、
前記DMAコントローラによって生成された該トランザクションに前記識別子を付与することにより、前記第2のトランザクションを生成し、前記識別子と前記識別子に対応した該第2のトランザクションとを記述したリストを含むことを特徴した付記2または付記3に記載のI/O制御装置。
(付記5)
前記第2の制御部は、
前記第2のトランザクションを基にデータ転送に適したアドレスとデータサイズとに分割した前記第3のトランザクションを生成する第3のサブ制御部と、
前記第3のトランザクションに対するリプライトランザクションを格納する第4のサブ制御部とを備え、
前記第3のサブ制御部は、生成した前記第3のトランザクションをトランザクション情報として前記第4のサブ制御部に出力し、
前記第4のサブ制御部は、格納した前記リプライトランザクションを前記トランザクション情報を基に合成することを特徴とする付記1に記載のI/O制御装置。
(付記6)
前記第3の制御部は、
前記第1のトランザクションを格納する第2のバッファと、
前記第3のトランザクションを格納する第3のバッファと、
前記第2のバッファから読み出した前記第1のトランザクションと前記第3のバッファから読み出した前記第3のトランザクションとを送信するアクセス制御部と、
前記第1のトランザクションと前記第3のトランザクションとを格納し、格納したときの順序と同じ順序で前記メモリコントローラに送信する送信バッファと、
前記メモリコントローラから送信された前記リプライトランザクションを格納し、格納したときの順序と同じ順序で前記アクセス制御部に送信する受信バッファと、
を含むことを特徴とする付記1に記載のI/O制御装置。
(付記7)
前記アクセス制御部は、
前記第2のバッファから読み出した前記第1のトランザクションを前記アクセス命令の種別に基づいて解析し、解析した結果、前記主記憶装置に対するアクセスを抑止する命令であった場合には、フラグを設定すると共に、その命令に対する前記リプライトランザクションを受信するまで、前記第2のバッファから後続の前記第1のトランザクションの読出しを抑止することを特徴とする付記6に記載のI/O制御装置。
(付記8)
前記アクセス制御部は、
前記フラグを設定した場合に、その前記フラグを設定した前記第1のトランザクションに対する前記リプライトランザクションを取得するのに応じて、前記アクセス制御部に対して設定されていた前記フラグを解除することを特徴とする付記6または付記7に記載のI/O制御装置。
(付記9)
チャンネルスロットに接続されたI/Oデバイスが発行したトランザクションを制御するスイッチI/F制御部をさらに備えることを特徴とする付記1乃至付記8の何れかに記載のI/O制御装置。
(付記10)
前記I/O制御装置は、
複数の前記アクセスリソースから主記憶装置に対する命令が発行された場合に、前記アクセスリソース毎に前記第1の制御部と、前記第2の制御部と、前記第3の制御部とを備えることを特徴とする付記1乃至付記9の何れかに記載のI/O制御装置。
(付記11)
アクセスリソースが発行する主記憶装置に対する命令の種別を判別し、判別した結果、アクセス命令だと判別した場合には、第1のトランザクションを生成し、一方で、転送指示命令だと判別した場合には、第2のトランザクションを生成し、前記第2のトランザクションが生成された場合に、前記第2のトランザクションを基にデータ転送に適したアクセス命令単位に分割した第3のトランザクションを生成し、前記第1のトランザクションと前記第3のトランザクションとが生成された場合に、トランザクション毎に格納し、格納したときの順序と同じ順序でメモリコントローラに送信することを特徴とするI/O制御方法。
(付記12)
電子機器上で動作するI/O制御のためのコンピュータ・プログラムであって、そのコンピュータ・プログラムにより、
アクセスリソースが発行する主記憶装置に対する命令の種別を判別し、判別した結果、アクセス命令だと判別した場合には、第1のトランザクションを生成し、一方で、転送指示命令だと判別した場合には、第2のトランザクションを生成し、前記第2のトランザクションが生成された場合に、前記第2のトランザクションを基にデータ転送に適したアクセス命令単位に分割した第3のトランザクションを生成し、前記第1のトランザクションと前記第3のトランザクションとが生成された場合に、トランザクション毎に格納し、格納したときの順序と同じ順序でメモリコントローラに送信する機能をコンピュータに実現させることを特徴とするコンピュータ・プログラム。
本発明は、上述した各実施形態には限定されない。本発明は、パーソナルコンピュータ、POS(Point Of Sale)システム、サーバ、複写機、複合機等の各種の電子機器に適用可能である。
1 I/O装置
1a I/O装置
1b I/O装置
1c I/O装置
2 メモリコントローラ
3 主記憶装置
4 演算処理装置
5 チャンネルスロット
6 ディスク装置
7 LAN
8 テープ装置
9 ホストコンピュータ
10 I/O制御装置
11 リクエストリソース
12 第1の制御部
13 第2の制御部
14 第3の制御部
15 第1のサブ制御部
16 第2のサブ制御部
17 第3のサブ制御部
18 第4のサブ制御部
20 第1のバッファ
21 第1のID管理部
22 DMAコントローラ
23 第2のID管理部
24 第2のバッファ
25 第3のバッファ
26 アクセス制御部
27 送信バッファ
28 受信バッファ
30 I/O制御装置
31 ローカルメモリ
32 I/Oプロセッサ
33 I/OプロセッサI/F制御部
34 ユニット
35 メモリコントローラI/F制御部
36 FW制御部
37 DMA制御部
38 インバウンド制御部
39 アウトバウンド制御部
40 TXN制御部
41 命令発行用バッファ
42 FWリクエストバッファ
43 インバウンドリクエストバッファ
44 TXN送受信制御部
45 I/O制御装置
46 スイッチI/F制御部
47 スイッチ
50 I/O制御装置
51 I/OプロセッサI/F制御部
52 メモリコントローラI/F制御部
53 FW制御部
54 DMA制御部
55 TXN制御部

Claims (10)

  1. アクセスリソースが発行する主記憶装置に対する命令の種別を判別し、判別した結果、アクセス命令だと判別した場合には、前記アクセス命令に識別子を付与することにより、第1のトランザクションを生成し、該識別子と、該識別子に対応した該第1のトランザクションとを記述したリストを作成する一方、転送指示命令だと判別した場合には、第2のトランザクションを生成する第1の制御部と、
    前記第2のトランザクションが生成された場合に、前記第2のトランザクションを基にデータ転送に適したアクセス命令単位に分割した第3のトランザクションを生成する第2の制御部と、
    前記第1のトランザクションと前記第3のトランザクションとが生成された場合に、該生成された第1及び第3のトランザクションをトランザクション毎に格納し、格納したときの順序と同じ順序でメモリコントローラに送信する第3の制御部と、
    を備えることを特徴とするI/O制御装置。
  2. 前記第1の制御部は、
    前記命令が前記アクセス命令だと判別した場合には、該アクセス命令を基に前記第1のトランザクションを生成する第1のサブ制御部と、
    前記命令が前記転送指示命令だと判別した場合には、該転送指示命令を基に前記第2のトランザクションを生成する第2のサブ制御部と、
    を含むことを特徴とした請求項1に記載のI/O制御装置。
  3. 前記第1のサブ制御部は、
    前記アクセス命令を格納する第1のバッファと、
    前記第1のバッファから読み出した前記アクセス命令に前記識別子を付与することにより、前記第1のトランザクションを生成し、前記リストを含むことを特徴した請求項2に記載のI/O制御装置。
  4. 前記第2のサブ制御部は、
    前記転送指示命令を基に前記主記憶装置にアクセスするアドレスとデータサイズとを指定したトランザクションを生成するDMAコントローラと、
    前記DMAコントローラによって生成された該トランザクションに識別子を付与することにより、前記第2のトランザクションを生成し、識別子と、該識別子に対応した該第2のトランザクションとを記述したリストを含むことを特徴した請求項2または請求項3に記載のI/O制御装置。
  5. 前記第2の制御部は、
    前記第2のトランザクションを基にデータ転送に適したアドレスとデータサイズとに分割した前記第3のトランザクションを生成する第3のサブ制御部と、
    前記第3のトランザクションに対するリプライトランザクションを格納する第4のサブ制御部とを備え、
    前記第3のサブ制御部は、生成した前記第3のトランザクションをトランザクション情報として前記第4のサブ制御部に出力し、
    前記第4のサブ制御部は、格納した前記リプライトランザクションを前記トランザクション情報を基に合成することを特徴とする請求項1に記載のI/O制御装置。
  6. 前記第3の制御部は、
    前記第1のトランザクションを格納する第2のバッファと、
    前記第3のトランザクションを格納する第3のバッファと、
    前記第2のバッファから読み出した前記第1のトランザクションと前記第3のバッファから読み出した前記第3のトランザクションとを送信するアクセス制御部と、
    前記第1のトランザクションと前記第3のトランザクションとを格納し、格納したときの順序と同じ順序で前記メモリコントローラに送信する送信バッファと、
    前記メモリコントローラから送信されたリプライトランザクションを格納し、格納したときの順序と同じ順序で前記アクセス制御部に送信する受信バッファと、
    を含むことを特徴とする請求項1に記載のI/O制御装置。
  7. 前記アクセス制御部は、
    前記第2のバッファから読み出した前記第1のトランザクションを前記アクセス命令の種別に基づいて解析し、解析した結果、前記主記憶装置に対するアクセスを抑止する命令であった場合には、フラグを設定すると共に、その命令に対するリプライトランザクションを受信するまで、前記第2のバッファから後続の前記第1のトランザクションの読出しを抑止することを特徴とする請求項6に記載のI/O制御装置。
  8. 前記アクセス制御部は、
    前記フラグを設定した場合に、その前記フラグを設定した前記第1のトランザクションに対するリプライトランザクションを取得するのに応じて、前記アクセス制御部に対して設定されていた前記フラグを解除することを特徴とする請求項7に記載のI/O制御装置。
  9. アクセスリソースが発行する主記憶装置に対する命令の種別を判別し、判別した結果、アクセス命令だと判別した場合には、前記アクセス命令に識別子を付与することにより、第1のトランザクションを生成し、該識別子と、該識別子に対応した該第1のトランザクションとを記述したリストを作成する一方で、転送指示命令だと判別した場合には、第2のトランザクションを生成し、前記第2のトランザクションが生成された場合に、前記第2のトランザクションを基にデータ転送に適したアクセス命令単位に分割した第3のトランザクションを生成し、前記第1のトランザクションと前記第3のトランザクションとが生成された場合に、該生成された第1及び第3のトランザクションをトランザクション毎に格納し、格納したときの順序と同じ順序でメモリコントローラに送信することを特徴とするI/O制御方法。
  10. 電子機器上で動作するI/O制御のためのコンピュータ・プログラムであって、そのコンピュータ・プログラムにより、
    アクセスリソースが発行する主記憶装置に対する命令の種別を判別し、判別した結果、アクセス命令だと判別した場合には、前記アクセス命令に識別子を付与することにより、第1のトランザクションを生成し、該識別子と、該識別子に対応した該第1のトランザクションとを記述したリストを作成する一方で、転送指示命令だと判別した場合には、第2のトランザクションを生成し、前記第2のトランザクションが生成された場合に、前記第2のトランザクションを基にデータ転送に適したアクセス命令単位に分割した第3のトランザクションを生成し、前記第1のトランザクションと前記第3のトランザクションとが生成された場合に、該生成された第1及び第3のトランザクションをトランザクション毎に格納し、格納したときの順序と同じ順序でメモリコントローラに送信する機能をコンピュータに実現させることを特徴とするコンピュータ・プログラム。
JP2012067746A 2012-03-23 2012-03-23 I/o制御装置およびi/o装置の制御方法、並びにコンピュータ・プログラム Active JP5924060B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012067746A JP5924060B2 (ja) 2012-03-23 2012-03-23 I/o制御装置およびi/o装置の制御方法、並びにコンピュータ・プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012067746A JP5924060B2 (ja) 2012-03-23 2012-03-23 I/o制御装置およびi/o装置の制御方法、並びにコンピュータ・プログラム

Publications (2)

Publication Number Publication Date
JP2013200646A JP2013200646A (ja) 2013-10-03
JP5924060B2 true JP5924060B2 (ja) 2016-05-25

Family

ID=49520865

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012067746A Active JP5924060B2 (ja) 2012-03-23 2012-03-23 I/o制御装置およびi/o装置の制御方法、並びにコンピュータ・プログラム

Country Status (1)

Country Link
JP (1) JP5924060B2 (ja)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60168259A (ja) * 1984-02-10 1985-08-31 Nec Corp デ−タ転送制御回路
JPH07219888A (ja) * 1994-02-03 1995-08-18 Hitachi Ltd データ処理装置
JPH10320350A (ja) * 1997-05-20 1998-12-04 Mitsubishi Electric Corp リモートpio制御システム
JP2004078877A (ja) * 2002-06-19 2004-03-11 Ricoh Co Ltd データ通信システム
JP2005309847A (ja) * 2004-04-22 2005-11-04 Sharp Corp データ処理装置
JP2009187337A (ja) * 2008-02-07 2009-08-20 Seiko Epson Corp デバイス制御方法、プログラム、制御回路及び電子機器

Also Published As

Publication number Publication date
JP2013200646A (ja) 2013-10-03

Similar Documents

Publication Publication Date Title
US9015451B2 (en) Processor including a cache and a scratch pad memory and memory control method thereof
US8533334B2 (en) Message binding processing technique
US8863123B2 (en) Apparatus and method for virtualizing input/output devices using shared memory in host-based mobile terminal virtualization environment
US10678437B2 (en) Method and device for managing input/output (I/O) of storage device
KR20200078382A (ko) 개시자 모드를 갖는 솔리드-스테이트 드라이브
US20130047157A1 (en) Information processing apparatus and interrupt control method
EP2375324A2 (en) Virtualization apparatus for providing a transactional input/output interface
US20050138230A1 (en) Method, apparatus and program product for low latency I/O adapter queuing in a computer system
CN107092835B (zh) 一种虚拟存储盘的计算机数据加密装置及方法
US8954644B2 (en) Apparatus and method for controlling memory
KR102474986B1 (ko) 클라우드 상의 가상 머신 자원 할당을 지원하는 서버 및 그 제어 방법
US8775767B2 (en) Method and system for allocating memory to a pipeline
JP2014219980A (ja) メモリ制御装置及びメモリ制御方法
JP5924060B2 (ja) I/o制御装置およびi/o装置の制御方法、並びにコンピュータ・プログラム
US20080295120A1 (en) Asynchronous remote procedure calling method and computer product in shared-memory multiprocessor
JP2013015990A (ja) 情報処理システム、情報処理プログラム、情報処理方法
CN112269649B (zh) 实现主机任务异步执行的方法及装置、系统
US8806078B2 (en) Information processing device and program product
US20130247065A1 (en) Apparatus and method for executing multi-operating systems
CN106897021A (zh) 一种读写数据的方法和装置
US20080288967A1 (en) Procedure calling method, procedure calling program, and computer product
US20110191638A1 (en) Parallel computer system and method for controlling parallel computer system
CN113127399B (zh) 一种通用串列汇流排装置以及存取方法
JP6413817B2 (ja) 会話管理システム、会話管理方法及び会話管理プログラム
JP7080698B2 (ja) 情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150216

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160105

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160301

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: 20160322

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160404

R150 Certificate of patent or registration of utility model

Ref document number: 5924060

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150