JP2013235464A - 計算機及び計算機における入出力制御方法 - Google Patents
計算機及び計算機における入出力制御方法 Download PDFInfo
- Publication number
- JP2013235464A JP2013235464A JP2012108104A JP2012108104A JP2013235464A JP 2013235464 A JP2013235464 A JP 2013235464A JP 2012108104 A JP2012108104 A JP 2012108104A JP 2012108104 A JP2012108104 A JP 2012108104A JP 2013235464 A JP2013235464 A JP 2013235464A
- Authority
- JP
- Japan
- Prior art keywords
- queue
- hba
- data
- dequeued
- driver
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/102—Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/38—Universal adapter
- G06F2213/3802—Harddisk connected to a computer port
Abstract
【解決手段】 I/Oキューへデータのエンキュー及びデキューの処理を行うためのキュー番号を、HBAドライバは主記憶装置で管理し、HBA−F/WはHBA内部の記憶領域で管理する。また、主記憶装置上に有する、HBA上の記憶領域がマッピングされたMMIO領域を利用して、HBAドライバがHBA−F/WにI/Oキューのエンキュー済みキュー番号もしくはデキュー済みキュー番号を通知することで、PCIeバスを経由するアクセス回数を削減する。
【選択図】 図1
Description
図4は、計算機110において、I/O応答キューの制御を行う際の動作フローを示している。図4を用いて、HBAがI/O装置からデータを受信した場合について説明する。
図5は、計算機110において、I/O起動キューの制御を行う際の動作フローを示している。図5を用いて、HBAからI/O装置へデータを送信した場合について説明する。
101 データの送受信を行うアプリケーション
102 HBA(Host Bus Adapter)ドライバ
103 主記憶装置
104 MMIO(Memory Mapped I/O)
105 PCIeバス
106 HBA(Host Bus Adapter)
107 HBA−F/W(HBA上で動作するファームウェア)
108 HBA内部の記憶領域
109 主記憶装置上のMMIOにマッピングされるHBA内部の記憶領域上の領域
110 計算機
111 CPU
112 ホストブリッジ
113 I/O装置
114 I/O応答キュー
115 drv_Out_Queue#
116 Out_Free_Q#
117 In_Free_Q#
118 fw_In_Queue#
119 fw_Out_Queue#
120 I/O起動キュー
121 従来手法でのI/O応答キューの次にエンキューするキュー番号In_Queue#
122 従来手法でのI/O応答キューの次にデキューするキュー番号Out_Queue#
Claims (15)
- CPUと、ブリッジを介して前記CPUに接続する主記憶部と、前記ブリッジに接続するPCIeバスを介して前記CPU及び前記主記憶部に接続し、I/O装置とデータの送受信を行うホストバスアダプタ(HBA)とを備える計算機における入出力制御方法であって、
前記HBAは、HBAファームウエアと、記憶領域とを有し、
前記CPUは、OSと、前記OS上で動作し前記HBAを制御するHBAドライバを実行し、
前記主記憶部は、前記データがエンキュー又はデキューされるI/Oキューと、前記I/Oキューからエンキュー又はデキューされる前記データのキュー番号を管理する管理キューと、前記HBAの記憶領域がマッピングされたMemory Mapped I/O(MMIO)領域とを有し、
前記HBAドライバは、前記管理キューが更新されると、更新された管理キューの管理情報を、前記MMIO領域に書き込み、
前記OSは、前記MMIO領域に書き込まれた前記管理情報を、前記主記憶部のMMIO領域に対応する前記HBAの記憶領域に書き込む、
ことを特徴とする入出力制御方法。 - 前記HBAドライバは、前記管理キューが更新されると、更新された管理キューの1つ前のキュー番号を管理情報として、前記MMIO領域に書き込むことを特徴とする請求項1記載の入出力制御方法。
- 前記I/Oキューは、I/O起動キューまたはI/O応答キューのうち、少なくともいずれか一方であることを特徴とする請求項1記載の入出力制御方法。
- 前記計算機が前記I/O装置からデータを受信する場合、
前記I/Oキューは、I/O応答キューであり、
前記HBAファームウエアは、
前記PCIeバスを経由して、前記I/O装置から受信した受信データを、前記I/O応答キューにエンキューし、
前記PCIeバスを経由して、前記受信データのエンキューを、前記HBAドライバに通知し、
前記通知を受信した前記HBAドライバは、
前記受信データを、前記I/O応答キューからデキューし、
前記デキューした前記受信データを、前記OS上で動作するアプリケーションに送信する
ことを特徴とする請求項3記載の入出力制御方法。 - 前記HBAドライバは、
前記I/O応答キューから前記受信データをデキューすると、
前記管理キューを、デキューされた前記受信データのキュー番号の次の番号に更新し、
前記更新された管理キューの1つ前のキュー番号を管理情報として、前記MMIO領域に書き込み、
前記OSは、
前記MMIO領域に書き込まれた前記管理情報を、前記MMIO領域に対応する前記HBAの記憶領域に書き込む
ことを特徴とする請求項4記載の入出力制御方法。 - 前記HBAの記憶領域は、
前記OSにより、前記管理情報を書き込まれるOut_Free_Qと、
前記HBAファームウエアが次にエンキューするI/O応答キューのキュー番号を管理するfw_R_In_Queueと、
前記HBAドライバから前記HBAファームウエアに通知されたI/O応答キューからのデキュー済み番号を管理するfw_R_Out_Queueとを有し、
前記HBAファームウエアは、
前記Out_Free_Qに書き込まれた前記管理情報を参照し、
前記参照した管理情報を、前記fw_R_Out_Queueに書き込み、
前記fw_R_In_Queueが示すキュー番号と、前記fw_R_Out_Queueが示すキュー番号とを比較し、両者が一致しない場合に、fw_R_In_Queueが示すI/O応答キューのキュー番号に、前記受信データをエンキューする
ことを特徴とする請求項5記載の入出力制御方法。 - 前記I/O応答キューは、前記I/O応答キューのエントリの有効、無効を示す識別子を有し、
前記識別子が有効を示す場合、前記エントリは、受信データがデキューされていないことを示し、
前記識別子が無効を示す場合、前記エントリは、受信データがデキューされていることを示す
ことを特徴とする請求項6記載の入出力制御方法。 - 前記計算機が前記I/O装置へデータを送信する場合、
前記I/Oキューは、I/O起動キューであり、
前記HBAドライバは、
前記I/O装置へ送信する送信データを、前記OS上で動作するアプリケーションから受信し、
前記送信データを、前記I/O起動キューにエンキューし、
前記PCIeバスを経由して、前記送信データのエンキューを、前記HBAファームウエアに通知し、
前記通知を受信した前記HBAファームウエアは、
前記PCIeバスを経由して、前記送信データを、前記I/O起動キューからデキューし、
前記デキューした前記送信データを、前記I/O装置へ送信する
ことを特徴とする請求項3記載の入出力制御方法。 - 前記HBAドライバは、
前記I/O起動キューに前記送信データをエンキューすると、
前記管理キューを、デキューされた前記送信データのキュー番号の次の番号に更新し、
前記更新された管理キューの1つ前のキュー番号を管理情報として、前記MMIO領域に書き込み、
前記OSは、
前記MMIO領域に書き込まれた前記管理情報を、前記MMIO領域に対応する前記HBAの記憶領域に書き込む
ことを特徴とする請求項8記載の入出力制御方法。 - 前記HBAの記憶領域は、
前記OSにより、前記管理情報を書き込まれるIn_Free_Qと、
HBAドライバからHBAファームウエアに通知されたI/O起動キューへのエンキュー済み番号をHBAファームウエアが管理するfw_S_In_Queueと、
I/O起動キューから次にデキューするキュー番号を管理するfw_S_Out_Queueとを有し、
前記HBAファームウエアは、
前記In_Free_Qに書き込まれた前記管理情報を参照し、
前記参照した管理情報を、前記fw_S_In_Queueに書き込み、
前記fw_S_Out_Queueが示すキュー番号に対応する前記I/O起動キューのエントリから、前記送信データをデキューし、
前記fw_S_Out_Queueが示すキュー番号と前記fw_S_In_Queueが示すキュー番号とを比較し、前記fw_S_Out_Queueが前記fw_S_In_Queueの次のキュー番号を示すまで、前記I/O起動キューから前記送信データをデキューする処理を繰り返す
ことを特徴とする請求項9記載の入出力制御方法。 - 前記I/O起動キューは、前記I/O起動キューのエントリの有効、無効を示す識別子を有し、
前記識別子が有効を示す場合、前記エントリは、送信データがデキューされていないことを示し、
前記識別子が無効を示す場合、前記エントリは、送信データがデキューされていることを示す
ことを特徴とする請求項10記載の入出力制御方法。 - HBAファームウエアと、記憶領域とを有し、I/O装置とデータの送受信を行うホストバスアダプタ(HBA)と、
OSと、前記OS上で動作し前記HBAを制御するHBAドライバとを実行するCPUと、
前記データがエンキュー又はデキューされるI/Oキューと、前記I/Oキューからエンキュー又はデキューされる前記データのキュー番号を管理する管理キューと、前記HBAの記憶領域がマッピングされたMemory Mapped I/O(MMIO)領域とを有し、ブリッジを介して前記CPUに接続する主記憶部と、
前記CPU及び前記主記憶部と前記HBAとを、前記ブリッジを介して接続するPCIeバスとを備え、
前記HBAドライバは、前記管理キューが更新されると、更新された管理キューの管理情報を、前記MMIO領域に書き込み、
前記OSは、前記MMIO領域に書き込まれた前記管理情報を、前記主記憶部のMMIO領域に対応する前記HBAの記憶領域に書き込む、
ことを特徴とする計算機。 - 前記HBAドライバは、前記管理キューが更新されると、更新された管理キューの1つ前のキュー番号を管理情報として、前記MMIO領域に書き込むことを特徴とする請求項12記載の計算機。
- 前記計算機が前記I/O装置からデータを受信する場合、
前記I/Oキューは、I/O応答キューであり、
前記HBAファームウエアは、
前記PCIeバスを経由して、前記I/O装置から受信した受信データを、前記I/O応答キューにエンキューし、
前記PCIeバスを経由して、前記受信データのエンキューを、前記HBAドライバに通知し、
前記通知を受信した前記HBAドライバは、
前記受信データを、前記I/O応答キューからデキューし、
前記デキューした前記受信データを、前記OS上で動作するアプリケーションに送信する
ことを特徴とする請求項13記載の計算機。 - 前記計算機が前記I/O装置へデータを送信する場合、
前記I/Oキューは、I/O起動キューであり、
前記HBAドライバは、
前記I/O装置へ送信する送信データを、前記OS上で動作するアプリケーションから受信し、
前記送信データを、前記I/O起動キューにエンキューし、
前記PCIeバスを経由して、前記送信データのエンキューを、前記HBAファームウエアに通知し、
前記通知を受信した前記HBAファームウエアは、
前記PCIeバスを経由して、前記送信データを、前記I/O起動キューからデキューし、
前記デキューした前記送信データを、前記I/O装置へ送信する
ことを特徴とする請求項13記載の計算機。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012108104A JP5847013B2 (ja) | 2012-05-10 | 2012-05-10 | 計算機及び計算機における入出力制御方法 |
EP13165911.2A EP2662777A3 (en) | 2012-05-10 | 2013-04-30 | Computer and input/output control method of computer |
US13/875,420 US8799530B2 (en) | 2012-05-10 | 2013-05-02 | Data processing system with a host bus adapter (HBA) running on a PCIe bus that manages the number enqueues or dequeues of data in order to reduce bottleneck |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012108104A JP5847013B2 (ja) | 2012-05-10 | 2012-05-10 | 計算機及び計算機における入出力制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013235464A true JP2013235464A (ja) | 2013-11-21 |
JP5847013B2 JP5847013B2 (ja) | 2016-01-20 |
Family
ID=48193164
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012108104A Expired - Fee Related JP5847013B2 (ja) | 2012-05-10 | 2012-05-10 | 計算機及び計算機における入出力制御方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8799530B2 (ja) |
EP (1) | EP2662777A3 (ja) |
JP (1) | JP5847013B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020524840A (ja) * | 2017-06-16 | 2020-08-20 | アリババ グループ ホウルディング リミテッド | ハードウェア仮想化のための方法及び装置 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116800692B (zh) * | 2023-08-28 | 2023-11-21 | 芯潮流(珠海)科技有限公司 | 活动队列的调度方法、装置及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04241541A (ja) * | 1991-01-14 | 1992-08-28 | Hitachi Ltd | 通信制御装置 |
US5983292A (en) * | 1997-10-15 | 1999-11-09 | International Business Machines Corporation | Message transport mechanisms and methods |
JP2003501746A (ja) * | 1999-06-09 | 2003-01-14 | クロジック コーポレーション | ホスト・システムとホスト・アダプタとの間でi/oブロックを自動的に転送するための方法および装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5918028A (en) * | 1997-07-08 | 1999-06-29 | Motorola, Inc. | Apparatus and method for smart host bus adapter for personal computer cards |
US7149823B2 (en) * | 2003-08-29 | 2006-12-12 | Emulex Corporation | System and method for direct memory access from host without processor intervention wherein automatic access to memory during host start up does not occur |
JP4333370B2 (ja) * | 2004-01-08 | 2009-09-16 | 株式会社日立製作所 | データ処理システム |
US7590817B2 (en) | 2006-10-17 | 2009-09-15 | International Business Machines Corporation | Communicating with an I/O device using a queue data structure and pre-translated addresses |
US7821973B2 (en) * | 2006-10-24 | 2010-10-26 | Hewlett-Packard Development Company, L.P. | Sharing of host bus adapter context |
JP2008158710A (ja) * | 2006-12-22 | 2008-07-10 | Hitachi Ltd | 計算機システム |
-
2012
- 2012-05-10 JP JP2012108104A patent/JP5847013B2/ja not_active Expired - Fee Related
-
2013
- 2013-04-30 EP EP13165911.2A patent/EP2662777A3/en not_active Withdrawn
- 2013-05-02 US US13/875,420 patent/US8799530B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04241541A (ja) * | 1991-01-14 | 1992-08-28 | Hitachi Ltd | 通信制御装置 |
US5983292A (en) * | 1997-10-15 | 1999-11-09 | International Business Machines Corporation | Message transport mechanisms and methods |
JP2003501746A (ja) * | 1999-06-09 | 2003-01-14 | クロジック コーポレーション | ホスト・システムとホスト・アダプタとの間でi/oブロックを自動的に転送するための方法および装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020524840A (ja) * | 2017-06-16 | 2020-08-20 | アリババ グループ ホウルディング リミテッド | ハードウェア仮想化のための方法及び装置 |
US11467978B2 (en) | 2017-06-16 | 2022-10-11 | Alibaba Group Holding Limited | Method and apparatus for hardware virtualization |
JP7220163B2 (ja) | 2017-06-16 | 2023-02-09 | アリババ グループ ホウルディング リミテッド | ハードウェア仮想化のための方法及び装置 |
Also Published As
Publication number | Publication date |
---|---|
US8799530B2 (en) | 2014-08-05 |
US20130304949A1 (en) | 2013-11-14 |
JP5847013B2 (ja) | 2016-01-20 |
EP2662777A2 (en) | 2013-11-13 |
EP2662777A3 (en) | 2016-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11755527B2 (en) | Techniques for command validation for access to a storage device by a remote client | |
US9557922B2 (en) | System and method for peer-to-peer PCIe storage transfers | |
US10423568B2 (en) | Apparatus and method for transferring data and commands in a memory management environment | |
CN107992436B (zh) | 一种NVMe数据读写方法及NVMe设备 | |
US9696942B2 (en) | Accessing remote storage devices using a local bus protocol | |
KR101934519B1 (ko) | 저장 장치 및 그것의 데이터 전송 방법 | |
US8949486B1 (en) | Direct memory access to storage devices | |
US20150261434A1 (en) | Storage system and server | |
US8032686B2 (en) | Protocol translation in a data storage system | |
US20120278575A1 (en) | Method and Computer Program Product For Exchanging Message Data In A Distributed Computer System | |
CN112416250A (zh) | 基于NVMe的固态硬盘的命令处理方法及相关设备 | |
JP5847013B2 (ja) | 計算機及び計算機における入出力制御方法 | |
US10733118B2 (en) | Computer system, communication device, and storage control method with DMA transfer of data | |
US10853255B2 (en) | Apparatus and method of optimizing memory transactions to persistent memory using an architectural data mover | |
US8996772B1 (en) | Host communication device and method with data transfer scheduler | |
US10977201B1 (en) | Per IO direct memory access redirection | |
US9110856B2 (en) | Interface control apparatus, data storage apparatus and method for interface control | |
KR20200143922A (ko) | 메모리 카드 및 이를 이용한 데이터 처리 방법 | |
CN110399322B (zh) | 一种数据传输方法及乒乓dma架构 | |
US10482044B2 (en) | Computer, device control system, and device control method for direct memory access | |
JP2008059195A (ja) | インタフェース方法及びデータ処理システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140513 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150324 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150325 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150525 |
|
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: 20151027 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20151124 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5847013 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
LAPS | Cancellation because of no payment of annual fees |