JP2021144702A - 構成可能なコマンド応答トリガーを有するストレージ装置及びそのトリガー方法 - Google Patents

構成可能なコマンド応答トリガーを有するストレージ装置及びそのトリガー方法 Download PDF

Info

Publication number
JP2021144702A
JP2021144702A JP2021013592A JP2021013592A JP2021144702A JP 2021144702 A JP2021144702 A JP 2021144702A JP 2021013592 A JP2021013592 A JP 2021013592A JP 2021013592 A JP2021013592 A JP 2021013592A JP 2021144702 A JP2021144702 A JP 2021144702A
Authority
JP
Japan
Prior art keywords
response
counter
storage
circuit
storage device
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
JP2021013592A
Other languages
English (en)
Other versions
JP2021144702A5 (ja
JP7453167B2 (ja
Inventor
チェイス パスカル,
Pasquale Chase
チェイス パスカル,
リチャード エヌ. デグリン,
N Deglin Richard
リチャード エヌ. デグリン,
ビシャル ジャイン,
Jain Vishal
ビシャル ジャイン,
ジャガンナート ビシュヌテジャ デサイ,
Vishnuteja Desai Jagannath
ジャガンナート ビシュヌテジャ デサイ,
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 JP2021144702A publication Critical patent/JP2021144702A/ja
Publication of JP2021144702A5 publication Critical patent/JP2021144702A5/ja
Application granted granted Critical
Publication of JP7453167B2 publication Critical patent/JP7453167B2/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】レイテンシを減少し、スループットを改善するストレージ装置を提供する。【解決手段】ストレージ装置は、ホスト装置からストレージインターフェース110を介してホストデータに対応する1つ以上の通知を受信するストレージコントローラ、ストレージメモリ及びストレージコントローラと連結しホスト装置に応答する応答回路を備える。応答回路は、ホストデータの全体に対応する通知の中から1つ以上の通知を追跡する第1のカウンターと、1つ以上の通知に対応してストレージコントローラが送信する1つ以上の確認応答の各々が1つ以上の通知の中から何れか1つの通知に対応するように1つ以上の確認応答を追跡する第2のカウンターと、第1の及び第2のカウンターの中から何れか1つを選択してホスト装置に応答する応答トリガー回路と、を含み、第1のカウンター及び第2のカウンターの中から選択された1つの状態に応じてホスト装置に応答する。【選択図】図1

Description

本発明は、ストレージ装置に関し、より詳しくは、構成可能なコマンド応答トリガーを有するストレージ装置及びそのトリガー方法に関する。
ストレージシステムは、一般的にホスト装置及び1つ以上のストレージ装置を含む。ホスト装置は、コマンドをストレージ装置に伝送することによりストレージ装置にデータを格納する。例えば、ホスト装置は、ライト(WRITE)コマンドをストレージ装置に伝送して、ライトコマンドに対応するホストデータをストレージ装置に格納する。この場合、ライトコマンドは、いくつかの段階、例えばコマンド発行(issue)段階、データ伝送段階、及び応答段階を含む。コマンド発行段階の間に、ホスト装置はライトコマンドをストレージ装置に発行し、データ伝送段階の間に、ホスト装置はストレージ装置にホストデータを伝送する。ホストデータの全てがストレージ装置によってライトされると、ストレージ装置は応答段階の間にライトコマンドが正常に完了したことを示す応答をホスト装置に伝送する。
この背景技術のセクションで記載した上記の情報は、本発明の背景技術の理解を助けるためのものであり、従って先行技術を構成していない情報を含み得る。
米国特許出願公開第2009/0094401号明細書 米国特許出願公開第2014/0365707号明細書 米国特許出願公開第2015/0248334号明細書 米国特許出願公開第2017/0212711号明細書 米国特許出願公開第2018/0012627号明細書 米国特許出願公開第2019/0018597号明細書 米国特許出願公開第2019/0171392号明細書
本発明は、上記従来技術に鑑みてなされたものであって、本発明の目的は、構成可能なコマンド応答トリガーを有するストレージ装置及びそのトリガー方法を提供することにある。
本発明の実施形態は、構成可能なコマンド応答トリガーを有するハードウェアモジュール(例えば、応答回路)を含むストレージ装置に関するものである。ファームウェア又はソフトウェア(例えば、プロセッサの実行命令語)を利用して状態情報を保持し、応答の伝送を開始する代わりに、ハードウェアモジュールは、ホストデータがストレージ装置に伝送される際に、ホストデータの多様な状態情報を追跡して、ホストデータの状態情報に基づいてホスト装置に適切な応答を自動的に伝送する。従って、レイテンシが減少し、そして/又はストレージ装置のスループットが改善される。
上記目的を達成するためになされた本発明の一態様よるストレージ装置は、ホスト装置からストレージインターフェースを介して前記ストレージ装置に伝送されるホストデータに対応する1つ以上の通知を受信するように構成されたストレージコントローラと、ストレージメモリと、前記ストレージコントローラに連結されて前記ホスト装置に応答をトリガー(trigger)するように構成された応答回路と、を備え、前記応答回路は、前記ホストデータの全体に対応する1つ以上の通知の各々が前記ホストデータ全体の中から前記ホストデータの一部に対応するように、前記1つ以上の通知を追跡するように構成された第1のカウンターと、前記1つ以上の通知に対応して前記ストレージコントローラから受信される1つ以上の確認応答の各々が前記1つ以上の通知の中からいずれか1つの通知に対応するように、前記1つ以上の確認応答を追跡するように構成された第2のカウンターと、前記第1のカウンター及び前記第2のカウンターの中からいずれか1つを選択して前記応答をトリガーするように構成された応答トリガー回路と、を含み、前記応答回路は、前記第1のカウンター及び前記第2のカウンターの中から選択された1つの状態に応じて前記ホスト装置に前記応答を伝送するように構成される。
前記選択された1つの状態は、前記第1のカウンター及び前記第2のカウンターの中から選択された1つのカウント値に対応し得る。
前記カウント値は、前記ホストデータに関連付けられたコマンド伝送の長さに基づいて初期化され得る。
前記第1のカウンターは、前記第1のカウンター及び前記第2のカウンターの中から選択される1つであり、前記第1のカウンターのカウント値は、前記ストレージコントローラに伝送される1つ以上の通知の中から各通知に対して減少され得る。
前記応答トリガー回路は、コンパレータを含み、前記コンパレータは、前記カウント値を閾値と比較するように構成され得る。
前記応答回路は、前記カウント値が閾値と等しくなることに応答して、前記ホストデータが受信されて通知されたことを判定するように構成され得る。
前記第2のカウンターは、前記第1のカウンター及び前記第2のカウンターの中から選択される1つであり、前記第2のカウンターのカウント値は、前記ストレージコントローラから受信される1つ以上の確認応答(ACK)の中から各確認応答に対して減少され得る。
前記ストレージコントローラは、対応する通知が処理されることに応答して、前記1つ以上の確認応答の中からいずれか1つの確認応答を伝送するように構成され得る。
前記応答トリガー回路は、前記カウント値を閾値と比較するように構成されたコンパレータを含み、前記応答回路は、前記カウント値が前記閾値と等しくなることに応答して、前記ホストデータが前記ストレージ装置によって処理されたことを判定するように構成され得る。
前記ストレージコントローラは、前記通知上の少なくとも一部に基づいて、前記ホストデータをストレージメモリに永続的に格納するように構成され得る。
上記目的を達成するためになされた本発明の一態様によるホスト装置によってストレージ装置に発行されたコマンドに対する応答をトリガーする方法は、前記ストレージコントローラによって、前記コマンドに対応して前記ホスト装置からストレージインターフェースを介して前記ストレージ装置に伝送されるホストデータに対応する1つ以上の通知を受信する段階と、前記ストレージコントローラに連結された応答回路によって、前記ホスト装置に前記応答をトリガーする段階と、を有し、前記応答をトリガーする段階は、前記応答回路の第1のカウンターによって、前記ホストデータの全体に対応する1つ以上の通知の各々が前記ホストデータの全体の中から前記ホストデータの一部に対応するように、前記1つ以上の通知を追跡する段階と、前記応答回路によって、前記1つ以上の通知に対応する1つ以上の確認応答の各々が前記1つ以上の通知の中からいずれか1つの通知に対応するように、前記1つ以上の確認応答を前記ストレージコントローラから受信する段階と、前記応答回路の第2のカウンターによって、前記1つ以上の確認応答を追跡する段階と、前記応答回路の応答トリガー回路によって、前記第1のカウンター及び前記第2のカウンターの中からいずれか1つを選択して前記応答をトリガーする段階と、を含み、前記方法は、前記応答回路によって、前記第1のカウンター及び前記第2のカウンターの中から選択された1つの状態に応じて前記ホスト装置に前記応答を伝送する段階を更に含む。
前記選択された1つの状態は、前記第1のカウンター及び前記第2のカウンターの中から選択された1つのカウント値に対応し得る。
前記応答回路によって、前記ホストデータに関連付けられたコマンド伝送の長さに基づいて前記カウント値を初期化する段階を更に含み得る。
前記第1のカウンターは、前記第1のカウンター及び前記第2のカウンターの中から選択される1つであり、前記方法は、前記応答回路によって、前記ストレージコントローラに伝送される1つ以上の通知の中から各通知に対して前記第1のカウンターのカウント値を減少させる段階を更に含み得る。
前記応答トリガー回路は、コンパレータを含み、前記方法は、前記コンパレータによって、前記カウント値を閾値と比較する段階を更に含み得る。
前記応答回路によって、前記カウント値が前記閾値と等しくなることに応答して、前記ホストデータが受信されて通知されたことを判定する段階を更に含み得る。
前記第2のカウンターは、前記第1のカウンター及び前記第2のカウンターの中から選択される1つであり、前記方法は、前記応答回路によって、前記ストレージコントローラから受信される1つ以上の確認応答の中から各確認応答に対して前記第2のカウンターのカウント値を減少させる段階を更に含み得る。
前記ストレージコントローラによって、前記1つ以上の通知の中から対応する通知を処理する段階と、前記ストレージコントローラによって、前記対応する通知が処理されることに応答して、前記1つ以上の確認応答の中からいずれか1つの確認応答を伝送する段階と、を更に含み得る。
前記応答トリガー回路は、コンパレータを含み、前記方法は、前記コンパレータによって、前記カウント値を閾値と比較する段階と、前記応答回路によって、前記カウント値が前記閾値と等しくなることに応答して、前記ホストデータが前記ストレージ装置によって処理されたことを判定する段階と、を更に含み得る。
前記ストレージコントローラによって、前記通知上の少なくとも一部に基づいて、前記ホストデータを前記ストレージメモリに永続的に格納する段階を更に含み得る。
本発明によると、ストレージ装置は、ファームウェア又はソフトウェア(例えば、ストレージコントローラのようなプロセッサの実行命令)を使用して、ホストデータの状態情報を保持及び処理する代わりに、ホスト装置からストレージ装置に伝送されるホストデータの1つ以上の状態を追跡するハードウェアモジュール(例えば、応答回路)を含む。これにより、レイテンシが減少し、そして/又はストレージ装置のスループットが改善される。
本発明の上述した他の態様及び特徴は、図面と共に次の実施形態の詳細な説明から、この分野に熟練した者に、より明確になるだろう。
本発明の一実施形態によるストレージシステムのシステムダイアグラムである。 本発明の一実施形態による応答回路のブロック図である。 本発明の一実施形態による応答回路の構成可能なコマンド応答トリガーを示す概念的な回路図である。 本発明の一実施形態によるライトコマンドに対する応答を生成する方法のフローチャートである。
以下、本発明を実施するための形態の具体例を、図面を参照しながら詳細に説明する。類似の参照符号は類似の要素(element)を参照する。しかし、本発明は、異なる多様な形態で実施されることがあり、ここで記述した実施形態のみに限定されるものとみなされてはならない。代わりに、このような実施形態は、例として提供され、本発明をより徹底且つ完全にするものであり、本発明の態様及び特徴をこの分野に熟練した者により完全に伝えるものである。従って、この分野に熟練した者に本発明の態様及び特徴の完全な理解のために必要としない手順、要素及び技術は、説明しない場合があり得る。明らかに別のものを示していると言及していない限り、図面及び記述した説明において、類似の参照符号は類似の要素を示し、従ってそれらの説明は繰り返されないことがある。
一般的に、コマンド発行フェーズ、データ伝送フェーズ、及び応答フェーズは、ストレージインターフェース(例えば、インターフェースバス)に基づいて順番に完了されるため、プロセッサ(例えば、ストレージコントローラ、汎用プロセッサなど)は、そこで実行されるコマンドを使用してデータ伝送フェーズ中にホストデータの状態情報を保持して、いつホストデータの全てが受信され且つ格納されたかを判定する。プロセッサがホストデータの全てが受信されて格納されたと判定すると、プロセッサは、コマンドが正常に実行されたことを示す応答をホスト装置に伝送し始める。しかし、この場合、プロセッサによって状態情報を保持して応答を開始することは、ストレージ装置のレイテンシを引き起こす可能性があり、そして/又はスループット(例えば、全体的なスループット)を減らすことがある。
本発明によると、ストレージ装置は、ファームウェア又はソフトウェア(例えば、ストレージコントローラのようなプロセッサの実行命令)の代わりに、ホストデータがストレージ装置に伝送される際にホストデータの状態情報を追跡するハードウェアモジュール(例えば、応答回路)を含む。いくつかの実施形態において、ハードウェアモジュールは、ストレージ装置に伝送されるホストデータの異なる多様な状態に応じて、ホストに適切な応答を提供する構成可能なコマンド応答トリガー及びコマンド応答トリガーの構成を含む。これにより、レイテンシ(例えば、処理時間)が減少し、そして/又はストレージ装置のスループットが向上する。
いくつかの実施形態において、コマンド応答トリガーは、ストレージ装置104及び/又はホストデータの多様な特性、例えば実装、応用、データタイプ、データ損失の受容可能性、運用状態(operational health)、ユーザーの要求(例えば、SLA(Service Level Agreement))、及び/又はこれと類似のものに応じて動的に構成される。従って、いくつかの実施形態において、ハードウェアモジュールのコマンド応答トリガーは、ストレージ装置及び/又はホストデータの多様な特性を考慮し、ストレージ装置の要求又は適切な性能と要求又は適切な信頼性との間のバランスに応じて、開始時、ランタイム時、又はコマンド毎に動的に構成される。本発明のこのような及び他の態様や特徴は、図面を参照して、以下でより詳細に説明される。
図1は、本発明の一実施形態によるストレージシステムのシステムダイアグラムである。
簡潔な概要として、本実施形態によるストレージシステム100は、ホスト装置102及びストレージ装置104を含む。ホスト装置102は、ストレージ装置104がコマンドに関連付けられているホストデータを格納するように、コマンドをストレージ装置104に発行する。例えば、ホスト装置102は、ストレージ装置104と通信可能に連結され(例えば、ストレージインターフェース110を介して)、ライト(WRITE)コマンドに対応するホストデータがストレージ装置104に伝送されて格納(例えば、記入)されるように、ライトコマンドをストレージ装置104に伝送する。ホストデータの全てが正常に受信されるか及び/又は格納されると、ストレージ装置104は、コマンドが正常に実行されたことを示す適切な応答をホスト装置102に伝送する。
本実施形態において、ストレージ装置104は、ホストデータの状態情報を処理するファームウェア又はソフトウェア(例えば、ストレージコントローラ114のようなプロセッサの実行命令)を利用する代わりに、ホストデータがストレージ装置104に伝送される際にホストデータの状態情報を追跡するハードウェアモジュール(例えば、応答回路112)を含む。例えば、ホスト装置102に応答の伝送をいつ開始するかを判定するために、ファームウェア又はソフトウェアがホストのデータ伝送に対応する状態情報を保持して処理するのを待つ代わりに、ハードウェアモジュール(例えば、応答回路112)は、伝送されるホストデータの状態情報に基づいて、ホスト装置102に適切な応答を自動的に伝送する。従って、レイテンシ(例えば、処理時間)が減少し、そして/又はストレージ装置104のスループットが改善される。
本実施形態において、ハードウェアモジュール(例えば、応答回路112)は、ストレージ装置104に伝送されるホストデータの異なる多様な状態に応じて、ホスト装置102に適切な応答を提供する構成可能なコマンド応答トリガー及びコマンド応答トリガーの構成を含む。例えば、早い応答(例えば、ホストデータの全てが受信されたがホストデータが永続性メモリ(persistent memory)に実際に格納される前の状態のときに)は、性能を増加(例えば、速度を増加)させるが、信頼性を低下(例えば、データ損失のリスクを増加)させる。遅い応答(例えば、ホストデータの全てが永続性メモリに格納された状態のときに)は、データ損失のリスクを減少させが、レイテンシを増加させる。従って、いくつかの実施形態において、コマンド応答トリガーは、ストレージ装置104の性能と信頼性との間のバランスに基づいて構成される。
本実施形態において、コマンド応答トリガーは、ストレージ装置104及び/又はホストデータの多様な特性、例えば実装、応用、データタイプ、データの損失の受容性、動作状態(operational health)、ユーザーのニーズ(例えば、SLA(Service Level Agreement))、及び/又はこれと類似のものに応じて動的に構成される。いくつかの実施形態において、フェーズの各々のストレージ装置104の内部タイミングは、ストレージ装置104の実装及び/又はアプリケーション(応用)に依存して異なる。図示した例では、揮発性ライトバック(writeback)キャッシュを実装するストレージ装置104に対して、ハードウェアモジュール(例えば、応答回路112)は、ホストデータが揮発性データキャッシュに配置(例えば、一時的に格納)された後に、ホスト装置102に応答を伝送するように構成される。揮発性ライトバックキャッシュを実装していないストレージ装置104に対して、ハードウェアモジュール(例えば、応答回路112)は、ホスト装置102に応答を伝送する前に、先ずホストデータが不揮発性メモリに格納されるようにする。前者の場合、コマンド応答トリガーは、ハードウェアモジュール(例えば、応答回路112)が後者の場合よりも先にホスト装置102に応答を提供するように構成されるが、後者の場合と比較すると、データ損失のリスクを増加させる。従って、いくつかの実施形態において、ストレージ装置104及び/又はホストデータの多様な特性を考慮し、ストレージ装置104の必要又は適切な性能と必要又は適切な信頼性との間のバランスに応じて、ハードウェアモジュール(例えば、応答回路112)のコマンド応答トリガーは、スタート時、ランタイム時、コマンド毎、及び/又はこれと同様に動的に構成される。
より詳細には、図1を参照すると、ホスト装置102は、ホストプロセッサ106及びホストメモリ108を含む。ホストプロセッサ106は、例えばホスト装置102の中央処理装置(CPU)のような汎用プロセッサである。ホストメモリ108は、ホスト装置102の高性能メインメモリ(例えば、プライマリーメモリ)である。いくつかの実施形態において、ホストメモリ108は、例えばダイナミック(動的)ランダムアクセスメモリ(DRAM)のような揮発性メモリを含む(又はメモリである)。しかし、本発明は、これに限定されず、ホストメモリ108は、この分野に熟練した者に知られているように、ホスト装置102のための任意の適切な高性能メインメモリ(例えば、プライマリーメモリ)の代替物を含み得る(又は代替物であり得る)。他の実施形態において、ホストメモリ108は、NANDフラッシュメモリ、相変化メモリ(PCM)、抵抗性RAM、スピントランスファートルクRAM(STTRAM、スピン注入メモリ)、PCM技術に基づく任意の適切なメモリ、メモリスタ技術、及び/又は抵抗性ランダムアクセスメモリ(ReRAM)のような比較的高性能な不揮発性メモリであり、例えばカルコゲン化物及び/又はこれと類似のものを含む。
ストレージ装置104は、ホスト装置102によってアクセス可能なデータを永続的に(persistently)格納する補助(secondary)メモリとみなされる。このコンテキストで、ストレージ装置104は、ホストメモリ108の高性能メモリと比較すると、相対的に低速のメモリを含む(又はメモリである)。いくつかの実施形態において、ストレージ装置104は、例えばソリッド・ステート・ドライブ(SSD)などのようなホスト装置102の補助メモリである。しかし、本発明は、これに限定されず、他の実施形態において、ストレージ装置104は、例えば磁気ストレージ装置(例えば、ハードディスクドライブ(HDD))、光学ストレージ装置(例えば、ブルーレイ(blue−ray)ディスクドライブ、コンパクトディスクドライブ(CF)、デジタル多機能ディスク(DVD)、及び類似したもの)、他の種類のフラッシュメモリ装置(例えば、USBフラッシュドライブ及びこれと類似したもの)のような任意の適切なストレージ装置を含む(又はストレージ装置である)。多様な実施形態において、ストレージ装置104は、大型フォームファクタ標準(例えば、3.5インチハードドライブのフォームファクタ)、スモール(small)フォームファクタの標準(例えば、2.5インチハードドライブのフォームファクタ)、M.2フォームファクタ、E1.Sフォームファクタ、及び/又は類似のものに従う。他の実施形態において、ストレージ装置104は、このようなフォームファクタの任意の適切又は必要な派生物に従う。利便性のために、ストレージ装置104は、以下のSSDのコンテキストで記述されることがあるが、本発明は、これに限定されない。
ストレージ装置104は、ストレージインターフェース110を介してホスト装置102と通信可能に連結される。ストレージインターフェース110は、ホスト装置102とストレージ装置104との間の通信を可能に(例えば、コネクタ及びプロトコルを利用して)する。いくつかの実施形態において、ストレージインターフェース110は、ホスト装置102とストレージ装置104との間で、ストレージ要請と応答との交換を可能にする。いくつかの実施形態において、ストレージインターフェース110は、ストレージ装置104によるホスト装置102のホストメモリ108への又はホストメモリ108からのデータ伝送を可能にする。一実施形態において、ストレージインターフェース110(例えば、コネクタ及びそのプロトコル)は、SCSI(Small Computer System Interface)、NVMe(Non Volatile Memory express)、及び/又はこれと類似のものを含む(又は類似のものに従う)。この例で、ストレージインターフェース110を介するホスト装置102のライトコマンドは、コマンド発行フェーズ(phase)、データ伝送フェーズ、及び応答フェーズを含む。しかし、本発明は、これらに限定されず、他の実施形態において、ストレージインターフェース110(例えば、コネクタ及びそのプロトコル)は、例えばPCIe(Peripheral Component Interconnect express)、イーサネット(登録商標)(Ethernet(登録商標))を介するRDMA(remote direct memory access)、SATA(Serial Advanced Technology Attachment)、ファイバーチャネル(Fiber Channel)、SAS(Serial Attached SCSI)、ファブリックを介するNVMe(NVMe−oF)、及び/又はこれと類似のもののような他の適切なストレージインターフェースに従う。他の実施形態において、ストレージインターフェース110(例えば、コネクタ及びそのプロトコル)は、例えばイーサネット(登録商標)(Ethernet(登録商標))、USB(Universal Serial Bus)、及び/又はこれと類似のもののような多様な汎用インターフェースを含む(又は汎用インターフェースに従う)。利便性のために、ストレージインターフェース110は、ここでSCSIインターフェースのコンテキストで記述されるが、本発明は、これに限定されない。
いくつかの実施形態において、ストレージ装置104は、ストレージコントローラ114及びストレージメモリ116を含む。ストレージコントローラ114は、ストレージインターフェース110(例えば、応答回路112を介して)に連結され、ホスト装置102からストレージインターフェース110を介して受信される入力/出力(I/O)要請に応答する。ストレージコントローラ114は、制御のためのインターフェースを提供し、ストレージメモリ116への又はストレージメモリ116からのアクセスを提供する。例えば、ストレージコントローラ114は、ホスト装置102とストレージメモリ116とをインターフェースするために、少なくとも1つの組み込み型プロセッシング回路を含む。プロセッシング回路は、例えばデータアクセス命令に応じてデータアクセス命令を実行して(例えば、ファームウェア及び/又はソフトウェアを介して)ストレージメモリ116に格納されたデータへの又はデータからのアクセスを提供するデジタル回路(例えば、マイクロコントローラ、マイクロプロセッサ、デジタル信号プロセッサ、又はロジック装置(例えば、FPGA(field programmable gate array)、ASIC(application−specific integrated circuit)、及び/又はこれと類似のもの))を含む。例えば、データアクセス命令は、任意の適切なデータの格納、検索アルゴリズム(例えば、リード/ライト)命令、及び/又はこれと類似のものを含む。ストレージメモリ116は、ホスト装置102から受信されるデータを永続的に(persistently)格納する。一実施形態において、ストレージメモリ116は、例えばNANDフラッシュメモリのような不揮発性メモリを含む。しかし、本発明は、これらに限定されず、ストレージメモリ116は、ストレージ装置104のタイプに依存して任意の適切なメモリ(例えば、磁気ディスク、テープ、光学ディスク、及び/又はこれと類似のもの)を含み得る。
本実施形態において、ストレージ装置104は、応答回路112を更に含む。応答回路112は、ストレージインターフェース110とストレージコントローラ114との間に通信可能に結合されるハードウェアモジュール(例えば、電子回路)として実装される。一実施形態において、応答回路112は、ストレージ装置104に付着(又は実装)(例えば、ストレージ装置104と同じ基板又は同じ回路基板に実装)される集積回路を含む。例えば、応答回路112は、ストレージ装置104上でシステム・オン・チップ(SOC)として実装(例えば、付着又はマウント)される。しかし、本発明は、これらに限定されず、他の実施形態において、応答回路112は、ストレージ装置104と他の回路基板(例えば、プリント回路基板(PCB))に実装され、ストレージインターフェース110とストレージ装置104との間に連結される。
本実施形態において、ホストデータがホスト装置102からストレージインターフェース110を介してストレージ装置104に伝送される際に、応答回路112は、ホストデータを受信して伝送されたホストデータの1つ以上の状態に対応する状態情報を追跡する。応答回路112は、構成可能なコマンド応答トリガーを含み、伝送されたホストデータの1つ以上の状態及び構成可能なコマンド応答トリガーの構成(例えば、モード)に応じて適切な応答をホスト装置102に自動的に伝送する。従って、ファームウェア及び/又はソフトウェアを実行するプロセッサ(例えば、ストレージコントローラ114)に1つ以上の状態を追跡させてホスト装置102への応答を開始させるのではなく、応答回路112は、1つ以上の状態を追跡して1つ以上の状態に応じて適切な応答を自動的に生成してホスト装置102に伝送する。従って、レイテンシが減少し、そして/又はストレージ装置104のスループットが改善される。応答回路112は、以下の図2〜図4を参照して、より詳細に説明される。
図2は、本発明の一実施形態による応答回路112のブロック図である。
簡潔に要約すると、応答回路112は、ストレージインターフェース110とストレージコントローラ114との間に連結されたハードウェアモジュール(例えば、電子回路)である。応答回路112は、ホストデータがホスト装置102からストレージインターフェース110を介してストレージ装置104に伝送される際に、ホストデータを受信するデータパス(例えば、受信データパス(path)回路202)を含む。応答回路112は、ホストデータがホスト装置102からストレージインターフェース110を介して伝送される際に、ホストデータの状態情報を追跡し(例えば、1つ以上のカウンター(208、210)を利用して)、ホストデータの状態情報に基づいてホスト装置102に適切な応答を提供する。
一実施形態において、伝送されたホストデータの一部(例えば、ブロック)がデータパス(例えば、受信データパス回路202)で受信されたとき、応答回路112は、ホストデータの受信された一部に対応する通知をストレージコントローラ(又はファームウェア又はソフトウェアを実行する他のプロセッサ)に通知して、ホストデータの一部が受信されたことをストレージコントローラ114に知らせる。ストレージコントローラ114は、通知を処理してホストデータをストレージメモリ116に永続的に格納し、通知が処理されたことを示す確認応答(ACK:acknowledgement)を応答回路112に伝送する。この場合、応答回路112は、通知がストレージコントローラ114に伝送されたことを追跡し(例えば、通知カウンター208を介して)、通知に対応して通知がストレージコントローラ114によって処理されたことを示す確認応答がストレージコントローラ114から受信されたことを追跡(例えば、確認カウンター210を介して)する。
いくつかの実施形態において、応答回路112の構成(例えば、モード)(例えば、構成可能なコマンド応答トリガーの構成)に依存して、応答回路112は、コマンドが正常に実行されたことを示す応答を、通知及び/又は確認応答に基づいて、ホスト装置102に自動的に伝送する。例えば、応答回路112は、ホストデータがストレージコントローラ114によって処理される必要なしに、ホストデータの全てが受信されて通知されると、自動的に応答をホスト装置102に伝送するように構成される。そして/又は応答回路112は、通知に対応して全ての通知がストレージコントローラ114によって処理されたことを示す確認応答の全てがストレージ装置104から受信された後に、応答をホスト装置102に自動的に伝送するように構成される。前者で、通知応答は、後者よりも早くホスト装置102に伝送されるが、後者の場合と比較してデータ損失のリスクが増加する。
更に詳しく図2を参照すると、本実施形態において、応答回路112は、受信データパス回路202、応答トリガー回路204、及び応答生成回路206を含む。いくつかの実施形態において、受信データパス回路202は、ホストデータがホスト装置102からストレージインターフェース110を介してストレージ装置104に伝送される際に、ホストデータの一部を受信する。例えば、コマンド伝送の長さは、複数のデータブロックの中のいずれか1つのデータブロックに対応するホストデータの一部のような、例えば複数のデータブロックを含むライトコマンドに対応するホストデータを示す。この場合、ホストデータの一部(例えば、ブロック)が受信されたときに、受信データパス回路202は、ストレージコントローラ114(又はファームウェア及び/又はソフトウェアを実行する他のプロセッサ)に通知を伝送して、ホストデータの一部が受信されたことをストレージコントローラ114に知らせる。ストレージコントローラ114は、通知を処理して通知が処理されたことを示す確認応答を応答トリガー回路204に伝送する。
いくつかの実施形態において、通知は、ホストデータの一部及びホストデータの一部が配置されるロケーション(例えば、一時的な位置)を識別するための情報を含み、ストレージコントローラ114は、通知を処理して通知に基づいてホストデータをストレージメモリ116に永続的に格納する。いくつかの実施形態において、受信データパス回路202は、キャッシュ(例えば、揮発性データキャッシュ)に連結され(又は含まれ)、ストレージコントローラ114が通知を処理し、そして/又はホストデータをストレージメモリ116に永続的に格納するまで、ストレージインターフェース110を介してホストデータの一部が受信される際に、ホストデータの一部を一時的に格納する。この場合、一実施形態として、通知が処理されて対応するホストデータの一部がストレージメモリ116に永続的に格納される際に、ストレージコントローラ114が一般的に対応する確認応答を伝送するが、本発明は、これに限定されない。例えば、ストレージメモリ116内でホストデータの永続的な格納が相対的に保証される限り、ホストデータの各部に対応する確認応答は、ストレージメモリ116に、ホストデータの各部の格納の前に、後に、又は間に伝送される。
受信データパス回路202を図2で応答回路の一部として図示するが、本発明は、これに限定されない。他の実施形態において、データパス回路202は、応答回路112と区別されて実装され、通知をストレージコントローラ114(又はファームウェア及び/又はソフトウェアを実行する他のプロセッサ)に伝送して通知を処理する。この場合、データパス回路202は、通知(又は通知の伝送を示す信号)を応答回路112に更に伝送し、応答回路112は、ホストデータの通知状態を追跡する。多様な実施形態において、受信データパス回路202は、ストレージ装置104と同じ基板(例えば、同じ回路基板)上に実装され、ストレージインターフェース110及びストレージ装置104と通信可能に連結された別のモジュール(例えば、別のハードウェアモジュール又は命令を実行する別のプロセッサ)であり、ストレージコントローラ114及び/又はこれと類似のものの一部として実装される。
いくつかの実施形態において、応答トリガー回路204は、ホストデータの状態情報を追跡する1つ以上のカウンターを含み、例えば伝送されたホストデータが自動応答をホスト装置102に伝送するのに適した状態にあるか否かを判定する。例えば、1つ以上のカウンターは、ホストデータの通知の状態、例えばストレージコントローラ114がホストデータの全てが受信されたという通知を受けたか否か、及び/又は確認状態、例えば通知の全てが処理されてストレージコントローラ114によって確認されたか否かを追跡する。この場合、応答生成回路206は、ホストデータの状態情報に基づいて(例えば、1つ以上のカウンターの状態に応じて)(例えば、依存して)、適切な応答をホスト装置102に自動的に伝送する。
いくつかの実施形態において、1つ以上のカウンターは、通知カウンター208及び確認カウンター210を含む。いくつかの実施形態において、通知カウンター208及び確認カウンター210は、ホストデータのサイズに応じて初期化される。一例で、コマンド伝送の長さは、ホストデータが5つのブロックを含むことを示す場合、通知カウンター208及び確認カウンター210の各々は、5の初期値を有するように初期化される。この例で、受信データパス回路202が受信データパス回路202で受信されるホストデータの各ブロックに対してストレージコントローラ114に通知を伝送する度に、通知カウンター208は減少する。同様に、この例で、ストレージコントローラ114がホストデータの5つのブロックに対する通知の各々を確認することにより、確認カウンター210は減少する。従って、ホストデータの全てが受信されてストレージコントローラ114に通知されたとき、通知カウンター208は、0(zero)の値を有する。通知の全てがストレージコントローラ114によって処理され且つ確認されたとき、確認カウンター210は0(zero)の値を有する。
いくつかの実施形態において、応答生成回路206は、通知カウンター208の状態及び/又は確認カウンター210の状態に応じて、ホスト装置102に適切な応答を自動的に伝送する。いくつかの実施形態において、応答生成回路206は、通知カウンター208及び/又は確認カウンター210に連結され、通知カウンター208及び/又は確認カウンター210のいずれか1つ又は両方がいつ0(zero)の値を有しているかを判定する。この場合、通知カウンター208の値が0(zero)に減少するとき及び/又は確認カウンター210の値が0に減少するとき、応答生成回路206は、適切な応答をホスト装置102に自動的に伝送する。例えば、通知カウンター208の値が0に減少すると、応答生成回路206は、ホスト装置102に応答を早く伝送するが、ストレージコントローラ114は、通知の全てを処理していなかったため、データ損失のリスクが増加する。一方、確認カウンター210の値が0(zero)に減少すると、データ損失のリスクは減少するが、応答をホスト装置102に伝送する前に、応答生成回路206は、通知の全てがストレージコントローラ114によって処理され且つ確認されるまで先ず待機するため、ホスト装置102への応答は遅く伝送される。
従って、いくつかの実施形態において、応答回路112は、構成可能なコマンド応答トリガーを有し、応答生成回路206は、コマンド応答トリガーの構成(例えば、モード)によってホスト装置102に応答を伝送する。図3を参照して、以下でより詳細に説明するように、いくつかの実施形態において、構成可能なコマンド応答トリガーは、応答トリガー回路204の一部として実装される。他の実施形態において、構成可能なコマンド応答トリガーは、応答トリガー回路204のカウンターを含み、応答生成回路206の一部として実装される。
図3は、本発明の一実施形態による応答回路の構成可能なコマンド応答トリガーを示す概念的な回路図である。図3は、構成可能なコマンド応答トリガーに対応する応答回路112の一部、例えば応答トリガー回路204の通知カウンター208及び確認カウンター210を含む部分、並びに/又は応答生成回路206の一部を示す。
図3を参照すると、いくつかの実施形態において、応答回路112は、構成可能なコマンド応答トリガーを含み、通知カウンター208及び/又は確認カウンター210の状態、並びに構成可能なコマンド応答トリガーの構成(例えば、モード)に基づいて、応答をホスト装置102に自動的に伝送する。例えば、通知カウンター208及び確認カウンター210の各々は、バイナリ(2進)カウンター(302、304)を含む(例えば、実装される)。通知カウンター208及び確認カウンター210のバイナリカウンター(302、304)は、ホストデータの違いに基づいて、例えばホストデータに関連付けられているコマンド伝送の長さに応じて(例えば、基づいて)初期化される。通知がストレージ装置104に伝送(例えば、受信データパス回路202から)される度に、通知カウンター208のバイナリカウンター302は減少する。ストレージコントローラ114から確認応答が受信(例えば、応答トリガー回路204によって)される度に、確認カウンター210のバイナリカウンター304は減少する。
いくつかの実施形態において、バイナリカウンター(302、304)の各々は、それらの現在値を、対応するコンパレータ(306、308)に提供する。コンパレータ(306、308)の各々は、対応するバイナリカウンター(302、304)の値が閾値に到達したか(例えば、0に減少したか)否かを判定する。例えば、いくつかの実施形態において、コンパレータ(306、308)の各々は、対応するバイナリカウンター(302、304)の現在値を閾値(例えば、0)と比較し、対応するバイナリカウンター(302、304)の現在値が閾値に到達したか(例えば、0に減少したか)否かを判定する。いくつかの実施形態において、コンパレータ(306、308)の各々は、比較によって(例えば、基づいて)比較の結果を出力する。いくつかの実施形態において、対応するバイナリカウンター(302、304)の現在値が閾値(例えば、0)に到達すると、対応するコンパレータ(306、308)は、比較の結果としてハイレベル(例えば、1)を出力する。一方、対応するバイナリカウンター(302、304)が閾値ではない他の値を有している場合、例えば0よりも大きい値を有すると、対応するコンパレータ(306、308)は、比較の結果としてローレベル(例えば、0)を出力する。
いくつかの実施形態において、コンパレータ(306、308)の各々は、比較の結果を、対応する第1のロジックゲート(310、312)(例えば、対応するANDロジックゲート)に提供する。一実施形態において、第1のロジックゲート(310、312)は、ホスト装置102に応答を自動的に伝送(例えば、応答生成回路206を介して)するためのトリガーとして通知カウンター208及び確認カウンター210のいずれか1つを選択するのに使用される。例えば、第1のロジックゲート(310、312)の各々は、構成信号(Config)を受信し、第1のロジックゲート(310、312)が構成信号に基づいて一度に1つずつ選択される。この場合、ストレージ装置及び/又はホストデータの多様な特性を考慮し、ストレージ装置104の性能と必要な信頼性との間のバランスに応じて、構成信号(Config)がスタート時、ランタイム時、コマンド毎、及び/又はこれと類似のときに提供される。第1のロジックゲート(310、312)の中の適切又は必要な1つが選択され、従って通知カウンター208及び確認カウンター210の中の適切又は必要な1つが一度に選択される。例えば、構成信号は、ストレージコントローラ114、ホストプロセッサ106、ストレージ装置104に連結された他のコントローラ又はプロセッサ、及び/又はストレージ装置104に連結された任意の他の適切なコントローラ、プロセッサ、及び/又は装置から提供される。
一実施形態において、第1のロジックゲート(310、312)がANDロジックゲートである場合、構成信号の選択信号(例えば、ハイレベルの信号)は、ANDロジックゲート(310、312)の中から選択された1つに提供され、構成信号の非活性信号(例えば、ローレベルの信号)は、ANDロジックゲート(310、312)の中の他の1つ(例えば、例えば、非選択された1つ)に提供される。この場合、例えば構成信号の選択信号(例えば、ハイレベルの信号)を受信するANDロジックゲート(310、312)の中から選択された1つは、対応するコンパレータ(306、308)から比較の結果としてハイレベルの信号(例えば、対応するバイナリカウンター(302、304)の現在値が閾値に達したたことを指す)を受信するときにハイレベルの信号(例えば、1)を出力し、そうではないときに(例えば、比較の結果が、対応するバイナリカウンター(302、304)の現在値が閾値に達していなかったことを示すローレベルを有するとき)ローレベルの信号を出力する。構成信号の非活性化信号(例えば、ローレベル信号)を受信するANDロジックゲート(310、312)の中から選択されていなかった1つは、非活性化信号(例えば、ローレベル信号)により、対応するコンパレータ(306、308)からの比較の結果に関係なしに、ローレベル(例えば、0)を出力する。
一実施形態において、図3に示すように、同一の構成信号が第1のロジックゲート(310、312)の各々に提供される。例えば、第1のロジックゲート(310、312)の中のいずれか1つは入力に連結されて構成信号のレベルを反転するインバータ(又はNOTゲート)を有し、第1のロジックゲート(310、312)の中の他の1つは構成信号のレベルをそのまま受信する。同じ構成信号が提供されて、第1のロジックゲート(310、312)の中のいずれか1つを選択する。この場合、例えば構成信号がローレベルを有するとき、第1のロジックゲート(310、312)の中のいずれか1つのためにローレベルの信号を選択信号(例えば、ハイレベル信号)に変換し、第1のロジックゲート(310、312)の中の他の1つは、非活性信号(例えば、ローレベル信号)として構成信号のローレベルを受信する。同様に、構成信号がハイレベルを有するとき、第1のロジックゲート(310、312)の中のいずれか1つのためにハイレベルの信号を非活性信号(例えば、ローレベル信号)に変換し、第1のロジックゲート(310、312)の中の他の1つは、選択信号(例えば、ハイレベル信号)として構成信号のハイレベルを受信する。しかし、本発明は、これらに限定されず、他の実施形態において、異なる構成信号が第1のロジックゲート(310、312)の各々に提供されて、第1のロジックゲート(310、312)の中の必要又は適切な1つを選択する。
いくつかの実施形態において、第1のロジックゲート(310、312)(例えば、ANDロジックゲート)の出力は、第2のロジックゲート314(例えば、ORロジックゲート)に提供され、トリガー信号(TRIGGER)が第2のロジックゲート314によって生成される。トリガー信号は、応答をホスト装置102に自動的に伝送するために使用(例えば、応答生成回路206によって)される。例えば、一実施形態において、第2のロジックゲート314がORロジックゲートである場合、ORロジックゲート314は、第1のロジックゲート(310、312)(例えば、ANDロジックゲート)の中のいずれか1つがハイレベルの信号(例えば、対応するバイナリカウンター(302、304)の現在値が閾値に達したことを指し示す)を提供するときにトリガー信号をハイレベルの信号として提供し、他の場合にローレベルの信号(例えば、0)を出力する。第1のロジックゲート(310、312)(例えば、ANDロジックゲート)の非活性された1つがローレベル信号(例えば、0)を提供するため、第1のロジックゲート(310、312)(例えば、ANDロジックゲート)の中から選択された1つは、対応するコンパレータ(306、308)から比較の結果としてハイレベルの信号(例えば、対応するバイナリカウンター(302、304)の現在値が閾値に到達したことを示す)を受信するときにハイレベルの信号(例えば、1)のみを提供し、ORロジックゲート314は、ハイレベルの信号を有するトリガー信号を提供して、通知カウンター208及び確認カウンター210の中から選択された1つの現在値が閾値(例えば、0)に到達したときにのみ、自動応答をトリガーする。
従って、本実施形態において、応答回路112は、カウンター(208、210)の状態及び構成可能なコマンド応答トリガーの構成(例えば、モード)に応じて、ホスト装置102に自動応答を提供するように構成される。図3は、応答回路112の構成可能なコマンド応答トリガーの実装を示しているが、本発明は、これらに限定されない。応答回路112の構成可能なコマンド応答トリガーは、本発明の思想及び範囲に応じて多様に修正され得る。例えば、本発明の内容を勉強するときに、この分野に熟練した者に知られているように、そして/又は本発明の実施形態を実施することから学習されるように、構成可能なコマンド応答トリガーは、例えば他の多様で適合するロジックゲート(例えば、ANDゲート、NORゲート、XORゲート、NOTゲート、EXORゲート、EXNORゲート、及び/又はこれと類似のもの)、多様で適合するスイッチ、多様で適合するトランジスタ、多様で適合する抵抗、多様で適合するキャパシタ、多様で適合するレジスタ、多様で適合するフリップフロップ、異なる多様な種類のカウンター、異なる多様な種類のコンパレータ、並びに/又はこれらと類似のもののような多様で適合するハードウェア構造、電子的要素、及び/又はコンポーネントを含む(例えば、これらと共に実装される)。
図4は、本発明の一実施形態によるライトコマンドに対する応答を生成する方法のフローチャートである。しかし、本発明は、図4に示した方法400のオペレーションの順序又は参照符号に限定されず、この分野における通常の技術を有する者によって理解されるように、任意の必要な手順や参照符号に変更され得る。例えば、いくつかの実施形態において、方法は順序が変更されるか又はより少ないか若しくは追加の動作を含む。
図4を参照すると、ライト(WRITE)コマンドがホスト装置102から発行され、ストレージインターフェース110を介してストレージ装置104によってライトコマンドを受信したときに、方法400が開始される。動作(オペレーション)405で、ライトコマンドのコマンド伝送の長さに応じてカウンターが初期化される。例えば、通知カウンター208及び確認カウンター210が初期化され、ライトコマンドのコマンド伝送の長さによる初期値を有する。動作(オペレーション)410で、ライト(WRITE)コマンドに関連付けられたホストデータのデータ伝送が開始される。例えば、ホスト装置102は、ストレージインターフェース110を介してストレージ装置104にライトコマンドに関連付けられているホストデータの伝送を開始する。動作(オペレーション)415で、ホスト装置102から伝送されたホストデータの一部(例えば、ブロック)が受信される。例えば、受信データパス回路202は、ストレージインターフェース110を介してホスト装置102からのホストデータの中からホストデータブロックを受信する。
動作(オペレーション)420で、ストレージコントローラ114(又はファームウェア及び/又はソフトウェアを実行する他のプロセッサ)は、ホストデータの受信されたブロックに対する通知を受ける。例えば、受信データパス回路202は、ホストデータブロックが受信されたことを示す通知をストレージコントローラ114に伝送する。この場合、動作420の後に、動作425で開始される第1のループ及び動作440で開始される第2のループの両方のループが始まる。利便性のために、動作425で開始される第1のループを先ず説明し、後に動作440で開始される第2のループを次に説明するが、本発明は、これらの順序又はタイミングに限定されない。例えば、動作425で開始される第1のループは動作440で開始される第2のループと同時に(例えば、共に)開始されるか、或いは動作440で開始される第2のループは動作425で開始される第1のループの1つ以上の動作(オペレーション)後に開始される。
動作(オペレーション)425で、通知カウンター208の現在値は減少する。例えば、通知カウンター208の現在値は、ストレージコントローラ114への通知の伝送に応答して減少する。この場合、動作430で、通知カウンター208の現在値は、閾値(例えば、0)と比較されて、通知カウンター208の現在値が閾値に到達したか(例えば、0に減少したか)否かを判定する。例えば、応答回路112の構成可能なコマンド応答トリガーのコンパレータ306は、通知カウンター208の現在値を閾値(例えば、0)と比較して、ホストデータの全てが受信されたか否か、そして通知されたか否かを判定する。動作(オペレーション)430で、通知カウンター208の現在値が閾値に達していない(例えば、0に減少していない)場合(即ち、いいえ(NO))、方法400は、動作415にリターンし、動作430でホストデータブロックの全てが受信されるまで(即ち、通知カウンター208が0に減少するまで)、動作415でホストデータの他の部分(例えば、他のブロック)が受信されて、動作(オペレーション)420で方法400が持続される。
一方、動作430で通知カウンター208の現在値が閾値に到達した(例えば、0に減少した)場合(即ち、はい(YES))、動作435で応答回路112(例えば、応答回路112の構成可能なコマンド応答トリガー)は、構成可能なコマンド応答トリガーが第1のモードで動作するように構成されているか否かを判定する。一実施形態において、コンパレータ306の比較の結果は第1のロジックゲート(例えば、ANDロジックゲート)に提供され、第1のロジックゲート310は比較の結果と構成信号との間で演算(例えば、AND演算)を行う。ここで、構成信号が選択信号(例えば、ハイレベルの信号)として提供された場合には、動作435で第1のモードが構成されたと判定(例えば、はい(YES))され、動作460で応答がトリガーされ、動作465でホスト装置102に応答が伝送(例えば、応答生成回路206によって)される。一方、構成信号が非活性信号(例えば、ローレベルの信号)として提供されると、動作435で第1のモードが構成されていない(例えば、いいえ(NO))と判定される。この場合、応答回路112(例えば、応答回路112の構成可能なコマンド応答トリガー)は、動作435で構成可能なコマンド応答トリガーが第2のモードで動作するように構成されたものと判定(例えば、インバータに基づいて)し、応答回路112は、動作450で確認カウンター210の現在値が閾値に到達したか否かを判定する。
動作(オペレーション)420を再度参照すると、動作420で通知がストレージコントローラ114に伝送されることに応答して、ストレージコントローラ114は通知を処理し、ストレージコントローラ114は通知が処理されたことを示す確認応答を応答回路112(例えば、応答トリガー回路204)に伝送する。従って、動作440で確認応答が受信されたか否かを判定する。例えば、応答トリガー回路204は、ストレージコントローラ114から確認応答が受信されたか否かを判定する。動作440で確認応答が受信されていない場合(例えば、いいえ(NO))、動作420の通知に対応する確認応答が受信されるまで、方法400は動作440を繰り返す。
一方、動作(オペレーション)440で確認応答が受信された場合(例えば、はい(YES))、動作445で確認カウンター210の現在値が減少する。この場合、確認カウンター210の現在値は閾値(例えば、0)と比較され、動作450で確認カウンター210の現在値が閾値に達したか(例えば、0に減少したか)否かを判定する。例えば、応答回路112の構成可能なコマンド応答トリガーのコンパレータ308は、確認カウンター210の現在値を閾値(例えば、0)と比較して、ホストデータに関連付けられている通知の全てのストレージコントローラ114によって処理されたか否かを判定する。動作450で確認カウンター210の現在値が閾値に達した(例えば、0に減少した)場合(即ち、いいえ(NO))、方法400は、動作440に戻り、動作450でホストデータに関連する確認応答の全てが受信されるまで(例えば、確認カウンター210の現在値が0に減少するまで)、応答トリガー回路204は、動作440で他の通知に関連付けられている他の確認応答がストレージコントローラ114から受信されるか否かを判定する。
一方、動作(オペレーション)450で確認カウンター210の現在値が閾値に達した場合(例えば、0に減少した場合)(例えば、はい(YES))、動作460で応答がトリガーされる。一実施形態において、コンパレータ308の比較の結果は、第1のロジックゲート312(例えば、ANDロジックゲート)に提供され、第1のロジックゲート312は、比較の結果と構成信号との間で演算(例えば、AND演算)を行う。この場合、動作(オペレーション435で構成可能な応答トリガーが第2のモード(例えば、いいえ(NO))で動作するように構成されたものと判定されたため、構成信号は、選択信号(例えば、ハイレベル信号)として第1のロジックゲート312に提供(例えば、インバータに基づいて)され、動作460で応答がトリガーされ、動作465でホスト装置102に応答が伝送(例えば、応答生成回路206によって)される。
本発明の実施形態が、上記で2つのカウンター(例えば、通知カウンター208及び確認カウンター210)に対応する2つのモードを含むコマンド応答トリガーであるように説明したが、本発明はこれに限定されず、コマンド応答トリガーは、それよりも多くの若しくはそれよりも少ないモード、及び/又はそれよりも多くの若しくはそれよりも少ないカウンターを含み得る。一実施形態において、コマンド応答トリガーは、例えばホストデータが受信されたが通知されていないときに自動応答をトリガーする第3のモードを含む。この場合、ホスト装置102への応答は、他のモードよりも早く提供されるが、データの損失のリスクが最も大きい可能性がある。例えば、この場合、このコマンド応答トリガーは、ホストデータの全てが受信されたがまだ通知されていないときを追跡する第3のカウンターを含み、この構成(例えば、このモード)で動作するときに、応答は、ストレージコントローラ114がホストデータの全てに対して通知を受ける前に自動的に生成される。
上述したように、本発明によると、ストレージ装置は、ファームウェア又はソフトウェア(例えば、ストレージコントローラのようなプロセッサの実行命令)を使用して、ホストデータの状態情報を保持及び処理する代わりに、ホスト装置からストレージ装置に伝送されるホストデータの1つ以上の状態を追跡するハードウェアモジュール(例えば、応答回路)を含む。従って、レイテンシが減少し、そして/又はストレージ装置のスループットが改善される。
上述したように、本発明によると、ハードウェアモジュール(例えば、応答回路)は、構成可能なコマンド応答トリガーを含み、ストレージ装置104に伝送されるホストデータの異なる多様な状態、及びコマンド応答トリガーの構成(又はモード)に応じてホスト装置に適切な応答を提供する。従って、コマンド応答トリガーは、ストレージ装置及び/又はホストデータの多様な特性を考慮し、ストレージ装置の性能と信頼性との間のバランスに応じて、スタート時、ランタイム時、コマンド毎、及び/又はこれと類似のときに動的に構成される。
図面では、要素、レイヤー、及び領域の相対的なサイズは、明確性のために強調され、そして/又は単純化され得る。ここで、多様な要素、コンポーネント、領域、レイヤー、及び/又はセクションを記述するために「第1の」、「第2の」、「第3の」などの用語が使用されるが、これらの要素、コンポーネント、領域、レイヤー、及び/又はセクションはこれらの用語によって限定されない。これらの用語は、1つの要素、コンポーネント、領域、レイヤー、又はセクションを他の1つの要素、コンポーネント、領域、レイヤー、又はセクションと区別するために使用される。従って、上述した第1の要素、コンポーネント、領域、レイヤー、又はセクションは、本発明の思想及び範囲から離れずに、第2の要素、コンポーネント、領域、レイヤー、又はセクションと命名され得る。
1つの要素又はレイヤーが他の要素又はレイヤーの「上に」、「連結された」、又は「結合された」と参照される場合、1つの要素は、他の要素の直ぐ上に直接連結されるか又は直接結合されるか、或いは1つ以上の中間要素又はレイヤーに存在することがある。なお、1つの要素又はレイヤーが2つの要素又はレイヤーの「間に」あるものとして参照される場合、1つの要素又はレイヤーは、2つの要素又はレイヤーの間の唯一の要素又はレイヤーであるか、又は1つ以上の中間要素又はレイヤーが存在することがあることが理解されるだろう。
ここで使用される用語は、具体的な実施形態を説明するためのものであって、本発明を限定することを意図していない。ここで使用されるように、コンテキストで明らかに別の意味を示していると判定されない限り、単数形は複数形もまた含むことを意図する。この明細書で使用される場合、「含む(comprise)」、「含む(comprising)」、「有する(have)」、「有する(having)」の用語は、言及した特徴、整数、段階、動作、要素、及び/又はコンポーネントの存在を明示し、1つ以上の特徴、整数、段階、動作、要素、コンポーネント、及び/又はこれらのグループの存在又は追加を排除しない。ここで使用されるように、「及び/又は(そして/又は)」の用語は、関連・リストされた項目の1つ以上の任意且つ全ての組み合わせを含む。要素のリストに関連付けされる場合、「少なくとも1つ」のような表現は、要素の全体リストを修飾し、リストの個々の要素を修飾しない。
ここで使用されるように、「実質的に」、「約」の用語及び類似の用語は、程度の用語ではない近似値の用語として使用され、この分野における通常の技術を有する者によって理解される測定又は計算された値の自明な変化を説明するように意図される。なお、本発明の実施形態を記述する際に、「できる」の使用は、「本発明の1つ以上の実施形態」を参照する。ここで使用されるように、「使用する(use)」、「使用する(using)」、及び「使用された(used)」の用語は、「活用する(utilize)」、「活用する(utilizing)」、及び「活用された(utilized)」の用語の類義語と各々見なされる。
別の意味を示していると定義されない限り、ここで使用される全ての用語(技術的及び科学的用語を含む)は、本発明が属する分野における通常の技術を有する者によって共通に理解されるものと同じ意味を有する。共通的に使用されている辞書で定義されたもののような用語は、関連技術分野及び/又は本発明のコンテキストでそれらの意味と一致する意味を有すると解釈されるべきであり、ここではそのように定義されない場合は、理想化されたり、過度に形式的な意味だったりして解釈されてはならない。
以上、本発明の実施形態について図面を参照しながら詳細に説明したが、本発明は、上述の実施形態に限定されるものではなく、本発明の技術的思想から逸脱しない範囲内で多様に変更実施することが可能である。
100 ストレージシステム
102 ホスト装置
104 ストレージ装置
106 ホストプロセッサ
108 ホストメモリ
110 ストレージインターフェース
112 応答回路
114 ストレージコントローラ
116 ストレージメモリ
202 受信データパス回路
204 応答トリガー回路
206 応答生成回路
208 通知カウンター
210 確認カウンター
302、304 バイナリカウンター
306、308 コンパレータ
310、312 第1のロジックゲート
314 第2のロジックゲート

Claims (20)

  1. ストレージ装置であって、
    ホスト装置からストレージインターフェースを介して前記ストレージ装置に伝送されるホストデータに対応する1つ以上の通知を受信するように構成されたストレージコントローラと、
    ストレージメモリと、
    前記ストレージコントローラに連結されて前記ホスト装置に応答をトリガーするように構成された応答回路と、を備え、
    前記応答回路は、
    前記ホストデータの全体に対応する1つ以上の通知の各々が前記ホストデータの全体の中から前記ホストデータの一部に対応するように、前記1つ以上の通知を追跡するように構成された第1のカウンターと、
    前記1つ以上の通知に対応して前記ストレージコントローラから受信される1つ以上の確認応答の各々が前記1つ以上の通知の中からいずれか1つの通知に対応するように、前記1つ以上の確認応答を追跡するように構成された第2のカウンターと、
    前記第1のカウンター及び前記第2のカウンターの中からいずれか1つを選択して前記応答をトリガーするように構成された応答トリガー回路と、を含み、
    前記応答回路は、前記第1のカウンター及び前記第2のカウンターの中から選択された1つの状態に応じて前記ホスト装置に前記応答を伝送するように構成されることを特徴とするストレージ装置。
  2. 前記選択された1つの状態は、前記第1のカウンター及び前記第2のカウンターの中から選択された1つのカウント値に対応することを特徴とする請求項1に記載のストレージ装置。
  3. 前記カウント値は、前記ホストデータに関連付けられたコマンド伝送の長さに基づいて初期化されることを特徴とする請求項2に記載のストレージ装置。
  4. 前記第1のカウンターは、前記第1のカウンター及び前記第2のカウンターの中から選択される1つであり、
    前記第1のカウンターのカウント値は、前記ストレージコントローラに伝送される1つ以上の通知の中から各通知に対して減少されることを特徴とする請求項3に記載のストレージ装置。
  5. 前記応答トリガー回路は、コンパレータを含み、
    前記コンパレータは、前記カウント値を閾値と比較するように構成されることを特徴とする請求項4に記載のストレージ装置。
  6. 前記応答回路は、前記カウント値が前記閾値と等しくなることに応答して、前記ホストデータが受信されて通知されたことを判定するように構成されることを特徴とする請求項5に記載のストレージ装置。
  7. 前記第2のカウンターは、前記第1のカウンター及び前記第2のカウンターの中から選択される1つであり、
    前記第2のカウンターのカウント値は、前記ストレージコントローラから受信される1つ以上の確認応答の中から各確認応答に対して減少されることを特徴とする請求項3に記載のストレージ装置。
  8. 前記ストレージコントローラは、対応する通知が処理されることに応答して、前記1つ以上の確認応答の中からいずれか1つの確認応答を伝送するように構成されることを特徴とする請求項7に記載のストレージ装置。
  9. 前記応答トリガー回路は、前記カウント値を閾値と比較するように構成されたコンパレータを含み、
    前記応答回路は、前記カウント値が前記閾値と等しくなることに応答して、前記ホストデータが前記ストレージ装置によって処理されたことを判定するように構成されことを特徴とする請求項8に記載のストレージ装置。
  10. 前記ストレージコントローラは、前記通知上の少なくとも一部に基づいて、前記ホストデータを前記ストレージメモリに永続的に格納するように構成されることを特徴とする請求項8に記載のストレージ装置。
  11. ホスト装置によってストレージ装置に発行されたコマンドに対する応答をトリガーする方法であって、
    前記ストレージコントローラによって、前記コマンドに対応して前記ホスト装置からストレージインターフェースを介して前記ストレージ装置に伝送されるホストデータに対応する1つ以上の通知を受信する段階と、
    前記ストレージコントローラに連結された応答回路によって、前記ホスト装置に前記応答をトリガーする段階と、を有し、
    前記応答をトリガーする段階は、
    前記応答回路の第1のカウンターによって、前記ホストデータの全体に対応する1つ以上の通知の各々が前記ホストデータの全体の中から前記ホストデータの一部に対応するように、前記1つ以上の通知を追跡する段階と、
    前記応答回路によって、前記1つ以上の通知に対応する1つ以上の確認応答の各々が前記1つ以上の通知の中からいずれか1つの通知に対応するように、前記1つ以上の確認応答を前記ストレージコントローラから受信する段階と、
    前記応答回路の第2のカウンターによって、前記1つ以上の確認応答を追跡する段階と、
    前記応答回路の応答トリガー回路によって、前記第1のカウンター及び前記第2のカウンターの中からいずれか1つを選択して前記応答をトリガーする段階と、を含み、
    前記方法は、前記応答回路によって、前記第1のカウンター及び前記第2のカウンターの中から選択された1つの状態に応じて前記ホスト装置に前記応答を伝送する段階を更に含むことを特徴とする方法。
  12. 前記選択された1つの状態は、前記第1のカウンター及び前記第2のカウンターの中から選択された1つのカウント値に対応することを特徴とする請求項11に記載の方法。
  13. 前記応答回路によって、前記ホストデータに関連付けられたコマンド伝送の長さに基づいて前記カウント値を初期化する段階を更に含むことを特徴とする請求項12に記載の方法。
  14. 前記第1のカウンターは、前記第1のカウンター及び前記第2のカウンターの中から選択される1つであり、
    前記方法は、前記応答回路によって、前記ストレージコントローラに伝送される1つ以上の通知の中から各通知に対して前記第1のカウンターのカウント値を減少させる段階を更に含むことを特徴とする請求項13に記載の方法。
  15. 前記応答トリガー回路は、コンパレータを含み、
    前記方法は、前記コンパレータによって、前記カウント値を閾値と比較する段階を更に含むことを特徴とする請求項14に記載の方法。
  16. 前記応答回路によって、前記カウント値が前記閾値と等しくなることに応答して、前記ホストデータが受信されて通知されたことを判定する段階を更に含むことを特徴とする請求項15に記載の方法。
  17. 前記第2のカウンターは、前記第1のカウンター及び前記第2のカウンターの中から選択される1つであり、
    前記方法は、前記応答回路によって、前記ストレージコントローラから受信される1つ以上の確認応答の中から各確認応答に対して前記第2のカウンターのカウント値を減少させる段階を更に含むことを特徴とする請求項13に記載の方法。
  18. 前記ストレージコントローラによって、前記1つ以上の通知の中から対応する通知を処理する段階と、
    前記ストレージコントローラによって、前記対応する通知が処理されることに応答して、前記1つ以上の確認応答の中からいずれか1つの確認応答を伝送する段階と、を更に含むことを特徴とする請求項17に記載の方法。
  19. 前記応答トリガー回路は、コンパレータを含み、
    前記方法は、前記コンパレータによって、前記カウント値を閾値と比較する段階と、
    前記応答回路によって、前記カウント値が前記閾値と等しくなることに応答して、前記ホストデータが前記ストレージ装置によって処理されたことを判定する段階と、を更に含むことを特徴とする請求項18に記載の方法。
  20. 前記ストレージコントローラによって、前記通知上の少なくとも一部に基づいて、前記ホストデータを前記ストレージメモリに永続的に格納する段階を更に含むことを特徴とする請求項19に記載の方法。

JP2021013592A 2020-03-11 2021-01-29 構成可能なコマンド応答トリガーを有するストレージ装置及びそのトリガー方法 Active JP7453167B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202062988214P 2020-03-11 2020-03-11
US62/988,214 2020-03-11
US16/834,584 2020-03-30
US16/834,584 US11194503B2 (en) 2020-03-11 2020-03-30 Storage device having a configurable command response trigger

Publications (3)

Publication Number Publication Date
JP2021144702A true JP2021144702A (ja) 2021-09-24
JP2021144702A5 JP2021144702A5 (ja) 2023-12-27
JP7453167B2 JP7453167B2 (ja) 2024-03-19

Family

ID=74556730

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021013592A Active JP7453167B2 (ja) 2020-03-11 2021-01-29 構成可能なコマンド応答トリガーを有するストレージ装置及びそのトリガー方法

Country Status (6)

Country Link
US (4) US11194503B2 (ja)
EP (1) EP3879411A1 (ja)
JP (1) JP7453167B2 (ja)
KR (1) KR20210114850A (ja)
CN (1) CN113391762A (ja)
TW (1) TW202201213A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023033151A1 (ja) 2021-09-06 2023-03-09 国立大学法人九州大学 変形性関節症の進行抑制剤及び進行抑制キット

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI760872B (zh) * 2020-09-30 2022-04-11 新唐科技股份有限公司 管理控制器及控制方法

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6434630B1 (en) 1999-03-31 2002-08-13 Qlogic Corporation Host adapter for combining I/O completion reports and method of using the same
US6574696B1 (en) * 2000-03-07 2003-06-03 Hewlett-Packard Development Company, L.P. Methods and arrangements for providing bi-directional control between data storage drives and automation controllers
US7631307B2 (en) * 2003-12-05 2009-12-08 Intel Corporation User-programmable low-overhead multithreading
US7653773B2 (en) 2007-10-03 2010-01-26 International Business Machines Corporation Dynamically balancing bus bandwidth
US8407528B2 (en) * 2009-06-30 2013-03-26 Texas Instruments Incorporated Circuits, systems, apparatus and processes for monitoring activity in multi-processing systems
US9208071B2 (en) 2010-12-13 2015-12-08 SanDisk Technologies, Inc. Apparatus, system, and method for accessing memory
US20130007533A1 (en) * 2011-06-28 2013-01-03 Miller Gary L Data processing system having a sequence processing unit and method of operation
US8832715B2 (en) * 2012-03-29 2014-09-09 Unisys Corporation Limiting execution of event-responses with use of policies
US9350806B2 (en) * 2012-09-07 2016-05-24 International Business Machines Corporation Zero copy data transfers without modifying host side protocol stack parameters
US9703636B2 (en) 2014-03-01 2017-07-11 Sandisk Technologies Llc Firmware reversion trigger and control
US9513820B1 (en) 2014-04-07 2016-12-06 Pure Storage, Inc. Dynamically controlling temporary compromise on data redundancy
US9910621B1 (en) * 2014-09-29 2018-03-06 EMC IP Holding Company LLC Backlogging I/O metadata utilizing counters to monitor write acknowledgements and no acknowledgements
GB2537115B (en) * 2015-04-02 2021-08-25 Advanced Risc Mach Ltd Event monitoring in a multi-threaded data processing apparatus
US9917784B2 (en) * 2015-07-31 2018-03-13 Netapp Inc. Dynamic resource allocation based upon network flow control
JP6540391B2 (ja) * 2015-09-03 2019-07-10 富士通株式会社 ストレージ制御装置、ストレージ制御プログラム、及びストレージ制御方法
US10572180B1 (en) * 2015-11-09 2020-02-25 Seagate Technology Llc Method and apparatus to perform a function level reset in a memory controller
US10007638B2 (en) * 2015-11-10 2018-06-26 Dell Products, Lp Asynchronous notification including parameter values in serial advanced technology attachment protocol
US20170212711A1 (en) 2016-01-21 2017-07-27 Kabushiki Kaisha Toshiba Disk apparatus and control method
US20180012627A1 (en) 2016-07-07 2018-01-11 HGST Netherlands B.V. Managing far and near track erasure by dynamic control of a write current parameter of a magnetic disk drive
US20180239532A1 (en) * 2017-02-23 2018-08-23 Western Digital Technologies, Inc. Techniques for performing a non-blocking control sync operation
US10628049B2 (en) 2017-07-12 2020-04-21 Sandisk Technologies Llc Systems and methods for on-die control of memory command, timing, and/or control signals
KR20190066466A (ko) 2017-12-05 2019-06-13 삼성전자주식회사 기입 레이턴시를 줄일 수 있는 저장 장치의 동작 방법
US10719248B2 (en) 2018-04-20 2020-07-21 Micron Technology, Inc. Apparatuses and methods for counter update operations
US10783080B2 (en) * 2018-10-29 2020-09-22 Arm Limited Cache maintenance operations in a data processing system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023033151A1 (ja) 2021-09-06 2023-03-09 国立大学法人九州大学 変形性関節症の進行抑制剤及び進行抑制キット

Also Published As

Publication number Publication date
EP3879411A1 (en) 2021-09-15
KR20210114850A (ko) 2021-09-24
US11836375B2 (en) 2023-12-05
US20240061604A1 (en) 2024-02-22
CN113391762A (zh) 2021-09-14
US11194503B2 (en) 2021-12-07
US20210286545A1 (en) 2021-09-16
TW202201213A (zh) 2022-01-01
US20220091774A1 (en) 2022-03-24
US20220091773A1 (en) 2022-03-24
JP7453167B2 (ja) 2024-03-19

Similar Documents

Publication Publication Date Title
US20240061604A1 (en) Storage device having a configurable command response trigger
JP5669951B2 (ja) コピーバック動作
US20150019904A1 (en) Data processing system and operating method thereof
JP2022172443A (ja) メモリチップロウハンマー脅威バックプレッシャー信号およびホスト側応答に関する方法および装置
US9911494B1 (en) Overlapping write schemes for cross-point non-volatile memory devices
US9496010B2 (en) Semiconductor device and memory system including the same
EP3885888B1 (en) Parallel overlap management for commands with overlapping ranges
US8539116B2 (en) System and method for dynamically configuring a target device
US20190340060A1 (en) Systems and methods for adaptive proactive failure analysis for memories
US12001361B2 (en) Apparatus and method for data communications between non-volatile memory devices and a memory controller
NL2033511B1 (en) Fast memory ecc error correction
US11023400B1 (en) High performance DMA transfers in host bus adapters
CN111190763B (zh) 半导体器件及包括其的半导体系统
US20240079037A1 (en) Memory device for supporting stable data transfer and memory system including the same
US11822816B2 (en) Networking device/storage device direct read/write system
CN114063899B (zh) 主从管理存储器存储
CN113360086A (zh) 储存装置以及操作储存装置的方法
CN115185360A (zh) 用于非易失性存储器高速存储的快速电力减小
CN115858253A (zh) 跨互连的存储器镜像的技术
US8645652B2 (en) Concurrently moving storage devices from one adapter pair to another

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231219

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20231219

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20231219

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240307

R150 Certificate of patent or registration of utility model

Ref document number: 7453167

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150