JP2017191603A5 - - Google Patents

Download PDF

Info

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
Application number
JP2017076841A
Other languages
English (en)
Other versions
JP2017191603A (ja
JP6822887B2 (ja
Filing date
Publication date
Priority claimed from US15/209,566 external-priority patent/US10146439B2/en
Application filed filed Critical
Publication of JP2017191603A publication Critical patent/JP2017191603A/ja
Publication of JP2017191603A5 publication Critical patent/JP2017191603A5/ja
Application granted granted Critical
Publication of JP6822887B2 publication Critical patent/JP6822887B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Claims (24)

  1. 数の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に対応することを特徴とする方法。
  2. 前記伝送スレッドは、レシーバー及びトランスミッタを含み、
    前記レシーバーは、I/Oコマンドを前記データ経路に伝送することを特徴とする請求項1に記載の方法。
  3. 前記データ経路スレッドは、前記I/Oコマンドを前記ターゲットに伝送し、前記ターゲットから状態及びデータの中の少なくとも1つを受信し、前記伝送スレッドの前記トランスミッタに前記状態及びデータの中の少なくとも1つを伝送することを特徴とする請求項2に記載の方法。
  4. 前記第1キューアレイは、前記データ経路スレッドに割り当られた前記第2グループのCPUの数に対応する第1の数のノードを含むことを特徴とする請求項1に記載の方法。
  5. 前記第1の数のノードは、ヘッダーノード、テールノード、及び前記第1キューアレイのキューを示す現在ノードを含み、
    前記現在ノードから前記テールノードまでのノードは、消費者によって所有され、
    前記第1キューアレイの残りのノードは、生産者によって所有されることを特徴とする請求項4に記載の方法。
  6. 前記生産者は、イニシエーターであり、
    前記消費者は、前記ターゲットであることを特徴とする請求項5に記載の方法。
  7. 前記消費者は、前記データ経路スレッドの各々に固有のスレッド識別子を利用して前記キューへの排他的なアクセスを獲得することを特徴とする請求項6に記載の方法。
  8. 前記第2キューアレイは、前記伝送スレッドに割り当られた前記第1グループのCPUの数に対応する第2の数のノードを含むことを特徴とする請求項1に記載の方法。
  9. 前記第2の数のノードは、ヘッダーノード、テールノード、及び前記第2キューアレイのキューを示す現在ノードを含み、
    前記現在ノードから前記テールノードまでのノードは、消費者によって所有され、
    前記第キューアレイの残りのノードは、生産者によって所有されることを特徴とする請求項8に記載の方法。
  10. 前記生産者は、前記ターゲットであり、
    前記消費者は、イニシエーターであることを特徴とする請求項9に記載の方法。
  11. 前記消費者は、前記伝送スレッドの各々に固有のスレッド識別子を利用して前記キューへの排他的なアクセスを獲得することを特徴とする請求項10に記載の方法。
  12. 前記I/Oコマンド発行キュー及び前記I/O完了キューの各々は、MPMC(multi−producer multi−consumer)ロックレス・キューであり、
    1つ以上の伝送スレッドからの作業要請は、特定のデータ経路スレッドに到達し、
    特定の伝送スレッドからの作業要請は、1つ以上のデータ経路スレッドに到達し、
    1つ以上のデータ経路スレッドからの作業要請は、特定の伝送スレッドに到達し、
    特定のデータ経路スレッドからの作業要請は、1つ以上の伝送スレッドに到達することを特徴とする請求項1に記載の方法。
  13. 複数の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に対応することを特徴とするデータストレージシステム。
  14. 前記伝送スレッドは、レシーバー及びトランスミッタを含み、
    前記レシーバーは、I/Oコマンドを前記データ経路に伝送することを特徴とする請求項13に記載のデータストレージシステム。
  15. 前記データ経路スレッドは、前記I/Oコマンドを前記ターゲットに伝送し、前記ターゲットから状態及びデータの中の少なくとも1つを受信し、前記伝送スレッドの前記トランスミッタに前記状態及びデータの中の少なくとも1つを伝送することを特徴とする請求項14に記載のデータストレージシステム。
  16. 前記第1キューアレイは、前記データ経路スレッドに割り当られた前記第2グループのCPUの数に対応する第1の数のノードを含むことを特徴とする請求項13に記載のデータストレージシステム。
  17. 前記第1の数のノードは、ヘッダーノード、テールノード、及び前記第1キューアレイのキューを示す現在ノードを含み、
    前記現在ノードから前記テールノードまでのノードは、消費者によって所有され、
    前記第1キューアレイの残りのノードは、生産者によって所有されることを特徴とする請求項16に記載のデータストレージシステム。
  18. 前記生産者は、イニシエーターであり、
    前記消費者は、前記ターゲットであることを特徴とする請求項17に記載のデータストレージシステム。
  19. 前記消費者は、前記データ経路スレッドの各々に固有のスレッド識別子を利用して前記キューへの排他的なアクセスを獲得することを特徴とする請求項18に記載のデータストレージシステム。
  20. 前記第2キューアレイは、前記伝送スレッドに割り当られた前記第1グループのCPUの数に対応する第2の数のノードを含むことを特徴とする請求項13に記載のデータストレージシステム。
  21. 前記第2の数のノードは、ヘッダーノード、テールノード、及び前記第2キューアレイのキューを示す現在ノードを含み、
    前記現在ノードから前記テールノードまでのノードは、消費者によって所有され、
    前記第1キューアレイの残りのノードは、生産者によって所有されることを特徴とする請求項20に記載のデータストレージシステム。
  22. 前記生産者は、前記ターゲットであり、
    前記消費者は、イニシエーターであることを特徴とする請求項21に記載のデータストレージシステム。
  23. 前記消費者は、前記データ経路スレッドの各々に固有のスレッド識別子を利用して前記キューへの排他的なアクセスを獲得することを特徴とする請求項22に記載のデータストレージシステム。
  24. 前記I/Oコマンド発行キュー及び前記I/O完了キューの各々は、MPMC(multi−producer multi−consumer)ロックレス・キューであり、
    1つ以上の伝送スレッドからの作業要請は、特定のデータ経路スレッドに到達し、
    特定の伝送スレッドからの作業要請は、1つ以上のデータ経路スレッドに到達し、
    1つ以上のデータ経路スレッドからの作業要請は、特定の伝送スレッドに到達し、
    特定のデータ経路スレッドからの作業要請は、1つ以上の伝送スレッドに到達することを特徴とする請求項13に記載のデータストレージシステム。
JP2017076841A 2016-04-13 2017-04-07 高性能なロックレススケーラブルターゲットを提供するシステム及び方法 Active JP6822887B2 (ja)

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 US10146439B2 (en) 2016-04-13 2016-07-13 System and method for high performance lockless scalable target
US15/209,566 2016-07-13

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 株式会社日立製作所 ストレージネットワークシステム及びその制御方法
KR101480856B1 (ko) * 2010-08-23 2015-01-09 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 컨텍스트 스위칭
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
CA2888684C (en) * 2012-10-19 2017-03-07 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

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
JP2019526106A5 (ja)
US10180906B2 (en) HBM with in-memory cache manager
RU2016116440A (ru) Система, способ и устройство передачи данных
US20180284993A1 (en) Performing data operations in a storage area network
EP3534579B1 (en) Packet transmission method, device and computer-readable medium
US20200117990A1 (en) High performance computing system for deep learning
JP2015038738A5 (ja)
WO2021259131A1 (zh) 区块链网络的压力测试方法及装置、系统
US20170048320A1 (en) Distributed gather/scatter operations across a network of memory nodes
JP2021507386A (ja) ニューラルネットワーク処理のための共用メモリの集中型−分散型混合構成
US11874780B2 (en) Packet processing system, method and device utilizing a port client chain
JP2020529678A (ja) ファブリックを介したnvmエクスプレス
JP2016076108A (ja) 情報処理装置、メモリ制御装置及び情報処理装置の制御方法
JP6475852B2 (ja) サービスデータを処理するための方法、装置、および、システム
US20110270942A1 (en) Combining multiple hardware networks to achieve low-latency high-bandwidth point-to-point communication
JP5783008B2 (ja) ストレージ装置、ストレージシステム、データ更新方法およびデータ管理プログラム
JP6378158B2 (ja) 集線装置及び方法
WO2016029693A1 (zh) 一种负载均衡的方法、装置与存储介质
KR20200059494A (ko) 메모리 시스템
US20240004735A1 (en) Non-blocking ring exchange algorithm
US20230084132A1 (en) A Network Computer with External Memory