JP6544246B2 - 不揮発性ストレージおよび不揮発性ストレージの処理方法 - Google Patents

不揮発性ストレージおよび不揮発性ストレージの処理方法 Download PDF

Info

Publication number
JP6544246B2
JP6544246B2 JP2016006021A JP2016006021A JP6544246B2 JP 6544246 B2 JP6544246 B2 JP 6544246B2 JP 2016006021 A JP2016006021 A JP 2016006021A JP 2016006021 A JP2016006021 A JP 2016006021A JP 6544246 B2 JP6544246 B2 JP 6544246B2
Authority
JP
Japan
Prior art keywords
command
unit
access
determination unit
transfer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016006021A
Other languages
English (en)
Other versions
JP2017126256A (ja
Inventor
風間 哲
哲 風間
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2016006021A priority Critical patent/JP6544246B2/ja
Priority to US15/399,785 priority patent/US10268388B2/en
Publication of JP2017126256A publication Critical patent/JP2017126256A/ja
Application granted granted Critical
Publication of JP6544246B2 publication Critical patent/JP6544246B2/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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • 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
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

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)
  • Bus Control (AREA)

Description

本発明は、不揮発性ストレージおよび不揮発性ストレージの処理方法に関する。
コンピュータとハードディスク等のデバイスとを接続するインターフェースの規格の1つであるATA(Advanced Technology Attachment)では、DMA(Direct Memory Access)方式およびPIO(Programmed I/O)方式等の転送モードを有する。DMA方式は、CPU(Central Processing Unit)を介さずにデバイスとメモリとの間でデータ転送を実行する方式である。PIO方式は、CPUがデータ転送を制御する方式である。データ転送が連続する場合、CPUの負荷は、DMA方式のデータ転送の方がPIO方式のデータ転送に比べて、低減する。
なお、CPUによるアクセスを実行することなくPIO転送を連続して複数回実行するインターフェース制御装置が提案されている(例えば、特許文献1参照)。この種のインターフェース制御装置は、PIOコマンドを含む記述であるPIOスクリプトを複数有する情報を保持する保持手段と、PIOスクリプトを順番に処理する転送手段とを有する。
また、近年、NANDフラッシュメモリを搭載したSSD(solid state drive)等の不揮発性ストレージが普及している。
特開2005−242411号公報
SSDとともにシステムに搭載されるサーバ等のホスト装置は、SSDに対して読み出しまたは書き込み等を実行するコマンドを発行する。ホスト装置から発行されたコマンドは、SSD内の保持部に格納され、順番に処理される。
例えば、DMA方式でコマンドを転送するシステムでは、ホスト装置およびSSDの各々が保持部を有し、ホスト装置内の保持部に格納された複数のコマンドは、DMA方式のデータ転送により、SSD内の保持部に転送される。DMA方式では、複数のコマンドがCPUを介さずに連続して転送されるため、PIO方式に比べて、複数のコマンドの転送にかかる時間は短縮する。なお、1つのコマンドを転送する場合、DMA方式では、DMA要求等のDMAを開始するための処理がオーバーヘッドになり、PIO方式に比べて、1つのコマンドの転送にかかる時間は増加する。
1つの側面では、本件開示の不揮発性ストレージおよび不揮発性ストレージの処理方法は、ホスト装置から不揮発性ストレージに転送するコマンドの数に拘わらず、コマンドの転送にかかる時間を短縮することを目的とする。
一観点によれば、ホスト装置から受信するコマンドに基づいてアクセスされる不揮発性のデータ記憶部を有する不揮発性ストレージは、ホスト装置から受信するコマンドが、データ記憶部へのアクセスを制御するアクセスコマンドか、複数のアクセスコマンドの転送準備がホスト装置で整ったことを通知する転送準備完了コマンドかを判定するタイプ判定部と、タイプ判定部がホスト装置から転送準備完了コマンドを受信したと判定した場合、転送準備完了コマンドに基づいてダイレクトメモリアクセス要求をホスト装置に発行し、ダイレクトメモリアクセス要求に基づくダイレクトメモリアクセス転送によりホスト装置から複数のアクセスコマンドを取得するコマンド取得部と、タイプ判定部が受信したアクセスコマンドまたはコマンド取得部が取得したアクセスコマンドを保持するコマンド保持部と、コマンド保持部に保持されたアクセスコマンドに基づいてデータ記憶部にアクセスするアクセス制御部とを有する。
別の観点によれば、ホスト装置から受信するコマンドに基づいてアクセスされる不揮発性のデータ記憶部を有する不揮発性ストレージの処理方法では、不揮発性ストレージが有するタイプ判定部が、ホスト装置から受信するコマンドが、データ記憶部へのアクセスを制御するアクセスコマンドか、複数のアクセスコマンドの転送準備がホスト装置で整ったことを通知する転送準備完了コマンドかを判定し、不揮発性ストレージが有するコマンド取得部が、タイプ判定部がホスト装置から転送準備完了コマンドを受信したと判定した場合、転送準備完了コマンドに基づいてダイレクトメモリアクセス要求をホスト装置に発行し、ダイレクトメモリアクセス要求に基づくダイレクトメモリアクセス転送によりホスト装置から複数のアクセスコマンドを取得し、不揮発性ストレージが有するコマンド保持部が、タイプ判定部が受信したアクセスコマンドまたはコマンド取得部が取得したアクセスコマンドを保持し、不揮発性ストレージが有するアクセス制御部が、コマンド保持部に保持されたアクセスコマンドに基づいてデータ記憶部にアクセスする。
本件開示の不揮発性ストレージおよび不揮発性ストレージの処理方法は、ホスト装置から不揮発性ストレージに転送するコマンドの数に拘わらず、コマンドの転送にかかる時間を短縮できる。
不揮発性ストレージおよび不揮発性ストレージの処理方法の一実施形態を示す図である。 不揮発性ストレージおよび不揮発性ストレージの処理方法の別の実施形態を示す図である。 図2に示したCPUから不揮発性ストレージに発行されるコマンドの一例を示す図である。 図2に示したCPUの動作の一例を示す図である。 図2に示したタイプ判定部の動作の一例を示す図である。 図2に示したバッファ部およびコマンド取得部の動作の一例を示す図である。 図2に示したチャネル判定部の動作の一例を示す図である。 不揮発性ストレージおよび不揮発性ストレージの処理方法の別の実施形態を示す図である。 図8に示したタイプ判定部および停止判定部の動作の一例を示す図である。 図8に示した不揮発性ストレージの動作の一例を示す図である。 不揮発性ストレージおよび不揮発性ストレージの処理方法の別の実施形態を示す図である。
以下、実施形態について、図面を用いて説明する。
図1は、不揮発性ストレージおよび不揮発性ストレージの処理方法の一実施形態を示す。図1に示す不揮発性ストレージ100は、SSD等の不揮発性の記憶装置であり、ホスト装置200に接続される。先ず、ホスト装置200について説明する。
ホスト装置200は、例えば、CPU220とメモリ制御部240とDRAM(Dynamic Random Access Memory)260とを含むサーバ等の情報処理装置であり、不揮発性ストレージ100にアクセスするコマンドCMDを発行する。図1に示すコマンドCMDa(CMDa1、CMDa2)は、データ記憶部180へのアクセスを制御するアクセスコマンドである。なお、アクセスコマンドCMDa1は、アクセスコマンドCMDaのうち、CPU220からDRAM260を介さずに不揮発性ストレージ100に転送されるコマンドである。アクセスコマンドCMDa2は、アクセスコマンドCMDaのうち、CPU220からDRAM260を介して不揮発性ストレージ100に転送されるコマンドである。また、コマンドCMDb1は、複数のアクセスコマンドCMDa2の転送準備がホスト装置202で整ったことを通知する転送準備完了コマンドである。図1に示す例では、タイプ判定部120がホスト装置200から受信するコマンドCMD1は、CPU220からDRAM260を介さずに不揮発性ストレージ100に転送されるアクセスコマンドCMDa1および転送準備完了コマンドCMDb1等である。
例えば、CPU220は、不揮発性ストレージ100内のデータ記憶部180に対するアクセスの対象を示すアドレス等を含むアクセスコマンドCMDa1を、コマンドCMD1として不揮発性ストレージ100に出力する。以下、不揮発性ストレージ100内のデータ記憶部180に対するアクセスの対象を示すアドレスは、アクセス先のデータ記憶部180のアドレスとも称される。
また、例えば、CPU220は、DMA方式で複数のコマンドCMD2を不揮発性ストレージ100に転送する場合、アクセス先のデータ記憶部180のアドレス等を含む複数のアクセスコマンドCMDa2をメモリ制御部240を介してDRAM260に格納する。そして、CPU220は、コマンドCMDa2のDRAM260での格納先を示すアドレス、DMA方式でコマンドCMDa2を転送することを示す情報等を含む転送準備完了コマンドCMDb1を、コマンドCMD1として不揮発性ストレージ100に出力する。
メモリ制御部240は、DRAM260の動作を制御する。DRAM260の少なくとも一部の領域は、上述したように、不揮発性ストレージ100内のデータ記憶部180にアクセスするアクセスコマンドCMDa2を格納するキューに割り当てられる。なお、ホスト装置200の構成は、図1に示す例に限定されない。次に、不揮発性ストレージ100について説明する。
不揮発性ストレージ100は、タイプ判定部120と、コマンド取得部140と、コマンド保持部160と、アクセス制御部170と、データを記憶する不揮発性のデータ記憶部180とを有する。
タイプ判定部120は、ホスト装置200から受信するコマンドCMD1が、アクセスコマンドCMDa1か転送準備完了コマンドCMDb1かを判定する。例えば、タイプ判定部120は、CPU220から転送されたコマンドCMD1がDMA方式でコマンドCMDa2を転送することを示す情報を含む場合、コマンドCMD1が転送準備完了コマンドCMDb1であると判定する。そして、タイプ判定部120は、コマンドCMD1が転送準備完了コマンドCMDb1である場合、転送準備完了コマンドCMDb1をコマンド取得部140に転送する。
また、タイプ判定部120は、例えば、コマンドCMD1がDMA方式でコマンドCMDa2を転送することを示す情報を含まない場合、コマンドCMD1がアクセスコマンドCMDa1であると判定する。そして、タイプ判定部120は、コマンドCMD1がアクセスコマンドCMDa1である場合、すなわち、コマンドCMD1が転送準備完了コマンドCMDb1でない場合、コマンドCMD1をコマンド保持部160に転送する。これにより、アクセスコマンドCMDa1は、コマンド保持部160に格納される。以下、アクセスコマンドCMDaをCPU220からDRAM260を介さずに不揮発性ストレージ100内のコマンド保持部160に転送する方式は、PIO方式とも称される。
コマンド取得部140は、タイプ判定部120がホスト装置200から転送準備完了コマンドCMDb1を受信したと判定した場合、タイプ判定部120から転送される転送準備完了コマンドCMDb1を受ける。そして、コマンド取得部140は、転送準備完了コマンドCMDb1に基づいて、ダイレクトメモリアクセス要求DREQをホスト装置200のメモリ制御部240に発行する。以下、ダイレクトメモリアクセス要求は、DMA要求とも称される。
DMA要求DREQを受けたメモリ制御部240は、DRAM260に格納されたアクセスコマンドCMDa2のうち、DMA要求DREQで要求されたアクセスコマンドCMDa2をコマンド取得部140に転送する。これにより、コマンド取得部140は、転送準備完了コマンドCMDb1で指定されたアクセスコマンドCMDa2をホスト装置200から取得する。そして、コマンド取得部140は、ホスト装置200から取得したアクセスコマンドCMDa2をコマンド保持部160に転送する。これにより、アクセスコマンドCMDa2は、コマンド保持部160に格納される。
このように、コマンド取得部140は、タイプ判定部120がホスト装置200から転送準備完了コマンドCMDb1を受信したと判定した場合、転送準備完了コマンドCMDb1に基づいてDMA要求DREQをホスト装置200に発行する。そして、コマンド取得部140は、DMA要求DREQに基づくダイレクトメモリアクセス転送によりホスト装置200から複数のアクセスコマンドCMDa2を取得する。ダイレクトメモリアクセス転送は、DMA方式によるデータ転送である。以下、ダイレクトメモリアクセス転送は、DMA転送とも称される。
コマンド保持部160は、例えば、リングバッファ、FIFO(First-In First-Out)等のバッファであり、ホスト装置200から発行されたアクセスコマンドCMDaを格納するキューとして機能する。例えば、コマンド保持部160は、タイプ判定部120から転送されたアクセスコマンドCMDa1およびコマンド取得部140から転送されたアクセスコマンドCMDa2等を保持する。すなわち、コマンド保持部160は、タイプ判定部120が受信したアクセスコマンドCMDa1またはコマンド取得部140が取得したアクセスコマンドCMDa2を保持する。
アクセス制御部170は、コマンド保持部160に保持されたアクセスコマンドCMDaに基づいてデータ記憶部180にアクセスする。例えば、アクセス制御部170は、データ記憶部180からデータを読み出すアクセス、データ記憶部180にデータを書き込むアクセス、データ記憶部180に保持されたデータを消去するアクセス等を、アクセスコマンドCMDaに基づいて実行する。
データ記憶部180は、NANDフラッシュメモリ等の不揮発性のメモリであり、ホスト装置200等で扱うデータを記憶する。データ記憶部180は、コマンド保持部160に格納されたアクセスコマンドCMDaに基づいて制御される。すなわち、データ記憶部180は、ホスト装置200から受信するアクセスコマンドCMDaに基づいてアクセスされる。
このように、不揮発性ストレージ100は、DMA方式によるコマンド転送とPIO方式によるコマンド転送との両方に対応する。
ここで、DMA方式によるコマンド転送のみに対応した不揮発性ストレージを搭載したシステムでは、ホスト装置から不揮発性ストレージに1つのコマンドを転送する場合でも、DMA転送が実行される。この場合、DMA要求等のDMAを開始するための処理がオーバーヘッドになり、PIO方式を用いる場合に比べて、コマンドの転送にかかる時間は増加する。
また、PIO方式によるコマンド転送のみに対応した不揮発性ストレージを搭載したシステムでは、ホスト装置から不揮発性ストレージに複数のコマンドを連続して転送する場合、DMA方式を用いる場合に比べて、コマンドの転送にかかる時間は増加する。
なお、DMA方式とPIO方式とを切り替えるモード設定を予め実行することでDMA方式とPIO方式とを切り替える不揮発性ストレージでは、モード設定のための処理がオーバーヘッドになり、コマンドの転送にかかる時間が増加するおそれがある。
これに対し、図1に示す不揮発性ストレージ100とホスト装置200とを搭載したシステムは、DMA方式とPIO方式とを切り替えるモード設定を予め実行することなく、DMA方式とPIO方式とのいずれかを選択してコマンド転送を実行できる。
例えば、ホスト装置200が不揮発性ストレージ100に1つのコマンドCMDaを転送する場合、PIO方式によるコマンド転送を用いることにより、DMA方式によるコマンド転送を用いる場合に比べて、コマンドCMDaの転送にかかる時間を短縮できる。また、ホスト装置200が不揮発性ストレージ100に複数のコマンドCMDaを連続で転送する場合、DMA方式によるコマンド転送を用いることにより、PIO方式によるコマンド転送を用いる場合に比べて、コマンドCMDaの転送にかかる時間を短縮できる。このように、DMA方式とPIO方式のうち、コマンドCMDaの転送にかかる時間の短い方をホスト装置200が選択することにより、DMA方式とPIO方式との一方のみを使用する場合に比べて、コマンドCMDaの転送にかかる時間を短縮することができる。
また、不揮発性ストレージ100は、CPU220から転送されるコマンドCMD1がアクセスコマンドCMDa1か転送準備完了コマンドCMDb1かを判定することで、DMA方式によるコマンド転送かPIO方式によるコマンド転送かを判定する。このため、DMA方式とPIO方式とを予め切り替えるモード設定等のオーバーヘッドの発生を抑制することができる。
このように、不揮発性ストレージ100は、ホスト装置200から不揮発性ストレージ100内のデータ記憶部180に転送するコマンドCMDaの数に拘わらず、コマンドCMDaの転送にかかる時間を短縮可能である。
なお、不揮発性ストレージ100の構成は、図1に示す例に限定されない。例えば、不揮発性ストレージ100は、図2に示すように、複数のチャネルCHを有してもよい。この場合、コマンド保持部160、アクセス制御部170およびデータ記憶部180は、チャネルCH毎に設けられる。
以上、図1に示す実施形態では、不揮発性ストレージ100は、ホスト装置200内のCPU220から転送されたコマンドCMD1がアクセスコマンドCMDa1か転送準備完了コマンドCMDb1かを判定する。そして、不揮発性ストレージ100は、CPU220から転送されたコマンドCMD1がアクセスコマンドCMDa1である場合、CPU220から転送されたアクセスコマンドCMDa1をコマンド保持部160に格納する。また、不揮発性ストレージ100は、CPU220から転送されたコマンドCMD1が転送準備完了コマンドCMDb1である場合、ホスト装置200内のDRAM260に格納されたアクセスコマンドCMDa2を、DMA転送で取得する。そして、不揮発性ストレージ100は、DRAM260からDMA転送で取得したアクセスコマンドCMDa2を、コマンド保持部160に格納する。不揮発性ストレージ100がDMA方式とPIO方式との両方のコマンド転送に対応するため、ホスト装置200から不揮発性ストレージ100に転送するコマンドCMDaの数に拘わらず、コマンドCMDaの転送にかかる時間を短縮することができる。
図2は、不揮発性ストレージおよび不揮発性ストレージの処理方法の別の実施形態を示す。図1で説明した要素と同一または同様の要素については、同一または同様の符号を付し、これ等については、詳細な説明を省略する。図2に示す不揮発性ストレージ102は、SSD等の不揮発性の記憶装置であり、ホスト装置202に接続される。先ず、ホスト装置202について説明する。
ホスト装置202は、インターフェース部280が図1に示したホスト装置200に追加されることを除いて、図1に示したホスト装置200と同一または同様である。例えば、ホスト装置202は、CPU220とメモリ制御部240とDRAM260とインターフェース部280とを含むサーバ等の情報処理装置であり、不揮発性ストレージ102にアクセスするコマンドCMDを発行する。
インターフェース部280は、例えば、PCI(Peripheral Component Interconnect) Express規格(以下、PCIeとも称する)に準拠したインターフェースである。例えば、インターフェース部280は、不揮発性ストレージ102内のPCIeに準拠したインターフェース部110に接続される。これにより、例えば、CPU220、メモリ制御部240およびDRAM260等は、インターフェース部280、110を介して、不揮発性ストレージ102内のタイプ判定部120およびコマンド取得部140等との間のデータ転送を実行する。なお、ホスト装置202の構成は、図2に示す例に限定されない。次に、不揮発性ストレージ102について説明する。
図2に示す不揮発性ストレージ102では、図1に示したアクセス制御部170の代わりにコマンド発行部172が設けられ、インターフェース部110とバッファ部130とチャネル判定部150とが図1に示した不揮発性ストレージ100に追加される。また、不揮発性ストレージ102では、コマンド保持部160とコマンド発行部172とデータ記憶部180が、複数のチャネルCH(CH1、CH2、CH3、・・・、CHn)毎に設けられる。不揮発性ストレージ102のその他の構成は、図1に示した不揮発性ストレージ100と同一または同様である。
例えば、不揮発性ストレージ102は、インターフェース部110とタイプ判定部120とバッファ部130とコマンド取得部140とチャネル判定部150と複数のコマンド保持部160と複数のコマンド発行部172と複数のデータ記憶部180とを有する。インターフェース部110は、上述したように、PCI Express規格に準拠したインターフェースである。
タイプ判定部120は、図1に示したタイプ判定部120と同一または同様である。例えば、タイプ判定部120は、CPU220から転送されたコマンドCMD1を転送準備完了コマンドCMDb1と判定した場合、CPU220から転送されたコマンドCMD1、すなわち、転送準備完了コマンドCMDb1を、バッファ部130に転送する。すなわち、タイプ判定部120は、ホスト装置202から受信したコマンドCMD1が転送準備完了コマンドCMDb1である場合、ホスト装置202から受信した転送準備完了コマンドCMDb1をバッファ部130に格納する。
また、タイプ判定部120は、コマンドCMD1がアクセスコマンドCMDa1である場合、すなわち、コマンドCMD1が転送準備完了コマンドCMDb1でない場合、コマンドCMD1をチャネル判定部150に転送する。これにより、アクセスコマンドCMDa1は、チャネル判定部150に転送される。
バッファ部130は、例えば、FIFO等のバッファであり、タイプ判定部120から転送される転送準備完了コマンドCMDb1を保持する。そして、バッファ部130は、保持した転送準備完了コマンドCMDb1を、コマンド取得部140に転送する。なお、例えば、バッファ部130は、コマンド取得部140がアクセスコマンドCMDa2をDMA転送でDRAM260から取得する処理を実行中、転送準備完了コマンドCMDb1のコマンド取得部140への転送を待機する。すなわち、バッファ部130は、コマンド取得部140がアクセスコマンドCMDa2をDMA転送でDRAM260から取得する処理を実行していない場合、転送準備完了コマンドCMDb1をコマンド取得部140に転送する。
コマンド取得部140は、図1に示したコマンド取得部140と同一または同様である。例えば、コマンド取得部140は、バッファ部130から転送準備完了コマンドCMDb1を取得する。そして、コマンド取得部140は、転送準備完了コマンドCMDb1に基づいて、DMA要求DREQをホスト装置202内のメモリ制御部240に発行する。これにより、DRAM260に格納されたアクセスコマンドCMDa2のうち、DMA要求DREQで要求されたアクセスコマンドCMDa2は、コマンド取得部140にDMA転送される。コマンド取得部140は、DRAM260からDMA転送された複数のアクセスコマンドCMDa2をチャネル判定部150に順次転送する。
チャネル判定部150は、タイプ判定部120が受信したアクセスコマンドCMDa1またはコマンド取得部140が取得したアクセスコマンドCMDa2を受信する。すなわち、チャネル判定部150は、タイプ判定部120またはコマンド取得部140からアクセスコマンドCMDaを受信する。
例えば、チャネル判定部150は、タイプ判定部120またはコマンド取得部140から転送されたアクセスコマンドCMDaに基づいて、アクセス対象のデータ記憶部180に対応するチャネルCHを特定する。そして、チャネル判定部150は、特定したチャネルCHのコマンド保持部160に、タイプ判定部120またはコマンド取得部140から転送されたアクセスコマンドCMDaを格納する。
このように、チャネル判定部150は、タイプ判定部120またはコマンド取得部140から受信したアクセスコマンドCMDaに基づいて複数のチャネルCHのうちのいずれかを選択する。そして、チャネル判定部150は、アクセスコマンドCMDaに基づいて選択したチャネルCHのコマンド保持部160に、アクセスコマンドCMDaを格納する。
コマンド保持部160は、図1に示したコマンド保持部160と同一または同様である。例えば、コマンド保持部160は、ホスト装置202から発行されたアクセスコマンドCMDaを格納するキューとして機能する。
コマンド発行部172は、コマンド保持部160に保持されたアクセスコマンドCMDaに基づいてデータ記憶部180にアクセスするアクセス制御部の一例である。例えば、コマンド発行部172は、コマンド保持部160に保持されたアクセスコマンドCMDaを読み出し、読み出したアクセスコマンドCMDaをデータ記憶部180に発行する。これにより、データ記憶部180に対するアクセスがアクセスコマンドCMDaに基づいて実行される。例えば、データ記憶部180からデータを読み出すアクセス、データ記憶部180にデータを書き込むアクセス、データ記憶部180に保持されたデータを消去するアクセス等がアクセスコマンドCMDaに基づいて実行される。
データ記憶部180は、図1に示したデータ記憶部180と同一または同様である。例えば、データ記憶部180は、NANDフラッシュメモリ等の不揮発性のメモリであり、ホスト装置202等で扱うデータを記憶する。
なお、不揮発性ストレージ102の構成は、図2に示す例に限定されない。例えば、バッファ部130は、コマンド取得部140内に設けられてもよい。また、タイプ判定部120は、アクセスコマンドCMDa1を保持するFIFO等のバッファを有し、アクセスコマンドCMDa1をバッファを介してチャネル判定部150に転送してもよい。この場合、タイプ判定部120は、例えば、コマンド取得部140がアクセスコマンドCMDa2をDMA転送でDRAM260から取得する処理を実行中、アクセスコマンドCMDa1のチャネル判定部150への転送を待機する。
図3は、図2に示したCPU220から不揮発性ストレージ102に発行されるコマンドCMD1の一例を示す。
PIO方式でアクセスコマンドCMDaを転送する場合、コマンドCMD1としてアクセスコマンドCMDa1がCPU220から不揮発性ストレージ102に発行される(図3(a))。この場合、コマンドCMD1は、論理値”0”のフラグDFLGと、コマンド種別と、アクセス対象の領域を示すデータ記憶部180のアドレスと、アクセス対象の領域の大きさを示すサイズ情報とを有するアクセスコマンドCMDa1である。フラグDFLGは、例えば、コマンドCMD1の先頭ビットに割り当てられ、コマンドCMD1がアクセスコマンドCMDaである場合、論理値”0”に設定される。コマンド種別は、例えば、データを読み出すリードコマンド、データを書き込むプログラムコマンド、データを消去するイレースコマンド等を識別する識別情報である。
DMA方式でアクセスコマンドCMDaを転送する場合、コマンドCMD1として転送準備完了コマンドCMDb1がCPU220から不揮発性ストレージ102に発行される(図3(b))。この場合、コマンドCMD1は、論理値”1”のフラグDFLGと、アクセスコマンドCMDa2のDRAM260での格納先を示すアドレスと、転送対象のアクセスコマンドCMDa2のサイズを示すサイズ情報とを有する転送準備完了コマンドCMDb1である。フラグDFLGは、例えば、コマンドCMD1が転送準備完了コマンドCMDb1である場合、論理値”1”に設定される。したがって、タイプ判定部120は、フラグDFLGの値により、DMA方式かPIO方式かを判定する。
例えば、フラグDFLGは、コンピュータにSSDを接続するための通信規格の1つであるNVM Express(Non-Volatile Memory Express)規格のDoorbellに対応する。なお、コマンドCMD1のデータ構造は、図3に示す例に限定されない。
図4は、図2に示したCPU220の動作の一例を示す。なお、図4は、不揮発性ストレージ102にコマンドCMD1を発行する際のCPU220の動作を示す。また、CPU220の動作は、図4に示す例に限定されない。
ステップS100では、CPU220は、アクセスコマンドCMDaの転送方式としてDMA方式を選択するか否かを判定する。例えば、CPU220は、転送対象のコマンド数が予め設定された閾値以上の場合、アクセスコマンドCMDaの転送方式としてDMA方式を選択する。また、例えば、CPU220は、転送対象のコマンド数が予め設定された閾値未満の場合、アクセスコマンドCMDaの転送方式としてPIO方式を選択する。
この場合、閾値は、例えば、転送対象の全てのコマンドをDMA方式で転送するのにかかる時間が転送対象の全てのコマンドをPIO方式で転送するのにかかる時間より短くなるコマンド数の最小値である。なお、閾値は、ホスト装置202のユーザ等により任意の値に設定されもよい。
このように、CPU220は、DMA方式とPIO方式のうち、転送対象の全てのコマンドCMDaの転送にかかる時間の短い方を選択する。そして、CPU220は、アクセスコマンドCMDaの転送方式としてDMA方式を選択する場合、動作をステップS110に移す。一方、CPU220は、アクセスコマンドCMDaの転送方式としてDMA方式を選択しない場合、すなわち、アクセスコマンドCMDaの転送方式としてPIO方式を選択する場合、動作をステップS130に移す。
ステップS110では、CPU220は、メモリ制御部240を介してDRAM260に複数のアクセスコマンドCMDa2を格納する。アクセスコマンドCMDa2のデータ構造は、例えば、図3に示したアクセスコマンドCMDa1からフラグDFLGを省いたデータ構造と同一または同様である。
次に、ステップS120では、CPU220は、論理値”1”のフラグDFLGとDRAM260のアドレスとサイズ情報とを含むコマンドCMD1を不揮発性ストレージ102に発行する。例えば、CPU220は、図3に示した転送準備完了コマンドCMDb1をコマンドCMD1として不揮発性ストレージ102に発行する。これにより、不揮発性ストレージ102にコマンドCMD1を発行する際のCPU220の動作は、終了する。
ステップS130では、CPU220は、論理値”0”のフラグDFLGとコマンド種別とデータ記憶部180のアドレスとサイズ情報とを含むコマンドCMD1を不揮発性ストレージ102に発行する。例えば、CPU220は、図3に示したアクセスコマンドCMDa1をコマンドCMD1として不揮発性ストレージ102に発行する。これにより、不揮発性ストレージ102にコマンドCMD1を発行する際のCPU220の動作は、終了する。
図5は、図2に示したタイプ判定部120の動作の一例を示す。なお、タイプ判定部120の動作は、図5に示す例に限定されない。
ステップS200では、タイプ判定部120は、ホスト装置202内のCPU220から不揮発性ストレージ102に発行されたコマンドCMD1を、インターフェース部110を介して受信する。
次に、ステップS210では、タイプ判定部120は、CPU220から受信したコマンドCMD1のフラグDFLGが論理値”1”であるか否かを判定する。すなわち、タイプ判定部120は、CPU220から受信したコマンドCMD1が転送準備完了コマンドCMDb1であるか否かを判定する。これにより、タイプ判定部120は、アクセスコマンドCMDaがDMA方式で転送されるか否かを判定できる。
コマンドCMD1のフラグDFLGが論理値”1”である場合、タイプ判定部120の動作は、ステップS220に移る。一方、コマンドCMD1のフラグDFLGが論理値”1”でない場合、すなわち、コマンドCMD1のフラグDFLGが論理値”0”である場合、タイプ判定部120の動作は、ステップS230に移る。
ステップS220では、タイプ判定部120は、CPU220から受信したコマンドCMD1を、バッファ部130に転送する。すなわち、タイプ判定部120は、CPU220から受信した転送準備完了コマンドCMDb1を、バッファ部130に転送する。これにより、転送準備完了コマンドCMDb1がバッファ部130に格納される。なお、タイプ判定部120は、フラグDFLGを削除した転送準備完了コマンドCMDb1をバッファ部130に転送してもよいし、フラグDFLGを残した転送準備完了コマンドCMDb1をバッファ部130に転送してもよい。
ステップS230では、タイプ判定部120は、CPU220から受信したコマンドCMD1を、チャネル判定部150に転送する。すなわち、タイプ判定部120は、CPU220から受信したアクセスコマンドCMDa1を、チャネル判定部150に転送する。例えば、タイプ判定部120は、CPU220から受信したアクセスコマンドCMDa1のフラグDFLGを削除し、フラグDFLGを削除したアクセスコマンドCMDa1をチャネル判定部150に転送する。
図6は、図2に示したバッファ部130およびコマンド取得部140の動作の一例を示す。
ステップS300では、バッファ部130は、コマンド取得部140が転送準備完了コマンドCMDb1を受信可能なレディ状態であるか否かを判定する。例えば、バッファ部130は、コマンド取得部140がアクセスコマンドCMDa2のチャネル判定部150への転送を実行中であることを示すビジー信号を、コマンド取得部140から受信した場合、コマンド取得部140の状態をレディ状態でないと判定する。すなわち、バッファ部130は、ビジー信号がコマンド取得部140から出力されていない場合、コマンド取得部140の状態をレディ状態であると判定する。
コマンド取得部140がレディ状態である場合、バッファ部130の動作は、ステップS310に移る。一方、コマンド取得部140がレディ状態でない場合、バッファ部130の動作は、ステップS300に戻る。すなわち、バッファ部130は、コマンド取得部140がレディ状態になるまで、ステップS310の処理の実行を待機する。
ステップS310では、バッファ部130は、保持している転送準備完了コマンドCMDb1をコマンド取得部140に転送する。なお、バッファ部130が保持している転送準備完了コマンドCMDb1は、図5に示したステップS220でタイプ判定部120から転送されたコマンドCMD1である。転送準備完了コマンドCMDb1を受信したコマンド取得部140は、ステップS400、S410、S420、S430の処理を実行する。
例えば、ステップS400では、コマンド取得部140は、転送準備完了コマンドCMDb1をバッファ部130から受信し、ビジー信号をバッファ部130等に出力する。例えば、コマンド取得部140は、転送準備完了コマンドCMDb1をバッファ部130から受信した場合、ビジー信号をアサートする。
次に、ステップS410では、コマンド取得部140は、バッファ部130から転送された転送準備完了コマンドCMDb1に基づいて、DMA要求DREQをホスト装置202内のメモリ制御部240に発行する。例えば、コマンド取得部140は、転送準備完了コマンドCMDb1に含まれる情報のうちのDRAM260のアドレスおよびサイズ情報に基づいてDMA要求DREQを生成し、生成したDMA要求DREQをホスト装置202内のメモリ制御部240に発行する。
次に、ステップS420では、コマンド取得部140は、コマンド種別、データ記憶部180のアドレスおよびサイズ情報を含むアクセスコマンドCMDa2をホスト装置202から受信してチャネル判定部150に転送する。例えば、コマンド取得部140は、図4に示したステップS110でDRAM260に格納された複数のアクセスコマンドCMDa2を、ステップS410で発行したDMA要求DREQに基づくDMA転送によりホスト装置200から順次取得する。そして、コマンド取得部140は、ホスト装置200内のDRAM260からDMA転送により取得した複数のアクセスコマンドCMDa2を、チャネル判定部150に順次転送する。コマンド取得部140は、DMA要求DREQで要求した複数のアクセスコマンドCMDa2を全てチャネル判定部150に転送した後、ステップS430の処理を実行する。
ステップS430では、コマンド取得部140は、ビジー信号の出力を停止する。例えば、コマンド取得部140は、ビジー信号をネゲートする。
このように、転送準備完了コマンドCMDb1は、コマンド取得部140の動作状態に応じて、バッファ部130からコマンド取得部140に転送される。これにより、コマンド取得部140が転送準備完了コマンドCMDb1を受信可能でない状態のときに、転送準備完了コマンドCMDb1がコマンド取得部140に転送されることを抑制することができる。なお、タイプ判定部120からバッファ部130への転送準備完了コマンドCMDb1の転送は、コマンド取得部140の動作状態に拘わらず実行される。これにより、タイプ判定部120は、ホスト装置202から転送されるコマンドCMD1を効率よく受信できる。
なお、バッファ部130およびコマンド取得部140の動作は、図6に示す例に限定されない。例えば、コマンド取得部140は、バッファ部130に転送準備完了コマンドCMDb1が格納されていることを示す情報を受け、レディ状態のときに、バッファ部130から転送準備完了コマンドCMDb1を読み出してもよい。
図7は、図2に示したチャネル判定部150の動作の一例を示す。なお、チャネル判定部150の動作は、図7に示す例に限定されない。
ステップ500では、チャネル判定部150は、タイプ判定部120またはコマンド取得部140からアクセスコマンドCMDaを受信する。例えば、チャネル判定部150は、図5に示したステップS230でタイプ判定部120から転送されるアクセスコマンドCMDaを受信する。また、チャネル判定部150は、図6に示したステップS420でコマンド取得部140から転送されるアクセスコマンドCMDaを受信する。
次に、ステップ510では、チャネル判定部150は、ステップS500で受信したアクセスコマンドCMDaに含まれる情報のうちのデータ記憶部180のアドレスに対応するチャネルCHを特定する。そして、チャネル判定部150は、アクセスコマンドCMDaに基づいて特定したチャネルCHのコマンド保持部160に、アクセスコマンドCMDaを格納する。このように、チャネル判定部150は、ステップS500で受信したアクセスコマンドCMDaの格納先となるコマンド保持部160を、アクセスコマンドCMDaに含まれる情報のうちのデータ記憶部180のアドレスに基づいて選択する。これにより、アクセスコマンドCMDaは、アクセス対象のデータ記憶部180に対応するコマンド保持部160に格納される。
以上、図2から図7に示す実施形態においても、図1に示した実施形態と同様の効果を得ることができる。例えば、不揮発性ストレージ102内のタイプ判定部120は、ホスト装置202内のCPU220から転送されたコマンドCMD1がアクセスコマンドCMDa1か転送準備完了コマンドCMDb1かを判定する。そして、タイプ判定部120は、コマンドCMD1がアクセスコマンドCMDa1である場合、CPU220から転送されたアクセスコマンドCMDa1をチャネル判定部150に転送する。また、タイプ判定部120は、コマンドCMD1が転送準備完了コマンドCMDb1である場合、CPU220から転送された転送準備完了コマンドCMDb1をバッファ部130に格納する。
コマンド取得部140は、バッファ部130に保持された転送準備完了コマンドCMDb1を取得し、転送準備完了コマンドCMDb1に基づいて、DMA要求DREQをホスト装置202に発行する。そして、コマンド取得部140は、ホスト装置202内のDRAM260に格納されたアクセスコマンドCMDa2をDMA要求DREQに基づくDMA転送で取得し、取得したアクセスコマンドCMDa2をチャネル判定部150に転送する。
チャネル判定部150は、タイプ判定部120またはコマンド取得部140から受信したアクセスコマンドCMDaに基づいて複数のチャネルCHのうちのいずれかを選択し、選択したチャネルCHのコマンド保持部160にアクセスコマンドCMDaを格納する。このように、不揮発性ストレージ102は、DMA方式とPIO方式との両方のコマンド転送に対応する。このため、ホスト装置202から不揮発性ストレージ102に転送するコマンドCMDaの数に拘わらず、コマンドCMDaの転送にかかる時間を短縮することができる。
図8は、不揮発性ストレージおよび不揮発性ストレージの処理方法の別の実施形態を示す。図1から図7で説明した要素と同一または同様の要素については、同一または同様の符号を付し、これ等については、詳細な説明を省略する。図8に示す不揮発性ストレージ104は、SSD等の不揮発性の記憶装置であり、ホスト装置202に接続される。ホスト装置202は、図2に示したホスト装置202と同一または同様である。
不揮発性ストレージ104では、図2に示したタイプ判定部120およびバッファ部130の代わりにタイプ判定部122およびバッファ部112が設けられ、停止判定部124が図2に示した不揮発性ストレージ102に追加される。不揮発性ストレージ104のその他の構成は、図2に示した不揮発性ストレージ102と同一または同様である。
例えば、不揮発性ストレージ104は、インターフェース部110とバッファ部112とタイプ判定部122と停止判定部124とコマンド取得部140とチャネル判定部150とを有する。さらに、不揮発性ストレージ104は、図2に示した不揮発性ストレージ102と同様に、複数のチャネルCH毎に設けられた複数のコマンド保持部160と複数のコマンド発行部172と複数のデータ記憶部180とを有する。
インターフェース部110は、図2に示したインターフェース部110と同一または同様である。例えば、インターフェース部110は、PCI Express規格に準拠したインターフェースである。
バッファ部112は、例えば、FIFO等のバッファであり、ホスト装置202から受信するコマンドCMD1を保持し、保持したコマンドCMD1をタイプ判定部122に転送する。
タイプ判定部122は、停止判定部124から停止信号SSIGを受けている場合に、バッファ部112からのコマンドCMD1の読み出しを停止することを除いて、図2に示したタイプ判定部120と同一または同様である。
例えば、タイプ判定部122は、停止判定部124からの停止信号SSIGの出力が停止している場合に、バッファ部112からコマンドCMD1を取得する。そして、タイプ判定部122は、例えば、バッファ部112から取得したコマンドCMD1を転送準備完了コマンドCMDb1と判定した場合、コマンドCMD1、すなわち、転送準備完了コマンドCMDb1を、コマンド取得部140に転送する。すなわち、タイプ判定部122は、ホスト装置202からバッファ部112を介して受信したコマンドCMD1が転送準備完了コマンドCMDb1である場合、ホスト装置202から受信した転送準備完了コマンドCMDb1をコマンド取得部140に転送する。
また、タイプ判定部122は、コマンドCMD1がアクセスコマンドCMDa1である場合、すなわち、コマンドCMD1が転送準備完了コマンドCMDb1でない場合、コマンドCMD1をチャネル判定部150に転送する。これにより、アクセスコマンドCMDa1は、チャネル判定部150を介してコマンド保持部160に格納される。
停止判定部124は、バッファ部112に保持されたコマンドCMD1のタイプ判定部122への転送を停止するか否かを、コマンド取得部140の動作状態に基づいて判定する。例えば、停止判定部124は、コマンド取得部140がアクセスコマンドCMDa2のチャネル判定部150への転送を実行している場合、ビジー信号BSIGをコマンド取得部140から受ける。なお、ビジー信号BSIGは、コマンド取得部140がアクセスコマンドCMDa2のチャネル判定部150への転送を実行中であることを示す信号である。
停止判定部124は、ビジー信号BSIGを受信した場合、コマンド取得部140が転送準備完了コマンドCMDb1を受信可能なレディ状態でないと判定し、停止信号SSIGをタイプ判定部122に出力する。すなわち、停止信号SSIGは、コマンドCMD1のタイプ判定部122への転送を停止する信号である。例えば、停止判定部124は、ビジー信号BSIGがアサートされた場合、停止信号SSIGをアサートする。
また、停止判定部124は、コマンド取得部140からのビジー信号BSIGの出力が停止している場合、コマンド取得部140が転送準備完了コマンドCMDb1を受信可能なレディ状態であると判定し、停止信号SSIGの出力を停止する。例えば、停止判定部124は、ビジー信号BSIGがネゲートされた場合、停止信号SSIGをネゲートする。
このように、停止判定部124は、コマンド取得部140がアクセスコマンドCMDa2のコマンド保持部160への転送を実行中、バッファ部112に保持されたコマンドCMD1のタイプ判定部122への転送を停止すると判定する。
コマンド取得部140は、図2に示したコマンド取得部140と同一または同様である。例えば、コマンド取得部140は、タイプ判定部122から転送準備完了コマンドCMDb1を受信する。そして、コマンド取得部140は、転送準備完了コマンドCMDb1に基づいて、DMA要求DREQをホスト装置202内のメモリ制御部240に発行する。これにより、DRAM260に格納されたアクセスコマンドCMDa2のうち、DMA要求DREQで要求されたアクセスコマンドCMDa2は、コマンド取得部140にDMA転送される。コマンド取得部140は、DRAM260からDMA転送された複数のアクセスコマンドCMDa2をチャネル判定部150に順次転送する。これにより、複数のアクセスコマンドCMDa2は、チャネル判定部150を介してコマンド保持部160に格納される。
また、コマンド取得部140は、転送準備完了コマンドCMDb1をタイプ判定部122から受信した場合、ビジー信号BSIGを停止判定部124等に出力する。例えば、コマンド取得部140は、転送準備完了コマンドCMDb1をタイプ判定部122から受信した場合、ビジー信号BSIGをアサートする。そして、コマンド取得部140は、DMA転送で取得した複数のアクセスコマンドCMDa2を全てチャネル判定部150に転送した後に、ビジー信号BSIGの出力を停止する。例えば、コマンド取得部140は、DMA転送で取得した複数のアクセスコマンドCMDa2を全てチャネル判定部150に転送した後に、ビジー信号BSIGをネゲートする。
このように、コマンド取得部140は、DMA転送で取得した複数のアクセスコマンドCMDa2のチャネル判定部150への転送を実行している場合、ビジー信号BSIGを停止判定部124等に出力する。なお、コマンド取得部140の動作は、図6に示したコマンド取得部140の各ステップSの説明におけるバッファ部130をタイプ判定部120(但し、ビジー信号BSIGの出力先は停止判定部124)に読み替えることにより説明される。
チャネル判定部150、コマンド保持部160、コマンド発行部172およびデータ記憶部180は、図2に示したチャネル判定部150、コマンド保持部160、コマンド発行部172およびデータ記憶部180と同一または同様である。
なお、不揮発性ストレージ104の構成は、図8に示す例に限定されない。例えば、停止判定部124は、タイプ判定部122内に設けられてもよいし、バッファ部112内に設けられてもよい。あるいは、停止判定部124は、省かれてもよい。この場合、タイプ判定部122は、ビジー信号BSIGを停止信号SSIGとして、コマンド取得部140から受けてもよい。また、バッファ部112は、ビジー信号BSIGをコマンド取得部140から受け、コマンドCMD1のタイプ判定部122への転送を停止するか否かをビジー信号BSIGに基づいて判定してもよい。
図9は、図8に示したタイプ判定部122および停止判定部124の動作の一例を示す。なお、タイプ判定部122および停止判定部124の動作は、図9に示す例に限定されない。先ず、停止判定部124の動作を説明する。
ステップS600では、停止判定部124は、コマンド取得部140が転送準備完了コマンドCMDb1を受信可能なレディ状態であるか否かを判定する。例えば、停止判定部124は、ビジー信号BSIGをコマンド取得部140から受信した場合、コマンド取得部140の状態をレディ状態でないと判定する。すなわち、停止判定部124は、ビジー信号がコマンド取得部140から出力されていない場合、コマンド取得部140の状態をレディ状態であると判定する。
コマンド取得部140がレディ状態である場合、停止判定部124の動作は、ステップS610に移る。一方、コマンド取得部140がレディ状態でない場合、停止判定部124の動作は、ステップS620に移る。
ステップS610では、停止判定部124は、停止信号SSIGの出力を停止する。例えば、停止判定部124は、停止信号SSIGをネゲートする。
ステップS620では、停止判定部124は、停止信号SSIGをタイプ判定部122等に出力する。例えば、停止判定部124は、停止信号SSIGをアサートする。停止判定部124が停止信号SSIGを出力している場合、タイプ判定部122は、ステップS204、S210、S222、S230の処理の実行を待機する。次に、タイプ判定部122の動作を説明する。
ステップS202では、タイプ判定部122は、停止信号SSIGを停止判定部124から受信しているか否かを判定する。例えば、タイプ判定部122は、停止信号SSIGがアサートされているか否かを判定する。タイプ判定部122が停止信号SSIGを受信していない場合、タイプ判定部122の動作は、ステップS204に移る。一方、タイプ判定部122が停止信号SSIGを受信している場合、タイプ判定部122の動作は、ステップS202に戻る。すなわち、タイプ判定部122は、コマンド取得部140が転送準備完了コマンドCMDb1を受信可能なレディ状態になるまで、ステップS204の処理の実行を待機する。
ステップS204では、タイプ判定部122は、ホスト装置202内のCPU220から不揮発性ストレージ104に発行されたコマンドCMD1を、バッファ部112から取得する。
次に、ステップS210では、タイプ判定部122は、CPU220からバッファ部112を介して受信したコマンドCMD1のフラグDFLGが論理値”1”であるか否かを判定する。すなわち、タイプ判定部122は、CPU220からバッファ部112を介して受信したコマンドCMD1が転送準備完了コマンドCMDb1であるか否かを判定する。これにより、タイプ判定部122は、アクセスコマンドCMDaがDMA方式で転送されるか否かを判定できる。
コマンドCMD1のフラグDFLGが論理値”1”である場合、タイプ判定部122の動作は、ステップS222に移る。一方、コマンドCMD1のフラグDFLGが論理値”1”でない場合、すなわち、コマンドCMD1のフラグDFLGが論理値”0”である場合、タイプ判定部122の動作は、ステップS230に移る。
ステップS222では、タイプ判定部122は、CPU220からバッファ部112を介して受信したコマンドCMD1を、コマンド取得部140に転送する。すなわち、タイプ判定部122は、CPU220からバッファ部112を介して受信した転送準備完了コマンドCMDb1を、コマンド取得部140に転送する。なお、タイプ判定部122は、フラグDFLGを削除した転送準備完了コマンドCMDb1をコマンド取得部140に転送してもよいし、フラグDFLGを残した転送準備完了コマンドCMDb1をコマンド取得部140に転送してもよい。
ステップS230では、タイプ判定部122は、CPU220からバッファ部112を介して受信したコマンドCMD1を、チャネル判定部150に転送する。すなわち、タイプ判定部122は、CPU220からバッファ部112を介して受信したアクセスコマンドCMDa1を、チャネル判定部150に転送する。例えば、タイプ判定部122は、CPU220からバッファ部112を介して受信したアクセスコマンドCMDa1のフラグDFLGを削除し、フラグDFLGを削除したアクセスコマンドCMDa1をチャネル判定部150に転送する。
このように、タイプ判定部122は、コマンド取得部140が転送準備完了コマンドCMDb1を受信可能なレディ状態になるまで、バッファ部112からコマンドCMD1を取得する処理(ステップS204)の実行を待機する。これにより、タイプ判定部122は、コマンド取得部140がDRAM260に格納された複数のアクセスコマンドCMDa2をチャネル判定部150に転送している最中に、アクセスコマンドCMDa1をチャネル判定部150に転送することを防止できる。この結果、DMA方式で転送される複数のアクセスコマンドCMDa2がコマンド保持部160に格納されている最中に、PIO方式で転送されるアクセスコマンドCMDa1のコマンド保持部160への格納が割り込むことを防止することができる。
図10は、図8に示した不揮発性ストレージ104の動作の一例を示す。図10では、比較例として、図2に示した不揮発性ストレージ102の動作の一例を括弧内に示す。図10に示す例では、6個のアクセスコマンドCMDa2(CMDa21、CMDa22、CMDa23、CMDa24、CMDa25、CMDa26)がDMA転送され、コマンド保持部160に格納される。以下、DMA方式で転送される複数のアクセスコマンドCMDa2をコマンド保持部160に格納する処理は、DMA enqueueとも称される。また、PIO方式で転送されるアクセスコマンドCMDa1をコマンド保持部160に格納する処理は、PIO enqueueとも称される。
DMA enqueueでは、6個のアクセスコマンドCMDa21、CMDa22、CMDa23、CMDa24、CMDa25、CMDa26がコマンド保持部160に順次格納される。例えば、アクセスコマンドCMDa21、CMDa24は、この順でチャネルCH1のコマンド保持部160に格納され、アクセスコマンドCMDa22、CMDa25は、この順でチャネルCH2のコマンド保持部160に格納される。また、アクセスコマンドCMDa23、CMDa26は、この順でチャネルCH3のコマンド保持部160に格納される。なお、DMA enqueue中は、停止信号SSIGは、高論理レベルにアサートされる。
そして、アクセスコマンドCMDa24がコマンド保持部160に格納されるタイミングとほぼ同じタイミングで、アクセスコマンドCMDa1がバッファ部112に格納される(図10の破線の矩形)。アクセスコマンドCMDa1のバッファ部112からの読み出しは、停止信号SSIGがネゲートされるまで、待機される。すなわち、PIO enqueueは、停止信号SSIGがネゲートされるまで、待機される。そして、アクセスコマンドCMDa26がコマンド保持部160に格納され、停止信号SSIGがネゲートされたとき、アクセスコマンドCMDa1は、バッファ部112から読み出され、チャネルCH2のコマンド保持部160に格納される。
このように、DMA enqueue中のPIO enqueueの割り込みを許さない場合、アクセスコマンドCMDa22、CMDa25、CMDa1が、この順でチャネルCH2のコマンド保持部160に格納される。
したがって、チャネルCH1では、アクセスコマンドCMDa21、CMDa24に基づくデータの読み出し処理がアクセスコマンドCMDa21、CMDa24の順で実行される。なお、図10の括弧内に示すreadは、アクセスコマンドCMDa2がリードコマンドであることを示し、括弧内に示すprogramは、アクセスコマンドCMDa1がプログラムコマンドであることを示す。
また、チャネルCH2では、アクセスコマンドCMDa22、CMDa25に基づくデータの読み出し処理がアクセスコマンドCMDa22、CMDa25の順で実行される。そして、アクセスコマンドCMDa25に基づくデータの読み出し処理が終了した後、アクセスコマンドCMDa1に基づくデータの書き込み処理が実行される。
チャネルCH3では、アクセスコマンドCMDa23、CMDa26に基づくデータの読み出し処理がアクセスコマンドCMDa23、CMDa26の順で実行される。
図10に示す例では、単位時間をTとした場合、アクセスコマンドCMDa21−CMDa26の処理時間、すなわち、リードコマンドの処理時間は、19Tである。なお、DMA方式で転送されるアクセスコマンドCMDa2の処理時間は、転送対象のアクセスコマンドCMDa2のコマンド保持部160への格納開始から転送対象の全てのアクセスコマンドCMDa2に基づく処理の実行完了までの時間である。
また、アクセスコマンドCMDa1の処理時間、すなわち、プログラムコマンドの処理時間は、49Tである。なお、PIO方式で転送されるアクセスコマンドCMDa1の処理時間は、各アクセスコマンドCMDa1のバッファ部112への格納開始から各アクセスコマンドCMDa1に基づく処理の実行完了までの時間である。アクセスコマンドCMDa21−CMDa26の処理時間とアクセスコマンドCMDa1の処理時間との平均値を平均レイテンシとした場合、平均レイテンシは、34Tである。
なお、比較例は、DMA enqueue中のPIO enqueueの割り込みを許す。このため、比較例では、アクセスコマンドCMDa24がコマンド保持部160に格納されるタイミングとほぼ同じタイミングで、アクセスコマンドCMDa1がチャネルCH2のコマンド保持部160に格納される(図10の破線の矩形)。すなわち、アクセスコマンドCMDa1は、アクセスコマンドCMDa25がチャネルCH2のコマンド保持部160に格納される前に、チャネルCH2のコマンド保持部160に格納される。
したがって、DMA enqueue中のPIO enqueueの割り込みを許す場合、アクセスコマンドCMDa22、CMDa1、CMDa25が、この順でチャネルCH2のコマンド保持部160に格納される。このため、チャネルCH2では、アクセスコマンドCMDa22に基づくデータの読み出し処理が終了した後、アクセスコマンドCMDa1に基づくデータの書き込み処理が実行される。そして、アクセスコマンドCMDa1に基づくデータの書き込み処理が終了した後、アクセスコマンドCMDa25に基づくデータの読み出し処理が実行される。
この場合、アクセスコマンドCMDa21−CMDa26の処理時間、すなわち、リードコマンドの処理時間は、52Tである。また、アクセスコマンドCMDa1の処理時間、すなわち、プログラムコマンドの処理時間は、41Tである。なお、PIO方式で転送されるアクセスコマンドCMDa1の処理時間は、各アクセスコマンドCMDa1のコマンド保持部160への格納開始から各アクセスコマンドCMDa1に基づく処理の実行完了までの時間である。アクセスコマンドCMDa21−CMDa26の処理時間とアクセスコマンドCMDa1の処理時間との平均値である平均レイテンシは、46.5Tである。
このように、図10に示す例では、DMA enqueue中のPIO enqueueの割り込みを許さない場合、DMA enqueue中のPIO enqueueの割り込みを許す場合に比べて、平均レイテンシは小さくなる。したがって、不揮発性ストレージ104は、DMA転送される複数のアクセスコマンドCMDa2に基づく処理を並列に実行する場合等に、図2に示した不揮発性ストレージ102に比べて、処理速度を向上させることができる。
以上、図8から図10に示す実施形態においても、図1から図7に示した実施形態と同様の効果を得ることができる。例えば、不揮発性ストレージ104は、DMA方式とPIO方式との両方のコマンド転送に対応する。このため、ホスト装置202から不揮発性ストレージ104に転送するコマンドCMDaの数に拘わらず、コマンドCMDaの転送にかかる時間を短縮することができる。
さらに、タイプ判定部122は、コマンド取得部140がアクセスコマンドCMDa2のチャネル判定部150への転送を実行中、バッファ部112に保持されたコマンドCMD1の読み出しを停止する。これにより、DMA方式で転送される複数のアクセスコマンドCMDa2がコマンド保持部160に格納されている最中に、PIO方式で転送されるアクセスコマンドCMDa1がコマンド保持部160に格納されることを防止することができる。この結果、DMA方式で転送される複数のアクセスコマンドCMDa2に基づく処理が終了するまでの時間が増加することを抑制することができる。
図11は、不揮発性ストレージおよび不揮発性ストレージの処理方法の別の実施形態を示す。図1から図10で説明した要素と同一または同様の要素については、同一または同様の符号を付し、これ等については、詳細な説明を省略する。図11に示す不揮発性ストレージ106は、SSD等の不揮発性の記憶装置であり、ホスト装置202に接続される。ホスト装置202は、図8に示したホスト装置202と同一または同様である。なお、図11に示したホスト装置202内のCPU220は、図3に示したアクセスコマンドCMDa1に優先情報を付加したアクセスコマンドCMDa1を、不揮発性ストレージ106に発行する場合がある。優先情報は、転送準備完了コマンドCMDb1より優先して処理することを示す情報である。
不揮発性ストレージ106では、図8に示したタイプ判定部122の代わりにタイプ判定部120が設けられ、バイパス判定部114が図8に示した不揮発性ストレージ104に追加される。不揮発性ストレージ106のその他の構成は、図8に示した不揮発性ストレージ104と同一または同様である。
例えば、不揮発性ストレージ106は、インターフェース部110とバッファ部112とバイパス判定部114とタイプ判定部120と停止判定部124とコマンド取得部140とチャネル判定部150とを有する。さらに、不揮発性ストレージ106は、図8に示した不揮発性ストレージ104と同様に、複数のチャネルCH毎に設けられた複数のコマンド保持部160と複数のコマンド発行部172と複数のデータ記憶部180とを有する。
インターフェース部110およびバッファ部112は、図8に示したインターフェース部110およびバッファ部112と同一または同様である。
バイパス判定部114は、タイプ判定部120に転送するコマンドCMD1をバッファ部112から読み出し、バッファ部112から読み出したコマンドCMDが優先情報を含むか否かを判定する。そして、バイパス判定部114は、バッファ部112から読み出したコマンドCMD1が優先情報を含む場合、バッファ部112から読み出したコマンドCMD1を停止判定部124による判定結果に拘わらずタイプ判定部120に転送する。すなわち、バイパス判定部114は、バッファ部112から読み出したコマンドCMDが優先情報を含む場合、バッファ部112から読み出したコマンドCMD1を停止信号SSIGの状態に拘わらずタイプ判定部120に転送する。
また、バイパス判定部114は、バッファ部112から読み出したコマンドCMD1が優先情報を含まない場合、バッファ部112から読み出したコマンドCMD1のタイプ判定部120への転送を、停止判定部124による判定結果に基づいて実行する。例えば、バイパス判定部114は、バッファ部112から読み出したコマンドCMD1が優先情報を含まない場合、停止信号SSIGがアサートされている期間では、バッファ部112から読み出したコマンドCMD1のタイプ判定部120への転送を待機する。また、バイパス判定部114は、バッファ部112から読み出したコマンドCMD1が優先情報を含まない場合、停止信号SSIGがネゲートされていれば、バッファ部112から読み出したコマンドCMD1をタイプ判定部120に転送する。
このように、転送準備完了コマンドCMDb1より優先して処理することを示す優先情報を含むコマンドCMD1は、停止判定部124による判定結果に拘わらずタイプ判定部120に転送される。これにより、優先度が転送準備完了コマンドCMDb1より高いアクセスコマンドCMDa1に基づく処理が遅延することを抑制することができる。
タイプ判定部120は、図2に示したタイプ判定部120と同一または同様である。例えば、タイプ判定部120は、バイパス判定部114から転送されたコマンドCMD1が転送準備完了コマンドCMDb1である場合、転送準備完了コマンドCMDb1をコマンド取得部140に転送する。また、タイプ判定部120は、コマンドCMD1がアクセスコマンドCMDa1である場合、アクセスコマンドCMDa1をチャネル判定部150に転送する。
停止判定部124は、図8に示した停止判定部124と同一または同様である。なお、停止判定部124は、停止信号SSIGをバイパス判定部114に出力する。コマンド取得部140は、図8に示したコマンド取得部140と同一または同様である。また、チャネル判定部150、コマンド保持部160、コマンド発行部172およびデータ記憶部180は、図8に示したチャネル判定部150、コマンド保持部160、コマンド発行部172およびデータ記憶部180と同一または同様である。
なお、不揮発性ストレージ106の構成は、図11に示す例に限定されない。例えば、停止判定部124は、バイパス判定部114内に設けられてもよい。あるいは、停止判定部124は、省かれてもよい。この場合、バイパス判定部114は、ビジー信号BSIGを停止信号SSIGとして、コマンド取得部140から受けてもよい。
以上、図11に示す実施形態においても、図8から図10に示した実施形態と同様の効果を得ることができる。例えば、不揮発性ストレージ106は、DMA方式とPIO方式との両方のコマンド転送に対応する。このため、ホスト装置202から不揮発性ストレージ106に転送するコマンドCMDaの数に拘わらず、コマンドCMDaの転送にかかる時間を短縮することができる。また、バイパス判定部114は、コマンド取得部140がアクセスコマンドCMDa2のチャネル判定部150への転送を実行中、バッファ部112に保持されたコマンドCMD1のタイプ判定部122への転送を待機する。これにより、DMA方式で転送される複数のアクセスコマンドCMDa2に基づく処理が終了するまでの時間が増加することを抑制することができる。
さらに、バイパス判定部114は、転送準備完了コマンドCMDb1より優先して処理することを示す優先情報を含むコマンドCMD1を、停止判定部124による判定結果に拘わらず、タイプ判定部120に転送する。これにより、優先度が転送準備完了コマンドCMDb1より高いアクセスコマンドCMDa1に基づく処理が遅延することを抑制することができる。
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
100、102、104、106‥不揮発性ストレージ;110‥インターフェース部;112‥バッファ部;114‥バイパス判定部;120、122‥タイプ判定部;124‥停止判定部;130‥バッファ部;140‥コマンド取得部;150‥チャネル判定部;160‥コマンド保持部;170‥アクセス制御部;172‥コマンド発行部;180‥データ記憶部180;200、202‥ホスト装置;220‥CPU;240‥メモリ制御部;260‥DRAM;280‥インターフェース部

Claims (7)

  1. ホスト装置から受信するコマンドに基づいてアクセスされる不揮発性のデータ記憶部を有する不揮発性ストレージにおいて、
    前記ホスト装置から受信するコマンドが、前記データ記憶部へのアクセスを制御するアクセスコマンドか、複数のアクセスコマンドの転送準備が前記ホスト装置で整ったことを通知する転送準備完了コマンドかを判定するタイプ判定部と、
    前記タイプ判定部が前記ホスト装置から転送準備完了コマンドを受信したと判定した場合、転送準備完了コマンドに基づいてダイレクトメモリアクセス要求を前記ホスト装置に発行し、ダイレクトメモリアクセス要求に基づくダイレクトメモリアクセス転送により前記ホスト装置から複数のアクセスコマンドを取得するコマンド取得部と、
    前記タイプ判定部が受信したアクセスコマンドまたは前記コマンド取得部が取得したアクセスコマンドを保持するコマンド保持部と、
    前記コマンド保持部に保持されたアクセスコマンドに基づいて前記データ記憶部にアクセスするアクセス制御部と
    を有することを特徴とする不揮発性ストレージ。
  2. 請求項1に記載の不揮発性ストレージにおいて、
    転送準備完了コマンドを保持するバッファ部をさらに有し、
    前記タイプ判定部は、前記ホスト装置から受信したコマンドが転送準備完了コマンドである場合、前記ホスト装置から受信した転送準備完了コマンドを前記バッファ部に格納し、
    前記コマンド取得部は、前記バッファ部から転送準備完了コマンドを取得する
    ことを特徴とする不揮発性ストレージ。
  3. 請求項1に記載の不揮発性ストレージにおいて、
    前記ホスト装置から受信するコマンドを保持し、保持したコマンドを前記タイプ判定部に転送するバッファ部と、
    前記バッファ部に保持されたコマンドの前記タイプ判定部への転送を停止するか否かを、前記コマンド取得部の動作状態に基づいて判定する停止判定部と
    をさらに有することを特徴とする不揮発性ストレージ。
  4. 請求項3に記載の不揮発性ストレージにおいて、
    前記停止判定部は、前記コマンド取得部がアクセスコマンドの前記コマンド保持部への転送を実行中、前記バッファ部に保持されたコマンドの前記タイプ判定部への転送を停止すると判定する
    ことを特徴とする不揮発性ストレージ。
  5. 請求項3または請求項4に記載の不揮発性ストレージにおいて、
    前記タイプ判定部に転送するコマンドを前記バッファ部から読み出し、前記バッファ部から読み出したコマンドが、転送準備完了コマンドより優先して処理することを示す優先情報を含む場合、前記バッファ部から読み出したコマンドを前記停止判定部による判定結果に拘わらず前記タイプ判定部に転送し、前記バッファ部から読み出したコマンドが前記優先情報を含まない場合、前記バッファ部から読み出したコマンドの前記タイプ判定部への転送を、前記停止判定部による判定結果に基づいて実行するバイパス制御部をさらに有する
    ことを特徴とする不揮発性ストレージ。
  6. 請求項1ないし請求項5のいずれか1項に記載の不揮発性ストレージにおいて、
    前記タイプ判定部または前記コマンド取得部からアクセスコマンドを受けるチャネル判定部をさらに有し、
    前記コマンド保持部、前記アクセス制御部および前記データ記憶部は、複数のチャネル毎に設けられ、
    前記チャネル判定部は、前記タイプ判定部または前記コマンド取得部から転送されたアクセスコマンドに基づいて前記複数のチャネルのうちのいずれかを選択し、選択したチャネルの前記コマンド保持部に、前記タイプ判定部または前記コマンド取得部から転送されたアクセスコマンドを格納する
    ことを特徴とする不揮発性ストレージ。
  7. ホスト装置から受信するコマンドに基づいてアクセスされる不揮発性のデータ記憶部を有する不揮発性ストレージの処理方法において、
    前記不揮発性ストレージが有するタイプ判定部が、前記ホスト装置から受信するコマンドが、前記データ記憶部へのアクセスを制御するアクセスコマンドか、複数のアクセスコマンドの転送準備が前記ホスト装置で整ったことを通知する転送準備完了コマンドかを判定し、
    前記不揮発性ストレージが有するコマンド取得部が、前記タイプ判定部が前記ホスト装置から転送準備完了コマンドを受信したと判定した場合、転送準備完了コマンドに基づいてダイレクトメモリアクセス要求を前記ホスト装置に発行し、ダイレクトメモリアクセス要求に基づくダイレクトメモリアクセス転送により前記ホスト装置から複数のアクセスコマンドを取得し、
    前記不揮発性ストレージが有するコマンド保持部が、前記タイプ判定部が受信したアクセスコマンドまたは前記コマンド取得部が取得したアクセスコマンドを保持し、
    前記不揮発性ストレージが有するアクセス制御部が、前記コマンド保持部に保持されたアクセスコマンドに基づいて前記データ記憶部にアクセスする
    ことを特徴とする不揮発性ストレージの処理方法。
JP2016006021A 2016-01-15 2016-01-15 不揮発性ストレージおよび不揮発性ストレージの処理方法 Active JP6544246B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016006021A JP6544246B2 (ja) 2016-01-15 2016-01-15 不揮発性ストレージおよび不揮発性ストレージの処理方法
US15/399,785 US10268388B2 (en) 2016-01-15 2017-01-06 Access control method, storage device, and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016006021A JP6544246B2 (ja) 2016-01-15 2016-01-15 不揮発性ストレージおよび不揮発性ストレージの処理方法

Publications (2)

Publication Number Publication Date
JP2017126256A JP2017126256A (ja) 2017-07-20
JP6544246B2 true JP6544246B2 (ja) 2019-07-17

Family

ID=59314578

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016006021A Active JP6544246B2 (ja) 2016-01-15 2016-01-15 不揮発性ストレージおよび不揮発性ストレージの処理方法

Country Status (2)

Country Link
US (1) US10268388B2 (ja)
JP (1) JP6544246B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210060867A (ko) * 2019-11-19 2021-05-27 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US11507314B2 (en) * 2020-06-24 2022-11-22 Samsung Electronics Co., Ltd. Systems and methods for message queue storage

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5379381A (en) * 1991-08-12 1995-01-03 Stratus Computer, Inc. System using separate transfer circuits for performing different transfer operations respectively and scanning I/O devices status upon absence of both operations
TW276312B (ja) * 1992-10-20 1996-05-21 Cirrlis Logic Inc
US5805920A (en) * 1995-11-13 1998-09-08 Tandem Computers Incorporated Direct bulk data transfers
JP3477056B2 (ja) 1996-12-03 2003-12-10 松下電器産業株式会社 データ転送装置
JP4432533B2 (ja) 2004-02-24 2010-03-17 ソニー株式会社 インタフェース制御装置および方法、並びにプログラム
JP2005309847A (ja) * 2004-04-22 2005-11-04 Sharp Corp データ処理装置
WO2006134373A2 (en) * 2005-06-15 2006-12-21 Solarflare Communications Incorporated Reception according to a data transfer protocol of data directed to any of a plurality of destination entities
US7376762B2 (en) * 2005-10-31 2008-05-20 Sigmatel, Inc. Systems and methods for direct memory access
US8161353B2 (en) * 2007-12-06 2012-04-17 Fusion-Io, Inc. Apparatus, system, and method for validating that a correct data segment is read from a data storage device
KR20080105390A (ko) * 2007-05-30 2008-12-04 삼성전자주식회사 플래시 메모리에 사용되는 명령어들을 제어하는 방법 및장치
US8566507B2 (en) * 2009-04-08 2013-10-22 Google Inc. Data storage device capable of recognizing and controlling multiple types of memory chips
KR101988260B1 (ko) * 2012-09-14 2019-06-12 삼성전자주식회사 임베디드 멀티미디어 카드, 및 이의 동작 방법
CN104516840B (zh) * 2013-09-29 2017-08-29 联想(北京)有限公司 信息处理方法和信息处理设备
WO2015166540A1 (ja) * 2014-04-28 2015-11-05 株式会社日立製作所 ストレージ装置とそのデータ処理方法及びストレージシステム

Also Published As

Publication number Publication date
US20170206029A1 (en) 2017-07-20
JP2017126256A (ja) 2017-07-20
US10268388B2 (en) 2019-04-23

Similar Documents

Publication Publication Date Title
US9460763B2 (en) Holding by a memory controller multiple central processing unit memory access requests, and performing the multiple central processing unit memory request in one transfer cycle
US10453540B2 (en) Method and apparatus to prioritize read response time in a power-limited storage device
KR100708128B1 (ko) 낸드 플래시 메모리 제어 장치 및 방법
US8832333B2 (en) Memory system and data transfer method
TWI641952B (zh) 記憶體裝置、方法、及電腦程式產品
US6092127A (en) Dynamic allocation and reallocation of buffers in links of chained DMA operations by receiving notification of buffer full and maintaining a queue of buffers available
KR20160049200A (ko) 데이터 저장 장치의 작동 방법, 이를 포함하는 모바일 컴퓨팅 장치, 및 이의 작동 방법
US20150253992A1 (en) Memory system and control method
US10776042B2 (en) Methods for garbage collection and apparatuses using the same
CN110716691B (zh) 调度方法、装置、闪存设备和系统
US20080282016A1 (en) Method for expediting data access of universal serial bus stoarage device
CN109799959B (zh) 一种提高开放通道固态盘写并行性的方法
TWI685744B (zh) 指令處理方法及使用所述方法的儲存控制器
US10922013B2 (en) Suspending and resuming a read operation for a non-volatile memory
US6782463B2 (en) Shared memory array
US20100198998A1 (en) I/o controller and descriptor transfer method
JP6544246B2 (ja) 不揮発性ストレージおよび不揮発性ストレージの処理方法
TWI626540B (zh) 一般及垃圾回收的資料存取方法以及使用該方法的裝置
KR102526104B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
CN105612505B (zh) Cpu调度的方法和装置
US10346070B2 (en) Storage control apparatus and storage control method
US8756356B2 (en) Pipe arbitration using an arbitration circuit to select a control circuit among a plurality of control circuits and by updating state information with a data transfer of a predetermined size
TWI471731B (zh) 記憶體存取方法、記憶體存取控制方法、spi快閃記憶體裝置以及spi控制器
US9058113B2 (en) Storage region providing device, storage region providing method, and recording medium
JP2023137515A (ja) 半導体記憶装置

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7426

Effective date: 20170803

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20170803

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20170804

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20180214

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20180219

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20180219

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180912

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190426

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190603

R150 Certificate of patent or registration of utility model

Ref document number: 6544246

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150