JP2012027649A - Data storage device and data readout method - Google Patents
Data storage device and data readout method Download PDFInfo
- Publication number
- JP2012027649A JP2012027649A JP2010165070A JP2010165070A JP2012027649A JP 2012027649 A JP2012027649 A JP 2012027649A JP 2010165070 A JP2010165070 A JP 2010165070A JP 2010165070 A JP2010165070 A JP 2010165070A JP 2012027649 A JP2012027649 A JP 2012027649A
- Authority
- JP
- Japan
- Prior art keywords
- data
- read
- sequential
- memory
- 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.)
- Pending
Links
Images
Abstract
Description
本発明の実施形態は、不揮発性メモリを記憶媒体とするデータ記憶装置に関する。 Embodiments described herein relate generally to a data storage device using a nonvolatile memory as a storage medium.
近年、データ記憶装置として、書き換え可能な不揮発性メモリであるNAND型フラッシュメモリ(以下、単にフラッシュメモリと表記する場合がある)を記憶媒体とするSSD(solid state drive)の開発が推進されている。 In recent years, development of an SSD (solid state drive) using a NAND-type flash memory (hereinafter sometimes simply referred to as a flash memory) as a data storage device as a storage medium has been promoted. .
SSDは、フラッシュメモリから読み出されたデータを、DRAMなどの揮発性メモリからなるバッファメモリに転送し、このバッファメモリからホストシステム(以下、単にホストと表記する場合がある)に転送する。ここで、フラッシュメモリは、バッファメモリと比較して、動作速度(アクセス速度)が低速である。この動作速度差を補償するために、SSDでは、フラッシュメモリを構成する複数のフラッシュメモリ素子に対して並列にアクセスする並列処理が行なわれている。 The SSD transfers data read from the flash memory to a buffer memory composed of a volatile memory such as a DRAM, and transfers the data from the buffer memory to a host system (hereinafter sometimes simply referred to as a host). Here, the flash memory has a lower operation speed (access speed) than the buffer memory. In order to compensate for this difference in operating speed, the SSD performs parallel processing for accessing a plurality of flash memory elements constituting the flash memory in parallel.
SSDは、並列処理を実行しているため、ホストからシーケンシャルライトを指示するライトコマンドを受けると、フラッシュメモリにデータを並列にライトする処理を実行する。このため、フラッシュメモリでは、データのシーケンシャル性が失われた状態となる。 Since the SSD executes parallel processing, when it receives a write command instructing sequential write from the host, it executes processing to write data to the flash memory in parallel. For this reason, the flash memory is in a state where the data sequentiality is lost.
このようにフラッシュメモリにライトされたデータをシーケンシャルリード処理により読み出す場合、フラッシュメモリから並列にアクセスされたデータは、ランダムにバッファメモリに転送される。即ち、フラッシュメモリから並列に読み出されるデータの順番は、不定である。このため、SSDのマイクロプロセッサ(ファームウェア)は、フラッシュメモリからバッファメモリへのデータ転送とバッファメモリからホストへのデータ転送とを確認し、シーケンシャルリード処理によるデータ転送の制御を実行するという高負荷の処理を実行している。 When data written to the flash memory is read by sequential read processing, data accessed in parallel from the flash memory is randomly transferred to the buffer memory. That is, the order of data read in parallel from the flash memory is indefinite. For this reason, the SSD microprocessor (firmware) checks the data transfer from the flash memory to the buffer memory and the data transfer from the buffer memory to the host, and executes control of data transfer by sequential read processing. Processing is being executed.
本発明の目的は、シーケンシャルリード処理でのデータ転送の効率を図ることができるデータ記憶装置を提供することにある。 An object of the present invention is to provide a data storage device capable of improving the efficiency of data transfer in sequential read processing.
実施形態によれば、データ記憶装置は、メモリコントローラと、バッファメモリと、リードコントローラとを具備する。メモリコントローラは、ホストからのリードコマンドに基づいて、フラッシュメモリから並列にデータをアクセスする。バッファメモリは、前記メモリコントローラにより前記フラッシュメモリから読み出されたデータを格納する。リードコントローラは、前記リードコマンドがシーケンシャルリード処理を指示する場合には、前記フラッシュメモリから読み出されたデータを、シーケンシャル番号で指示される順番に基づいて前記バッファメモリと前記ホスト間のシーケンシャルデータ転送を制御する。 According to the embodiment, the data storage device includes a memory controller, a buffer memory, and a read controller. The memory controller accesses data in parallel from the flash memory based on a read command from the host. The buffer memory stores data read from the flash memory by the memory controller. When the read command instructs sequential read processing, the read controller transfers the data read from the flash memory based on the order indicated by the sequential number between the buffer memory and the host. To control.
以下図面を参照して、実施形態を説明する。 Embodiments will be described below with reference to the drawings.
[データ記憶装置の構成]
図1は、実施形態のデータ記憶装置の構成を示すブロック図である。
[Configuration of data storage device]
FIG. 1 is a block diagram illustrating a configuration of a data storage device according to the embodiment.
図1に示すように、実施形態のデータ記憶装置はSSD(solid state drive)であり、NAND型フラッシュメモリ(以下単にフラッシュメモリ)17をデータ記憶媒体とする記憶装置である。 As shown in FIG. 1, the data storage device of the embodiment is an SSD (solid state drive), and is a storage device using a NAND flash memory (hereinafter simply referred to as a flash memory) 17 as a data storage medium.
フラッシュメモリ17は、複数のNAND型メモリモジュール(フラッシュメモリ素子)17-0〜17-nから構成されている。各メモリモジュール17-0〜17-nは、それぞれチャネルCH0〜CHnが割り当てられて、チャネルCH0〜CHnに対応する複数のメモリコントローラ11-0〜11-nにより並列にアクセス(リード/ライト)される。
The
バッファマネージャモジュール12は、各メモリコントローラ11-0〜11-nによりフラッシュメモリ17から読み出されたデータをバッファメモリ14に転送する。バッファマネージャモジュール12はアービタ(arbiter)13により、チャネルCH0〜CHn毎のデータの転送を調停する。
The
バッファメモリ14は、DRAM(dynamic random access memory)からなるキャッシュメモリに相当し、フラッシュメモリ17から読み出されたデータを格納する。バッファメモリ14に格納されたデータは、ホストインターフェースコントローラ(ホストI/Fコントローラ)15に転送される。これにより、バッファメモリ14は、フラッシュメモリ17とホストI/Fコントローラ15間のデータ転送の効率を高めることになる。
The
ホストI/Fコントローラ15は、バッファメモリ14とホストシステム30との間でのデータやコマンドの転送を制御する。ホストシステム(以下単にホストと表記する)30は、例えばパーソナルコンピュータである。
The host I /
さらに、本実施形態のSSDは、マイクロプロセッサ(MPU)10及びシーケンシャルリードコントローラ(以下単にリードコントローラと表記する)16とを有する。MPU10は、ファームウェア(FW)とも呼ばれており、ホスト30からのコマンド(リードコマンドやライトコマンド)を解読し、このコマンドに応じた制御を実行する。
Further, the SSD according to the present embodiment includes a microprocessor (MPU) 10 and a sequential read controller (hereinafter simply referred to as a read controller) 16. The MPU 10 is also called firmware (FW), decodes a command (read command or write command) from the
具体的には、MPU10は、ホスト30からのリードコマンドに応じて、データのリード動作に必要なコマンドをメモリコントローラ11-0〜11-nに出力する。また、MPU10は、ホスト30からのライトコマンドに応じて、データのライト動作に必要なコマンドをメモリコントローラ11-0〜11-nに出力する。
Specifically, the
リードコントローラ16は、MPU10によりコマンドに付加されたシーケンシャル情報(タグ情報)に基づいて、シーケンシャルリード処理を制御するハードウェアモジュールである。シーケンシャル情報は、後述するシーケンシャルリード処理で必要なシーケンシャル番号とセクタ数を含む。即ち、シーケンシャル番号は、フラッシュメモリ17から読み出されたデータをシーケンシャルに転送するための順番を示す情報である。セクタ数は、シーケンシャルに転送するデータのサイズを示す情報である。リードコントローラ16は、シーケンシャル番号に基づいて、バッファメモリ14からホスト30に対して、先頭から順番にデータを転送するように制御する。
The
図2に示すように、リードコントローラ16は、シーケンシャルセクタカウンタ(以下、単にセクタカウンタと表記する)20と、シーケンシャル情報を格納するメモリ21と、選択モジュール22と、コンペアモジュール23と、シーケンシャル番号カウンタ24と、基準コンペアモジュール25とを有する。セクタカウンタ20は、順番にデータを転送するときに、転送データ量及びバッファメモリ14の残存データ量を監視するためのカウンタである。
As shown in FIG. 2, the
[データ記憶装置の動作]
以下、図1から図6を参照して、実施形態のデータ記憶装置の動作を説明する。
[Operation of data storage device]
The operation of the data storage device according to the embodiment will be described below with reference to FIGS.
まず、図6のフローチャートに示すように、SSDは、ホストI/Fコントローラ15を介してホスト30からコマンドを受信すると、MPU10に転送する(ブロック600)。MPU10はコマンドを解読し、リードコマンドであればデータのリード動作を実行するように制御する。また、MPU10は、ライトコマンドであればデータのライト動作を実行するように制御する。ホスト30からのコマンドにより、アクセス対象の論理ブロックアドレス(LBA)及びデータサイズが指定される。
First, as shown in the flowchart of FIG. 6, when the SSD receives a command from the
本実施形態では、MPU10は、ホスト30からのリードコマンドがシーケンシャルリード処理を要求するコマンドであるか否かを判定する(ブロック601)。シーケンシャルリードとは、リードコマンドで指定されるアクセス対象のLBAが、例えば所定のセクタ(物理アドレス)数分以上で、番号が連続するLBA(連続LBA)の場合である。なお、MPU10は、ホスト30からのリードコマンドがシーケンシャルリードではない場合、通常のリード動作の制御を実行する(ブロック601のNO)。
In the present embodiment, the
図3に示すように、本実施形態では、ホスト30からのリードコマンドで、例えば連続するLBA0〜63のデータを読み出すシーケンシャルリード処理が要求された場合を想定する。ここでは、フラッシュメモリ17の各チャネルCH0〜CH7に対応するメモリモジュール17-0〜17-7には、図3に示すように、8セクタ分毎のデータが分散されて格納されているとする。
As shown in FIG. 3, in the present embodiment, it is assumed that a sequential read process for reading, for example, continuous LBA 0 to 63 data is requested by a read command from the
通常では、SSDは、フラッシュメモリ17に対してクラスタ(cluster)単位でのデータのアクセス(リード又はライト)を実行する。1クラスタは、物理的なアクセス単位のセクタで、例えば8セクタ分に相当するデータサイズである。
Normally, the SSD executes data access (read or write) in units of clusters to the
ここで、図示しないハードウェアモジュールは、リードコマンドで指定されるアクセス対象のLBAを、フラッシュメモリ17をアクセスするための物理アドレスに変換する(ブロック602)。物理アドレスとは、フラッシュメモリ17のチャネル、ブロック(セクタ)、ページからなる。
Here, a hardware module (not shown) converts the access target LBA specified by the read command into a physical address for accessing the flash memory 17 (block 602). The physical address includes a channel, a block (sector), and a page of the
MPU10は、チャネルCH0〜CH7に対応するメモリコントローラ11-0〜11-7にコマンド(リード)100を発行する(ブロック603)。MPU10は、シーケンシャルリード処理で転送するデータの順番を示すシーケンシャル番号をコマンド100に付加する。メモリコントローラ11-0〜11-7は、対応するチャネルCH0〜CH7のメモリモジュール17-0〜17-7から、指定された物理アドレスのデータを読み出して、バッファマネージャモジュール12に転送する。
The
バッファマネージャモジュール12は、バッファメモリ14を制御し、メモリモジュール17-0〜17-7から並列に読み出されたデータをバッファメモリ14に転送する(ブロック604)。このとき、バッファマネージャモジュール12は、メモリモジュール17-0〜17-7からバッファメモリ14にセクタ単位のデータが完了する度に、セクタ転送完了及びコマンドに付加されたシーケンシャル番号を通知する通知情報120を、リードコントローラ16に発行する。
The
次に、図2、図4、図5を参照して、リードコントローラ16の処理を説明する。
Next, processing of the read
先ず、リードコントローラ16は、図2に示すように、チャネルCH0〜CH7毎のセクタ転送完了とシーケンシャル番号の通知情報120-0〜120-7を受信する。リードコントローラ16は、受信したシーケンシャル番号#0〜#7とそれに対するセクタ数(ここでは8セクタ)をカウントし、それらを一旦メモリ21のチャネルCH0〜CH7毎の記憶領域21-0〜21-7に格納する。
First, as shown in FIG. 2, the
一方、リードコントローラ16は、セクタカウンタ20のカウント対象であるシーケンシャル番号を設定するためにシーケンシャル番号カウンタ24のカウントを起動させる。コンペアモジュール23は、シーケンシャル番号カウンタ24のカウント値(例えば#0)と、メモリ21に格納されているシーケンシャル番号とを比較する。選択モジュール22は、コンペアモジュール23により一致がとれたシーケンシャル番号(例えば#0)の記憶領域(ここでは21-0)からセクタ数220をセクタカウンタ20に設定する。
On the other hand, the
セクタカウンタ20は、設定されたセクタ数分のインクリメントを実行する(ブロック605)。ここで、図4(A)に示すように、バッファメモリ14には、例えばチャネルCH0からシーケンシャル番号#0の4セクタ分のデータ41の転送が完了して格納されているとする。シーケンシャル番号#0の4セクタ分のデータ41は、例えばLBA0〜3の4セクタ分である。また、バッファメモリ14には、例えばチャネルCH3からシーケンシャル番号#3の8セクタ分のデータ42の転送が完了して格納されているとする。
The
なお、バッファメモリ14において、各LBAに対するスタートアドレス40は、フラッシュメモリ17からバッファメモリ14に転送するためのコマンドを発行するときに、バッファマネージャモジュール12により指定される。
In the
このような状態の場合に、図4(B)に示すように、セクタカウンタ20は、4セクタ分のデータ41の転送完了に応じてカウント値4までインクリメントを実行する。なお、例えば8セクタ分のデータ42が転送完了している場合でも、これにより前のシーケンシャル番号のデータの転送が完了していないため、セクタカウンタ20にはセクタ数の更新はされない。
In such a state, as shown in FIG. 4B, the
セクタカウンタ20がシーケンシャル番号#0に対するセクタ数分のインクリメントを終了すると、リードコントローラ16は、シーケンシャル番号カウンタ24をインクリメントする。コンペアモジュール23は、シーケンシャル番号カウンタ24のカウント値(例えば#1)と、メモリ21に格納されているシーケンシャル番号とを比較する。選択モジュール22は、コンペアモジュール23により一致がとれたシーケンシャル番号(例えば#1)の記憶領域(ここでは21-1)からセクタ数220をセクタカウンタ20に設定する。ここでは、セクタ数220は、8セクタである。
When the sector counter 20 finishes incrementing the number of sectors with respect to the sequential number # 0, the
このような過程を繰り返して、セクタカウンタ20は、シーケンシャル番号毎に転送完了したセクタ数をインクリメントする。セクタカウンタ20は、カウント値を基準コンペアモジュール25に出力する。基準コンペアモジュール25は、予め設定されている基準値(ここでは39とする)とセクタカウンタ20からのカウント値とを比較する。基準コンペアモジュール25は、当該基準値を超えると、ホストI/Fコントローラ15に対して、バッファメモリ14からホスト30へのデータ転送を許可する(ブロック606)。
By repeating such a process, the
具体的には、図5(A)に示すように、バッファメモリ14には、例えば5チャネルの40セクタ分のデータ50の転送が完了して格納されている。なお、データ51は、あるチャネルの8セクタ分のデータで、バッファメモリ14に転送が完了しているが、セクタカウンタ20のカウント値には含まれていない状態である。
Specifically, as shown in FIG. 5A, the
図5(B)に示すように、セクタカウンタ20は、40セクタ分のデータ50の転送完了に応じてカウント値40までインクリメントを実行する。基準コンペアモジュール25は、カウント値40が基準値(39)を超えたので、ホストI/Fコントローラ15に対して、バッファメモリ14からホスト30へのデータ転送の許可信号160を出力する。この場合、バッファメモリ14からは、1セクタ分のデータ転送も完了してない状態である。
As shown in FIG. 5B, the
ホストI/Fコントローラ15は、リードコントローラ16からの許可信号160に応じて、バッファメモリ14からホスト30へのデータ転送を開始する。リードコントローラ16は、バッファメモリ14からホスト30へのセクタ単位のデータ転送が完了する度に、ホストI/Fコントローラ15からのセクタ転送完了通知150を受信する。
The host I /
リードコントローラ16は、セクタ転送完了通知150を受信する度に、セクタカウンタ20をデクリメントする。即ち、セクタカウンタ20は、フラッシュメモリ17からバッファメモリ14に転送されて、バッファメモリ14に格納されているデータのセクタ数(先頭から連続したLBA)をカウント値で示す。換言すれば、セクタカウンタ20は、バッファメモリ14からホスト30に転送すべきデータの残存(セクタ数)をカウント値で示す。これにより、リードコントローラ16は、シーケンシャルリード処理によるデータ転送を管理することが可能となる。
Each time the
リードコントローラ16は、フラッシュメモリ17からバッファメモリ14へのデータ転送が全て完了すると、基準コンペアモジュール25の基準値を解除する(ブロック607のYES)。リードコントローラ16は、ホストI/Fコントローラ15からのセクタ転送完了通知150に応じてデクリメントするセクタカウンタ20により、バッファメモリ14とホスト30間のデータ転送を監視する(ブロック608)。リードコントローラ16は、セクタカウンタ20のカウント値が0になると、全てのシーケンシャルリード処理によるデータ転送が完了したことを認識する(ブロック609のYES)。
When all the data transfer from the
以上のように本実施形態によれば、ハードウェアモジュールであるリードコントローラ16により、シーケンシャルリード処理において、フラッシュメモリ17の各チャネルCH0〜CHnから並列かつランダムに読み出されるデータを、先頭から連続するLBAからなるシーケンシャルデータとして、ホスト30に転送することができる。
As described above, according to the present embodiment, in the sequential read process by the
即ち、リードコントローラ16は、MPU(FW)10がコマンド100に付加したシーケンシャル番号とセクタ数を含むシーケンシャル情報に基づいて、リオーダリング処理を実行する。具体的には、リードコントローラ16は、フラッシュメモリ17から並列かつランダムに読み出されたデータを、バッファメモリ14上でシーケンシャル番号で指定された順番に並び替えるリオーダリング処理を実行する。これにより、リードコントローラ16は、セクタ単位のシーケンシャルデータ転送を制御することができる。
That is, the
要するに、本実施形態のSSDでは、MPU(FW)10がバッファメモリ14とホスト30間のシーケンシャルデータ転送を監視することなく、ハードウェアモジュールであるリードコントローラ16が高速かつ効率的にシーケンシャルデータ転送を制御する。従って、SSDのメインコントローラであるMPU(FW)10の負荷を軽減できるため、SSD全体の効率化を図ることが可能となる。
In short, in the SSD of this embodiment, the MPU (FW) 10 does not monitor the sequential data transfer between the
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。 Although several embodiments of the present invention have been described, these embodiments are presented by way of example and are not intended to limit the scope of the invention. These novel embodiments can be implemented in various other forms, and various omissions, replacements, and changes can be made without departing from the scope of the invention. These embodiments and modifications thereof are included in the scope and gist of the invention, and are included in the invention described in the claims and the equivalents thereof.
10…マイクロプロセッサ(MPUまたはFW)、11-0〜11-n…メモリコントローラ、
12…バッファマネージャモジュール、13…アービタ(arbiter)、
14…バッファメモリ、
15…ホストインターフェースコントローラ(ホストI/Fコントローラ)、
16…シーケンシャルリードコントローラ(リードコントローラ)、
17…NAND型フラッシュメモリ、17-0〜17-n…メモリモジュール、
20…シーケンシャルセクタカウンタ(セクタカウンタ)、
21…メモリ、22…選択モジュール、23…コンペアモジュール、
24…シーケンシャル番号カウンタ、25…基準コンペアモジュール、
30…ホストシステム。
10: Microprocessor (MPU or FW), 11-0 to 11-n: Memory controller,
12 ... Buffer manager module, 13 ... Arbiter,
14: Buffer memory,
15: Host interface controller (host I / F controller),
16: Sequential read controller (read controller),
17 ... NAND flash memory, 17-0 ~ 17-n ... Memory module,
20: Sequential sector counter (sector counter),
21 ... Memory, 22 ... Selection module, 23 ... Compare module,
24 ... Sequential number counter, 25 ... Standard compare module,
30: Host system.
Claims (10)
前記メモリコントローラにより前記フラッシュメモリから読み出されたデータを格納するバッファメモリと、
前記リードコマンドがシーケンシャルリード処理を指示する場合には、前記フラッシュメモリから読み出されたデータを、シーケンシャル番号で指示される順番に基づいて前記バッファメモリと前記ホスト間のシーケンシャルデータ転送を制御するリードコントローラと
を具備するデータ記憶装置。 A memory controller that accesses data in parallel from the flash memory based on a read command from the host;
A buffer memory for storing data read from the flash memory by the memory controller;
When the read command instructs a sequential read process, the data read from the flash memory is read to control sequential data transfer between the buffer memory and the host based on the order indicated by the sequential number. A data storage device comprising a controller.
前記シーケンシャル番号と、前記リードコマンドで要求された連続アドレスのデータのセクタ数とを含むシーケンシャル情報を取得し、
前記シーケンシャル情報に基づいて前記シーケンシャルデータ転送を制御するように構成されている請求項1に記載のデータ記憶装置。 The lead controller is
Obtaining sequential information including the sequential number and the number of sectors of data of the continuous address requested by the read command;
The data storage device according to claim 1, wherein the data storage device is configured to control the sequential data transfer based on the sequential information.
前記フラッシュメモリから読み出されたデータを前記バッファメモリに転送するときに、前記シーケンシャル番号に基づいた順番で前記バッファメモリにデータを格納するように構成されている請求項1又は請求項2のいずれか1項に記載のデータ記憶装置。 The lead controller is
3. The data storage device according to claim 1, wherein when the data read from the flash memory is transferred to the buffer memory, the data is stored in the buffer memory in an order based on the sequential number. A data storage device according to claim 1.
前記モジュールは、
前記リードコマンドで指定された連続アドレスに応じて前記フラッシュメモリの各チャネルからデータを読み出すことを指示するコマンドを前記メモリコントローラに発行し、
前記コマンドに対して前記シーケンシャル番号を付加するように構成されている請求項1から請求項3のいずれか1項に記載のデータ記憶装置。 It has a module that determines sequential read processing according to the read command from the host,
The module is
Issuing a command to the memory controller instructing to read data from each channel of the flash memory according to the continuous address specified by the read command;
4. The data storage device according to claim 1, wherein the data storage device is configured to add the sequential number to the command. 5.
前記バッファメモリに格納されたデータのセクタ数、及び前記バッファメモリから前記ホストにシーケンシャルデータ転送すべきデータのセクタ数をカウントするためのセクタカウンタを含む請求項1から請求項4のいずれか1項に記載のデータ記憶装置。 The lead controller is
5. The sector counter according to claim 1, further comprising a sector counter for counting the number of sectors of data stored in the buffer memory and the number of sectors of data to be sequentially transferred from the buffer memory to the host. The data storage device described in 1.
前記シーケンシャル番号を前記フラッシュメモリのチャネル毎に記憶するメモリを含み、
前記セクタカウンタは、前記シーケンシャル番号の順番に前記セクタ数のカウントを行なうように構成されている請求項5に記載のデータ記憶装置。 The lead controller is
A memory for storing the sequential number for each channel of the flash memory;
The data storage device according to claim 5, wherein the sector counter is configured to count the number of sectors in the order of the sequential numbers.
前記リードコントローラは、
前記バッファ管理モジュールから前記バッファメモリへのセクタ単位のデータ転送の完了通知を受信し、
前記完了通知と前記シーケンシャル番号に基づいて、シーケンシャルデータ転送すべきデータが前記バッファメモリに格納されたことを認識するように構成されている請求項1から請求項6のいずれか1項に記載のデータ記憶装置。 A buffer management module for transferring data read from the flash memory to the buffer memory;
The lead controller is
Receiving a sector unit data transfer completion notification from the buffer management module to the buffer memory;
7. The apparatus according to claim 1, configured to recognize that data to be sequentially transferred is stored in the buffer memory based on the completion notification and the sequential number. 8. Data storage device.
前記リードコントローラは、
前記シーケンシャルデータ転送すべきデータが、前記シーケンシャル番号に基づいて前記バッファメモリに格納された後に、前記ホストコントローラに対して前記シーケンシャルデータ転送の許可を発行するように構成されている請求項1から請求項7のいずれか1項に記載のデータ記憶装置。 A host controller that performs sequential data transfer from the buffer memory to the host;
The lead controller is
2. The apparatus according to claim 1, wherein the sequential data transfer permission is issued to the host controller after the data to be transferred is stored in the buffer memory based on the sequential number. Item 8. The data storage device according to any one of Item 7.
ホストからのリードコマンドに基づいて、フラッシュメモリから並列にデータを読み出し、
前記フラッシュメモリから読み出されたデータをバッファメモリに格納し、
前記リードコマンドがシーケンシャルリード処理を指示する場合には、前記フラッシュメモリから読み出されたデータを、シーケンシャル番号で指示される順番に基づいて前記バッファメモリと前記ホスト間のシーケンシャルデータ転送を制御するデータ読み出し方法。 A data reading method for a data storage device including a flash memory,
Based on the read command from the host, data is read from the flash memory in parallel,
Storing the data read from the flash memory in a buffer memory;
When the read command instructs a sequential read process, the data read from the flash memory is data for controlling sequential data transfer between the buffer memory and the host based on the order indicated by the sequential number. Reading method.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010165070A JP2012027649A (en) | 2010-07-22 | 2010-07-22 | Data storage device and data readout method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010165070A JP2012027649A (en) | 2010-07-22 | 2010-07-22 | Data storage device and data readout method |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012027649A true JP2012027649A (en) | 2012-02-09 |
Family
ID=45780516
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010165070A Pending JP2012027649A (en) | 2010-07-22 | 2010-07-22 | Data storage device and data readout method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2012027649A (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130067147A1 (en) * | 2011-09-13 | 2013-03-14 | Kabushiki Kaisha Toshiba | Storage device, controller, and read command executing method |
US9619177B2 (en) | 2014-06-05 | 2017-04-11 | Kabushiki Kaisha Toshiba | Memory system including non-volatile memory, buffer memory, and controller controlling reading data from non-volatile memory |
CN113515232A (en) * | 2021-04-26 | 2021-10-19 | 深圳忆联信息系统有限公司 | Method and device for improving SSD low-command deep reading performance, computer equipment and storage medium |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH029063A (en) * | 1988-06-28 | 1990-01-12 | Nec Corp | Disk controller |
JP2000148652A (en) * | 1998-11-12 | 2000-05-30 | Hitachi Ltd | Disk array control method and disk array controller |
JP2001051896A (en) * | 1999-08-04 | 2001-02-23 | Hitachi Ltd | Storage device |
JP2004280862A (en) * | 2004-06-28 | 2004-10-07 | Hitachi Ltd | Disk array control method and disk array controller |
JP2005190456A (en) * | 2003-12-03 | 2005-07-14 | Hitachi Ltd | Remote copy system |
JP2006023889A (en) * | 2004-07-07 | 2006-01-26 | Hitachi Ltd | Remote copy system and storage system |
JP2008102967A (en) * | 2007-12-28 | 2008-05-01 | Hitachi Ltd | Disk array control method and disk array controller |
-
2010
- 2010-07-22 JP JP2010165070A patent/JP2012027649A/en active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH029063A (en) * | 1988-06-28 | 1990-01-12 | Nec Corp | Disk controller |
JP2000148652A (en) * | 1998-11-12 | 2000-05-30 | Hitachi Ltd | Disk array control method and disk array controller |
JP2001051896A (en) * | 1999-08-04 | 2001-02-23 | Hitachi Ltd | Storage device |
JP2005190456A (en) * | 2003-12-03 | 2005-07-14 | Hitachi Ltd | Remote copy system |
JP2004280862A (en) * | 2004-06-28 | 2004-10-07 | Hitachi Ltd | Disk array control method and disk array controller |
JP2006023889A (en) * | 2004-07-07 | 2006-01-26 | Hitachi Ltd | Remote copy system and storage system |
JP2008102967A (en) * | 2007-12-28 | 2008-05-01 | Hitachi Ltd | Disk array control method and disk array controller |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130067147A1 (en) * | 2011-09-13 | 2013-03-14 | Kabushiki Kaisha Toshiba | Storage device, controller, and read command executing method |
US9619177B2 (en) | 2014-06-05 | 2017-04-11 | Kabushiki Kaisha Toshiba | Memory system including non-volatile memory, buffer memory, and controller controlling reading data from non-volatile memory |
CN113515232A (en) * | 2021-04-26 | 2021-10-19 | 深圳忆联信息系统有限公司 | Method and device for improving SSD low-command deep reading performance, computer equipment and storage medium |
CN113515232B (en) * | 2021-04-26 | 2023-08-29 | 深圳忆联信息系统有限公司 | Method, device, computer equipment and storage medium for improving SSD low order depth reading performance |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107885456B (en) | Reducing conflicts for IO command access to NVM | |
US9846541B2 (en) | Memory system for controlling perforamce by adjusting amount of parallel operations | |
US9720860B2 (en) | System and method for efficient processing of queued read commands in a memory system | |
US11379151B2 (en) | Flow control of large sequential host read commands based on a queue threshold | |
JP6459644B2 (en) | Storage control device, control system, and control program | |
US20130339576A1 (en) | Method for constructing address mapping table of solid state drive | |
US20120159050A1 (en) | Memory system and data transfer method | |
US10324833B2 (en) | Memory controller, data storage device, and memory control method | |
JP6142860B2 (en) | Disk array device, disk control device, solid state drive, disk control method, and program therefor | |
US20150339223A1 (en) | Memory system and method | |
US20160092143A1 (en) | Optimized garbage collection for solid-state storage devices | |
JP2012248110A (en) | Memory unit having multiple channels and writing control method including error correction channel determination therein | |
US9043565B2 (en) | Storage device and method for controlling data invalidation | |
US20100169550A1 (en) | Semiconductor memory device, data transfer device, and method of controlling semiconductor memory device | |
US9213498B2 (en) | Memory system and controller | |
KR102366512B1 (en) | logical block addressing range collision crawler | |
US9959052B1 (en) | Media based cache for data storage device | |
JP2012027649A (en) | Data storage device and data readout method | |
CN107885667B (en) | Method and apparatus for reducing read command processing delay | |
US9547450B2 (en) | Method and apparatus to change tiers | |
KR20150127434A (en) | Memory management apparatus and control method thereof | |
US10853321B2 (en) | Storage system | |
US9047959B1 (en) | Data storage device, memory control method, and electronic device with data storage device | |
US11704249B2 (en) | Frozen time cache for multi-host read operations | |
JP4837121B1 (en) | Data storage device and data writing method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20120306 |