JP2017191603A5 - - Google Patents
Download PDFInfo
- Publication number
- JP2017191603A5 JP2017191603A5 JP2017076841A JP2017076841A JP2017191603A5 JP 2017191603 A5 JP2017191603 A5 JP 2017191603A5 JP 2017076841 A JP2017076841 A JP 2017076841A JP 2017076841 A JP2017076841 A JP 2017076841A JP 2017191603 A5 JP2017191603 A5 JP 2017191603A5
- Authority
- JP
- Japan
- Prior art keywords
- queue
- command
- path
- thread
- cpus
- 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
- 230000005540 biological transmission Effects 0.000 claims 20
- 230000001702 transmitter Effects 0.000 claims 8
- 230000003213 activating Effects 0.000 claims 4
- 230000000875 corresponding Effects 0.000 claims 4
- 239000003999 initiator Substances 0.000 claims 4
- 238000000034 method Methods 0.000 claims 2
Claims (24)
- 複数のCPUを含むデータストレージシステムのターゲットに格納されたデータにアクセスするためのコマンドを受信する段階と、
前記複数のCPUの中の第1グループのCPU上でコマンドレシーバー経路及びコマンドトランスミッタ経路を各々含む複数の伝送スレッドを作動させる段階と、
前記複数のCPUの中の第2グループのCPU上でコマンド発行経路及びコマンド完了経路を各々含む複数のデータ経路スレッドを作動させる段階と、
伝送スレッドの前記コマンドレシーバー経路を使用してI/Oコマンド発行キューにI/Oコマンドを配置し、データ経路スレッドの前記コマンド発行経路を使用して前記I/Oコマンドを処理する段階と、
前記データ経路スレッドの前記コマンド完了経路を使用してI/O完了キューにI/O完了通知を配置し、前記伝送スレッドの前記コマンドトランスミッタ経路を使用して前記I/O完了通知を処理する段階と、を有し、
前記I/Oコマンド発行キューは、第1キューアレイを含み、
前記第1キューアレイの各々は、前記第1グループのCPUの各々のCPUに対応し、
前記I/O完了キューは、第2キューアレイを含み、
前記第2キューアレイの各々は、前記第2グループのCPUの各々のCPUに対応することを特徴とする方法。 - 前記伝送スレッドは、レシーバー及びトランスミッタを含み、
前記レシーバーは、I/Oコマンドを前記データ経路に伝送することを特徴とする請求項1に記載の方法。 - 前記データ経路スレッドは、前記I/Oコマンドを前記ターゲットに伝送し、前記ターゲットから状態及びデータの中の少なくとも1つを受信し、前記伝送スレッドの前記トランスミッタに前記状態及びデータの中の少なくとも1つを伝送することを特徴とする請求項2に記載の方法。
- 前記第1キューアレイは、前記データ経路スレッドに割り当られた前記第2グループのCPUの数に対応する第1の数のノードを含むことを特徴とする請求項1に記載の方法。
- 前記第1の数のノードは、ヘッダーノード、テールノード、及び前記第1キューアレイのキューを示す現在ノードを含み、
前記現在ノードから前記テールノードまでのノードは、消費者によって所有され、
前記第1キューアレイの残りのノードは、生産者によって所有されることを特徴とする請求項4に記載の方法。 - 前記生産者は、イニシエーターであり、
前記消費者は、前記ターゲットであることを特徴とする請求項5に記載の方法。 - 前記消費者は、前記データ経路スレッドの各々に固有のスレッド識別子を利用して前記キューへの排他的なアクセスを獲得することを特徴とする請求項6に記載の方法。
- 前記第2キューアレイは、前記伝送スレッドに割り当られた前記第1グループのCPUの数に対応する第2の数のノードを含むことを特徴とする請求項1に記載の方法。
- 前記第2の数のノードは、ヘッダーノード、テールノード、及び前記第2キューアレイのキューを示す現在ノードを含み、
前記現在ノードから前記テールノードまでのノードは、消費者によって所有され、
前記第1キューアレイの残りのノードは、生産者によって所有されることを特徴とする請求項8に記載の方法。 - 前記生産者は、前記ターゲットであり、
前記消費者は、イニシエーターであることを特徴とする請求項9に記載の方法。 - 前記消費者は、前記伝送スレッドの各々に固有のスレッド識別子を利用して前記キューへの排他的なアクセスを獲得することを特徴とする請求項10に記載の方法。
- 前記I/Oコマンド発行キュー及び前記I/O完了キューの各々は、MPMC(multi−producer multi−consumer)ロックレス・キューであり、
1つ以上の伝送スレッドからの作業要請は、特定のデータ経路スレッドに到達し、
特定の伝送スレッドからの作業要請は、1つ以上のデータ経路スレッドに到達し、
1つ以上のデータ経路スレッドからの作業要請は、特定の伝送スレッドに到達し、
特定のデータ経路スレッドからの作業要請は、1つ以上の伝送スレッドに到達することを特徴とする請求項1に記載の方法。 - 複数のCPUと、
複数のターゲットと、
I/Oフロー、I/Oコマンド発行キュー、及びI/O完了キューを処理するソフトウェアモジュールセットを格納するメモリと、を備え、
前記ソフトウェアモジュールセットは、
複数のCPUを含むデータストレージシステムのターゲットに格納されたデータにアクセスするI/Oコマンドを受信し、
前記複数のCPUの第1グループのCPUの中の第1CPU上でコマンドレシーバー経路及びコマンドトランスミッタ経路を各々含む複数の伝送スレッドを作動させ、
前記複数のCPUの第2グループのCPUの中の第2CPU上でコマンド発行経路及びコマンド完了経路を各々含む複数のデータ経路スレッドを作動させ、
前記伝送スレッドの前記コマンドレシーバー経路は、I/Oコマンドを前記I/Oコマンド発行キューに配置し、
前記データ経路スレッドの前記コマンド発行経路は、前記I/Oコマンドを処理し、
前記データ経路スレッドの前記コマンド完了経路は、I/O完了通知を前記I/O完了キューに配置し、
前記伝送スレッドの前記コマンドトランスミッタ経路は、前記I/O完了通知を処理し、
前記I/Oコマンド発行キューは、第1キューアレイを含み、
前記第1キューアレイの各々は、前記第1グループのCPUの各々のCPUに対応し、
前記I/O完了キューは、第2キューアレイを含み、
前記第2キューアレイの各々は、前記第2グループのCPUの各々のCPUに対応することを特徴とするデータストレージシステム。 - 前記伝送スレッドは、レシーバー及びトランスミッタを含み、
前記レシーバーは、I/Oコマンドを前記データ経路に伝送することを特徴とする請求項13に記載のデータストレージシステム。 - 前記データ経路スレッドは、前記I/Oコマンドを前記ターゲットに伝送し、前記ターゲットから状態及びデータの中の少なくとも1つを受信し、前記伝送スレッドの前記トランスミッタに前記状態及びデータの中の少なくとも1つを伝送することを特徴とする請求項14に記載のデータストレージシステム。
- 前記第1キューアレイは、前記データ経路スレッドに割り当られた前記第2グループのCPUの数に対応する第1の数のノードを含むことを特徴とする請求項13に記載のデータストレージシステム。
- 前記第1の数のノードは、ヘッダーノード、テールノード、及び前記第1キューアレイのキューを示す現在ノードを含み、
前記現在ノードから前記テールノードまでのノードは、消費者によって所有され、
前記第1キューアレイの残りのノードは、生産者によって所有されることを特徴とする請求項16に記載のデータストレージシステム。 - 前記生産者は、イニシエーターであり、
前記消費者は、前記ターゲットであることを特徴とする請求項17に記載のデータストレージシステム。 - 前記消費者は、前記データ経路スレッドの各々に固有のスレッド識別子を利用して前記キューへの排他的なアクセスを獲得することを特徴とする請求項18に記載のデータストレージシステム。
- 前記第2キューアレイは、前記伝送スレッドに割り当られた前記第1グループのCPUの数に対応する第2の数のノードを含むことを特徴とする請求項13に記載のデータストレージシステム。
- 前記第2の数のノードは、ヘッダーノード、テールノード、及び前記第2キューアレイのキューを示す現在ノードを含み、
前記現在ノードから前記テールノードまでのノードは、消費者によって所有され、
前記第1キューアレイの残りのノードは、生産者によって所有されることを特徴とする請求項20に記載のデータストレージシステム。 - 前記生産者は、前記ターゲットであり、
前記消費者は、イニシエーターであることを特徴とする請求項21に記載のデータストレージシステム。 - 前記消費者は、前記データ経路スレッドの各々に固有のスレッド識別子を利用して前記キューへの排他的なアクセスを獲得することを特徴とする請求項22に記載のデータストレージシステム。
- 前記I/Oコマンド発行キュー及び前記I/O完了キューの各々は、MPMC(multi−producer multi−consumer)ロックレス・キューであり、
1つ以上の伝送スレッドからの作業要請は、特定のデータ経路スレッドに到達し、
特定の伝送スレッドからの作業要請は、1つ以上のデータ経路スレッドに到達し、
1つ以上のデータ経路スレッドからの作業要請は、特定の伝送スレッドに到達し、
特定のデータ経路スレッドからの作業要請は、1つ以上の伝送スレッドに到達することを特徴とする請求項13に記載のデータストレージシステム。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662322035P | 2016-04-13 | 2016-04-13 | |
US62/322,035 | 2016-04-13 | ||
US15/209,566 | 2016-07-13 | ||
US15/209,566 US10146439B2 (en) | 2016-04-13 | 2016-07-13 | System and method for high performance lockless scalable target |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2017191603A JP2017191603A (ja) | 2017-10-19 |
JP2017191603A5 true JP2017191603A5 (ja) | 2020-05-14 |
JP6822887B2 JP6822887B2 (ja) | 2021-01-27 |
Family
ID=60038161
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017076841A Active JP6822887B2 (ja) | 2016-04-13 | 2017-04-07 | 高性能なロックレススケーラブルターゲットを提供するシステム及び方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10146439B2 (ja) |
JP (1) | JP6822887B2 (ja) |
KR (1) | KR20170117310A (ja) |
CN (1) | CN107391270B (ja) |
TW (1) | TWI745353B (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106020937A (zh) * | 2016-07-07 | 2016-10-12 | 腾讯科技(深圳)有限公司 | 一种创建虚拟机的方法、装置及*** |
US10101963B2 (en) * | 2016-08-16 | 2018-10-16 | Hewlett Packard Enterprise Development Lp | Sending and receiving data between processing units |
US10635485B2 (en) * | 2018-03-23 | 2020-04-28 | Intel Corporation | Devices, systems, and methods for lockless distributed object input/output |
US10776289B2 (en) | 2018-09-21 | 2020-09-15 | Microsoft Technology Licensing, Llc | I/O completion polling for low latency storage device |
US10740258B2 (en) * | 2018-10-23 | 2020-08-11 | Microsoft Technology Licensing, Llc | Timer-based I/O completion polling for low latency storage device |
JP6920001B2 (ja) * | 2018-12-04 | 2021-08-18 | 株式会社日立製作所 | マルチノードストレージシステム、及びマルチノードストレージシステムのキュー制御方法 |
US11960933B2 (en) | 2020-04-30 | 2024-04-16 | Red Hat, Inc. | Versioned progressive chunked queue for a scalable multi-producer and multi-consumer queue |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5421014A (en) * | 1990-07-13 | 1995-05-30 | I-Tech Corporation | Method for controlling multi-thread operations issued by an initiator-type device to one or more target-type peripheral devices |
US6240335B1 (en) * | 1998-12-14 | 2001-05-29 | Palo Alto Technologies, Inc. | Distributed control system architecture and method for a material transport system |
US7353305B2 (en) | 2002-06-28 | 2008-04-01 | Brocade Communications Systems, Inc. | Apparatus and method for data virtualization in a storage processing device |
US20040049603A1 (en) * | 2002-09-05 | 2004-03-11 | International Business Machines Corporation | iSCSI driver to adapter interface protocol |
TWI316044B (en) * | 2004-02-28 | 2009-10-21 | Applied Materials Inc | Methods and apparatus for material control system interface |
US7941645B1 (en) * | 2004-07-28 | 2011-05-10 | Nvidia Corporation | Isochronous pipelined processor with deterministic control |
US7529886B2 (en) * | 2004-11-03 | 2009-05-05 | International Business Machines Corporation | Method, system and storage medium for lockless InfiniBand™ poll for I/O completion |
US8149854B2 (en) * | 2005-06-30 | 2012-04-03 | Intel Corporation | Multi-threaded transmit transport engine for storage devices |
US7616563B1 (en) | 2005-08-31 | 2009-11-10 | Chelsio Communications, Inc. | Method to implement an L4-L7 switch using split connections and an offloading NIC |
US20070156974A1 (en) | 2006-01-03 | 2007-07-05 | Haynes John E Jr | Managing internet small computer systems interface communications |
US7797514B2 (en) * | 2006-11-16 | 2010-09-14 | Texas Instruments Incorporated | Scalable multi-threaded sequencing/synchronizing processor architecture |
US7953878B1 (en) | 2007-10-09 | 2011-05-31 | Netapp, Inc. | Multi-threaded internet small computer system interface (iSCSI) socket layer |
US7720064B1 (en) | 2007-12-21 | 2010-05-18 | Qlogic, Corporation | Method and system for processing network and storage data |
US8566833B1 (en) | 2008-03-11 | 2013-10-22 | Netapp, Inc. | Combined network and application processing in a multiprocessing environment |
US8196147B1 (en) * | 2008-10-31 | 2012-06-05 | Netapp, Inc. | Multiple-processor core optimization for producer-consumer communication |
US8180973B1 (en) | 2009-12-23 | 2012-05-15 | Emc Corporation | Servicing interrupts and scheduling code thread execution in a multi-CPU network file server |
JP5592493B2 (ja) | 2010-04-13 | 2014-09-17 | 株式会社日立製作所 | ストレージネットワークシステム及びその制御方法 |
WO2012026877A1 (en) * | 2010-08-23 | 2012-03-01 | Empire Technology Development Llc | Context switching |
US8938598B2 (en) * | 2011-07-06 | 2015-01-20 | Nvidia Corporation | Facilitating simultaneous submission to a multi-producer queue by multiple threads with inner and outer pointers |
EP2909722A1 (en) * | 2012-10-19 | 2015-08-26 | Argyle Data, Inc. | Multi-threaded, lockless data parallelization |
US9298652B2 (en) * | 2013-03-15 | 2016-03-29 | Microsoft Technology Licensing, Llc | Moderated completion signaling |
US9792162B2 (en) * | 2013-11-13 | 2017-10-17 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Network system, network node and communication method |
US10133489B2 (en) * | 2014-09-16 | 2018-11-20 | Oracle International Corporation | System and method for supporting a low contention queue in a distributed data grid |
US20160321010A1 (en) * | 2015-04-28 | 2016-11-03 | Kabushiki Kaisha Toshiba | Storage system having a host directly manage physical data locations of storage device |
KR102403489B1 (ko) * | 2015-07-10 | 2022-05-27 | 삼성전자주식회사 | 비휘발성 메모리 익스프레스 컨트롤러에 의한 입출력 큐 관리 방법 |
KR20170032502A (ko) * | 2015-09-14 | 2017-03-23 | 삼성전자주식회사 | 스토리지 장치 및 그것의 인터럽트 발생 방법 |
US10031786B2 (en) * | 2016-01-13 | 2018-07-24 | International Business Machines Corporation | Lockless multithreaded completion queue access |
US10101939B2 (en) * | 2016-03-09 | 2018-10-16 | Toshiba Memory Corporation | Storage system having a host that manages physical data locations of a storage device |
US10222995B2 (en) * | 2016-04-13 | 2019-03-05 | Samsung Electronics Co., Ltd. | System and method for providing a zero contention parallel data stack |
-
2016
- 2016-07-13 US US15/209,566 patent/US10146439B2/en active Active
-
2017
- 2017-02-27 KR KR1020170025700A patent/KR20170117310A/ko not_active Application Discontinuation
- 2017-03-02 TW TW106106752A patent/TWI745353B/zh active
- 2017-04-07 JP JP2017076841A patent/JP6822887B2/ja active Active
- 2017-04-12 CN CN201710236677.9A patent/CN107391270B/zh active Active
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2017191603A5 (ja) | ||
US20230185743A1 (en) | Non-volatile storage system and data storage access protocol for non-volatile storage devices | |
US9396154B2 (en) | Multi-core processor for managing data packets in communication network | |
US20160335119A1 (en) | Batch-based neural network system | |
RU2016116440A (ru) | Система, способ и устройство передачи данных | |
EP3534579B1 (en) | Packet transmission method, device and computer-readable medium | |
US20200117990A1 (en) | High performance computing system for deep learning | |
JP2015038738A5 (ja) | ||
WO2021259131A1 (zh) | 区块链网络的压力测试方法及装置、*** | |
JP2018518773A5 (ja) | ||
JP2021507386A (ja) | ニューラルネットワーク処理のための共用メモリの集中型−分散型混合構成 | |
RU2017133752A (ru) | Конфигурирование соединенной с сетью осветительной системы | |
US11874780B2 (en) | Packet processing system, method and device utilizing a port client chain | |
CN109388336A (zh) | 从主机客户端向网络存储装置传送数据的网络存储装置和方法 | |
US12039200B2 (en) | Load balancing between storage devices | |
JP6331944B2 (ja) | 情報処理装置、メモリ制御装置及び情報処理装置の制御方法 | |
EP3822776A1 (en) | System and method for transaction broadcast in a network-on-chip | |
US20110270942A1 (en) | Combining multiple hardware networks to achieve low-latency high-bandwidth point-to-point communication | |
TW201943245A (zh) | 資料傳輸方法與使用此方法的主機系統 | |
US20090282175A1 (en) | System and Method for Enabling Multiple Processors to Share Multiple SAS Wide Ports | |
US20130132692A1 (en) | Storage devices and storage systems | |
JP6378158B2 (ja) | 集線装置及び方法 | |
WO2016029693A1 (zh) | 一种负载均衡的方法、装置与存储介质 | |
KR20200059494A (ko) | 메모리 시스템 | |
US20240004735A1 (en) | Non-blocking ring exchange algorithm |