JP2006018419A - Storage device - Google Patents

Storage device Download PDF

Info

Publication number
JP2006018419A
JP2006018419A JP2004193680A JP2004193680A JP2006018419A JP 2006018419 A JP2006018419 A JP 2006018419A JP 2004193680 A JP2004193680 A JP 2004193680A JP 2004193680 A JP2004193680 A JP 2004193680A JP 2006018419 A JP2006018419 A JP 2006018419A
Authority
JP
Japan
Prior art keywords
transfer
data
memory
card
sector
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2004193680A
Other languages
Japanese (ja)
Other versions
JP4311288B2 (en
Inventor
Keiichi Ishida
景一 石田
Hiromasa Fukushima
宏昌 福島
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2004193680A priority Critical patent/JP4311288B2/en
Publication of JP2006018419A publication Critical patent/JP2006018419A/en
Application granted granted Critical
Publication of JP4311288B2 publication Critical patent/JP4311288B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To solve the following problems of a recording device performing striping record: a large-capacity transfer buffer is required for transfer in striping order, and parallel transfer cannot be performed until completion of the transfer of one striping unit. <P>SOLUTION: A changeover means and a plurality of storage medium control means are controlled such that data transfer is performed between a host interface and a plurality of transfer buffer memories while changing over the plurality of transfer buffer memories in a block unit smaller than the striping unit, and that data transfer is continuously performed in the striping unit between the plurality of transfer buffer memories and a plurality of storage means. <P>COPYRIGHT: (C)2006,JPO&NCIPI

Description

本発明は、メモリカード、ハードディスク等の記憶手段を複数使用した、ホスト機器に対しては単一のドライブとしてインターフェースする記憶装置に関する。   The present invention relates to a storage device that uses a plurality of storage means such as a memory card and a hard disk and interfaces with a host device as a single drive.

フラッシュメモリを用いたカード型の記録媒体であるメモリカードとしては、コンパクトフラッシュ(登録商標)、SDメモリーカード等が開発されている。メモリカードは、他の記録媒体と比較して小型、低消費電力、ランダムアクセス可能等の特長があり、このため、デジタルスチルカメラ、携帯電話等の携帯機器に広く利用されている。   As a memory card which is a card type recording medium using a flash memory, a compact flash (registered trademark), an SD memory card, and the like have been developed. The memory card has features such as small size, low power consumption, and random access as compared with other recording media, and is therefore widely used in portable devices such as digital still cameras and mobile phones.

しかしながら、例えばメモリカードに映像情報のような大容量のデータをリアルタイムに記録しようとした場合には、メモリカードで実現できるデータ転送レートと記憶容量によって、記録する画面の解像度、フレームレート、圧縮率、記録可能時間等が制限され、その応用範囲が限られる。例えば、メモリカードを記録媒体とするビデオカメラであれば、磁気テープを記録媒体とするVTRと同等の高画質、長時間記録を実現することは困難である。   However, when recording a large amount of data such as video information in a memory card in real time, for example, the resolution, frame rate, and compression rate of the screen to be recorded depends on the data transfer rate and storage capacity that can be realized by the memory card. The recordable time is limited, and its application range is limited. For example, in a video camera using a memory card as a recording medium, it is difficult to realize high image quality and long-time recording equivalent to a VTR using a magnetic tape as a recording medium.

このようなメモリカードの短所を補うため、装置内に複数のメモリカードを装着し、ストライピングによって大容量、高転送レートを持つ単一のディスク装置(RAID 0:Redundant Arrays of Inexpensive Disks 0)を実現する方式が、特許文献1に開示されている。   To compensate for the shortcomings of such memory cards, a single disk device (RAID 0: Redundant Arrays of Inexpensive Disks 0) with a large capacity and high transfer rate is realized by installing multiple memory cards in the device and striping. A method to do this is disclosed in Patent Document 1.

また特許文献2には、512バイトのブロック単位でアクセスできる複数の半導体メモリ装置をブロック単位でストライピングし、1Mバイトのデータ転送バッファと複数の半導体メモリ装置との間で並列にデータ転送を行うことによってデータ転送バッファ上でデータをまとめ、データ転送バッファとホスト機器との間で単一のSCSIインターフェースを介してデータ転送するような、記憶装置が開示されている。   In Patent Document 2, a plurality of semiconductor memory devices that can be accessed in 512-byte block units are striped in block units, and data transfer is performed in parallel between a 1-Mbyte data transfer buffer and a plurality of semiconductor memory devices. A storage device is disclosed in which data is collected on a data transfer buffer and transferred between the data transfer buffer and a host device via a single SCSI interface.

ここで、現在コンピュータシステムやコンピュータを組み込んだシステムにおいて一般的に用いられているバス(ホストバス)について、PCIバスを例に挙げて説明する。PCIバスはクロック周波数33MHz、データ幅32ビットのバスであり、1クロックで4バイトのデータ転送を行うことができる。このとき、転送先のアドレスはデータと同じ32ビットのバスを時分割して示される。すなわち、PCIバスにおける1回の転送は、転送先のアドレスおよび転送コマンドを示すクロックサイクル(アドレスフェーズ)と、それに続く複数の転送データを示す複数のクロックサイクル(データフェーズ)から成り、アドレスフェーズで示されたアドレスを先頭アドレスとし、連続するデータ数をメモリサイズとするメモリ領域のデータを連続転送することができる。したがって、PCIバスの瞬間的な最大転送レートは132MB/sとなる。   Here, a bus (host bus) generally used in a computer system or a system incorporating a computer will be described by taking a PCI bus as an example. The PCI bus is a bus having a clock frequency of 33 MHz and a data width of 32 bits, and can transfer 4-byte data in one clock. At this time, the transfer destination address is shown by time-sharing a 32-bit bus that is the same as the data. That is, one transfer on the PCI bus consists of a clock cycle (address phase) indicating a transfer destination address and a transfer command, and a plurality of clock cycles (data phase) indicating a plurality of transfer data subsequent thereto. Data in the memory area having the indicated address as the head address and the number of continuous data as the memory size can be transferred continuously. Therefore, the instantaneous maximum transfer rate of the PCI bus is 132 MB / s.

一方、例えばSDメモリーカードでは、50MHzクロックで4ビット幅のバスによるデータ転送が規定されており、最大25MB/sのデータ転送が可能である。このように、SDメモリーカードの最大データ転送レートは、PCIバスの最大データ転送レートよりずっと小さいので、SDメモリーカードとシステムのメインメモリとの間でPCIバスを介してデータ転送を行う場合には、データ転送バッファメモリが必要になる。   On the other hand, for example, in an SD memory card, data transfer using a 4-bit bus with a 50 MHz clock is defined, and data transfer of a maximum of 25 MB / s is possible. Thus, since the maximum data transfer rate of the SD memory card is much smaller than the maximum data transfer rate of the PCI bus, when data is transferred between the SD memory card and the main memory of the system via the PCI bus. Data transfer buffer memory is required.

特に、複数のSDメモリーカードに対するデータ転送を、1つのPCIバス上で時分割で切り替えて行う場合、切り替えの方法によっては大きなデータ転送バッファメモリが必要になるので注意が必要である。   In particular, when data transfer to a plurality of SD memory cards is performed by switching in a time division manner on one PCI bus, it should be noted that a large data transfer buffer memory is required depending on the switching method.

例えば特許文献2のように、512バイトのブロック毎に、すなわちストライピング単位を512バイトとして8つのメモリカードにストライピングしている場合、各メモリカードにはメインメモリ上で連続したアドレスのデータが1ブロック(512バイト)単位で記録されることになる。そして各メモリカード〜データ転送バッファ間ではほぼ同時並列に低速でデータ転送を行う一方、ホストバスを介してデータ転送バッファ〜メインメモリ間ではアドレス順に高速転送する。1つのメモリカードのデータをホストバス上で転送している間、他のメモリカードは、データ転送バッファへのデータ転送を並行して行わなければ全体として高速なデータ転送が実現できないので、少なくとも512バイトのブロックサイズのメモリカード枚数分、すなわちここでは8倍のデータ転送バッファが必要になる。   For example, as in Patent Document 2, when the striping unit is 512 bytes and striping is performed on eight memory cards, one block of data of continuous addresses on the main memory is stored in each memory card. It is recorded in units of (512 bytes). Data is transferred between each memory card and the data transfer buffer at approximately the same time and at a low speed, while data is transferred between the data transfer buffer and the main memory via the host bus in the order of addresses. While the data of one memory card is transferred on the host bus, the other memory cards cannot achieve high-speed data transfer as a whole unless data transfer to the data transfer buffer is performed in parallel. A data transfer buffer corresponding to the number of memory cards having a block size of bytes, that is, eight times the data transfer buffer is required here.

ところで、各メモリカードのアクセス単位である512バイトのブロックサイズは、ソフトウエアから見たドライブの互換性を高めるために、従来のハードディスクにおけるアクセス単位(セクタ)と同じに設定されたものである。これに対して、メモリカードで使用されているフラッシュメモリの消去単位・書き込み単位は、内部メモリのセル構造に応じて最適に選ばれ、メモリ容量が大きくなるに従って512バイトよりも大きくなる傾向がある。そのような場合でも、ホスト機器のソフトウエア上の互換性を考慮して512バイト単位のアクセスを実現するためには、転送バッファを使っていわゆるリード・モデファイ・ライト処理を行うことが必要となる。例えば、フラッシュメモリの消去単位が2Kバイトであるときに512バイトのみの書き込みを行うと、メモリカード内部では書き替える512バイトを含む2Kバイトをいったん転送バッファへ読み出し、そのうちの512バイトを転送バッファ上で書き替え、書き替えられた転送バッファの内容2Kバイトをフラッシュメモリ上の消去済の消去単位ブロックへ書き込む処理を行う。   By the way, the 512-byte block size, which is the access unit of each memory card, is set to be the same as the access unit (sector) in the conventional hard disk in order to improve drive compatibility as viewed from the software. On the other hand, the erase unit / write unit of the flash memory used in the memory card is optimally selected according to the cell structure of the internal memory, and tends to become larger than 512 bytes as the memory capacity increases. . Even in such a case, it is necessary to perform a so-called read-modify-write process using a transfer buffer in order to realize 512-byte access in consideration of the software compatibility of the host device. . For example, when only 512 bytes are written when the erase unit of the flash memory is 2 Kbytes, 2 Kbytes including 512 bytes to be rewritten inside the memory card are once read to the transfer buffer, and 512 bytes of them are stored on the transfer buffer. The process of writing the 2K bytes of the rewritten transfer buffer contents into the erased erase unit block in the flash memory is performed.

このため、フラッシュメモリの消去単位より小さいブロックのみの書き込み性能は、そのフラッシュメモリの最大書き込み性能よりも低くなる。このとき、ストライピング単位が消去単位よりも小さいと、全てのメモリカードに対してリード・モデファイ・ライトが必要になるので、書き込みが遅いセクタ数の範囲が大きくなってしまう。したがって、より高い転送レートを実現するためには、ストライピング単位をフラッシュメモリの消去単位と同じか、その整数倍のサイズとすることが望ましい。
特開2000−207137号公報(第3頁、図1) 特開平8−235076号公報(第5〜6頁、図7)
For this reason, the write performance of only the blocks smaller than the erase unit of the flash memory is lower than the maximum write performance of the flash memory. At this time, if the striping unit is smaller than the erasing unit, read / modify / write is required for all the memory cards, so that the range of the number of sectors in which writing is slow increases. Therefore, in order to realize a higher transfer rate, it is desirable that the striping unit is the same as the erase unit of the flash memory or an integral multiple of the erase unit.
JP 2000-207137 A (page 3, FIG. 1) JP-A-8-235076 (pages 5-6, FIG. 7)

しかしながらこのような従来の記憶装置の場合、データ転送バッファに必要な容量は、ストライピング単位(フラッシュメモリの消去単位またはその整数倍)とメモリカード数の積になるので、さらに大きな容量のバッファが必要になるという問題点があった。   However, in the case of such a conventional storage device, the capacity required for the data transfer buffer is the product of the striping unit (flash memory erase unit or an integral multiple thereof) and the number of memory cards, so a buffer with a larger capacity is required. There was a problem of becoming.

またストライピングを行う場合には、データ転送開始時に最初にアクセスするデータブロックについて、メモリカードとデータ転送バッファとの間でデータ転送が完了するまでの待ち時間が生じる。そして、ストライピング単位が大きくなると上述のようにデータ転送バッファサイズが大きくなるためにこの時間が長くなることにつながる。その結果、一連のデータ転送の開始時におけるレイテンシが増加するという問題点があった。   In the case of performing striping, there is a waiting time until the data transfer is completed between the memory card and the data transfer buffer for the data block to be accessed first at the start of data transfer. When the striping unit is increased, the data transfer buffer size is increased as described above, and this time is increased. As a result, there is a problem that latency at the start of a series of data transfer increases.

本発明は上記の問題点に鑑み、複数メモリカードの並列動作によるストライピングを使用した高レートデータ転送を、小容量の転送バッファを用いて実現可能とする記憶装置を提供することを目的とする。   In view of the above problems, an object of the present invention is to provide a storage device that can realize high-rate data transfer using striping by parallel operation of a plurality of memory cards using a small-capacity transfer buffer.

本発明は上記の問題点を解決するために、
ホストインタフェースを介してホスト機器との間で入出力されるデータを所定のストライピング単位で複数の記憶媒体にストライピング記録および再生を行う記憶装置であって、前記複数の記憶媒体のそれぞれに対して入出力されるデータを一時的に記憶する複数の転送バッファメモリと、対応する前記複数の記憶媒体と前記複数の転送バッファメモリとの間のデータ転送を制御する複数の記憶媒体制御手段と、前記ホストインタフェースと前記複数の転送バッファメモリとの間のデータ転送経路を切り替える切替手段と、前記ストライピング単位よりも小さいブロック単位で前記複数の転送バッファメモリを切り替えながら転送データを前記ホストインタフェースと前記複数の転送バッファメモリとの間でデータ転送するとともに、ストライピング単位で連続して前記複数の転送バッファメモリと前記複数の記憶手段との間でデータ転送するように、前記切替手段と前記複数の記憶媒体制御手段とを制御する制御手段とを有する構成としたものである。
In order to solve the above problems, the present invention
A storage device that records and reproduces data input / output to / from a host device via a host interface in a plurality of storage media in a predetermined striping unit, and is input to each of the storage media. A plurality of transfer buffer memories for temporarily storing output data; a plurality of storage medium control means for controlling data transfer between the corresponding plurality of storage media and the plurality of transfer buffer memories; and the host Switching means for switching a data transfer path between the interface and the plurality of transfer buffer memories; and transferring data to the host interface and the plurality of transfers while switching the plurality of transfer buffer memories in units of blocks smaller than the striping unit. In addition to transferring data to and from the buffer memory, A control means for controlling the switching means and the plurality of storage medium control means so as to transfer data between the plurality of transfer buffer memories and the plurality of storage means continuously in a ping unit; It is a thing.

上記のように本発明によれば、記憶装置を構成する複数の低速な記憶媒体の特性によって決まるストライピング単位が比較的大きい場合でも、ストライピング単位とは無関係でより小さい所定のデータ数毎に、ホスト機器との間のデータ転送を切り替えることができるので、ホスト機器から見たデータアクセスの待ち時間を小さくできるという利点がある。また、データ転送の単位を小さくできるので、データFIFOの容量を小さくでき、装置規模の増加を抑制することができる。   As described above, according to the present invention, even when the striping unit determined by the characteristics of a plurality of low-speed storage media constituting the storage device is relatively large, the host is separated for each predetermined number of smaller data regardless of the striping unit. Since data transfer to and from the device can be switched, there is an advantage that the data access waiting time seen from the host device can be reduced. In addition, since the data transfer unit can be reduced, the capacity of the data FIFO can be reduced, and an increase in the device scale can be suppressed.

以下、図面を参照しながら本発明の実施形態について説明する。本発明の実施形態では、記憶媒体として4枚のSDメモリーカードを用いて、論理的に1つのRAIDドライブを構成した記憶装置について説明する。なお、記憶媒体としてはコンパクトフラッシュ(登録商標)等の他のメモリカードでもよいし、光ディスク、ハードディスク等でもよい。また、その数についても4つ以外に2つ、8つ等でも構わない。   Hereinafter, embodiments of the present invention will be described with reference to the drawings. In the embodiment of the present invention, a storage device that logically configures one RAID drive using four SD memory cards as storage media will be described. The storage medium may be another memory card such as a compact flash (registered trademark), an optical disk, a hard disk, or the like. Also, the number may be two, eight, etc. in addition to four.

(実施の形態1)
まず、本発明の基本構成を実施の形態1として、説明を簡略化するために次のような仮定の下で説明する。すなわち、ホスト機器がメインメモリ上に転送用バッファとして確保するメモリ領域は、物理的または論理的に連続した一つの領域であるということである。しかしながら、実施の形態2で後述するように、メモリ領域が複数の領域に分かれた場合であっても基本的な構成は共通である。
(Embodiment 1)
First, the basic configuration of the present invention will be described as the first embodiment under the following assumptions in order to simplify the description. In other words, the memory area secured as a transfer buffer on the main memory by the host device is one area that is physically or logically continuous. However, as will be described later in Embodiment 2, the basic configuration is common even when the memory area is divided into a plurality of areas.

図1は、本実施形態における記憶装置とホスト機器の構成を示すブロック図である。
本発明のRAIDドライブ101は、ホストインタフェース133を介してホスト機器102との間で入出力されるデータを所定のストライピング単位で複数の記憶媒体にストライピング記録および再生を行う記憶装置である。RAIDドライブ101は、RAIDドライブ101にデータを読み書きするホスト機器102と、ホストインタフェース133を介して接続されている。ホスト機器102の例としては、ビデオカメラやビデオレコーダ等の映像機器のほかに、PC等が挙げられる。ホスト機器102とRAIDドライブ101とは、一体に構成されていてもよいし、ケーブル等で接続される構成でもよい。RAIDドライブ101は、複数の記憶媒体として4つのSDメモリーカード110、111、112、113を内蔵し、これらをホスト機器102に対して論理的に単一のディスクドライブとしてアクセスできるようにしている(RAID 0)。複数の転送バッファメモリとしての4つのデータFIFO117、118、119、120は、4つのSDメモリーカード110、111、112、113それぞれに対して入出力されるデータを一時的に記憶するバッファメモリである。複数の記憶媒体制御手段としての4つのメモリカード制御回路121、122、123、124は、それぞれSDメモリーカードとデータFIFOとの間でのデータ転送を制御する。制御手段134は、ホストインタフェース133経由でホスト機器102から入力されたコマンドと転送データのアドレスとに基づいて、切替回路125および複数のメモリカード制御回路を制御する。切替手段としての切替回路125は、制御手段134からの制御信号に基づいて4つのデータFIFO117、118、119、120とホストインタフェース133との間の転送経路を切り替える。
FIG. 1 is a block diagram illustrating a configuration of a storage device and a host device in the present embodiment.
The RAID drive 101 of the present invention is a storage device that records and reproduces data input / output to / from the host device 102 via the host interface 133 in a plurality of storage media in a predetermined striping unit. The RAID drive 101 is connected to a host device 102 that reads / writes data from / to the RAID drive 101 via a host interface 133. Examples of the host device 102 include a PC and the like in addition to video devices such as a video camera and a video recorder. The host device 102 and the RAID drive 101 may be configured integrally, or may be configured to be connected by a cable or the like. The RAID drive 101 contains four SD memory cards 110, 111, 112, and 113 as a plurality of storage media, and these can be accessed logically as a single disk drive to the host device 102 ( RAID 0). Four data FIFOs 117, 118, 119, and 120 as a plurality of transfer buffer memories are buffer memories that temporarily store data input / output to / from the four SD memory cards 110, 111, 112, and 113, respectively. . The four memory card control circuits 121, 122, 123, and 124 as a plurality of storage medium control means control data transfer between the SD memory card and the data FIFO, respectively. The control unit 134 controls the switching circuit 125 and the plurality of memory card control circuits based on the command input from the host device 102 via the host interface 133 and the transfer data address. A switching circuit 125 as a switching unit switches a transfer path between the four data FIFOs 117, 118, 119, and 120 and the host interface 133 based on a control signal from the control unit 134.

本実施形態において、ホスト機器102からのデータアクセスの最小単位は1セクタ(512バイト)とする。一方、4つのデータFIFO117、118、119、120は、それぞれセクタサイズよりも小さい128バイトずつの容量を持ち、ホストインタフェース133と4つのデータFIFOとの間のデータ転送は、切替回路125にて128バイト単位で切り替えて行うものとする。   In this embodiment, the minimum unit of data access from the host device 102 is 1 sector (512 bytes). On the other hand, the four data FIFOs 117, 118, 119, 120 each have a capacity of 128 bytes smaller than the sector size, and data transfer between the host interface 133 and the four data FIFOs is performed by the switching circuit 125 at 128. It is assumed that switching is performed in units of bytes.

上記のような構成のRAIDドライブ101において、ホスト機器102から見たRAIDドライブ内データの論理的なアドレスと、4つのSDメモリーカード110、111、112、113それぞれの、メモリカード制御回路121、122、123、124から見たカード内データのアドレスの関係を図2に示す。各SDメモリーカード110、111、112、113は、SDメモリーカード規格上の最小アクセス単位である512バイトのブロック単位でアクセスできる。このブロックをセクタと呼び、図2では小さい四角形で表している。図2で、4つの縦に並んだセクタ列が、それぞれ4つのSDメモリーカード110、111、112、113の記憶領域を表している。各セクタにはSDメモリーカード内での通し番号であるSDメモリーカード内セクタ番号が与えられている。この番号が各SDメモリーカード内でセクタを指定するアドレスになり、メモリカード制御回路121、122、123、124から見たカード内データのアドレスとなる。   In the RAID drive 101 configured as described above, the logical address of the data in the RAID drive viewed from the host device 102 and the memory card control circuits 121 and 122 for the four SD memory cards 110, 111, 112, and 113, respectively. , 123, and 124 show the relationship between the addresses of the data in the card. Each SD memory card 110, 111, 112, 113 can be accessed in 512-byte block units, which is the minimum access unit according to the SD memory card standard. This block is called a sector, and is represented by a small square in FIG. In FIG. 2, four vertically arranged sector columns represent storage areas of four SD memory cards 110, 111, 112, and 113, respectively. Each sector is given a sector number in the SD memory card which is a serial number in the SD memory card. This number becomes an address for designating a sector in each SD memory card, and becomes an address of data in the card as seen from the memory card control circuits 121, 122, 123, and 124.

同様に、RAIDドライブ101内の全データを通して各セクタに通し番号であるRAIDドライブ内セクタ番号が与えられている。このRAIDドライブ内セクタ番号が、ホスト機器102から見た論理的アドレスとなる。図2で各セクタを表わす四角形内に、これら2種類のセクタ番号を16進数で表示している。左側の数字がRAIDドライブ内セクタ番号、右側の数字がSDメモリーカード内セクタ番号を表す。また各SDメモリーカード110、111、112、113には、それぞれメモリカード番号#0、#1、#2、#3を割り当てて区別することにする。   Similarly, a sector number in the RAID drive that is a serial number is given to each sector through all data in the RAID drive 101. The RAID drive sector number is a logical address viewed from the host device 102. In FIG. 2, these two types of sector numbers are displayed in hexadecimal numbers in a square representing each sector. The number on the left represents the sector number in the RAID drive, and the number on the right represents the sector number in the SD memory card. Further, memory card numbers # 0, # 1, # 2, and # 3 are assigned to the SD memory cards 110, 111, 112, and 113, respectively, to distinguish them.

図2に示したように、本実施形態のRAIDドライブ101は、2Kバイト(=4セクタ)をストライピング単位としてストライピングを行うため、RAIDドライブ内セクタ番号は、順番に1つのSDメモリーカードの連続する4セクタに割り当てられ、その続きが次のSDメモリーカードの連続する4セクタに割り当てられるというように、4セクタ毎に4つのメモリカードを巡回するように割り当てられる。なお、SDメモリーカード110、111、112、113の消去単位もストライピング単位と同じ2Kバイトとする。すなわち、各SDメモリーカードへのデータ転送がストライピング単位である2Kバイトのブロック単位で行われる限り、リード・モデファイ・ライトは発生せず、これによる書き込み性能の低下はない。   As shown in FIG. 2, since the RAID drive 101 of this embodiment performs striping with 2 Kbytes (= 4 sectors) as a striping unit, the sector numbers in the RAID drive are consecutive from one SD memory card in order. It is assigned to 4 sectors, and the continuation is assigned to 4 consecutive sectors of the next SD memory card. The erasure unit of the SD memory cards 110, 111, 112, and 113 is also 2 Kbytes, which is the same as the striping unit. That is, as long as data transfer to each SD memory card is performed in units of 2 Kbyte blocks, which are striping units, no read / modify / write occurs, and there is no deterioration in write performance due to this.

一方、SDメモリーカード内セクタ番号は、図2に示したように、SDメモリーカード内の先頭セクタから縦に並んだセクタの順番に与えられる。   On the other hand, the sector numbers in the SD memory card are given in the order of the sectors arranged vertically from the head sector in the SD memory card, as shown in FIG.

上記構成のRAIDドライブ101の基本的な動作について、図3、図4を参照して説明する。ここでは、ホスト機器102からRAIDドライブ101へデータを転送する場合について説明するが、RAIDドライブ101からホスト機器102へのデータ転送の場合についても同様である。RAIDドライブ101へのデータ転送の場合、ホスト機器102は、まず転送するデータをメインメモリ108上に確保されるホスト側バッファに格納し、次にRAIDドライブ101に対してデータ転送のコマンドを送る。これに対してRAIDドライブ101はコマンド解釈を行い、ホスト側バッファからRAIDドライブ内のSDメモリーカード110、111、112、113へデータを転送する。   The basic operation of the RAID drive 101 configured as described above will be described with reference to FIGS. Here, a case where data is transferred from the host device 102 to the RAID drive 101 will be described, but the same applies to a case where data is transferred from the RAID drive 101 to the host device 102. In the case of data transfer to the RAID drive 101, the host device 102 first stores the data to be transferred in a host side buffer secured on the main memory 108, and then sends a data transfer command to the RAID drive 101. On the other hand, the RAID drive 101 interprets the command and transfers data from the host side buffer to the SD memory cards 110, 111, 112, and 113 in the RAID drive.

データ転送の概要は次の通りである。制御手段134が、2Kバイトのストライピング単位よりも小さいデータFIFOサイズである128バイトのブロック単位で、データFIFOを切り替えながら、ホストインタフェースとデータFIFOとの間でデータ転送するように、切替回路125を制御する。すなわち、転送データについて、4つのSDメモリーカードに対応する各ストライピング単位から順番に、1ブロックずつを選択して対応するデータFIFOに転送する。そして制御手段134はこれと並行して、メモリカード制御回路を制御することにより、各データFIFOに蓄積されるデータをSDメモリーカードに対して転送し、結果として、ストライピング単位で連続してSDメモリーカードに対してデータ転送を行う。   The outline of data transfer is as follows. The switching circuit 125 is set so that the control unit 134 transfers data between the host interface and the data FIFO while switching the data FIFO in units of 128-byte blocks, which is a data FIFO size smaller than the 2 Kbyte striping unit. Control. That is, for the transfer data, one block is selected in order from each striping unit corresponding to the four SD memory cards and transferred to the corresponding data FIFO. In parallel with this, the control means 134 controls the memory card control circuit to transfer the data accumulated in each data FIFO to the SD memory card. As a result, the SD memory is continuously recorded in the striping unit. Transfer data to the card.

図3は、ホスト機器102のホスト側バッファの概念図である。図中の数字(16進数)はバッファ中のブロック番号を示しており、データFIFOのサイズである128バイトのブロックごとにこの番号が割り当てられている。バッファ上には転送すべきデータがアドレス順に並んでいる。バッファ上のデータは2Kバイトのストライピング単位毎にストライピングされて各SDメモリーカードに転送される。すなわち、その転送先はストライピング単位0がSDメモリーカード#0、ストライピング単位1がSDメモリーカード#1となり、そしてストライピング単位4が再びSDメモリーカード#0と、巡回するように割り当てられる。しかしながら、このバッファ上のデータが直接転送されるデータFIFOのサイズはそれぞれ128バイトであるため、データFIFOへの転送は各ストライピング単位を巡回して先頭から1ブロック(128バイト)ずつ、対応するデータFIFO117、118、119、120に対して行われる。すなわち、ホスト側バッファからのデータ転送順をブロック番号で示すと、00、10、20、30、01、11、21、31、…、0F、1F、2F、3F、40、50、60、70、41、…というようになる。   FIG. 3 is a conceptual diagram of the host side buffer of the host device 102. The number (hexadecimal number) in the figure indicates the block number in the buffer, and this number is assigned to each 128-byte block that is the size of the data FIFO. Data to be transferred are arranged in the order of addresses on the buffer. The data on the buffer is striped for each 2 Kbyte striping unit and transferred to each SD memory card. That is, the transfer destination is assigned such that the striping unit 0 is the SD memory card # 0, the striping unit 1 is the SD memory card # 1, and the striping unit 4 is rotated again with the SD memory card # 0. However, since the size of the data FIFO to which the data on this buffer is directly transferred is 128 bytes, the data FIFO is transferred to the corresponding data in 1-block (128 bytes) from the top by cycling through each striping unit. This is performed for the FIFOs 117, 118, 119, and 120. That is, when the data transfer order from the host side buffer is indicated by a block number, 00, 10, 20, 30, 01, 11, 21, 31, ..., 0F, 1F, 2F, 3F, 40, 50, 60, 70 , 41, and so on.

図4は、ホスト機器102からRAIDドライブ101へのデータ転送をおこなったときのタイミング図である。図4において、横軸は経過時間を表している。説明の便宜上、図中には時刻として0から68までの時刻を付してある。また、図中に記載されている数字は図3で示したホスト側バッファのブロック番号であり、ホスト側バッファ上のどのデータを転送または蓄積しているかを示している。(a)および(f)〜(i)は、各メモリからの読み出しおよび書き込み動作を示し、(b)〜(e)は、データFIFOでのデータ蓄積状況を示し、縦軸がデータ蓄積量を表している。また、本実施形態では便宜上、ホスト側バッファとデータFIFOとの間の転送速度は、データFIFOとSDメモリーカードとの間の転送速度のちょうど4倍であるとする。   FIG. 4 is a timing chart when data transfer from the host device 102 to the RAID drive 101 is performed. In FIG. 4, the horizontal axis represents elapsed time. For the convenience of explanation, the time from 0 to 68 is given as the time in the figure. The numbers described in the figure are the block numbers of the host side buffer shown in FIG. 3 and indicate which data on the host side buffer is transferred or stored. (A) and (f) to (i) show read and write operations from each memory, (b) to (e) show the data accumulation status in the data FIFO, and the vertical axis shows the data accumulation amount. Represents. In this embodiment, for convenience, it is assumed that the transfer rate between the host side buffer and the data FIFO is exactly four times the transfer rate between the data FIFO and the SD memory card.

以下、図4を用いてRAIDドライブ101のデータ転送について説明する。RAIDドライブ101がホスト機器102からデータ転送のコマンドを受け取り、実際にホスト機器102からのデータ転送が開始されると、まず時刻0においてホスト側バッファのブロック番号00から128バイトのデータがRAIDドライブ101に対して転送される。ブロック番号00は、SDメモリーカード#0に転送されるストライピング単位0の先頭ブロックである。制御手段134は、RAIDドライブ101に対して送られたデータ転送コマンドが示すRAIDドライブ内先頭セクタ番号にもとづいて、対応するメモリカード番号と先頭セクタのストライピング単位内でのオフセットを図2を参照して求め、この情報からブロック番号00のデータをデータFIFO117に転送すると決定し、切替回路125を制御する。これにより、ブロック番号00からのデータはデータFIFO117に転送され、蓄積される。転送は時刻1に完了し、(b)の時刻1で示されるようにデータFIFO117にはブロック番号00のデータ128バイト分が蓄積されている。   Hereinafter, data transfer of the RAID drive 101 will be described with reference to FIG. When the RAID drive 101 receives a data transfer command from the host device 102 and actually starts data transfer from the host device 102, first, at time 0, 128-byte data from the block number 00 of the host side buffer is stored in the RAID drive 101. Forwarded to Block number 00 is the first block of striping unit 0 transferred to SD memory card # 0. The control means 134 refers to the offset within the striping unit of the corresponding memory card number and the first sector based on the first sector number in the RAID drive indicated by the data transfer command sent to the RAID drive 101 with reference to FIG. From this information, it is determined that the data of the block number 00 is transferred to the data FIFO 117, and the switching circuit 125 is controlled. As a result, the data from the block number 00 is transferred to the data FIFO 117 and stored. The transfer is completed at time 1, and as shown at time 1 in (b), 128 bytes of data of block number 00 are stored in the data FIFO 117.

次に時刻1において、直前に転送したブロック番号00が属するストライピング単位0の次のストライピング単位1の先頭ブロックである、ブロック番号10のデータがRAIDドライブ101に対して転送される。制御手段134は、直前のブロック番号00の転送時に得たメモリカード番号と先頭セクタのストライピング単位内でのオフセットに基づいて、ブロック番号10がSDメモリーカード#1に転送される先頭ブロックであることを知ることができる。制御手段134はこれに基づきブロック番号10のデータをデータFIFO118に転送すると決定し、切替回路125を制御する。これにより、ブロック番号10のデータはデータFIFO118に転送され、蓄積される。転送は時刻2に完了し、(c)の時刻2で示されるようにデータFIFO118にはブロック番号10のデータ128バイト分が蓄積されている。   Next, at time 1, the data of block number 10, which is the first block of striping unit 1 next to striping unit 0 to which block number 00 transferred immediately before belongs, is transferred to RAID drive 101. The control means 134 determines that the block number 10 is the first block to be transferred to the SD memory card # 1 based on the memory card number obtained at the time of transfer of the immediately preceding block number 00 and the offset within the striping unit of the first sector. Can know. Based on this, the control means 134 determines to transfer the data of the block number 10 to the data FIFO 118 and controls the switching circuit 125. As a result, the data of block number 10 is transferred to the data FIFO 118 and stored. The transfer is completed at time 2, and as shown at time 2 in (c), 128 bytes of data of block number 10 are stored in the data FIFO 118.

同様に、ブロック番号20、ブロック番号30のデータがデータFIFO119、120にそれぞれ転送される((d)の時刻3、(e)の時刻4)。   Similarly, the data of the block number 20 and the block number 30 are transferred to the data FIFOs 119 and 120, respectively (time 3 of (d), time 4 of (e)).

一方、制御手段134は時刻1において、データFIFO117にデータが蓄積されたので、次にメモリカード制御回路121を制御してデータFIFO117のデータをSDメモリーカード110に転送する。データFIFOからSDメモリーカードへの転送はホスト機器からデータFIFOへの転送よりも時間を要する(本実施形態では便宜上4倍)ため、(f)のように時刻1で転送を開始すると、時刻5で転送を完了する。   On the other hand, since the data is stored in the data FIFO 117 at time 1, the control unit 134 next controls the memory card control circuit 121 to transfer the data in the data FIFO 117 to the SD memory card 110. Since the transfer from the data FIFO to the SD memory card requires more time than the transfer from the host device to the data FIFO (four times for convenience in this embodiment), if the transfer is started at time 1 as shown in (f), the time 5 To complete the transfer.

同様に、データFIFO118、119、120のデータはSDメモリーカード111、112、113に転送される。   Similarly, the data in the data FIFOs 118, 119 and 120 is transferred to the SD memory cards 111, 112 and 113.

次に、SDメモリーカード110への転送に注目して説明する。(b)の時刻4のように、ホスト側バッファのブロック番号01のデータがデータFIFO117に対して転送開始される。このとき、データFIFO117にはまだブロック番号00のデータが1/4残っているが、時刻5においてブロック番号00のデータはすべてSDメモリーカード110への転送を完了し、それと同時にブロック番号01のデータがデータFIFO117への蓄積を完了するため、バッファがオーバーフローすることはない。そして(f)の時刻5において、メモリカード制御回路121はブロック番号01のデータをSDメモリーカード110へ転送開始する。ブロック番号00とブロック番号01のデータは連続したデータなので、データFIFO117からSDメモリーカード110へのデータ転送はブロック番号00、01と連続して行われることになる。   Next, the transfer to the SD memory card 110 will be described. As shown at time 4 in (b), transfer of the data of the block number 01 of the host side buffer to the data FIFO 117 is started. At this time, although data 1/4 of block number 00 still remains in data FIFO 117, all data of block number 00 has been completely transferred to SD memory card 110 at time 5, and at the same time, data of block number 01 Completes the accumulation in the data FIFO 117, so that the buffer does not overflow. At time 5 in (f), the memory card control circuit 121 starts transferring the data of the block number 01 to the SD memory card 110. Since the data of block number 00 and block number 01 are continuous data, data transfer from the data FIFO 117 to the SD memory card 110 is performed continuously with block numbers 00 and 01.

同様に、時刻8においてブロック番号02のデータが、時刻12においてブロック番号03のデータがデータFIFO117に転送開始され、時刻9、時刻13においてこれらのデータがデータFIFO117からSDメモリーカード110へ転送開始される。これが繰り返され、最終的にはストライピング単位0の2Kバイト分のデータ、すなわちブロック番号00〜0Fのデータが時間的に連続してSDメモリーカード110に転送される。その結果、SDメモリーカード110には1消去単位分のデータが連続して記録されるので、リードモディファイライドは発生せず、書き込み性能の低下はおこらない。   Similarly, transfer of data of block number 02 at time 8 and transfer of data of block number 03 to data FIFO 117 are started at time 12, and transfer of these data from data FIFO 117 to SD memory card 110 is started at time 9 and time 13. The This is repeated, and finally, 2 Kbytes of data in the striping unit 0, that is, data of block numbers 00 to 0F is transferred to the SD memory card 110 continuously in time. As a result, since data for one erasure unit is continuously recorded on the SD memory card 110, read modification does not occur, and writing performance does not deteriorate.

他のSDメモリーカードについても同様の転送が行われるため、データFIFOの容量が消去単位やセクタサイズよりも小さいにもかかわらず、SDメモリーカードの書き込み性能を低下させることなくRAIDドライブ101へのデータ転送を実現することができる。なお、ストライピング単位4以降のデータについても引き続き連続して転送が行われ、ホスト機器102からのコマンドで要求された転送サイズのデータ転送を完了する。   Since the same transfer is performed for other SD memory cards, the data to the RAID drive 101 is not degraded without degrading the writing performance of the SD memory card even though the capacity of the data FIFO is smaller than the erase unit or sector size. Transfer can be realized. The data after the striping unit 4 is continuously transferred, and the data transfer of the transfer size requested by the command from the host device 102 is completed.

(実施の形態2)
次に第2の実施の形態として、本発明における記憶装置のより一般化された状況での動作について詳細に説明する。
(Embodiment 2)
Next, as a second embodiment, the operation of the storage device according to the present invention in a more generalized situation will be described in detail.

図5は、本実施形態における記憶装置とホスト機器の構成を示すブロック図である。なお、実施の形態1と同様の構成要素については同じ番号を付し、説明を省略する。図5において、RAIDドライブ101はPCカード規格に従う形状を持ち、ホスト機器102との電気的インターフェースにPCカード規格で定められたカードバス103を用いている。このカードバス規格におけるデータ転送は前述のPCIバスと同じであり、カードバス103の信号は、PCIバスブリッジと同様に働くカードバスブリッジ104によって、ホスト機器102のPCIバス105に中継される。また、PCIバス105の信号は、ホストブリッジ106によってホストCPU107とメインメモリ108をつなぐメモリバス109に中継される。   FIG. 5 is a block diagram showing the configuration of the storage device and the host device in the present embodiment. In addition, the same number is attached | subjected about the component similar to Embodiment 1, and description is abbreviate | omitted. In FIG. 5, the RAID drive 101 has a shape conforming to the PC card standard, and uses a card bus 103 defined by the PC card standard for an electrical interface with the host device 102. Data transfer in this card bus standard is the same as that of the aforementioned PCI bus, and the signal of the card bus 103 is relayed to the PCI bus 105 of the host device 102 by the card bus bridge 104 that works in the same way as the PCI bus bridge. The signal of the PCI bus 105 is relayed by the host bridge 106 to the memory bus 109 that connects the host CPU 107 and the main memory 108.

カードバス制御回路116は、カードバス規格の制御手順に従ってカードバス103と内部レジスタバス114および内部DMAバス115の間のデータ転送を行う。切替回路125は、転送制御回路128からの制御信号に基づいて4つのデータFIFO117、118、119、120および転送制御回路128とカードバス制御回路116の間のDMA転送信号を切り替える。コマンドレジスタ126は、カードバス103を通したホスト機器102からのデータ転送コマンドが書き込まれる。コマンド制御回路127は、コマンドレジスタ126に書き込まれたRAIDドライブ101に対するコマンドを解釈し、4つのSDメモリーカード110、111、112、113に対するコマンドを求め、4つのメモリカード制御回路121、122、123、124に対して、それぞれのコマンドを送出する。転送制御回路128は、コマンド制御回路127からのコマンドに基づいて、メインメモリ108上に確保されているホスト側バッファを、4つのSDメモリーカード110、111、112、113に対応する領域に分割し、切り替え回路125を制御して、4つのデータFIFO 117、118、119、120のデータを正しいメモリ領域に転送する。テーブルカウンタ129は、転送制御回路128の制御処理において、メモリ領域ディスクリプタテーブルの読み取りアドレスを保持する。メモリ領域ディスクリプタバッファ130は、4つのSDメモリーカード110、111、112、113に対応するメモリ領域のディスクリプタを保持する。転送カウンタ131は、4つのデータFIFO117、118、119、120の転送データ数などを保持する。   The card bus control circuit 116 performs data transfer between the card bus 103, the internal register bus 114, and the internal DMA bus 115 in accordance with a card bus standard control procedure. The switching circuit 125 switches the DMA transfer signals between the four data FIFOs 117, 118, 119 and 120 and between the transfer control circuit 128 and the card bus control circuit 116 based on the control signal from the transfer control circuit 128. In the command register 126, a data transfer command from the host device 102 through the card bus 103 is written. The command control circuit 127 interprets the command for the RAID drive 101 written in the command register 126, obtains commands for the four SD memory cards 110, 111, 112, and 113, and the four memory card control circuits 121, 122, and 123. , 124, the respective commands are transmitted. Based on the command from the command control circuit 127, the transfer control circuit 128 divides the host side buffer secured on the main memory 108 into areas corresponding to the four SD memory cards 110, 111, 112, and 113. The switching circuit 125 is controlled to transfer the data of the four data FIFOs 117, 118, 119, and 120 to the correct memory area. The table counter 129 holds the read address of the memory area descriptor table in the control process of the transfer control circuit 128. The memory area descriptor buffer 130 holds memory area descriptors corresponding to the four SD memory cards 110, 111, 112, and 113. The transfer counter 131 holds the number of transfer data of the four data FIFOs 117, 118, 119 and 120.

この実施形態においても、ホスト機器からのデータアクセスの最小単位は1セクタ(512バイト)、4つのデータFIFO117、118、119、120のサイズは128バイト、ホストバスであるカードバス上では、128バイト単位で4つのカードのデータ転送を切り替えるものとする。   Also in this embodiment, the minimum unit of data access from the host device is 1 sector (512 bytes), the size of the four data FIFOs 117, 118, 119, and 120 is 128 bytes, and 128 bytes on the card bus that is the host bus. Assume that data transfer of four cards is switched in units.

なお、カードバス制御回路116およびコマンドレジスタ126がホストインタフェースに相当する。また、コマンド制御回路127、転送制御回路128、メモリ領域ディスクリプタバッファ130、テーブルカウンタ129および転送カウンタ131が制御手段に相当する。   The card bus control circuit 116 and the command register 126 correspond to a host interface. The command control circuit 127, the transfer control circuit 128, the memory area descriptor buffer 130, the table counter 129, and the transfer counter 131 correspond to control means.

本実施形態においても、ホスト機器102から見たドライブ内データの論理的なアドレスと、4つのSDメモリーカード110、111、112、113それぞれの、メモリカード制御回路121、122、123、124から見たカード内データのアドレスの関係は図2の通りである。   Also in this embodiment, the logical address of the in-drive data viewed from the host device 102 and the memory card control circuits 121, 122, 123, and 124 of the four SD memory cards 110, 111, 112, and 113, respectively. The relationship of the addresses of the data in the card is as shown in FIG.

以上で説明したようなアドレスマッピングを前提として、以下に本実施形態のRAIDドライブ101の動作を説明する。図6は、RAIDドライブ101とホスト機器102の間でのデータ転送コマンド処理の概略フローチャートである。同図において左側のフローチャートはホスト機器102の処理手順を、右側のフローチャートはRAIDドライブ101の処理手順を表している。   Based on the address mapping as described above, the operation of the RAID drive 101 of this embodiment will be described below. FIG. 6 is a schematic flowchart of data transfer command processing between the RAID drive 101 and the host device 102. In the figure, the flowchart on the left represents the processing procedure of the host device 102, and the flowchart on the right represents the processing procedure of the RAID drive 101.

データ転送の開始にあたって、ホスト機器102は、まず前準備301を行う。前準備301では、メインメモリ108上にホスト側バッファを確保し、(このホスト側バッファを示す)後述のメモリ領域ディスクリプタテーブルと呼ばれる情報を、やはりメインメモリ108上に格納する。また、転送方向がRAIDドライブ101へのデータ書き込みの場合には、転送するデータを、確保したホスト側バッファに格納する。   At the start of data transfer, the host device 102 first performs preparation 301. In preparation 301, a host-side buffer is secured on the main memory 108, and information called a memory area descriptor table (to be described later) (to be described later) is also stored on the main memory 108. When the transfer direction is data writing to the RAID drive 101, the data to be transferred is stored in the secured host side buffer.

次に、ホスト機器102は、コマンド書き込み302において、カードバス103上のプロトコルに従って、コマンドレジスタ126へデータ転送コマンドを書き込み、RAIDドライブ101からのコマンド終了通知待ち状態303に入る。一方、カードバス103からのコマンドレジスタ126へのコマンド書き込みは、カードバス制御回路116によってカードバスプロトコルに従って処理され、得られたデータ転送コマンドはコマンドレジスタ126に格納される。コマンドレジスタ126からコマンドの書き込み通知を受けたコマンド制御回路127は、コマンド書き込み待ち状態305を抜けて、コマンド処理306に移る。   Next, the host device 102 writes a data transfer command to the command register 126 according to the protocol on the card bus 103 in the command writing 302, and enters the command end notification waiting state 303 from the RAID drive 101. On the other hand, command writing from the card bus 103 to the command register 126 is processed by the card bus control circuit 116 according to the card bus protocol, and the obtained data transfer command is stored in the command register 126. Receiving the command write notification from the command register 126, the command control circuit 127 exits from the command write wait state 305 and proceeds to the command processing 306.

コマンド処理306では、コマンドレジスタ126に格納されたデータ転送コマンドに対応して、4つのSDメモリーカード110、111、112、113とメインメモリ108上に確保されたホスト側バッファとの間で、カードバス103を通してデータ転送を行う。このコマンド処理の詳細については後述する。   In the command processing 306, a card is transferred between the four SD memory cards 110, 111, 112, 113 and the host side buffer secured on the main memory 108 in response to the data transfer command stored in the command register 126. Data transfer is performed through the bus 103. Details of this command processing will be described later.

書き込まれたコマンドに対応する全てのデータ転送が終了したら、コマンド制御回路127はコマンド終了通知307に移り、割り込み信号線132によって、ホスト機器102にコマンド処理の終了を通知する。コマンド処理の終了通知を受けたホスト機器102は、必要であれば後処理304を行う。   When all data transfer corresponding to the written command is completed, the command control circuit 127 moves to a command end notification 307 and notifies the host device 102 of the end of command processing through the interrupt signal line 132. Receiving the command processing end notification, the host device 102 performs post-processing 304 if necessary.

以上のように、ホスト機器102からのコマンド書き込みをトリガとして、RAIDドライブ101とホスト機器102の間でコマンド単位のハンドシェイクが行われる。このとき、上記の前準備301で、ホスト機器102がメインメモリ108に確保するメモリ領域には、転送しようとするデータ数以上の領域を確保する必要があるが、メインメモリは通常ホスト機器上で実行している全ての処理(プログラム)で共有されているので、転送データ数以上の連続する領域が確保できない場合があり得る。そこで、転送データ数以上の連続メモリ領域が確保できない場合には、それ以下の領域を複数確保し、それら複数の領域のサイズの合計が転送データ数以上になるようになされる。   As described above, handshaking in units of commands is performed between the RAID drive 101 and the host device 102 using the command writing from the host device 102 as a trigger. At this time, in the preparation 301 described above, it is necessary to secure an area larger than the number of data to be transferred in the memory area secured by the host device 102 in the main memory 108. Since it is shared by all the processes (programs) that are being executed, there may be a case where a continuous area exceeding the number of transfer data cannot be secured. Therefore, when a continuous memory area larger than the number of transfer data cannot be secured, a plurality of areas smaller than that are secured, and the total size of the plurality of areas is equal to or greater than the number of transfer data.

一般に1つのメモリ領域は先頭アドレスとサイズによって特定できるので、先頭アドレスと領域サイズの値から成る、メモリ領域ディスクリプタと呼ばれるデータ構造を定義し、上記のように確保された複数のメモリ領域に対応する、複数のメモリ領域ディスクリプタの配列で、全体のバッファメモリ領域を特定する。この配列はメモリ領域ディスクリプタテーブルと呼ばれ、前述のようにメインメモリ108上に確保される。図7に、本発明の実施形態におけるメモリ領域ディスクリプタテーブルの例を示す。   In general, since one memory area can be specified by the start address and size, a data structure called a memory area descriptor consisting of the value of the start address and area size is defined, and it corresponds to a plurality of memory areas secured as described above. The entire buffer memory area is specified by an array of a plurality of memory area descriptors. This arrangement is called a memory area descriptor table and is secured on the main memory 108 as described above. FIG. 7 shows an example of a memory area descriptor table in the embodiment of the present invention.

図7では、ホスト側バッファは、アドレス0から2000(16進数)バイト、アドレス4800(16進数)からA00(16進数)バイト、アドレス8000(16進数)から2000(16進数)バイトの3つのメモリ領域から構成される合計サイズ18944バイト(37セクタ)のメモリ領域であり、メモリ領域ディスクリプタテーブル401は、各区分領域をあらわす上記先頭アドレスとサイズの値が記憶された3つのメモリ領域ディスクリプタ401、403、404で構成されている。なお、図7でサイズの左側の0および1は、それぞれ次のディスクリプタが有ることと、無いことを示すEOTフラグである。3つめのディスクリプタ404にEOTフラグ1が立っていることは、ホスト側バッファが、3つめの領域で終了していることを表している。   In FIG. 7, the host-side buffer has three memories of address 0 to 2000 (hexadecimal) bytes, address 4800 (hexadecimal) to A00 (hexadecimal) bytes, and address 8000 (hexadecimal) to 2000 (hexadecimal) bytes. The memory area descriptor table 401 has a total size of 18944 bytes (37 sectors), and the memory area descriptor table 401 includes three memory area descriptors 401 and 403 in which the start address and the size value representing each divided area are stored. , 404. In FIG. 7, 0 and 1 on the left side of the size are EOT flags indicating that the next descriptor exists and does not exist, respectively. The fact that the EOT flag 1 is set in the third descriptor 404 indicates that the host-side buffer ends in the third area.

また、上記コマンド書き込み302において、ホスト機器102がコマンドレジスタ126に書き込むコマンドのデータ構造の例を図8に示す。同図に示したように、コマンドは、データの転送方向(書き込みまたは読み出し)を表すコマンドコード501、転送すべきデータのRAIDドライブ101内先頭セクタ番号502、転送すべきセクタ数503、およびメモリ領域ディスクリプタテーブル401のメインメモリ108における先頭アドレス504で構成される。   FIG. 8 shows an example of the data structure of a command that the host device 102 writes to the command register 126 in the command writing 302. As shown in the figure, the command includes a command code 501 indicating a data transfer direction (write or read), a head sector number 502 in the RAID drive 101 of data to be transferred, a sector number 503 to be transferred, and a memory area. The descriptor table 401 is composed of a head address 504 in the main memory 108.

次に、コマンド処理306の詳細を説明する。コマンドの書き込みを検知したRAIDドライブ101では、コマンド処理306において、コマンド制御回路127が、コマンドレジスタ126の内容を図8に示したデータ構造に従って解釈し、メモリカード制御回路121、122、123、124と、転送制御回路128に必要な転送パラメータと転送開始トリガを送る。   Next, details of the command processing 306 will be described. In the RAID drive 101 that detected the command writing, in the command processing 306, the command control circuit 127 interprets the contents of the command register 126 according to the data structure shown in FIG. 8, and the memory card control circuits 121, 122, 123, 124 Then, necessary transfer parameters and a transfer start trigger are sent to the transfer control circuit 128.

図9に、このときのコマンド制御回路127における上記コマンド処理306の詳細フローチャートを、転送制御回路128の制御フローチャートとともに示す。図9においてコマンド制御回路127は、まずパラメータ計算601で、メモリカード制御回路121、122、123、124と、転送制御回路128に送る転送パラメータを求める。   FIG. 9 shows a detailed flowchart of the command processing 306 in the command control circuit 127 at this time together with a control flowchart of the transfer control circuit 128. In FIG. 9, the command control circuit 127 first obtains transfer parameters to be sent to the memory card control circuits 121, 122, 123, and 124 and the transfer control circuit 128 by parameter calculation 601.

メモリカード制御回路121、122、123、124に送る転送パラメータは、4つのSDメモリーカード110、111、112、113それぞれにおいて転送すべきデータの、SDメモリーカード内先頭セクタ番号と転送セクタ数である。   The transfer parameters sent to the memory card control circuits 121, 122, 123, and 124 are the head sector number and the number of transfer sectors in the SD memory card of data to be transferred in each of the four SD memory cards 110, 111, 112, and 113. .

これ等の転送パラメータの値を図10の例で説明する。図10は、先頭セクタ番号502の値が6で、転送セクタ数503の値が37(10進。以下特に明記なき場合は10進表記とする。)の場合の、RAIDドライブ101内のセクタ番号と、4つのSDメモリーカード内のセクタ番号の関係を示している。図2と同様に実線の四角形が転送対象のセクタを表し、その中に書いた16進数字の左側がRAIDドライブ101内のセクタ番号を、右側が各メモリカード内のセクタ番号を表している。   These transfer parameter values will be described with reference to the example of FIG. FIG. 10 shows the sector number in the RAID drive 101 when the value of the head sector number 502 is 6 and the value of the transfer sector number 503 is 37 (decimal. Hereinafter, decimal notation unless otherwise specified). And the relationship of the sector numbers in the four SD memory cards. As in FIG. 2, the solid square represents the sector to be transferred, the left side of the hexadecimal number written therein represents the sector number in the RAID drive 101, and the right side represents the sector number in each memory card.

コマンドの先頭セクタ番号502の値は6、転送セクタ数の値は37であるから、RAIDドライブ内セクタ番号6の先頭セクタ702から、RAIDドライブ内セクタ番号42(16進数で2A)の末尾セクタ708までの37セクタが転送対象のセクタである。   Since the value of the head sector number 502 of the command is 6 and the value of the number of transfer sectors is 37, the head sector 702 of the RAID drive sector number 6 is changed to the tail sector 708 of the RAID drive sector number 42 (2A in hexadecimal). The 37 sectors up to are sectors to be transferred.

図に示したように、求める転送パラメータは、SDメモリーカード毎に、カード番号0に対しては先頭セクタ701のセクタ番号4と転送セクタ数8、カード番号1に対しては先頭セクタ702のセクタ番号2と転送セクタ数10、カード番号2に対しては先頭セクタ703のセクタ番号0と転送セクタ数11、カード番号3に対しては先頭セクタ704のセクタ番号0と転送セクタ数8となる。   As shown in the figure, for each SD memory card, the required transfer parameters are the sector number 4 and the transfer sector number 8 of the first sector 701 for the card number 0, and the sector of the first sector 702 for the card number 1. For the number 2 and the transfer sector number 10, for the card number 2, the sector number 0 and the transfer sector number 11 for the head sector 703, and for the card number 3, the sector number 0 and the transfer sector number 8 for the head sector 704.

これらの転送パラメータを以下のようにして求める。コマンドの先頭セクタ702のセクタ番号、転送セクタ数をそれぞれ、
S=6、Z=37
とし、ストライピング単位セクタ数を
U=4
メモリカード数を
N=4
とする。余りを切り捨てる整数の除算を「/」、剰余演算を「%」で表すと、先頭セクタ702を含むメモリカード番号CSは、
CS=(S/U)%N
を計算することにより求められ、
CS=(6/4)%4=1
である。
These transfer parameters are obtained as follows. The sector number of the head sector 702 of the command and the number of transfer sectors are
S = 6, Z = 37
And the number of striping unit sectors is U = 4
The number of memory cards is N = 4
And When integer division for rounding off the remainder is represented by “/” and the remainder operation is represented by “%”, the memory card number CS including the first sector 702 is expressed as follows:
CS = (S / U)% N
Is calculated by calculating
CS = (6/4)% 4 = 1
It is.

一般に、各メモリカード内の先頭セクタのセクタ番号は、
先頭セクタを含むメモリカード番号CSより小さい番号のメモリカードについては
(S/(U×N)+1)×U
として、先頭セクタを含むメモリカードについては
(S/(U×N))×U+(S%U)
として、先頭セクタを含むメモリカード番号CSより大きい番号のメモリカードについては
(S/(U×N))×U
として求められる。
Generally, the sector number of the first sector in each memory card is
(S / (U × N) +1) × U for a memory card with a number smaller than the memory card number CS including the first sector
As for a memory card including the first sector, (S / (U × N)) × U + (S% U)
For a memory card with a number greater than the memory card number CS including the first sector, (S / (U × N)) × U
As required.

図10の例では、CS=1なので、メモリカード0の先頭セクタ701のメモリカード内セクタ番号は、
S0=(6/(4×4)+1)×4=4
メモリカード1の先頭セクタ702のメモリカード内セクタ番号は、
S1=(6/(4×4))×4+(6%4)=2
メモリカード2および3の先頭セクタ703、704のメモリカード内セクタ番号は、
S2=(6/(4×4))×4=0
S3=(6/(4×4))×4=0
と求められる。
In the example of FIG. 10, since CS = 1, the sector number in the memory card of the first sector 701 of the memory card 0 is
S0 = (6 / (4 × 4) +1) × 4 = 4
The sector number in the memory card of the first sector 702 of the memory card 1 is
S1 = (6 / (4 × 4)) × 4 + (6% 4) = 2
The sector numbers in the memory card of the first sectors 703 and 704 of the memory cards 2 and 3 are
S2 = (6 / (4 × 4)) × 4 = 0
S3 = (6 / (4 × 4)) × 4 = 0
Is required.

次に、転送対象末尾セクタの直後のセクタのRAIDドライブ内セクタ番号は
E=S+Z
として求められ、上式と同様に、末尾直後セクタを含むメモリカード番号CEは、
CE=(E/U)%N
各メモリカード内の末尾直後セクタのメモリカード内セクタ番号は、メモリカード番号CEより小さい番号のメモリカードについては
(E/(U×N)+1)×U
として、メモリカード番号CEのメモリカードについては
(E/(U×N))×U+(E%U)
として、メモリカード番号CEより大きい番号のメモリカードについては
(E/(U×N))×U
として求められる。
Next, the sector number in the RAID drive of the sector immediately after the last sector to be transferred is E = S + Z
As in the above equation, the memory card number CE including the sector immediately after the end is
CE = (E / U)% N
The sector number in the memory card of the sector immediately after the end in each memory card is smaller than the memory card number CE.
(E / (U × N) +1) × U
As for the memory card with the memory card number CE, (E / (U × N)) × U + (E% U)
For a memory card with a number greater than the memory card number CE, (E / (U × N)) × U
As required.

図10の例では、転送対象末尾セクタ708の直後のセクタ707のRAIDドライブ内セクタ番号は
E=S+Z=43
末尾直後セクタ707を含むメモリカード番号CEは、
CE=(E/U)%N=(43/4)%4=2
となるので、メモリカード0および1の末尾直後セクタ705、706のメモリカード内セクタ番号は
E0=(43/(4×4)+1)×4=12
E1=(43/(4×4)+1)×4=12
メモリカード2の末尾直後セクタ707のメモリカード内セクタ番号は
E2=(43/(4×4))×4+(43%4)=11
メモリカード3の末尾直後セクタ709のメモリカード内セクタ番号は
E3=(43/(4×4))×4=8
と求められる。
In the example of FIG. 10, the sector number in the RAID drive of the sector 707 immediately after the transfer target end sector 708 is E = S + Z = 43.
The memory card number CE including the sector 707 immediately after the end is
CE = (E / U)% N = (43/4)% 4 = 2
Therefore, the sector numbers in the memory card of the sectors 705 and 706 immediately after the end of the memory cards 0 and 1 are E0 = (43 / (4 × 4) +1) × 4 = 12.
E1 = (43 / (4 × 4) +1) × 4 = 12
The sector number in the memory card of the sector 707 immediately after the end of the memory card 2 is E2 = (43 / (4 × 4)) × 4 + (43% 4) = 11
The sector number in the memory card of the sector 709 immediately after the end of the memory card 3 is E3 = (43 / (4 × 4)) × 4 = 8
Is required.

したがって、各メモリカード毎の転送セクタ数Z0、Z1、Z2、Z3は、
Z0=E0−S0=12−4=8
Z1=E1−S1=12−2=10
Z2=E2−S2=11−0=11
Z3=E3−S3=8−0=8
と求められる。
Therefore, the number of transfer sectors Z0, Z1, Z2, and Z3 for each memory card is
Z0 = E0-S0 = 12-4 = 8
Z1 = E1-S1 = 12-2 = 10
Z2 = E2-S2 = 11-0 = 11
Z3 = E3-S3 = 8-0 = 8
Is required.

このようにして、各SDメモリーカードの転送パラメータであるSDメモリーカードの転送対象セクタの先頭アドレスS0、S1、S2、S3と転送セクタ数Z0、Z1、Z2、Z3が求められる。上記の計算は、U、Nが2の巾乗の場合には、大部分ビットの組み換えで実現できる。   In this way, the leading addresses S0, S1, S2, S3 of the transfer target sector of the SD memory card and the transfer sector numbers Z0, Z1, Z2, Z3, which are transfer parameters of each SD memory card, are obtained. The above calculation can be realized by recombination of most bits when U and N are powers of 2.

次に図9に戻り、上記のように転送パラメータを求めたコマンド制御回路127は、データ転送起動処理602において、4つのSDメモリーカードに対する転送パラメータを、それぞれメモリカード制御回路121、122、123、124に送るともに、転送開始のトリガ信号をメモリカード制御回路121、122、123、124に送る。これにより、SDメモリーカード110、111、112、113とデータFIFO117、118、119、120の間で、4つの並列データ転送が開始される。   Next, returning to FIG. 9, the command control circuit 127 that has obtained the transfer parameters as described above, in the data transfer start processing 602, transfers the transfer parameters for the four SD memory cards to the memory card control circuits 121, 122, 123, respectively. A trigger signal for starting transfer is sent to the memory card control circuits 121, 122, 123, and 124. As a result, four parallel data transfers are started between the SD memory cards 110, 111, 112, and 113 and the data FIFOs 117, 118, 119, and 120.

また、コマンド制御回路127は、パラメータ計算601において、転送制御回路128への転送パラメータも同時に求める。転送制御回路128への転送パラメータは、先頭セクタ702が含まれるSDメモリーカードのカード番号CS、先頭セクタ702のストライピング境界から数えたセクタ数(以下オフセット値と呼ぶ)OS、各SDメモリーカードの総転送セクタ数Z0、Z1、Z2、Z3、およびメモリ領域ディスクリプタテーブルの先頭アドレスDASである。   The command control circuit 127 also obtains the transfer parameter to the transfer control circuit 128 at the same time in the parameter calculation 601. The transfer parameters to the transfer control circuit 128 include the SD memory card number CS including the head sector 702, the number of sectors counted from the striping boundary of the head sector 702 (hereinafter referred to as an offset value), the total of each SD memory card. These are the number of transfer sectors Z0, Z1, Z2, Z3, and the start address DAS of the memory area descriptor table.

これらのうちCS、Z0、Z1、Z2、Z3は既に前述の式で求められている。また、メモリ領域ディスクリプタテーブルの先頭アドレスDASは、コマンドレジスタ126に書き込まれた先頭アドレスフィールド504の値である。   Among these, CS, Z0, Z1, Z2, and Z3 have already been obtained by the above-described equations. The start address DAS of the memory area descriptor table is the value of the start address field 504 written to the command register 126.

先頭セクタ702のストライピング境界からのオフセット値OSは、
OS = S % U
として求められ、図10の例では
OS = 6 % 4 = 2
である。
The offset value OS from the striping boundary of the first sector 702 is
OS = S% U
In the example of FIG. 10, OS = 6% 4 = 2
It is.

パラメータ計算601においてこれ等の転送パラメータを求めたコマンド制御回路127は、データ転送起動602において転送パラメータとともに転送開始トリガを転送制御回路128に送る。これにより、メインメモリ108上のホスト側バッファと4つのデータFIFOとの間のDMA転送処理が開始される。   The command control circuit 127 having obtained these transfer parameters in the parameter calculation 601 sends a transfer start trigger together with the transfer parameters to the transfer control circuit 128 in the data transfer start 602. Thereby, DMA transfer processing between the host side buffer on the main memory 108 and the four data FIFOs is started.

トリガ待ち状態607で待機していた転送制御回路128は、コマンド制御回路127からの上記転送開始とリガを受けて、巡回DMA転送処理605に入り、与えられたパラメータに基づくカードバス上のDMA転送を制御する。   The transfer control circuit 128 waiting in the trigger wait state 607 receives the above transfer start and trigger from the command control circuit 127, enters the cyclic DMA transfer processing 605, and performs DMA transfer on the card bus based on the given parameters. To control.

この巡回DMA転送処理について説明するために、まず、バッファ用メモリ領域と4つのメモリカードのセクタとの対応関係を図11に示す。図11は、図10と同じ先頭セクタ番号S、転送セクタ数Zに対して、図7のディスクリプタテーブルで示されるバッファ用メモリ領域を当てはめた場合を表わしている。   In order to explain this cyclic DMA transfer process, first, the correspondence between the buffer memory area and the sectors of the four memory cards is shown in FIG. FIG. 11 shows a case where the buffer memory area shown in the descriptor table of FIG. 7 is applied to the same head sector number S and transfer sector number Z as in FIG.

図10と同じく実線の四角形が転送対象のセクタを表しており、その中に書かれた左側の数字は、図10と同じRAIDドライブ内セクタ番号を表す。一方、()内の16進数字は、そのセクタに対応するバッファ用メモリ領域のアドレス範囲を16進数で示している。   As in FIG. 10, the solid square represents the sector to be transferred, and the number on the left side written therein represents the same sector number in the RAID drive as in FIG. 10. On the other hand, the hexadecimal number in parentheses indicates the address range of the buffer memory area corresponding to the sector in hexadecimal.

図に示したように先頭セクタ702から順番に512バイトずつのメモリ領域を、RAIDドライブ内セクタ番号順に対応させる。したがって、セクタ702から801までで1つめのディスクリプタ402が示すバッファ用メモリ領域(0000から1FFFまで)が終了し、次のセクタ802からは2つめのディスクリプタ403が示すメモリ領域(4800から51FF)が図のように対応する。同様に、セクタ803から最後のセクタ708までは、3つめのディスクリプタ404が示すメモリ領域(8000から9FFF)が対応する。   As shown in the figure, the 512-byte memory areas in order from the first sector 702 are made to correspond in the order of RAID drive sector numbers. Therefore, the buffer memory area (0000 to 1FFF) indicated by the first descriptor 402 ends in sectors 702 to 801, and the memory area (4800 to 51FF) indicated by the second descriptor 403 starts from the next sector 802. Correspond as shown in the figure. Similarly, from the sector 803 to the last sector 708, the memory area (8000 to 9FFF) indicated by the third descriptor 404 corresponds.

図12は、転送制御回路128における巡回DMA転送処理605のさらなる詳細フローチャートである。以下、このフローチャートを参照しながら、巡回DMA転送処理605の詳細を説明する。転送制御回路128は、巡回DMA転送処理605において、制御変数として、転送カウンタ131、テーブルカウンタ129、メモリ領域ディスクリプタバッファ130を使用する。   FIG. 12 is a further detailed flowchart of the cyclic DMA transfer processing 605 in the transfer control circuit 128. Details of the cyclic DMA transfer processing 605 will be described below with reference to this flowchart. In the cyclic DMA transfer processing 605, the transfer control circuit 128 uses the transfer counter 131, the table counter 129, and the memory area descriptor buffer 130 as control variables.

転送カウンタ131は、データ転送対象のカード番号カウンタTC、各SDメモリーカードに対応した総転送数カウンタTZ0、TZ1、TZ2、TZ3、転送先メモリアドレスカウンタTA0、TA1、TA2、TA3、1メモリ領域内の転送数カウンタTS0、TS1、TS2、TS3、ストライピング境界からのオフセットカウンタTO0、TO1、TO2、TO3によって構成される。また、テーブルカウンタ129は、メモリ領域ディスクリプタテーブルのアドレスカウンタDTA、メモリ領域ディスクリプタテーブル終了フラグレジスタEOT、メモリブロックの先頭バイトに対応するカード番号レジスタBCS、メモリブロックの先頭バイトのオフセットBOSによって、メモリ領域ディスクリプタバッファ130は、各SDメモリーカードに対応するメモリ領域の先頭アドレスレジスタBA0、BA1、BA2、BA3、転送サイズレジスタBS0、BS1、BS2、BS3によって構成されている。   The transfer counter 131 is a card number counter TC for data transfer, total transfer number counters TZ0, TZ1, TZ2, TZ3 corresponding to each SD memory card, transfer destination memory address counters TA0, TA1, TA2, TA3, in one memory area Transfer number counters TS0, TS1, TS2, TS3, and offset counters TO0, TO1, TO2, TO3 from the striping boundary. The table counter 129 also includes a memory area descriptor table based on an address counter DTA of the memory area descriptor table, a memory area descriptor table end flag register EOT, a card number register BCS corresponding to the first byte of the memory block, and an offset BOS of the first byte of the memory block. The descriptor buffer 130 is configured by memory area start address registers BA0, BA1, BA2, BA3 and transfer size registers BS0, BS1, BS2, BS3 corresponding to each SD memory card.

まず、図12の初期化ステップ901において、各カウンタ、バッファを下記のように初期化する。   First, in the initialization step 901 of FIG. 12, each counter and buffer are initialized as follows.

TC=CS=先頭セクタのカード番号
TO(CS)=OS×512=先頭セクタのオフセット(バイト単位)
TO(CS以外)=0
TS0=TS1=TS2=TS3=0
TZ0=Z0×512=カード0の総転送バイト数
TZ1=Z1×512=カード1の総転送バイト数
TZ2=Z2×512=カード2の総転送バイト数
TZ3=Z3×512=カード3の総転送バイト数
DTA=メモリ領域ディスクリプタテーブルの先頭アドレス
EOT=0
BCS=CS=先頭セクタのカード番号
BOS=OS×512=先頭セクタのオフセット(バイト単位)
BS0=BS1=BS2=BS3=0
次に、転送開始判断902において、メモリ領域ディスクリプタの処理903を行うか否かを判定する。すなわち、レジスタEOTが0(未処理のメモリ領域ディスクリプタが残っていることを意味する)で、かつ、レジスタBS0、BS1、BS2、BS3が全て0(レジスタBS0、BS1、BS2、BS3が空きであることを意味する)であるとき、メモリ領域ディスクリプタの処理903に進む。そうでないとき、データ転送終了判定905へ進む。
TC = CS = first sector card number TO (CS) = OS × 512 = first sector offset (byte unit)
TO (except CS) = 0
TS0 = TS1 = TS2 = TS3 = 0
TZ0 = Z0 × 512 = total transfer byte number of card 0 TZ1 = Z1 × 512 = total transfer byte number of card 1 TZ2 = Z2 × 512 = total transfer byte number of card 2 TZ3 = Z3 × 512 = total transfer of card 3 Number of bytes DTA = start address of memory area descriptor table EOT = 0
BCS = CS = first sector card number BOS = OS × 512 = first sector offset (in bytes)
BS0 = BS1 = BS2 = BS3 = 0
Next, in the transfer start determination 902, it is determined whether or not the memory area descriptor processing 903 is to be performed. That is, the register EOT is 0 (meaning that an unprocessed memory area descriptor remains), and the registers BS0, BS1, BS2, and BS3 are all 0 (the registers BS0, BS1, BS2, and BS3 are empty). The process proceeds to the memory area descriptor processing 903. Otherwise, the process proceeds to data transfer end determination 905.

メモリ領域ディスクリプタ処理903では、切替回路125、カードバス制御回路116を制御して、メモリ領域ディスクリプタテーブルのアドレスカウンタDTAが指しているメインメモリ108上の領域から、1つのメモリ領域ディスクリプタを読み取る。読み取ったメモリ領域ディスクリプタの先頭アドレス値をBMA、領域サイズ値をBMSとし、テーブル終了フラグの値をEOTに記憶する。   In the memory area descriptor processing 903, the switching circuit 125 and the card bus control circuit 116 are controlled to read one memory area descriptor from the area on the main memory 108 pointed to by the address counter DTA of the memory area descriptor table. The head address value of the read memory area descriptor is set to BMA, the area size value is set to BMS, and the value of the table end flag is stored in EOT.

まず、BMA、BMSが示す1つのメモリ領域内で、各メモリカードの先頭のバイトに対応するメモリアドレスを、下記式のように求める。すなわち、メモリ領域内の先頭バイトを含むメモリカードの番号BCSよりも小さい番号Csmlのメモリカードについては、
BA(Csml)=U×(N+Csml−BCS)×512−BOS+BMA
先頭バイトを含むメモリカードについては、
BA(BCS)=BMA
先頭バイトを含むメモリカードの番号BCSよりも大きい番号Cbigのメモリカードについては
BA(Cbig)=U×(Cbig−BCS)×512−BOS+BMA
とする。
First, in one memory area indicated by BMA and BMS, a memory address corresponding to the first byte of each memory card is obtained as follows. That is, for a memory card with a number Csml smaller than the number BCS of the memory card including the first byte in the memory area,
BA (Csml) = U × (N + Csml−BCS) × 512−BOS + BMA
For memory cards that include the first byte,
BA (BCS) = BMA
For a memory card with a number Cbig greater than the number BCS of the memory card including the first byte, BA (Cbig) = U × (Cbig−BCS) × 512−BOS + BMA
And

例えば図11の例で、最初のメモリ領域ディスクリプタ402について数値を代入すると、下記のようになる。   For example, in the example of FIG. 11, when a numerical value is substituted for the first memory area descriptor 402, the result is as follows.

BA0=4×(4+0−1)×512−1024+0=5120
BA1=0
BA2=4×(2−1)×512−1024+0=1024
BA3=4×(3−1)×512−1024+0=3072
これらは、図11のセクタ701、702、703、704の先頭アドレス1400(16進)、0000、0400(16進)、0C00(16進)を表わしている。
BA0 = 4 × (4 + 0-1) × 512-1024 + 0 = 5120
BA1 = 0
BA2 = 4 × (2-1) × 512-1024 + 0 = 1024
BA3 = 4 × (3-1) × 512-1024 + 0 = 3072
These represent the top addresses 1400 (hexadecimal), 0000, 0400 (hexadecimal), and 0C00 (hexadecimal) of the sectors 701, 702, 703, and 704 in FIG.

次に、カード番号0のSDメモリのストライピング境界(図11の例の1つめのメモリ領域ではセクタ804の先頭に相当)から、メモリ領域内の最後バイトに対応するバイトまでのサイズαを次式のように求める。   Next, the size α from the striping boundary of the SD memory with the card number 0 (corresponding to the top of the sector 804 in the first memory area in the example of FIG. 11) to the byte corresponding to the last byte in the memory area is Seek like.

α=U×BCS×512+BOS+BMS
すると、メモリ領域内の最終バイトの次のバイトが含まれるSDメモリーカード番号BCEと、そのバイトのオフセットBOEが次の式で求められる。
α = U × BCS × 512 + BOS + BMS
Then, the SD memory card number BCE including the byte next to the last byte in the memory area and the offset BOE of the byte are obtained by the following formula.

BCE=(α/(U×512))%N
BOE = α % (U × 512)
各メモリカードのメモリ領域内のバイト数は、
β=(α/(U×N×512))×(U×512)
に対して、
CSより小さい番号のメモリカードについてはU×512を引き、
CSと等しい番号のメモリカードについてはBOSを引き、
かつ、
BCEよりも小さい番号のメモリカードについてはU×512を加え、
BCEと等しい番号のメモリカードについてはBOEを加える
ことにより求められる。
BCE = (α / (U × 512))% N
BOE = α% (U × 512)
The number of bytes in the memory area of each memory card is
β = (α / (U × N × 512)) × (U × 512)
Against
For memory cards with numbers less than CS, subtract Ux512,
Subtract BOS for memory cards with the same number as CS,
And,
For memory cards with numbers smaller than BCE, add Ux512,
The memory card having the same number as the BCE is obtained by adding BOE.

図11の1つめのディスクリプタ402によって示されるメモリ領域の例では、
α=4×1×512+1024+8192=11264
BCE=(11264/(4×512))%4=1
BOE=11264%(4×512)=1024
β=(11264/(4×4×512))×(4×512)=2048
BS0=2048−4×512+4×512=2048
BS1=2048−1024+1024=2048
BS2=2048
BS3=2048
と求められる。
In the example of the memory area indicated by the first descriptor 402 in FIG.
α = 4 × 1 × 512 + 1024 + 8192 = 11264
BCE = (11264 / (4 × 512))% 4 = 1
BOE = 11264% (4 × 512) = 1024
β = (11264 / (4 × 4 × 512)) × (4 × 512) = 2048
BS0 = 2048-4 × 512 + 4 × 512 = 2048
BS1 = 2048−1024 + 1024 = 2048
BS2 = 2048
BS3 = 2048
Is required.

以上のように、1つのメモリ領域について、各カード毎の先頭メモリアドレスBA0、BA1、BA2、BA3と転送サイズBS0、BS1、BS2、BS3を求めたら、テーブルカウンタ更新904において下記のようにカウンタを更新し、転送開始判定902に戻る。   As described above, when the top memory addresses BA0, BA1, BA2, BA3 and transfer sizes BS0, BS1, BS2, BS3 for each card are obtained for one memory area, the counter is updated in the table counter update 904 as follows. Update and return to transfer start determination 902.

DTA=次のディスクリプタのアドレス
BCS=BCE
BOS=BOE
上記のように転送開始判断902に戻って来ると、BS0、BS1、BS2、BS3が全て0ではないので、データ転送終了判定905へ進む。
DTA = address of next descriptor BCS = BCE
BOS = BOE
When returning to the transfer start determination 902 as described above, since all of BS0, BS1, BS2, and BS3 are not 0, the process proceeds to the data transfer end determination 905.

全データ転送終了判定905では、各カード毎の総データ転送数カウンタTZ0、TZ1、TZ2、TZ3が全て0の場合に、全てのデータ転送が終了したものと判断し、巡回DMA転送処理605を終了する。そうでない場合には、メモリ領域内転送終了判定906へ進む。当然、最初の処理では、総データ転送数カウンタが全て0ではないので、領域内転送終了判定906へ進む。   In the all data transfer end determination 905, when the total data transfer number counters TZ0, TZ1, TZ2, and TZ3 for each card are all 0, it is determined that all data transfer is completed, and the cyclic DMA transfer processing 605 is ended. To do. If not, the process proceeds to the intra-memory area transfer end determination 906. Naturally, in the first process, since the total data transfer number counter is not all zero, the process proceeds to the intra-area transfer end determination 906.

領域内転送終了判定906では、現在の転送対象カード番号TCのメモリ領域内の転送数カウンタTS(TC)が0である場合、そのメモリ領域内の転送は終了したものと判定して、次のディスクリプタ判定907に進む。そうでない場合、データ転送処理909に進む。最初の処理では、転送数カウンタTS(TC)は0に初期化されているので、次のディスクリプタ判定907に進む。   In the intra-area transfer end determination 906, when the transfer number counter TS (TC) in the memory area of the current transfer target card number TC is 0, it is determined that the transfer in the memory area has ended, and the next transfer Proceed to descriptor determination 907. Otherwise, the process proceeds to the data transfer process 909. In the first process, since the transfer number counter TS (TC) is initialized to 0, the process proceeds to the next descriptor determination 907.

次のディスクリプタ判定907では、現在の転送対象カード番号TCについて、次のディスクリプタが、メモリ領域ディスクリプタバッファ130に保存されているかどうかを判定する。すなわち、転送サイズカウンタBS(TC)が0の場合、次のディスクリプタは保存されていないものと判定し、転送カード番号更新910へ進む。そうでない場合は、ディスクリプタロード908へ進む。   In the next descriptor determination 907, it is determined whether or not the next descriptor is stored in the memory area descriptor buffer 130 for the current transfer target card number TC. That is, when the transfer size counter BS (TC) is 0, it is determined that the next descriptor is not stored, and the process proceeds to the transfer card number update 910. Otherwise, go to descriptor load 908.

ディスクリプタロード908では、メモリ領域ディスクリプタバッファ130から、現在の転送対象カード番号TCのディスクリプタBA(TC)、BS(TC)を読み取り、転送先アドレスカウンタTA(TC)、領域内転送数カウンタTS(TC)に下記のように設定する。   In the descriptor load 908, the descriptors BA (TC) and BS (TC) of the current transfer target card number TC are read from the memory area descriptor buffer 130, the transfer destination address counter TA (TC), and the intra-area transfer number counter TS (TC) ) Is set as follows.

TA(TC)=BA(TC)
TS(TC)=BS(TC)
さらに、BS(TC)を0に設定して、このレジスタ値を無効とし、データ転送処理909へ進む。
TA (TC) = BA (TC)
TS (TC) = BS (TC)
Further, BS (TC) is set to 0 to invalidate this register value, and the process proceeds to data transfer processing 909.

データ転送処理909では、まず、1回のDMA転送における連続転送データ数TSbstを下記のように決める。   In the data transfer process 909, first, the continuous transfer data number TSbst in one DMA transfer is determined as follows.

TSbst=min(TZ(TC)、TS(TC)、(U×512−TO(TC))、128)
ここで、min()は最小値を表している。すなわち、TZ(TC)はカード番号TCの残りの全データ数、TS(TC)は同じバッファ用メモリ領域内のカード番号TCの残りデータ数、(U×512−TO(TC))は同じバッファ用メモリ領域内のアドレス不連続点までの残りデータ数、128は1つのSDメモリーカードの最大連続転送数を表しており、これらのうちの最小値を転送データ数とする。
TSbst = min (TZ (TC), TS (TC), (U × 512-TO (TC)), 128)
Here, min () represents the minimum value. That is, TZ (TC) is the total number of remaining data of the card number TC, TS (TC) is the number of remaining data of the card number TC in the same buffer memory area, and (U × 512-TO (TC)) is the same buffer. The number of remaining data up to the address discontinuity point in the memory area, 128 represents the maximum continuous transfer number of one SD memory card, and the minimum value of these is the transfer data number.

次に、転送制御回路128は、切り替え回路125を制御して、カード番号TCに対応するデータFIFOのデータをカードバス制御回路116に接続し、切り替え回路125を通して、カードバス制御回路116に、先頭アドレスがTA(TC)で、転送データ数がTSbstであるような、バスマスタDMA転送コマンドを発行する。 これを受けたカードバス制御回路116は、メインメモリ108のアドレスTA(TC)からTSbstバイトのデータを、切り替え制御回路125によって選択されたデータFIFOとの間で、カードバスプロトコルに従って転送する。   Next, the transfer control circuit 128 controls the switching circuit 125 to connect the data FIFO data corresponding to the card number TC to the card bus control circuit 116, and to the card bus control circuit 116 through the switching circuit 125. A bus master DMA transfer command having an address of TA (TC) and a transfer data number of TSbst is issued. Receiving this, the card bus control circuit 116 transfers TSbst byte data from the address TA (TC) of the main memory 108 to the data FIFO selected by the switching control circuit 125 according to the card bus protocol.

上記のDMA転送が終了したら、転送制御回路128は、転送カウンタ更新910において、下記のようにDMA転送を制御するカウンタを更新する。   When the DMA transfer is completed, the transfer control circuit 128 updates the counter for controlling the DMA transfer in the transfer counter update 910 as described below.

TZ(TC)=TZ(TC)−TSbst
TA(TC)=TA(TC)+TSbst
TS(TC)=TS(TC)−TSbst
さらに、
TO(TC)+TSbst≧U×512
のとき
TA(TC)=TA(TC)+(N−1)×U×512
TO(TC)=0
とし、
TO(TC)+TSbst<U×512
のとき
TO(TC)=TO(TC)+TSbst
とし、
TC=TC+1
として、転送開始判定902に戻る。
TZ (TC) = TZ (TC) -TSbst
TA (TC) = TA (TC) + TSbst
TS (TC) = TS (TC) -TSbst
further,
TO (TC) + TSbst ≧ U × 512
When TA (TC) = TA (TC) + (N−1) × U × 512
TO (TC) = 0
age,
TO (TC) + TSbst <U × 512
When TO (TC) = TO (TC) + TSbst
age,
TC = TC + 1
Then, the process returns to the transfer start determination 902.

以上のように、巡回DMA転送処理605での全てのデータ転送が終了したら(全データ転送終了判定905でTZ0、TZ1、TZ2、TZ3が全て0と判定したら)、転送制御回路128はデータ転送終了通知606に進み、全てのデータ転送の終了をコマンド制御回路127に通知する。データ転送の終了通知を受けたコマンド制御回路127は、コマンド終了通知606に進み、割り込み信号132によってホスト機器102にコマンド処理の終了を通知する。   As described above, when all data transfer in the cyclic DMA transfer process 605 is completed (when all data transfer end determination 905 determines that TZ0, TZ1, TZ2, and TZ3 are all 0), the transfer control circuit 128 ends the data transfer. Proceeding to notification 606, the command control circuit 127 is notified of the end of all data transfers. The command control circuit 127 that has received the data transfer end notification proceeds to the command end notification 606 and notifies the host device 102 of the end of the command processing by the interrupt signal 132.

以上説明した動作により、RAIDドライブ101における、RAIDドライブ101からホスト102へのデータ読み出し時のデータ転送順を図13に示す。図13に示したように、SDメモリーカード110、111、112、113においては、同時並列でデータ読み出しが行われ、一方カードバス103においては、4つのSDメモリーカードのデータを128バイトごとに巡回しながら転送される。   FIG. 13 shows the data transfer order in the RAID drive 101 when data is read from the RAID drive 101 to the host 102 by the operation described above. As shown in FIG. 13, in the SD memory cards 110, 111, 112, and 113, data is read simultaneously and in parallel. On the card bus 103, data of four SD memory cards is cycled every 128 bytes. While being transferred.

また、RAIDドライブ101における、ホスト102からRAIDドライブ101へのデータ書き込み時のデータ転送順を図14に示す。図14に示したように、カードバス103において4つのSDメモリーカードに対応するデータを128バイトごとに巡回しながら転送されたデータは、SDメモリーカード110、111、112、113においては、同時並列で書き込まれる。   FIG. 14 shows the data transfer order when writing data from the host 102 to the RAID drive 101 in the RAID drive 101. As shown in FIG. 14, data transferred while circulating data corresponding to four SD memory cards every 128 bytes in the card bus 103 is simultaneously paralleled in the SD memory cards 110, 111, 112, and 113. Written in.

以上のように4つのSDメモリーカードに対応するデータを128バイトごとに分割して連続転送するので、各カードに対応するFIFO117、118、119、120は128バイトあれば十分である。したがって、本発明によれば複数の低速メモリカードにおけるブロック単位の並列転送をブロックサイズよりも小さなバッファメモリを用いて実現することができる。   As described above, the data corresponding to the four SD memory cards is divided into 128 bytes and continuously transferred. Therefore, it is sufficient that the FIFOs 117, 118, 119, and 120 corresponding to each card have 128 bytes. Therefore, according to the present invention, parallel transfer in units of blocks in a plurality of low-speed memory cards can be realized using a buffer memory smaller than the block size.

上記のように構成された本発明の記憶装置は、ビデオカメラ等におけるリムーバブルメディアとしても、PCベースのノンリニア編集機におけるメディアとしても、多数のハードディスクを用いたPCI−RAIDボードとしても利用できる。   The storage device of the present invention configured as described above can be used as a removable medium in a video camera or the like, a medium in a PC-based nonlinear editing machine, or a PCI-RAID board using a large number of hard disks.

本発明の記憶装置の基本構成を示すブロック図The block diagram which shows the basic composition of the memory | storage device of this invention 本発明の記憶装置内のセクタ番号のマッピングを示す構成図The block diagram which shows the mapping of the sector number in the memory | storage device of this invention ホスト機器のホスト側バッファの構成図Configuration diagram of the host side buffer of the host device 本発明の記憶装置のデータ転送の概要を示すタイミング図Timing chart showing an outline of data transfer of the storage device of the present invention 本発明の記憶装置の構成を示すブロック図The block diagram which shows the structure of the memory | storage device of this invention 本発明の記憶装置とホスト機器の動作手順を示すフローチャートThe flowchart which shows the operation | movement procedure of the memory | storage device and host apparatus of this invention 本発明におけるメモリ領域ディスクリプタの例を示す構成図The block diagram which shows the example of the memory area descriptor in this invention 本発明におけるコマンドのデータ構造を示す構成図The block diagram which shows the data structure of the command in this invention 本発明の記憶装置のコマンド処理動作を示すフローチャートThe flowchart which shows the command processing operation of the memory | storage device of this invention 本発明におけるカード毎の転送パラメータを示す構成図The block diagram which shows the transfer parameter for every card | curd in this invention 本発明におけるメモリ領域とカードのマッピングを示す構成図Configuration diagram showing mapping of memory area and card in the present invention 本発明の記憶装置の巡回DMA処理動作を示すフローチャートFlowchart showing the cyclic DMA processing operation of the storage device of the present invention 本発明の記憶装置のデータ読み出し転送順を示すタイミング図Timing chart showing the order of data read and transfer in the storage device of the present invention 本発明の記憶装置のデータ書き込み転送順を示すタイミング図FIG. 4 is a timing chart showing the data write / transfer order of the storage device of the present invention.

符号の説明Explanation of symbols

101 RAIDドライブ
102 ホスト機器
108 メインメモリ
110、111、112、113 SDメモリーカード
117、118、119、120 データFIFO
121、122、123、124 メモリカード制御回路
125 切替回路
128 転送制御回路
129 テーブルカウンタ
130 メモリ領域ディスクリプタバッファ
131 転送カウンタ
133 ホストインタフェース
134 制御手段
101 RAID drive 102 Host device 108 Main memory 110, 111, 112, 113 SD memory card 117, 118, 119, 120 Data FIFO
121, 122, 123, 124 Memory card control circuit 125 Switching circuit 128 Transfer control circuit 129 Table counter 130 Memory area descriptor buffer 131 Transfer counter 133 Host interface 134 Control means

Claims (2)

ホストインタフェースを介してホスト機器との間で入出力されるデータを所定のストライピング単位で複数の記憶媒体にストライピング記録および再生を行う記憶装置であって、
前記複数の記憶媒体のそれぞれに対して入出力されるデータを一時的に記憶する複数の転送バッファメモリと、
対応する前記複数の記憶媒体と前記複数の転送バッファメモリとの間のデータ転送を制御する複数の記憶媒体制御手段と、
前記ホストインタフェースと前記複数の転送バッファメモリとの間のデータ転送経路を切り替える切替手段と、
前記ストライピング単位よりも小さいブロック単位で前記複数の転送バッファメモリを切り替えながら前記ホストインタフェースと前記複数の転送バッファメモリとの間でデータ転送するとともに、ストライピング単位で連続して前記複数の転送バッファメモリと前記複数の記憶手段との間でデータ転送するように、前記切替手段と前記複数の記憶媒体制御手段とを制御する制御手段とを有する記憶装置。
A storage device that performs striping recording and reproduction of data input / output with a host device via a host interface in a plurality of storage media in a predetermined striping unit,
A plurality of transfer buffer memories for temporarily storing data input / output to / from each of the plurality of storage media;
A plurality of storage medium control means for controlling data transfer between the plurality of corresponding storage media and the plurality of transfer buffer memories;
Switching means for switching a data transfer path between the host interface and the plurality of transfer buffer memories;
Data is transferred between the host interface and the plurality of transfer buffer memories while switching the plurality of transfer buffer memories in units of blocks smaller than the striping unit, and the plurality of transfer buffer memories in succession in striping units A storage device comprising: a control unit that controls the switching unit and the plurality of storage medium control units so as to transfer data to and from the plurality of storage units.
前記ホスト機器は、前記ホスト機器の記憶領域に前記複数の記憶媒体のそれぞれに対応する未転送領域の先頭アドレスを記憶し、
前記制御手段は、前記記憶領域と前記転送バッファメモリとの間のデータ転送の切り替え時に更新する転送カウンタを有し、
前記転送カウンタの更新時に、前記記憶媒体に対応する前記記憶領域のストライピング単位の境界の有無を判定して前記記憶媒体に対応する次のストライピング単位の先頭アドレスまで前記転送カウンタを補正する請求項1記載の記録装置。
The host device stores a head address of an untransferred area corresponding to each of the plurality of storage media in a storage area of the host device;
The control means has a transfer counter that is updated when switching data transfer between the storage area and the transfer buffer memory,
2. When the transfer counter is updated, it is determined whether or not there is a boundary between striping units of the storage area corresponding to the storage medium, and the transfer counter is corrected to the start address of the next striping unit corresponding to the storage medium. The recording device described.
JP2004193680A 2004-06-30 2004-06-30 Storage device Expired - Fee Related JP4311288B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004193680A JP4311288B2 (en) 2004-06-30 2004-06-30 Storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004193680A JP4311288B2 (en) 2004-06-30 2004-06-30 Storage device

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2008113557A Division JP4609522B2 (en) 2008-04-24 2008-04-24 Storage device

Publications (2)

Publication Number Publication Date
JP2006018419A true JP2006018419A (en) 2006-01-19
JP4311288B2 JP4311288B2 (en) 2009-08-12

Family

ID=35792662

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004193680A Expired - Fee Related JP4311288B2 (en) 2004-06-30 2004-06-30 Storage device

Country Status (1)

Country Link
JP (1) JP4311288B2 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007241588A (en) * 2006-03-08 2007-09-20 Kyocera Mita Corp Data transfer device and image forming apparatus
JP2007323224A (en) * 2006-05-31 2007-12-13 Hitachi Ltd Flash memory storage system
JP2008009635A (en) * 2006-06-28 2008-01-17 Hitachi Ltd Storage system and its data protection method
JP2010009548A (en) * 2008-06-30 2010-01-14 Toshiba Corp Storage device, control device, storage system, and storage method
JP2010026592A (en) * 2008-07-15 2010-02-04 Panasonic Corp Memory device and memory device control device
JP2010044750A (en) * 2008-07-15 2010-02-25 Panasonic Corp Memory device and memory device controlling apparatus
JP2010531494A (en) * 2007-06-28 2010-09-24 メモライト メモリテック (シェンチェン) カンパニー リミテッド Logic strip control method based on multi-channel non-volatile solid-state memory

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103729147A (en) * 2013-12-30 2014-04-16 华澜微电子有限公司 Redundant array of independent module

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8924637B2 (en) 2001-01-21 2014-12-30 Hitachi, Ltd. Flash memory storage system
JP2007241588A (en) * 2006-03-08 2007-09-20 Kyocera Mita Corp Data transfer device and image forming apparatus
JP2007323224A (en) * 2006-05-31 2007-12-13 Hitachi Ltd Flash memory storage system
US8166235B2 (en) 2006-05-31 2012-04-24 Hitachi, Ltd. Flash memory storage system
US8359426B2 (en) 2006-05-31 2013-01-22 Hitachi, Ltd. Flash memory storage system
JP2008009635A (en) * 2006-06-28 2008-01-17 Hitachi Ltd Storage system and its data protection method
JP2010531494A (en) * 2007-06-28 2010-09-24 メモライト メモリテック (シェンチェン) カンパニー リミテッド Logic strip control method based on multi-channel non-volatile solid-state memory
TWI417718B (en) * 2007-06-28 2013-12-01 Memoright Memoritech Corp Control Method of Logical Strip Based on Multi - channel Flash Memory Device
JP2010009548A (en) * 2008-06-30 2010-01-14 Toshiba Corp Storage device, control device, storage system, and storage method
JP2010026592A (en) * 2008-07-15 2010-02-04 Panasonic Corp Memory device and memory device control device
JP2010044750A (en) * 2008-07-15 2010-02-25 Panasonic Corp Memory device and memory device controlling apparatus
US10565137B2 (en) 2008-07-15 2020-02-18 Panasonic Intellectual Property Management Co., Ltd. Non-volatile memory device and controlling apparatus, having extension activating and control parts, where memory device can be operated in an optimum operation mode

Also Published As

Publication number Publication date
JP4311288B2 (en) 2009-08-12

Similar Documents

Publication Publication Date Title
JP3825465B2 (en) Memory card and memory card system
US9043541B2 (en) Storage control device, storage device, and control method for controlling storage control device
CN100524273C (en) Memory card controller, memory card drive device, and computer program
JPH0877066A (en) Flash memory controller
US20070168605A1 (en) Information storage device and its control method
US6684026B2 (en) Information recording method and apparatus and information recording medium
JP4311288B2 (en) Storage device
JP4609522B2 (en) Storage device
JPH11242563A (en) Disk medium access interface device and its access method and disk drive device
KR20060017816A (en) Method and device for transferring data between a main memory and a storage device
EP2183663B1 (en) Mass storage system with improved usage of buffer capacity
KR100659915B1 (en) Method and apparatus for transferring data
US8769167B2 (en) Channel device, information processing system and data transfer method
CN111045961B (en) Data processing method and memory controller using the same
US6496311B1 (en) Data recording/reproducing unit, data recording method, data reproducing method, data recording/reproducing method, hard disk controller, and AV-data recording/reproducing method
JP4323476B2 (en) Memory card controller, memory card drive device, and program
JP2852935B2 (en) Information playback device
JPH0143332B2 (en)
JPH02278417A (en) Sector address converting circuit
JP2005057460A (en) Video and audio signal recording device
JPH10340533A (en) Data recording device and its method
JPH0541037A (en) Digital data recording and reproducing device
JP2008262469A (en) Storage device
JPS6135570B2 (en)
JPH064221A (en) Buffer control circuit and rotary storage device

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070927

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071009

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071121

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080226

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080424

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20080502

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090504

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120522

Year of fee payment: 3

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120522

Year of fee payment: 3

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130522

Year of fee payment: 4

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130522

Year of fee payment: 4

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees