WO2009121291A1 - Storage device and storage method - Google Patents

Storage device and storage method Download PDF

Info

Publication number
WO2009121291A1
WO2009121291A1 PCT/CN2009/071102 CN2009071102W WO2009121291A1 WO 2009121291 A1 WO2009121291 A1 WO 2009121291A1 CN 2009071102 W CN2009071102 W CN 2009071102W WO 2009121291 A1 WO2009121291 A1 WO 2009121291A1
Authority
WO
WIPO (PCT)
Prior art keywords
storage module
storage
access operation
address
module
Prior art date
Application number
PCT/CN2009/071102
Other languages
French (fr)
Chinese (zh)
Inventor
钟智渊
Original Assignee
深圳市朗科科技股份有限公司
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 深圳市朗科科技股份有限公司 filed Critical 深圳市朗科科技股份有限公司
Publication of WO2009121291A1 publication Critical patent/WO2009121291A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration

Definitions

  • the disclosure of the present application relates to data storage devices and methods. Background technique
  • SLC Single Level Cell
  • MLC Multi Level Cell
  • the present application discloses a storage device, which may include:
  • a second storage module different from a medium of the first storage module
  • At least one configuration information unit acquiring and accessing current configuration storage parameters associated with the first storage module and the second storage module in real time;
  • Processing the module receiving an access instruction from the host computer or the external, and selecting one of the first storage module and the second storage module based on the received access instruction and the current configuration storage parameter to select The data access operation is performed in the storage module.
  • a storage device which may include:
  • At least three storage modules the at least three storage modules include at least two storage modules of different media types;
  • At least one configuration information unit that acquires and stores current configuration storage parameters associated with the at least three storage modules in real time
  • Processing the module receiving an access instruction from the host computer or the external, and selecting a storage module from the at least three storage modules based on the received access instruction and the current configuration storage parameter, and further in the selected storage module An address at which an access operation is to be performed is determined, thereby performing a data access operation at the determined address.
  • the present application discloses a method for performing data access in a storage device, where the storage device includes at least a first storage module and a second storage module, and the method includes:
  • An address at which the access operation is to be performed is determined in the second storage module.
  • FIG. 1 is a block diagram showing a first embodiment of a memory device in accordance with a first aspect of the present application
  • FIG. 2 is a block diagram further illustrating the processing module 40 of Figure 1;
  • Figure 3 shows a block diagram of a second embodiment of a memory device in accordance with the first aspect of the present application
  • Fig. 4 exemplarily shows a flow chart of a storage method according to the second aspect of the present application. detailed description
  • the storage device 1000 includes a first storage module 10 and a second storage module 20.
  • the first storage module 10 and the second storage module 20 may be different types of storage modules.
  • the first storage module 10 may be an SLC module
  • the second storage module 20 may be an MLC module.
  • the storage device 1000 also includes a configuration information module 30 and a processing module 40.
  • the configuration information module 30 is configured to acquire and store the current configuration storage parameters of the first storage module 10 and the second storage module 20 in real time, for example, the module type of the first storage module 10 and the second storage module 20, and the currently available number of blocks. , the number of pages per page, the number of sectors per page, access clock cycles, bad blocks, etc.
  • the currently available number of blocks may also include the number of physical blocks and the number of logical blocks to reflect the current storage state.
  • the storage parameters of the first storage module 10 and the second storage module 20 are stored in the configuration information unit 30, for example, in the form of an information table. Table 1 exemplarily shows information when the first and second storage modules are the SLC module and the MLC module, respectively.
  • the processing module 40 receives the access instruction from the upper computer or the external, and stores the parameter in the first storage module 10 or the second storage module according to the received access instruction and the current configuration storage parameter stored in the configuration information module 30.
  • the sector to be accessed is determined in 20 to perform a data access operation on the determined sector.
  • the processing module 40 may further include a command receiving unit 401, an address determining unit 402, and an access unit 403.
  • the command receiving unit 401 receives an access command from the upper computer or the outside.
  • the address determining unit 402 determines a sector to be accessed by the first storage module 10 or the second storage module 20 based on the received access instruction. The operation of the address determining unit 402 will be further described below.
  • the address determining unit 402 After the address determining unit 402 receives the access instruction from the command receiving unit 401, the logical address to be accessed is determined according to the received access instruction, and the decimal number indicating the logical address is available to the first storage module 10. The number of sectors is compared. If the number of available sectors of the first storage module 10 is greater than the decimal number of the logical address to be accessed, the first storage module 10 may be selected as the current storage module to be accessed, and determined to be accessed in the first storage module 10 according to the following formula. Specific sector,
  • BlockAccessl Int ( NA1/(P1*S1) ) +offset 1)
  • PageAccessl Int ( ( Mod ( NA1 /(P1*S1) ) /PI ) ) 2 )
  • SecAccessl Mod ( ( Mod ( NA1 /(P1 *S1) ) /PI ) Equation 3)
  • BlockAccess1 represents the block to be accessed in the first storage module
  • PageAccessl represents the page to be accessed in the block BlockAccessl
  • SecAccessel Indicates the sector to be accessed in the page PageAccessl
  • offset is the block offset (which is the number of bad blocks in the first storage module)
  • NA1 is the decimal number of the logical address to be accessed in the first storage module
  • P 1 Represents the number of pages per block in the first storage module
  • S1 represents the number of sectors per page in the first storage module
  • Int is a rounding operation function
  • Mod is a remainder operation function.
  • BlockAccess2 Int ( ( NA2-Conl ) /(P2*S2) ) +offset 4 )
  • PageAccess2 Int ( ( Mod ( ( NA2-Conl ) /(P2*S2) ) /P2 ) ) 5 )
  • SecAccess2 Mod ( ( Mod ( ( NA2-Conl ) / (P2*S2) ) /P2 ) ) 6 )
  • BlockAccess 2 represents the block to be accessed in the second storage module
  • PageAccess2 represents the page to be accessed in the block BlockAccess2
  • SecAccessel represents the sector to be accessed in the page PageAccess2
  • offset represents the block offset (which is equal to the bad block) Number)
  • Conl is the total sector of the first storage module
  • NA2 is the decimal number of the logical address to be accessed
  • P2 is the number of pages available for each block in the second storage module
  • S2 is the fan of each page in the second storage module.
  • the number of regions, Int is the rounding operation function
  • Mod is the remainder operation function.
  • the second storage module is selected as the current storage module.
  • Conl is the currently available number of sectors, that is, 1048576.
  • the location to be accessed is the third sector on page 68 of the 5872th block of the second memory module.
  • the access unit 403 selectively accesses the data in the first storage module 10 or the second storage module 20 in the sector determined by the address determination unit 402 based on the information stored in the configuration information module 30. Specifically, when data access is performed in the first storage module 10, for example, the storage medium is an SLC, the data storage operation is performed using conventional parameters and commands for the SLC access operation; when, for example, the storage medium is the MLC When data access is performed in the second storage module 20, the data storage operation is performed using conventional parameters and commands for the MLC access operation. For example, when data access is performed in the first storage module 10, according to Table 1, the access period of the first storage module 10 is 30 ns, and the access unit 403 is directed to the first storage module 10 at a rate of 30 ns per byte. Send access commands, addresses, and data.
  • FIG. 3 is a storage device 2000 according to a second embodiment of the present disclosure.
  • the storage device 2000 of the second embodiment includes two configuration information modules 30 corresponding to the first storage module 10 and the second storage module 20, respectively, in real time.
  • the current storage parameters of the first storage module 10 and the second storage module 20 are acquired and stored. Since the first storage module 10, the second storage module 20, the configuration information module 30, and the processing module 40 included in the storage device 2000 of the second embodiment are the same as those of the first embodiment described above, they will not be separately described.
  • each storage module separately corresponds to one configuration information module, when one of the storage modules cannot continue to be used, the storage module and its corresponding configuration information module may be replaced together, thereby increasing The flexibility of the storage device.
  • the storage devices 1000 and 2000 have been described by taking two different types of storage modules as an example, those skilled in the art should understand that the implementation of combining two or more storage modules into one storage device can be easily realized according to the above description. the way.
  • the storage devices 1000 and 2000 further include the third storage module, when the first and second storage modules are not determined according to the above method When the module to be accessed is currently selected, the access operation is selected in the third storage module.
  • NA2-Conl in the above formula 4) -6) should be changed to (NA3-Conl-Con2).
  • S2 and P2 should also be changed to S3 and P3 accordingly, where NA3 is the decimal number representation of the logical address to be accessed, Con2 is the total storage capacity of the second storage module, and P3 and S3 are each of the third storage devices, respectively.
  • NA3 is the decimal number representation of the logical address to be accessed
  • Con2 is the total storage capacity of the second storage module
  • P3 and S3 are each of the third storage devices, respectively.
  • a storage module with a relatively fast storage speed block and a relatively long service life should generally be set as the first storage module, that is, the module that selects the storage first is selected by default, and the file with a higher frequency of access is accessed. Pre-set in the first storage module, such as the file allocation table in the FAT/FAT32 file system.
  • a method 3000 for data access in a storage device disclosed in the second aspect of the present application which may include, for example, a first storage module and a second storage module of different types, may be described with reference to FIG.
  • the logical address of the required access is obtained from the externally input access instruction in step 300; and the current available number of sectors of the first storage module is obtained in step 310.
  • the decimal number representing the logical address obtained in step 300 is compared with the number of available sectors obtained in step 310 in step 320.
  • the first storage module is selected to access the storage module, and is determined in the storage module according to formula 1) -3) in step 330.
  • the sector to be accessed is then accessed in step 340 for the determined sector to be accessed.
  • step 350 it is determined that the storage module to be accessed is the second storage module, and then determined in step 330 according to the company 4) -6)
  • the sector to be accessed in the second memory module is then accessed in step 340 for the determined sector to be accessed.
  • the data access method 3000 is described by taking two storage modules as an example. However, the description of the two storage modules is merely for convenience of description, and those skilled in the art do not need to work creatively according to the above description. A method of operating a storage device composed of two or more different storage modules is fully available.

Abstract

A data storage device and the method thereof are provided. Said storage device comprises: a first storage module; a second storage module, of which the media type is different from that of said first storage module; at least one configuration information unit, which acquires current configuration storage parameters correlated with said first and second storage modules and stores them in real time; and a processing module, which receives an access instruction from an upper computer or the exterior and selects one of said first storage module or said second storage module to execute a data access operation therein according to the instruction and said current configuration storage parameters.

Description

存储装置及存储方法 技术领域  Storage device and storage method
本申请公开的内容涉及数据存储装置及方法。 背景技术  The disclosure of the present application relates to data storage devices and methods. Background technique
随着闪存使用的普及, 出现了越来越多的闪存类型。 不同种类的闪存具 有各自的优缺点。 例如, SLC ( Single Level Cell, 单层单元闪存)的存取速度 快、 使用寿命长, 但造价相对昂贵, 而 MLC ( Multi Level Cell , 多层单元闪 存) 的造价虽然相对较低, 但其存取速度较慢、 使用寿命也较短。  With the popularity of flash memory, more and more flash types have emerged. Different types of flash memory have their own advantages and disadvantages. For example, SLC (Single Level Cell) has a fast access speed and long service life, but it is relatively expensive, while MLC (Multi Level Cell) has a relatively low cost, but it is still relatively expensive. The speed is slower and the service life is shorter.
现有技术的存储装置同时仅支持一种类型的闪存, 因此无法兼顾各种类 型闪存设备的优势。 发明内容  Prior art storage devices support only one type of flash memory at the same time, and thus cannot take advantage of various types of flash memory devices. Summary of the invention
一方面, 本申请公开了一种存储装置, 可包括:  In one aspect, the present application discloses a storage device, which may include:
第一存储模块;  First storage module;
第二存储模块, 与所述第一存储模块的媒介种类不同;  a second storage module, different from a medium of the first storage module;
至少一个配置信息单元, 实时地获取并存取与所述第一存储模块和第二 存储模块关联的当前配置存储参数; 以及  At least one configuration information unit acquiring and accessing current configuration storage parameters associated with the first storage module and the second storage module in real time;
处理模块, 从上位机或外部接收存取指令, 并基于接收的存取指令和所 述当前配置存储参数从所述第一存储模块和所述第二存储模块中选择其中一 个, 以在所选择的存储模块中执行数据存取操作。  Processing the module, receiving an access instruction from the host computer or the external, and selecting one of the first storage module and the second storage module based on the received access instruction and the current configuration storage parameter to select The data access operation is performed in the storage module.
本申请还公开了这样一种存储装置, 其可包括:  The present application also discloses such a storage device, which may include:
至少三个存储模块, 所述至少三个存储模块中至少包括两个媒介类型不 同的存储模块;  At least three storage modules, the at least three storage modules include at least two storage modules of different media types;
至少一个配置信息单元, 实时地获取并存储与所述至少三个存储模块关 联的当前配置存储参数; 以及  At least one configuration information unit that acquires and stores current configuration storage parameters associated with the at least three storage modules in real time;
处理模块, 从上位机或外部接收存取指令, 并基于接收的存取指令和所 述当前配置存储参数从所述至少三个存储模块中选择一个存储模块, 并在所 选择的存储模块中进一步确定出要执行存取操作的地址, 从而在所确定的地 址执行数据存取操作。  Processing the module, receiving an access instruction from the host computer or the external, and selecting a storage module from the at least three storage modules based on the received access instruction and the current configuration storage parameter, and further in the selected storage module An address at which an access operation is to be performed is determined, thereby performing a data access operation at the determined address.
另一方面, 本申请公开了一种在存储装置中进行数据存取的方法, 所述 存储装置至少包括第一存储模块和第二存储模块, 所述方法包括:  On the other hand, the present application discloses a method for performing data access in a storage device, where the storage device includes at least a first storage module and a second storage module, and the method includes:
从外部输入的存取指令中获取所需存取的逻辑地址;  Obtaining the logical address of the required access from the externally input access instruction;
获取所述第一存储模块的当前可用扇区数; 将表示所述逻辑地址的十进制数和所述所述第一存储模块的可用扇区数 进行比较; Obtaining a current number of available sectors of the first storage module; Comparing a decimal number representing the logical address with a number of available sectors of the first storage module;
如果所述第一存储模块的可用扇区数大于所述逻辑地址的十进制数, 则 在所述第一存储模块中确定要执行存取操作的地址, 否则,  If the number of available sectors of the first storage module is greater than a decimal number of the logical address, determining an address of the first storage module to perform an access operation, otherwise,
在所述第二存储模块中确定要执行存取操作的地址。 附图说明  An address at which the access operation is to be performed is determined in the second storage module. DRAWINGS
图 1 是示出了根据本申请第一方面的存储装置的第一实施方式的方框 图;  1 is a block diagram showing a first embodiment of a memory device in accordance with a first aspect of the present application;
图 2是进一步示意性示出图 1中的处理模块 40的方框图;  Figure 2 is a block diagram further illustrating the processing module 40 of Figure 1;
图 3示出了根据本申请第一方面的存储装置的第二实施方式的方框图; 以 及  Figure 3 shows a block diagram of a second embodiment of a memory device in accordance with the first aspect of the present application;
图 4示例性地示出了根据本申请第二方面的存储方法的流程图。 具体实施方式  Fig. 4 exemplarily shows a flow chart of a storage method according to the second aspect of the present application. detailed description
下面将参照相应附图描述根据本申请第一方面的存储装置的实施方式。 参见图 1 , 其中示出了根据本申请第一方面的第一实施方式的存储装置 1000。 存储装置 1000包括第一存储模块 10和第二存储模块 20。 第一存储模块 10和第二存储模块 20可为不同类型的存储模块, 例如, 第一存储模块 10可为 SLC模块, 第二存储模块 20可为 MLC模块。  Embodiments of the memory device according to the first aspect of the present application will be described below with reference to the accompanying drawings. Referring to Figure 1, there is shown a memory device 1000 in accordance with a first embodiment of the first aspect of the present application. The storage device 1000 includes a first storage module 10 and a second storage module 20. The first storage module 10 and the second storage module 20 may be different types of storage modules. For example, the first storage module 10 may be an SLC module, and the second storage module 20 may be an MLC module.
存储装置 1000还包括配置信息模块 30和处理模块 40。 配置信息模块 30被 配置为实时地获取并存储第一存储模块 10和第二存储模块 20的当前配置存储 参数, 例如, 第一存储模块 10和第二存储模块 20的模块类型、 当前可用块数、 每块页数、 每页扇区数、 访问时钟周期、 坏块等信息等。 当前可用块数还可 包括物理块数和逻辑块数等以反映当前的存储状态。。 第一存储模块 10和第二 存储模块 20的存储参数例如以信息表的形式存储在配置信息单元 30。 表 1示例 性地示出了当第一、 二存储模块分别为 SLC模块和 MLC模块时的信息。  The storage device 1000 also includes a configuration information module 30 and a processing module 40. The configuration information module 30 is configured to acquire and store the current configuration storage parameters of the first storage module 10 and the second storage module 20 in real time, for example, the module type of the first storage module 10 and the second storage module 20, and the currently available number of blocks. , the number of pages per page, the number of sectors per page, access clock cycles, bad blocks, etc. The currently available number of blocks may also include the number of physical blocks and the number of logical blocks to reflect the current storage state. . The storage parameters of the first storage module 10 and the second storage module 20 are stored in the configuration information unit 30, for example, in the form of an information table. Table 1 exemplarily shows information when the first and second storage modules are the SLC module and the MLC module, respectively.
Figure imgf000004_0001
Figure imgf000004_0001
表 1  Table 1
处理模块 40从上位机或外部接收存取指令, 并根据接收的存取指令和在 配置信息模块 30存储的当前配置存储参数在第一存储模块 10或第二存储模块 20中确定要访问的扇区, 从而在所确定的扇区执行数据存取操作。 具体地, 如图 2所示, 处理模块 40还可进一步包括命令接收单元 401、 地址确定单元 402 和存取单元 403。 命令接收单元 401从上位机或外部接收存取指令。 地址确定 单元 402根据所接收的存取指令确定出在第一存储模块 10或第二存储模块 20 要访问的扇区。 下面对地址确定单元 402的操作做进一步说明。 The processing module 40 receives the access instruction from the upper computer or the external, and stores the parameter in the first storage module 10 or the second storage module according to the received access instruction and the current configuration storage parameter stored in the configuration information module 30. The sector to be accessed is determined in 20 to perform a data access operation on the determined sector. Specifically, as shown in FIG. 2, the processing module 40 may further include a command receiving unit 401, an address determining unit 402, and an access unit 403. The command receiving unit 401 receives an access command from the upper computer or the outside. The address determining unit 402 determines a sector to be accessed by the first storage module 10 or the second storage module 20 based on the received access instruction. The operation of the address determining unit 402 will be further described below.
当地址确定单元 402接收到来自命令接收单元 401的存取指令后, 根据所 接收的存取指令确定出要访问的逻辑地址, 并将表示该逻辑地址的十进制数 与第一存储模块 10的可用扇区数进行比较。 如果第一存储模块 10的可用扇区 数大于要访问的逻辑地址的十进制数, 则可选择第一存储模块 10为当前要访 问存储模块, 并根据以下公式确定在第一存储模块 10中要访问的具体扇区,  After the address determining unit 402 receives the access instruction from the command receiving unit 401, the logical address to be accessed is determined according to the received access instruction, and the decimal number indicating the logical address is available to the first storage module 10. The number of sectors is compared. If the number of available sectors of the first storage module 10 is greater than the decimal number of the logical address to be accessed, the first storage module 10 may be selected as the current storage module to be accessed, and determined to be accessed in the first storage module 10 according to the following formula. Specific sector,
BlockAccessl =Int ( NA1/(P1*S1) ) +offset 式 1 ) BlockAccessl = Int ( NA1/(P1*S1) ) +offset 1)
PageAccessl =Int ( ( Mod ( NA1 /(P1*S1) ) /PI ) 式 2 )  PageAccessl =Int ( ( Mod ( NA1 /(P1*S1) ) /PI ) ) 2 )
SecAccessl=Mod ( ( Mod ( NA1 /(P1 *S1) ) /PI ) 式 3 ) 其中, BlockAccessl表示在所述第一存储模块中要访问的块, PageAccessl 表示在块 BlockAccessl中要访问的页, SecAccessel表示在页 PageAccessl中要 访问的扇区, offset为块偏移量(其为第一存储模块中的坏块个数), NA1为在 第一存储模块要访问的逻辑地址的十进制数, P 1表示第一存储模块中每块的 页数, S1表示表示第一存储模块中每页的扇区数, Int为取整运算函数; Mod 为取余运算函数。  SecAccessl=Mod ( ( Mod ( NA1 /(P1 *S1) ) /PI ) Equation 3) where BlockAccess1 represents the block to be accessed in the first storage module, and PageAccessl represents the page to be accessed in the block BlockAccessl, SecAccessel Indicates the sector to be accessed in the page PageAccessl, offset is the block offset (which is the number of bad blocks in the first storage module), NA1 is the decimal number of the logical address to be accessed in the first storage module, P 1 Represents the number of pages per block in the first storage module, S1 represents the number of sectors per page in the first storage module, Int is a rounding operation function; Mod is a remainder operation function.
以 NA 1为 21007为例, 其小于表 1中示出的第一存储模块 10的可用存储扇 区 4 * 64 * 4096 = 1048576, 则可确定第一存储模块 10为当前要存取的模块。 根据上述表 1还可以确定 Pl=64 , Sl=4 , offset=0„ 这样, 根据式 1)可确定 BlockAccessl =82 , 根据式 2)可确定 PageAccesse=3; 以及根据式 3 ) 可确定 SecAccess 1=3„ 即, 要访问的位置为第一存储模块 10的第 82个块的第 3页的第 3扇区。 如果第一存储模块 10的可用扇区数小大于要访问的逻辑地址的十进制 数, 则选择第二存储模块 20为要访问存储模块, 并根据以下公式确定在第二 存储模块 20中要访问的具体扇区。  Taking NA 1 as 21007 as an example, which is smaller than the available storage sector 4 * 64 * 4096 = 1048576 of the first storage module 10 shown in Table 1, it can be determined that the first storage module 10 is the module to be accessed currently. According to the above Table 1, it can be further determined that Pl=64, Sl=4, offset=0„ Thus, according to Equation 1), BlockAccessl=82 can be determined, according to Equation 2), PageAccesse=3 can be determined; and according to Equation 3), SecAccess 1 can be determined. = 3 „ That is, the location to be accessed is the third sector of the third page of the 82nd block of the first memory module 10. If the number of available sectors of the first storage module 10 is smaller than the decimal number of the logical address to be accessed, the second storage module 20 is selected to access the storage module, and the access to the second storage module 20 is determined according to the following formula. Specific sector.
BlockAccess2=Int ( ( NA2-Conl ) /(P2*S2) ) +offset 式 4 )BlockAccess2=Int ( ( NA2-Conl ) /(P2*S2) ) +offset 4 )
PageAccess2=Int ( ( Mod ( ( NA2-Conl ) /(P2*S2) ) /P2 ) 式 5 ) PageAccess2=Int ( ( Mod ( ( NA2-Conl ) /(P2*S2) ) /P2 ) ) 5 )
SecAccess2=Mod ( ( Mod ( ( NA2-Conl ) /(P2*S2) ) /P2 ) 式 6 ) 其中, BlockAccess 2表示在第二存储模块中要访问的块, PageAccess2表 示在块 BlockAccess2中要访问的页, SecAccessel表示在页 PageAccess2中要访 问的扇区, offset表示块偏移量(其等于坏块数), Conl为第一存储模块的总 扇区, NA2为要访问的逻辑地址的十进制数, P2表示第二存储模块中每块可 用的页数, S2表示第二存储模块中每页的扇区数, Int为取整运算函数; Mod 为取余运算函数。 SecAccess2=Mod ( ( Mod ( ( NA2-Conl ) / (P2*S2) ) /P2 ) ) 6 ) Where BlockAccess 2 represents the block to be accessed in the second storage module, PageAccess2 represents the page to be accessed in the block BlockAccess2, SecAccessel represents the sector to be accessed in the page PageAccess2, and offset represents the block offset (which is equal to the bad block) Number), Conl is the total sector of the first storage module, NA2 is the decimal number of the logical address to be accessed, P2 is the number of pages available for each block in the second storage module, and S2 is the fan of each page in the second storage module. The number of regions, Int is the rounding operation function; Mod is the remainder operation function.
以 NA2为 3006739为例, 其大于第一存储模块的可用扇区数 1048576, 则 选取第二存储模块为当前的存储模块。 为描述方便, 假设第一存储模块为空 白模块, 则 Conl即为当前可用的扇区数, 即 1048576。 从上表 1还可以确定 P2=128, S2=4, offset=2048„ 则根据式 4)可确定 BlockAccess 2=5872, 根据式 5)可确定 PageAccesse 2=68; 根据式 6 )可确定 SecAccess2=3。 即要访问的位置 为第二存储模块的第 5872个块的第 68页的第 3扇区。  Taking NA2 as 3006739 as an example, which is greater than the number of available sectors of the first storage module 1048576, the second storage module is selected as the current storage module. For convenience of description, assuming that the first storage module is a blank module, Conl is the currently available number of sectors, that is, 1048576. From Table 1 above, it can also be determined that P2=128, S2=4, offset=2048„ then BlockAccess 2=5872 can be determined according to Equation 4), PageAccesse 2=68 can be determined according to Equation 5); SecAccess2= can be determined according to Equation 6) 3. The location to be accessed is the third sector on page 68 of the 5872th block of the second memory module.
存取单元 403根据配置信息模块 30中存储的信息, 在地址确定单 402确定 出的扇区有选择地在第一存储模块 10或第二存储模块 20中进行数据存取。 具 体地, 当在例如存储媒介为 SLC的第一存储模块 10中进行数据存取时,釆用用 于 SLC存取操作的常规参数和命令进行数据存储操作; 当在例如存储媒介为 MLC的第二存储模块 20中进行数据存取时, 釆用用于 MLC存取操作的常规参 数和命令进行数据存储操作。 例如, 当在第一存储模块 10中进行数据存取时, 根据表 1 , 第一存储模块 10的访问周期是 30ns, 则存取单元 403以 30ns每字节的 速率, 向第一存储模块 10发送访问命令、 地址和数据。  The access unit 403 selectively accesses the data in the first storage module 10 or the second storage module 20 in the sector determined by the address determination unit 402 based on the information stored in the configuration information module 30. Specifically, when data access is performed in the first storage module 10, for example, the storage medium is an SLC, the data storage operation is performed using conventional parameters and commands for the SLC access operation; when, for example, the storage medium is the MLC When data access is performed in the second storage module 20, the data storage operation is performed using conventional parameters and commands for the MLC access operation. For example, when data access is performed in the first storage module 10, according to Table 1, the access period of the first storage module 10 is 30 ns, and the access unit 403 is directed to the first storage module 10 at a rate of 30 ns per byte. Send access commands, addresses, and data.
如图 3为本申请公开的第二实施方式的存储装置 2000。 和图 1所示的存储 装置 1000不同之处在于, 第二实施方式的存储装置 2000包括与第一存储模块 10和第二存储模块 20分别——对应的两个配置信息模块 30, 以分别实时地获 取并存储第一存储模块 10和第二存储模块 20的当前存储参数。 由于第二实施 方式的存储装置 2000中包括的第一存储模块 10、 第二存储模块 20、 配置信息 模块 30和处理模块 40与上述第一实施方式相同, 因此对它们不再单独描述。  3 is a storage device 2000 according to a second embodiment of the present disclosure. The difference from the storage device 1000 shown in FIG. 1 is that the storage device 2000 of the second embodiment includes two configuration information modules 30 corresponding to the first storage module 10 and the second storage module 20, respectively, in real time. The current storage parameters of the first storage module 10 and the second storage module 20 are acquired and stored. Since the first storage module 10, the second storage module 20, the configuration information module 30, and the processing module 40 included in the storage device 2000 of the second embodiment are the same as those of the first embodiment described above, they will not be separately described.
在该实施方式中, 由于各个存储模块分别单独对应了一个配置信息模块, 因此, 当其中某个存储模块无法继续使用时, 可以将该存储模块和其对应的 配置信息模块一起替换掉, 从而增加了存储装置的灵活性。 以上虽然以两种不同种类的存储模块为例对存储装置 1000和 2000进行了 说明, 然而, 本领域技术人员应该理解, 根据上面描述可以艮容易实现两种 以上存储模块组合成一个存储装置的实施方式。 例如当存储装置 1000和 2000 还包括第三存储模块时, 当按照上述的方法确定出第一和第二存储模块不是 当前要存取的模块时, 选择在第三个存储模块中进行存取操作, 这时, 上述 公式 4 ) -6 ) 中的参数变量(NA2-Conl )应该变为 ( NA3-Conl-Con2 ), S2和 P2也应该相应地变为 S3和 P3 ,其中 NA3为要访问的逻辑地址的十进制数表示, Con2为第二存储模块的总存储容量, P3和 S3分别为第三存储装置中每个块的 页数和每页包括的扇区数。 In this embodiment, since each storage module separately corresponds to one configuration information module, when one of the storage modules cannot continue to be used, the storage module and its corresponding configuration information module may be replaced together, thereby increasing The flexibility of the storage device. Although the storage devices 1000 and 2000 have been described by taking two different types of storage modules as an example, those skilled in the art should understand that the implementation of combining two or more storage modules into one storage device can be easily realized according to the above description. the way. For example, when the storage devices 1000 and 2000 further include the third storage module, when the first and second storage modules are not determined according to the above method When the module to be accessed is currently selected, the access operation is selected in the third storage module. At this time, the parameter variable (NA2-Conl) in the above formula 4) -6) should be changed to (NA3-Conl-Con2). S2 and P2 should also be changed to S3 and P3 accordingly, where NA3 is the decimal number representation of the logical address to be accessed, Con2 is the total storage capacity of the second storage module, and P3 and S3 are each of the third storage devices, respectively. The number of pages in the block and the number of sectors included in each page.
此外, 本领域技术人员还应该理解, 通常应该将存储速度块相对快、 使 用寿命相对长的存储模块设为第一存储模块, 即默认最先选择存储的模块, 并且将访问频率较高的文件预置在第一存储模块中,例如 FAT/FAT32文件系统 中的文件分配表。 下面将参照图 4描述本申请第二方面公开的用于在存储装置中进行数据 存取的方法 3000 , 存储装置例如可包括类型不同的第一存储模块和第二存储 模块。  In addition, those skilled in the art should also understand that a storage module with a relatively fast storage speed block and a relatively long service life should generally be set as the first storage module, that is, the module that selects the storage first is selected by default, and the file with a higher frequency of access is accessed. Pre-set in the first storage module, such as the file allocation table in the FAT/FAT32 file system. A method 3000 for data access in a storage device disclosed in the second aspect of the present application, which may include, for example, a first storage module and a second storage module of different types, may be described with reference to FIG.
参照图 4, 在步骤 300从外部输入的存取指令中获取所需存取的逻辑地 址; 并在步骤 310获取第一存储模块的当前可用扇区数。  Referring to FIG. 4, the logical address of the required access is obtained from the externally input access instruction in step 300; and the current available number of sectors of the first storage module is obtained in step 310.
在步骤 320中将表示在步骤 300中获得的逻辑地址的十进制数与在步骤 310中获得的可用扇区数进行比较。  The decimal number representing the logical address obtained in step 300 is compared with the number of available sectors obtained in step 310 in step 320.
如果第一存储模块的可用扇区数大于要访问的逻辑地址的十进制数, 则 选择第一存储模块为要访问存储模块, 并在步骤 330中根据公式 1 ) -3 )确定在 该存储模块中要访问的扇区, 然后在步骤 340中对所确定的要访问的扇区进行 存取操作。  If the number of available sectors of the first storage module is greater than the decimal number of the logical address to be accessed, the first storage module is selected to access the storage module, and is determined in the storage module according to formula 1) -3) in step 330. The sector to be accessed is then accessed in step 340 for the determined sector to be accessed.
如果第一存储模块的可用扇区数小于要访问的逻辑地址的十进制数, 则 在步骤 350中确定要访问的存储模块为第二存储模块, 则在步骤 330中根据公 司 4 ) -6 )确定在第二存储模块中要访问的扇区, 然后在步骤 340中对所确定的 要访问的扇区进行存取操作。  If the number of available sectors of the first storage module is less than the decimal number of the logical address to be accessed, then in step 350, it is determined that the storage module to be accessed is the second storage module, and then determined in step 330 according to the company 4) -6) The sector to be accessed in the second memory module is then accessed in step 340 for the determined sector to be accessed.
上述在第一存储模块和第二存储模块中确定要存取操作的地址, 以及在 所确定的地址执行存储操作的具体内容与上述对存储装置 1000和 2000的描述 相同, 因此不再对其赘述。  The foregoing determining the address of the access operation in the first storage module and the second storage module, and performing the storage operation at the determined address is the same as the description of the storage devices 1000 and 2000 described above, and thus will not be described again. .
以上以两种存储模块为例对数据存取方法 3000进行了描述, 但是, 例举 为两种存储模块来说明仅仅是出于描述的方便, 本领域技术人员根据上面的 描述, 无需付出创造性劳动完全可以获得对由两种以上不同存储模块构成的 存储装置进行操作的方法。  The data access method 3000 is described by taking two storage modules as an example. However, the description of the two storage modules is merely for convenience of description, and those skilled in the art do not need to work creatively according to the above description. A method of operating a storage device composed of two or more different storage modules is fully available.
此外, 本领域技术人员还应该理解, 本领域技术人员根据上述公开的内 容, 完全可以对本申请公开的实施方式中的各个技术特征进行各种等同方式 的修改和替换。  In addition, those skilled in the art should understand that various modifications and substitutions of the various features of the embodiments of the present disclosure can be made by those skilled in the art in light of the above disclosure.

Claims

权利要求 Rights request
1. 一种存储装置, 包括: A storage device comprising:
第一存储模块;  First storage module;
第二存储模块, 与所述第一存储模块的媒介种类不同;  a second storage module, different from a medium of the first storage module;
至少一个配置信息单元, 实时地获取并存取与所述第一存储模块和第二 存储模块关联的当前配置存储参数; 以及  At least one configuration information unit acquiring and accessing current configuration storage parameters associated with the first storage module and the second storage module in real time;
处理模块, 从上位机或外部接收存取指令, 并基于接收的存取指令和所 述当前配置存储参数从所述第一存储模块和所述第二存储模块中选择其中一 个, 以在所选择的存储模块中执行数据存取操作。  Processing the module, receiving an access instruction from the host computer or the external, and selecting one of the first storage module and the second storage module based on the received access instruction and the current configuration storage parameter to select The data access operation is performed in the storage module.
2. 如权利要求 1所述的存储装置, 其中, 所述处理模块进一步包括: 命令接收单元, 从上位机或外部接收所述存取指令; The storage device according to claim 1, wherein the processing module further comprises: a command receiving unit, receiving the access instruction from a host computer or externally;
地址确定单元, 从所接收的存取指令获取要执行存取操作的逻辑地址, 并基于所述逻辑地址和所述当前配置存储参数从所述第一存储模块和所述第 二存储模块中选择其中一个, 并进一步在所选择的存储模块中确定要执行存 取操作的地址; 以及  An address determining unit, acquiring a logical address from which the access operation is to be performed from the received access instruction, and selecting from the first storage module and the second storage module based on the logical address and the current configuration storage parameter One of, and further determining an address to perform an access operation in the selected storage module;
存取单元, 在所确定出的地址执行数据存取操作。  The access unit performs a data access operation at the determined address.
3. 如权利要求 2所述的存储装置, 其中, 所述当前配置存储参数包括: 分 别与所述第一存储模块和第二存储模块关联的模块类型、 当前可用块数、 每 块页数、 每页扇区数、 访问时钟周期和坏块个数。 The storage device according to claim 2, wherein the current configuration storage parameter comprises: a module type respectively associated with the first storage module and the second storage module, a current available number of blocks, a number of pages per block, The number of sectors per page, the number of access clock cycles, and the number of bad blocks.
4. 如权利要求 3所述的存储装置, 其中, 所述数据存取单元被配置为根据 与所述第一存储模块或所述第二存储模块关联的所述访问时钟周期在所确定 出的地址执行数据存取操作。 4. The storage device of claim 3, wherein the data access unit is configured to be determined based on the access clock cycle associated with the first storage module or the second storage module The address performs a data access operation.
5.如权利要求 3所述的存储装置, 其中, 所述地址确定单元被配置为根据 以下规则确定在所述第一存储模块或所述第二存储模块中执行存取操作的地 址: The storage device according to claim 3, wherein the address determining unit is configured to determine an address at which the access operation is performed in the first storage module or the second storage module according to the following rule:
根据所接收的存取指令确定出要执行存取操作的逻辑地址, 并判断所述 果大于,' 则进一 ^在所述第一存储模块中确定当前要执行存取操作的地址, 否则, 在所述第二存储模块中确定当前要执行存取操作的地址。 Determining, according to the received access instruction, a logical address to perform an access operation, and determining that the result is greater than, then proceeding to determine an address of the first storage module to perform an access operation, otherwise, An address at which the access operation is currently to be performed is determined in the second storage module.
6. 如权利要求 5所述的存储装置, 其中, 所述地址确定单元进一步被配置 为根据以下公式在所述第一存储模块中确定当前要执行存取操作的地址:The storage device according to claim 5, wherein the address determining unit is further configured to determine, in the first storage module, an address at which an access operation is currently to be performed, according to the following formula:
BlockAccessl =Int ( NA1/(P1*S1) ) +offset BlockAccessl =Int ( NA1/(P1*S1) ) +offset
PageAccess 1 =Int ( ( Mod ( NA1 /(P1*S1) ) /PI )  PageAccess 1 =Int ( ( Mod ( NA1 /(P1*S1) ) /PI )
SecAccessl=Mod ( ( Mod ( NA1 /(P1 *S1) ) /PI )  SecAccessl=Mod ( ( Mod ( NA1 /(P1 *S1) ) /PI )
其中, BlockAccessl表示在所述第一存储模块中要执行存取操作的块, PageAccessl表示在块 BlockAccessl中要执行存取操作的页, SecAccessel表示 在页 PageAccessl中要执行存取操作的扇区, offset表示块偏移量,, 所述偏移 量为所述第一存储模块中的坏块个数, NA1表示在所述第一存储模块中要执 行存取操作的逻辑地址的十进制数, P 1表示所述第一存储模块中每块的页数, S1表示表示所述第一存储模块的每页的扇区数, Int为取整运算函数,以及 Mod 为取余运算函数。  Wherein, BlockAccess1 represents a block in which an access operation is to be performed in the first storage module, PageAccessl represents a page in which an access operation is to be performed in the block BlockAccess1, and SecAccessel represents a sector in which an access operation is to be performed in the page PageAccess1, offset Representing a block offset, wherein the offset is a number of bad blocks in the first storage module, and NA1 represents a decimal number of a logical address in the first storage module to perform an access operation, P 1 Representing the number of pages per block in the first storage module, S1 represents the number of sectors representing each page of the first storage module, Int is a rounding operation function, and Mod is a remainder operation function.
7. 如权利要求 5所述的存储装置, 其中, 所述地址确定单元进一步被配置 为根据以下公式在所述第二存储模块中确定要执行存取操作的地址: The storage device according to claim 5, wherein the address determining unit is further configured to determine an address of the second storage module to perform an access operation according to the following formula:
BlockAccess2=Int ( ( NA2-Conl ) /(P2*S2) ) +offset  BlockAccess2=Int ( ( NA2-Conl ) /(P2*S2) ) +offset
PageAccess2=Int ( ( Mod ( ( NA2-Conl ) /(P2*S2) ) /P2 )  PageAccess2=Int ( ( Mod ( ( NA2-Conl ) /(P2*S2) ) /P2 )
SecAccess2=Mod ( ( Mod ( ( NA2-Conl ) /(P2*S2) ) /P2 )  SecAccess2=Mod ( ( Mod ( ( NA2-Conl ) /(P2*S2) ) /P2 )
其中, BlockAccess 2表示在所述第二存储模块中要执行存取操作的块, PageAccess2表示在块 BlockAccess2中要执行存取操作的页, SecAccessel表示 在页 PageAccess2中要执行存取操作的扇区, offset表示块偏移量, 所述偏移 量为所述第二存储模块中的坏块个数, Conl表示所述第一存储模块的总扇区, NA2表示要执行存取操作的逻辑地址的十进制数, P2表示在所述第二存储模 块中每块可用的页数, S2表示在第二存储模块中每页的扇区数, Int为取整运 算函数, 以及 Mod为取余运算函数。  Wherein, BlockAccess 2 represents a block in which an access operation is to be performed in the second storage module, PageAccess2 represents a page in which an access operation is to be performed in the block BlockAccess2, and SecAccessel represents a sector in which an access operation is to be performed in the page PageAccess2, Offset represents a block offset, the offset is the number of bad blocks in the second storage module, Conl represents the total sector of the first storage module, and NA2 represents the logical address of the access operation to be performed. The decimal number, P2 represents the number of pages available for each block in the second storage module, S2 represents the number of sectors per page in the second storage module, Int is a rounding operation function, and Mod is a remainder operation function.
8. 如前述任一项权利要求所述的存储装置, 其中, 所述第一存储模块包 括 SLC模块, 所述第二存储模块包括 MLC模块。 The storage device according to any of the preceding claims, wherein the first storage module comprises an SLC module, and the second storage module comprises an MLC module.
9. 一种在存储装置中进行数据存取的方法, 所述存储装置至少包括第一 存储模块和第二存储模块, 所述方法包括: A method for performing data access in a storage device, the storage device comprising at least a first storage module and a second storage module, the method comprising:
从外部输入的存取指令中获取所需存取的逻辑地址;  Obtaining the logical address of the required access from the externally input access instruction;
获取所述第一存储模块的当前可用扇区数;  Obtaining a current number of available sectors of the first storage module;
将表示所述逻辑地址的十进制数和所述所述第一存储模块的可用扇区数 进行比较; a decimal number representing the logical address and the number of available sectors of the first storage module Compare;
如果所述第一存储模块的可用扇区数大于所述逻辑地址的十进制数, 则 在所述第一存储模块中确定要执行存取操作的地址, 否则,  If the number of available sectors of the first storage module is greater than a decimal number of the logical address, determining an address of the first storage module to perform an access operation, otherwise,
在所述第二存储模块中确定要执行存取操作的地址。  An address at which the access operation is to be performed is determined in the second storage module.
10. 如权利要求 9所述的方法, 其中, 根据以下规则在所述第一存储模块 中确定要执行存取操作的地址: 10. The method according to claim 9, wherein the address at which the access operation is to be performed is determined in the first storage module according to the following rule:
BlockAccessl =Int ( NA1/(P1*S1) ) +offset  BlockAccessl =Int ( NA1/(P1*S1) ) +offset
PageAccess 1 =Int ( ( Mod ( NA1 /(P1*S1) ) /PI )  PageAccess 1 =Int ( ( Mod ( NA1 /(P1*S1) ) /PI )
SecAccessl=Mod ( ( Mod ( NA1 /(P1*S1) ) /PI )  SecAccessl=Mod ( ( Mod ( NA1 /(P1*S1) ) /PI )
其中, BlockAccessl表示在所述第一存储模块中要执行存取操作的块, PageAccessl表示在块 BlockAccessl中要执行存取操作的页, SecAccessel表示 在页 PageAccessl中要执行存取操作的扇区, offset表示块偏移量, 所述偏移 量为所述第一存储模块中的坏块个数, NA1表示在所述第一存储模块要执行 存取操作的逻辑地址的十进制数, P 1表示所述第一存储模块中每块的页数, S1表示表示所述第一存储模块中每页的扇区数, Int为取整运算函数; Mod为 取余运算函数。  Wherein, BlockAccess1 represents a block in which an access operation is to be performed in the first storage module, PageAccessl represents a page in which an access operation is to be performed in the block BlockAccess1, and SecAccessel represents a sector in which an access operation is to be performed in the page PageAccess1, offset Representing a block offset, the offset is a number of bad blocks in the first storage module, NA1 represents a decimal number of a logical address at which the first storage module is to perform an access operation, and P1 represents The number of pages of each block in the first storage module, S1 represents the number of sectors per page in the first storage module, Int is a rounding operation function; Mod is a remainder operation function.
11. 如权利要求 9所述的方法, 其中, 根据以下规则在所述第二存储模块 中确定要执行存取操作的地址: The method according to claim 9, wherein the address at which the access operation is to be performed is determined in the second storage module according to the following rule:
BlockAccess2=Int ( ( NA2-Conl ) /(P2*S2) ) +offset 式 4 ) BlockAccess2=Int ( ( NA2-Conl ) /(P2*S2) ) +offset 4 )
PageAccess2=Int ( ( Mod ( ( NA2-Conl ) /(P2*S2) ) /P2 ) 式 5 ) PageAccess2=Int ( ( Mod ( ( NA2-Conl ) /(P2*S2) ) /P2 ) ) 5 )
SecAccess2=Mod ( ( Mod ( ( NA2-Conl ) /(P2*S2) ) /P2 ) 式 6 ) 其中, BlockAccess 2表示在所述第二存储模块中要执行存取操作的块, PageAccess2表示在块 BlockAccess2中要执行存取操作的页, SecAccessel表示 在页 PageAccess2中要执行存取操作的扇区, offset表示块偏移量, 所述偏移 量为所述第二存储模块中的坏块个数, Conl表示所述第一存储模块的总扇区, NA2表示要执行存取操作的逻辑地址的十进制数, P2表示所述第二存储模块 中每块可用的页数, S2表示第二存储模块中每页的扇区数, Int为取整运算函 数, Mod为取余运算函数。  SecAccess2=Mod ( ( Mod ( NA NA NA NA NA NA NA NA NA NA In the block Access2, a page to perform an access operation, SecAccessel indicates a sector in which an access operation is to be performed in the page PageAccess2, offset indicates a block offset, and the offset is a number of bad blocks in the second storage module. Conl represents the total sector of the first storage module, NA2 represents the decimal number of the logical address to perform the access operation, P2 represents the number of pages available for each block in the second storage module, and S2 represents the second storage module. The number of sectors per page, Int is the rounding operation function, and Mod is the remainder operation function.
12. 如权利要求 9-12中任一项所述的方法, 其中, 所述第一存储模块包括 SLC模块, 所述第二存储模块包括 MLC模块。 The method according to any one of claims 9 to 12, wherein the first storage module comprises an SLC module, and the second storage module comprises an MLC module.
13. 一种存储装置, 包括: 至少三个存储模块, 所述至少三个存储模块中至少包括两个媒介类型不 同的存储模块; 13. A storage device comprising: At least three storage modules, at least two storage modules having different media types are included in the at least three storage modules;
至少一个配置信息单元, 实时地获取并存储与所述至少三个存储模块关 联的当前配置存储参数; 以及  At least one configuration information unit that acquires and stores current configuration storage parameters associated with the at least three storage modules in real time;
处理模块, 从上位机或外部接收存取指令, 并基于接收的存取指令和所 述当前配置存储参数从所述至少三个存储模块中选择一个存储模块, 并在所 选择的存储模块中进一步确定出要执行存取操作的地址, 从而在所确定的地 址执行数据存取操作。  Processing the module, receiving an access instruction from the host computer or the external, and selecting a storage module from the at least three storage modules based on the received access instruction and the current configuration storage parameter, and further in the selected storage module An address at which an access operation is to be performed is determined, thereby performing a data access operation at the determined address.
14. 如权利要求 13所述的存储装置, 其中, 所述处理模块进一步包括: 命令接收单元, 从上位机或外部接收所述存取指令; The storage device according to claim 13, wherein the processing module further comprises: a command receiving unit, receiving the access instruction from a host computer or externally;
地址确定单元, 从所接收的存取指令获取要执行存取操作的逻辑地址, 并基于所述逻辑地址和所述当前配置存储参数从所述至少三个存储模块中选 择一个存储模块, 并在所选择的存储模块中进一步确定出要执行存取操作的 地址; 以及  An address determining unit, acquiring a logical address from which the access operation is to be performed from the received access instruction, and selecting a storage module from the at least three storage modules based on the logical address and the current configuration storage parameter, and Further determining the address of the selected storage module to perform the access operation;
存取单元, 根据所确定出地址执行数据存取操作。  The access unit performs a data access operation according to the determined address.
15. 如权利要求 14所述的存储装置, 其中, 所述当前配置存储参数包括: 分别与在所述至少三个存储模块中每一个存储模块中关联的模块类型、 当前 可用块数、 每块页数、 每页扇区数、 访问时钟周期和坏块个数。 The storage device according to claim 14, wherein the current configuration storage parameter comprises: a module type associated with each of the at least three storage modules, a current available number of blocks, and each block Number of pages, number of sectors per page, access clock period, and number of bad blocks.
16. 如权利要求 15所述的存储装置, 其中, 所述数据存取单元进一步被配 置为根据与所选择出的一个存储模块关联的访问时钟周期在所确定出的地址 执行数据存取操作。 16. The memory device of claim 15, wherein the data access unit is further configured to perform a data access operation at the determined address in accordance with an access clock cycle associated with the selected one of the memory modules.
17.如权利要求 14所述的存储装置, 其中, 所述至少三个存储模块至少包 括第一存储模块和第二存储模块, 所述第一存储模块和所述第二存储模块的 媒介类型不同, The storage device according to claim 14, wherein the at least three storage modules comprise at least a first storage module and a second storage module, and the media types of the first storage module and the second storage module are different ,
所述地址确定单元进一步被配置为根据以下规则选择是在所述第一存储 模块还是在所述第二存储模块中确定要执行存取操作的地址:  The address determining unit is further configured to determine whether an address to perform an access operation is determined in the first storage module or the second storage module according to the following rule:
根据所接收的存取指令确定出要执行存取操作的逻辑地址, 并判断所述 第一存储模块的可用扇区数是否大于所述逻辑地址的十进制数, 如果是, 则 在所述第一存储模块中确定当前要执行存取操作的地址, 否则, 在所述第二 存储模块中确定当前要执行存取操作的地址。 Determining, according to the received access instruction, a logical address to perform an access operation, and determining whether the number of available sectors of the first storage module is greater than a decimal number of the logical address, and if so, at the first The address of the current access operation is determined in the storage module, otherwise, the address at which the access operation is currently to be performed is determined in the second storage module.
18. 如权利要求 17所述的存储装置, 其中, 所述地址确定单元被配置为根 据以下公式确定在所述第一存储模块中确定当前要执行存取操作的地址:18. The storage device according to claim 17, wherein the address determining unit is configured to determine, in the first storage module, an address determining that an access operation is currently to be performed, according to the following formula:
BlockAccessl =Int ( NA1/(P1*S1) ) +offset BlockAccessl =Int ( NA1/(P1*S1) ) +offset
PageAccess 1 =Int ( ( Mod ( NA1 /(P1*S1) ) /PI )  PageAccess 1 =Int ( ( Mod ( NA1 /(P1*S1) ) /PI )
SecAccessl=Mod ( ( Mod ( NA1 /(P1*S1) ) /PI )  SecAccessl=Mod ( ( Mod ( NA1 /(P1*S1) ) /PI )
其中, BlockAccessl表示在所述第一存储模块中要执行存取操作的块, PageAccessl表示在块 BlockAccessl中要执行存取操作的页, SecAccessel表示 在页 PageAccessl中要执行存取操作的扇区, offset表示块偏移量, 所述偏移 量为所述第一存储模块中的坏块个数, NA1表示在所述第一存储模块要执行 存取操作的逻辑地址的十进制数, P 1表示所述第一存储模块中每块的页数, S1表示表示所述第一存储模块中每页的扇区数, Int为取整运算函数; Mod为 取余运算函数。  Wherein, BlockAccess1 represents a block in which an access operation is to be performed in the first storage module, PageAccessl represents a page in which an access operation is to be performed in the block BlockAccess1, and SecAccessel represents a sector in which an access operation is to be performed in the page PageAccess1, offset Representing a block offset, the offset is a number of bad blocks in the first storage module, NA1 represents a decimal number of a logical address at which the first storage module is to perform an access operation, and P1 represents The number of pages of each block in the first storage module, S1 represents the number of sectors per page in the first storage module, Int is a rounding operation function; Mod is a remainder operation function.
19. 如权利要求 17所述的存储装置, 其中,根据以下公式确定在所述第二 存储模块中确定当前要执行存取操作的地址: 19. The storage device according to claim 17, wherein the determining, in the second storage module, an address at which the access operation is currently to be performed is determined according to the following formula:
BlockAccess2=Int ( ( NA2-Conl ) /(P2*S2) ) +offset  BlockAccess2=Int ( ( NA2-Conl ) /(P2*S2) ) +offset
PageAccess2=Int ( ( Mod ( ( NA2-Conl ) /(P2*S2) ) /P2 )  PageAccess2=Int ( ( Mod ( ( NA2-Conl ) /(P2*S2) ) /P2 )
SecAccess2=Mod ( ( Mod ( ( NA2-Conl ) /(P2*S2) ) /P2 )  SecAccess2=Mod ( ( Mod ( ( NA2-Conl ) /(P2*S2) ) /P2 )
其中, BlockAccess 2表示在所述第二存储模块中要执行存取操作的块, PageAccess2表示在块 BlockAccess2中要执行存取操作的页, SecAccessel表示 在页 PageAccess2中要执行存取操作的扇区, offset表示块偏移量, 所述偏移 量为所述第二存储模块中的坏块个数, Conl表示所述第一存储模块的总扇区, NA2表示要执行存取操作的逻辑地址的十进制数, P2表示所述第二存储模块 中每块可用的页数, S2表示第二存储模块中每页的扇区数, Int为取整运算函 数, Mod为取余运算函数。  Wherein, BlockAccess 2 represents a block in which an access operation is to be performed in the second storage module, PageAccess2 represents a page in which an access operation is to be performed in the block BlockAccess2, and SecAccessel represents a sector in which an access operation is to be performed in the page PageAccess2, Offset represents a block offset, the offset is the number of bad blocks in the second storage module, Conl represents the total sector of the first storage module, and NA2 represents the logical address of the access operation to be performed. The decimal number, P2 represents the number of pages available for each block in the second storage module, S2 represents the number of sectors per page in the second storage module, Int is a rounding operation function, and Mod is a remainder operation function.
20. 如前述权利要求 17-19中任一项所述的存储装置, 其中, 所述第一存 储模块包括 SLC模块, 所述第二存储模块包括 MLC模块。 The storage device according to any one of the preceding claims, wherein the first storage module comprises an SLC module, and the second storage module comprises an MLC module.
PCT/CN2009/071102 2008-03-31 2009-03-31 Storage device and storage method WO2009121291A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CNA2008100880839A CN101552028A (en) 2008-03-31 2008-03-31 Storage device for combining and using storage equipment and method for realizing storage
CN200810088083.9 2008-03-31

Publications (1)

Publication Number Publication Date
WO2009121291A1 true WO2009121291A1 (en) 2009-10-08

Family

ID=41134843

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2009/071102 WO2009121291A1 (en) 2008-03-31 2009-03-31 Storage device and storage method

Country Status (2)

Country Link
CN (1) CN101552028A (en)
WO (1) WO2009121291A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101833511B (en) * 2010-03-29 2012-06-06 瑞斯康达科技发展股份有限公司 Data management method, device and system
CN103176927B (en) * 2011-10-24 2016-03-02 联阳半导体股份有限公司 The device of sequence address bit transitions is carried out between double bus

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1704889A (en) * 2004-05-31 2005-12-07 深圳市朗科科技有限公司 Data distribution method for improving data access speed
EP1739683A1 (en) * 1999-04-01 2007-01-03 Lexar Media, Inc. Space management for managing high capacity nonvolatile memory
WO2007037757A1 (en) * 2005-09-29 2007-04-05 Trek 2000 International Ltd Portable data storage using slc and mlc flash memory
US20080059692A1 (en) * 2006-09-04 2008-03-06 Sandisk Il Ltd. Device for prioritized erasure of flash memory

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101187849A (en) * 2003-07-07 2008-05-28 日立超大规模集成电路系统株式会社 Storage device and storage system
KR100809320B1 (en) * 2006-09-27 2008-03-05 삼성전자주식회사 Apparatus and method for managing mapping information of non-volatile memory supporting separated cell type
KR100771521B1 (en) * 2006-10-30 2007-10-30 삼성전자주식회사 Flash memory device having a multi-leveled cell and programming method thereof
KR100783988B1 (en) * 2006-10-31 2007-12-07 주식회사 하이닉스반도체 Flash memory device and application method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1739683A1 (en) * 1999-04-01 2007-01-03 Lexar Media, Inc. Space management for managing high capacity nonvolatile memory
CN1704889A (en) * 2004-05-31 2005-12-07 深圳市朗科科技有限公司 Data distribution method for improving data access speed
WO2007037757A1 (en) * 2005-09-29 2007-04-05 Trek 2000 International Ltd Portable data storage using slc and mlc flash memory
US20080059692A1 (en) * 2006-09-04 2008-03-06 Sandisk Il Ltd. Device for prioritized erasure of flash memory

Also Published As

Publication number Publication date
CN101552028A (en) 2009-10-07

Similar Documents

Publication Publication Date Title
JP5923844B2 (en) Adaptive mapping of logical addresses to memory devices in solid state drives
JP5073667B2 (en) Portable data storage device using SLC and MLC flash memory
US8880777B2 (en) Complex memory device and I/O processing method using the same
US7864572B2 (en) Flash memory storage apparatus, flash memory controller, and switching method thereof
US10324651B2 (en) Data transmission method, and storage controller and list management circuit using the same
US20080195833A1 (en) Systems, methods and computer program products for operating a data processing system in which a file system's unit of memory allocation is coordinated with a storage system's read/write operation unit
US9671961B2 (en) Memory controller, storage apparatus, information processing system, and control method for the same
US9189383B2 (en) Nonvolatile memory system and data processing method
US8296466B2 (en) System, controller, and method thereof for transmitting data stream
US8281072B2 (en) Data processing system, controller, and method thereof for searching for specific memory area
US9594675B2 (en) Virtualization of chip enables
TW201732597A (en) Data storage device and operating method thereof
US20100318760A1 (en) Memory controller, nonvolatile storage device, and nonvolatile storage system
TWI438778B (en) Method for suppressing errors, and associated memory device and controller thereof
US20180024738A1 (en) Data reading method, data writing method and storage controller using the same
JP2010146326A (en) Storage device, method of controlling same, and electronic device using storage device
KR20180015565A (en) Memory module and operating method thereof
US20150193159A1 (en) Storage device including nonvolatile semiconductor memory and managing method thereof
EP2499572A2 (en) Flash memory file system
JP2021522567A (en) Equipment and method for counter update operation
JP2018160189A (en) Memory system
US20140219041A1 (en) Storage device and data processing method thereof
US9001585B1 (en) Data writing method, memory control circuit unit and memory storage apparatus
KR102330394B1 (en) Method for operating controller and method for operating device including the same
WO2009121291A1 (en) Storage device and storage method

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09727700

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 09727700

Country of ref document: EP

Kind code of ref document: A1