JP4661566B2 - Access controller, flash memory system, and access control method - Google Patents

Access controller, flash memory system, and access control method Download PDF

Info

Publication number
JP4661566B2
JP4661566B2 JP2005347358A JP2005347358A JP4661566B2 JP 4661566 B2 JP4661566 B2 JP 4661566B2 JP 2005347358 A JP2005347358 A JP 2005347358A JP 2005347358 A JP2005347358 A JP 2005347358A JP 4661566 B2 JP4661566 B2 JP 4661566B2
Authority
JP
Japan
Prior art keywords
flash memory
memory device
access
sectors
address
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.)
Expired - Fee Related
Application number
JP2005347358A
Other languages
Japanese (ja)
Other versions
JP2007156582A (en
Inventor
幸夫 寺崎
武志 鴨野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
TDK Corp
Original Assignee
TDK Corp
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 TDK Corp filed Critical TDK Corp
Priority to JP2005347358A priority Critical patent/JP4661566B2/en
Publication of JP2007156582A publication Critical patent/JP2007156582A/en
Application granted granted Critical
Publication of JP4661566B2 publication Critical patent/JP4661566B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、アクセスコントローラ当該アクセスコントローラを備えるフラッシュメモリシステム及びアクセス制御方法に関する。 The present invention, access controller, a flash memory system and an access control method comprising the access controller.

近年、不揮発性の記録媒体であるフラッシュメモリの開発が盛んに行われ、デジタルカメラ等の情報機器(ホストシステム)の記憶媒体として普及している。   In recent years, flash memory, which is a non-volatile recording medium, has been actively developed and is widely used as a storage medium for information devices (host systems) such as digital cameras.

このような機器が扱うデータが大容量化したことに伴い、複数のフラッシュメモリの記憶容量も大容量化が進んでいる。このように大容量化したフラッシュメモリの記憶領域を円滑に管理するため、近年は、この記憶領域を複数のゾーンに分割して管理する手法が用いられている(例えば特許文献1を参照)。   As the data handled by such devices has increased in capacity, the storage capacity of a plurality of flash memories has also increased. In order to smoothly manage the storage area of the flash memory having such a large capacity, a method of managing the storage area by dividing it into a plurality of zones has been used in recent years (see, for example, Patent Document 1).

さらに、近年では、複数のフラッシュメモリを並列して使用することが行われている。   In recent years, a plurality of flash memories have been used in parallel.

複数のフラッシュメモリを使用する場合には、ホストシステム側の論理アドレス空間を複数のフラッシュメモリで均等に分割して割り当てている。
例えば、フラッシュメモリが2個配置されている場合には、ホストシステムから与えられるLBA(Logical Block Address)の上位nビットを用いて、フラッシュメモリの1つを特定し、その上位nビットを除いたLBAの下位ビットで、フラッシュメモリ内の物理アドレス空間におけるアドレスを特定している。
特開2005−18490号公報
When a plurality of flash memories are used, the logical address space on the host system side is equally divided and allocated by the plurality of flash memories.
For example, when 2 n flash memories are arranged, one of the flash memories is specified using the upper n bits of the LBA (Logical Block Address) given from the host system, and the upper n bits are excluded. The lower bits of the LBA specify the address in the physical address space in the flash memory.
JP 2005-18490 A

各フラッシュメモリにこのようにして論理アドレス空間を割り当てた場合、LBAが特定の範囲にあるセクタ(例えば、ファイルアロケーションテーブルが格納されるセクタ等)にデータの書き込みや書き換えが集中すれば、そのLBAが割り当てられたフラッシュメモリに書き込みが集中して、そのフラッシュメモリの劣化(不良ブロック化)だけが極端に早まる、という問題が生じることがある。   When a logical address space is assigned to each flash memory in this way, if data writing or rewriting concentrates on a sector whose LBA is in a specific range (for example, a sector in which a file allocation table is stored), the LBA There is a case in which writing concentrates on the flash memory to which is assigned, and only the deterioration (defect block formation) of the flash memory is extremely accelerated.

本発明は上記の実情に鑑みてなされたもので、データの書き込みが特定のフラッシュメモリに集中することを回避できる複数のフラッシュメモリをアクセスするためのアクセスコントローラ当該アクセスコントローラを備えるフラッシュメモリシステム及びアクセス制御方法を提供することを目的とする。 The present invention has been made in view of the above circumstances, and flash memory system comprising access controller for accessing a plurality of flash memories can be avoided that the write data is concentrated on a specific flash memory, the access controller An object is to provide an access control method .

上記目的を達成するため、本発明のアクセスコントローラは、
フラッシュメモリと当該フラッシュメモリへのアクセスを制御するフラッシュメモリコントローラとからなる個(nは1以上の整数)のフラッシュメモリ装置に、ホストシステムから与えられるクタ単位の論理アドレスが割り当てられている領域を2 セクタ(mは1以上の整数)の振り分け単位で振り分けるアクセスコントローラであって
ホストシステムから与えられるアクセス指示により指定されたアクセス対象領域の先頭の論理アドレスとアクセス対象領域のセクタ数に基づいて、それぞれのフラッシュメモリ装置においてアクセス先となる領域のセクタ数を算出するセクタ数算出手段と、
前記アクセス指示により指定されたアクセス対象領域の先頭の論理アドレスとアクセス対象領域のセクタ数に基づいて、それぞれのフラッシュメモリ装置においてアクセス先となる領域の先頭のアドレスを生成するアドレス生成手段と、
前記セクタ数算出手段により算出されたセクタ数及び前記アドレス生成手段により生成されたアドレスを、アクセス先の領域を指示する情報として、それぞれのフラッシュメモリ装置に与える制御手段とを備え、
フラッシュメモリ装置には、0から2 −1の装置番号が割り当てられており、ホストシステムから与えられる論理アドレスに対応する領域は、当該論理アドレスの下位側から数えてm+1ビット目からm+nビット目までのビットの値と一致する前記装置番号が割り当てられているフラッシュメモリ装置に振り分けられ、
前記セクタ数算出手段は、
前記アクセス指示により指定されたアクセス対象領域の先頭の論理アドレスの下位側から数えてm+1ビット目からm+nビット目までのnビットに基づいて、当該論理アドレスに対応する領域を含む先頭領域の振り分け先のフラッシュメモリ装置である起点装置を特定すると共に、当該論理アドレスの下位mビットに基づいて、当該先頭領域のセクタ数である第1のセクタ数を求め、更に、前記アクセス指示により指定されたアクセス対象領域のセクタ数から前記第1のセクタ数を引いて得られた値を振り分け単位の2 で割る除算を行い、当該除算の商に基づいて、それぞれの前記フラッシュメモリ装置においてアクセス先となる2 セクタの振り分け単位の領域の個数を求めると共に、2 セクタ未満の領域であって当該除算の余りに一致するセクタ数の領域を含む末尾領域の振り分け先のフラッシュメモリ装置を特定することにより、それぞれのフラッシュメモリ装置においてアクセス先となる領域のセクタ数を算出し、
前記アドレス生成手段は、
前記アクセス指示により指定されたアクセス対象領域の先頭の論理アドレスを、当該論理アドレスの下位mビットに対応する第1のビット列と、当該論理アドレスの下位側から数えてm+1ビット目からm+nビット目までのビットに対応する第2のビット列と、当該論理アドレスの下位側から数えてm+nビット目のビットより上位側のビットに対応する第3のビット列に分割し、
前記第3のビット列の下位側に前記第1のビット列を連結したものを、前記起点装置のフラッシュメモリ装置に与えるアドレスとして生成し、前記第1のビット列の全てのビットを“0”で置き換えたうえで、当該第1のビット列を前記第3のビット列の下位側に連結したものを、前記起点装置に対応する前記装置番号より大きい前記装置番号が割り当てられているフラッシュメモリ装置に与えるアドレスとして生成し、前記第1のビット列の全てのビットを“0”で置き換えると共に、前記第3のビット列に1を加算したうえで、当該第1のビット列を当該第3のビット列の下位側に連結したものを、前記起点装置に対応する前記装置番号より小さい前記装置番号が割り当てられているフラッシュメモリ装置に与えるアドレスとして生成する
ことを特徴とする。
In order to achieve the above object, the access controller of the present invention provides:
The flash memory device of the 2 n comprising a flash memory controller that controls access to the flash memory and the flash memory (n is an integer of 1 or more), and the logical address of the sector unit supplied from the host system is allocated An access controller that distributes the area in a distribution unit of 2 m sectors (m is an integer of 1 or more) ,
Sector number calculation that calculates the number of sectors in the area to be accessed in each flash memory device based on the top logical address of the access target area specified by the access instruction given by the host system and the number of sectors in the access target area Means,
An address generation means for generating a head address of an area to be accessed in each flash memory device based on a logical address of the head of the access target area specified by the access instruction and the number of sectors of the access target area;
Control means for providing each flash memory device with the number of sectors calculated by the sector number calculating means and the address generated by the address generating means as information indicating an area to be accessed;
Device numbers 0 to 2 n -1 are assigned to the flash memory device, and the area corresponding to the logical address given from the host system is counted from the (m + 1) th bit to the (m + n) th bit counted from the lower side of the logical address. Allocated to the flash memory device to which the device number corresponding to the value of the bits up to is assigned,
The sector number calculating means includes:
Based on the n bits from the (m + 1) th bit to the (m + n) th bit counted from the lower side of the top logical address of the access target area specified by the access instruction, the distribution destination of the top area including the area corresponding to the logical address And the first sector number that is the number of sectors in the head area is obtained based on the lower m bits of the logical address, and the access designated by the access instruction is specified. The value obtained by subtracting the first sector number from the number of sectors in the target area is divided by 2 m as a distribution unit, and the flash memory device becomes an access destination based on the division quotient. with obtaining the number of areas of sorting units 2 m sectors, the remainder of an area of less than 2 m sectors the division By specifying the flash memory device of assignment destination end region including the matching area of the number of sectors, and calculates the number of sector area to be accessed in each of the flash memory device,
The address generating means
The first logical address corresponding to the lower m bits of the logical address, and the (m + 1) th bit to the (m + n) th bit counted from the lower side of the logical address, is the first logical address of the access target area designated by the access instruction. And a second bit string corresponding to the bits of the logical address and a third bit string corresponding to the bits on the upper side of the m + n-th bit counted from the lower side of the logical address,
A concatenation of the first bit string on the lower side of the third bit string is generated as an address to be given to the flash memory device of the originating device, and all the bits of the first bit string are replaced with “0” In addition, a concatenation of the first bit string to the lower side of the third bit string is generated as an address to be given to the flash memory device to which the device number larger than the device number corresponding to the starting device is assigned. Then, all the bits of the first bit string are replaced with “0”, and 1 is added to the third bit string, and the first bit string is connected to the lower side of the third bit string. Is generated as an address to be given to the flash memory device to which the device number smaller than the device number corresponding to the starting device is assigned. It is characterized in.

フラッシュメモリシステムを上述のアクセスコントローラと、ラッシュメモリと当該フラッシュメモリへのアクセスを制御するフラッシュメモリコントローラとからなる2 個(nは1以上の整数)のフラッシュメモリ装置と、から構成してもよい。 And the flash memory system described above access controller, (the n 1 or more integer) 2 n pieces consisting of a flash memory controller for controlling access to flash memory and the flash memory constructed from a flash memory device, Also good.

上記目的を達成するため、本発明のアクセス制御方法は、
フラッシュメモリと当該フラッシュメモリへのアクセスを制御するフラッシュメモリコントローラとからなる2 個(nは1以上の整数)のフラッシュメモリ装置に、ホストシステムから与えられるセクタ単位の論理アドレスが割り当てられている領域を2 セクタ(mは1以上の整数)の振り分け単位で振り分けるアクセス制御方法であって、
ホストシステムから与えられるアクセス指示により指定されたアクセス対象領域の先頭の論理アドレスとアクセス対象領域のセクタ数に基づいて、それぞれのフラッシュメモリ装置においてアクセス先となる領域のセクタ数を算出するセクタ数算出ステップと、
前記アクセス指示により指定されたアクセス対象領域の先頭の論理アドレスとアクセス対象領域のセクタ数に基づいて、それぞれのフラッシュメモリ装置においてアクセス先となる領域の先頭のアドレスを生成するアドレス生成ステップと、
前記セクタ数算出ステップにより算出されたセクタ数及び前記アドレス生成ステップにより生成されたアドレスを、アクセス先の領域を指示する情報として、それぞれのフラッシュメモリ装置に与える制御ステップとを備え、
フラッシュメモリ装置には、0から2 −1の装置番号が割り当てられており、ホストシステムから与えられる論理アドレスに対応する領域は、当該論理アドレスの下位側から数えてm+1ビット目からm+nビット目までのビットの値と一致する前記装置番号が割り当てられているフラッシュメモリ装置に振り分けられ、
前記セクタ数算出ステップでは、
前記アクセス指示により指定されたアクセス対象領域の先頭の論理アドレスの下位側から数えてm+1ビット目からm+nビット目までのnビットに基づいて、当該論理アドレスに対応する領域を含む先頭領域の振り分け先のフラッシュメモリ装置である起点装置を特定すると共に、当該論理アドレスの下位mビットに基づいて、当該先頭領域のセクタ数である第1のセクタ数を求め、更に、前記アクセス指示により指定されたアクセス対象領域のセクタ数から前記第1のセクタ数を引いて得られた値を振り分け単位の2 で割る除算を行い、当該除算の商に基づいて、それぞれの前記フラッシュメモリ装置においてアクセス先となる2 セクタの振り分け単位の領域の個数を求めると共に、2 セクタ未満の領域であって当該除算の余りに一致するセクタ数の領域を含む末尾領域の振り分け先のフラッシュメモリ装置を特定することにより、それぞれのフラッシュメモリ装置においてアクセス先となる領域のセクタ数を算出し、
前記アドレス生成ステップでは、
前記アクセス指示により指定されたアクセス対象領域の先頭の論理アドレスを、当該論理アドレスの下位mビットに対応する第1のビット列と、当該論理アドレスの下位側から数えてm+1ビット目からm+nビット目までのビットに対応する第2のビット列と、当該論理アドレスの下位側から数えてm+nビット目のビットより上位側のビットに対応する第3のビット列に分割し、
前記第3のビット列の下位側に前記第1のビット列を連結したものを、前記起点装置のフラッシュメモリ装置に与えるアドレスとして生成し、前記第1のビット列の全てのビットを“0”で置き換えたうえで、当該第1のビット列を前記第3のビット列の下位側に連結したものを、前記起点装置に対応する前記装置番号より大きい前記装置番号が割り当てられているフラッシュメモリ装置に与えるアドレスとして生成し、前記第1のビット列の全てのビットを“0”で置き換えると共に、前記第3のビット列に1を加算したうえで、当該第1のビット列を当該第3のビット列の下位側に連結したものを、前記起点装置に対応する前記装置番号より小さい前記装置番号が割り当てられているフラッシュメモリ装置に与えるアドレスとして生成する
ことを特徴とする。
In order to achieve the above object, an access control method of the present invention provides:
Logical addresses in units of sectors given from the host system are assigned to 2 n flash memory devices (n is an integer of 1 or more) composed of a flash memory and a flash memory controller that controls access to the flash memory . An access control method for allocating an area in an allocation unit of 2 m sectors (m is an integer of 1 or more),
Sector number calculation that calculates the number of sectors in the area to be accessed in each flash memory device based on the top logical address of the access target area specified by the access instruction given by the host system and the number of sectors in the access target area Steps,
An address generation step of generating the head address of the area to be accessed in each flash memory device based on the logical address of the head of the access target area specified by the access instruction and the number of sectors of the access target area;
A control step of providing each flash memory device with the number of sectors calculated in the sector number calculating step and the address generated in the address generating step as information indicating an access destination area,
Device numbers 0 to 2 n -1 are assigned to the flash memory device, and the area corresponding to the logical address given from the host system is counted from the (m + 1) th bit to the (m + n) th bit counted from the lower side of the logical address. Allocated to the flash memory device to which the device number corresponding to the value of the bits up to is assigned,
In the sector number calculating step,
Based on the n bits from the (m + 1) th bit to the (m + n) th bit counted from the lower side of the top logical address of the access target area specified by the access instruction, the distribution destination of the top area including the area corresponding to the logical address And the first sector number that is the number of sectors in the head area is obtained based on the lower m bits of the logical address, and the access designated by the access instruction is specified. The value obtained by subtracting the first sector number from the number of sectors in the target area is divided by 2 m as a distribution unit, and the flash memory device becomes an access destination based on the division quotient. with obtaining the number of areas of sorting units 2 m sectors, the remainder of an area of less than 2 m sectors the division By specifying the flash memory device of assignment destination end region including the matching area of the number of sectors, and calculates the number of sector area to be accessed in each of the flash memory device,
In the address generation step,
The first logical address corresponding to the lower m bits of the logical address, and the (m + 1) th bit to the (m + n) th bit counted from the lower side of the logical address, is the first logical address of the access target area designated by the access instruction. And a second bit string corresponding to the bits of the logical address and a third bit string corresponding to the bits on the upper side of the m + n-th bit counted from the lower side of the logical address,
A concatenation of the first bit string on the lower side of the third bit string is generated as an address to be given to the flash memory device of the originating device, and all the bits of the first bit string are replaced with “0” In addition, a concatenation of the first bit string to the lower side of the third bit string is generated as an address to be given to the flash memory device to which the device number larger than the device number corresponding to the starting device is assigned. Then, all the bits of the first bit string are replaced with “0”, and 1 is added to the third bit string, and the first bit string is connected to the lower side of the third bit string. Is generated as an address to be given to the flash memory device to which the device number smaller than the device number corresponding to the starting device is assigned. It is characterized in.

本発明によれば、データの書き込みが特定のフラッシュメモリに集中することを回避できるアクセスコントローラ、及び当該アクセスコントローラを備えるフラッシュメモリシステムが実現される。つまり、LBAで特定される論理アドレス空間を任意のセクタ数単位で複数のフラッシュメモリに順次割り当てるようにしたので、LBAの特定の範囲にアクセスが集中した場合でも、複数のフラッシュメモリにアクセスが分散され、特定のフラッシュメモリにアクセスが集中することを回避することができる。 According to the present invention, the access controller can be avoided that the write data is concentrated on a specific flash memory, and a flash memory system including the access controller is implemented. That is, since the logical address space identified by LBA to sequentially allocated to a plurality of flash memories in any sector number of units, even if the access is concentrated on a specific range of LBA, access to a plurality of flash memory It is distributed and it is possible to avoid the concentration of access to a specific flash memory.

以下、図面に基づき、本発明の実施の形態について詳細に説明する。   Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.

図1は、本発明に係るフラッシュメモリシステム1を概略的に示すブロック図である。図1に示すように、フラッシュメモリシステム1は、2台(図1では4=2台)のフラッシュメモリ装置2(2A〜2D)と、それを制御するアクセスコントローラ3で構成されている。 FIG. 1 is a block diagram schematically showing a flash memory system 1 according to the present invention. As shown in FIG. 1, a flash memory system 1 includes a 2 n stand flash memory device (in FIG. 1 4 = 2 two) 2 (2A-2D), is configured in the access controller 3 for controlling the .

フラッシュメモリシステム1は、外部バス13を介してホストシステム4と接続される。ホストシステム4は、ホストシステム4の全体の動作を制御するためのCPU(Central Processing Unit)、フラッシュメモリシステム1との情報の授受を担うコンパニオンチップ等から構成される。ホストシステム4は、例えば、文字、音声、あるいは画像情報等の種々の情報を処理するパーソナルコンピュータやデジタルスチルカメラをはじめとする各種情報処理装置であってもよい。   The flash memory system 1 is connected to the host system 4 via the external bus 13. The host system 4 includes a CPU (Central Processing Unit) for controlling the entire operation of the host system 4, a companion chip for transferring information to and from the flash memory system 1, and the like. The host system 4 may be various information processing apparatuses such as a personal computer and a digital still camera that process various types of information such as characters, sounds, and image information.

フラッシュメモリ装置2A〜2Dは、互いに同一の構成を有する記憶装置であり、アクセスコントローラ3を上位装置として、フラッシュメモリ(チップ)へのアクセスを行う。   The flash memory devices 2A to 2D are storage devices having the same configuration, and access the flash memory (chip) using the access controller 3 as a host device.

アクセスコントローラ3は、図1に示すように、マイクロプロセッサ6と、ホストインターフェースブロック7と、ワークエリア8と、バッファ9と、フラッシュメモリ装置インターフェースブロック10と、ROM(Read Only Memory)12と、から構成される。これら機能ブロックによって構成されるアクセスコントローラ3は、一つの半導体チップ上に集積される。以下に各機能ブロックについて説明する。   As shown in FIG. 1, the access controller 3 includes a microprocessor 6, a host interface block 7, a work area 8, a buffer 9, a flash memory device interface block 10, and a ROM (Read Only Memory) 12. Composed. The access controller 3 constituted by these functional blocks is integrated on one semiconductor chip. Each functional block will be described below.

マイクロプロセッサ6は、ROM12に記憶されているプログラムに従って、アクセスコントローラ3の全体の動作を制御する。例えば、マイクロプロセッサ6は、各種処理等を定義したコマンドセットをROM12から読み出してフラッシュメモリ装置インターフェースブロック10に供給し、フラッシュメモリ装置インターフェースブロック10に処理を実行させる。   The microprocessor 6 controls the overall operation of the access controller 3 in accordance with a program stored in the ROM 12. For example, the microprocessor 6 reads a command set defining various processes from the ROM 12, supplies the command set to the flash memory device interface block 10, and causes the flash memory device interface block 10 to execute processing.

ホストインターフェースブロック7は、図3(a)に示すようにコマンドレジスタR1、セクタ数レジスタR2及びLBAレジスタR3を備えており、ホストシステム4との間で、データ、アドレス情報、ステータス情報、外部コマンド等の授受を行なう。ホストシステム4よりフラッシュメモリシステム1に供給されるデータ等は、ホストインターフェースブロック7を入口としてフラッシュメモリシステム1の内部(例えば、バッファ9)に取り込まれる。また、フラッシュメモリシステム1からホストシステム4に供給されるデータ等は、ホストインターフェースブロック7を出口としてホストシステム4に供給される。   As shown in FIG. 3A, the host interface block 7 includes a command register R1, a sector number register R2, and an LBA register R3. Data, address information, status information, and external commands are exchanged with the host system 4. Etc. are exchanged. Data or the like supplied from the host system 4 to the flash memory system 1 is taken into the flash memory system 1 (for example, the buffer 9) using the host interface block 7 as an entrance. Data supplied from the flash memory system 1 to the host system 4 is supplied to the host system 4 through the host interface block 7 as an exit.

ワークエリア8は、フラッシュメモリ装置2A〜2Dの制御に必要なデータが一時的に格納される作業領域であり、複数のSRAM(Static Random Access Memory)セルによって構成される。   The work area 8 is a work area in which data necessary for controlling the flash memory devices 2A to 2D is temporarily stored, and includes a plurality of SRAM (Static Random Access Memory) cells.

バッファ9は、フラッシュメモリ装置2A〜2Dからそれぞれ読み出されたデータ及びフラッシュメモリ装置2A〜2Dに書き込むべきデータを一時的に蓄積する。すなわち、フラッシュメモリ装置2A〜2Dから読み出されたデータは、ホストシステム4が受け取り可能な状態となるまでバッファ領域9に保持され、フラッシュメモリ装置2A〜2Dに書き込むべきデータは、フラッシュメモリ装置2A〜2Dが書き込み可能な状態となるまでバッファ領域9に保持される。   The buffer 9 temporarily stores data read from the flash memory devices 2A to 2D and data to be written to the flash memory devices 2A to 2D, respectively. That is, the data read from the flash memory devices 2A to 2D is held in the buffer area 9 until the host system 4 can receive the data, and the data to be written to the flash memory devices 2A to 2D is stored in the flash memory device 2A. ˜2D is held in the buffer area 9 until it becomes a writable state.

フラッシュメモリ装置インターフェースブロック10は、内部バス14を介して、フラッシュメモリ装置2A〜2Dとデータ、アドレス情報、ステータス情報、外部コマンド等の授受を行う。   The flash memory device interface block 10 exchanges data, address information, status information, external commands, and the like with the flash memory devices 2A to 2D via the internal bus 14.

ROM12は、マイクロプロセッサ6による処理の手順を定義するプログラムを格納する不揮発性の記憶素子である。   The ROM 12 is a non-volatile storage element that stores a program that defines a processing procedure performed by the microprocessor 6.

次に、フラッシュメモリ装置2A〜2Dについて説明する。
フラッシュメモリ装置2A〜2Dは、互いに同一の構成を有している。図2に、例として、フラッシュメモリ装置2Aの構成を示す。
Next, the flash memory devices 2A to 2D will be described.
The flash memory devices 2A to 2D have the same configuration. FIG. 2 shows a configuration of the flash memory device 2A as an example.

各フラッシュメモリ装置2Aは、図2に示すように、フラッシュメモリ202と、それを制御するフラッシュメモリアクセスコントローラ203で構成されている。   As shown in FIG. 2, each flash memory device 2A includes a flash memory 202 and a flash memory access controller 203 that controls the flash memory 202.

フラッシュメモリアクセスコントローラ203は、図2に示すように、マイクロプロセッサ206と、アクセスコントローラインターフェースブロック207と、ワークエリア208と、バッファ209と、フラッシュメモリインターフェースブロック210と、ECC(エラー・コレクション・コード)ブロック211と、ROM(Read Only Memory)212と、から構成され、内部バス14を介してアクセスコントローラ3と接続される。これら機能ブロックによって構成されるフラッシュメモリコントローラ203は、一つの半導体チップ上に集積される。以下に各機能ブロックについて説明する。   As shown in FIG. 2, the flash memory access controller 203 includes a microprocessor 206, an access controller interface block 207, a work area 208, a buffer 209, a flash memory interface block 210, and an ECC (error collection code). The block 211 and a ROM (Read Only Memory) 212 are connected to the access controller 3 via the internal bus 14. The flash memory controller 203 constituted by these functional blocks is integrated on one semiconductor chip. Each functional block will be described below.

マイクロプロセッサ206は、ROM212に記憶されているプログラムに従って、フラッシュメモリアクセスコントローラ203の全体の動作を制御する。例えば、マイクロプロセッサ206は、各種処理等を定義したコマンドセットをROM212から読み出してフラッシュメモリインターフェースブロック210に供給し、フラッシュメモリインターフェースブロック210に処理を実行させる。   The microprocessor 206 controls the overall operation of the flash memory access controller 203 in accordance with a program stored in the ROM 212. For example, the microprocessor 206 reads a command set defining various processes from the ROM 212, supplies the command set to the flash memory interface block 210, and causes the flash memory interface block 210 to execute the process.

アクセスコントローラインターフェースブロック207は、図3(b)に示すようにコマンドレジスタR21、セクタ数レジスタR22及びLBAレジスタR23を備えており、アクセスコントローラ3との間で、データ、アドレス情報、ステータス情報、コマンド等の授受を行なう。アクセスコントローラ3よりフラッシュメモリ装置2Aに供給されるデータ等は、アクセスコントローラインターフェースブロック207を入口としてフラッシュメモリ装置2Aの内部(例えば、バッファ209)に取り込まれる。また、フラッシュメモリ装置2Aからアクセスコントローラ3に供給されるデータ等は、アクセスコントローラインターフェースブロック207を出口としてアクセスコントローラ3に供給される。   As shown in FIG. 3B, the access controller interface block 207 includes a command register R21, a sector number register R22, and an LBA register R23. Data, address information, status information, and commands are exchanged with the access controller 3. Etc. are exchanged. Data or the like supplied from the access controller 3 to the flash memory device 2A is taken into the flash memory device 2A (for example, the buffer 209) using the access controller interface block 207 as an entrance. Data supplied from the flash memory device 2A to the access controller 3 is supplied to the access controller 3 through the access controller interface block 207.

ワークエリア208は、フラッシュメモリ202の制御に必要なデータが一時的に格納される作業領域であり、複数のSRAM(Static Random Access Memory)セルによって構成される。   The work area 208 is a work area in which data necessary for controlling the flash memory 202 is temporarily stored, and is composed of a plurality of SRAM (Static Random Access Memory) cells.

バッファ209は、フラッシュメモリ202からそれぞれ読み出されたデータ及びフラッシュメモリ202に書き込むべきデータを一時的に蓄積する。すなわち、フラッシュメモリ202から読み出されたデータは、アクセスコントローラ3が受け取り可能な状態となるまでバッファ209に保持され、フラッシュメモリ202に書き込むべきデータは、フラッシュメモリ202が書き込み可能な状態となるまでバッファ209に保持される。   The buffer 209 temporarily stores data read from the flash memory 202 and data to be written to the flash memory 202. That is, the data read from the flash memory 202 is held in the buffer 209 until the access controller 3 can receive the data, and the data to be written to the flash memory 202 is stored until the flash memory 202 is in a writable state. It is held in the buffer 209.

フラッシュメモリインターフェースブロック210は、内部バス214を介して、フラッシュメモリ202とデータ、アドレス情報、ステータス情報、内部コマンド等の授受を行う。   The flash memory interface block 210 exchanges data, address information, status information, internal commands, and the like with the flash memory 202 via the internal bus 214.

ECCブロック211は、フラッシュメモリ202に書き込むデータに付加されるエラーコレクションコードを生成するとともに、読み出しデータに付加されたエラーコレクションコードに基づいて、読み出したデータに含まれる誤りを検出・訂正する。   The ECC block 211 generates an error correction code added to data to be written to the flash memory 202, and detects and corrects an error included in the read data based on the error correction code added to the read data.

ROM212は、マイクロプロセッサ206による処理の手順を定義するプログラムを格納する不揮発性の記憶素子である。具体的には、ROM212は、例えば、アドレス変換テーブルの作成等の処理手順を定義するプログラムを格納する。   The ROM 212 is a non-volatile storage element that stores a program that defines a processing procedure performed by the microprocessor 206. Specifically, the ROM 212 stores a program that defines a processing procedure such as creation of an address conversion table, for example.

このように構成されるフラッシュメモリシステム1において、ホストシステム4がフラッシュメモリ202(フラッシュメモリ装置2A〜2D内のフラッシュメモリ202)に格納されているデータを読み出す場合、ホストシステム4は、アクセスコントローラ3のホストインターフェースブロック7のセクタ数レジスタR2に、読み出すデータのセクタ数を設定し、LBAレジスタR3に、読み出すデータのLBA(Logical Block Address)の先頭値を設定し、その後、コマンドレジスタR1に、読み出し処理を指示する外部コマンドを設定する。ここで、ホストシステム4から与えられるLBAは、ホストシステム4側で管理されている論理アドレス空間におけるセクタ(512バイト)単位のアドレスである。   In the flash memory system 1 configured as described above, when the host system 4 reads data stored in the flash memory 202 (the flash memory 202 in the flash memory devices 2A to 2D), the host system 4 uses the access controller 3 The number of sectors of data to be read is set in the sector number register R2 of the host interface block 7, and the leading value of the LBA (Logical Block Address) of the data to be read is set in the LBA register R3, and then read to the command register R1. Set an external command to instruct processing. Here, the LBA given from the host system 4 is an address in units of sectors (512 bytes) in the logical address space managed on the host system 4 side.

アクセスコントローラ3は、読み出し処理を指示する外部コマンドが、コマンドレジスタR1に設定されると、各フラッシュメモリ装置2A〜2Dに対する読み出し処理の割振りを開始する。   When an external command instructing read processing is set in the command register R1, the access controller 3 starts allocation of read processing to each of the flash memory devices 2A to 2D.

この読み出し処理の割振りにおいて、アクセスコントローラ3は、各フラッシュメモリ装置2A〜2Dに割り振られるアクセス対象データの、各フラッシュメモリ装置2A〜2D内での先頭セクタのLBAとセクタ数(データ量)とを求める。続いて、各フラッシュメモリ装置2A〜2Dのアクセスコントローラインターフェースブロック207のセクタ数レジスタR22に、各フラッシュメモリ装置2A〜2Dから読み出すデータのセクタ数を設定し、各フラッシュメモリ装置2A〜2DのLBAレジスタR23に、各フラッシュメモリ装置2A〜2Dから読み出すデータのLBAの先頭値を設定し、その後、各フラッシュメモリ装置2A〜2DのコマンドレジスタR21に、読み出し処理を指示する外部コマンドを設定する。   In this allocation of read processing, the access controller 3 determines the LBA of the head sector and the number of sectors (data amount) of the access target data allocated to each flash memory device 2A to 2D in each flash memory device 2A to 2D. Ask. Subsequently, the number of sectors of data read from each flash memory device 2A to 2D is set in the sector number register R22 of the access controller interface block 207 of each flash memory device 2A to 2D, and the LBA register of each flash memory device 2A to 2D is set. The leading value of the LBA of the data read from each flash memory device 2A to 2D is set in R23, and then an external command for instructing the reading process is set in the command register R21 of each flash memory device 2A to 2D.

各フラッシュメモリ装置2A〜2Dは、読み出し処理を指示する外部コマンドが、コマンドレジスタR21に設定されると、読み出し処理を開始する。   Each of the flash memory devices 2A to 2D starts the read process when an external command instructing the read process is set in the command register R21.

同様に、ホストシステム4がフラッシュメモリ202(フラッシュメモリ装置2A〜2D)にデータを書き込む場合、ホストシステム4は、ホストインターフェースブロック7のセクタ数レジスタR2に、書き込むデータのセクタ数を設定し、LBAレジスタR3に、書き込むデータのLBAの先頭値を設定し、その後、コマンドレジスタR1に、書き込みを指示する外部コマンドを設定する。その後、書き込み対象のデータを順次送信する。   Similarly, when the host system 4 writes data to the flash memory 202 (flash memory devices 2A to 2D), the host system 4 sets the number of sectors of data to be written in the sector number register R2 of the host interface block 7, and the LBA The leading value of the LBA of the data to be written is set in the register R3, and then an external command for instructing writing is set in the command register R1. Thereafter, the data to be written is sequentially transmitted.

アクセスコントローラ3は、書き込み処理を指示する外部コマンドが、コマンドレジスタR1に設定されると、各フラッシュメモリ装置2A〜2Dに対する書き込み処理の割振りを開始する。   When an external command instructing write processing is set in the command register R1, the access controller 3 starts allocating write processing to the flash memory devices 2A to 2D.

この書き込み処理の割振りにおいて、アクセスコントローラ3は、各フラッシュメモリ装置2A〜2Dに割り振られる書き込み対象データの、各フラッシュメモリ装置2A〜2D内での先頭セクタのLBAとセクタ数(データ量)とを求める。続いて、各フラッシュメモリ装置2A〜2Dのアクセスコントローラインターフェースブロック207のセクタ数レジスタR22に、各フラッシュメモリ装置2A〜2Dに書込むデータのセクタ数を設定し、各フラッシュメモリ装置2A〜2DのLBAレジスタR23に、各フラッシュメモリ装置2A〜2Dに書き込むデータのLBAの先頭値を設定し、その後、各フラッシュメモリ装置2A〜2DのコマンドレジスタR21に、書き込み処理を指示する外部コマンドを設定する。   In this write processing allocation, the access controller 3 calculates the LBA of the first sector and the number of sectors (data amount) of the write target data allocated to each flash memory device 2A to 2D in each flash memory device 2A to 2D. Ask. Subsequently, the number of sectors of data to be written to each flash memory device 2A to 2D is set in the sector number register R22 of the access controller interface block 207 of each flash memory device 2A to 2D, and the LBA of each flash memory device 2A to 2D is set. The leading value of the LBA of the data to be written to each flash memory device 2A to 2D is set in the register R23, and then an external command for instructing the writing process is set in the command register R21 of each flash memory device 2A to 2D.

さらに、アクセスコントローラ3は、ホストシステム4から供給されるデータ(書き込み対象データ)を対応するフラッシュメモリ装置2A〜2Dに割り振って供給する。   Further, the access controller 3 allocates and supplies data (data to be written) supplied from the host system 4 to the corresponding flash memory devices 2A to 2D.

各フラッシュメモリ装置2A〜2Dは、書き込み処理を指示する外部コマンドが、コマンドレジスタR21に設定されると、書き込み処理を開始する。   Each of the flash memory devices 2A to 2D starts the write process when an external command instructing the write process is set in the command register R21.

図2に示すフラッシュメモリ202は、不揮発性メモリであり、レジスタと、メモリセルアレイと、から構成される。フラッシュメモリ202は、レジスタとメモリセルとの間でデータの複写を行って、データの書き込み又は読み出しを行う。   A flash memory 202 shown in FIG. 2 is a non-volatile memory, and includes a register and a memory cell array. The flash memory 202 performs data copying between the register and the memory cell to write or read data.

フラッシュメモリ202のメモリセルアレイは、複数のメモリセル群と、ワード線と、を備える。各メモリセル群は、複数のメモリセルが直列に接続されたものである。ワード線は、メモリセル群の特定のメモリセルを選択するためのものである。このワード線を介して選択されたメモリセルとレジスタとの間で、データの複写、即ち、レジスタから選択されたメモリセルへの複写又は選択されたメモリセルからレジスタへのデータの複写が行われる。   The memory cell array of the flash memory 202 includes a plurality of memory cell groups and word lines. Each memory cell group includes a plurality of memory cells connected in series. The word line is for selecting a specific memory cell in the memory cell group. Data is copied between the selected memory cell and the register via the word line, that is, data is copied from the register to the selected memory cell, or data is copied from the selected memory cell to the register. .

メモリセルアレイを構成するメモリセルは、2つのゲートを備えたMOSトランジスタによって構成される。ここで、上側のゲート、下側のゲートは、それぞれ、コントロールゲート、フローティングゲートと呼ばれており、フローティングゲートに電荷(電子)を注入若しくはフローティングゲートから電荷(電子)を排出することによって、データの書き込み若しくはデータの消去が行われる。   A memory cell constituting the memory cell array is constituted by a MOS transistor having two gates. Here, the upper gate and the lower gate are referred to as a control gate and a floating gate, respectively. By injecting charges (electrons) into the floating gate or discharging charges (electrons) from the floating gate, data can be obtained. Is written or data is erased.

このフローティングゲートは、周囲を絶縁体で囲まれているので、注入された電子は長期間にわたって保持される。なお、フローティングゲートに電子を注入するときは、コントロールゲートが高電位側となる高電圧をコントロールゲートとフローティングゲート間に印加する。また、フローティングゲートから電子を排出するときは、コントロールゲートが低電位側となる高電圧をコントロールゲートとフローティングゲート間に印加する。   Since the floating gate is surrounded by an insulator, the injected electrons are held for a long period of time. Note that, when electrons are injected into the floating gate, a high voltage at which the control gate is on the high potential side is applied between the control gate and the floating gate. Further, when electrons are discharged from the floating gate, a high voltage at which the control gate becomes a low potential side is applied between the control gate and the floating gate.

ここで、フローティングゲートに電子が注入されている状態が書き込み状態であり、論理値「0」に対応する。また、フローティングゲートから電子が排出されている状態が消去状態であり、論理値「1」に対応する。   Here, a state where electrons are injected into the floating gate is a write state, which corresponds to a logical value “0”. The state in which electrons are discharged from the floating gate is an erased state, which corresponds to a logical value “1”.

このようなフラッシュメモリ202のアドレス空間を図4に示す。フラッシュメモリ202のアドレス空間は、“ページ”及び“ブロック(物理ブロック)”で構成されている。   Such an address space of the flash memory 202 is shown in FIG. The address space of the flash memory 202 is composed of “pages” and “blocks (physical blocks)”.

ページは、フラッシュメモリ202にて行われるデータ読み出し動作及びデータ書き込み動作における処理単位である。物理ブロックは、フラッシュメモリ202にて行われるデータ消去動作における処理単位であり、複数個のページで構成されている。図示したフラッシュメモリでは、1つのページは、1セクタ(512バイト)のユーザ領域25と、16バイトの冗長領域26で構成され、1つの物理ブロックは32個のページで構成されている。なお、1つのページが4セクタのユーザ領域と64バイトの冗長領域で構成され、1つの物理ブロックが64個のページで構成されているフラッシュメモリもある。ユーザ領域25は、ホストシステム4から供給されるユーザデータを格納する。   A page is a processing unit in a data read operation and a data write operation performed in the flash memory 202. The physical block is a processing unit in the data erasing operation performed in the flash memory 202, and is composed of a plurality of pages. In the illustrated flash memory, one page is composed of a user area 25 of 1 sector (512 bytes) and a redundant area 26 of 16 bytes, and one physical block is composed of 32 pages. There is a flash memory in which one page is composed of a 4-sector user area and a 64-byte redundant area, and one physical block is composed of 64 pages. The user area 25 stores user data supplied from the host system 4.

次に、上記構成のフラッシュメモリシステム1のアクセスコントローラ3によって行われるアクセス対象の割振りについて説明する。   Next, allocation of access targets performed by the access controller 3 of the flash memory system 1 having the above configuration will be described.

本実施の形態においては、アクセスコントローラ3が、LBAによって指定される各セクタを、設定されている対応関係に従って、4つのフラッシュメモリ装置2A〜2Dに順番に割り振っている。この様にすることにより、特定のフラッシュメモリ装置2A〜2D、つまり、特定のフラッシュメモリ202にアクセスが集中することを防止している。   In the present embodiment, the access controller 3 sequentially allocates each sector designated by the LBA to the four flash memory devices 2A to 2D in accordance with the set correspondence relationship. By doing so, it is possible to prevent access from being concentrated on specific flash memory devices 2A to 2D, that is, specific flash memory 202.

例えば、図5(a)に示すように、ホストシステム4から与えられるLBAを16ビットとして、この割振りを説明する。又、以下の説明では、フラッシュメモリ202の物理ブロックが32ページで構成され、1ページが1セクタ(512バイト)に対応するものとして説明する。   For example, as shown in FIG. 5A, the allocation will be described assuming that the LBA given from the host system 4 is 16 bits. In the following description, it is assumed that the physical block of the flash memory 202 is composed of 32 pages, and one page corresponds to one sector (512 bytes).

割振りを行わなかった場合、つまり、フラッシュメモリシステムが1個のフラッシュメモリ装置で構成されていた場合、LBAの上位11ビットが、論理ブロックに付けられた通番である論理ブロック番号LBNを示し、下位5ビットが、論理ブロック内のセクタに付けられた通番であるセクタ番号SNを示していると判別する。   When allocation is not performed, that is, when the flash memory system is configured by one flash memory device, the upper 11 bits of the LBA indicate the logical block number LBN that is a serial number assigned to the logical block, It is determined that 5 bits indicate a sector number SN which is a serial number assigned to a sector in the logical block.

又、複数の論理ブロックで論理ゾーンを形成して、論理ゾーン単位でアドレス変換を行う場合には、論理ブロック番号LBNを、論理ゾーンに含まれる論理ブロックの数で割った商が論理ゾーン番号(論理ゾーンに付けられた通番)LZNとなり、余りが論理ゾーン内ブロック番号(論理ゾーン内での論理ブロックの通番)LZIBNになる。尚、物理ブロックの各ページには、セクタ番号の順番でデータが格納されるので、1ページが1セクタのフラッシュメモリの場合、セクタ番号SNとページ番号(物理ブロック内のページに付けられた通番)PNとは一致する。   When a logical zone is formed by a plurality of logical blocks and address conversion is performed in units of logical zones, the quotient obtained by dividing the logical block number LBN by the number of logical blocks included in the logical zone is the logical zone number ( The serial number assigned to the logical zone) becomes LZN, and the remainder becomes the logical zone block number (the logical block serial number in the logical zone) LZIBN. Since data is stored in the order of sector numbers in each page of the physical block, when one page is a flash memory of one sector, the sector number SN and the page number (the serial number assigned to the page in the physical block) ) PN matches.

又、この割振りを行わないで、ホストシステム側の論理ブロック空間を複数のフラッシュメモリ装置に割り当てる場合には、論理アドレス空間を各フラッシュメモリ装置に割り当てられるセクタ数に応じて分割し、分割した論理アドレス空間が各フラッシュメモリ装置に割り当てられる。例えば、各フラッシュメモリ装置に128000セクタ(4000個の論理ブロック)を割り当てる場合、LBA#0〜#127999のセクタが最初のフラッシュメモリ装置に割り当てられ、LBA#128000〜#255999のセクタが次のフラッシュメモリ装置に割り当てられる。   In addition, when the logical block space on the host system side is allocated to a plurality of flash memory devices without performing this allocation, the logical address space is divided according to the number of sectors allocated to each flash memory device, An address space is assigned to each flash memory device. For example, when allocating 128000 sectors (4000 logical blocks) to each flash memory device, LBA # 0 to # 127999 sectors are allocated to the first flash memory device, and LBA # 128000 to # 255999 sectors are assigned to the next flash memory device. Assigned to a memory device.

これに対して、本実施の形態では、図5(a)に示すように、16ビットのLBAの下位から1ビット目と2ビット目の2ビットをフラッシュメモリ装置2A〜2Dを判別するための装置番号AN#0〜#3とし、この2ビットを除いた14ビットのLBA’を各フラッシュメモリ装置2A〜2Dに与えるセクタ単位のアドレスとしている。各フラッシュメモリ装置2A〜2Dは、LBA’の上位9ビットが論理ブロック番号LBNを示すと判別し、下位5ビットがセクタ番号SN(0〜31)を示すと判別してフラッシュメモリ202にアクセス処理を行う。尚、図5(a)では、LBAを16ビットで示したが、それより多いビット数の場合も、LBAの下位2ビットを除いたLBA’が各フラッシュメモリ装置2A〜2Dに与えられ、LBA’の下位5ビットを除いた上位ビットが論理ブロック番号LBNを示すと判別される。   On the other hand, in the present embodiment, as shown in FIG. 5A, the flash memory devices 2A to 2D are used to discriminate the 2 bits of the first and second bits from the lower order of the 16-bit LBA. The device numbers AN # 0 to # 3 are used, and 14-bit LBA 'excluding these 2 bits is used as the sector unit address to be given to the flash memory devices 2A to 2D. Each of the flash memory devices 2A to 2D determines that the upper 9 bits of LBA ′ indicate the logical block number LBN, and determines that the lower 5 bits indicate the sector number SN (0 to 31), and accesses the flash memory 202. I do. In FIG. 5A, the LBA is shown as 16 bits. However, even when the number of bits is larger than that, LBA ′ excluding the lower 2 bits of the LBA is given to each of the flash memory devices 2A to 2D. It is determined that the upper bits excluding the lower 5 bits of 'indicate the logical block number LBN.

このような判別をおこなうことにより、図5(b)に示すように、LBAが連続する複数のセクタが、1セクタ単位で、フラッシュメモリ装置2A〜2Dに順次割り振られる。ここで、装置番号AN#0がフラッシュメモリ装置2Aに対応し、装置番号AN#1がフラッシュメモリ装置2Bに対応し、装置番号AN#2がフラッシュメモリ装置2Cに対応し、装置番号AN#3がフラッシュメモリ装置2Dに対応するものとする。   By making such a determination, as shown in FIG. 5B, a plurality of sectors with consecutive LBAs are sequentially allocated to the flash memory devices 2A to 2D in units of one sector. Here, the device number AN # 0 corresponds to the flash memory device 2A, the device number AN # 1 corresponds to the flash memory device 2B, the device number AN # 2 corresponds to the flash memory device 2C, and the device number AN # 3. Corresponds to the flash memory device 2D.

この様に割り振ることにより、各フラッシュメモリ装置2A〜2Dでアクセスされるデータのセクタ数は、ホストシステム4から指示された総セクタ数の1/4になる。ただし、総セクタ数が4の倍数以外の値の場合には、総セクタ数を4で割った余りが、1セクタずつフラッシュメモリ装置2A〜2Dに、ホストシステム4から指示された先頭セクタのLBAに対応するフラッシュメモリ装置から順番に割り振られる。   By allocating in this way, the number of sectors of data accessed by each of the flash memory devices 2A to 2D becomes 1/4 of the total number of sectors designated by the host system 4. However, when the total number of sectors is a value other than a multiple of 4, the remainder obtained by dividing the total number of sectors by 4 is sent to the flash memory devices 2A to 2D one sector at a time by the LBA of the first sector designated by the host system 4. Are allocated in order from the flash memory device corresponding to.

つまり、先頭セクタのLBAにフラッシュメモリ装置2Aが対応し、余りが1の場合は、フラッシュメモリ装置2Aでアクセスされるデータのセクタ数だけが1セクタ加算され、余りが2の場合は、フラッシュメモリ装置2A、2Bでアクセスされるデータのセクタ数が1セクタ加算され、余りが3の場合は、フラッシュメモリ装置2A〜2Cでアクセスされるデータのセクタ数が1セクタ加算される。又、先頭セクタのLBAにフラッシュメモリ装置2Bが対応し、余りが1の場合は、フラッシュメモリ装置2Bでアクセスされるデータのセクタ数だけが1セクタ加算され、余りが2の場合は、フラッシュメモリ装置2B、2Cでアクセスされるデータのセクタ数が1セクタ加算され、余りが3の場合は、フラッシュメモリ装置2B〜2Dでアクセスされるデータのセクタ数が1セクタ加算される。   That is, if the flash memory device 2A corresponds to the LBA of the first sector and the remainder is 1, only one sector is added to the number of sectors of data accessed by the flash memory device 2A, and if the remainder is 2, the flash memory device The number of sectors of data accessed by the devices 2A and 2B is added by one sector. When the remainder is 3, the number of sectors of data accessed by the flash memory devices 2A to 2C is added by one sector. If the flash memory device 2B corresponds to the LBA of the first sector and the remainder is 1, only one sector is added to the number of sectors of data accessed by the flash memory device 2B. If the remainder is 2, the flash memory device 2B The number of sectors of data accessed by the devices 2B and 2C is added by one sector, and when the remainder is 3, the number of sectors of data accessed by the flash memory devices 2B to 2D is added by one sector.

例えば、ホストシステム4から指示された先頭セクタのLBAにフラッシュメモリ装置2Aが対応し、ホストシステム4から指示されたアクセス対象の総セクタ数が5であれば、5÷4の商が1、余りが1なので、フラッシュメモリ装置2Aでアクセスされるデータのセクタ数は2セクタとなり、フラッシュメモリ装置2B〜2Dでアクセスされるデータのセクタ数は1セクタとなる。同様に、ホストシステム4から指示された先頭セクタのLBAにフラッシュメモリ装置2Aが対応し、ホストシステム4から指示されたアクセス対象の総セクタ数が14であれば、14÷4の商が3、余りが2なので、フラッシュメモリ装置2A、2Bでアクセスされるデータのセクタ数は4セクタとなり、フラッシュメモリ装置2C、2Dでアクセスされるデータのセクタ数は3セクタとなる。   For example, if the flash memory device 2A corresponds to the LBA of the head sector designated by the host system 4 and the total number of sectors to be accessed designated by the host system 4 is 5, the quotient of 5/4 is 1, and the remainder Therefore, the number of sectors of data accessed by the flash memory device 2A is two sectors, and the number of sectors of data accessed by the flash memory devices 2B to 2D is one sector. Similarly, if the flash memory device 2A corresponds to the LBA of the head sector designated by the host system 4 and the total number of sectors to be accessed designated by the host system 4 is 14, the quotient of 14 ÷ 4 is 3, Since the remainder is 2, the number of sectors of data accessed by the flash memory devices 2A and 2B is 4 sectors, and the number of sectors of data accessed by the flash memory devices 2C and 2D is 3 sectors.

このセクタ数が、各フラッシュメモリ装置2A〜2Dのアクセスコントローラインターフェースブロック207のセクタ数レジスタR22に設定される。   This number of sectors is set in the sector number register R22 of the access controller interface block 207 of each flash memory device 2A to 2D.

また、各フラッシュメモリ装置2A〜2Dのアクセスコントローラインターフェースブロック207のLBAレジスタR23には、アクセスコントローラ3のホストインターフェースブロック7のLBAレジスタR3に設定されるLBAのうち、装置番号ANに対応する下位2ビットを除去した上位14ビットのLBA’が設定される。   In the LBA register R23 of the access controller interface block 207 of each flash memory device 2A to 2D, the LBA set in the LBA register R3 of the host interface block 7 of the access controller 3 is the lower 2 corresponding to the device number AN. The upper 14 bits of LBA ′ with bits removed are set.

但し、ホストシステム4から指示された先頭セクタのLBAが、フラッシュメモリ装置2Aに対応しない場合、例えば、フラッシュメモリ装置2Cに対応する場合は、1セクタ目の割振りでフラッシュメモリ装置2Dに対応する装置番号#3からフラッシュメモリ装置2Aに対応する装置番号#0に移るときにLBAの3ビット目に繰り上がりが生じるので、フラッシュメモリ装置2C、2DのLBA’を#iとした場合、フラッシュメモリ装置2A、2BのLBA’は#i+1となる。尚、図5(a)では、LBAを16ビットで示したが、それより多いビット数の場合も、LBAの下位2ビットを除いたLBA’が各フラッシュメモリ装置2A〜2DのLBAレジスタR23に設定される。   However, if the LBA of the first sector instructed from the host system 4 does not correspond to the flash memory device 2A, for example, corresponds to the flash memory device 2C, the device corresponding to the flash memory device 2D by the allocation of the first sector When the number # 3 moves to the device number # 0 corresponding to the flash memory device 2A, a carry occurs at the third bit of the LBA. Therefore, when the flash memory devices 2C and 2D have LBA ′ as #i, the flash memory device LBA ′ of 2A and 2B is # i + 1. In FIG. 5A, the LBA is shown as 16 bits. However, even when the number of bits is larger than that, the LBA ′ excluding the lower 2 bits of the LBA is stored in the LBA registers R23 of the flash memory devices 2A to 2D. Is set.

例えば、ホストシステム4からの読み出し処理で、アクセス対象の先頭セクタのLBAが「1000 0000 1010 1000」(2進数)であり、アクセス対象の総セクタ数が「63」である場合について、これらの設定を具体的に説明する。   For example, when the LBA of the first sector to be accessed is “1000 0000 1010 1000” (binary number) and the total number of sectors to be accessed is “63” in the read processing from the host system 4, these settings are made. Will be described in detail.

この場合、図6(a)に示すように、アクセスコントローラ3のホストインターフェースブロック7のセクタ数レジスタR2には、「63」が設定され、LBAレジスタR3には、「1000 0000 1010 1000」(2進数)が設定され、コマンドレジスタR1に「外部読み出しコマンド」が設定される。ここで、LBAレジスタR3に設定された先頭セクタのLBA「1000 0000 1010 1000」の下位2ビットは「00」(装置番号ANが#0)なので、この先頭セクタのLBAはフラッシュメモリ装置2Aに対応する。   In this case, as shown in FIG. 6A, “63” is set in the sector number register R2 of the host interface block 7 of the access controller 3, and “1000 0000 1010 1000” (2 Hex) is set, and an “external read command” is set in the command register R1. Here, since the lower 2 bits of the LBA “1000 0000 1010 1000” of the first sector set in the LBA register R3 are “00” (device number AN is # 0), the LBA of the first sector corresponds to the flash memory device 2A. To do.

又、63÷4の商が15、余りが3なので、フラッシュメモリ装置2A〜2Cのフラッシュメモリアクセスコントローラ203のアクセスコントローラインターフェースブロック207のセクタ数レジスタR22には、図6(b)に示すように、「16」が設定され、フラッシュメモリ装置2Dのフラッシュメモリアクセスコントローラ203のアクセスコントローラインターフェースブロック207のセクタ数レジスタR22には、図6(c)に示すように、「15」が設定される。   Since the quotient of 63 ÷ 4 is 15 and the remainder is 3, as shown in FIG. 6B, the sector number register R22 of the access controller interface block 207 of the flash memory access controller 203 of the flash memory devices 2A to 2C , “16” is set, and “15” is set in the sector number register R22 of the access controller interface block 207 of the flash memory access controller 203 of the flash memory device 2D, as shown in FIG. 6C.

又、LBAレジスタR3に設定された先頭セクタのLBA「1000 0000 1010 1000」の下位2ビットを除いたLBA’「1000 0000 1010 10」が、図6(b)、(c)に示すように、フラッシュメモリ装置2A〜2Dのフラッシュメモリアクセスコントローラ203のアクセスコントローラインターフェースブロック207のLBAレジスタR23に設定される。 Also, as shown in FIGS. 6B and 6C, LBA ′ “1000 0000 1010 10” excluding the lower 2 bits of the LBA “1000 0000 1010 1000” of the first sector set in the LBA register R3 is as shown in FIGS. It is set in the LBA register R23 of the access controller interface block 207 of the flash memory access controller 203 of the flash memory device 2A to 2D.

次に、各フラッシュメモリ装置2A〜2Dのアクセスコントローラインターフェースブロック207のコマンドレジスタR21、セクタ数レジスタR22及びLBAレジスタR23に設定された情報に基づいて、各フラッシュメモリ装置2A〜2Dで実行されるアクセス処理について説明する。   Next, based on the information set in the command register R21, the sector number register R22, and the LBA register R23 of the access controller interface block 207 of each flash memory device 2A to 2D, the access executed in each flash memory device 2A to 2D Processing will be described.

尚、各フラッシュメモリ装置2A〜2Dでは同様の処理が実行されるので、アクセスコントローラインターフェースブロック207のコマンドレジスタR21、セクタ数レジスタR22及びLBAレジスタR23に図6(b)に示したような情報が設定されたときに、フラッシュメモリ装置2Aで実行される処理を例として説明する。   Since the same processing is executed in each of the flash memory devices 2A to 2D, information as shown in FIG. 6B is stored in the command register R21, the sector number register R22, and the LBA register R23 of the access controller interface block 207. An example of processing executed by the flash memory device 2A when set is described.

フラッシュメモリ装置2Aは、セクタ数レジスタR22に設定されたセクタ数「16」及びLBAレジスタR23に設定されたLBA’「1000 0000 1010 10」に基づいて、フラッシュメモリ202内のアクセス対象領域(アクセス対象の物理ブロック及びその物理ブロック内のアクセス対象ページ)を特定する。   Based on the sector number “16” set in the sector number register R22 and the LBA ′ “1000 0000 1010 10” set in the LBA register R23, the flash memory device 2A accesses the access target area (access target in the flash memory 202). And the access target page in the physical block).

アクセス対象領域を特定する場合には、LBA’「1000 0000 1010 10」が論理ブロック番号LBNを示す部分とセクタ番号SNを示す部分とに分離され、論理ブロック番号LBNが物理ブロックアドレスPBAに変換(以下、論理ブロック番号LBNから物理ブロックアドレスPBAへの変換をアドレス変換と言う。)される。このアドレス変換処理は、論理ブロックと物理ブロックの対応関係を示したアドレス変換テーブルを参照して行われる。   When the access target area is specified, LBA ′ “1000 0000 1010 10” is separated into a part indicating the logical block number LBN and a part indicating the sector number SN, and the logical block number LBN is converted into a physical block address PBA ( Hereinafter, the conversion from the logical block number LBN to the physical block address PBA is referred to as address conversion). This address conversion process is performed with reference to an address conversion table showing the correspondence between logical blocks and physical blocks.

尚、このアドレス変換テーブルは、各物理ブロックの先頭ページの冗長領域に書込まれている論理アドレス情報(通常は論理ゾーン内ブロック番号LZIBN又は論理ブロック番号LBN)に基づいて作成される。又、アドレス変換テーブルは、複数の論理ブロックを集めた論理ゾーンと複数の物理ブロックを集めた物理ゾーンを構成し、対応する論理ゾーンと物理ゾーンを1単位として作成するようにしてもよい。   This address conversion table is created based on logical address information (usually the logical zone block number LZIBN or the logical block number LBN) written in the redundant area of the first page of each physical block. In addition, the address conversion table may comprise a logical zone that collects a plurality of logical blocks and a physical zone that collects a plurality of physical blocks, and the corresponding logical zone and physical zone may be created as one unit.

例えば、500個の論理ブロックを含む論理ゾーンを512個の物理ブロックを含む物理ゾーンに割り当てたり、1000個の論理ブロックを含む論理ゾーンを1024個の物理ブロックを含む物理ゾーンに割り当てたりする。   For example, a logical zone including 500 logical blocks is allocated to a physical zone including 512 physical blocks, or a logical zone including 1000 logical blocks is allocated to a physical zone including 1024 physical blocks.

論理ブロックはアドレス変換をする単位であり、1個の論理ブロックを1個の物理ブロックに対応させる場合は、1個の論理ブロックと1個の物理ブロックのデータ容量を一致させ、1個の論理ブロックを2個の物理ブロックに対応させる場合(例えば、2個の物理ブロックを仮想的に1個の物理ブロックと見做して取り扱う場合)は、1個の論理ブロックと2個の物理ブロックのデータ容量を一致させる。従って、1個の論理ブロックを1個の物理ブロックに対応させる構成で、1個の物理ブロックが32個のページで構成され、1ページが1セクタに対応する場合、1個の論理ブロックは32セクタに対応する。   A logical block is a unit for address conversion. When one logical block is associated with one physical block, the data capacities of one logical block and one physical block are matched to each other. When making a block correspond to two physical blocks (for example, when treating two physical blocks as virtually one physical block), one logical block and two physical blocks Match the data capacity. Therefore, when one logical block corresponds to one physical block, one physical block consists of 32 pages, and one page corresponds to one sector, one logical block is 32. Corresponds to the sector.

ここでは、1個の論理ブロックを32セクタとしているので、下位5ビット「010 10」がセクタ番号SNとなり、これを除いた上位9ビット「1000 0000 1」が論理ブロック番号LBNとなる。尚、図6(b)に示した設定では、アクセス対象のLBA’からLBA’+15までの16セクタが同一の論理ブロックに属しているので、アドレス変換は1回行えばよいが、このアクセス対象が異なる2個以上の論理ブロックに属している場合は、論理ブロック毎にアドレス変換が行われる。例えば、LBA’からLBA’+10までの11セクタがLBN#nの論理ブロックに属し、LBA’+11からLBA’+15までの5セクタがLBN#n+1の論理ブロックに属する場合は、LBN#nのアドレス変換とLBN#n+1のアドレス変換を行わなければならない。   Here, since one logical block has 32 sectors, the lower 5 bits “010 10” is the sector number SN, and the upper 9 bits “1000 0000 1” excluding this is the logical block number LBN. In the setting shown in FIG. 6B, since 16 sectors from LBA ′ to LBA ′ + 15 to be accessed belong to the same logical block, the address conversion may be performed once. Are belonging to two or more different logical blocks, address conversion is performed for each logical block. For example, if 11 sectors from LBA 'to LBA' + 10 belong to the logical block of LBN # n, and 5 sectors from LBA '+ 11 to LBA' + 15 belong to the logical block of LBN # n + 1, the address of LBN # n Conversion and LBN # n + 1 address conversion must be performed.

アドレス変換で求められた物理ブロックアドレスPBA(LBA’の論理ブロック番号LBNと対応する物理ブロックアドレスPBA)、LBA’の下位5ビットのセクタ番号SN、アクセス対象のセクタ数「16」が、フラッシュメモリインターフェースブロック210内のレジスタ(以下、物理ブロックアドレスPBAが設定されるレジスタをPBAレジスタと言い、セクタ番号SNが設定されるレジスタをページ番号レジスタと言い、アクセス対象のセクタ数が設定されるレジスタをカウントレジスタと言う。)に設定され、これらの設定値に基づいてフラッシュメモリ202に対するアクセス処理が行われる。尚、アクセスコントローラインターフェースブロック207のコマンドレジスタR21に読み出し処理コマンドが設定されている場合は、その読み出し処理コマンドに対応するコマンドセットがROM211から読み出され、読み出したコマンドセットに基づいて処理が実行される。   The physical block address PBA (physical block address PBA corresponding to the logical block number LBN of LBA ′) obtained by address conversion, the sector number SN of the lower 5 bits of LBA ′, and the number of sectors to be accessed “16” are the flash memory. Registers in the interface block 210 (hereinafter, a register in which the physical block address PBA is set is called a PBA register, a register in which the sector number SN is set is called a page number register, and a register in which the number of sectors to be accessed is set This is referred to as a count register), and access processing to the flash memory 202 is performed based on these set values. When a read processing command is set in the command register R21 of the access controller interface block 207, a command set corresponding to the read processing command is read from the ROM 211, and processing is executed based on the read command set. The

このフラッシュメモリインターフェースブロック210内のレジスタに設定された設定値に基づく読み出し処理では、フラッシュメモリ202に対して読み出しを指示する内部読み出しコマンドと読み出すデータのアドレスを指示するアドレス情報が供給される。このアドレス情報は、PBAレジスタに設定されている物理ブロックアドレスPBAの下位側にページ番号レジスタに設定されている設定値(初期値はセクタ番号SN)を付加することにより生成される。この内部読み出しコマンドとアドレス情報の供給に応答してフラッシュメモリ202から出力される読み出しデータは、ECCブロックで誤りの検出と訂正が行われ、バッファ209に保持される。   In the read process based on the set value set in the register in the flash memory interface block 210, an internal read command for instructing reading to the flash memory 202 and address information for instructing the address of data to be read are supplied. This address information is generated by adding a set value (initial value is sector number SN) set in the page number register to the lower side of the physical block address PBA set in the PBA register. The read data output from the flash memory 202 in response to the supply of the internal read command and the address information is subjected to error detection and correction in the ECC block and held in the buffer 209.

この様にして、1ページ分のデータが読み出される毎に、カウントレジスタに設定されている設定値をデクリメント(1ずつ減算)し、デクリメント後の設定値が「0」でない場合は、ページ番号レジスタに設定されている設定値をインクリメント(1ずつ加算)した後に新たな内部読み出しコマンドとアドレス情報を供給する。この処理をカウントレジスタに設定されている設定値が「0」になるまで続けることにより、PBAレジスタに設定されている物理ブロックアドレスPBAによって特定される物理ブロック内の「010 10」(10ページ目)から「110 01」(25ページ目)までの16ページ分のデータが読み出される。   In this way, every time the data for one page is read, the set value set in the count register is decremented (subtracted by 1). If the set value after decrement is not “0”, the page number register After the set value set in is incremented (added by 1), a new internal read command and address information are supplied. By continuing this processing until the set value set in the count register becomes “0”, “010 10” (10th page) in the physical block specified by the physical block address PBA set in the PBA register. ) To “110 01” (25th page), 16 pages of data are read out.

各フラッシュメモリ装置2A〜2Dのバッファ209に保持された読み出しデータは、内部バス14を介して、LBAが若い方から順番にアクセスコントローラ3のバッファ9に転送される。バッファ9に保持された読み出しデータは、外部バス13を介して、LBAが若い方から順番にホストシステム4に供給される。   The read data held in the buffers 209 of the flash memory devices 2A to 2D are transferred to the buffer 9 of the access controller 3 in order from the lowest LBA via the internal bus 14. The read data held in the buffer 9 is supplied to the host system 4 via the external bus 13 in order from the lowest LBA.

ここで、LBA’の下位側に装置番号ANを付加したものがLBAなので、図6(a)にしたようにアクセス対象の先頭セクタのLBAがフラッシュメモリ装置2Aに対応している場合には、フラッシュメモリ装置2A、フラッシュメモリ装置2B、フラッシュメモリ装置2C、フラッシュメモリ装置2Dの順番で読み出しデータを各フラッシュメモリ装置2A〜2Dのバッファ209からアクセスコントローラ3のバッファ9にセクタ単位で転送する。つまり、フラッシュメモリ装置2AでLBA’が先頭のデータ、フラッシュメモリ装置2BでLBA’が先頭のデータ、フラッシュメモリ装置2CでLBA’が先頭のデータ、フラッシュメモリ装置2DでLBA’が先頭のデータ、フラッシュメモリ装置2AでLBA’が2番目のデータ、フラッシュメモリ装置2BでLBA’が2番目のデータ、フラッシュメモリ装置2CでLBA’が2番目のデータ、フラッシュメモリ装置2DでLBA’が2番目のデータ・・・という順番で転送される。   Here, the device number AN added to the lower side of LBA ′ is the LBA. Therefore, as shown in FIG. 6A, when the LBA of the first sector to be accessed corresponds to the flash memory device 2A, Read data is transferred in units of sectors from the buffer 209 of each flash memory device 2A to 2D to the buffer 9 of the access controller 3 in the order of the flash memory device 2A, flash memory device 2B, flash memory device 2C, and flash memory device 2D. That is, LBA ′ is the first data in the flash memory device 2A, LBA ′ is the first data in the flash memory device 2B, LBA ′ is the first data in the flash memory device 2C, LBA ′ is the first data in the flash memory device 2D, LBA ′ is the second data in the flash memory device 2A, LBA ′ is the second data in the flash memory device 2B, LBA ′ is the second data in the flash memory device 2C, and LBA ′ is the second data in the flash memory device 2D. Data is transferred in the order of ...

次に、ホストシステム4からの書き込み処理について説明する。この場合、コマンドレジスタR1に「外部書き込み処理コマンド」が設定されるが、セクタ数レジスタR2とLBAレジスタR3には、読み出し処理の場合と同様に、アクセス対象の総セクタ数とアクセス対象の先頭セクタのLBAが設定される。   Next, write processing from the host system 4 will be described. In this case, the “external write process command” is set in the command register R1, but the total number of sectors to be accessed and the first sector to be accessed are stored in the sector number register R2 and the LBA register R3 as in the case of the read process. LBA is set.

書き込み処理の場合も、各フラッシュメモリ装置2A〜2Dへのアクセス対象の割振りは、読み出し処理の場合と同様に行われる。つまり、各フラッシュメモリ装置2A〜2Dのアクセスコントローラインターフェースブロック207のセクタ数レジスタR22及びLBAレジスタR23には、読み出し処理の場合と同様に各フラッシュメモリ装置2A〜2Dにおけるアクセス対象のセクタ数とLBA’が設定される。又、この各フラッシュメモリ装置2A〜2Dへのアクセス対象の割振りに従って、書き込みデータもアクセスコントローラ3のバッファ9から各フラッシュメモリ装置2A〜2Dのバッファ209に転送される。   In the case of the writing process, the allocation of the access target to each of the flash memory devices 2A to 2D is performed in the same manner as in the case of the reading process. That is, the sector number register R22 and the LBA register R23 of the access controller interface block 207 of each flash memory device 2A to 2D store the number of sectors to be accessed and the LBA ′ in the flash memory devices 2A to 2D as in the case of the read process. Is set. Further, according to the allocation of the access target to each of the flash memory devices 2A to 2D, write data is also transferred from the buffer 9 of the access controller 3 to the buffer 209 of each of the flash memory devices 2A to 2D.

各フラッシュメモリ装置2A〜2Dは、アクセスコントローラインターフェースブロック207のコマンドレジスタR21、セクタ数レジスタR22及びLBAレジスタR23に設定された情報に基づいて、バッファ209に保持されている書き込みデータをフラッシュメモリ202に書き込む。尚、追加書き込みができずに空きブロックにバッファ209に保持されている書き込みデータを書き込む場合は、その空きブロックの冗長領域に、各フラッシュメモリ装置2A〜2Dに与えられたLBA’に基づいた論理アドレス情報(論理ゾーン内ブロック番号LZIBN又は論理ブロック番号LBN)が書き込まれる。   Each of the flash memory devices 2A to 2D stores the write data held in the buffer 209 in the flash memory 202 based on the information set in the command register R21, the sector number register R22, and the LBA register R23 of the access controller interface block 207. Write. In addition, when write data held in the buffer 209 is written into an empty block without being able to perform additional writing, a logical area based on the LBA ′ given to each flash memory device 2A to 2D is stored in the redundant area of the empty block. Address information (logical zone block number LZIBN or logical block number LBN) is written.

以上で説明したように、本実施の形態のフラッシュメモリシステム1では、ホストシステム4から与えられるLBAの最下位2ビットを4つのフラッシュメモリシステム2A〜2Dのいずれかを指定するための装置番号ANとして使用する。従って、図5(b)に示したように、論理アドレス空間上でLBAが連続するデータが1セクタ単位で異なるフラッシュメモリ装置2A〜2D、即ち、異なるフラッシュメモリ202に順次割り当てられる。   As described above, in the flash memory system 1 of the present embodiment, the device number AN for designating one of the four flash memory systems 2A to 2D as the least significant 2 bits of the LBA given from the host system 4 Use as Therefore, as shown in FIG. 5B, data having consecutive LBAs in the logical address space is sequentially allocated to different flash memory devices 2A to 2D, that is, different flash memories 202 in units of one sector.

従って、データの書き込みが特定のフラッシュメモリに集中することが避けられ、フラッシュメモリ202の寿命が長くなる。   Therefore, it is avoided that data writing is concentrated on a specific flash memory, and the life of the flash memory 202 is extended.

なお、図5の例では、1セクタを割振りの単位セクタ数として、4つのフラッシュメモリ装置に振り分けたが、振り分けるデータの単位やフラッシュメモリ装置の数は任意である。   In the example of FIG. 5, one sector is allocated as the number of unit sectors to be allocated and allocated to the four flash memory devices, but the unit of data to be allocated and the number of flash memory devices are arbitrary.

例えば、フラッシュメモリ装置の数が2個で、振り分けるデータの単位が2セクタの場合には、LBAの下位側からから数えて第m+1ビット目からm+nビット目を、フラッシュメモリ装置を判別するための装置番号ANとして使用する。 For example, when the number of flash memory devices is 2 n and the unit of data to be distributed is 2 m sectors, the flash memory device is determined from the (m + 1) th bit to the (m + n) th bit counted from the lower side of the LBA. Used as the device number AN.

例えば、図7(b)に示すように、4台のフラッシュメモリ装置に、4セクタ単位でデータを割り振る場合には、図7(a)に示すように、LBAの下位から3ビット目と4ビット目の2ビットがフラッシュメモリ装置を判別するための装置番号ANとして使用され、LBAからこの2ビット除いたLBA’がフラッシュメモリ装置2A〜2Dでアクセス対象を特定する情報として使用される。   For example, as shown in FIG. 7B, when data is allocated to four flash memory devices in units of four sectors, as shown in FIG. Two bits of the bit are used as an apparatus number AN for discriminating the flash memory device, and LBA ′ obtained by removing these two bits from the LBA is used as information for specifying an access target in the flash memory devices 2A to 2D.

この場合に、フラッシュメモリシステム1のアクセスコントローラ3によって行われるアクセス対象の割振りについて説明する。   In this case, allocation of access targets performed by the access controller 3 of the flash memory system 1 will be described.

例えば、ホストシステム4からの読み出し処理で、アクセス対象の先頭セクタのLBAが「1000 0000 1010 1010」(2進数)であり、アクセス対象の総セクタ数が「65」であったとする。   For example, in the read processing from the host system 4, it is assumed that the LBA of the first sector to be accessed is “1000 0000 1010 1010” (binary number) and the total number of sectors to be accessed is “65”.

この場合、図8(a)に示すように、アクセスコントローラ3のホストインターフェースブロック7のセクタ数レジスタR2には、「65」が設定され、LBAレジスタR3には、「1000 0000 1010 1010」(2進数)が設定され、コマンドレジスタR1に「外部読み出し処理コマンド」が設定される。ここで、LBAレジスタR3に設定された先頭セクタのLBA「1000 0000 1010 1010」の下位から3ビット目と4ビット目の2ビットは「10」(装置番号ANが#2)なので、この先頭セクタのLBAはフラッシュメモリ装置2Cに対応する。   In this case, as shown in FIG. 8A, the sector number register R2 of the host interface block 7 of the access controller 3 is set to “65”, and the LBA register R3 is set to “1000 0000 1010 1010” (2 (External number) is set, and "external read processing command" is set in the command register R1. Here, since the 2nd bit of the third and fourth bits from the LBA “1000 0000 1010 1010” of the first sector set in the LBA register R3 is “10” (unit number AN is # 2), this first sector The LBA corresponds to the flash memory device 2C.

又、先頭セクタのLBA「1000 0000 1010 1010」の下位2ビットは「10」なので、この先頭セクタのLBAに対応するフラッシュメモリ装置2Cに、アクセス対象の最初の2セクタ(下位2ビットが「10」、「11」に対応するセクタ)が割り振られ、その後、フラッシュメモリ装置2D、フラッシュメモリ装置2A、フラッシュメモリ装置2B、フラッシュメモリ装置2C、フラッシュメモリ装置2D・・・・という順番で4セクタ(下位2ビットが「00」、「01」、「10」、「11」に対応するセクタ)ずつ割り振られる。   Further, since the lower 2 bits of the LBA “1000 0000 1010 1010” of the first sector are “10”, the first two sectors to be accessed (the lower 2 bits are “10”) in the flash memory device 2C corresponding to the LBA of the first sector. ”, Sectors corresponding to“ 11 ”), and then, 4 sectors (in the order of flash memory device 2D, flash memory device 2A, flash memory device 2B, flash memory device 2C, flash memory device 2D,... (Sectors corresponding to lower two bits “00”, “01”, “10”, “11”) are allocated.

ここで、アクセス対象の全セクタ数が65セクタで、先頭セクタのLBAに対応するフラッシュメモリ装置2Cには、アクセス対象の最初の2セクタが割り振られるので、(65−2)÷4の余りに対応する3セクタが、アクセス対象の最後のLBAに対応するフラッシュメモリ装置に割り振られる。   Here, since the total number of sectors to be accessed is 65 sectors and the first two sectors to be accessed are allocated to the flash memory device 2C corresponding to the LBA of the first sector, it corresponds to the remainder of (65-2) / 4. 3 sectors are allocated to the flash memory device corresponding to the last LBA to be accessed.

つまり、(65−2)÷4の商は15なので、フラッシュメモリ装置2D、フラッシュメモリ装置2A、フラッシュメモリ装置2B、フラッシュメモリ装置2C、フラッシュメモリ装置2D・・・・という順番で4セクタずつ割り振られ、16番目となるフラッシュメモリ装置2Cに、アクセス対象の最後の3セクタが割り振られる。   That is, since the quotient of (65-2) ÷ 4 is 15, 4 sectors are allocated in the order of flash memory device 2D, flash memory device 2A, flash memory device 2B, flash memory device 2C, flash memory device 2D,. Thus, the last three sectors to be accessed are allocated to the 16th flash memory device 2C.

又、(65−2)÷4の商である15を4で割った商は3で余りは3なので、アクセス対象の最初と最後の端数の割振り(4セクタ未満の割振り)を除いた4セクタずつの割振りは、フラッシュメモリ装置2D、フラッシュメモリ装置2A及びフラッシュメモリ装置2Bへは4回(4セクタ×4回)となり、フラッシュメモリ装置2Cへは3回(4セクタ×3回)になる。従って、フラッシュメモリ装置2D、フラッシュメモリ装置2A及びフラッシュメモリ装置2Bにおけるアクセス対象のセクタ数は16セクタになり、フラッシュメモリ装置2Cにおけるアクセス対象のセクタ数は最初と最後の端数の5セクタを加えて17セクタになる。   Since the quotient of (65-2) ÷ 4 quotient 15 divided by 4 is 3 and the remainder is 3, 4 sectors excluding the allocation of the first and last fractions to be accessed (allocation of less than 4 sectors) Each allocation is four times (4 sectors × 4 times) for the flash memory device 2D, the flash memory device 2A and the flash memory device 2B, and three times (4 sectors × 3 times) for the flash memory device 2C. Accordingly, the number of sectors to be accessed in the flash memory device 2D, the flash memory device 2A, and the flash memory device 2B is 16 sectors, and the number of sectors to be accessed in the flash memory device 2C is the sum of the first and last fractional 5 sectors. There are 17 sectors.

これらのアクセス対象のセクタ数が、図8(a)、(b)、(c)に示したように、アクセスコントローラインターフェースブロック207のセクタ数レジスタR22に設定される。 The number of sectors to be accessed is set in the sector number register R22 of the access controller interface block 207 as shown in FIGS. 8 (a), (b), and (c).

次に、フラッシュメモリ装置2A〜2Dにおけるアクセス対象の先頭セクタのLBA’について説明する。LBAレジスタR3に設定された先頭セクタのLBA「1000 0000 1010 1010」の下位から3ビット目と4ビット目の2ビットは「10」(装置番号ANが#2)なので、フラッシュメモリ装置2Cからアクセス対象の割振りが開始される。   Next, the LBA 'of the first sector to be accessed in the flash memory devices 2A to 2D will be described. Since the 2nd bit of the third and fourth bits from the lower LBA “1000 0000 1010 1010” of the first sector set in the LBA register R3 is “10” (device number AN is # 2), access from the flash memory device 2C Target allocation begins.

従って、フラッシュメモリ装置2Cにおけるアクセス対象の先頭セクタのLBA’は、LBAレジスタR3に設定された先頭セクタのLBAから装置番号ANに対応する2ビットを除いた14ビットが対応する。一方、フラッシュメモリ装置2D、フラッシュメモリ装置2A及びフラッシュメモリ装置2Bについては、LBAレジスタR3に設定された先頭セクタのLBAの下位2ビットを「00」とし、更に、フラッシュメモリ装置2A及びフラッシュメモリ装置2Bについては、フラッシュメモリ装置2Dからフラッシュメモリ装置2Aに割振りが移るときに、LBAの下位側から数えて5ビット目に繰り上がりが生じるので、先頭セクタのLBAに「1 0000」(2進数)を加算した後に装置番号ANに対応する2ビットを除いてアクセス対象の先頭セクタのLBA’を生成する。   Therefore, the LBA 'of the first sector to be accessed in the flash memory device 2C corresponds to 14 bits obtained by excluding 2 bits corresponding to the device number AN from the LBA of the first sector set in the LBA register R3. On the other hand, for the flash memory device 2D, the flash memory device 2A, and the flash memory device 2B, the lower 2 bits of the LBA of the first sector set in the LBA register R3 are set to “00”, and the flash memory device 2A and the flash memory device For 2B, when the allocation is transferred from the flash memory device 2D to the flash memory device 2A, a carry occurs in the fifth bit from the lower side of the LBA, so that “1 0000” (binary number) is added to the LBA of the first sector. Is added, and LBA ′ of the first sector to be accessed is generated except for 2 bits corresponding to the device number AN.

つまり、フラッシュメモリ装置2Cでのアクセス対象の先頭セクタのLBA’は「1000 0000 1010 10」となり、フラッシュメモリ装置2Dでのアクセス対象の先頭セクタのLBA’は「1000 0000 1010 00」となり、フラッシュメモリ装置2A、2Bでのアクセス対象の先頭セクタのLBA’は「1000 0000 1011 00」とる。これらのLBA’が、図8(a)、(b)、(c)、(d)に示したように、アクセスコントローラインターフェースブロック207のLBAレジスタR23に設定される。   That is, the LBA ′ of the first sector to be accessed in the flash memory device 2C is “1000 0000 1010 10”, and the LBA ′ of the first sector to be accessed in the flash memory device 2D is “1000 0000 1010 00”. LBA ′ of the first sector to be accessed in the apparatuses 2A and 2B is “1000 0000 1011 00”. These LBA's are set in the LBA register R23 of the access controller interface block 207 as shown in FIGS. 8 (a), (b), (c), and (d).

各フラッシュメモリ装置2A〜2Dは、アクセスコントローラインターフェースブロック207のコマンドレジスタR21、セクタ数レジスタR22及びLBAレジスタR23に設定された情報に基づいて、読み出し処理を実行する。   Each of the flash memory devices 2A to 2D executes a read process based on information set in the command register R21, the sector number register R22, and the LBA register R23 of the access controller interface block 207.

フラッシュメモリ装置2A〜2Dは、セクタ数レジスタR22に設定されたセクタ数及びLBAレジスタR23に設定されたLBA’に基づいて、フラッシュメモリ202内のアクセス対象領域(アクセス対象の物理ブロック及びその物理ブロック内のアクセス対象ページ)を特定する。このアクセス対象領域の特定では、LBA’が論理ブロック番号LBNを示す部分とセクタ番号SNを示す部分とに分離され、論理ブロック番号LBNは物理ブロックアドレスPBAに変換される。尚、アクセス対象が異なる2個以上の論理ブロックに属している場合は、論理ブロック毎にアドレス変換が行われる。   Based on the number of sectors set in the sector number register R22 and the LBA ′ set in the LBA register R23, the flash memory devices 2A to 2D can access the access target area (the physical block to be accessed and its physical block) in the flash memory 202. In the page to be accessed). In specifying the access target area, LBA 'is separated into a part indicating the logical block number LBN and a part indicating the sector number SN, and the logical block number LBN is converted into a physical block address PBA. When the access target belongs to two or more different logical blocks, address conversion is performed for each logical block.

アドレス変換で求められた物理ブロックアドレスPBA(LBA’の論理ブロック番号LBNと対応する物理ブロックアドレスPBA)、LBA’の下位5ビットのセクタ番号SN、アクセス対象のセクタ数が、フラッシュメモリインターフェースブロック210内のレジスタに設定され、これらの設定値に基づいてフラッシュメモリ202からデータが読み出されバッファ209に保持される。   The physical block address PBA (physical block address PBA corresponding to the logical block number LBN of LBA ′) obtained by address conversion, the sector number SN of the lower 5 bits of LBA ′, and the number of sectors to be accessed are the flash memory interface block 210. The data is read from the flash memory 202 based on these set values and held in the buffer 209.

各フラッシュメモリ装置2A〜2Dのバッファ209に保持された読み出しデータは、内部バス14を介して、LBAが若い方から順番にアクセスコントローラ3のバッファ9に転送される。バッファ9に保持された読み出しデータは、外部バス13を介して、LBAが若い方から順番にホストシステム4に供給される。   The read data held in the buffers 209 of the flash memory devices 2A to 2D are transferred to the buffer 9 of the access controller 3 in order from the lowest LBA via the internal bus 14. The read data held in the buffer 9 is supplied to the host system 4 via the external bus 13 in order from the lowest LBA.

次に、ホストシステム4からの書き込み処理について説明する。この場合、コマンドレジスタR1に「外部書き込み処理コマンド」が設定されるが、セクタ数レジスタR2とLBAレジスタR3には、読み出し処理の場合と同様に、アクセス対象の総セクタ数とアクセス対象の先頭セクタのLBAが設定される。   Next, write processing from the host system 4 will be described. In this case, the “external write process command” is set in the command register R1, but the total number of sectors to be accessed and the first sector to be accessed are stored in the sector number register R2 and the LBA register R3 as in the case of the read process. LBA is set.

書き込み処理の場合も、各フラッシュメモリ装置2A〜2Dへのアクセス対象の割振りは、読み出し処理の場合と同様に行われ、このアクセス対象の割振りに従って、書き込みデータもアクセスコントローラ3のバッファ9から各フラッシュメモリ装置2A〜2Dのバッファ209に転送される。   In the write process, the allocation of the access target to each of the flash memory devices 2A to 2D is performed in the same manner as in the read process, and the write data is also sent from the buffer 9 of the access controller 3 according to the allocation of the access target. The data is transferred to the buffer 209 of the memory devices 2A to 2D.

各フラッシュメモリ装置2A〜2Dは、アクセスコントローラインターフェースブロック207のコマンドレジスタR21、セクタ数レジスタR22及びLBAレジスタR23に設定された情報に基づいて、バッファ209に保持されている書き込みデータをフラッシュメモリ202に書き込む。尚、追加書き込みができずに空きブロックにバッファ209に保持されている書き込みデータを書き込む場合は、その空きブロックの冗長領域に、各フラッシュメモリ装置2A〜2Dに与えられたLBA’に基づいた論理アドレス情報(論理ゾーン内ブロック番号LZIBN又は論理ブロック番号LBN)が書き込まれる。   Each of the flash memory devices 2A to 2D stores the write data held in the buffer 209 in the flash memory 202 based on the information set in the command register R21, the sector number register R22, and the LBA register R23 of the access controller interface block 207. Write. In addition, when write data held in the buffer 209 is written into an empty block without being able to perform additional writing, a logical area based on the LBA ′ given to each flash memory device 2A to 2D is stored in the redundant area of the empty block. Address information (logical zone block number LZIBN or logical block number LBN) is written.

以上で説明したように、本実施の形態のフラッシュメモリシステム1では、ホストシステム4から与えられるLBAの下位から3ビット目と4ビット目の2ビットを4つのフラッシュメモリシステム2A〜2Dのいずれかを指定するための装置番号ANとして使用する。従って、図7(b)に示したように、論理アドレス空間上でLBAが連続するデータがセクタ単位で異なるフラッシュメモリ装置2A〜2D、即ち、異なるフラッシュメモリ202に順次割り当てられる。   As described above, in the flash memory system 1 according to the present embodiment, the 2 bits of the third bit and the fourth bit from the lower order of the LBA given from the host system 4 are any one of the four flash memory systems 2A to 2D. Is used as an apparatus number AN for designating. Therefore, as shown in FIG. 7B, data with continuous LBA in the logical address space is sequentially allocated to different flash memory devices 2A to 2D, that is, different flash memories 202 in units of sectors.

従って、データの書き込みが特定のフラッシュメモリに集中することが避けられ、フラッシュメモリ202の寿命が長くなる。   Therefore, it is avoided that data writing is concentrated on a specific flash memory, and the life of the flash memory 202 is extended.

尚、上述の実施の形態では、ホスト側で管理されている論理アドレス空間を1セクタ単位又は4セクタ単位で4台のフラッシュメモリ装置に割り振ったが、割振りの単位セクタ数と割振り先のフラッシュメモリ装置の数は適宜設定することができる。又、割振りの単位セクタ数と割振り先のフラッシュメモリ装置の数を2のべき乗で与えられる数にすれば、LABの特定のビットで割振り先のフラッシュメモリ装置を判別することができる。つまり、割振りの単位セクタ数2セクタ、割振り先のフラッシュメモリ装置の数を2個とすれば、LBAの下位側から数えて第m+1ビット目からm+nビット目が、フラッシュメモリ装置を判別するための装置番号ANになる。 In the above embodiment, the logical address space managed on the host side is allocated to four flash memory devices in units of one sector or four sectors. However, the number of unit sectors to be allocated and the flash memory to be allocated The number of devices can be set as appropriate. Further, if the number of unit sectors for allocation and the number of flash memory devices to be allocated are set to powers of two, the flash memory device to be allocated can be determined by a specific bit of LAB. In other words, if the number of allocation unit sectors is 2 m sectors and the number of allocation flash memory devices is 2 n , the flash memory device is determined by the (m + 1) th bit to the (m + n) th bit counted from the lower side of the LBA. Device number AN.

例えば、フラッシュメモリ装置が4台で、8セクタ単位でデータを割り振る場合には、図9(a)に示すように、LBAの下位から4ビット目と5ビット目の2ビットを4台のフラッシュメモリ装置のいずれかを指定するための装置番号ANとして使用し、この2ビットを除いたLBA’が各フラッシュメモリ装置内でのアクセス対象の特定に使用される。これにより、図9(b)に示すように、LABで管理されているホストシステム側の論理アドレス空間が8セクタ単位で、4台のフラッシュメモリ装置に順次割り当てられる。   For example, when four flash memory devices are allocated and data is allocated in units of eight sectors, as shown in FIG. It is used as an apparatus number AN for designating one of the memory devices, and LBA ′ excluding these 2 bits is used for specifying an access target in each flash memory device. As a result, as shown in FIG. 9B, the logical address space on the host system side managed by the LAB is sequentially allocated to four flash memory devices in units of 8 sectors.

さらに、フラッシュメモリ装置が8台で、8セクタ単位でデータを割り振る場合には、図10(a)に示すように、LBAの下位側から数えて4ビット目から6ビット目までの3ビットを8台のフラッシュメモリ装置のいずれかを指定するための装置番号ANとして使用し、この3ビットを除いたLBA’が各フラッシュメモリ装置内でのアクセス対象の特定に使用される。これにより、図10(b)に示すように、LABで管理されているホストシステム側の論理アドレス空間が8セクタ単位で、8台のフラッシュメモリ装置に順次割り当てられる。   Furthermore, when 8 flash memory devices are allocated and data is allocated in units of 8 sectors, as shown in FIG. 10A, 3 bits from the 4th bit to the 6th bit are counted from the lower side of the LBA. It is used as an apparatus number AN for designating one of the eight flash memory devices, and LBA ′ excluding these 3 bits is used for specifying an access target in each flash memory device. As a result, as shown in FIG. 10B, the logical address space on the host system side managed by the LAB is sequentially allocated to eight flash memory devices in units of eight sectors.

又、LBAのビット数については、フラッシュメモリ装置の台数と各フラッシュメモリ装置に割り当てられるデータ容量に応じて変化する。   The number of LBA bits varies depending on the number of flash memory devices and the data capacity allocated to each flash memory device.

本発明の実施の形態に係るフラッシュメモリシステムの構成を示すブロック図である。1 is a block diagram showing a configuration of a flash memory system according to an embodiment of the present invention. 図1に示すフラッシュメモリ装置の構造を示すブロック図である。FIG. 2 is a block diagram showing a structure of the flash memory device shown in FIG. 1. (a)は、アクセスコントローラのホストインターフェースブロックの構成を示すブロック図であり、(b)は、フラッシュメモリコントローラのアクセスコントローラインターフェースブロックの構成を示すブロック図である。(A) is a block diagram showing a configuration of a host interface block of the access controller, and (b) is a block diagram showing a configuration of an access controller interface block of the flash memory controller. フラッシュメモリの論理構成を示す図である。It is a figure which shows the logic structure of flash memory. (a)は、LBAと、LBAの最下位2ビットの装置番号ANを除去したときに生成されるLBA’を示す図であり、(b)は、(a)に示す装置番号ANとLBA’に基づいてセクタを割り振った場合に、各セクタが属するフラッシュメモリ装置を示す図である。(A) is a figure which shows LBA 'produced | generated when the LBA and the apparatus number AN of the lowest 2 bits of LBA are removed, (b) is the apparatus number AN and LBA' shown to (a). FIG. 2 is a diagram showing a flash memory device to which each sector belongs when sectors are allocated based on FIG. LBAとLBA’が図5に示す構成を有する場合に、ホストインターフェースブロックとアクセスコントローラインターフェースブロックに設定されるデータの例を示す図である。FIG. 6 is a diagram illustrating an example of data set in a host interface block and an access controller interface block when LBA and LBA ′ have the configuration illustrated in FIG. 5. (a)は、LBAと、LBAの下位側から3ビット目と4ビット目の装置番号ANを除去したときに生成されるLBA’を示す図であり、(b)は、(a)に示す装置番号ANとLBA’に基づいてセクタを割り振った場合に、各セクタが属するフラッシュメモリ装置を示す図である。(A) is a figure which shows LBA 'produced | generated when the LBA and the apparatus number AN of the 3rd bit and the 4th bit are removed from the LBA lower side, (b) is shown to (a) FIG. 3 is a diagram showing a flash memory device to which each sector belongs when sectors are allocated based on device numbers AN and LBA ′. LBAとLBA’が図7に示す構成を有する場合に、ホストインターフェースブロックとアクセスコントローラインターフェースブロックに設定されるデータの例を示す図である。FIG. 8 is a diagram illustrating an example of data set in a host interface block and an access controller interface block when LBA and LBA ′ have the configuration illustrated in FIG. 7. (a)は、LBAと、LBAの下位側から4ビット目と5ビット目の装置番号ANを除去したときに生成されるLBA’を示す図であり、(b)は、(a)に示す装置番号ANとLBA’に基づいてセクタを割り振った場合に、各セクタが属するフラッシュメモリ装置を示す図である。(A) is a figure which shows LBA 'produced | generated when LBA and the apparatus number AN of the 4th bit and the 5th bit are removed from the low-order side of LBA, (b) is shown to (a) FIG. 3 is a diagram showing a flash memory device to which each sector belongs when sectors are allocated based on device numbers AN and LBA ′. (a)は、論理アドレス情報LBAと、LBAの下位側から数えて4ビット目から6ビット目の装置番号ANを除去したときに生成されるLBA’を示す図であり、(b)は、(a)に示す装置番号ANとLBA’に基づいてセクタを割り振った場合に、各セクタが属するフラッシュメモリ装置を示す図である。(A) is a diagram showing logical address information LBA and LBA ′ generated when the device number AN of the fourth to sixth bits counted from the lower side of the LBA is removed. FIG. 2 is a diagram showing a flash memory device to which each sector belongs when sectors are allocated based on the device numbers AN and LBA ′ shown in FIG.

符号の説明Explanation of symbols

1 フラッシュメモリシステム
2A〜2D フラッシュメモリ装置
3 アクセスコントローラ
4 ホストシステム
6 マイクロプロセッサ
7 ホストインターフェースブロック
8 ワークエリア
9 バッファ
10 フラッシュメモリインターフェースブロック
11 ECCブロック
12 ROM
13 外部バス
14 内部バス
203 フラッシュメモリアクセスコントローラ
206 マイクロプロセッサ
207 アクセスコントローラインターフェースブロック
208 ワークエリア
209 バッファ
210 フラッシュメモリインターフェースブロック
211 ECCブロック
212 ROM
213 外部バス
214 内部バス
25 ユーザ領域
26 冗長領域
DESCRIPTION OF SYMBOLS 1 Flash memory system 2A-2D Flash memory device 3 Access controller 4 Host system 6 Microprocessor 7 Host interface block 8 Work area 9 Buffer 10 Flash memory interface block 11 ECC block 12 ROM
13 External bus 14 Internal bus 203 Flash memory access controller 206 Microprocessor 207 Access controller interface block 208 Work area 209 Buffer 210 Flash memory interface block 211 ECC block 212 ROM
213 External bus 214 Internal bus 25 User area 26 Redundant area

Claims (3)

フラッシュメモリと当該フラッシュメモリへのアクセスを制御するフラッシュメモリコントローラとからなる個(nは1以上の整数)のフラッシュメモリ装置に、ホストシステムから与えられるクタ単位の論理アドレスが割り当てられている領域を2 セクタ(mは1以上の整数)の振り分け単位で振り分けるアクセスコントローラであって
ホストシステムから与えられるアクセス指示により指定されたアクセス対象領域の先頭の論理アドレスとアクセス対象領域のセクタ数に基づいて、それぞれのフラッシュメモリ装置においてアクセス先となる領域のセクタ数を算出するセクタ数算出手段と、
前記アクセス指示により指定されたアクセス対象領域の先頭の論理アドレスとアクセス対象領域のセクタ数に基づいて、それぞれのフラッシュメモリ装置においてアクセス先となる領域の先頭のアドレスを生成するアドレス生成手段と、
前記セクタ数算出手段により算出されたセクタ数及び前記アドレス生成手段により生成されたアドレスを、アクセス先の領域を指示する情報として、それぞれのフラッシュメモリ装置に与える制御手段とを備え、
フラッシュメモリ装置には、0から2 −1の装置番号が割り当てられており、ホストシステムから与えられる論理アドレスに対応する領域は、当該論理アドレスの下位側から数えてm+1ビット目からm+nビット目までのビットの値と一致する前記装置番号が割り当てられているフラッシュメモリ装置に振り分けられ、
前記セクタ数算出手段は、
前記アクセス指示により指定されたアクセス対象領域の先頭の論理アドレスの下位側から数えてm+1ビット目からm+nビット目までのnビットに基づいて、当該論理アドレスに対応する領域を含む先頭領域の振り分け先のフラッシュメモリ装置である起点装置を特定すると共に、当該論理アドレスの下位mビットに基づいて、当該先頭領域のセクタ数である第1のセクタ数を求め、更に、前記アクセス指示により指定されたアクセス対象領域のセクタ数から前記第1のセクタ数を引いて得られた値を振り分け単位の2 で割る除算を行い、当該除算の商に基づいて、それぞれの前記フラッシュメモリ装置においてアクセス先となる2 セクタの振り分け単位の領域の個数を求めると共に、2 セクタ未満の領域であって当該除算の余りに一致するセクタ数の領域を含む末尾領域の振り分け先のフラッシュメモリ装置を特定することにより、それぞれのフラッシュメモリ装置においてアクセス先となる領域のセクタ数を算出し、
前記アドレス生成手段は、
前記アクセス指示により指定されたアクセス対象領域の先頭の論理アドレスを、当該論理アドレスの下位mビットに対応する第1のビット列と、当該論理アドレスの下位側から数えてm+1ビット目からm+nビット目までのビットに対応する第2のビット列と、当該論理アドレスの下位側から数えてm+nビット目のビットより上位側のビットに対応する第3のビット列に分割し、
前記第3のビット列の下位側に前記第1のビット列を連結したものを、前記起点装置のフラッシュメモリ装置に与えるアドレスとして生成し、前記第1のビット列の全てのビットを“0”で置き換えたうえで、当該第1のビット列を前記第3のビット列の下位側に連結したものを、前記起点装置に対応する前記装置番号より大きい前記装置番号が割り当てられているフラッシュメモリ装置に与えるアドレスとして生成し、前記第1のビット列の全てのビットを“0”で置き換えると共に、前記第3のビット列に1を加算したうえで、当該第1のビット列を当該第3のビット列の下位側に連結したものを、前記起点装置に対応する前記装置番号より小さい前記装置番号が割り当てられているフラッシュメモリ装置に与えるアドレスとして生成する
ことを特徴とするアクセスコントローラ。
The flash memory device of the 2 n comprising a flash memory controller that controls access to the flash memory and the flash memory (n is an integer of 1 or more), and the logical address of the sector unit supplied from the host system is allocated An access controller that distributes the area in a distribution unit of 2 m sectors (m is an integer of 1 or more) ,
Sector number calculation that calculates the number of sectors in the area to be accessed in each flash memory device based on the top logical address of the access target area specified by the access instruction given by the host system and the number of sectors in the access target area Means,
An address generation means for generating a head address of an area to be accessed in each flash memory device based on a logical address of the head of the access target area specified by the access instruction and the number of sectors of the access target area;
Control means for providing each flash memory device with the number of sectors calculated by the sector number calculating means and the address generated by the address generating means as information indicating an area to be accessed;
Device numbers 0 to 2 n -1 are assigned to the flash memory device, and the area corresponding to the logical address given from the host system is counted from the (m + 1) th bit to the (m + n) th bit counted from the lower side of the logical address. Allocated to the flash memory device to which the device number corresponding to the value of the bits up to is assigned,
The sector number calculating means includes:
Based on the n bits from the (m + 1) th bit to the (m + n) th bit counted from the lower side of the top logical address of the access target area specified by the access instruction, the distribution destination of the top area including the area corresponding to the logical address And the first sector number that is the number of sectors in the head area is obtained based on the lower m bits of the logical address, and the access designated by the access instruction is specified. The value obtained by subtracting the first sector number from the number of sectors in the target area is divided by 2 m as a distribution unit, and the flash memory device becomes an access destination based on the division quotient. with obtaining the number of areas of sorting units 2 m sectors, the remainder of an area of less than 2 m sectors the division By specifying the flash memory device of assignment destination end region including the matching area of the number of sectors, and calculates the number of sector area to be accessed in each of the flash memory device,
The address generating means
The first logical address corresponding to the lower m bits of the logical address, and the (m + 1) th bit to the (m + n) th bit counted from the lower side of the logical address, is the first logical address of the access target area designated by the access instruction. And a second bit string corresponding to the bits of the logical address and a third bit string corresponding to the bits on the upper side of the m + n-th bit counted from the lower side of the logical address,
A concatenation of the first bit string on the lower side of the third bit string is generated as an address to be given to the flash memory device of the originating device, and all the bits of the first bit string are replaced with “0” In addition, a concatenation of the first bit string to the lower side of the third bit string is generated as an address to be given to the flash memory device to which the device number larger than the device number corresponding to the starting device is assigned. Then, all the bits of the first bit string are replaced with “0”, and 1 is added to the third bit string, and the first bit string is connected to the lower side of the third bit string. Is generated as an address to be given to the flash memory device to which the device number smaller than the device number corresponding to the starting device is assigned. Access controller, characterized in that.
請求項1記載のアクセスコントローラと、ラッシュメモリと当該フラッシュメモリへのアクセスを制御するフラッシュメモリコントローラとからなる2 個(nは1以上の整数)のフラッシュメモリ装置と、から構成される
ことを特徴とするフラッシュメモリシステム。
And access controller according to claim 1, constituted by a flash memory device of the 2 n comprising a flash memory controller (n is an integer of 1 or more) for controlling access to flash memory and the flash memory A flash memory system characterized by that.
フラッシュメモリと当該フラッシュメモリへのアクセスを制御するフラッシュメモリコントローラとからなる22 comprising a flash memory and a flash memory controller for controlling access to the flash memory n 個(nは1以上の整数)のフラッシュメモリ装置に、ホストシステムから与えられるセクタ単位の論理アドレスが割り当てられている領域を22 (n is an integer greater than or equal to 1) flash memory devices are assigned 2 areas where logical addresses in units of sectors given by the host system are allocated. m セクタ(mは1以上の整数)の振り分け単位で振り分けるアクセス制御方法であって、An access control method for allocating in units of sector (m is an integer of 1 or more),
ホストシステムから与えられるアクセス指示により指定されたアクセス対象領域の先頭の論理アドレスとアクセス対象領域のセクタ数に基づいて、それぞれのフラッシュメモリ装置においてアクセス先となる領域のセクタ数を算出するセクタ数算出ステップと、Sector number calculation that calculates the number of sectors in the area to be accessed in each flash memory device based on the top logical address of the access target area specified by the access instruction given by the host system and the number of sectors in the access target area Steps,
前記アクセス指示により指定されたアクセス対象領域の先頭の論理アドレスとアクセス対象領域のセクタ数に基づいて、それぞれのフラッシュメモリ装置においてアクセス先となる領域の先頭のアドレスを生成するアドレス生成ステップと、An address generation step of generating the head address of the area to be accessed in each flash memory device based on the logical address of the head of the access target area specified by the access instruction and the number of sectors of the access target area;
前記セクタ数算出ステップにより算出されたセクタ数及び前記アドレス生成ステップにより生成されたアドレスを、アクセス先の領域を指示する情報として、それぞれのフラッシュメモリ装置に与える制御ステップとを備え、A control step of providing each flash memory device with the number of sectors calculated in the sector number calculating step and the address generated in the address generating step as information indicating an access destination area,
フラッシュメモリ装置には、0から20 to 2 for flash memory devices n −1の装置番号が割り当てられており、ホストシステムから与えられる論理アドレスに対応する領域は、当該論理アドレスの下位側から数えてm+1ビット目からm+nビット目までのビットの値と一致する前記装置番号が割り当てられているフラッシュメモリ装置に振り分けられ、-1 device number is assigned, and the area corresponding to the logical address given from the host system matches the value of the bits from the (m + 1) th bit to the (m + n) th bit counted from the lower side of the logical address. Assigned to the flash memory device to which the number is assigned,
前記セクタ数算出ステップでは、In the sector number calculating step,
前記アクセス指示により指定されたアクセス対象領域の先頭の論理アドレスの下位側から数えてm+1ビット目からm+nビット目までのnビットに基づいて、当該論理アドレスに対応する領域を含む先頭領域の振り分け先のフラッシュメモリ装置である起点装置を特定すると共に、当該論理アドレスの下位mビットに基づいて、当該先頭領域のセクタ数である第1のセクタ数を求め、更に、前記アクセス指示により指定されたアクセス対象領域のセクタ数から前記第1のセクタ数を引いて得られた値を振り分け単位の2Based on the n bits from the (m + 1) th bit to the (m + n) th bit counted from the lower side of the top logical address of the access target area specified by the access instruction, the distribution destination of the top area including the area corresponding to the logical address And the first sector number that is the number of sectors in the head area is obtained based on the lower m bits of the logical address, and the access designated by the access instruction is specified. A value obtained by subtracting the first sector number from the sector number of the target area is set to 2 as a distribution unit. m で割る除算を行い、当該除算の商に基づいて、それぞれの前記フラッシュメモリ装置においてアクセス先となる2The division by 2 is performed, and on the basis of the quotient of the division, each flash memory device becomes an access destination 2 m セクタの振り分け単位の領域の個数を求めると共に、2Obtain the number of sector allocation units and 2 m セクタ未満の領域であって当該除算の余りに一致するセクタ数の領域を含む末尾領域の振り分け先のフラッシュメモリ装置を特定することにより、それぞれのフラッシュメモリ装置においてアクセス先となる領域のセクタ数を算出し、By specifying the flash memory device to which the tail area is allocated, including the area with the number of sectors that is less than the sector and matches the remainder of the division, the number of sectors in the area to be accessed in each flash memory device is calculated. And
前記アドレス生成ステップでは、In the address generation step,
前記アクセス指示により指定されたアクセス対象領域の先頭の論理アドレスを、当該論理アドレスの下位mビットに対応する第1のビット列と、当該論理アドレスの下位側から数えてm+1ビット目からm+nビット目までのビットに対応する第2のビット列と、当該論理アドレスの下位側から数えてm+nビット目のビットより上位側のビットに対応する第3のビット列に分割し、The first logical address corresponding to the lower m bits of the logical address, and the (m + 1) th bit to the (m + n) th bit, counted from the lower side of the logical address, is the first logical address of the access target area specified by the access instruction. And a second bit string corresponding to the bits of the logical address and a third bit string corresponding to the upper bits of the m + n-th bit counted from the lower side of the logical address,
前記第3のビット列の下位側に前記第1のビット列を連結したものを、前記起点装置のフラッシュメモリ装置に与えるアドレスとして生成し、前記第1のビット列の全てのビットを“0”で置き換えたうえで、当該第1のビット列を前記第3のビット列の下位側に連結したものを、前記起点装置に対応する前記装置番号より大きい前記装置番号が割り当てられているフラッシュメモリ装置に与えるアドレスとして生成し、前記第1のビット列の全てのビットを“0”で置き換えると共に、前記第3のビット列に1を加算したうえで、当該第1のビット列を当該第3のビット列の下位側に連結したものを、前記起点装置に対応する前記装置番号より小さい前記装置番号が割り当てられているフラッシュメモリ装置に与えるアドレスとして生成するA concatenation of the first bit string on the lower side of the third bit string is generated as an address to be given to the flash memory device of the starting device, and all bits of the first bit string are replaced with “0” In addition, a concatenation of the first bit string to the lower side of the third bit string is generated as an address to be given to the flash memory device to which the device number larger than the device number corresponding to the starting device is assigned. Then, all the bits of the first bit string are replaced with “0”, and 1 is added to the third bit string, and the first bit string is connected to the lower side of the third bit string. Is generated as an address to be given to the flash memory device to which the device number smaller than the device number corresponding to the starting device is assigned.
ことを特徴とするアクセス制御方法。An access control method characterized by the above.
JP2005347358A 2005-11-30 2005-11-30 Access controller, flash memory system, and access control method Expired - Fee Related JP4661566B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005347358A JP4661566B2 (en) 2005-11-30 2005-11-30 Access controller, flash memory system, and access control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005347358A JP4661566B2 (en) 2005-11-30 2005-11-30 Access controller, flash memory system, and access control method

Publications (2)

Publication Number Publication Date
JP2007156582A JP2007156582A (en) 2007-06-21
JP4661566B2 true JP4661566B2 (en) 2011-03-30

Family

ID=38240901

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005347358A Expired - Fee Related JP4661566B2 (en) 2005-11-30 2005-11-30 Access controller, flash memory system, and access control method

Country Status (1)

Country Link
JP (1) JP4661566B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4636005B2 (en) * 2006-11-13 2011-02-23 Tdk株式会社 MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
US8650438B2 (en) 2009-08-11 2014-02-11 Marvell World Trade Ltd. Controller for reading data from non-volatile memory
JP6005533B2 (en) * 2013-01-17 2016-10-12 株式会社東芝 Storage device and storage method

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001008014A1 (en) * 1999-07-28 2001-02-01 Sony Corporation Recording system, data recording device, memory device, and data recording method
JP2004343682A (en) * 2003-03-12 2004-12-02 Matsushita Electric Ind Co Ltd Camera recorder and data recording medium

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001008014A1 (en) * 1999-07-28 2001-02-01 Sony Corporation Recording system, data recording device, memory device, and data recording method
JP2004343682A (en) * 2003-03-12 2004-12-02 Matsushita Electric Ind Co Ltd Camera recorder and data recording medium

Also Published As

Publication number Publication date
JP2007156582A (en) 2007-06-21

Similar Documents

Publication Publication Date Title
JP4171749B2 (en) Memory controller and flash memory system
JP4666080B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4666081B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP2007141376A (en) Semiconductor storage device and its control method
JP5858081B2 (en) Memory controller, memory system, and memory control method
JP4661566B2 (en) Access controller, flash memory system, and access control method
JP4235646B2 (en) Memory controller and flash memory system
JP4636005B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4434171B2 (en) Memory controller and flash memory system
JP4241741B2 (en) Memory controller and flash memory system
JP4661191B2 (en) Memory controller, flash memory system, and flash memory control method
JP4710753B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM USING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4153535B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4254933B2 (en) Memory controller and flash memory system
JP4636046B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP3934659B1 (en) Memory controller and flash memory system
JP4697146B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4952741B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4000124B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP6260395B2 (en) Memory controller, memory system, and memory control method
JP4254930B2 (en) Memory controller, flash memory system, and flash memory control method
JP4273109B2 (en) Memory controller and flash memory system
JP4213166B2 (en) Memory controller and flash memory system
JP2007323138A (en) Memory controller, flash memory system, and control method of flash memory
JP4227989B2 (en) Memory controller and flash memory system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070312

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100524

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100526

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100608

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100806

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4661566

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140114

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees