JP7010598B2 - 再構成可能なマルチポートを具備するPCIeストレージシステムのためのQoSを認識した入出力管理方法、管理システム、及び管理装置 - Google Patents

再構成可能なマルチポートを具備するPCIeストレージシステムのためのQoSを認識した入出力管理方法、管理システム、及び管理装置 Download PDF

Info

Publication number
JP7010598B2
JP7010598B2 JP2017079520A JP2017079520A JP7010598B2 JP 7010598 B2 JP7010598 B2 JP 7010598B2 JP 2017079520 A JP2017079520 A JP 2017079520A JP 2017079520 A JP2017079520 A JP 2017079520A JP 7010598 B2 JP7010598 B2 JP 7010598B2
Authority
JP
Japan
Prior art keywords
data
protocol
mode
access port
urgent
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
JP2017079520A
Other languages
English (en)
Other versions
JP2017211984A (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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co 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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2017211984A publication Critical patent/JP2017211984A/ja
Application granted granted Critical
Publication of JP7010598B2 publication Critical patent/JP7010598B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0024Peripheral component interconnect [PCI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Description

本発明はデータ管理システムに係り、より詳しくは、再構成可能なマルチポート(reconfigurable multi-ports)を具備するPCIe(peripheral component interconnect express)ストレージシステムのためのサービス品質(QoS、quality of service)を認識した入力/出力(IO)管理方法、管理システム、及び管理装置に関する。
コンピュータシステムなどのデータ管理システムは、中央処理ユニット(CPU、central processing unit)、メモリ装置、及び入出力装置を含むいくつかのコア構成要素を有するホストシステムと、ホストシステムの構成要素間の情報を伝送するデバイス接続部、即ちルートコンプレックス(root complex)とを一般的に含む。インターコネクタプロトコルの中の1つの例はホストシステム構成の間のデータ伝送モードを定義するPCIeである。
直接メモリアクセス(DMA、direct memory access)、直接キャッシュアクセス(DCA、direct cache access)、及びデータ直接入出力(DDIO、data direct I/O)はホストシステム(メモリ又はキャッシュ)及び入出力装置の間においてデータを伝送するための現存する技法である。DMAは入出力装置及びホストシステムメモリの間においてデータを伝送する。DDIOは入出力装置及びホストCPUの最後レベルキャッシュ(LLC、last level cache)の間においてデータを伝送する。DCAはDMAと同様に、入出力装置及びホストシステムメモリの間においてデータを伝送するが、データ伝送が完了した後に、DCAはメモリからCPUキャッシュにデータをプリフェッチ(prefetch)する。
ホストシステムは複数のデータ管理ポート(multiple data handling ports)を含む。複数のデータ管理ポートの各々はDMA、DCA、又はDDIOプロトコルの中の1つによってデータを伝送するように構成される。このようなポートは以下において、‘‘マルチポート(multi-ports)’’と称する。一般的なシステムはDMAのために構成された一種のマルチポート、DDIOのために構成された一種のマルチポート、DACのために構成された一種のマルチポートを含み得る。現存するシステムソフトウェアはこのような技法(DMA、DCA、又はDDIO)の中の1つを使用してIO要請を装置に伝送する。しかし、DMA、DCA、又はDDIOプロトコルの機能的な側面を結合するか、あるいは、マルチプレクシング、QoS制御、又はキャッシュフロー制御のためにプロトコルの間を動的に切り替える方法はなかった。
米国特許第7,825,684号公報 米国特許第7,937,532号公報 米国特許公開第2015/0269091号明細書 国際特許公開第WO2008/017872号明細書
本発明は上述した技術的課題を解決するためになされたものであって、本発明の目的は再構成可能なマルチポートを具備するPCIeストレージシステムのためのQoSを認識した入出力管理方法、管理システム及び管理装置を提供することにある。
再構成可能なマルチポートを具備するPCIe(Peripheral Component Interconnect express)ストレージシステムのためのサービス品質(QoS、quality of service)を認識した入力/出力(IO、input/output)管理方法システム、及び装置の実施形態を順次説明する。
実施形態において、本方法は受信器インターフェイスにおいて、ソフトウェアアプリケーションからデータアクセスポートを通じてデータを通信するための情報を含む入力/出力(IO)要請を受信する段階を含む。前記方法は伝送モード選択器により、前記データポートを通じて前記データを通信するための伝送モードを判別し、前記伝送モードは処理量指向モード、レイテンシ敏感モード、又は均衡モードから選択される段階をさらに含む。また、前記方法はブロック分配ユニットによって、前記伝送モードにしたがい前記IO要請に応答して、前記アクセスポートを通じ前記データを通信する段階を含む。
本システムの実施形態はデータ通信制御器を含む。前記データ通信制御器は前記データアクセスポートを通じてデータを通信するための情報を含む入力/出力(IO)要請をソフトウェアアプリケーションから受信するように構成される受信器インターフェイスを含む。また、前記データ通信制御器は前記受信器インターフェイスと連結され、前記データアクセスポートを通じて前記データを通信するための伝送モードを判別するように構成され、前記伝送モードは処理量指向モード、レイテンシ敏感モード、又は均衡モードから選択される伝送モード選択器をさらに含む。前記データ通信制御器は前記伝送モードにしたがい、前記IO要請に応答して前記データアクセスポートを通じ前記データを通信するように構成されるブロック分配ユニットを含む。前記システムは前記データ通信制御器と連結され、周辺構成インターコネクタバス(PCI bus)を通じて周辺装置に前記データを通信するように構成される前記データアクセスポートを含む。
本装置の実施形態はデータアクセスポートを通じてデータを通信するための情報を含む入力/出力(IO)要請をソフトウェアアプリケーションから受信するように構成される受信器インターフェイスを含む。前記装置は前記受信器インターフェイスと連結され、前記データアクセスポートを通じて前記データを通信するための伝送モードを判別するように構成され、前記伝送モードは処理量指向モード、レイテンシ敏感モード、又は均衡モードから選択される伝送モード選択器をさらに含む。前記装置は前記伝送モードにしたがい、前記IO要請に応答して前記データアクセスポートを通じ前記データを通信するように構成されるブロック分配ユニットをさらに含む。
本発明の実施形態によれば、システム処理量が向上する。また、従来のDDIO又はDCA技法と比較する時、本発明の実施形態にしたがうならばキャッシュオーバーフローが防止される。したがって、向上した性能を有するストレージシステムが提供される。
再構成可能なマルチポートを具備するPCIeストレージシステムのためのQoSを認識した入出力管理システムの実施形態を示す例示的なブロック図である。 再構成可能なマルチポートを具備するPCIeストレージシステムのためのQoSを認識した他の入出力管理システムの実施形態を示す例示的なブロック図である。 再構成可能なマルチポートを具備するPCIeストレージシステムのためのQoSを認識した入出力管理方法の実施形態を示す順序図である。 再構成可能なマルチポートを具備するPCIeストレージシステムのためのQoSを認識した入出力管理のために特に構成されたシステムの実施形態を示す論理的図面である。 図4の構造によって遂行される方法を説明する順序図である。 再構成可能なマルチポートを具備するPCIeストレージシステムのためのQoSを認識した入出力管理システムのデータマルチプレクシングプロセスの実施形態を示す論理的図面である。 図6において説明したプロセスの実施形態を示す例示的な順序図である。 再構成可能なマルチポートを具備するPCIeストレージシステムのためのQoSを認識した入出力管理のデータマルチプレクシングプロセスの実施形態を示す論理的図面である。 図8において説明したプロセスの実施形態を示す例示的な順序図である。 再構成可能なマルチポートを具備するPCIeストレージシステムのためのQoSを認識した入出力管理方法の性能を示す論理的図面である。 再構成可能なマルチポートを具備するPCIeストレージシステムのためのQoSを認識した入出力管理方法の実施形態を示す例示的な順序図である。 本発明に係って特に構成されたコンピューティングシステムのブロック図である。
再構成可能なマルチポートを具備するPCIeストレージシステムのためのQoSを認識した入出力管理方法及びシステムの実施形態を説明する。記載した実施形態は特定データ管理システムの性能を向上させる。データ管理システムはコンピュータワークステーション、ラップトップコンピュータ、タブレットコンピュータ、PDA(personal data assistance)、スマートフォン等の個人用コンピュータ装置を含むが、これに限定されない。他の実施形態はサーバー、ストレージ制御器、クラウドサーバーファーム(cloud server farms)、及びデータファームのような商業用データ管理システム及び他の商業用データセンターシステム及びその構成と共に使用できる。
記載した実施形態は論理装置インターフェイス(logical device interface)をホストシステムと共に駆動するアプリケーションに提供する。実施形態において、論理装置は選択可能なデータ伝送能力及びQoSを有する複数の物理的ポートを複数のデータ経路に結合する。データ経路は‘‘処理量増強(throughput booster mode)’’、‘‘迅速モード(swift mode)’’、及び‘‘均衡モード(balanced mode)’’を含む複数のデータ伝送モードの中の1つにしたがって構成される。実施形態において、処理量増強はDMAデータ伝送のために構成されたポートを通じてすべてのデータを伝送する。実施形態において、迅速モードはDDIOデータ伝送のために構成されたポートを通じてすべてのデータを伝送する。実施形態において、均衡モードは検査されたデータ特性にしたがってDMAポート及びDDIOポートの間を切り替える。また、本発明の実施形態は均衡モードにおいてQoS要件に基づいてデータ経路をマルチプレクシングすることを説明する。ここで、IOブロックはQoS要件及びデータ特性に基づいてDMA又はDDIOポートのセットにしたがってグループ化され、伝送される。また、本発明の実施形態はDDIOポートが使用される場合、CPUキャッシュのオーバーフローを防止する流れ制御方法を含む。
当業者は本発明の実施形態の多様な長所及び利益を知得できる。特に、システムレイテンシ減少を含むQoS長所は以前のシステムと比較されて認識される。また、システム処理量は本発明の一部の実施形態によって向上する。また、キャッシュオーバーフローは従来のDDIO又はDCA技法と比較する時、本発明の実施形態によって防止される。本発明の実施形態をPCIeを参照して詳細に説明するが、選択されたデータ伝送プロトコルがデータポート、メモリ、及びプロセッサキャッシュの間におけるアクセスを提供すれば、当業者は追加的な又は他のシステムに本発明の実施形態が適用されることを知得できる。
図1は再構成可能なマルチポートを具備するPCIeストレージシステムのためのQoSを認識したIO管理システム100の実施形態を示すブロック図である。実施形態において、IO管理システム100はホストシステム102を含み、選択的に、1つ以上の周辺エンドポイント(Peripheral endpoint)114を含む。ホストシステム102は、例えばコンピュータのようなデータ管理装置である。周辺エンドポイントはPCIe、又は類似なデータバスを通じてホストシステム102と通信するように構成された周辺装置である。例としてはPCIe拡張装置、データストレージ装置、サーバーブレード(server blades)等を含むが、これに限定されない。
実施形態において、ホストシステム102は中央処理ユニット(CPU)106、メモリ108、及び物理インターフェイス110を通じてルートコンプレックス(root complex)104と連結された1つ以上の内部エンドポイント112又は外部エンドポイント114の間においてデータを通信するためのデータ通信ファブリック(data communication fabric)を形成するルートコンプレックス104を含む。ルートコンプレックス104はPCIeのような、しかし、これに限定されないデータ通信プロトコルにしたがって動作する。実施形態において、ルートコンプレックス104及び/又は物理インターフェイス110は図4に図示したような複数のデータ通信ポートを含む。多様な内部、外部エンドポイント112、114はルートコンプレックス104を通じてCPU106及び/又はメモリ108と通信する。実施形態において、CPU106はキャッシュ116を含むか、又はキャッシュ116に外部的に連結される。キャッシュ116の一例は最後レベルキャッシュ(LLC、last level cache)である。
図2は再構成可能なマルチポートを具備するPCIeストレージシステムのためのQoSを認識した他のIO管理システム200の実施形態を示す例示的なブロック図である。実施形態において、CPU106は複数のCPUコア202を含む。IO管理システム200はCPUコア202、メモリ108、及び1つ以上のエンドポイントの間においてデータを通信するルートコンプレックス104を同様に含む。‘‘エンドポイント’’の用語は図1に図示した内部エンドポイント112及び外部エンドポイント114を含む。エンドポイントの例はグラフィック処理ユニット204、1つ以上のネットワークインターフェイス206、ディスク制御器208、他のPCIeエンドポイント210aを含む。また、IO管理システム200はPCI/PCI-xへのPCIスイッチ/PCIeブリッジ212を含む。他の実施形態において、PCIスイッチはPCIeブリッジから分離される。PCIスイッチは複数のPCIeエンドポイント210b、210cに切り替えた(switched)通信を提供する。PCIeブリッジはレガシ(legacy)PCI又はPCI-xプロトコルにしたがって動作するレガシエンドポイント214に連結性(connectivity)を提供する。
図3は再構成可能なマルチポートを具備するPCIeストレージシステムのためのQoSを認識したIO管理方法300の実施形態を示す例示的な順序図である。実施形態において、IO管理方法300はソフトウェアアプリケーションから302段階に図示したようにデータアクセスポートを通じてデータを通信するための命令語又は情報を含むIO要請を受信してプロセスを開始する。304段階において、IO管理方法300はデータアクセスポートを通じてデータを通信するための伝送モード選択(transfer mode selection)を決定する。伝送モードは処理量指向モード(throughput-oriented mode)、レイテンシ敏感モード(latency-sensitive mode)、及び均衡モード(balanced mode)を含む伝送モードのグループから選択される。306段階において、IO管理方法300はIO要請に応答しデータ伝送モードにしたがってデータアクセスポートを通じデータを通信する。
図4は再構成可能なマルチポートを具備するPCIeストレージシステムのためのQoSを認識したIO管理のために特に構成されたシステム400の実施形態を示す論理的図面である。実施形態において、システム400はルートコンプレックス104の構成又は他のPCIe制御構成にプログラムされる。システムソフトウェア又はファームウェアモジュールはアプリケーションによる使用のための論理装置402を具現する。一実施形態において、システム400は伝送モード選択器404を具備する受信器インターフェイス403(receiver interface)を含むデータ通信制御器401を含む。また、データ通信制御器401はDMA要請を管理するTOブロック分配器414(TO block distributor)、DDIO要請を管理するLSブロック分配器416(LS block distributor)、及びデータ特性にしたがってTOブロック分配器414及びLSブロック分配器416の間においてブロックを切り替えるブロック識別器412(block identifier)を含むブロック分配ユニット405(block distribution unit)を含む。データ通信制御器401は複数のDMAポート420及び/又は複数のDDIOポート422を動作するように構成されるマルチポート装置ドライバー407をさらに含む。
実施形態において、マルチポートストレージ装置428のようにストレージエンドポイントと連結されたポートはアプリケーションによる使用のための論理的ストレージ構成を示す。実施形態において、システム400はアプリケーションからIO要請を受信する受信器インターフェイス403(receiver interface)を含む。受信器インターフェイス403は伝送モード選択器404を含む。伝送モード選択器404は複数のデータ伝送モードの中の1つを選択する。データ伝送モードの例は処理量増強406(throughput booster mode)、迅速モード410(swift mode)、及び均衡モード408(balanced mode)を含む。
一実施形態において、処理量増強406はアプリケーションがメモリ108にデータを伝送するようにする。このような実施形態は向上したデータ処理量を提供する。実施形態において、迅速モード410は1つ以上のCPUコア202と連関されたLLC又は他のキャッシュのようなキャッシュ116にデータを通信することによって、アプリケーションにCPU160との速いデータ通信を提供する。均衡モード408はアプリケーションから通信されるデータ特性に基づいてメモリ108又はキャッシュ116の中の1つと選択的にデータを通信する。
このような実施形態において、データブロックはアプリケーションからのIO要請により受信される。伝送モード選択器404は適用される伝送モードを識別する。実施形態において、伝送モード選択器404はIO要請に含まれたデータ特性のような情報に応答して伝送モードを選択する。他の実施形態において、伝送モード選択器404はDMAポートが可能であるか、又はDDIOポートが可能であるかに対する判別に応答して伝送モードを選択する。その他の実施形態において、伝送モード選択器404は予め定められたQoSプロトコル、規則、又はロード(load)バランシングシークェンスに応答して伝送モードを判別する。当業者は伝送モード選択器404によって特定IO要請のために使用される伝送モードの判別に使用される多様な基準を認知できる。その他の実施形態において、伝送モード選択器404はタイミング又はパケットカウント規則にしたがって伝送モードを決定する。
伝送モード選択器404はブロック分配ユニット405にデータブロックを伝送する。実施形態において、ブロック分配ユニット405は処理量指向(TO、throughput oriented)ブロック分配器414、及びレイテンシ敏感(LS、latency-sensitive)ブロック分配器416、ブロック識別器412、及び流れ制御器418を含む。
処理量増強406が選択された場合、データブロックはTOブロック分配器414に伝送される。TOブロック分配器414は要請ブロック(request block)を複数のサブブロックに分け、複数のサブブロックの各々はDMAプロトコルを通じてデータをメモリ108に伝送するように構成された1つ以上のDMAポート420に伝送される。一部の実施形態において、1つ以上のDMAポート420は、例えばマルチポート装置ドライバーによって又はシステム基本入出力システム(BIOS、basic input/output system)によってシステムが開始する時、定義される。同様に、1つ以上のDDIOポート422はシステムが開始する時、定義される。他の実施形態において、1つ以上のDMAポート420は動作の中において、IO要請に応答して、DDIOポート422に動的に再構成される。同様に、1つ以上のDDIOポート422は動作の中において、IO要請に応答して、DMAポート420に動的に再構成される。
迅速モード410(swift mode)において、データブロックはLSブロック分配器416に通信され、その次にデータブロック又はサブブロックはDDIOポート422に伝送される。他の実施形態において、流れ制御器418はCPU106と連関されたキャッシュ116の汚染(pollution)又はオーバーフローを防止するためにデータブロック又はサブブロックのDDIOポートへの流れを制御する。流れ制御方法の実施形態は以下の図10乃至図12を参照して説明する。実施形態において、マルチポートストレージ装置428はデータを伝送するように構成される複数のDMAポート424及び/又は複数のDDIOポート426を含む。
実施形態において、均衡モード408はDMAポート420を通じて通信するTOブロック分配器414又はDDIOポート422を通じて通信するLSブロック分配器416の中の1つにデータブロックを選択的に伝送する。このような実施形態において、ブロック識別器412はデータブロックに対するデータ特性を検査し、データ特性にしたがって、データブロックがTOブロック分配器414に伝送されるか、又はLSブロック分配器416に伝送されるかを判別する。実施形態において、データ特性はアプリケーションによって設定された緊急性識別子(urgency identifier)を含む。例えば、データ特性はデータブロックを緊急(urgent)であるか、又は緊急でない(non-urgent)かの特徴を有する。このような実施形態において、緊急なデータブロックはLSブロック分配器416に伝送され、緊急でないデータブロックはTOブロック分配器414に伝送される。
実施形態において、データ特性はデータブロックと連関されたメタデータ又はタッグ(tag)を含む。又は、データ特性はデータブロック内のビットセットを含む。その他の実施形態において、データ特性は提供されるデータブロックの種類に応答するか、又はデータブロックを提供するアプリケーション又は使用者に応答して内在的に誘導される。他の実施形態において、一部の使用者又はアプリケーションは緊急データブロックを生成し、他の使用者又はアプリケーションは緊急でないデータブロックを生成する。一実施形態において、ブロックがアクセス可能に準備されたら直ちにブロックをアクセスできるように、使用者が要請した場合、ブロックを緊急にできる。プリフェッチブロックはブロックが近い将来にアクセスされるか、又はアクセスされないか分からないので、プリフェッチブロックは緊急でない。当業者はブロック識別器412によってデータブロックがTOブロック分配器414に伝送されるか、又はLSブロック分配器416に伝送されるかを判別するのに使用される追加的な又は他のデータ特性を認知できる。
図5は図4の構成によって遂行される方法500を説明する順序図を示す。このような実施形態において、方法500は502段階に図示したようにアプリケーションからIO要請を受信する。504段階において、伝送モード選択器404はデータ特性に基づいて伝送モードを選択する。すべてのポートがDMAポート420として設定された場合、処理量増強406が選択され、すべてのデータブロックはTOブロック分配器414に伝送される。すべてのポートがDDIOポート422として設定された場合、迅速モード410が選択され、すべてのデータブロックはLSブロック分配器416に伝送される。ポートの中の一部がDMAポート420として設定され、ポートの中の一部がDDIOポート422に設定された場合、504段階において、均衡モードが選択される。他の実施形態において、すべてのポートは1つの種類又は他の種類として設定される必要はない。処理量要請は使用されないDDIOポートを残し、DMAであるポートのサブセットに要請を単純に伝送する。このような実施形態において、516段階において、データブロックはブロックの識別のためのブロック識別器412に伝送される。‘‘一般(normal)’’又は‘‘緊急でない(non-urgent)’’ブロックは506段階に図示したように、TOブロック分配器414に伝送される。緊急ブロックは510段階に図示したように、LSブロック分配器416に伝送される。512段階において、流れ制御プロセスが遂行され、DDIO要請が514段階において発行される。又はDMA要請は508段階において発行される。
図6は再構成可能なマルチポートを具備するPCIeストレージシステムのためのQoSを認識したIO管理システムのデータマルチプレクシングプロセス600の実施形態を示す論理的図面である。一実施形態において、図6のプロセスはTOブロック分配器414又はDMA伝送経路に連関された構成によって遂行される。実施形態において、要請されたデータブロック602が受信され、検査される。データブロック602は複数のサブブロック604(例えば、8個又はそれ以上のサブブロック)に分割される。606段階において、サブブロックの大きさに対する判別が遂行される。例えば、データブロック602に含まれたサブブロック604の数がサブブロック604と通信できるDMAポート420の数より小さいか又は同一である場合、各サブブロック604の現在の大きさが維持される。しかし、サブブロック604の数がサブブロック604を伝送できるDMAポート420の数より多いと606段階において判別された場合、各サブブロック604の大きさが調節され、サブブロック604の全体数が減少される。例えば、サブブロック604の数がDMAポート420の数より少ないか、或いは同一である場合に対応する第1結果610は元の要請されたデータブロック602と同一のサブブロック構造を含む。第2結果608は少ない数のサブブロックを含み、各サブブロックはDMAポート420を通じて通信するためにその各大きさが大きくなる。
図7は図6において説明したプロセスの実施形態を示す例示的な順序図である。図7の実施形態において、方法700は702段階において、データブロックを受信する。704段階において、方法700は受信されたデータブロックに含まれたサブブロックの数を計算する。サブブロックの数は受信されたデータブロックの大きさをデータ伝送の最小単位で割った値として計算される。このような計算の結果は図6に図示した元のデータブロック602内のサブブロック604の確認である。
図7の706段階において、サブブロックの数が使用可能であるDMAポート420の数より少ないか、或は同一であるかを判別する。仮に少ないか、或は同一であれば、サブブロックの大きさは、708段階に図示したように、受信されたデータブロックの大きさをサブブロックの数で割った値と同一である。仮に多ければ、710段階において、サブブロックの大きさが調節される。このような実施形態において、サブブロックの大きさは要請されたブロックの大きさを使用可能であるDMAポート420の数で割った値に増加される。図6の例において、第2結果608は710段階において生成される。
サブブロックの大きさが708段階又は710段階において判別された後に、712段階において、DMA要請がサブブロックと共に装置ドライバーに伝送される。714段階において、データブロックの終了地点(end of data block)に到達したと判別された場合、プロセスが終了される。終了地点に到達していないと判別された場合、716段階において、サブブロックは増加され、712段階において、次のDMA要請が伝送される。このようなループはデータブロックのすべてのサブブロックがDMAポート420を通じて伝送される時まで繰り返される。
図8は再構成可能なマルチポートを具備するPCIeストレージシステムのためのQoSを認識したIO管理システムのデータマルチプレクシングプロセス800の実施形態を示す論理的図面である。図8の実施形態はデータブロックがDDIOポート422を通じて伝送される迅速モード(swift mode)の例を示す。プロセス800はLSブロック分配器416及び流れ制御器418によって少なくとも一部において遂行される。図6の実施形態のように、プロセス800は通信のためのデータブロック602を受信すると共に開始される。データブロック602は複数のサブブロック604を含む。802段階において、サブブロック604の数がサブブロック604を通信できるDDIOポート422の数より少ないか、或は同一であるかを判別する。少ないか、或は同一であれば、第1結果804は元の大きさのサブブロックを含む。多ければ、第2結果806は大きさが調節されたサブブロックを含む。ここで、ブロック大きさはサブブロックを通信できるDDIOポートの数に符合されるように変形される。808段階において、追加的な段階はサブブロックの大きさがDDIOキャッシュ大きさより大きいかを判別することを含む。大きければ、大きさはDDIOキャッシュ大きさ要求に符合されるように調節される。512段階において、流れ制御動作が遂行されてキャッシュオーバーラン(overrun)又は汚染(pollution)を防止する。流れ制御プロセスの例は図12を参照して説明する。810段階において、サブブロックはラウンドロビンプロセス(round-robin process)にしたがってDDIOポート422に分配される。
図9は図8において説明したプロセスの実施形態を示す例示的な順序図である。図9の実施形態において、方法900は902段階において、データブロックを受信する。904段階において、方法900は受信されたデータブロックに含まれたサブブロックの数を計算する。サブブロックの数は受信されたデータブロックの大きさをデータ伝送の最小単位で割った値として計算される。このような計算の結果は図8に図示した元のデータブロック602内のサブブロック604の確認である。
図9の906段階において、サブブロックの数が使用可能であるDDIOポート422の数より少ないか、或は同一であるかを判別する。少ないか、或は同一であれば、サブブロックの大きさは908段階に図示したように、受信されたデータブロックの大きさをサブブロックの数で割った値と同一である。多ければ、910段階において、サブブロックの大きさが調節される。このような実施形態において、サブブロックの大きさは要請されたブロックの大きさを使用可能であるDDIOポート422の数で割った値に増加する。図8の例において、第2結果806は910段階において生成される。
実施形態において、910段階において調節されたサブブロックの大きさをLLCによりDDIOの予約サイズ(reserved size)より小さいかを912段階において判別する。小さいか、或いは同一であれば、512段階において、流れ制御が遂行される。大きければ、サブブロックはLLCによりDDIOの予約サイズより小さいか、或いは同一になるように大きさが調節される。そして、512段階において、流れ制御が遂行される。
サブブロックの大きさが判別され、流れ制御が遂行された後に、916段階に図示したように、DDIO要請がサブブロックと共に装置ドライバーに伝送される。918段階において、データブロックの終了地点(data block of end)に到達したと判別された場合、プロセスが終了する。終了地点に到達していないと判別された場合、サブブロックが920段階に図示したように増加され、916段階において、次のDDIO要請が伝送される。このようなループはデータブロックのすべてのサブブロックがDDIOポート422を通じて伝送される時まで繰り返す。
図10は再構成可能なマルチポートを具備するPCIeストレージシステムのためのQoSを認識したIO管理方法の性能を示す論理的図面である。図10はCPUコア202と連関されたLLC(last level cache)のようなキャッシュ116を示す。図示した実施形態において、LLCは複数のキャッシュラインCLを含む。占有されたキャッシュラインはCPUコア202による回収(retrieval)のためのデータを含むキャッシュラインである。残るキャッシュラインは占有されておらず使用可能であるキャッシュラインである。占有されたキャッシュライン及び残るキャッシュラインの組合せはLLCの全体予備キャッシュライン(total reserved cache lines)を含む。
図10は3つのキャッシュ状態の例を示す。第1状態1002において、3つのキャッシュラインは受信されたデータによって占有される。実施形態において、キャッシュライン大きさは64バイトである。一実施形態において、LLCのアクセスレイテンシは100nsであり、相互要請(inter-request)到着時間は200nsである。したがって、毎要請到着に対して、2つの追加的なキャッシュラインがキャッシュラインを回収するCPUコア202によって保障される。したがって、第2状態1004において、ただ1つのキャッシュラインが占有される。第2要請が256バイトデータのサブブロックと共に受信された場合、4つの追加的なキャッシュラインが第3状態1006に図示したように占有され全体5つのキャッシュラインが占有される。
図11は再構成可能なマルチポートを具備するPCIeストレージシステムのためのQoSを認識したIO管理方法の実施形態を示す例示的な順序図である。流れ制御のための方法1100の実施形態が流れ制御器418によって、少なくとも一部において、遂行される。流れ制御器418はキャッシュ116の状態を点検し、オーバーフロー保護状態(overflow protection status)をトリガーすることによって、キャッシュオーバーラン(cache overrun)を防止する。本明細書において使用する‘‘オーバーフロー保護状態(overflow protection status)’’はキャッシュ116のデータの流れを計測するか、又はスロットリング(throttling)することによってキャッシュオーバーランが防止される論理的又は動作上の状態を意味する。実施形態において、1102段階において、データブロックが受信される。アクセスされたキャッシュラインの数は1104段階に図示したように、相互要請到着時間を平均キャッシュラインアクセスレイテンシで割った値として計算される。1106段階において、残るキャッシュラインはアクセスされたキャッシュラインの数を以前に残るキャッシュラインの数と合算することによって計算される。このような例は図10の第2状態1004に示した。
キャッシュ保護状態がトリガーされてキャッシュのオーバーランを防止できる。全体データブロックをキャッシュに書き込む代わりに、ブロックは残るキャッシュラインの数に基づいて、キャッシュへの通信のための適切な大きさのサブブロックに分けられる。必要によって、キャッシュ保護状態はサブブロックが順次的に書き込まれるか、又は空間をおいてキャッシュオーバーランを防止する。追加的な実施形態において、キャッシュ保護状態はデータブロックがキャッシュ116の代わりに、メモリ108に書込まれるようにする。したがって、1108段階において、残るキャッシュラインが全体予備キャッシュラインより多いか否かが判別される。多ければ、残るキャッシュラインは1110段階に図示したように、全体予備キャッシュラインと同一である。多くなければ、1112段階において、キャッシュラインのサブブロックの数が残るキャッシュラインより小さいか否かが判別される。小さければ、1114段階に図示したように、残るキャッシュラインの元の数でキャッシュラインのサブブロックの数を減算することによって計算される。小さくなければ、計算はキャッシュラインのサブブロックの数が残るキャッシュラインより小さくなる時までループにより遂行される。
図12は本発明に係って特に構成されたコンピューティングシステム1200のブロック図である。コンピューティングシステム1200は図4の受信器インターフェイス403、ブロック分配ユニット405、及びマルチポート装置ドライバー407を具備するPCIeデータ通信制御器401を含む。コンピューティングシステム1200はクロック1204、ランダムアクセスメモリ(RAM、random access memory)のようなメモリ108、使用者インターフェイス1208、基底帯チップセット(baseband chipset)のようなモデム1210、ソリッドステートドライブ/ディスク(SSD)1214、及び/又はCPU106、システムバス1202と電気的に連結されるすべてのものを含む。コンピューティングシステム1200はシステムバス1202と電気的又は論理的に連結される図4の受信器インターフェイス403、ブロック分配ユニット405、及びマルチポート装置ドライバー407を具備するPCIeデータ通信制御器401を含む。
実施形態は仲裁(arbitration)又は監視タイマー(arbitration or watchdog timer)を含んでIOキューを圧倒することからビデオストリームのようなレイテンシに敏感であるIOトランザクションを防止する。即ち、性能ブースタIO要請は前進を進める機会を有する。追加的に、実施形態はランダム(小さいランダム読出し/書込み)IOトランザクションもまた収容する。
以下の説明は本発明の特定な思想が具現される適切なマシンの概略的であり、一般的な説明である。一般的に、マシンはプロセッサ、メモリ、例えばランダムアクセスメモリ(RAM)、読出し専用メモリ(ROM)、及び他の状態保持媒体、ストレージ装置、ビデオインターフェイス、及び入力/出力インターフェイスポートと連結されたシステムバスを含む。マシンはキーボード、マイク等の従来の入力装置からの入力のみならず、他のマシンから受信された命令、仮想現実(VR、virtual reality)環境との通信、生体認識フィードバック、又は他の入力信号によって、少なくとも一部において、制御される。本文に使用する‘‘マシン(machine)’’の用語はシングルマシン、仮想マシン、又はマシン、仮想マシン、共に動作する装置が電気的に連結されたシステムを包括的に含む。例示的なマシンは個人用コンピュータ、ワークステーション、サーバー、携帯用コンピュータ、ポケット用コンピュータ、電話機、タブレット等のコンピューティング装置のみならず、個人又は大衆交通手段、例えば、自動車、汽車、タクシー等の輸送装置を含む。
マシンはプログラム可能か、又はプログラム可能でないロジック装置又はアレイ、ASIC(Application Specific Integrated Circuit)、内装コンピュータ、スマートカード等の内装された制御器を含む。マシンはネットワークインターフェイス、モデム、又は他の通信連結のような1つ以上の遠隔マシンへの1つ以上の連結を活用する。マシンはイントラネット、インターネット、近距離通信網(LAN、local area network)、遠距離通信網(WAN、wide area network)のような物理的及び/又は論理的ネットワークの方式によって連結される。当業者はネットワーク通信が無線周波数(RF、Radio Frequency)、衛星、マイクロ波、IEEE 545.11、ブルートゥース(登録商標)、光、赤外線、ケーブル、レーザー等の多様な有線/無線短距離又は長距離キャリヤー及びプロトコルを活用できることを理解できる。
本発明の実施形態は、マシンによってアクセスされる時マシンが遂行する作業、又は要約データタイプ又は低レベルハードウェア構成を定義する機能、手続、データ構造、アプリケーションプログラムを含む連関されたデータを参照するか、又は関連して説明される。連関されたデータは揮発性又は不揮発性メモリ(例えば、RAM、ROM)に格納されるか、又はハードディスクドライブ、フロッピーディスク、光ストレージ、テープ、フラッシュメモリ、メモリスティック、デジタルビデオディスク、生体ストレージ等を含む連関したストレージ媒体及び他の格納装置に格納される。連関されたデータは物理的又は論理的ネットワークを含む伝送環境上においてパケット、直列データ、並列データ、電波信号等の形態により提供され、圧縮されるか、又は暗号化された形式により使用される。連関されたデータは分散された環境において使用され、論理的に又は遠隔に装置アクセスのために格納される。
実施形態を参照して本発明の理論を説明したが、実施形態は本発明の技術的思想から逸脱せず、変形でき、他の適切な方式と組合されることはよく理解されるべきである。そして、詳細な説明が特定実施形態に集中したが、他の構成も考慮される。特に、本明細書において‘‘本発明の実施形態によれば’’のような表現を使用したが、このような表現は一般的に、参照実施形態の可能性を意味し、本発明が特定実施形態の構成に限定されることを意味しない。本明細書に記載したように、このような用語は他の実施形態と組合される同一の又は他の実施形態を参照できる。
本発明の実施形態は1つ以上のプロセッサによって実行される命令語を含む類型の非一時的な機械読出し可能な媒体(tangible、non-transitory machine-readable medium)を含む。命令語は本明細書に記載したような本発明の構成要素を遂行するための命令語を含む。
上述した実施形態は本発明を限定しない。一部の実施形態を説明したが、当業者は本文の長所及び新しい特徴から逸脱せず、本発明の可能な多様な変形を容易に遂行できる。したがって、このような変形は特許請求の範囲に定義された本発明の思想内に含まれる。
100、200 IO管理システム
102 ホストシステム
104 ルートコンプレックス
106 中央処理ユニット(CPU)
108 メモリ
110 物理インターフェイス
112 内部エンドポイント
114 外部エンドポイント
116 キャッシュ
202 CPUコア
204 グラフィック処理ユニット
206 ネットワークインターフェイス
208 ディスク制御器
210a、210b、210c PCIeエンドポイント
212 PCI/PCI-xへのPCIスイッチ/PCIeブリッジ
214 レガシエンドポイント
300 IO管理方法
400 システム
401 データ通信制御器
402 論理装置
403 受信器インターフェイス
404 伝送モード選択器
405 ブロック分配ユニット
406 処理量増強
407 マルチポート装置ドライバー
408 均衡モード
410 迅速モード
412 ブロック識別器
414 TOブロック分配器
416 LSブロック分配器
418 流れ制御器
420、424 DMAポート
422、426 DDIOポート
428 マルチポートストレージ装置
600 データマルチプレクシングプロセス
602 データブロック
604 サブブロック
1200 コンピューティングシステム
1202 システムバス
1204 クロック
1208 使用者インターフェイス
1210 モデム
1214 ソリッドステートドライブ/ディスク(SSD)

Claims (18)

  1. 再構成可能なマルチポートを具備するPCIe(Peripheral Component Interconnect express)ストレージシステムのためのサービス品質(QoS、quality of service)を認識した入力/出力(IO、input/output)管理方法において、
    受信器インターフェイスにおいて、ソフトウェアアプリケーションからデータアクセスポートを通じてデータを通信するための情報を含む入力/出力(IO)要請を受信する段階と、
    伝送モード選択器により、前記データアクセスポートを通じて前記ソフトウェアアプリケーションからマルチポートストレージ装置への前記データを通信するための伝送モードを前記データのデータ特性に基づいて判別し、前記伝送モードは、前記ソフトウェアアプリケーションがメモリに前記データを伝送する処理量指向モード、前記ソフトウェアアプリケーションにCPUとの緊急(urgent)のデータ通信を提供するレイテンシ敏感モード、又は前記ソフトウェアアプリケーションから通信される前記データ特性に基づいて前記メモリ又はキャッシュの中の1つと選択的にデータを通信する均衡モードから選択される段階と、
    ブロック分配ユニットによって、前記選択された伝送モードにしたがって前記IO要請に応答して、前記データアクセスポートを通じて前記データを通信する段階と、を含み、
    前記データ特性は、前記ソフトウェアアプリケーションによって設定された前記データの各データブロックが緊急(urgent)であるか、又は緊急でない(non-urgent)かの情報を有する緊急性識別子(urgency identifier)を含み、
    前記選択される段階は、前記緊急性識別子の情報が前記データブロックの全てが緊急でないことを示す場合、前記処理量指向モードを選択し、前記緊急性識別子の情報が前記データブロックの全てが緊急であることを示す場合、前期レイテンシ敏感モードを選択し、前記緊急性識別子の情報が前記データブロックが緊急であるものと緊急でないものとを含むことを示す場合、前期均衡モードを選択することを特徴とする方法。
  2. 前記処理量指向モードは、直接メモリアクセス(DMA、Direct Memory Access)プロトコルにしたがって、前記データアクセスポートを通じて直接メモリアクセス(DMA、Direct Memory Access)要請を管理する処理量指向(TO、throughput oriented)ブロック分配器とデータを通信するように構成されることを特徴とする請求項1に記載の方法。
  3. 前記レイテンシ敏感モードは、データ直接I/O(DDIO、Data Direct I/O)プロトコルにしたがって前記データアクセスポートを通じてデータ直接I/O(DDIO、Data Direct I/O)要請を管理するレイテンシ敏感(LS、latency-sensitive)ブロック分配器とデータを通信するように構成されることを特徴とする請求項2に記載の方法。
  4. 前記均衡モードは、前記直接メモリアクセス(DMA、Direct Memory Access)プロトコル又は前記データ直接I/O(DDIO、Data Direct I/O)プロトコルの中の1つにしたがって、前記データアクセスポートを通じてデータを選択的に通信するように構成されることを特徴とする請求項3に記載の方法。
  5. 前記データ特性にしたがって前記TOブロック分配器及び前記LSブロック分配器の間においてブロックを切り替えるブロック識別器を使用して通信される前記データに対して定義された前記データ特性に応答して前記DMAプロトコルにしたがって前記データアクセスポートを通じて前記データを通信するか、又は前記DDIOプロトコルにしたがって前記データアクセスポートを通じて前記データを通信するかを判別する段階をさらに含むことを特徴とする請求項4に記載の方法。
  6. プロトコルにしたがってデータを受信するように構成されたキャッシュの状態に応答して前記DMAプロトコルにしたがって前記データアクセスポートを通じて前記データを通信するか、又は前記DDIOプロトコルにしたがって前記データアクセスポートを通じて前記データを通信するかを判別する段階をさらに含み、
    前記データは、前記キャッシュが前記キャッシュのデータの流れを計測するか、又はスロットリング(throttling)することによってキャッシュオーバーランが防止される論理的又は動作上の状態であるオーバーフロー保護状態と判別されたことに応答して前記DMAプロトコルにしたがって通信されることを特徴とする請求項4に記載の方法。
  7. データ通信制御器の前記均衡モードは、
    直接メモリアクセス(DMA、Direct Memory Access)プロトコルにしたがってデータを通信するデータアクセスポートの第1セットを構成する段階と、
    直接データIO(Data Direct IO)プロトコルにしたがってデータを通信するデータアクセスポートの第2セットを構成する段階と、をさらに含むことを特徴とする請求項1に記載の方法。
  8. 前記IO要請によって定義された前記伝送モードにしたがって前記第1及び第2セットの中の少なくとも1つを通じて前記データの通信をマルチプレクシングする段階をさらに含むことを特徴とする請求項7に記載の方法。
  9. サービス品質(QoS、quality of service)を認識した入力/出力(IO、input/output)管理システムにおいて、
    データアクセスポートを通じてデータを通信するための情報を含む入力/出力(IO)要請をソフトウェアアプリケーションから受信するように構成される受信器インターフェイスと、
    前記受信器インターフェイスと連結され、前記データアクセスポートを通じて前記ソフトウェアアプリケーションからマルチポートストレージ装置への前記データを通信するための伝送モードを前記データのデータ特性に基づき判別するように構成され、前記伝送モードを、前記ソフトウェアアプリケーションがメモリに前記データを伝送する処理量指向モード、前記ソフトウェアアプリケーションにCPUとの緊急(urgent)のデータ通信を提供するレイテンシ敏感モード、又は前記ソフトウェアアプリケーションから通信される前記データ特性に基づいて前記メモリ又はキャッシュの中の1つと選択的にデータを通信する均衡モードから選択する伝送モード選択器と、
    前記選択された伝送モードにしたがって、前記IO要請に応答して前記データアクセスポートを通じて前記データを通信するように構成されるブロック分配ユニットを含むデータ通信制御器と、
    前記データ通信制御器と連結され、周辺構成インターコネクタバス(PCI bus)を通じて周辺装置に前記データを通信するように構成される前記データアクセスポートと、を含み、
    前記データ特性は、前記ソフトウェアアプリケーションによって設定された前記データの各データブロックが緊急(urgent)であるか、又は緊急でない(non-urgent)かの情報を有する緊急性識別子(urgency identifier)を含み、
    前記伝送モード選択器は、前記緊急性識別子の情報が前記データブロックの全てが緊急でないことを示す場合、前記処理量指向モードを選択し、前記緊急性識別子の情報が前記データブロックの全てが緊急であることを示す場合、前期レイテンシ敏感モードを選択し、前記緊急性識別子の情報が前記データブロックが緊急であるものと緊急でないものとを含むことを示す場合、前期均衡モードを選択することを特徴とするシステム。
  10. 前記処理量指向モードは、直接メモリアクセス(DMA、Direct Memory Access)プロトコルにしたがって前記データアクセスポートを通じてデータを通信するように構成されることを特徴とする請求項9に記載のシステム。
  11. 前記レイテンシ敏感モードは、データ直接I/O(DDIO、Direct Data I/O)プロトコルにしたがって前記データアクセスポートを通じてデータを通信するように構成されることを特徴とする請求項9に記載のシステム。
  12. 前記均衡モードは、直接メモリアクセス(DMA、Direct Memory Access)プロトコル又はデータ直接I/O(DDIO、Direct Data I/O)プロトコルの中の1つにしたがって前記データアクセスポートを通じてデータを通信するように構成されることを特徴とする請求項9に記載のシステム。
  13. 前記データ通信制御器は、通信される前記データに対して定義されたデータ特性に応答して前記DMAプロトコルにしたがって前記データアクセスポートを通じて前記データを通信するか、又は前記DDIOプロトコルにしたがって前記データアクセスポートを通じて前記データを通信するかを判別するように構成されることを特徴とする請求項12に記載のシステム。
  14. 前記データ通信制御器は、前記DDIOプロトコルにしたがってデータを受信するように構成されるキャッシュの状態に応答して前記DMAプロトコルにしたがって前記データアクセスポートを通じて前記データを通信するか、又は前記DDIOプロトコルにしたがって前記データアクセスポートを通じて前記データを通信するかを判別するように構成され、
    前記データは、前記キャッシュが前記キャッシュのデータの流れを計測するか、又はスロットリング(throttling)することによってキャッシュオーバーランが防止される論理的又は動作上の状態であるオーバーフロー保護状態と判別されたことに応答して前記DMAプロトコルにしたがって通信されることを特徴とする請求項12に記載のシステム。
  15. 前記データ通信制御器の前記均衡モードは、直接メモリアクセス(DMA、Direct Memory Access)プロトコルにしたがってデータを通信するデータアクセスポートの第1セットを構成し、データ直接I/O(DDIO、Direct Data I/O)プロトコルにしたがってデータを通信するデータアクセスポートの第2セットを構成することを特徴とする請求項9に記載のシステム。
  16. 前記データ通信制御器は、前記IO要請によって定義された伝送モードにしたがって前記第1及び第2セットの中の少なくとも1つを通じて前記データの通信をマルチプレクシングするように構成されることを特徴とする請求項15に記載のシステム。
  17. 再構成可能なマルチポートを具備するPCIe(Peripheral Component Interconnect express)ストレージシステムのためのサービス品質(QoS、quality of service)を認識した入力/出力(IO、input/output)管理装置において、
    データアクセスポートを通じてデータを通信するための情報を含む入力/出力(IO)要請をソフトウェアアプリケーションから受信するように構成される受信器インターフェイスと、
    前記受信器インターフェイスと連結され、前記データアクセスポートを通じて前記ソフトウェアアプリケーションからマルチポートストレージ装置への前記データを通信するための伝送モードを前記データのデータ特性に基づき判別するように構成され、前記伝送モードを、前記ソフトウェアアプリケーションがメモリに前記データを伝送する処理量指向モード、前記ソフトウェアアプリケーションにCPUとの緊急(urgent)のデータ通信を提供するレイテンシ敏感モード、又は前記ソフトウェアアプリケーションから通信される前記データ特性に基づいて前記メモリ又はキャッシュの中の1つと選択的にデータを通信する均衡モードから選択する伝送モード選択器と、
    前記選択された伝送モードにしたがって、前記IO要請に応答して前記データアクセスポートを通じて前記データを通信するように構成されるブロック分配ユニットと、を含み、
    前記データ特性は、前記ソフトウェアアプリケーションによって設定された前記データの各データブロックが緊急(urgent)であるか、又は緊急でない(non-urgent)かの情報を有する緊急性識別子(urgency identifier)を含み、
    前記伝送モード選択器は、前記緊急性識別子の情報が前記データブロックの全てが緊急でないことを示す場合、前記処理量指向モードを選択し、前記緊急性識別子の情報が前記データブロックの全てが緊急であることを示す場合、前期レイテンシ敏感モードを選択し、前記緊急性識別子の情報が前記データブロックが緊急であるものと緊急でないものとを含むことを示す場合、前期均衡モードを選択することを特徴とする装置。
  18. 前記処理量指向モードは、直接メモリアクセス(DMA、Direct Memory Access)プロトコルにしたがって前記データアクセスポートを通じてデータを通信するように構成され、
    前記レイテンシ敏感モードは、データ直接I/O(DDIO)プロトコルにしたがって前記データアクセスポートを通じてデータを通信するように構成され、
    前記均衡モードは、前記DMAプロトコル又は前記DDIOプロトコルの中の1つにしたがって前記データアクセスポートを通じてデータを通信するように構成されることを特徴とする請求項17に記載の装置。

JP2017079520A 2016-05-25 2017-04-13 再構成可能なマルチポートを具備するPCIeストレージシステムのためのQoSを認識した入出力管理方法、管理システム、及び管理装置 Active JP7010598B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201662341602P 2016-05-25 2016-05-25
US62/341602 2016-05-25
US15/227959 2016-08-03
US15/227,959 US10713202B2 (en) 2016-05-25 2016-08-03 Quality of service (QOS)-aware input/output (IO) management for peripheral component interconnect express (PCIE) storage system with reconfigurable multi-ports

Publications (2)

Publication Number Publication Date
JP2017211984A JP2017211984A (ja) 2017-11-30
JP7010598B2 true JP7010598B2 (ja) 2022-01-26

Family

ID=60417987

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017079520A Active JP7010598B2 (ja) 2016-05-25 2017-04-13 再構成可能なマルチポートを具備するPCIeストレージシステムのためのQoSを認識した入出力管理方法、管理システム、及び管理装置

Country Status (5)

Country Link
US (1) US10713202B2 (ja)
JP (1) JP7010598B2 (ja)
KR (1) KR102427550B1 (ja)
CN (1) CN107436855B (ja)
TW (1) TWI772279B (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018206175A (ja) * 2017-06-07 2018-12-27 富士通株式会社 コンパイラ、情報処理装置及びコンパイル方法
US10963035B2 (en) * 2017-10-11 2021-03-30 Qualcomm Incorporated Low power PCIe
US10977198B2 (en) 2018-09-12 2021-04-13 Micron Technology, Inc. Hybrid memory system interface
CN109257431B (zh) * 2018-10-12 2021-04-13 微网云(深圳)科技有限公司 分布式服务器系统
CN111278049B (zh) * 2019-01-11 2022-02-18 维沃移动通信有限公司 支持时间敏感通信服务质量的方法及通信设备
US11218396B2 (en) * 2019-12-23 2022-01-04 Seagate Technology Llc Port-to-port network routing using a storage device
CN111190843B (zh) * 2020-01-08 2023-06-27 珠海趣印科技有限公司 一种提高打印速度和打印效果的方法
CN113419780B (zh) * 2021-05-08 2023-05-12 中国科学院声学研究所 一种基于fpga加速卡的dpdk驱动系统
CN113807044B (zh) * 2021-08-06 2023-07-14 苏州浪潮智能科技有限公司 抗串扰pcie端口通道设计方法、系统、终端及存储介质
US11734207B1 (en) * 2022-02-02 2023-08-22 Western Digital Technologies, Inc. Dynamic port allocation in PCIe bifurcation system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100064080A1 (en) 2008-09-11 2010-03-11 International Business Machines Corporation Managing pci-express max payload size for legacy operating systems
US20140173221A1 (en) 2012-12-14 2014-06-19 Ahmad Samih Cache management
JP2016506151A (ja) 2012-12-21 2016-02-25 エーティーアイ・テクノロジーズ・ユーエルシーAti Technologies Ulc 構成可能な通信制御装置
US20170091108A1 (en) 2015-09-26 2017-03-30 Intel Corporation Method, apparatus, and system for allocating cache using traffic class

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3188071B2 (ja) * 1993-10-14 2001-07-16 富士通株式会社 ディスクキャッシュ装置
US5634076A (en) * 1994-10-04 1997-05-27 Analog Devices, Inc. DMA controller responsive to transition of a request signal between first state and second state and maintaining of second state for controlling data transfer
TW406229B (en) * 1997-11-06 2000-09-21 Hitachi Ltd Data process system and microcomputer
US6412027B1 (en) * 1998-02-11 2002-06-25 Globespanvirata, Inc. Direct memory access controller having on-board arbitration circuitry
JPH11306084A (ja) * 1998-04-23 1999-11-05 Fujitsu Ltd 情報処理装置及び記憶媒体
US7162564B2 (en) * 2002-07-09 2007-01-09 Intel Corporation Configurable multi-port multi-protocol network interface to support packet processing
US7443845B2 (en) * 2002-12-06 2008-10-28 Cisco Technology, Inc. Apparatus and method for a lightweight, reliable, packet-based transport protocol
US7825684B2 (en) 2005-03-15 2010-11-02 Tabula, Inc. Variable width management for a memory of a configurable IC
US7937534B2 (en) * 2005-12-30 2011-05-03 Rajesh Sankaran Madukkarumukumana Performing direct cache access transactions based on a memory access data structure
JP4878185B2 (ja) * 2006-03-17 2012-02-15 株式会社リコー データ通信回路および調停方法
GB0616025D0 (en) 2006-08-11 2006-09-20 Aspex Semiconductor Ltd Improvements relating to direct data input/output interfaces
US20080063004A1 (en) * 2006-09-13 2008-03-13 International Business Machines Corporation Buffer allocation method for multi-class traffic with dynamic spare buffering
US7937532B2 (en) 2007-03-30 2011-05-03 Intel Corporation Method and apparatus for speculative prefetching in a multi-processor/multi-core message-passing machine
US8161209B2 (en) * 2008-03-31 2012-04-17 Advanced Micro Devices, Inc. Peer-to-peer special purpose processor architecture and method
US8949569B2 (en) * 2008-04-30 2015-02-03 International Business Machines Corporation Enhanced direct memory access
CN101631092A (zh) * 2008-07-18 2010-01-20 株式会社日立制作所 数据分发系统及方法
US8423710B1 (en) * 2009-03-23 2013-04-16 Marvell International Ltd. Sequential writes to flash memory
US20110103391A1 (en) * 2009-10-30 2011-05-05 Smooth-Stone, Inc. C/O Barry Evans System and method for high-performance, low-power data center interconnect fabric
JP2011186894A (ja) * 2010-03-10 2011-09-22 Ricoh Co Ltd データ転送装置、画像処理装置、データ転送方法、データ転送プログラム及び記録媒体
US20110246686A1 (en) * 2010-04-01 2011-10-06 Cavanagh Jr Edward T Apparatus and system having pci root port and direct memory access device functionality
CN103262054B (zh) * 2010-12-13 2015-11-25 桑迪士克科技股份有限公司 用于自动提交存储器的装置、系统和方法
US9432298B1 (en) * 2011-12-09 2016-08-30 P4tents1, LLC System, method, and computer program product for improving memory systems
CN102567256B (zh) * 2011-12-16 2015-01-07 龙芯中科技术有限公司 处理器系统及其多通道内存拷贝dma加速器和方法
US9239607B2 (en) * 2011-12-22 2016-01-19 Intel Corporation Storing data using a direct data path architecture to reduce energy consumption and improve performance
KR101605285B1 (ko) * 2012-03-07 2016-03-21 인텔 코포레이션 블레이드 및 랙 서버용 별도의 단일 클록 소스를 사용하는 스케일러블 공통 기준 클록킹 아키텍처
DE112013005093T5 (de) * 2012-10-22 2015-10-22 Intel Corporation Hochleistungszusammenschaltungsbitübertragungsschicht
US9262270B2 (en) * 2012-12-28 2016-02-16 Intel Corporation Live error recovery
US20140198790A1 (en) * 2013-01-17 2014-07-17 International Business Machines Corporation Data link layer analysis with packet trace replay
CN104123252A (zh) * 2013-04-26 2014-10-29 韩国科亚电子股份有限公司 多通道直接存储器存取控制器及其控制方法
CN103281794B (zh) * 2013-06-09 2017-02-01 重庆邮电大学 体域网中紧急数据优先传输调度方法
US9648148B2 (en) * 2013-12-24 2017-05-09 Intel Corporation Method, apparatus, and system for QoS within high performance fabrics
US9734092B2 (en) 2014-03-19 2017-08-15 Facebook, Inc. Secure support for I/O in software cryptoprocessor
US9323701B2 (en) * 2014-07-29 2016-04-26 Netapp, Inc. Technique for synchronizing IOMMU memory de-registration and incoming I/O data
US9639473B1 (en) * 2014-12-09 2017-05-02 Parallel Machines Ltd. Utilizing a cache mechanism by copying a data set from a cache-disabled memory location to a cache-enabled memory location
WO2016183028A2 (en) * 2015-05-10 2016-11-17 Apl Software Inc. Methods and architecture for enhanced computer performance
US9779026B2 (en) * 2016-01-14 2017-10-03 Seagate Technology Llc Cache bypass utilizing a binary tree
US10157066B2 (en) * 2016-03-21 2018-12-18 Cisco Technology, Inc. Method for optimizing performance of computationally intensive applications

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100064080A1 (en) 2008-09-11 2010-03-11 International Business Machines Corporation Managing pci-express max payload size for legacy operating systems
US20140173221A1 (en) 2012-12-14 2014-06-19 Ahmad Samih Cache management
JP2016506151A (ja) 2012-12-21 2016-02-25 エーティーアイ・テクノロジーズ・ユーエルシーAti Technologies Ulc 構成可能な通信制御装置
US20170091108A1 (en) 2015-09-26 2017-03-30 Intel Corporation Method, apparatus, and system for allocating cache using traffic class

Also Published As

Publication number Publication date
CN107436855B (zh) 2022-07-01
TW201741887A (zh) 2017-12-01
US10713202B2 (en) 2020-07-14
JP2017211984A (ja) 2017-11-30
KR102427550B1 (ko) 2022-08-01
CN107436855A (zh) 2017-12-05
TWI772279B (zh) 2022-08-01
KR20170133235A (ko) 2017-12-05
US20170344506A1 (en) 2017-11-30

Similar Documents

Publication Publication Date Title
JP7010598B2 (ja) 再構成可能なマルチポートを具備するPCIeストレージシステムのためのQoSを認識した入出力管理方法、管理システム、及び管理装置
US9557922B2 (en) System and method for peer-to-peer PCIe storage transfers
KR101744465B1 (ko) 데이터를 저장하기 위한 방법 및 장치
US8312187B2 (en) Input/output device including a mechanism for transaction layer packet processing in multiple processor systems
CN103460199B (zh) 基于业务类别的自适应中断调整
US20140068134A1 (en) Data transmission apparatus, system, and method
JP2017512350A (ja) 集中型ネットワーキング及びストレージのための方法及びシステム
US11531636B2 (en) Storage system, method, and apparatus for fast IO on PCIE devices
US8301805B2 (en) Managing I/O request in a storage system
KR20120087980A (ko) 다중 인터페이스 솔리드 스테이트 디스크, 및 다중 인터페이스 솔리드 스테이트 디스크의 처리 방법 및 시스템
CN112543925A (zh) 用于使用专用低延迟链路的多个硬件加速器的统一地址空间
CN109815170B (zh) 数据冗余的处理方法及其相关电脑系统
US7177913B2 (en) Method, system, and program for adding operations identifying data packets to structures based on priority levels of the data packets
US10769092B2 (en) Apparatus and method for reducing latency of input/output transactions in an information handling system using no-response commands
US11954505B2 (en) Distributed data storage system with dormant hardware activation
US20110090924A1 (en) System to connect a serial scsi array controller to a storage area network
US11106361B2 (en) Technologies for lockless, scalable, and adaptive storage quality of service
KR20220082563A (ko) 스토리지 장치 및 이의 동작 방법
US9111039B2 (en) Limiting bandwidth for write transactions across networks of components in computer systems
WO2023115532A1 (zh) 数据处理方法及数据处理装置
US20040111537A1 (en) Method, system, and program for processing operations
CN116074273A (zh) 一种数据传输方法以及装置
CN114968855A (zh) 对持久性存储区域范围的一致访问
CN112131166A (zh) 轻量桥接器电路及其操作方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200114

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210316

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210604

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210615

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210915

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211012

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211217

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220113

R150 Certificate of patent or registration of utility model

Ref document number: 7010598

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150