JP2009054209A - Disk drive device having nonvolatile semiconductor memory device and method of storing data in nonvolatile semiconductor memory device in the disk drive device - Google Patents
Disk drive device having nonvolatile semiconductor memory device and method of storing data in nonvolatile semiconductor memory device in the disk drive device Download PDFInfo
- Publication number
- JP2009054209A JP2009054209A JP2007217560A JP2007217560A JP2009054209A JP 2009054209 A JP2009054209 A JP 2009054209A JP 2007217560 A JP2007217560 A JP 2007217560A JP 2007217560 A JP2007217560 A JP 2007217560A JP 2009054209 A JP2009054209 A JP 2009054209A
- Authority
- JP
- Japan
- Prior art keywords
- transfer
- pointer
- data
- memory device
- data block
- 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
Landscapes
- Read Only Memory (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
【課題】不揮発性半導体メモリ装置を有するディスク・ドライブ装置において、効率的なリング・バッファ制御を行う。
【解決手段】本発明の一形態において、HDD1は、フラッシュ・メモリ装置25を有する。HDD1は、セクタ・バッファとしてリング・バッファ241を使用する。フラッシュ・メモリ装置は、特定データ・サイズの記録単位を有しており、その記録単位毎にメモリ領域にユーザ・データを書き込む。フラッシュ・メモリ装置は、記録単位内において一つにまとめた複数のデータ・ブロックを、メモリ領域に一括して書き込む。これより、処理効率を向上することができる。セクタ・バッファのポインタを効果的に制御することで、効率的なリング・バッファ制御を行う。
【選択図】図3Efficient ring buffer control is performed in a disk drive device having a nonvolatile semiconductor memory device.
In one form of the present invention, an HDD includes a flash memory device. The HDD 1 uses a ring buffer 241 as a sector buffer. The flash memory device has a recording unit having a specific data size, and writes user data in a memory area for each recording unit. The flash memory device collectively writes a plurality of data blocks grouped together in a recording unit into a memory area. Thereby, processing efficiency can be improved. Effective ring buffer control is performed by effectively controlling the sector buffer pointer.
[Selection] Figure 3
Description
本発明はユーザ・データを保存するためのディスクと不揮発性半導体メモリ装置とを有するディスク・ドライブ装置及びそのディスク・ドライブ装置において不揮発性半導体メモリ装置にデータを格納する方法に関する。 The present invention relates to a disk drive device having a disk for storing user data and a nonvolatile semiconductor memory device, and a method for storing data in the nonvolatile semiconductor memory device in the disk drive device.
データ記憶装置として、光ディスク、光磁気ディスク、あるいはフレキシブル磁気ディスクなどの様々な態様のメディアを使用する装置が知られているが、その中で、ハードディスク・ドライブ(HDD)は、コンピュータの記憶装置として広く普及し、現在のコンピュータ・システムにおいて欠かすことができない記憶装置の一つとなっている。さらに、コンピュータにとどまらず、動画像記録再生装置、カーナビゲーション・システム、携帯電話など、HDDの用途は、その優れた特性により益々拡大している。 As data storage devices, devices using various types of media such as optical disks, magneto-optical disks, and flexible magnetic disks are known. Among them, hard disk drives (HDDs) are used as computer storage devices. It has become widespread and has become one of the storage devices that are indispensable in current computer systems. Furthermore, applications of HDDs such as moving image recording / playback apparatuses, car navigation systems, and mobile phones are expanding more and more due to their excellent characteristics.
HDDは、磁気ディスクへのアクセス(リードもしくはライト)のために、磁気ディスクを回転し、ヘッド・スライダを目的のデータ・セクタに移動する。このため、HDDの消費電力は半導体メモリに比較して大きく、また、そのアクセス・スピードも半導体メモリよりも遅い。特に、スピンドル・モータのスピン・アップ時間は他の動作に比較して多くの時間を必要とする。このため、HDDの起動時や、省電力低減のためのパワー・セーブ・モードから復帰するときに多くの処理時間を必要とする。 The HDD rotates the magnetic disk and moves the head slider to the target data sector for access (reading or writing) to the magnetic disk. For this reason, the power consumption of the HDD is larger than that of the semiconductor memory, and the access speed is slower than that of the semiconductor memory. In particular, the spin-up time of the spindle motor requires more time than other operations. For this reason, a large amount of processing time is required when the HDD is started or when returning from the power save mode for power saving.
このため、HDDに不揮発性半導体メモリ装置の一つであるフラッシュ・メモリ装置を実装することが提案されている(例えば、特許文献1を参照)。フラッシュ・メモリ装置は半導体メモリ装置であるため、磁気ディスクよりもアクセス・スピードが速く、消費電力が小さい。また、フラッシュ・メモリ装置は不揮発性メモリ装置であるため、電源オフ状態であってもデータを保存しておくことができる。 For this reason, it has been proposed to mount a flash memory device, which is one of nonvolatile semiconductor memory devices, on the HDD (see, for example, Patent Document 1). Since the flash memory device is a semiconductor memory device, the access speed is faster and the power consumption is smaller than that of the magnetic disk. Further, since the flash memory device is a non-volatile memory device, data can be stored even when the power is off.
HDDに実装するフラッシュ・メモリ装置の容量は、コストなどの点から制限される。従って、典型的には、HDDは特定のユーザ・データのみをフラッシュ・メモリ装置に保存し、その他のユーザ・データを磁気ディスクに保存する。例えば、ホストの起動に必要なデータや、ホストが頻繁にアクセスするデータをフラッシュ・メモリ装置に保存しておくことによって、ホストの起動時間の短縮、HDDのパフォーマンスの向上、あるいはスピンドル・モータの回転数を小さくするパワー・セーブ・モードによる消費電力の低減を図ることができる。 The capacity of the flash memory device mounted on the HDD is limited from the viewpoint of cost. Thus, typically, the HDD stores only specific user data in the flash memory device and other user data on the magnetic disk. For example, by storing data necessary for host startup and data frequently accessed by the host in a flash memory device, shortening the host startup time, improving HDD performance, or rotating the spindle motor The power consumption can be reduced by the power save mode in which the number is reduced.
フラッシュ・メモリ装置は、そのセル・アレイに対して、特定の大きさのデータ単位でデータを書き込む。従って、一コマンドに対応した小さいデータ・ブロック毎にデータを書き込むのではなく、上記データ単位内で複数のデータ・ブロックをまとめて、それらを同時にフラッシュ・メモリ装置のアレイ・セルに書き込むことが好ましい。セル・アレイへのデータ書き込みは相応の処理時間を必要とするため、これによって処理時間の短縮とパフォーマンスの向上を図ることができる(例えば、特許文献2を参照)。
ホストからのライト・データは、バッファに一時的に格納された後、磁気ディスクあるいはフラッシュ・メモリ装置に保存される。バッファリングの方法としてはいくつかのものが知られているが、制御処理が単純であり処理効率が高いことから、リング・バッファが多くのHDDにおいて採用されている。リング・バッファは、先頭アドレスから最後アドレスに向かう方向に、順次、データを格納していく。さらに、その先頭アドレスと最後アドレスが連続しており、リング・バッファはリング状のバッファ構造を有している。 Write data from the host is temporarily stored in a buffer and then stored in a magnetic disk or a flash memory device. Several buffering methods are known, but a ring buffer is adopted in many HDDs because of simple control processing and high processing efficiency. The ring buffer stores data sequentially in the direction from the first address to the last address. Further, the start address and the end address are continuous, and the ring buffer has a ring-shaped buffer structure.
フラッシュ・メモリ装置による複数のデータ・ブロックの一括書き込みを実現する場合、その処理は、リング・バッファから磁気ディスクへのデータ転送(書き込み)あるいはフラッシュ・メモリ装置のデータ・ブロック単位のデータ書き込み処理と機能を共有することが好ましい。これによって、フラッシュ・メモリ付HDDに一括書き込み処理を実装しやすくなり、また制御回路構成をシンプルなものとすることができる。また、一括書き込み処理は他の処理と異なるため、それに特有の機能を実装することも重要である。 When realizing batch writing of a plurality of data blocks by the flash memory device, the processing includes data transfer (write) from the ring buffer to the magnetic disk or data writing processing for each data block of the flash memory device. It is preferable to share functionality. As a result, the batch write processing can be easily implemented in the HDD with flash memory, and the control circuit configuration can be simplified. Also, since the batch writing process is different from other processes, it is important to implement a function specific to it.
本発明の一態様に係るディスク・ドライブ装置は、ホストからのデータを格納するリング・バッファと、前記リング・バッファから転送されたデータを格納するディスクと、前記リング・バッファに対して、転送ポインタと転送完了ポインタと転送中断ポインタとを設定するバッファ制御部と、前記転送ポインタに従ってデータ・ブロック毎にデータを前記リング・バッファから転送し、前記転送中断ポインタに従ってデータ転送を中断し、前記転送完了ポインタに従ってデータ転送を完了する転送処理部と、前記リング・バッファから転送されたデータをセル・アレイに格納する不揮発性半導体メモリ装置とを有する。前記バッファ制御部は、一または複数のデータ・ブロックのそれぞれに対応する転送ポインタと転送中断ポインタとを設定し、さらに、最後データ・ブロックに対応する転送ポインタと転送完了ポインタとを設定する。前記転送処理部は、前記対応する転送ポインタと転送中断ポインタとに従って前記一または複数のデータ・ブロックを前記不揮発性半導体メモリ装置に順次転送し、その後、前記転送ポインタと前記転送完了ポインタに従って前記最後データ・ブロックを前記不揮発性半導体メモリ装置に転送する。前記不揮発性半導体メモリ装置は、前記最後データ・ブロックを受け取ると、受け取った前記一または複数のデータ・ブロック及び前記最後データ・ブロックを、まとめて前記セル・アレイに格納する。上記構成によって、通常のリング・バッファの制御において必要とされるポインタを使用して、不揮発性メモリ装置における複数データ・ブロックの一括書き込み処理を行うことができる。 A disk drive device according to an aspect of the present invention includes a ring buffer for storing data from a host, a disk for storing data transferred from the ring buffer, and a transfer pointer for the ring buffer. And a buffer control unit for setting a transfer completion pointer and a transfer interruption pointer, transfer data from the ring buffer for each data block according to the transfer pointer, interrupt data transfer according to the transfer interruption pointer, and complete the transfer A transfer processing unit that completes data transfer according to a pointer; and a nonvolatile semiconductor memory device that stores data transferred from the ring buffer in a cell array. The buffer control unit sets a transfer pointer and a transfer interruption pointer corresponding to each of one or a plurality of data blocks, and further sets a transfer pointer and a transfer completion pointer corresponding to the last data block. The transfer processing unit sequentially transfers the one or more data blocks to the non-volatile semiconductor memory device according to the corresponding transfer pointer and transfer interrupt pointer, and then the last according to the transfer pointer and the transfer completion pointer. The data block is transferred to the nonvolatile semiconductor memory device. When the nonvolatile semiconductor memory device receives the last data block, the nonvolatile semiconductor memory device collectively stores the received one or more data blocks and the last data block in the cell array. With the above-described configuration, it is possible to perform batch write processing of a plurality of data blocks in the nonvolatile memory device by using a pointer required for normal ring buffer control.
好ましくは、前記転送処理部は、前記転送中断ポインタ毎に前記バッファ制御部に転送の中断を通知し、前記バッファ制御部は、前記中断の通知を受けると、次のデータ・ブロックに対応したポインタ設定を行う。このように転送中断ポインタの機能を使用することで、一つの転送中断ポインタで制御することができる。 Preferably, the transfer processing unit notifies the buffer control unit of the transfer interruption for each transfer interruption pointer, and when the buffer control unit receives the interruption notification, the pointer corresponding to the next data block Set up. Thus, by using the function of the transfer interruption pointer, it is possible to control with one transfer interruption pointer.
好ましくは、前記転送中断ポインタは、次にホストから転送されるライト・データが格納される位置に対応し、前記不揮発性半導体メモリが一つのデータ・ブロックのみを前記セル・アレイに格納する場合において、前記転送処理部は、前記一つのデータ・ブロックの転送中に転送データのアドレスが対応する転送中断ポインタに追いついた場合、その転送を中断する。これによって、複数データ・ブロックの転送と一つのデータ・ブロックのみの転送とを、同一のポインタを使用して制御することができる。 Preferably, the transfer interruption pointer corresponds to a position where write data to be transferred next from the host is stored, and the nonvolatile semiconductor memory stores only one data block in the cell array. When the transfer data address catches up with the corresponding transfer interrupt pointer during the transfer of the one data block, the transfer processing unit interrupts the transfer. As a result, transfer of a plurality of data blocks and transfer of only one data block can be controlled using the same pointer.
前記転送処理部が前記複数のデータ・ブロック及び前記最後のデータ・ブロックを転送している間、前記転送中断ポインタの位置はライト・コマンドと独立に制御されることが好ましい。これによって、ライト・コマンドによって複数データ・ブロックのデータ転送が阻害されることを避けることができる。 While the transfer processing unit transfers the plurality of data blocks and the last data block, the position of the transfer interrupt pointer is preferably controlled independently of a write command. As a result, it is possible to prevent the data transfer of a plurality of data blocks from being hindered by the write command.
前記転送処理部は、前記ディスクへのデータ転送中に転送データのアドレスが前記中断ポインタに追いついた場合にその転送を中断することが好ましい。これによって、ディスクへのデータ転送と不揮発性メモリ装置へのデータ転送とにおいて同じポインタを利用することができる。 The transfer processing unit preferably interrupts the transfer when the address of the transfer data catches up with the interrupt pointer during data transfer to the disk. As a result, the same pointer can be used for data transfer to the disk and data transfer to the nonvolatile memory device.
本発明の他の態様は、データを記憶するディスクと不揮発性半導体メモリ装置とを有するディスク・ドライブ装置において、前記不揮発性半導体メモリ装置のセル・アレイにデータを格納する方法である。この方法は、リング・バッファから転送する第1データ・ブロックに対応した転送ポインタと転送中断ポインタとを設定する。前記転送ポインタに従って前記第1データ・ブロックを前記不揮発性半導体メモリ装置に転送し、前記転送中断ポインタに従って前記不揮発性半導体メモリ装置へのデータ転送を中断する。前記リング・バッファから転送する第2データ・ブロックに対応する転送ポインタと転送完了ポインタとを設定する。前記転送ポインタに従って前記第2データ・ブロックを前記不揮発性半導体メモリ装置に転送し、前記転送完了ポインタに従って前記不揮発性半導体メモリ装置へのデータ転送を完了する。前記第2データ・ブロックの転送後に、前記第1及び前記第2データ・ブロックをまとめて前記セル・アレイに格納する。上記方法によって、通常のリング・バッファの制御において必要とされるポインタを使用して、不揮発性メモリ装置における複数データ・ブロックの一括書き込み処理を行うことができる。 Another aspect of the present invention is a method of storing data in a cell array of a nonvolatile semiconductor memory device in a disk drive device having a disk for storing data and the nonvolatile semiconductor memory device. This method sets a transfer pointer and a transfer interruption pointer corresponding to the first data block transferred from the ring buffer. The first data block is transferred to the nonvolatile semiconductor memory device according to the transfer pointer, and the data transfer to the nonvolatile semiconductor memory device is interrupted according to the transfer interruption pointer. A transfer pointer and a transfer completion pointer corresponding to the second data block transferred from the ring buffer are set. The second data block is transferred to the nonvolatile semiconductor memory device according to the transfer pointer, and the data transfer to the nonvolatile semiconductor memory device is completed according to the transfer completion pointer. After the transfer of the second data block, the first and second data blocks are collectively stored in the cell array. By the above method, it is possible to perform batch write processing of a plurality of data blocks in the nonvolatile memory device using a pointer required for normal ring buffer control.
本発明によれば、不揮発性半導体メモリ装置を有するディスク・ドライブ装置において、複数データ・ブロックを不揮発性半導体メモリ装置のセル・アレイにまとめて書き込む場合、効率的なリング・バッファ制御を行うことができる。 According to the present invention, in a disk drive device having a nonvolatile semiconductor memory device, when a plurality of data blocks are collectively written in the cell array of the nonvolatile semiconductor memory device, efficient ring buffer control can be performed. it can.
以下に、本発明を適用可能な実施の形態を説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略及び簡略化がなされている。又、各図面において、同一要素には同一の符号が付されており、必要に応じて重複説明は省略されている。以下においては、ディスク・ドライブ装置の一例であるハードディスク・ドライブ(HDD)について説明する。 Hereinafter, embodiments to which the present invention can be applied will be described. For clarity of explanation, the following description and drawings are omitted and simplified as appropriate. Moreover, in each drawing, the same code | symbol is attached | subjected to the same element and the duplication description is abbreviate | omitted as needed. In the following, a hard disk drive (HDD) that is an example of a disk drive device will be described.
本形態のHDDは、ユーザ・データを保存するために、磁気ディスク領域の他にフラッシュ・メモリ装置を有する。フラッシュ・メモリ装置は、不揮発性半導体メモリ装置である。本形態のHDDは、セクタ・バッファとしてリング・バッファを使用する。本形態のフラッシュ・メモリ装置は、特定データ・サイズの記録単位を有しており、その記録単位毎にメモリ領域にデータを書き込む。フラッシュ・メモリ装置は、セクタ・バッファからの複数のデータ・ブロックを、記録単位内において一つにまとめる。フラッシュ・メモリ装置は、さらに、一つにまとめた複数のデータ・ブロックをメモリ領域に一括して書き込む。このように、セクタ・バッファからの複数データ・ブロックを、上記記録単位内でまとめ、それらを同時にメモリ領域に書き込むことで、処理効率を向上することができる。本実施形態は、上記書き込み処理におけるセクタ・バッファのポインタ制御に特徴を有している。 The HDD of this embodiment has a flash memory device in addition to the magnetic disk area in order to store user data. The flash memory device is a non-volatile semiconductor memory device. The HDD of this embodiment uses a ring buffer as a sector buffer. The flash memory device of this embodiment has a recording unit of a specific data size, and writes data in the memory area for each recording unit. The flash memory device combines a plurality of data blocks from the sector buffer into one in a recording unit. The flash memory device further writes a plurality of data blocks combined into one into the memory area. Thus, the processing efficiency can be improved by collecting a plurality of data blocks from the sector buffer in the recording unit and simultaneously writing them in the memory area. The present embodiment is characterized in the sector buffer pointer control in the write processing.
まず、本形態のHDDの全体構成を、図1のブロック図を参照して説明する。HDD1は、エンクロージャ10の外側に固定された回路基板20を備えている。回路基板20上には、リード・ライト・チャネル(RWチャネル)21、モータ・ドライバ・ユニット22、ハードディスク・コントローラ(HDC)とマイクロ・プロセッサ・ユニット(MPU)の集積回路(HDC/MPU)23、揮発性半導体メモリであるRAM24、及び不揮発性半導体メモリ装置であるフラッシュ・メモリ装置25などの各回路を有している。
First, the entire configuration of the HDD of this embodiment will be described with reference to the block diagram of FIG. The
エンクロージャ10内において、スピンドル・モータ(SPM)14は所定の角速度で磁気ディスク11を回転する。磁気ディスク11は、データを記憶する不揮発性のディスク・メモリである。各ヘッド・スライダ12は、磁気ディスク上を浮上するスライダと、スライダに固定され磁気信号と電気信号との間の変換(データの読み書き)を行うヘッド素子部とを有している。各ヘッド・スライダ12はアクチュエータ16の先端部に固定されている。アクチュエータ16はボイス・コイル・モータ(VCM)15に連結され、回動軸を中心に回動することによって、ヘッド・スライダ12を回転する磁気ディスク11上においてその半径方向に移動する。モータ・ドライバ・ユニット22は、HDC/MPU23からの制御データに従って、SPM14及びVCM15を駆動する。
Within the
アーム電子回路(AE:Arm Electronics)13は、HDC/MPU23からの制御データに従って複数のヘッド素子部12の中から磁気ディスク11にアクセス(リードもしくはライト)するヘッド・スライダ12を選択し、リード/ライト信号の増幅を行う。RWチャネル21は、リード処理において、AE13から取得したリード信号からサーボ・データ及びユーザ・データを抽出し、デコード処理を行う。デコード処理されたデータは、HDC/MPU23に供給される。また、RWチャネル21は、ライト処理において、HDC/MPU23から供給されたライト・データをコード変調し、さらに、コード変調されたデータをライト信号に変換してAE13に供給する。
An arm electronic circuit (AE: Arm Electronics) 13 selects a
HDC/MPU23において、HDCはロジック回路であり、MPUはRAM24にロードされたファームウェアに従って動作する。HDD1の起動に伴い、RAM24には、制御及びデータ処理に必要とされるデータが磁気ディスク11やフラッシュ・メモリ装置25からロードされる。HDC/MPU23は、ヘッド・ポジショニング制御、インターフェース制御、ディフェクト管理などのデータ処理に関する必要な処理の他、HDD1の全体制御を実行する。
In the HDC /
ホスト51からのユーザ・データ(ライト・データ)は、RAM24内のセクタ・バッファに一旦格納された後、磁気ディスク11及び/もしくはフラッシュ・メモリ装置25に保存される。フラッシュ・メモリ装置25に保存するデータは、磁気ディスク11のLBAで特定することができる。HDC/MPU23は、予め設定されているLBAへのライト・コマンドを受信すると、そのユーザ・データをフラッシュ・メモリ装置25に保存する。HDC/MPU23は、フラッシュ・メモリ装置25に保存するユーザ・データのLBAを自ら設定することができ、また、ホスト51から指定されたLBAのユーザ・データをフラッシュ・メモリ装置25に保存する。
User data (write data) from the
本形態のHDD1は、ライト・データのセクタ・バッファとして、リング・バッファを使用する。リング・バッファは、先頭アドレスから最後アドレスに向かう方向に、順次、データを格納していく。さらに、その先頭アドレスと最後アドレスが連続しており、リング・バッファはリング状のバッファ構造を有している。具体的には、最後アドレスにデータを格納した後、リング・バッファは最初アドレスから順次データを格納する。
The
リング・バッファへのデータ書き込み及びリング・バッファからのデータ読み出しは、ポインタによって制御される。図2は、リング・バッファ241からフラッシュ・メモリ装置25へのデータ転送を模式的に示すブロック図である。転送ポインタが示すアドレスから転送完了ポインタが示すアドレスまでの連続領域に格納されているデータ・ブロックが、フラッシュ・メモリ装置25に転送される。転送ポインタは、データ転送に従って、転送完了ポインタに向かって順次移動していく。
Writing data to the ring buffer and reading data from the ring buffer are controlled by pointers. FIG. 2 is a block diagram schematically showing data transfer from the
フラッシュ・メモリ装置25は、内部バッファ251とセル・アレイ252とを有している。内部バッファ251は、RAMにより構成することができる。セル・アレイ252は半導体論理回路で構成され、その記憶領域は不揮発性半導体メモリ領域である。フラッシュ・メモリ装置25は、リング・バッファ241からのデータ・ブロックを、一時的に内部バッファ251に格納した後、セル・アレイ252にそれを保存する。フラッシュ・メモリ装置25は、転送完了ポインタが示すデータ・ブロックを取得すると、バッファ251内のデータをセル・アレイ252に保存する。フラッシュ・メモリ装置25は、特定の書き込み単位毎に、セル・アレイ252にデータを書き込む。例えば、書き込み単位のサイズは、32KBである。データ書き換えにおいて、フラッシュ・メモリ装置25は、書き込み単位の領域のデータ消去を行い、その後、その領域に書き込み単位でデータを書き込む。
The
図3は、フラッシュ・メモリ装置25が複数のデータ・ブロックを、一度にまとめてセル・アレイ252に書き込む処理を模式的に示すブロック図である。図3の例において、リング・バッファ241内のデータ・ブロック3が最初にフラッシュ・メモリ装置25に転送される[1]。その後、データ・ブロック1がフラッシュ・メモリ装置25に転送され[2]、最後にデータ・ブロック2がフラッシュ・メモリ装置25に転送される[3]。データ・ブロック1〜3は、フラッシュ・メモリ装置25の内部バッファ251に格納される。
FIG. 3 is a block diagram schematically showing a process in which the
データ・ブロック1〜3のトータルのデータ・サイズは、セル・アレイ252への書き込み単位よりも小さい。フラッシュ・メモリ装置25は、内部バッファ251内のデータ・ブロック1〜3を、まとめてセル・アレイ252に書き込む[4]。複数のデータ・ブロックをまとめて書き込むことによって、データ書き込む回数を低減し、パフォーマンスを向上することができる。
The total data size of the data blocks 1 to 3 is smaller than the unit of writing to the
続いて、図4(a)〜図4(c)を参照して、図3に示した処理におけるリング・バッファ241のポインタ制御について説明する。以下のバッファ制御は、転送完了ポインタの他に、転送中断ポインタを使用する。データ・ブロックの転送順序は、図3における順序と同一である。最初に、図4(a)に示すように、転送ポインタと転送中断ポインタが、データ・ブロック3に対してセットされる。データ・ブロック3は、リング・バッファ241からフラッシュ・メモリ装置25に転送される[1]。フラッシュ・メモリ装置25は、転送中断ポインタが特定するデータ・ブロック3をセル・アレイ252に書き込むことなく、バッファ251内に保持する。
Next, pointer control of the
次に、図4(b)に示すように、転送ポインタと転送中断ポインタが、データ・ブロック1に対してセットされる。データ・ブロック1は、リング・バッファ241からフラッシュ・メモリ装置25に転送される[2]。フラッシュ・メモリ装置25は、転送中断ポインタが特定するデータ・ブロック1をセル・アレイ252に書き込むことなく、バッファ241内に保持する。
Next, as shown in FIG. 4B, a transfer pointer and a transfer interruption pointer are set for the
最後に、図4(c)に示すように、転送ポインタと転送完了ポインタが、データ・ブロック2に対してセットされる。データ・ブロック2は、リング・バッファ241からフラッシュ・メモリ装置25に転送される[3]。フラッシュ・メモリ装置25は、転送完了ポインタが特定するデータ・ブロック2をバッファ251に格納する。データ・ブロック2の指定に転送完了ポインタが使用されているため、フラッシュ・メモリ装置25は、内部バッファ251に格納されている3つのデータ・ブロック1〜3を、一度の処理でセル・アレイ252に書き込む。
Finally, as shown in FIG. 4C, the transfer pointer and the transfer completion pointer are set for the
図5は、リング・バッファ241からフラッシュ・メモリ装置25へのデータ転送及びフラッシュ・メモリ装置25内のデータ保存処理に関連する機能構成要素を模式的に示すブロック図である。図5のブロック図を参照して、図4に示した処理における各構成要素の動作について説明する。まず、MPU231は、HDC232内のレジスタ群321に、転送ポインタと転送中断ポインタを設定する。メモリ・マネージャ322は、その転送ポインタと転送中断ポインタに従って、リング・バッファ241からデータ・ブロック3を取得し、それをフラッシュ・メモリ装置25に転送する。フラッシュ・メモリ装置25内のフラッシュ・コントローラ253は、メモリ・マネージャ322からの転送データ・ブロック3を、バッファ251に格納する。
FIG. 5 is a block diagram schematically showing functional components related to data transfer from the
メモリ・マネージャ322は、転送中断ポインタが示すデータ・ブロック3の転送が完了すると、割り込みによってそれをMPU231に通知する。MPU231は、その通知に応答して、転送ポインタと転送中断ポインタをレジスタ群321に再設定する。これらポインタは、データ・ブロック1を示す。メモリ・マネージャ322は、その転送ポインタと転送中断ポインタに従って、リング・バッファ241からデータ・ブロック1を取得し、それをフラッシュ・メモリ装置25に転送する。フラッシュ・メモリ装置25内のフラッシュ・コントローラ253は、メモリ・マネージャ322からの転送データ・ブロック1を、バッファ251に格納する。
When the transfer of the data block 3 indicated by the transfer interruption pointer is completed, the
メモリ・マネージャ322は、転送中断ポインタが示すデータ・ブロック1の転送が完了すると、それをMPU231に通知する。MPU231は、その通知に応答して、転送ポインタと転送完了ポインタを設定する。これらポインタは、データ・ブロック2を示す。メモリ・マネージャ322は、その転送ポインタと転送完了ポインタに従って、リング・バッファ241からデータ・ブロック1を取得し、それをフラッシュ・メモリ装置25に転送する。フラッシュ・メモリ装置25内のフラッシュ・コントローラ253は、メモリ・マネージャ322からの転送データ・ブロック1を、バッファ251に格納する。
When the transfer of the data block 1 indicated by the transfer interruption pointer is completed, the
メモリ・マネージャ322は、転送完了ポインタのデータ・ブロック2の転送が完了すると、フラッシュ・コントローラ253に対して、セル・アレイ253へのデータ書き込みを指示する。フラッシュ・コントローラ253は、フラッシュ・コントローラ253からの指示に従って、バッファ521内に格納されているデータ・ブロック1〜3を、まとめてセル・アレイ252に書き込む。
When the transfer of the data block 2 of the transfer completion pointer is completed, the
リング・バッファ241は、特定の記憶領域内において、新しいデータを古いデータに上書きしていく。従って、既にリング・バッファ241から転送したデータを、再び転送することを禁止するポインタが必要となる。上記転送中断ポインタは、このように、転送済データを誤って再転送することを防ぐポインタとして使用される。この転送中断ポインタを利用することによって、新たなポインタを定義することなく、フラッシュ・メモリ装置25における複数データ・ブロックの一括書き込みを実現することができる。
The
以下においては、本発明に係るリング・バッファ制御のより具体的な例を説明する。HDD1は、ホスト51からのデータをリング・バッファ241に格納し、格納されているデータをフラッシュ・メモリ装置25と磁気ディスク11とに転送する。また、フラッシュ・メモリ装置25は、HDC/MPU23の制御に従って、一回の書き込み処理で一つのデータ・ブロックをセル・アレイ252に書き込む、あるいは、複数のデータ・ブロックをまとめて書き込む。
In the following, a more specific example of ring buffer control according to the present invention will be described. The
まず、ホスト51からのデータをリング・バッファ241に格納する処理について、図6(a)〜図6(c)を参照して説明する。図6(a)に示すように、メモリ・マネージャ322は、ホスト51からライト・コマンドを取得すると、ライト・データを格納するためのポインタHPAGEをレジスタ群321にセットする。ポインタHPAGEは、ホスト51からのデータの格納位置を示す。図6(b)に示すように、データがリング・バッファ241に格納されていくにしたがって、メモリ・マネージャ322はポインタHPAGEをインクリメントしていく。図6(c)に示すように、リング・バッファ241へのデータ・ブロックの格納が完了したタイミングで、ポインタHPAGEは次のデータを格納するアドレスを示している。
First, processing for storing data from the
リング・バッファ241へのデータ・ブロックの格納が完了すると、メモリ・マネージャ322は、新たに格納したデータ・ブロックの開始位置を示すHCPAGEをレジスタ群321にセットする。ポインタHCPAGEは、ホスト51からデータの上書きを禁止するポインタである。ポインタHPAGEがHCPAGEに到着すると、メモリ・マネージャ322はリング・バッファ241へのデータ格納を中断し、MPU231にそれを通知する。MPU231は、その通知に対応した処理を実行する。
When the storage of the data block in the
メモリ・マネージャ322は、さらに、ポインタHPAGEに対応したポインタDCPAGEをレジスタ群321にセットする。メモリ・マネージャ322は、ポインタDCPAGEを、ポインタHPAGEと同様にインクリメントする。ポインタDCPAGEは、リング・バッファ241から磁気ディスク11へのデータ転送において使用される。次に、図7(a)及び図7(b)を参照して、データ・ブロックをリング・バッファ241から磁気ディスク11に書き出す処理について説明する。
The
図7(a)に示すように、MPU231は、リング・バッファ241内のデータ・ブロックを指定するポインタDPAGEをレジスタ群321にセットする。また、MPU231は、転送するデータ長を示すデータもレジスタ群321にセットする。図7(b)に示すように、メモリ・マネージャ322は、ポインタDPAGEが示すデータから転送を開始し、データ転送に従ってポインタDPAGEをインクリメントする。
As shown in FIG. 7A, the
メモリ・マネージャ322は、ポインタDPAGEと同様に、ポインタHCPAGEをインクリメントする。ポインタDPAGEはデータ転送済みのアドレスを示すため、ホスト51からのデータによる上書きを禁止するポインタHCPAGEも、それに従って移動する。データ転送中にポインタDPAGEがポインタDCPAGEに追いつくと、メモリ・マネージャ322は転送を中断して、それをMPU231に通知する。図7(b)の例においては、ポインタDPAGEがポインタDCPAGEに追いつくことなく、データ・ブロックのデータ転送が完了する。
The
次に、図8(a)〜図8(c)を参照して、リング・バッファ241内の複数データ・ブロックを、リング・バッファ241内のアドレス順序とは異なる順序で磁気ディスク11に転送する処理の例を説明する。データ・ブロックのLBA順序とリング・バッファへの格納順序は、必ずしも一致するものではないため、磁気ディスク11への書き込み処理順序に合わせてデータ転送することで、書き込み時間の短縮を図ることができる。本例において、HDC/MPU23は、データ・ブロック1〜データ・ブロック3を磁気ディスク11に転送する。転送順序は、最初がデータ・ブロック3、次がデータ・ブロック1、そして最後がデータ・ブロック2である。リング・バッファ241への格納順序は、データ・ブロック1、データ・ブロック2、データ・ブロック3の順である。
Next, referring to FIGS. 8A to 8C, the plurality of data blocks in the
この処理において、ポインタHCPAGEは、ポインタDPAGEとは独立に設定される。ポインタHCPAGEがポインタDPAGEに連動すると、この処理の途中においてホスト51からのデータをリング・バッファ241に格納する場合に不具合が生じる。つまり、データ・ブロック3の転送直後にホスト51からのデータを格納する場合、ポインタHCPAGEがポインタDPAGEと同じ値を示していると、データ・ブロック1あるいはデータ・ブロック2が、新しいデータで上書きされる可能性がある。そのため、MPU231は、ポインタHCPAGEを、データ・ブロック1の開始位置に設定し、ポインタHCPAGEはその位置に維持される。
In this process, the pointer HCPAGE is set independently of the pointer DPAGE. When the pointer HCPAGE is linked to the pointer DPAGE, a problem occurs when data from the
MPU231は、HDC232が有する磁気ディスク11への順次書き出し機能(以下においてリスト・ライト機能と呼ぶ)を使用して、データ・ブロック1〜データ・ブロック3を磁気ディスク11に書き出す。以下、この処理について具体的に説明する。MPU231は、データ・ブロック3に対応したポインタDPAGE、データ長、そして目的とするLBAをレジスタ群321のリスト・ライト・テーブルにセットする。同様に、MPU231は、データ・ブロック1そしてデータ・ブロック2に対応した、ポインタDPAGE、データ長、目的とするLBAを、レジスタ群321のリスト・ライト・テーブルに、順次、セットする。なお、この処理に並行して、アクチュエータ16は、ヘッド・スライダ12をターゲット・トラックに移動する。
The
MPU23からリスト・ライトの指示があると、メモリ・マネージャ322は、リスト・ライト・テーブルに登録されているデータ・ブロック1〜データ・ブロック3を、指定されている順序に従ってリング・バッファ251から取り出し、それらを、順次、RWチャネル21(磁気ディスク11)に転送する。つまり、メモリ・マネージャ322は、データ・ブロック3、データ・ブロック1、データ・ブロック2の順序で、各データ・ブロックを磁気ディスク11に書き出す。これらの処理が完了すると、HDC232は、その完了をMPU231に通知する。なお、上記転送処理の間、ポインタHPAGEとポインタDCPAGEとは、最後に格納されたデータ・ブロック3の次のアドレスに維持される。
When there is a list write instruction from the
次に、リング・バッファ241からフラッシュ・メモリ装置25へのデータ転送におけるポインタ制御について、図9を参照して説明する。図9は、一つのデータ・ブロックをフラッシュ・メモリ装置25に転送する例を示している。データ・ブロックは、リング・バッファ241内で連続した領域に格納されていると共に、磁気ディスク11上のLBAにおいても連続している。リング・バッファ241の連続領域に格納されていても、LBAが連続してないデータは、異なるデータ・ブロックとして処理される。
Next, pointer control in data transfer from the
ポインタHCPAGE、HPAGEは、上記の例と同じものである。フラッシュ・メモリ装置25へのデータ転送においても、ポインタDPAGEが使用される。ポインタCPLBA(Complete LBA)は、転送されるデータ・ブロックの最終LBAを示す。ポインタNVPAGEは、セル・アレイ252におけるデータ・ブロックの格納開始アドレスを示す。DLBAは、データ・ブロックの磁気ディスク11上のLBAを示すデータである。
The pointers HCPAGE and HPAGE are the same as those in the above example. The pointer DPAGE is also used for data transfer to the
MPU231は、ポインタDPAGEとCPLBAとをレジスタ群321にセットする。MPU231は、さらに、DLBAをレジスタ群321にセットする。メモリ・マネージャ322は、MPU231から指示にしたがって、データ・ブロックの転送を開始する。転送されるデータは、データ・ブロックとDLBAである。データ・ブロックのデータ転送に従って、メモリ・マネージャ322は、ポインタDPAGEをインクリメントする。フラッシュ・メモリ装置25は、ポインタNVPAGEが示すアドレスに転送されてくるデータを保存する。ポインタDPAGEがポインタCPLBAに追いつくと、メモリ・マネージャ322はデータ転送を完了し、それをMPU231に通知する。
The
以上の説明が、リング・バッファ241から磁気ディスク11へのデータ転送処理、そして、リング・バッファ241からフラッシュ・メモリ装置25へ一つのデータ・ブロックを転送する処理のポインタ制御である。本例のHDC/MPU23は、これらのポインタを利用して、フラッシュ・メモリ装置25における複数データ・ブロックの一括書き込み処理を制御する。
The above description is the pointer control of the data transfer process from the
図10(a)〜図10(c)を参照して、フラッシュ・メモリ装置25への複数データ・ブロックの転送処理及びそれら複数データ・ブロックのセル・アレイ252への一括書き込み処理におけるポインタ制御ついて説明する。このポインタ制御は、図4(a)〜図4(c)を参照して説明したポインタ制御に従う。ポインタDPAGEは転送ポインタの一例であり、ポインタCPLBAは転送完了ポインタの一例であり、ポインタDCPAGEは転送中断ポインタの一例である。
Referring to FIGS. 10A to 10C, pointer control in transfer processing of a plurality of data blocks to the
まず、図10(a)に示すように、MPU231は、データ・ブロック3に対応するポインタDPAGEとDCPAGEとをレジスタ群321に設定する。ポインタCPLBAは、データ・ブロック2に対応する位置に設定される。メモリ・マネージャ322は、データ・ブロック3のデータ転送を開始する。データ・ブロック3のデータ転送に従って、メモリ・マネージャ322は、ポインタDPAGEをインクリメントする。ポインタDPAGEがポインタDCPAGEに追いつくと、メモリ・マネージャ322はデータ転送を中断し、それをMPU231に通知する。
First, as shown in FIG. 10A, the
通知を受けたMPU231は、データ・ブロック1に対応するポインタDPAGEとDCPAGEとをレジスタ群321に設定する。メモリ・マネージャ322は、データ・ブロック1のデータ転送を開始する。ポインタDPAGEがポインタDCPAGEに追いつくと、メモリ・マネージャ322はデータ転送を中断し、それをMPU231に通知する。通知を受けたMPU231は、データ・ブロック2に対応するポインタDPAGEをレジスタ群321に設定する。
Upon receiving the notification, the
メモリ・マネージャ322は、データ・ブロック2のデータ転送を開始する。ポインタDPAGEがポインタCPLBAに追いつくと、データ・ブロック1〜3の転送処理が完了する。メモリ・マネージャ322は、転送完了の通知をフラッシュ・コントローラ253に行う。フラッシュ・コントローラ253は、バッファ251に格納されている3つのデータ・ブロック1〜3を、一回の書き込み処理でセル・アレイ252に保存する。
The
上述のように、転送開始を示すポインタDPAGE、転送中断を指示ポインタDCPAGE、そして転送完了を示すポインタCPLBAを利用することによって、リング・バッファ241から複数のデータ・ブロック1〜3を転送し、さらに、それらデータ・ブロック1〜3を、まとめてフラッシュ・メモリ装置25のセル・アレイ252に書き込むことができる。
As described above, by using the pointer DPAGE indicating the start of transfer, the instruction pointer DCPAGE indicating the transfer interruption, and the pointer CPLBA indicating the transfer completion, the plurality of data blocks 1 to 3 are transferred from the
また、上述のように、データ・ブロック1〜3をリオーダリングして転送する処理は、リオーダされた順序において、データ・ブロック1〜3のLBAが連続し、一つのセグメントとして扱うことができる場合に有効である。つまり、例えば、データ・ブロック1、2、3のLBAがそれぞれ、110h−11fh、120h−12Fh、100h−10Fhであるとする。この場合、上述のようにデータ・ブロック3、1、2の順序にリオーダすることで、3つのデータ・ブロックを一つのセグメントとして扱うことができる。 In addition, as described above, the process of reordering and transferring the data blocks 1 to 3 is performed when the LBAs of the data blocks 1 to 3 are continuous in the reordered order and can be handled as one segment. It is effective for. In other words, for example, the LBAs of the data blocks 1, 2, and 3 are 110h-11fh, 120h-12Fh, and 100h-10Fh, respectively. In this case, the three data blocks can be handled as one segment by reordering in the order of the data blocks 3, 1, 2 as described above.
図6(a)を参照して説明したように、ホスト51がライト・コマンドを発行すると、メモリ・マネージャ322は、自動的にポインタHPAGEを設定する。メモリ・マネージャ322は、さらに、ポインタHPAGEに対応するポインタDCPAGEも設定する。フラッシュ・メモリ装置25への複数データ・ブロックの転送中にライト・コマンドが発行され、ポインタDCPAGEがそれに応じて設定されると、データ転送を中断する正確なポイントが失われ、データ転送にエラーが発生することが考えられる。
As described with reference to FIG. 6A, when the
そこで、MPU231は、フラッシュ・メモリ装置25への複数データ・ブロックの転送を開始する前に、ポインタDCPAGEをライト・コマンドにリンクせず、それと独立して変化するように設定する。具体的には、MPU231は、レジスタ群321にそれを指示するフラグを設定する。メモリ・マネージャ322は、このフラグが格納されているレジスタを参照し、フラグが立っている場合には、ホスト51からのライト・コマンドを受けてもポインタDCPAGEを変更しない。転送処理が完了すると、MPU231は、上記のフラグを解除する。この処理によって、フラッシュ・メモリ装置25への複数データ・ブロックの転送中にライト・コマンドを受信しても、安全かつ正確にデータ・ブロックをフラッシュ・メモリ装置25へ転送することができる。
Therefore, before starting the transfer of a plurality of data blocks to the
次に、データ・ブロック1〜3を、リオーダすることなく、データ・ブロック1、2、3の順序でフラッシュ・メモリ装置25へ転送する例について説明する。バッファの格納順序に従ってフラッシュ・メモリ装置25へデータ・ブロックを転送するため、転送処理をより簡便化することができる。図11(a)〜図11(c)を参照して、この処理について具体的に説明する。
Next, an example in which the data blocks 1 to 3 are transferred to the
まず、図11(a)に示すように、MPU231は、データ・ブロック1に対応するポインタDPAGEとDCPAGEとをレジスタ群321に設定する。ポインタCPLBAは、ポインタHPAGEに対応する位置に設定される。メモリ・マネージャ322は、データ・ブロック1のデータ転送を開始する。データ・ブロック1のデータ転送に従って、メモリ・マネージャ322は、ポインタDPAGEをインクリメントする。ポインタDPAGEがポインタDCPAGEに追いつくと、メモリ・マネージャ322はデータ転送を中断し、それをMPU231に通知する。
First, as illustrated in FIG. 11A, the
通知を受けたMPU231は、データ・ブロック2に対応するポインタDPAGEとDCPAGEとをレジスタ群321に設定する。メモリ・マネージャ322は、データ・ブロック2のデータ転送を開始する。ポインタDPAGEがポインタDCPAGEに追いつくと、メモリ・マネージャ322はデータ転送を中断し、それをMPU231に通知する。通知を受けたMPU231は、データ・ブロック3に対応するポインタDPAGEをレジスタ群321に設定する。
Receiving the notification, the
メモリ・マネージャ322は、データ・ブロック3のデータ転送を開始する。ポインタDPAGEがポインタCPLBAに追いつくと、データ・ブロック1〜3の転送処理が完了する。メモリ・マネージャ322は、転送完了の通知をフラッシュ・コントローラ253に行う。フラッシュ・コントローラ253は、バッファ251に格納されている3つのデータ・ブロック1〜3を、一回の書き込み処理でセル・アレイ252に保存する。
The
上述のように、転送開始を示すポインタDPAGE、転送中断を指示ポインタDCPAGE、そして転送完了を示すポインタCPLBAを利用することによって、リング・バッファ241から複数のデータ・ブロック1〜3を転送し、さらに、それらデータ・ブロック1〜3を、まとめてフラッシュ・メモリ装置25のセル・アレイ252に書き込むことができる。
As described above, by using the pointer DPAGE indicating the start of transfer, the instruction pointer DCPAGE indicating the transfer interruption, and the pointer CPLBA indicating the transfer completion, the plurality of data blocks 1 to 3 are transferred from the
以上、本発明について好ましい態様を使用して説明したが、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。例えば、上述の実施の形態においては、HDDを例にとって説明したが、光ディスクや光磁気ディスクなど他のディスクを使用するディスク・ドライブ装置に本発明を適用してもよい。 Although the present invention has been described using preferred embodiments, the present invention is not limited to the above-described embodiments, and various modifications can be made without departing from the scope of the present invention. Of course. For example, in the above-described embodiment, the HDD has been described as an example. However, the present invention may be applied to a disk drive device using another disk such as an optical disk or a magneto-optical disk.
データ・ブロックは、リング・バッファからフラッシュ・メモリ装置へ転送される単位を意味しており、上記のデータ・ブロックに限定されるものではない。不揮発性半導体メモリ装置としては、フラッシュ・メモリ装置以外のメモリ装置を使用してもよい。また、複数のICを使用して不揮発性半導体メモリ装置のメモリ領域を形成してもよい。フラッシュ・メモリ装置は、メモリ・マネージャからの指示ではなく、CPLBA(転送完了ポインタ)を自ら参照することによって、一括書き込みのタイミングを特定してもよい。CPLBA(転送完了ポインタ)は、複数データ・ブロックの転送中のいずれかのタイミングで設定してもよい。 The data block means a unit transferred from the ring buffer to the flash memory device, and is not limited to the above data block. As the nonvolatile semiconductor memory device, a memory device other than a flash memory device may be used. Further, a memory area of the nonvolatile semiconductor memory device may be formed using a plurality of ICs. The flash memory device may specify the batch write timing by referring to CPLBA (transfer completion pointer) by itself instead of an instruction from the memory manager. CPLBA (transfer completion pointer) may be set at any timing during transfer of a plurality of data blocks.
1 ハードディスク・ドライブ、10 エンクロージャ、11 磁気ディスク
12 ヘッド・スライダ、13 アーム・エレクトロニクス、14 スピンドル・モータ
15 ボイス・コイル・モータ、16 アクチュエータ、20 回路基板
21 リード・ライト・チャネル、22 モータ・ドライバ・ユニット
23 ハードディスク・コントローラ/マイクロ・プロセッサ・ユニット
24 ランダム・アクセス・メモリ、25 フラッシュ・メモリ装置
231 マイクロ・プロセッサ・ユニット、232 ハードディスク・コントローラ
321 レジスタ群、322 メモリ・マネージャ
241 リング・バッファ、251 フラッシュ・メモリ装置内のバッファ
252 フラッシュ・メモリ装置のセル・アレイ、253 フラッシュ・コントローラ
DESCRIPTION OF
Claims (10)
前記リング・バッファから転送されたデータを格納するディスクと、
前記リング・バッファに対して、転送ポインタと転送完了ポインタと転送中断ポインタと、を設定するバッファ制御部と、
前記転送ポインタに従ってデータ・ブロック毎にデータを前記リング・バッファから転送し、前記転送中断ポインタに従ってデータ転送を中断し、前記転送完了ポインタに従ってデータ転送を完了する転送処理部と、
前記リング・バッファから転送されたデータをセル・アレイに格納する不揮発性半導体メモリ装置と、を有し、
前記バッファ制御部は、一または複数のデータ・ブロックのそれぞれに対応する転送ポインタと転送中断ポインタとを設定し、さらに、最後データ・ブロックに対応する転送ポインタと転送完了ポインタとを設定し、
前記転送処理部は、前記対応する転送ポインタと転送中断ポインタとに従って前記一または複数のデータ・ブロックを前記不揮発性半導体メモリ装置に順次転送し、その後、前記転送ポインタと前記転送完了ポインタに従って前記最後データ・ブロックを前記不揮発性半導体メモリ装置に転送し、
前記不揮発性半導体メモリ装置は、前記最後データ・ブロックを受け取ると、受け取った前記一または複数のデータ・ブロック及び前記最後データ・ブロックを、まとめて前記セル・アレイに格納する、
ディスク・ドライブ装置。 A ring buffer to store data from the host;
A disk for storing data transferred from the ring buffer;
A buffer control unit for setting a transfer pointer, a transfer completion pointer, and a transfer interruption pointer for the ring buffer;
A transfer processing unit that transfers data from the ring buffer for each data block according to the transfer pointer, interrupts data transfer according to the transfer interrupt pointer, and completes data transfer according to the transfer completion pointer;
A nonvolatile semiconductor memory device for storing data transferred from the ring buffer in a cell array,
The buffer control unit sets a transfer pointer and a transfer interruption pointer corresponding to each of one or a plurality of data blocks, and further sets a transfer pointer and a transfer completion pointer corresponding to the last data block,
The transfer processing unit sequentially transfers the one or more data blocks to the non-volatile semiconductor memory device according to the corresponding transfer pointer and transfer interrupt pointer, and then the last according to the transfer pointer and the transfer completion pointer. Transferring data blocks to the non-volatile semiconductor memory device;
When the non-volatile semiconductor memory device receives the last data block, the non-volatile semiconductor memory device collectively stores the received one or more data blocks and the last data block in the cell array.
Disk drive device.
前記バッファ制御部は、前記中断の通知を受けると、次のデータ・ブロックに対応したポインタ設定を行う、
請求項1に記載のディスク・ドライブ装置。 The transfer processing unit notifies the buffer control unit of the transfer interruption for each transfer interruption pointer,
When the buffer control unit receives the interruption notification, the buffer control unit sets a pointer corresponding to the next data block.
The disk drive device according to claim 1.
前記不揮発性半導体メモリが一つのデータ・ブロックのみを前記セル・アレイに格納する場合において、前記転送処理部は、前記一つのデータ・ブロックの転送中に転送データのアドレスが対応する転送中断ポインタに追いついた場合、その転送を中断する、
請求項1に記載のディスク・ドライブ装置。 The transfer interruption pointer corresponds to a position where write data to be transferred next from the host is stored,
In the case where the nonvolatile semiconductor memory stores only one data block in the cell array, the transfer processing unit uses a transfer interrupt pointer corresponding to a transfer data address during transfer of the one data block. If it catches up, interrupt the transfer,
The disk drive device according to claim 1.
請求項3に記載のディスク・ドライブ装置。 While the transfer processing unit transfers the plurality of data blocks and the last data block, the position of the transfer interruption pointer is controlled independently of a write command.
The disk drive device according to claim 3.
請求項3に記載のディスク・ドライブ装置。 The transfer processing unit interrupts the transfer when the address of the transfer data catches up with the interrupt pointer during data transfer to the disk,
The disk drive device according to claim 3.
リング・バッファから転送する第1データ・ブロックに対応した転送ポインタと転送中断ポインタとを設定し、
前記転送ポインタに従って前記第1データ・ブロックを前記不揮発性半導体メモリ装置に転送し、前記転送中断ポインタに従って前記不揮発性半導体メモリ装置へのデータ転送を中断し、
前記リング・バッファから転送する第2データ・ブロックに対応する転送ポインタと転送完了ポインタとを設定し、
前記転送ポインタに従って前記第2データ・ブロックを前記不揮発性半導体メモリ装置に転送し、前記転送完了ポインタに従って前記不揮発性半導体メモリ装置へのデータ転送を完了し、
前記第2データ・ブロックの転送後に、前記第1及び前記第2データ・ブロックをまとめて前記セル・アレイに格納する、方法。 In a disk drive device having a disk for storing data and a nonvolatile semiconductor memory device, a method for storing data in a cell array of the nonvolatile semiconductor memory device,
Set the transfer pointer and transfer interrupt pointer corresponding to the first data block transferred from the ring buffer,
Transferring the first data block to the non-volatile semiconductor memory device according to the transfer pointer, interrupting data transfer to the non-volatile semiconductor memory device according to the transfer interrupt pointer;
A transfer pointer and a transfer completion pointer corresponding to the second data block transferred from the ring buffer are set;
Transferring the second data block to the nonvolatile semiconductor memory device according to the transfer pointer, completing data transfer to the nonvolatile semiconductor memory device according to the transfer completion pointer;
A method of storing the first and second data blocks together in the cell array after transferring the second data block.
前記第1データ・ブロック転送後、前記第3データ・ブロックに対応した転送ポインタと転送中断ポインタとの設定する、
請求項5に記載の方法。 Transferring a third data block to the nonvolatile semiconductor memory device between the first data block and the second data block;
After the transfer of the first data block, a transfer pointer and a transfer interruption pointer corresponding to the third data block are set.
The method of claim 5.
一つのデータ・ブロックのみを前記セル・アレイに格納する場合において、前記一つのデータ・ブロックの転送中に転送データのアドレスが対応する転送中断ポインタに追いついた場合、その転送を中断する、
請求項1に記載のディスク・ドライブ装置。 The transfer interruption pointer corresponds to a position where write data to be transferred next from the host is stored,
In the case where only one data block is stored in the cell array, if the transfer data address catches up with the corresponding transfer interrupt pointer during the transfer of the one data block, the transfer is interrupted.
The disk drive device according to claim 1.
請求項8に記載のディスク・ドライブ装置。 While transferring the first and second data blocks, the position of the transfer interrupt pointer is controlled independently of a write command.
The disk drive device according to claim 8.
請求項8に記載のディスク・ドライブ装置。 If the transfer data address catches up with the interrupt pointer during data transfer to the disk, the transfer is interrupted.
The disk drive device according to claim 8.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007217560A JP2009054209A (en) | 2007-08-23 | 2007-08-23 | Disk drive device having nonvolatile semiconductor memory device and method of storing data in nonvolatile semiconductor memory device in the disk drive device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007217560A JP2009054209A (en) | 2007-08-23 | 2007-08-23 | Disk drive device having nonvolatile semiconductor memory device and method of storing data in nonvolatile semiconductor memory device in the disk drive device |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009054209A true JP2009054209A (en) | 2009-03-12 |
Family
ID=40505165
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007217560A Pending JP2009054209A (en) | 2007-08-23 | 2007-08-23 | Disk drive device having nonvolatile semiconductor memory device and method of storing data in nonvolatile semiconductor memory device in the disk drive device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009054209A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101820422A (en) * | 2010-03-30 | 2010-09-01 | 南京恩瑞特实业有限公司 | Safe computer message buffer implementation method |
JP2012521032A (en) * | 2009-03-20 | 2012-09-10 | インディリンクス カンパニー リミテッド | SSD controller and operation method of SSD controller |
-
2007
- 2007-08-23 JP JP2007217560A patent/JP2009054209A/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012521032A (en) * | 2009-03-20 | 2012-09-10 | インディリンクス カンパニー リミテッド | SSD controller and operation method of SSD controller |
CN101820422A (en) * | 2010-03-30 | 2010-09-01 | 南京恩瑞特实业有限公司 | Safe computer message buffer implementation method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2009020986A (en) | Disk drive device and method for storing table for managing data on non-volatile semiconductor memory area in disk drive device | |
US7320050B2 (en) | Data transmission control method and storage device | |
JP2008243269A (en) | Disk drive device and data rewrite method | |
CN111696586B (en) | Magnetic disk apparatus and control method thereof | |
JP2007200537A (en) | Hybrid disk drive and method of controlling data of hybrid disk drive | |
JP2008034085A (en) | Disk drive with non-volatile memory having multiple operating modes | |
US6957311B2 (en) | Data storage apparatus, computer apparatus, data processing apparatus, and data processing method | |
US20150113208A1 (en) | Storage apparatus, cache controller, and method for writing data to nonvolatile storage medium | |
US20060095693A1 (en) | Method for communicating between host and storage device, storage device, host, and system comprising storage device and host | |
JP4679943B2 (en) | Data storage device and data rewrite processing method in nonvolatile memory thereof | |
US8117491B2 (en) | Disk-drive device and method for error recovery thereof | |
US7451261B2 (en) | Data storage device and control method with buffer control thereof | |
JP2009054209A (en) | Disk drive device having nonvolatile semiconductor memory device and method of storing data in nonvolatile semiconductor memory device in the disk drive device | |
US20130194696A1 (en) | Disk drive and write control method | |
JP4919983B2 (en) | Data storage device and data management method in data storage device | |
US8693130B2 (en) | Magnetic disk device and control method thereof, and information processor | |
US20080270672A1 (en) | Disk drive device and method for accessing disk thereof | |
US20060129716A1 (en) | Data storage device and buffer control method thereof | |
JP5331670B2 (en) | Magnetic disk drive and refresh / write method thereof | |
JP5030387B2 (en) | Data storage device | |
US20150205543A1 (en) | Storage device and data storing method | |
US20140068178A1 (en) | Write performance optimized format for a hybrid drive | |
JP6178287B2 (en) | Storage device and control method | |
JP5221714B2 (en) | Magnetic disk apparatus, control method, and information processing apparatus | |
JP2010044820A (en) | Recorder and recording method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20100510 |