JP2017152041A - フラッシュメモリにおけるコマンド完了の確認 - Google Patents

フラッシュメモリにおけるコマンド完了の確認 Download PDF

Info

Publication number
JP2017152041A
JP2017152041A JP2017092848A JP2017092848A JP2017152041A JP 2017152041 A JP2017152041 A JP 2017152041A JP 2017092848 A JP2017092848 A JP 2017092848A JP 2017092848 A JP2017092848 A JP 2017092848A JP 2017152041 A JP2017152041 A JP 2017152041A
Authority
JP
Japan
Prior art keywords
transfer request
completion
register
bit
doorbell
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
JP2017092848A
Other languages
English (en)
Other versions
JP6599397B2 (ja
Inventor
ドレヴ・ラヴィヴ
Raviv Dolev
タットヤーナ・ブロッカマン
Brokhman Tatyana
マヤ・ハイム
Haim Maya
アサフ・シャチャム
Shacham Assaf
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2017152041A publication Critical patent/JP2017152041A/ja
Application granted granted Critical
Publication of JP6599397B2 publication Critical patent/JP6599397B2/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/382Information transfer, e.g. on bus using universal interface adapter
    • 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
    • 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/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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
    • G06F2206/00Indexing scheme related to dedicated interfaces for computers
    • G06F2206/10Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
    • G06F2206/1014One time programmable [OTP] memory, e.g. PROM, WORM

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)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Executing Machine-Instructions (AREA)
  • Read Only Memory (AREA)
  • Retry When Errors Occur (AREA)
  • Communication Control (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Telephone Function (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Memory System (AREA)
  • Storage Device Security (AREA)
  • Bus Control (AREA)

Abstract

【課題】フラッシュメモリにおけるコマンド完了を確認する。
【解決手段】例示的な態様は、ソフトウェアロックおよび未解決要求変数を排除し、これらを転送要求完了レジスタに置換することを含む。転送要求完了レジスタは、ユニバーサルフラッシュストレージ(UFS)転送プロトコル(UTP)転送要求リスト(UTRL)スロットにマップされ得る。ホストのコントローラ(ハードウェア構成要素)は、ドアベルレジスタがクリアされると同時に、転送要求完了時に転送要求完了レジスタにおいてビットを設定することができる。このビットが読み取られた後、転送要求完了レジスタにおけるビットはクリアされる。
【選択図】図5

Description

優先権主張
本出願は、その全体が参照により本明細書に組み込まれる、2013年9月10日に出願した「SYSTEMS AND METHODS FOR ASCERTAINING COMMAND COMPLETION IN FLASH MEMORY」と題する米国仮特許出願第61/875,907号の優先権を主張する。
本出願はまた、その全体が参照により本明細書に組み込まれる、2014年8月25日に出願した「ASCERTAINING COMMAND COMPLETION IN FLASH MEMORIES」と題する米国特許出願第14/467,404号の優先権を主張する。
本開示の技術は一般に、フラッシュメモリおよびフラッシュメモリのためのコマンドを処理することに関する。
フラッシュメモリは、カメラ、オーディオプレーヤ、スマートフォン、タブレットなどのモバイル端末を含む多くの種類のコンピューティングデバイスでよく見られる。フラッシュメモリは、2つの一般的なタイプ(取外し可能または組み込み型)のうちの1つであり得、両方の一般的なタイプには、いくつかの規格が存在する。組み込みの状況向けに最初に設計された1つの規格は、電子デバイス技術合同協議会(JEDEC:Joint Electron Device Engineering Council)によって規定されたユニバーサルフラッシュストレージ(UFS:Universal Flash Storage)規格である。別の一般的な規格は、組み込みマルチメディアコントローラ(eMMC:embedded Multi-Media Controller)規格である。
UFS規格では、ホストは、メモリ要素を保持するデバイスと通信する。ホストは、データをメモリ要素に書き込む、データをメモリ要素から読み取るなどの「転送要求」タスクを実行し、キャッシュを同期させるためのコマンドをデバイスに発行する。設計上、UFSは複数の同時の転送要求をサポートする。転送要求は、ホストのコントローラにおいてソフトウェア駆動され、ドアベルレジスタと呼ばれるレジスタと、(少なくともLINUX実装内では)未解決要求変数と呼ばれるソフトウェア変数とを使用する。「未解決要求変数」という用語はLINUXに固有のものであるが、他のオペレーティングシステムは同様の変数を使用しており、本明細書ではすべてを未解決要求変数と呼ぶ。各転送要求は、ドアベルレジスタおよび未解決要求変数において、スロットおよび対応するビットを占める。新しい転送要求を送信するとき、ソフトウェアは、レジスタおよび変数におけるスロットに対応するビットを設定する。レジスタにおいてビットを設定することは、新しい転送要求の準備ができたことをコントローラに通知する。転送要求が完了すると、ハードウェアはレジスタにおけるスロットに対応するビットをクリアし、次いで、ソフトウェアはレジスタにおけるビットを未解決要求変数におけるビットと比較して、完了した要求を見つける。特定の要素が異なる名前を有し得るが、eMMCは同様であることに留意されたい。
ドアベルレジスタを設定する前かつ未解決要求変数を更新した後にホストが中断を受けた場合、ホストは、要求が送信される前に要求が完了したと認識することがある。そのような状況では、ソフトウェアは要求を完了することができるが、エラーを伴う。あるいは、レジスタを設定した後にホストが中断を受け、未解決要求変数を更新する前に要求が完了した場合、要求は失われることがある。さらに別の状況は、別の転送要求完了の中断が現れるまで、要求を遅延させることがある。そのような状況は、要求を遅延させ、それによって性能劣化を引き起こすか、無期限にまたはコマンドを中止させるエラーが生じるまで遅延を継続させるかのいずれかである。現在、そのような状況は、ソフトウェアロックを使用することで回避されている。しかしながら、そのようなソフトウェアロックは遅く、他の転送要求を除外する可能性がある。さらに、そのようなソフトウェアロックまたは除外は、一般に待ち時間を増加させ、特にマルチコアプロセッサにおける性能の劣化をもたらす。
発明を実施するための形態で開示される態様は、フラッシュメモリにおけるコマンド完了を確認することを含む。例示的な態様は、ソフトウェアロックおよび未解決要求変数を排除し、これらを転送要求完了レジスタに置換することを含む。転送要求完了レジスタは、ユニバーサルフラッシュストレージ(UFS)転送プロトコル(UTP)転送要求リスト(UTRL)スロットにマップされ得る。ホストのコントローラ(ハードウェア構成要素)は、ドアベルレジスタがクリアされると同時に、転送要求完了時に転送要求完了レジスタにおいてビットを設定することができる。このビットが読み取られた後、転送要求完了レジスタにおけるビットはクリアされる。具体的にはUFSが企図されているが、組み込みマルチメディアコントローラ(eMMC)などの他のフラッシュメモリ規格も、本開示の態様から利益を得ることができる(たとえば、eMMCは、UTRLと機能的に等価であるタスク記述子リスト(TDL)を有する)。ソフトウェアロックおよび未解決要求変数を置換することは、待ち時間を低減し、そのようなソフトウェアロックを使用することで生じ得る転送要求の除外を排除することによって、性能を改善する。特に、完了およびコンテキストの発行は同時に動作することができる。転送要求は、複数のコンテキストから同時に発行され得る。これらの複数のコンテキストの使用は、特にスマートフォンなどのマルチコアデバイスにおける性能を改善する。
この点について、一態様では、UFSシステムが開示される。UFSシステムは、UTRLに対応するいくつかのビットを有するドアベルレジスタを含む。UFSシステムはまた、同数のビットを有する完了レジスタを備える。UFSシステムは、ドアベルレジスタおよび完了レジスタに動作可能に結合された制御システムをさらに備える。制御システムは、送信要求開始のためにドアベルレジスタにおいてドアベルビットを設定するように構成される。別の言い方をすれば、ドアベルレジスタにおけるビットが発生すると、転送要求の準備ができており、転送要求を処理することができる(すなわち、データの転送を開始する)ことをコントローラにシグナリングする。制御システムはまた、転送要求完了時に完了レジスタにおいて完了ビットを設定するように構成される。制御システムはまた、転送要求完了時にドアベルビットをクリアするように構成される。
別の態様では、メモリシステムが開示される。メモリシステムは、いくつかのビットを有するドアベルレジスタを含む。メモリシステムはまた、同数のビットを有する完了レジスタを含む。メモリシステムはまた、ドアベルレジスタおよび完了レジスタに動作可能に結合された制御システムを含む。制御システムは、送信要求開始のためにドアベルレジスタにおいてドアベルビットを設定するように構成される。制御システムはまた、転送要求完了時に完了レジスタにおいて完了ビットを設定するように構成される。制御システムはまた、転送要求完了時にドアベルビットをクリアするように構成される。
別の態様では、メモリシステムを制御する方法が開示される。方法は、ホストにおいて転送要求を生成するステップを含む。方法はまた、転送要求を識別するホスト内のドアベルレジスタにおいてビットを設定するステップを含む。方法はまた、通信インターフェースを通じて転送要求をデバイスに渡すステップを含む。方法はまた、転送要求に関連付けられた転送を完了するステップを含む。方法はまた、ドアベルレジスタにおけるビットをクリアするステップを含む。方法はまた、完了レジスタにおいて完了ビットを設定するステップを含む。
別の態様では、組み込みマルチメディアコントローラ(eMMC)メモリシステムが開示される。メモリシステムは、eMMCタスク記述子リストに対応するいくつかのビットを有するドアベルレジスタを含む。メモリシステムはまた、同数のビットを有する完了通知レジスタを含む。メモリシステムはまた、ドアベルレジスタおよび完了通知レジスタに動作可能に結合され、送信要求開始のためにドアベルレジスタにおいてドアベルビットを設定するように構成された制御システムを含む。制御システムはまた、転送要求完了時に完了通知レジスタにおいて完了ビットを設定するように構成される。制御システムはまた、転送要求完了時にドアベルビットをクリアするように構成される。
本開示の例示的な態様を用いない、ホストとデバイスとの間の例示的な接続のブロック図である。 同期ロックまたは本開示の態様なしで、メモリシステムで生じ得る第1の競合状態を示す図である。 同期ロックまたは本開示の態様なしで、メモリシステムで生じ得る第2の競合状態を示す図である。 図2Aおよび図2Bに示す競合状態などの競合状態を防止するためにロックを使用する従来のデータフロープロセスのフローチャートである。 本開示の例示的な態様による、ホストとホストレジスタを有するデバイスとの間の例示的な接続のブロック図である。 図4のホストとデバイスとの間のデータフローの例示的なプロセスを示すフローチャートである。 図4に示すホストおよびデバイスを用いることができる、例示的なプロセッサベースのシステムのブロック図である。
次に図面を参照しながら、本開示のいくつかの例示的な態様について説明する。「例示的」という言葉は、本明細書では「一例、事例、または例示として役立つ」ことを意味するように使用される。「例示的」として本明細書で説明するいずれの態様も、必ずしも他の態様よりも好ましいか、または有利であると解釈されるわけではない。
発明を実施するための形態で開示される態様は、フラッシュメモリにおけるコマンド完了を確認することを含む。例示的な態様は、ソフトウェアロックおよび未解決要求変数を排除し、これらを転送要求完了レジスタに置換することを含む。転送要求完了レジスタは、ユニバーサルフラッシュストレージ(UFS)転送プロトコル(UTP)転送要求リスト(UTRL)スロットにマップされ得る。ホストのコントローラ(ハードウェア構成要素)は、ドアベルレジスタがクリアされると同時に、転送要求完了時に転送要求完了レジスタにおいてビットを設定することができる。このビットが読み取られた後、転送要求完了レジスタにおけるビットはクリアされる。具体的にはUFSが検討されるが、組み込みマルチメディアコントローラ(eMMC)などの他のフラッシュメモリ規格も、本開示の態様から利益を得ることができる(たとえば、eMMCは、UTRLと機能的に等価であるタスク記述子リスト(TDL)を有する)。ソフトウェアロックおよび未解決要求変数を置換することは、待ち時間を低減し、そのようなソフトウェアロックを使用することで生じ得る転送要求の除外を排除することによって、性能を改善する。特に、完了およびコンテキストの発行は同時に動作することができる。転送要求は、複数のコンテキストから同時に発行され得る。これらの複数のコンテキストの使用は、特にスマートフォンなどのマルチコアデバイスにおける性能を改善する。
本開示の態様に取り組む前に、図1〜図3を参照しながら、従来のシステムおよび従来のシステムで生じる問題の概要を提示する。本開示の例示的な態様は、図4を参照しながら、以下で開始する。
この点について、図1は、導体14を介してデバイス12に結合されたホスト10のブロック図である。ホスト10とデバイス12との間の通信は、2013年9月に公表されたUFS v2.0規格に準拠する。本議論はUFSに焦点を当てているが、組み込みマルチメディアコントローラ(eMMC)を含む他のフラッシュ規格も、本開示の態様から利益を得ることができる。ホスト10は、適切な通信インターフェース18に動作可能に結合されたハードウェアベースのシステムであるホストコントローラ16を含む。ホストコントローラ16は、ホストソフトウェア20と相互動作する。総称して、ホストコントローラ16およびホストソフトウェア20は制御システムである。
引き続き図1を参照すると、デバイス12は、適切な通信インターフェース24に動作可能に結合されたハードウェアベースのシステムであるコントローラ22を含む。デバイス12は、メモリユニット26(たとえば、Negated ANDまたはNOT AND(NAND)フラッシュストレージデバイス)をさらに含む。デバイス12は、タスクキュー28をさらに含む。総称して、コントローラ22およびコントローラ22の動作に関連付けられた任意のソフトウェアは制御システムである。
ホスト10は、ドアベルレジスタ30(UTRLDBR)をさらに含む。ドアベルレジスタ30は、ホストコントローラ16によって扱われる転送要求スロットの数に等しいいくつかのビットを有するハードウェアベースの構成要素である。すなわち、ドアベルレジスタ30は、UFS規格のプロトコル転送要求リストに対応するいくつかのビットを有する。
引き続き図1を参照すると、従来のUFSシステムでは、ホスト10を包含するコンピューティング要素は、データをメモリユニット26から読み取るか、またはデータをメモリユニット26に書き込む必要があり得る。したがって、要求されたデータ転送の概要を説明する転送要求は、ホストコントローラ16に送信され得る。次いで、ホストソフトウェア20は、スロットを転送要求に割り当てる。ホストコントローラ16は、複数の転送要求を処理するために複数のスロット(図示せず)を有してもよい。複数の転送要求は、特にマルチコアプロセッサにおいてよく見られる。ホストソフトウェア20がデバイス12に対する転送要求を準備すると、ホストソフトウェア20は、ドアベルレジスタ30において、転送要求が関連付けられたスロットに対応するビットを設定する。ドアベルレジスタ30においてビットを設定することは、通信インターフェース18を通じて転送要求をデバイス12に送信するようにホストコントローラ16にシグナリングする。
デバイス12は、UFS規格内の十分に裏付けされた規則に従って、転送要求を処理する。データ転送が行われ、データ転送が完了すると、ホストコントローラ16はドアベルレジスタ30におけるビットをクリアすることによってホストソフトウェア20に通知する。動作中、ホスト10は転送要求中断を受けることがある。ホストソフトウェア20はドアベルレジスタ30をチェックして、どのタスクが終了したか、どのスロットがすでに割り当てられているかを調べる。しかしながら、より多くの情報がなければ、ホストソフトウェア20は完了したタスク用にゼロにセットされたビットとまだ送信されていない要求用にゼロにセットされたビットを区別することができない。したがって、ホストソフトウェア20は、どのスロットが割り当てられているかを示す未解決要求変数(図示せず)を維持する。
未解決要求変数は、転送要求を送信する準備が始まると更新され、転送要求に対する応答がデバイス12から受信されるとクリアされる。ホストソフトウェア20は、どのスロットが完了した要求を有するかを知るために、未解決要求変数をドアベルレジスタ30と比較する。さらなる制御がなければ、UFSシステムは、エラー、遅延、中止されたコマンド、またはコマンドの損失を引き起こす競合状態を有する可能性がある。そのような2つの競合状態は、図2Aおよび図2Bに示されている。
この点について、図2Aは、プロセス34を通じて、未解決要求変数が更新される前に送信要求が動作を停止した場合に何が起こるかを示す。プロセス34はソフトウェアおよびハードウェアを含む異なる要素によって実施され得、別個の相異なる構成要素(たとえば、異なるサブルーチン、異なるソフトウェアモジュール、異なるICなど)であり得ることを諒解されたい。特に、上記で述べたように、図1のホストソフトウェア20がデバイス12に対する転送要求を準備すると、ホストソフトウェア20は、ドアベルレジスタ30において、転送要求が関連付けられたスロットに対応するビットを設定する(ブロック36)。何らかの他の転送要求を処理するか、または何らかの入来データを処理するホスト10に対応して、ホスト10のコンテキストが変わる(ブロック38)。デバイス12が転送要求を処理する(ブロック40)。デバイス12は、転送要求を処理するのにいくらかの時間を必要とすることがある。デバイス12が転送要求を処理している間に、スリープするための「送信コマンドプロセス」を送信するコンテキスト切替えが行われることがある。デバイス12が転送要求を完了すると、デバイス12は完了タスク通知を送信する。次いで、ホスト10が完了中断を発生させる(ブロック42)。この時点において、コンテキストが変わったので、未解決要求変数は一切更新されなかった。したがって、完了中断時に、ホスト10がドアベルレジスタ30をチェックし(ブロック44)、未解決要求変数を読み取る(ブロック46)。しかしながら、上記で述べたように、未解決要求変数が更新されなかったので、完了した要求は認識されず(ブロック48)、コマンドは中止されるか、またはタイムアウトになる(ブロック50)。
同様に、図2Bは、ドアベルレジスタ30を更新する前に未解決要求変数の更新が行われるプロセス52(上記で説明した、プロセス34で記載した競合状態を回避するために行われた順序の逆)を示す。プロセス52はソフトウェアおよびハードウェアを含む異なる要素によって実施されてよく、別個の異なる構成要素(たとえば、異なるサブルーチン、異なるソフトウェアモジュール、異なるICなど)であり得ることを諒解されたい。しかしながら、コマンドが完了してもエラーを伴う場合、プロセス52は別の競合状態を引き起こす(すなわち、2つのプロセスが同じリソースをめぐって競合している)。特に、プロセス52は、未解決要求変数が更新される時点で開始する(ブロック54)。別の転送要求に対する完了中断が発生する(ブロック56)。しかしながら、中断はドアベルレジスタ30を更新する前に生じる。したがって、ドアベルレジスタ30が読み取られる(ブロック58)とき、ビットは設定されない。しかしながら、未解決要求変数が読み取られる(ブロック60)とき、ホストソフトウェア20は転送要求を見て、完了した要求を認識する(ブロック62)。したがって、ホストソフトウェア20は要求を完了するが、エラーを伴う(ブロック64)。
従来のシステムは、ソフトウェアロックを使用することによって、これらの競合状態を防止する。ソフトウェアロックは待ち時間を増大させる。完全にするために、図3は、送信要求コンテキスト66および要求完了コンテキスト68に関連付けられたフロープロセスを示す。送信要求コンテキスト66に関連付けられたプロセスは、送信要求コンテキスト開始で始まる(ブロック70)。ホスト10がトランザクションデータを準備する(ブロック72)。次いで、ホストソフトウェア20がロックを設定し、中断を無効にする(ブロック74)。ソフトウェアが未解決要求変数を設定し(ブロック76)、次いでドアベルレジスタ30が設定される(ブロック78)。ドアベルレジスタ30が設定された後、ロックが無効になり、中断が有効になる(ブロック80)。ロックが取り外された後、送信要求コンテキストが終了する(ブロック82)。
引き続き図3を参照すると、要求完了コンテキスト68が開始する(ブロック84)。ホストコントローラ16がドアベルレジスタ30におけるビットをクリアする(ブロック85)。要求完了中断が生じ、ホストソフトウェア20によってロックが作成される(ブロック86)。ホスト10がホストソフトウェア20における未解決要求変数を読み取る(ブロック88)。次いで、ホスト10がドアベルレジスタ30を読み取り(ブロック90)、ドアベルレジスタ30および未解決要求変数を参照しながら、完了した要求を判断する(ブロック92)。完了した要求ごとに(ブロック94)、サブルーチンが実行され、ここにおいて、応答コードが読み取られ(ブロック96)、任意のエラーを処理し(ブロック98)、上位レイヤ(たとえば、まず第一に要求を発行したソフトウェア)に要求完了が通知される(ブロック100)。すべての完了した要求がブロック94において処理されると、未解決要求変数の対応するビットがクリアされ(ブロック101)、次いで、ホストソフトウェア20がロックを取り外して終了する(ブロック102)ことにより、要求完了コンテキストが終了する(ブロック104)。送信要求コンテキスト66と要求完了コンテキスト68の両方におけるロックの存在は、指定ロックされたシーケンスによって強調される(ブロック106)。
送信要求コンテキスト66および要求完了コンテキスト68のプロセスとは対照的に、本開示の態様はロックの排除を可能にし、それに伴う不利益を軽減する。この点について、図4は、コマンド完了レジスタ(UTRLCNR)32(時として、完了通知レジスタと呼ばれることがある)を含むホスト10'を示す。大半の他の要求では、ホスト10'は図1のホスト10と同一の要素を有することに留意されたい。ドアベルレジスタ30と同様に、コマンド完了レジスタ32はハードウェアベースであり、ホストコントローラ16によって扱われるスロットの数に等しいいくつかのビットを有する。すなわち、コマンド完了レジスタ32の使用により、ロックの代わりに、ハードウェアソリューションが可能になる。ハードウェアソリューションの使用により、どの時点であっても要求の送信および完了を開始することができる。複数のコンテキストを同時に動作させる能力は、特にマルチコアプロセッサの動作効率を改善する。
この点について、図5は、送信要求コンテキスト108および要求完了コンテキスト110を提供する。送信要求コンテキスト108が開始し(ブロック112)、ホストソフトウェア20がトランザクションデータを準備する(ブロック114)。ホストソフトウェア20がドアベルレジスタ30を設定し(ブロック116)、送信要求が終了する(ブロック118)。未解決要求に対してソフトウェア変数を設定する必要がないので、中断が生じることについての心配がない。
引き続き図5を参照すると、要求完了コンテキスト110が開始する(ブロック120)。最初に、ハードウェアがドアベルレジスタ30をクリアし、コマンド完了レジスタ32を設定する(ブロック122)。中断が生じる(ブロック124)。ホストソフトウェア20が、どのタスクが完了したかを確認するためにコマンド完了レジスタ32を読み取る(ブロック126)。完了したタスクごとに、サブルーチンが開始し(ブロック128)、ここにおいて、応答コードが読み取られ(ブロック130)、任意のエラーを処理し(ブロック132)、ホストソフトウェア20がコマンド完了レジスタ32をクリアする(ブロック134)。ホストソフトウェア20がコマンド完了レジスタ32をクリアした後、上位レイヤ(たとえば、要求を発行したソフトウェア)に要求完了が通知される(ブロック136)。クリアおよび通知の後、コマンド完了レジスタ32における、ビットに対応するスロットは、必要に応じてまたは定義された通りに反転され得る。すべての完了した要求が処理される(ブロック128)と、要求完了コンテキスト110が終了する(ブロック138)。(図3の106によって強調された)ロックが中断を無効にする時間期間とは対照的に、ブロック139は、どの時点であっても中断が生じ得ること、特に、従来のシステムがロックを課す時間の間に生じ得ることを強調する。上記で述べたように、ロックの排除は性能を改善し、新しいハードウェア(すなわち、コマンド完了レジスタ32)の追加は性能の改善に対する許容できるトレードオフと見なされる。
本明細書で開示する態様に従ってフラッシュメモリにおいてコマンド完了を確認することは、任意のプロセッサベースのデバイスで実現されるか、またはそれに組み込まれ得る。例として、限定はしないが、セットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、固定ロケーションデータユニット、モバイルロケーションデータユニット、モバイルフォン、セルラーフォン、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータモニタ、テレビジョン、チューナー、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、およびポータブルデジタルビデオプレーヤが含まれる。
この点について、図6は、図4に示すホスト10'およびデバイス12を用いることができる、プロセッサベースのシステム140の一例を示す。この例では、プロセッサベースのシステム140は、1つまたは複数のプロセッサ144を各々が含む1つまたは複数の中央処理装置(CPU)142を含む。CPU142はマスターデバイスであり得、ホスト10'を含み得る。CPU142は、一時記憶データへの高速アクセスのためにプロセッサ144に結合されたキャッシュメモリ146を有し得る。CPU142は、システムバス148に結合される。よく知られているように、CPU142は、システムバス148を介してアドレス情報、制御情報、およびデータ情報を交換することによって、これらの他のデバイスと通信する。たとえば、CPU142は、デバイス12を含み得るメモリシステム150にバストランザクション要求を通信することができる。図6には示さないが、複数のシステムバス148を設けてもよく、この場合、各システムバス148は異なるファブリックを構成する。
他のマスターデバイスおよびスレーブデバイスをシステムバス148に接続することができる。図6に示すように、これらのデバイスは、例として、複数のメモリユニット(詳細には図示していない)を有し得るメモリシステム150、1つまたは複数の入力デバイス152、1つまたは複数の出力デバイス154、1つまたは複数のネットワークインターフェースデバイス156、および1つまたは複数のディスプレイコントローラ158を含むことができる。入力デバイス152は、限定はしないが、入力キー、スイッチ、音声プロセッサなどを含む、任意のタイプの入力デバイスを含むことができる。出力デバイス154は、限定はしないが、音声、ビデオ、他の視覚インジケータなどを含む、任意のタイプの出力デバイスを含むことができる。ネットワークインターフェースデバイス156は、ネットワーク160との間のデータの交換を可能にするように構成された任意のデバイスとすることができる。ネットワーク160は、限定はしないが、ワイヤードネットワークまたはワイヤレスネットワーク、プライベートネットワークまたは公衆ネットワーク、ローカルエリアネットワーク(LAN)、ワイドローカルエリアネットワーク(WLAN)、およびインターネットを含む、任意のタイプのネットワークとすることができる。ネットワークインターフェースデバイス156は、所望の任意のタイプの通信プロトコルをサポートするように構成され得る。
CPU142はまた、システムバス148を介してディスプレイコントローラ158にアクセスして、1つまたは複数のディスプレイ162に送信される情報を制御するように構成され得る。ディスプレイコントローラ158は、1つまたは複数のビデオプロセッサ164を介して表示されることになる情報をディスプレイ162に送信し、ビデオプロセッサ164は、表示される情報を、ディスプレイ162に適したフォーマットとなるように処理する。ディスプレイ162は、限定はしないが、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイなどを含む、任意のタイプのディスプレイを含むことができる。
本明細書で開示する態様に関して説明する様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムは、電子ハードウェア、メモリもしくは別のコンピュータ可読媒体に記憶され、プロセッサもしくは他の処理デバイスによって実行される命令、または両方の組合せとして実装され得ることを当業者はさらに諒解するであろう。本明細書で説明するデバイスは、例として、どの回路、ハードウェア構成要素、集積回路(IC)、またはICチップ内でも用いられ得る。本明細書で開示するメモリは、任意のタイプおよびサイズのメモリとすることができ、所望の任意のタイプの情報を記憶するように構成され得る。
この互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップについて、概してそれらの機能に関して上記で説明した。そのような機能がどのように実装されるかは、特定の適用例、設計選択、および/または全体的なシステムに課された設計制約によって決まる。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装し得るが、そのような実装の決定は、本開示の範囲からの逸脱を生じるものと解釈すべきではない。
本明細書で開示する態様に関して説明する様々な例示的な論理ブロック、モジュール、および回路は、プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、または本明細書で説明する機能を実行するように設計されたそれらの任意の組合せで実装または実行され得る。プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成として実装され得る。
本明細書で開示する態様は、ハードウェアにおいて、また、ハードウェアに記憶された命令において具現化され得、たとえば、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読取り専用メモリ(ROM)、電気的プログラマブルROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野で知られている任意の他の形態のコンピュータ可読媒体に常駐し得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替として、記憶媒体は、プロセッサと一体化され得る。プロセッサおよび記憶媒体は、ASICに常駐し得る。ASICは、リモート局に常駐し得る。代替として、プロセッサおよび記憶媒体は、個別構成要素として、リモート局、基地局、またはサーバに常駐し得る。
本明細書の例示的な態様のいずれかで説明した動作ステップは、例および考察を提供するために説明されることにも留意されたい。説明した動作は、図示した順序以外の多くの異なる順序で実行され得る。さらに、単一の動作ステップにおいて説明した動作は、実際には、いくつかの異なるステップで実行され得る。加えて、例示的な態様において論じた1つまたは複数の動作ステップは、組み合わされてもよい。フローチャート図において図示した動作ステップは、当業者に容易に明らかとなるような多くの異なる修正を受けてもよいことを理解されたい。情報および信号は、様々な異なる技術および技法のいずれかを使用して表され得ることも、当業者には理解されよう。たとえば、上記の説明全体にわたって言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁性粒子、光場もしくは光学粒子、またはそれらの任意の組合せによって表され得る。
本開示の前述の説明は、いかなる当業者も本開示を作製または使用できるようにするために提供される。本開示に対する様々な修正形態が当業者には容易に明らかとなり、本明細書で定義する一般原理は、本開示の趣旨または範囲から逸脱することなく、他の変形形態に適用され得る。したがって、本開示は、本明細書で説明する例および設計に限定されるものではなく、本明細書で開示する原理および新規の特徴に合致する最も広い範囲を与えられるべきである。
10、10' ホスト
12 デバイス
14 導体
16 ホストコントローラ
18 通信インターフェース
20 ホストソフトウェア
22 コントローラ
24 通信インターフェース
26 メモリユニット
28 タスクキュー
30 ドアベルレジスタ
34 プロセス
52 プロセス
66 送信要求コンテキスト
68 要求完了コンテキスト
108 送信要求コンテキスト
110 要求完了コンテキスト
140 プロセッサベースのシステム
142 中央処理装置、CPU
144 プロセッサ
146 キャッシュメモリ
148 システムバス
150 メモリシステム
152 入力デバイス
154 出力デバイス
156 ネットワークインターフェースデバイス
158 ディスプレイコントローラ
160 ネットワーク
162 ディスプレイ
164 ビデオプロセッサ

Claims (26)

  1. ユニバーサルフラッシュストレージ(UFS)システムであって、
    UFS転送プロトコル(UTP)転送要求リスト(UTRL)に対応するいくつかのビットを有するドアベルレジスタと、
    同数のビットを有する完了通知レジスタと、
    前記ドアベルレジスタおよび前記完了通知レジスタに動作可能に結合される制御システムであって、
    送信要求開始のために前記ドアベルレジスタにおいてドアベルビットを設定し、
    転送要求完了時に前記完了通知レジスタにおいて完了ビットを設定し、
    転送要求完了時に前記ドアベルビットをクリアする
    ように構成された制御システムと
    を備えるUFSシステム。
  2. 前記制御システムが転送要求をデバイスに発行するようにさらに構成される、請求項1に記載のUFSシステム。
  3. 前記送信要求開始が前記転送要求に関連付けられる、請求項2に記載のUFSシステム。
  4. ホストをデバイスに結合するように構成された通信インターフェースをさらに備える、請求項1に記載のUFSシステム。
  5. 前記制御システムが、前記転送要求の完了を処理した後に、前記完了ビットをクリアするようにさらに構成される、請求項2に記載のUFSシステム。
  6. 前記制御システムが、前記完了ビットをクリアした後に、前記完了ビットに関連付けられたスロットを再利用するようにさらに構成される、請求項5に記載のUFSシステム。
  7. 前記転送要求が、データを前記デバイスに書き込むための書込みコマンドを含む、請求項2に記載のUFSシステム。
  8. 前記転送要求が、データを前記デバイスから読み取るための読取りコマンドを含む、請求項2に記載のUFSシステム。
  9. セットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、固定ロケーションデータユニット、モバイルロケーションデータユニット、モバイルフォン、セルラーフォン、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータモニタ、テレビジョン、チューナー、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、およびポータブルデジタルビデオプレーヤから成る群から選択されるデバイスに統合される、請求項1に記載のUFSシステム。
  10. メモリシステムであって、
    いくつかのビットを有するドアベルレジスタと、
    同数のビットを有する完了レジスタと、
    前記ドアベルレジスタおよび前記完了レジスタに動作可能に結合される制御システムであって、
    送信要求開始のために前記ドアベルレジスタにおいてドアベルビットを設定し、
    転送要求完了時に前記完了レジスタにおいて完了ビットを設定し、
    転送要求完了時に前記ドアベルビットをクリアする
    ように構成された制御システムと
    を備えるメモリシステム。
  11. メモリシステムを制御する方法であって、
    ホストにおいて転送要求を生成するステップと、
    前記転送要求を識別する前記ホスト内のドアベルレジスタにおいてビットを設定するステップと、
    通信インターフェースを通じて前記転送要求をデバイスに渡すステップと、
    前記転送要求に関連付けられた転送を完了するステップと、
    前記ドアベルレジスタにおける前記ビットをクリアするステップと、
    完了レジスタにおいて完了ビットを設定するステップと
    を備える方法。
  12. 前記転送要求を生成するステップが、データを前記デバイスから読み取るための読取りコマンドを生成するステップを備える、請求項11に記載の方法。
  13. 前記転送要求を生成するステップが、データを前記デバイスに書き込むための書込みコマンドを生成するステップを備える、請求項11に記載の方法。
  14. 前記転送を開始するステップをさらに備える、請求項11に記載の方法。
  15. ソフトウェアロックを必要とすることなしに、前記転送要求に対する中断を処理するステップをさらに備える、請求項11に記載の方法。
  16. 第2の転送要求によって生成された中断を受けるステップをさらに備える、請求項11に記載の方法。
  17. 前記転送要求の完了を処理した後に、前記完了ビットをクリアするステップをさらに備える、請求項11に記載の方法。
  18. 前記完了ビットをクリアした後に、前記完了ビットに関連付けられたスロットを再利用するステップをさらに備える、請求項17に記載の方法。
  19. 組み込みマルチメディアコントローラ(eMMC)メモリシステムであって、
    eMMCタスク記述子リスト(TDL)に対応するいくつかのビットを有するドアベルレジスタと、
    同数のビットを有する完了通知レジスタと、
    前記ドアベルレジスタおよび前記完了通知レジスタに動作可能に結合される制御システムであって、
    送信要求開始のために前記ドアベルレジスタにおいてドアベルビットを設定し、
    転送要求完了時に前記完了通知レジスタにおいて完了ビットを設定し、
    転送要求完了時に前記ドアベルビットをクリアする
    ように構成された制御システムと
    を備えるeMMCメモリシステム。
  20. 前記制御システムが転送要求をデバイスに発行するようにさらに構成される、請求項19に記載のeMMCシステム。
  21. 前記送信要求開始が前記転送要求に関連付けられる、請求項20に記載のeMMCシステム。
  22. ホストを前記デバイスに結合するように構成された通信インターフェースをさらに備える、請求項19に記載のeMMCシステム。
  23. 前記制御システムが、前記転送要求の完了を処理した後に、前記完了ビットをクリアするようにさらに構成される、請求項20に記載のeMMCシステム。
  24. 前記制御システムが、前記完了ビットをクリアした後に、前記完了ビットに関連付けられたスロットを再利用するようにさらに構成される、請求項23に記載のeMMCシステム。
  25. 前記転送要求が、データを前記デバイスに書き込むための書込みコマンドを含む、請求項20に記載のeMMCシステム。
  26. 前記転送要求が、データを前記デバイスから読み取るための読取りコマンドを含む、請求項20に記載のeMMCシステム。
JP2017092848A 2013-09-10 2017-05-09 フラッシュメモリにおけるコマンド完了の確認 Active JP6599397B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201361875907P 2013-09-10 2013-09-10
US61/875,907 2013-09-10
US14/467,404 US9348537B2 (en) 2013-09-10 2014-08-25 Ascertaining command completion in flash memories
US14/467,404 2014-08-25

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2016540914A Division JP6173603B2 (ja) 2013-09-10 2014-08-26 フラッシュメモリにおけるコマンド完了の確認

Publications (2)

Publication Number Publication Date
JP2017152041A true JP2017152041A (ja) 2017-08-31
JP6599397B2 JP6599397B2 (ja) 2019-10-30

Family

ID=52626699

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2016540914A Active JP6173603B2 (ja) 2013-09-10 2014-08-26 フラッシュメモリにおけるコマンド完了の確認
JP2017092848A Active JP6599397B2 (ja) 2013-09-10 2017-05-09 フラッシュメモリにおけるコマンド完了の確認

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2016540914A Active JP6173603B2 (ja) 2013-09-10 2014-08-26 フラッシュメモリにおけるコマンド完了の確認

Country Status (19)

Country Link
US (1) US9348537B2 (ja)
EP (2) EP4177764A1 (ja)
JP (2) JP6173603B2 (ja)
KR (1) KR101754545B1 (ja)
CN (1) CN105556497B (ja)
AU (1) AU2014318238B2 (ja)
BR (1) BR112016005368B1 (ja)
CA (1) CA2920748C (ja)
CL (1) CL2016000555A1 (ja)
HK (1) HK1222239A1 (ja)
MX (1) MX350915B (ja)
MY (1) MY177952A (ja)
NZ (1) NZ717400A (ja)
PH (1) PH12016500339B1 (ja)
RU (1) RU2016107810A (ja)
SA (1) SA516370693B1 (ja)
SG (1) SG11201600764RA (ja)
TW (1) TWI570568B (ja)
WO (1) WO2015038325A1 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9690720B2 (en) * 2014-06-03 2017-06-27 Qualcomm Incorporated Providing command trapping using a request filter circuit in an input/output virtualization (IOV) host controller (HC) (IOV-HC) of a flash-memory-based storage device
US9881680B2 (en) 2014-06-03 2018-01-30 Qualcomm Incorporated Multi-host power controller (MHPC) of a flash-memory-based storage device
US9632953B2 (en) * 2014-06-03 2017-04-25 Qualcomm Incorporated Providing input/output virtualization (IOV) by mapping transfer requests to shared transfer requests lists by IOV host controllers
RU2610681C1 (ru) * 2016-02-18 2017-02-14 Акционерное общество "Научно-исследовательский институт вычислительных комплексов им. М.А. Карцева" (АО "НИИВК им. М.А. Карцева") Способ сохранения информации в аварийных регистраторах
KR20180045103A (ko) * 2016-10-24 2018-05-04 삼성전자주식회사 적응형 인터럽트를 생성하는 데이터 저장 장치 및 그것의 동작 방법
US10452278B2 (en) 2017-03-24 2019-10-22 Western Digital Technologies, Inc. System and method for adaptive early completion posting using controller memory buffer
US10466903B2 (en) 2017-03-24 2019-11-05 Western Digital Technologies, Inc. System and method for dynamic and adaptive interrupt coalescing
US10725835B2 (en) 2017-05-03 2020-07-28 Western Digital Technologies, Inc. System and method for speculative execution of commands using a controller memory buffer
US10509569B2 (en) 2017-03-24 2019-12-17 Western Digital Technologies, Inc. System and method for adaptive command fetch aggregation
WO2018175059A1 (en) * 2017-03-24 2018-09-27 Western Digital Technologies, Inc. System and method for speculative execution of commands using the controller memory buffer
US10296249B2 (en) 2017-05-03 2019-05-21 Western Digital Technologies, Inc. System and method for processing non-contiguous submission and completion queues
KR20190051530A (ko) 2017-11-07 2019-05-15 에스케이하이닉스 주식회사 데이터 처리 시스템 및 데이터 처리 시스템의 동작 방법
JP6954864B2 (ja) 2018-04-13 2021-10-27 ルネサスエレクトロニクス株式会社 半導体装置およびufsシステム
KR102075689B1 (ko) * 2018-08-16 2020-02-10 주식회사 넥스트칩 태스크의 기능 안전을 보장하기 위한 방법 및 장치
WO2022021372A1 (zh) * 2020-07-31 2022-02-03 华为技术有限公司 一种处理器、ufs控制方法及计算机系统
KR20220105304A (ko) * 2021-01-20 2022-07-27 에스케이하이닉스 주식회사 시스템 및 시스템의 동작 방법
KR20220165128A (ko) 2021-06-07 2022-12-14 에스케이하이닉스 주식회사 메모리 시스템 및 데이터 처리 시스템
CN114296639B (zh) * 2021-12-10 2024-02-20 深圳大普微电子科技有限公司 命令处理方法及闪存设备
CN117012267B (zh) * 2023-06-30 2024-03-19 珠海妙存科技有限公司 对ufs所写入数据的验证方法、控制器及介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007058276A (ja) * 2005-08-22 2007-03-08 Shinsedai Kk マルチプロセッサ

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3783255A (en) * 1972-07-12 1974-01-01 Gte Automatic Electric Lab Inc Data handling system maintenance arrangement for processing system trouble conditions
US5870758A (en) * 1996-03-11 1999-02-09 Oracle Corporation Method and apparatus for providing isolation levels in a database system
US6353845B1 (en) * 1998-06-25 2002-03-05 International Business Machines Corporation Computer system, program product and method for tracking asynchronous I/O with timeout support
US6434637B1 (en) * 1998-12-31 2002-08-13 Emc Corporation Method and apparatus for balancing workloads among paths in a multi-path computer system based on the state of previous I/O operations
US6275876B1 (en) * 1999-05-21 2001-08-14 International Business Machines Corporation Specifying wrap register for storing memory address to store completion status of instruction to external device
US6587893B1 (en) 2000-04-28 2003-07-01 Hewlett-Packard Development Company, L.P. Method and apparatus to determine when all outstanding fetches are complete
US6341367B1 (en) * 2000-07-25 2002-01-22 Lsi Logic Corporation Hardware realized state machine
US7328304B2 (en) * 2004-02-27 2008-02-05 Intel Corporation Interface for a block addressable mass storage system
US7219178B2 (en) * 2004-09-30 2007-05-15 Arm Limited Bus deadlock avoidance
JP2006195746A (ja) * 2005-01-13 2006-07-27 Oki Electric Ind Co Ltd マルチレイヤバスシステム
US7853957B2 (en) 2005-04-15 2010-12-14 Intel Corporation Doorbell mechanism using protection domains
JP4814617B2 (ja) * 2005-11-01 2011-11-16 株式会社日立製作所 ストレージシステム
US7587543B2 (en) * 2006-01-23 2009-09-08 International Business Machines Corporation Apparatus, method and computer program product for dynamic arbitration control
GB2440758B (en) * 2006-08-08 2011-03-30 Advanced Risc Mach Ltd Interconnect logic for a data processing apparatus
US8156273B2 (en) * 2007-05-10 2012-04-10 Freescale Semiconductor, Inc. Method and system for controlling transmission and execution of commands in an integrated circuit device
US7657682B2 (en) * 2007-09-14 2010-02-02 Freescale Semiconductor, Inc. Bus interconnect with flow control
JP5502198B2 (ja) * 2009-07-10 2014-05-28 サーティコム コーポレーション デバイスのシリアライゼーションを実行するためのシステムおよび方法
US8549204B2 (en) * 2010-02-25 2013-10-01 Fresco Logic, Inc. Method and apparatus for scheduling transactions in a multi-speed bus environment
KR101466592B1 (ko) * 2010-06-18 2014-12-01 엘에스아이 코포레이션 스케일러블 스토리지 디바이스들
JP2012073851A (ja) * 2010-09-29 2012-04-12 Sony Corp バスシステムおよびそのデッドロック回避回路
TWI521343B (zh) * 2011-08-01 2016-02-11 Toshiba Kk An information processing device, a semiconductor memory device, and a semiconductor memory device
US8700834B2 (en) * 2011-09-06 2014-04-15 Western Digital Technologies, Inc. Systems and methods for an enhanced controller architecture in data storage systems
US9417821B2 (en) * 2011-09-30 2016-08-16 Intel Corporation Presentation of direct accessed storage under a logical drive model
US8301832B1 (en) * 2012-03-23 2012-10-30 DSSD, Inc. Storage system with guaranteed read latency
US8341342B1 (en) * 2012-03-23 2012-12-25 DSSD, Inc. Storage system with incremental multi-dimensional RAID
US8370567B1 (en) * 2012-03-23 2013-02-05 DSSD, Inc. Storage system with self describing data

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007058276A (ja) * 2005-08-22 2007-03-08 Shinsedai Kk マルチプロセッサ

Also Published As

Publication number Publication date
BR112016005368B1 (pt) 2022-09-27
CN105556497B (zh) 2017-11-07
MX2016002983A (es) 2016-06-02
SG11201600764RA (en) 2016-03-30
US20150074338A1 (en) 2015-03-12
CA2920748C (en) 2017-09-05
PH12016500339A1 (en) 2016-05-02
JP2016539429A (ja) 2016-12-15
TW201523267A (zh) 2015-06-16
CA2920748A1 (en) 2015-03-19
WO2015038325A1 (en) 2015-03-19
HK1222239A1 (zh) 2017-06-23
BR112016005368A2 (ja) 2017-08-01
JP6599397B2 (ja) 2019-10-30
SA516370693B1 (ar) 2018-10-04
RU2016107810A3 (ja) 2018-06-25
KR20160054494A (ko) 2016-05-16
KR101754545B1 (ko) 2017-07-19
MX350915B (es) 2017-09-25
EP4177764A1 (en) 2023-05-10
PH12016500339B1 (en) 2016-05-02
US9348537B2 (en) 2016-05-24
JP6173603B2 (ja) 2017-08-02
EP3044687A1 (en) 2016-07-20
CN105556497A (zh) 2016-05-04
AU2014318238B2 (en) 2017-06-08
RU2016107810A (ru) 2017-10-16
CL2016000555A1 (es) 2016-11-18
MY177952A (en) 2020-09-28
AU2014318238A1 (en) 2016-03-17
NZ717400A (en) 2017-06-30
TWI570568B (zh) 2017-02-11

Similar Documents

Publication Publication Date Title
JP6599397B2 (ja) フラッシュメモリにおけるコマンド完了の確認
JP6165342B2 (ja) エンベデッドメモリへのコマンドキューイングの提供
US20160371222A1 (en) COHERENCY DRIVEN ENHANCEMENTS TO A PERIPHERAL COMPONENT INTERCONNECT (PCI) EXPRESS (PCIe) TRANSACTION LAYER
US20150346795A1 (en) Multi-host power controller (mhpc) of a flash-memory-based storage device
CN108780387B (zh) 虚拟化环境中的存储资源管理
US9760515B2 (en) Shared control of a phase locked loop (PLL) for a multi-port physical layer (PHY)
TWI696068B (zh) 用於提供高效功率檔案系統操作至一非揮發性區塊記憶體之系統及方法
WO2021155491A1 (en) Data transfer with media transfer protocol (mtp) over universal serial bus (usb)
US11432303B2 (en) Method and apparatus for maximizing a number of connections that can be executed from a mobile application
JP2018505490A (ja) メモリ素子の分岐メモリ管理
JP2014154060A (ja) 冗長システム用サーバ

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170511

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170511

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180427

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180703

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181221

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190306

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191002

R150 Certificate of patent or registration of utility model

Ref document number: 6599397

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250