WO2010051717A1 - 一种用来管理一记忆装置的方法以及其相关的记忆装置 - Google Patents

一种用来管理一记忆装置的方法以及其相关的记忆装置 Download PDF

Info

Publication number
WO2010051717A1
WO2010051717A1 PCT/CN2009/073564 CN2009073564W WO2010051717A1 WO 2010051717 A1 WO2010051717 A1 WO 2010051717A1 CN 2009073564 W CN2009073564 W CN 2009073564W WO 2010051717 A1 WO2010051717 A1 WO 2010051717A1
Authority
WO
WIPO (PCT)
Prior art keywords
page address
link table
page
address link
block
Prior art date
Application number
PCT/CN2009/073564
Other languages
English (en)
French (fr)
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 WO2010051717A1 publication Critical patent/WO2010051717A1/zh

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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7207Details relating to flash memory management management of metadata or control data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7209Validity control, e.g. using flags, time stamps or sequence numbers

Definitions

  • the present invention relates to the field of control technology for flash memory in data communications, and more particularly to a method for managing a memory device and its associated memory device. Background technique
  • the master device When a master device accesses a memory device such as a Solid State Drive (SSD), the master device typically sends an access command and at least one corresponding logical address to the memory device.
  • a controller of the memory device receives the logical address and converts the logical address to a physical address by utilizing a logical entity address link table.
  • the controller accesses at least one physical memory component of the memory device by utilizing the physical address.
  • the memory component can be implemented with one or more flash chips (which can be referred to as flash chips for simplicity).
  • the logical entity address link table can be established according to a memory unit in the memory component.
  • the logical entity address link table can be established according to a block or page.
  • the logical entity address link table may be referred to as a logical entity block address link table.
  • the logical entity address link table may be referred to as a logical entity page address link table.
  • a logical entity page address link table may be referred to as a global page address link table, which contains a link relationship with respect to pages of a plurality of blocks (or all blocks) in the memory device.
  • the memory component has X physical blocks, and each physical block has Y physical pages.
  • the logical entity address link table is established according to the block, the related logical entity block address link table is established by reading a logical block stored in one page of each physical block. The address is implemented as well as the relationship between the physical block and the associated logical block.
  • X pages respectively corresponding to the X physical blocks must be read, wherein the required time is assumed to be X seconds.
  • the related global page address link table is established by reading a logical page address stored in each physical page of all the physical blocks. And implementing the relationship between the physical page and the associated logical page.
  • the time required to establish the global page address link table is 1024 times the time required to establish the logical entity block address link table, that is, 1024 ⁇ seconds; since the processing speed is too slow This is an unacceptable processing time. That is, when the global page address link table is implemented in this manner, the overall performance of accessing the memory device is dragged. Therefore, a novel approach is needed to efficiently establish the logical entity address link table and related methods are needed to manage memory devices that operate through the novel method. Summary of the invention
  • the technical problem to be solved by the present invention is to provide a method for managing a memory device and an associated memory device thereof for a spare area of the memory device in view of the above-mentioned drawbacks of the prior art.
  • One of the technical solutions adopted by the present invention to solve the technical problem is to construct a method for managing a memory device, the memory device comprising at least one non-volatile (NV) memory component, each non-lost
  • the memory module includes a plurality of blocks, and the method includes: providing at least one Local Page Address Linking Table to at least one block of the memory device, wherein the local page address link
  • the table includes a link relationship between a physical page address and a logical page address of a plurality of pages; and a global page address link table of the memory device is established according to the partial page address link table
  • step of providing at least one partial page address link table to at least one block of the memory device further comprises: establishing, for the local page address link table during a write operation of the memory device A temporary partial page address link table.
  • the step of providing at least one partial page address link table to at least one block of the memory device further comprises: temporarily storing the temporary memory in a memory of the memory device
  • the local page address link table is updated, and the temporary local page address link table is updated when any link relationship between a physical page address and a logical page address of a page in the block is changed.
  • step of providing at least one partial page address link table to at least one block of the memory device further comprises: copying the temporary partial page address link table to establish the partial page address link table .
  • the above method of the present invention further comprises: writing the partial page address link table to the last page of the block.
  • step of providing at least one partial page address link table to at least one block of the memory device further comprises: providing a plurality of partial page address link tables to the plurality of regions of the memory device respectively
  • step of establishing the global page address link table of the memory device according to the local page address link table further includes: establishing the global page address link table according to the partial page address link tables.
  • step of establishing the global page address link table of the memory device according to the partial page address link table further comprises: reading one of the partial page address link tables to update The global page address link table.
  • step of establishing the global page address link table of the memory device according to the partial page address link table further comprises: reading each of the partial page address link tables to establish The global page address link table.
  • the step of establishing the global page address link table of the memory device according to the partial page address link table further comprises: reading a first page from the at least one partial page address link table a first link relationship between a first physical page address and a first logical page address; writing the first link relationship to the global page address link table; from the at least one partial page address link Table reads the first a second link relationship between the other physical page address of the page and the first logical page address; and writing the second link relationship to the global page address link table to update the global page address link table .
  • the at least one partial page address link table comprises a plurality of partial page address link tables; and the first link relationship is read from a first of the partial page address link tables The partial page address link table, and the second link relationship is read from a second partial page address link table of the partial page address link tables.
  • the second technical solution adopted by the present invention to solve the technical problem is: constructing a memory device, comprising: at least one non-lost memory component, each non-lost memory component comprising a plurality of blocks; and a processing unit, Used to manage the memory device according to a program code embedded in or received from the processing unit, wherein the processing unit is configured to provide at least one partial page address link table to at least one region of the memory device a block, and the local page address link table includes a link relationship between a physical page address and a logical page address of the plurality of pages; wherein the processing unit is configured to establish a global device of the memory device according to the local page address link table Page address link table.
  • the processing unit establishes a temporary partial page address link table for the partial page address link table during the write operation of the memory device.
  • the processing unit establishes the partial page address link table when at least one data page in the block has been written.
  • the processing unit establishes the partial page address link table when all data pages in the block have been written.
  • the processing unit temporarily stores the temporary partial page address link table in a lost memory of the memory device before the data page in the block is completely written;
  • the processing unit updates the temporary partial page address link table when any of the link relationships between a physical page address and a logical page address of a page in the block changes.
  • the above memory device of the present invention wherein before the data page in the block is completely written, The temporary partial page address link table is temporarily stored in the lost memory and updated.
  • the processing unit copies the temporary partial page address link table to establish the partial page address link table.
  • the rank of a field of the temporary partial page address link table represents a physical page address, and the content of the field represents an associated logical page address.
  • the order of a field of the partial page address link table represents a physical page address, and the content of the field represents an associated logical page address.
  • the local page address link table is located in the block.
  • the processing unit writes the partial page address link table to the last page of the block.
  • the processing unit respectively provides a plurality of partial page address link tables to the plurality of blocks of the memory device; and the processing unit establishes the global page according to the partial page address link tables. Address link table.
  • the above memory device of the present invention wherein the processing unit reads one of the partial page address link tables to update the global page address link table.
  • the above memory device of the present invention wherein the processing unit reads each of the partial page address link tables to establish the global page address link table.
  • the processing unit reads a first chain between a first physical page address and a first logical page address of a first page from the at least one partial page address link table. a relationship, writing the first link relationship to the global page address link table, reading another physical page address of the first page and the first logical page address from the at least one partial page address link table A second link relationship between the two, and writing the second link relationship to the global page address link table to update the global page address link table.
  • the at least one partial page address link table includes a plurality of partial page address link tables; and the first link relationship is read from the partial page address link table A partial page address link table, and the second link relationship is read from a second partial page address link table of the partial page address link tables.
  • the above memory device of the present invention wherein a field of the global page address link table is aligned
  • the bit represents a logical page address
  • the content of the field represents an associated physical page address.
  • the range of logical page addresses in the partial page address link table is larger than the number of pages in the block.
  • the third technical solution adopted by the present invention to solve the technical problem is to construct a method for managing a memory device, the memory device comprising at least one non-lost memory component, each non-lost memory component comprising multiple regions Block, the method includes: receiving a first access instruction from a host device; analyzing the first access command to obtain a first master device address belonging to a first logic block; a master device address link (Link) to a physical block; receiving a second access command from the master device; analyzing the second access command to obtain a second master device address belonging to a second logical block, Wherein the second logical block is different from the first logical block; and the second primary device address is linked to the physical block.
  • a master device address link Link
  • the above method of the present invention further includes: analyzing the first access instruction to obtain a first data; analyzing the second access instruction to obtain a second data; writing the first data to the entity a block; and writing the second data to the physical block.
  • the first master device address is linked to at least a first page of the physical block
  • the second master device address is linked to at least a second page of the physical block
  • the fourth technical solution adopted by the present invention to solve the technical problem is to construct a method for managing a memory device, the memory device comprising at least one non-lost memory component, each non-lost memory component comprising multiple regions Block, the method includes: receiving a first access instruction from a master device; analyzing the first access command to obtain a first master device address belonging to a logical block; and linking the first master device address At least one page of a first physical block; receiving a second access command from the master device; analyzing the second access command to obtain a second master device address belonging to the logical block; and The two master device addresses are linked to at least one page of a second physical block, wherein the second physical block is different from the first physical block.
  • the above method of the present invention wherein the first master device address and the second master device address inherently belong to the logical block.
  • the above method of the present invention further includes: analyzing the first access instruction to obtain a first data; analyzing the second access instruction to obtain a second data; writing the first data to the first entity a block; and writing the second data to the second physical block.
  • first primary device address is linked to at least one first page of the first physical block
  • second primary device address is linked to at least one of the second physical block The second page.
  • the fifth technical solution adopted by the present invention to solve the technical problem is to construct a method for managing a memory device, the memory device comprising at least one non-lost memory component, each non-lost memory component comprising multiple regions Block, the method includes: establishing at least a partial page address link table, the page address link relationship between the plurality of physical page addresses and the at least one logical page address, wherein the at least one partial page address link table includes a first partial page address link table and a second partial page address link table, the first partial page address link table having a first page address link relationship of the plurality of first physical pages, and the second The partial page address link table includes a second page address link relationship of the plurality of second entity pages, and the second entity pages are different from the first entity pages; and the at least one partial page address link table is established according to the at least one partial page address link table a global page address link table; and accessing the memory device according to the global page address link table.
  • the first physical page belongs to a data page of a physical block; and after the data pages are all written, the first partial page address link table is written to the physical block At least one page.
  • first physical pages belong to a first part of a physical block
  • second physical pages belong to a second part of the physical block, wherein the first part is different from the first part the second part.
  • the step of establishing the global page address link table according to the partial page address link table further comprises: first, according to a logical page and a first record of the first partial page address link table a first page link relationship between the physical page addresses establishes the global page address link table; and a page between the logical page and a second physical page address recorded in the first partial page address link table Second
  • the page link relationship updates the global page address link table; wherein the first page address link relationship is established before the second page address link relationship is established, and the first entity page address is different from the first page address relationship Two physical page address.
  • step of establishing the global page address link table according to the partial page address link table further comprises: establishing the global page address link table according to the first partial page address link table; Updating the global page address link table according to the second partial page address link table; wherein the first partial page address link table is established before the second partial page address link table is established.
  • the global page address link table contains a page address link relationship of a physical block in which the data page is completely written.
  • the method and apparatus of the present invention have the following beneficial effects:
  • the method and apparatus of the present invention can substantially save time in establishing a logical entity address link table, such as the time to establish a global page address link table.
  • the present invention provides better performance than conventional techniques.
  • the method and apparatus of the present invention can record usage information during access to the pages, and thus can efficiently manage the use of all of the blocks based on the usage information.
  • the arrangement of the spare area and the data area can be optimized.
  • FIG. 1 is a schematic view of a memory device according to a first embodiment of the present invention
  • FIG. 2A is a partial page address link table in a block of one of the non-lost memory components shown in FIG. 1, wherein the non-lost memory component is a flash chip in this embodiment;
  • FIG. 2B compares a one-dimensional array example and a two-dimensional array example of the partial page address link table shown in FIG. 2A;
  • 3A through 3F are respectively a few exemplary versions of a global page address link table for the memory device shown in Fig. 1 in an embodiment of the present invention
  • FIG. 4 is a table address list of a local page in a block of the flash chip shown in FIG. 2A in an embodiment of the present invention
  • 5A to 5B are respectively a global view of the memory device shown in FIG. 1 in the embodiment shown in FIG. Several sample versions of the page address link table;
  • FIG. 6 is a content arrangement of one of the non-lost memory components shown in FIG. 1 in an embodiment of the present invention, wherein the non-lost memory component is a flash chip in this embodiment;
  • 7A to 7D are physical addresses in the non-lost memory component shown in FIG. 1 according to an embodiment of the present invention, wherein the non-lost memory components are multiple flash chips in this embodiment;
  • Figure 8 is a data area and a spare area (Spare Region) for managing the flash chips shown in Figures 7A through 7D;
  • 9A to 9D are several exemplary versions of a global page address link table in the embodiment shown in Figs. 7A to 7D, respectively;
  • 10A to 10F are several exemplary versions of a valid page number table in the embodiment shown in Figs. 7A to 7D, respectively;
  • Figure 11 is a table of effective page positions for the flash chip shown in Figures 7A through 7D in an embodiment of the present invention.
  • FIG. 1 is a schematic diagram of a memory device 100 in accordance with a first embodiment of the present invention.
  • the memory device 100 includes: a processing unit 110, a lost memory (Volatile) memory 120, a transmission interface 130, and a plurality of non-volatile (NV) memory components 140_0, 140-1, ..., and 140_N (for example) : Flash chip), and a bus 150.
  • the transmission interface 130 is coupled to a host device (not shown in FIG. 1)
  • the host device can access the memory device 100 through the transmission interface 130.
  • the primary device can represent a personal computer, such as a A laptop or a desktop computer.
  • Processing unit 110 may manage memory device 100 in accordance with program code (not shown in FIG. 1) embedded in or received from processing unit 110.
  • the program code can be a hardware code embedded in processing unit 110, especially a ROM code.
  • the program code can be a firmware code received from the processing unit 110.
  • processing unit 110 is operative to control lossy memory 120, transport interface 130, non-missing memory components 140_0, 140_1, ..., and 140_N, and bus 150.
  • the processing unit 110 of this embodiment may be an Advanced Reduced Instruction Set Computer (Advanced RISC Machine, ARM) processor or an Argonaut RISC Core (ARC) processor. . This is for illustrative purposes only and is not a limitation of the invention.
  • Processing unit 110 may be other types of processors in accordance with various variations of this embodiment.
  • the lost memory 120 is used to store a Global Page Address Linking Table, data accessed by the host device (not shown), and other devices used to access the memory device 100. Information is required.
  • the lost memory 120 in this embodiment may be a dynamic random access memory (DRAM) or a static random access memory (SRAM). This is for illustrative purposes only and is not intended to be an invention. limits. According to various variations of this embodiment, the lost memory 120 can be other types of lost memory.
  • the transmission interface 130 shown in FIG. 1 is used to transmit data and instructions between the host device and the memory device 100, wherein the transmission interface 130 conforms to a specific communication standard such as Serial Advanced Technology Attachment. , SATA) standard, Parallel Advanced Technology Attachment (PATA) standard, or Universal Serial Bus (USB) standard.
  • a specific communication standard such as Serial Advanced Technology Attachment. , SATA) standard, Parallel Advanced Technology Attachment (PATA) standard, or Universal Serial Bus (USB) standard.
  • the memory device 100 is a solid state drive (SSD) disposed in the host device
  • the specific communication standard can be used to implement some typical communication standards of the internal communication of the host device, such as serial advanced technology. Annex standard or parallel advanced technology attachment standard.
  • the memory device 100 is a solid state drive and is external to the host device, and the particular communication standard can be used to implement some typical communication standards for external communication of the host device, such as the universal serial bus standard.
  • the memory device 100 can be a portable memory device such as a memory.
  • the card, and the particular communication standard may be some typical communication standard used to implement an input/output interface of a memory card, such as the Secure Digital (SD) standard or the Compact Flash (CF) standard.
  • SD Secure Digital
  • CF Compact Flash
  • non-lost memory components 140_0, 140_1, and 140_N are used to store data, and the non-lost memory components 140_0, 140_1, ..., and 140_N may be, but are not limited to, NAND type flash chips.
  • the bus 150 is coupled to the processing unit 110, the lost memory 120, the transport interface 130, and the non-missing memory components 140_0, 140_1, ..., and 140_N, and for communicating therewith.
  • the processing unit 110 can provide at least one local page address linking table to at least one block of the memory device 100 in the memory device 100, where the local page address link The table contains the link relationship between the physical page address and the logical page address of multiple pages.
  • the processing unit 110 establishes the partial page address link table during the write operation of the memory device 100.
  • the processing unit 110 may further establish the global page address link table according to the local page address link table. For example: the processing unit 110 reads a first link relationship between a first physical page address and a first logical page address of a specific page from the at least one partial page address link table, and then the first chain The relationship is recorded into the global page address link table.
  • the processing unit 110 may further read a second link relationship between a second physical page address of the specific page and the first logical page address from the at least one partial page address link table, and then the second chain The relationship is written/recorded into the global page address link table to update the global page address link table.
  • the processing unit 110 provides a plurality of partial page address links to the plurality of blocks of the memory device 100 in the memory device 100, respectively. That is, the at least one partial page address link table described above includes a plurality of partial page address link tables.
  • the processing unit 110 may further establish the global page address link table described above according to the partial page address link tables. More specifically, processing unit 110 can read one of the partial page address link tables to update the global page address link table described above. For example: a first link relationship of a first physical page is read from a first partial page address link table of the partial page address link table, and a second link relationship of a second physical page is read from A second partial page address link table of the partial page address link tables.
  • the implementation details of these partial page address link tables are explained below with reference to Fig. 2A.
  • FIG. 2A is a partial page address link table among a block of non-lost memory component 140_0, wherein for the sake of brevity, non-lost memory component 140_0 is referred to as flash chip 0 in this embodiment.
  • the flash chip 0 includes a plurality of blocks, for example, blocks 0, 1, 2, ... in this embodiment.
  • a block is a wipe out unit. In other words, when data needs to be erased, processing unit 110 simultaneously erases all data stored in the block.
  • a block such as block 0 shown in Fig. 2A, contains a plurality of pages.
  • Block 0 of flash chip 0 contains 128 pages.
  • the pages are divided into two partitions, a data partition for storing data and a table partition for storing a partial page address link table 0.
  • the pages within the data partition of the block may be referred to as the data pages of the block.
  • the number of pages in the data partition and the number of pages in the table partition can be set as needed.
  • Pages 0, 1, and 2 126 are used to store data
  • the remaining pages in the block are used to store the partial page address link table 0.
  • the data partition may contain less than 127 pages
  • the table partition may contain two or more pages.
  • the total number of pages in the block, the number of pages in the data partition, and the number of pages in the table partition can be varied, respectively. Note that a page is a write unit.
  • the processing unit 110 when data needs to be written, the processing unit 110 writes a page equivalent to one page to a page.
  • the non-lost memory components 140_0, 140_1 and 140_N shown in FIG. 1 are referred to as flash chips 0, 1 and N, respectively, wherein the non-lost memory component 140_0,
  • Each block in 140_1 and 140_N may have a partial page address link table.
  • a partial page address link table 0 of block 0 of flash chip 0 is shown in Fig. 2A because the function and operation of each partial page address link table are similar to each other.
  • the time point at which the partial page address link table 0 is established is when all data pages in block 0 have been written, that is, when fully programmed (Fully Programmed).
  • the processing unit 110 temporarily stores a temporary local page address link table 0 in the lost memory 120; when a physical page address in block 0 is Processing unit 110 updates temporary local page address link table 0 when any of the link relationships between logical page addresses changes.
  • the alignment of a field (item) of the temporary/non-transitory partial page address link table represents an entity.
  • the page address, and the content in this field represents an associated logical page address.
  • i P and j P are the example table positions (i P , j P ) of the temporary I non-transient partial page address link table shown in Fig. 2A, respectively.
  • the example table positions (i P , jp) corresponding to the (i P * 4 + j P ) fields represent one
  • the physical page address PPN which can be described as follows:
  • PPN (PBN * DPC + ip * 4 + j P )
  • PBN the physical block number of the physical block in question
  • DPC the parameter DPC is Indicates the number of data pages per block (for example: 127 in this embodiment).
  • the logical page address in the partial page address link table 0 is not more than the number of pages in the block 0 (128 in this embodiment). This is for illustrative purposes only and is not a limitation of the invention. According to a variation of this embodiment, the range of logical page addresses in a partial page address link table such as the partial page address link table 0 may be greater than the number of pages in a block such as block 0.
  • the example table position (0, 0) corresponding to the first field represents the physical page address 0x0000
  • An example table location (0, 1) corresponding to the second field represents the physical page address 0x0001
  • an example table location (0, 2) corresponding to the third field represents the physical page address 0x0002
  • corresponding to the example table location of the fourth field ( 0, 3) represents the physical page address 0x0003
  • the example table position (1, 0) corresponding to the fifth field represents the physical page address 0x0004, as such.
  • the processing unit 110 when the master device transmits an instruction 0 to the processing unit 110 to write data 0 at a logical page address 0x0002, the processing unit 110 writes the data 0 and the logical page address 0x0002 to the flash chip.
  • Spare Byte Region (labeled "SBR" in Figure 2A) As an alternate information.
  • the processing unit 110 writes the logical page address 0x0002 into the first field of the temporary partial page address link table 0 (in the present embodiment or for its example table position (0, 0), that is, the first column, the first The example table location of the row), thereby indicating that the logical page address 0x0002 is mapped to page 0 of block 0 of flash chip 0, and its physical page address is 0x0000.
  • the processing unit 110 when the master device then transmits an instruction 1 to the processing unit 110 to write data 1 at a logical page address 0x0001, the processing unit 110 writes the data 1 and the logical page address 0x0001 to the block 0 of the flash chip 0.
  • Page 1 where data 1 is written to a data byte area of page 1 (labeled "DBR"), and logical page address 0x0001 is written to a spare byte area of page 1 (labeled "SBR”) as Alternate information.
  • DBR data byte area of page 1
  • SBR spare byte area of page 1
  • the processing unit 110 writes the logical page address 0x0001 into the second field of the temporary partial page address link table 0 (in the present embodiment or for its example table position (0, 1), ie, the first column, the second The example table location of the row), thereby indicating that the logical page address 0x0001 is mapped to page 1 of block 0 of flash chip 0, and its physical page address is 0x0001.
  • the processing unit 110 writes the data 2 and the logical page address 0x0002 to the page 2 of the block 0, wherein the data 2 is A data byte area of page 2 (labeled "DBR") is written, and a logical page address of 0x0002 is written to a spare byte area of page 2 (labeled "SBR”) as alternate information.
  • DBR data byte area of page 2
  • SBR spare byte area of page 2
  • the processing unit 110 writes the logical page address 0x0002 to the third field of the temporary partial page address link table 0 (in the present embodiment or for its example table position (0, 2), ie, the first column, the third The example table location of the row), in order to update the link/mapping relationship:
  • the logical page address 0x0002 is mapped to page 2 of block 0 of flash chip 0, and its physical page address is 0x0002.
  • the operation of subsequent pages is not repeated here.
  • the processing unit 110 writes the partial page address link table 0 to the table partition of the block 0 in the flash chip 0 (in this embodiment, the page 127 remaining in the block 0).
  • the processing unit 110 can target a portion of the data in a block. The page is written to a partial page address link table, not to all material pages in the block.
  • the processing unit 110 may write a first partial page address link table for the first partial data page, wherein the first partial page The address link table is located after the first partial data page.
  • processing unit 110 can write a second partial page address link table for the second portion of the data page.
  • the second partial page address link table is located after the second partial data page.
  • the second partial page address link table is located at the end of the specific block (for example: the last page).
  • the second partial page address link table is located at the beginning of the next block of the particular block (e.g., the first page of the block).
  • the second partial page address link table is located on another page (or some other page) of the next block of the particular block.
  • 3A through 3F are respectively a few exemplary versions of a global page address link table for the memory device 100 in accordance with an embodiment of the present invention.
  • the processing unit 110 When the processing unit 110 establishes the global page address link table of the memory device 100, the processing unit 110 reads each of the partial page address link tables respectively corresponding to the respective blocks of the memory device 100 to establish the global page address. Link table. For example, in the memory device 100, if only blocks 0 and 1 of the flash chip 0 have been completely written, and if the local page address link table 0 of the block 0 and the global page address link table of the block 1 are 1 has been established, then processing unit 110 reads local page address link tables 0 and 1 to establish the global page address link table.
  • the alignment of a field of the global page address link table represents a logical page address, and the content of the field represents an associated physical page address.
  • the example table position (iL, jL) corresponding to the (iL * 4 + j fields represents a logical page address ( * 4 + j L ) o
  • the example table position (0, 0) corresponding to the first field represents the logical page address 0x0000, corresponding to the example of the second field.
  • the table position (0, 1) represents the logical page address 0x0001
  • the example table position (0, 2) corresponding to the third field represents the logical page address 0x0002
  • the example table position (0, 3) corresponding to the fourth field represents the logical page.
  • Address 0x0003, the example table location (1, 0) corresponding to the fifth field represents the logical page address 0x0004, and so on.
  • the processing unit 110 When the processing unit 110 establishes the global page address link table, the processing unit 110 reads the first field of the partial page address link table 0 shown in FIG. 2A and obtains the logical page address 0x0002, and thus determines the logical page address 0x0002 chain.
  • the page 0 of block 0 of the flash chip 0 is connected to the physical page address 0x0000.
  • the processing unit 110 writes the physical page address 0x0000 (physical page 0x0000) into the third field of the global page address link table (ie, the example table position (0, 2) of its two-dimensional array example), To indicate that the logical page address 0x0002 (logical page 0x0002) is linked to the physical page address 0x0000.
  • the processing unit 110 reads the second field of the partial page address link table 0 shown in FIG. 2A and obtains the logical page address 0x0001, and thus determines that the logical page address 0x0001 is linked to the block 0 of the flash chip 0. Page 1, its physical page address is 0x0001. As shown in FIG. 3B, the processing unit 110 writes the physical page address 0x0001 to the second field of the global page address link table to indicate that the logical page address 0x0001 (logical page 0x0001) is linked to the physical page address 0x0001 (entity page 0x0001). ).
  • the processing unit 110 reads the third field of the partial page address link table 0 shown in FIG. 2A and obtains the logical page address 0x0002, and thus determines that the logical page address 0x0002 is linked to the page of the block 0 of the flash chip 0. 2, its physical page address 0x0002. As shown in FIG. 3C, the processing unit 110 writes (or updates) the physical page address 0x0002 to the third field of the global page address link table to indicate that the logical page address 0x0002 (logical page 0x0002) is linked to the physical page address. 0x0002 (Entity Page 0x0002).
  • the processing unit 110 reads the fourth field of the partial page address link table 0 shown in FIG. 2A and obtains the logical page address 0x0005, and thus determines that the logical page address 0x0005 is linked to the block 0 of the flash chip 0. Page 3, its physical page address 0x0003. As shown in FIG. 3D, the processing unit 110 writes the physical page address 0x0003 to the sixth field of the global page address link table to indicate that the logical page address 0x0005 (logical page 0x0005) is linked to the physical page address 0x0003 (entity page 0x0003) ).
  • the processing unit 110 reads the fifth field of the partial page address link table 0 shown in FIG. 2A and obtains the logical page address 0x0003, and thus determines that the logical page address 0x0003 is linked to the page of the block 0 of the flash chip 0. 4. Its physical page address is 0x0004. As shown in FIG. 3E, the processing unit 110 will be a physical page. Address 0x0004 is written to the fourth field of the global page address link table to indicate that the logical page address 0x0003 (logical page 0x0003) is linked to the physical page address 0x0004 entity page 0x0004). The related operations of the subsequent links are not repeated here. After reading all the fields of the partial page address link table 0 shown in FIG. 2A and filling the corresponding physical page address into the related field of the global page address link table, the processing unit 110 establishes the global page address chain. The table is shown in Figure 3F.
  • FIG. 4 is a partial page address link table 1 in block 1 of flash chip 0 in accordance with an embodiment of the present invention.
  • the processing unit 110 After reading all the fields of the partial page address link table 0 shown in FIG. 2A and filling the corresponding physical page address into the related field of the global page address link table as shown in FIG. 3F, the processing unit 110 The partial page address link table 1 in block 1 is also read to complete the global page address link table. Please note that in the present embodiment, when all the data pages of the block 1 have been written, the processing unit 110 establishes the local page address link table 1. This is for illustrative purposes only and is not a limitation of the invention.
  • processing unit 110 when at least one data page (eg, a data page or a plurality of data pages) in a block has been written, the processing unit 110 can establish a partial page address chain for the block. End table.
  • processing unit 110 establishes the local page address link table for the block, and in particular establishes the partial page address link table for the at least one data page.
  • processing unit 110 establishes a local page address link table for a few data pages, such as physical pages 0 and 1 of the block, where the partial page address link table for entity pages 0 and 1 is established and stored in subsequent The physical page, which is entity page 2.
  • processing unit 110 attempts to find the block. The last page written. In this variation, processing unit 110 searches from the last page to the previous pages to find the last page written in the block. Then, the processing unit 110 reads all the fields of the partial page address link table from the last written page in the block, and fills the corresponding physical page address into the relevant information in the global page address link table. Field to complete/update the global page address link table.
  • the processing unit 110 reads the first field of the global page address link table 1 and obtains the logical page address 0x0006, and thus determines that the logical page address 0x0006 is linked to the block 1 of the flash chip 0. Page 0, its physical page address is 0x0127 in this embodiment. As shown in FIG. 5A, processing unit 110 writes physical page address 0x0127 to the seventh field of the global page address link table to indicate that logical page address 0x0006 (logical page 0x0006) is linked to physical page address 0x0127 (physical page) 0x0127
  • the processing unit 110 reads the second field of the global page address link table 1 shown in FIG. 4 and obtains the logical page address 0x0002, and thus determines that the logical page address 0x0002 is linked to the block 1 of the flash chip 0. Page 1, its physical page address is 0x0128. As shown in FIG. 5B, the processing unit 110 writes (or updates) the physical page address 0x0128 to the third field of the global page address link table to indicate that the logical page address 0x0002 (logical page 0x0002) is linked to the physical page address 0x0128. (Entity page 0x0128). The related operations of the subsequent links are not repeated here. After reading all the fields of the partial page address link tables 0 and 1 and filling the corresponding physical page address into the relevant field of the global page address link table, the processing unit 110 completes the global page address link. table.
  • the processing unit 110 of this embodiment does not create the global page address link table by reading all pages (or all memory units) of the non-missing memory components 140_0, 140_1, ..., and 140_N, but only borrows A few partial page address link tables in the partially or partially written blocks are read, or a few partial page address link tables representing the blocks are read. Therefore, the memory device implemented in accordance with the present invention necessarily has better efficiency than those practiced by the prior art.
  • the processing unit 110 reads only the partial page address link tables respectively corresponding to the data blocks to establish the global page address link table. . If the non-lost memory components 140_0, 140_1, and 140_N have a total of X D data blocks, and each data block has Y D data pages, the processing unit 110 reads X D partial page address link tables (the total data thereof) The amount is less than the X D page under typical conditions) to establish the global page address link table instead of reading the XD.YD page. In other words, the time required to establish the global page address link table in accordance with the present invention approximates the time required to establish the global block address link table.
  • the processing unit 110 of the present variation may write the temporary partial page address link table to the specific block before the memory device 100 performs shutdown. For example, after the memory device 100 is powered on and starts an initial program, the host device can read the partial page address link table stored in the specific block to establish or The new global page address link table. This is for illustrative purposes only and is not a limitation of the invention.
  • the processing unit 110 can read certain pages that have previously been written to the particular block, in particular, read each of the previously written specific blocks.
  • the spare byte area in the page to create or update the global page address link table.
  • the sheet processing unit 110 reads the particular block is written to establish or update the global page address link table, the processing unit 110 reads data to be less than Y D page from the particular block.
  • the non-lost memory components 140_0, 140_1 and 140_N have a total of ⁇ completely written blocks, and another has a partially written block containing Y PP written data pages; Then, the amount of data that the processing unit 110 must read in order to complete the global page address link table is less than (X FP + Y PP ) pages. Therefore, in order to establish the global page address link table, the memory device implemented in accordance with the present invention still has better efficiency than those implemented by the prior art.
  • the point in time at which the processing unit 110 establishes the global page address link table may be during any of the initial procedures of the memory device 100, or any time required by the user.
  • the global page address link table can be partitioned into a plurality of partial tables stored in one or more non-lost memory components (eg: the partial tables are stored separately Lost memory components 140_0, 140_1 and 140_N).
  • Each of the divided partial tables may be referred to as a sub-global page address link table.
  • the processing unit 110 can read at least one sub-global page address link table of the global page address link table (for example: a sub-global page address link table, some sub-global page address link tables, or all sub-global pages)
  • the address link table is stored in the lost memory 120; various implementation changes may be determined according to the size of the global page address link table and the size of the lost memory 120, or may be determined according to other requirements.
  • the processing unit 110 can perform the logical-to-physical address translation operations disclosed in the foregoing embodiments by using the secondary global page address link table stored in the lost memory 120.
  • FIG. 6 is a content arrangement of the non-lost memory component 140_0 in an embodiment of the present invention, wherein the non-lost memory component 140_0 is referred to as a flash chip 0 in this embodiment as described above.
  • a page contains multiple sections, such as: Sections 0, 1, 2, and 3.
  • a sector is the minimum read unit, which in this embodiment may be 512 bytes. In other words, during a reading operation, The unit 110 can read one segment or multiple segments.
  • the first block of the flash chip 0 is regarded as the first block of the flash chips 0 to 3, and is addressed as the physical block address 0, and thus can be called Is the physical block 0.
  • the last block of flash chip 0 is considered to be the 1024th block of flash chip 0 to 3 and is addressed as physical block address 1023, and thus may be referred to as physical block 1023.
  • the first block of flash chip 1 is considered to be the 1025th block of flash chip 0 to 3 and is addressed as physical block address 1024, and thus may be referred to as physical block 1024, as such.
  • the last block of flash chip 3 is considered to be the 4096th block of flash chip 0 to 3 and is addressed as physical block address 4095, and thus may be referred to as physical block 4095.
  • the blocks of the flash chips 0 to 3 include 4 sets of physical blocks: ⁇ 0, 1, 1023 ⁇ , ⁇ 1024, 1025, 2047 ⁇ , ⁇ 2048, 2049, 3071 ⁇ , and ⁇ 3072, 3073, ..., 4095 ⁇ , that is, a total of 4096 physical blocks.
  • the first page of physical block 0 is considered to be the first page of flash chips 0 through 3 and is addressed as physical page address 0, and thus may be referred to as physical page 0.
  • the last page of the physical block 0 is treated as page 128 of the flash chips 0 to 3 and is addressed as the physical page address 127, and thus may be referred to as the physical page 127.
  • the first page of physical block 1 is considered to be page 129 of flash chips 0 through 3 and is addressed as physical page address 128, and thus may be referred to as physical page 128, as such.
  • the last page of the physical block 4095 is considered to be page 524288 of the flash chips 0 to 3 and is addressed as the physical page address 524287, and thus may be referred to as the physical page 524287.
  • the pages of the flash chips 0 to 3 contain 4096 sets of physical pages: ⁇ 0, 1, 127 ⁇ , ⁇ 128, 129, 255 ⁇ , ..., and ⁇ 524160, 524161, 524287 ⁇ , that is, total 524,288 physical pages.
  • FIG 8 is used for managing a flash chip shown in FIG. 7A to 7D data region 0-3 with a spare area (Spare Region) 0 As shown, flash chip 0-3 is divided into eight regions on the logic The data area and the spare area. This data area is used to store data and can include physical blocks 2, 3 and 4095 at the outset.
  • the spare area is used to write new data, wherein the spare area contains the blocks that have been erased under typical conditions, and may include physical blocks 0 and 1 at the beginning. After many access operations, the spare area can logically contain a different set of physical blocks, and the data area can logically contain other physical blocks. For example: After many access operations, the spare area may contain physical blocks 4094 and 4095, and the data area may contain physical blocks 0 to 4093. In another embodiment, the spare area may include physical blocks 0, 1024, 2048, and 3096, that is, each of the flash chips 0 to 3 includes at least one area logically belonging to the spare area. Piece. Please note that the number of blocks in the data area and the spare area can be determined according to the needs of the user I designer. For example, the spare area may contain 4 physical blocks, and the data area may contain 4092 physical blocks.
  • the master device transmits a command to the memory device 100 to CO 4 sectors written in the address corresponding to master data D SQ 0000008-0000011 to D S3.
  • the lost memory 120 temporarily stores the data D SQ to D S3 .
  • Processing unit 110 analyzes the instruction CO to perform a write operation corresponding to instruction CO.
  • Processing unit 110 converts the primary device addresses 0000008 through 0000011 into associated logical addresses.
  • the processing unit 110 divides the master device address 0000008 by the number of segments of one page, divides by 4 in this embodiment, and obtains a quotient of 2 and a remainder of 0.
  • the quotient 2 indicates that its logical page address is 2, and thus the logical page indicated by the logical page address 2 can be referred to as logical page 2.
  • a remainder of 0 indicates that the data D SQ should be stored in the first section of a page.
  • the processing unit 110 further divides the primary device address 0000008 by the number of segments of a block, which is divided by 512 in this embodiment, and obtains a quotient of 0 and a remainder of 8.
  • the quotient 0 indicates that its logical block address is 0, and thus the logical block indicated by logical block address 0 can be referred to as logical block 0.
  • the division operations can be performed by truncating a portion of the address of the master device (Bit). For example: When the master device address 0000008 is to be divided by 4, the processing unit 110 extracts the last two bits from the bits of the binary representation of the master device address, ie, the two phases containing the Least Significant Bit (LSB). Neighbor/continuous bits, to obtain the remainder 0, and extract other bits from the binary representation to obtain the quotient 2. Another In addition, when the master device address 0000008 is to be divided by 512, the processing unit 110 may extract the last nine bits from the binary representation of the master device address, that is, nine adjacent/contiguous bits including the least significant bit to obtain the remainder 8.
  • LSB Least Significant Bit
  • the master device address 0000008 substantially contains (has) a message of logical page address 2 and logical block address 0. Please note that since the master device address 0000008 inherently belongs to the logical page 2 and inherently belongs to the logical block 0, the processing unit 110 of a variation of the embodiment can be analyzed by bit shifting (Bit-Shifting). The master device address 0000008, rather than actually performing the division operations.
  • the processing unit 110 of this embodiment determines that the master device address, 0000009, 0000010, and 0000011 have logical page addresses of 2 (ie, the master addresses 00009, 0000010, and 0000011 all inherently belong to logical page 2, or contain logic Page address 2), and its logical block addresses are all 0 (ie, the master addresses 00009, 0000010, and 000011 are all inherently belonging to logical block 0, or contain logical block address 0).
  • the data D S1 , D S2 , and D S3 should be stored in the second, third, and fourth sections of a page, respectively.
  • the physical block 0 is initially erased and logically placed in the spare area, and the processing unit 110 extracts (Pop) the physical block 0 from the spare area, and writes the data D SQ to D S3 respectively.
  • the first, second, third, and fourth segments of the physical page 0 are entered.
  • the processing unit 110 additionally records the value 0 in the third field of the global page address link table of the present embodiment to indicate that the logical page 2 is linked to the physical page 0.
  • 9A to 9D are respectively several exemplary versions of the global page address link table in the present embodiment.
  • the arrangement of the example table positions of the present embodiment is similar to that shown in Figs. 3A to 3F; therefore, the details thereof will not be described for the sake of brevity.
  • the physical page address 0 has been written to the third field, which indicates that the logical page 2 is linked to the physical page 0.
  • Another implementation option is that physical page address 0 can be written to a corresponding field of its temporary local page address link table to indicate the logical relationship of the logical to physical address.
  • the global page address link table can then be updated accordingly.
  • the implementation details of updating the global page address link table in accordance with the temporary partial page address link table are similar to the various embodiments described above.
  • the following embodiments only show that the global page address link table is updated to reflect a new Logical-to-Physical Page Address Linking Relationship; however, It will be understood by those skilled in the art in obtaining the teachings of the embodiments of the present invention that the temporary partial page address link table can also be updated to reflect the new logical-to-physical page address. The link relationship, therefore its related description is omitted.
  • processing unit 110 may record usage information during access to the pages.
  • the usage information includes a table of valid page numbers for separately recording the number of valid pages for each of the blocks. This is for illustrative purposes only and is not a limitation of the invention.
  • the usage information comprises an invalid page number table for recording the respective invalid page numbers of the blocks.
  • each full write block contains a predetermined number of pages (e.g., 128 pages in this embodiment)
  • the number of valid pages and the number of invalid pages of the same fully written block will complement each other.
  • the processing unit 110 records the value 1 in the first field of the valid page number table to indicate that the physical block 0 contains 1 valid page (ie, 1 page of useful data; or in other words, 1 page) valid data). Please note that the processing unit 110 can store the global page address link table and the valid page number table in the lost memory 120. According to this embodiment, during access to the flash chip, the processing unit 110 can simply update the global page address link table and the valid page number table. This is for illustrative purposes only and is not a limitation of the invention. According to a variation of the embodiment, in the memory device
  • the processing unit 110 can read out the global page address link table and the valid page number table from the lossy memory 120 and load/store the non-lost memory components 140_0, 140_1, .. ., with one or more non-lost memory components in 140_N.
  • the processing unit 110 may store the global page address link table and the valid page number table in one or more link blocks of the non-lost memory components 140_0, 140_1, ..., and 140_N (Link Block). ).
  • Link Block the processing unit 110 can save the global page address link table and the valid page number table.
  • Each of the above-mentioned link blocks is a specific block for holding system information.
  • the processing unit 110 can simply retrieve the global page address link table and the valid page number table from the link block(s).
  • the master device transmits an instruction C1 to the memory device 100 to write the data of the four segments D S4 to D S7 to the corresponding master device addresses 0000512 to 0000515.
  • processing unit 110 determines that the logical page addresses of master addresses 0000512 through 0000515 are all 128 (ie, master addresses 0000512 through 0000515 all belong to logical page 128, or contain logical page address 128), and their logical block addresses are Is 1 (ie, the master address 0000512 to 0000515 also all belong to logical block 1, or contain logical block address 1).
  • the data D S4 to D S7 should be stored in the first page of the page, respectively. Second, third, and fourth sections.
  • the processing unit 110 additionally records the value 1 in the 129th field of the global page address link table shown in FIG. 9A to indicate that the logical page 128 is linked to the physical page 1.
  • the processing unit 110 records the value 2 in the first field of the valid page number table (ie, the processing unit 110 updates its first field with the value 2) to indicate that the physical block 0 contains 2 valid pages (ie, 2 pages). valid data). That is, the processing unit 110 increases the number of valid pages of the physical block 0. This is for illustrative purposes only and is not a limitation of the invention. In the case where the valid page number table is replaced with the above-described invalid page number table, the processing unit 110 maintains the value of the number of invalid pages of the physical block 0.
  • the master device addresses 0000512 to 0000515 belong to different logical blocks from the master device addresses 0000008 to 0000011 (for example, the master device addresses 0000512 to 0000515 belong to the logical block 1, and the master devices address 0000008 to 0000011 belong to the logical block 0).
  • these master device addresses are all linked to the relevant pages in the same physical block, and the data corresponding to the master device addresses 0000512 to 0000515 and the data corresponding to the master device addresses 0000008 to 0000011 are written to the same entity.
  • the block in this embodiment, is a physical block 0.
  • a first group of master addresses for example: master addresses 0000512 to 0000515) belong to a first logical block (for example: logical block 1) and a second group of master addresses (for example: main
  • the processing unit 110 may be in the same physical block (for example: physical block 0) - and writes corresponding to the first group.
  • the data of the master device address and the data corresponding to the address of the second group of master devices This is for illustrative purposes only and is not a limitation of the invention.
  • the processing unit 110 may use a first part of the data corresponding to the first set of master addresses The two parts are respectively written into different physical blocks, wherein the first part and the second part of the data do not overlap.
  • the master device then transmits an instruction C2 to the memory device 100 to write the data of the four segments D S8 to D S11 to the corresponding master device addresses 0000004 to 0000007.
  • the processing unit 110 determines that the logical page addresses of the primary device addresses 0000004 to 0000007 are all 1 (ie, the primary device addresses 0000004 to 0000007 all belong to the logical page 1 or contain the logical page address 1), and The logical block address is 0 (ie, the master addresses 0000004 to 0000007 all belong to logical block 0, or contain logical block address 0).
  • the data D S8 to D S11 should be stored in the first, second, third, and fourth sections of a page, respectively.
  • the data processing unit 110 to a D S11 D S8 are respectively written page 2 entity (which is immediately next to the physical page 1) first, second, third, and second Four sections.
  • the processing unit 110 additionally records the value 2 in the second field of the global page address link table shown in FIG. 9A to indicate that the logical page 1 is linked to the physical page 2.
  • the processing unit 110 records the value 3 in the first field of the valid page number table (ie, the processing unit 110 updates its first field with the value 3) to indicate that the physical block 0 contains 3 valid pages (ie, 3 pages). valid data). That is, the processing unit 110 increases the number of valid pages of the physical block 0. This is for illustrative purposes only and is not a limitation of the invention. In the case where the valid page number table is replaced with the above-described invalid page number table, the processing unit 110 maintains the value of the number of invalid pages of the physical block 0.
  • 10A to 10F are several exemplary versions of the effective page number table in the present embodiment, respectively.
  • the rank of a field of the list of valid pages represents a physical block address, and the content in this field represents an associated number of valid pages.
  • the example table position (iPBLK, jPBLK) corresponding to the (i PB c * 4 + jPBLK) fields represents a physical block address ( iPBLK * 4 + jpBLK) o
  • iPBLK * 4 + jpBLK physical block address
  • the example table position i PB LK corresponding to the i-th PB LK fields Represents a physical block address (i PB LK). Then, after the instruction C2 is executed in this embodiment, the global page address link table and the effective page number table are updated as shown in Figs. 9A and 10A, respectively.
  • the master device transmits an instruction C3 to the memory device 100 to update the data of the four segments D SQ ' to D S3 ' to the corresponding master device addresses 0000008 to 00000011.
  • the processing unit 110 determines that the logical page addresses of the primary device addresses 0000008 to 00000011 are both 2 (ie, the primary device addresses 0000008 to 0000011 all belong to the logical page 2 or contain the logical page address 2), and the logical block addresses thereof are all 0 (ie, the master address 0000008 to 0000011 all belong to logical block 0, Or contain the logical block address 0).
  • the data D SQ ' to D S3 ' should be stored in the first, second, third, and fourth sections of a page, respectively.
  • the processing unit 110 Since the physical page 2 has been written, the processing unit 110 writes the data D SQ , to D S3 , respectively to the first, second, third, of the physical page 3 (which follows the next page of the physical page 2). With the fourth section.
  • the processing unit 110 additionally updates the value 3 record I to the third field of the global page address link table shown in FIG. 9B to indicate that the logical page 2 is now linked to the physical page 3.
  • processing unit 110 still records the value 3 in the first field of the list of valid pages shown in FIG. 10B to indicate that physical block 0 still contains 3 valid pages. That is, the processing unit 110 maintains the value 3 of the number of valid pages of the physical block 0 without change. This is for illustrative purposes only and is not a limitation of the invention.
  • the processing unit 110 increases the number of invalid pages of the physical block 0.
  • the master device transmits an instruction C4 to the memory device 100 to write the data of the four segments D SQ " to D S3 " to the host device addresses 0000008 to 00000011 corresponding to the I update.
  • the processing unit 110 determines that the logical page addresses of the host device addresses 0000008 to 00000011 are both 2 (ie, the master addresses 0000008 to 0000011 all belong to the logical page 2 or contain the logical page address 2), and the logical block addresses thereof are Is 0 (ie, the master address 0000008 to 0000011 all belong to logical block 0, or contain logical block address 0).
  • the data D SQ , to D S3 "should be stored in the first, second, third, and fourth segments of a page, respectively.
  • the processing unit 110 Since all pages of the physical block 0 have been written, the processing unit 110 The data D SQ " to D S3 " are written to the first, second, third, and fourth sections of the physical page 128 (which follows the next page of the physical page 127). The processing unit 110 additionally sets the value. 128 records/updates the third field of the global page address link table shown in Figure 9D to indicate that logical page 2 is now linked to entity page 128. Here, entity page 3 does not contain valid data and can be considered a Invalid page with invalid data. In addition, processing order The element 110 records the value 1 in the second field of the valid page number table to indicate that the physical block 1 contains 1 valid page (ie, 1 page of valid data), and updates the value 99 record I to the valid page number table.
  • the master device transmits an instruction C5 to the memory device 100 to read data corresponding to the four sectors of the master device addresses 0000008 to 00000011.
  • Processing unit 110 analyzes instruction C5 to perform the read operation.
  • Processing unit 110 converts the primary device addresses 0000008 through 0000011 into logical addresses.
  • the processing unit 110 divides the primary device address 0000008 by the number of segments of one page, which is divided by 4 in this embodiment, and obtains a quotient 2 and a remainder 0.
  • the quotient 2 indicates that its logical page address is 2, and the logical page indicated by the logical page address 2 is logical page 2.
  • a remainder of 0 indicates that the data D SQ should have been stored in the first section of a page.
  • the processing unit 110 determines that the logical page addresses of the master devices addresses 0000009, 0000010, and 000011 are both 2 (ie, the master addresses 00009, 0000010, and 0000011 all belong to the logical page 2, or contain the logical page address 2), and The logical block addresses are all 0 (ie, the master addresses 00009, 0000010, and 0000011 all belong to logical block 0, or contain logical block address 0).
  • data corresponding to the host device addresses 0000008 to 00000011 should have been stored in the first, second, third, and fourth segments of a page, respectively.
  • Processing unit 110 reads the third field of the global page address link table and takes a value of 128 indicating that the data corresponding to logical page 2 is stored on entity page 128. Processing unit 110 reads physical page 128 to retrieve data D SQ " to D S3 " and transmits the data to the host device.
  • the master device transmits an instruction C6 to the memory device 100 to write the data of the four segments D S12 to D S15 .
  • Processing unit 110 extracts a physical block, such as physical block 4094, from the spare area for writing data 0 812 through 0 815 .
  • a physical block such as physical block 4094
  • the minimum number of blocks in the spare area must always be greater than zero.
  • the minimum number of blocks in the spare area must be greater than zero for most of the time, and the minimum number of blocks in the spare area may be temporarily zero as long as the operation of the memory device 100 is not hindered.
  • the processing unit 110 must erase a physical block in the data area to push the erased physical block into the spare area.
  • the processing unit 110 searches the valid page number table and finds the physical block 2 that does not contain valid data because the number of valid pages of the physical block 2 is zero. Since the physical block 2 has the least number of valid pages, the processing unit 110 erases the physical block 2 and then pushes the erased physical block 2 into the spare area. As such, the spare area now contains physical blocks 2 and 4095. This is for illustrative purposes only and is not a limitation of the invention. According to a variant of this embodiment, once the number of valid pages of the physical block 2 is reduced to zero, the processing unit 110 can immediately erase the physical block 2.
  • the master device transmits an instruction C7 to the memory device 100 to write the data of the four segments D S16 to D S19 .
  • Processing unit 110 extracts a physical block, such as physical block 4095, from the spare area for writing data D S16 through D S19 .
  • the processing unit 110 when it is detected that the number of blocks of the spare area (or will be) is less than the predetermined value, the processing unit 110 must erase at least one physical block in the data area to push the physical block(s) Enter the spare area.
  • the processing unit 110 of the present embodiment searches the valid page number table shown in FIG. 10F and finds a physical block 0 having 40 pages of valid data and a physical block 1 having 50 pages of valid data, wherein compared to other physical blocks, Physical blocks 0 and 1 have the least number of valid pages.
  • the processing unit 110 moves the valid data of the physical blocks 0 and 1 to the physical block 2, and updates the global page address link table to reflect the movement of the valid data.
  • the processing unit 110 reads the valid data in the physical blocks 0 and 1, writes the valid data into the physical block 2, and correspondingly links the logical page address of the valid data to the valid data that has been written. Physical page. After moving the valid data, the processing unit 110 erases the physical blocks 0 and 1, and pushes the erased physical blocks 0 and 1 into the spare area.
  • the processing unit 110 searches for the valid page quantity table under typical conditions to find one or more pages with the least number of valid pages. The quantity is completely written to the block, and the (s) full write block with the least number of valid pages is erased to push the (some) full write block into the spare area.
  • the processing unit 110 may search the invalid page number table to find one or more of the most invalid pages. The number of full write blocks is erased and the (s) full write block of this variation is erased to push the (write) full write block into the spare area.
  • processing unit 110 has extracted one more physical block from the spare area to the data area, such as physical block 2, for Merge physical blocks 0 and 1.
  • physical block 2 for Merge physical blocks 0 and 1.
  • the processing unit 110 may merge the fully written blocks having the least number of valid pages into the Partially written to the block, wherein the blank page described above represents a page in the block containing the valid pages that has not been written since the block was last erased.
  • the processing unit 110 may be physical blocks 0 and 1 to the merged Partially written blocks, such as physical block 4095.
  • the processing unit 110 can merge the physical block 0 into the partial write.
  • a block such as a physical block 4095.
  • processing unit 110 may write data D S16 through D S19 to physical block 4095; and as long as physical block 4095 has enough blank pages for writing data D S16 through D S19 and physical blocks 0 and 1
  • the valid data the processing unit 110 may additionally move the valid data of the physical blocks 0 and 1 to the physical block 4095.
  • the processing unit 110 of the present variation may update the global page address link table to reflect the movement of the valid data.
  • the processing unit 110 erases the physical blocks 0 and 1, and pushes the erased physical blocks 0 and 1 into the spare area.
  • the processing unit 110 may move the valid data of the N physical blocks to the M physical blocks, where N and M are both positive integers, and N is greater than M. It is assumed that there are a total of K pages of valid data in the N physical blocks, where K is smaller than the total number of blank pages among the M physical blocks.
  • the processing unit 110 can read the valid data of the K page from the N physical blocks, erase the N physical blocks, temporarily store the valid data of the K page in the lost memory 120, and Valid data is written to the M physical blocks.
  • the N physical blocks and the M physical blocks may overlap (eg, the N physical blocks and the M physical blocks each include at least one of the same physical blocks) or Do not overlap.
  • the valid data of the K pages The N physical blocks can be written without having to wait for the N physical blocks to be erased, and the processing unit 110 can eventually generate (N - M) erased blocks.
  • the processing unit 110 updates the global page address link table to reflect the movement of the valid data.
  • processing unit 110 may record the number of invalid pages per physical block. For example: Given that each physical block has 128 pages, a specific physical block contains 128 pages, including: 28 pages of invalid pages with invalid data; and 100 pages of valid pages with valid data. That is, the number of invalid pages and the number of valid pages of the specific physical block are 28 and 100, respectively.
  • the processing unit 110 can establish an invalid page number table of the flash chips 0 to 3, and erase a specific physical block according to the invalid page number table. In some of the above variants, when the processing unit 110 has to erase a physical block, the processing unit 110 may select a specific physical block having the largest number of invalid pages according to the invalid page number table, and erase the specific entity. Block.
  • processing unit 110 may record one or more valid data locations of the valid data in the particular block.
  • processing unit 110 may establish a valid page location table for each tile to indicate the location of one or more valid pages (which contain valid data) in the tiles.
  • FIG 11 is a table of valid page positions for flash chips 0 through 3 in accordance with one embodiment of the present invention.
  • the arrangement of the example table positions of the valid page position table is similar to that shown in Figs. 10B to 10F and the right half of Fig. 10A; therefore, the details thereof will not be described for the sake of brevity.
  • each field of the valid page location table indicates whether there is any valid page location corresponding to an associated physical block. For example: Each field of this embodiment contains 128 bits corresponding to each page of the associated physical block.
  • each field of the valid page location table indicates the valid page location(s) corresponding to the associated physical block.
  • Each bit in a particular field indicates whether a related page in the associated physical block is valid or invalid.
  • the first field of the valid page position table shown in FIG. 11 is recorded as 'O1011100101...11111', which indicates the valid page position(s) in the physical block 0.
  • the order of a particular bit in the particular field of the valid page location table shown in FIG. 11 represents the page address offset of a related page in the associated physical block (Page Address Offset). Or relative page position (Relative Page Position).
  • the bit 'O1011100101...11111' recorded in the first field of the valid page position table shown in Figure 11 the least significant bit
  • LSB east Significant Bit, LSB "1" indicates the first page of physical block 0 (ie, entity page 0) - a valid page containing valid data
  • MSB Most Significant Bit
  • the last page of block 0 ie, entity page 127) is an invalid page containing invalid data, where the other bits between the least significant bit and the most significant bit indicate the validity of other physical pages in the associated physical block, respectively. Invalid state.
  • the other fields of the effective page position table shown in Fig. 11 are not repeated here.
  • processing unit 110 can quickly move the valid data contained in the active page in accordance with the valid page location table.
  • the least significant bit in the specific field indicates whether the first page of the related physical block is a valid page or an invalid page, and the most significant bit in the specific field indicates the related physical block. Whether the last page is a valid page or an invalid page.
  • the least significant bit in the particular field indicates whether the last page of the associated physical block is a valid page or an invalid page, and the most significant bit in the particular field indicates the related entity Whether the first page of the block is a valid page or an invalid page.
  • the least significant bit 'T' indicates that the last page of the physical block 0 (ie, entity page 127) is valid with valid data.
  • Page and the most significant bit "0" indicates that the first page of physical block 0 (ie, entity page 0) is an invalid page with invalid data, where the other bits between the least significant bit and the most significant bit indicate the correlation, respectively.
  • Valid/invalid state of other physical pages in the physical block For example, for the bits 'O1011100101...11111' recorded in the first field, the least significant bit 'T' indicates that the last page of the physical block 0 (ie, entity page 127) is valid with valid data.
  • Page and the most significant bit "0" indicates that the first page of physical block 0 (ie, entity page 0) is an invalid page with invalid data, where the other bits between the least significant bit and the most significant bit indicate the correlation, respectively.
  • Valid/invalid state of other physical pages in the physical block For example, for the bits 'O1011100101...11111' recorded in
  • a logical value "1" of the particular bit indicates that the associated page is a valid page, and a logical value of "0" of the particular bit indicates that the associated page is an invalid page.
  • the logical value "0" of the particular bit indicates that the associated page is a valid page and the logical value of the particular bit " indicates that the associated page is an invalid page.
  • processing unit 110 may store the valid page location table in the lost memory 120. According to this The processing unit 110 can easily update the valid page location table during access to the flash chip. This is for illustrative purposes only and is not a limitation of the invention. According to a variant of the embodiment, before the memory device 100 is powered off, the processing unit 110 can read the valid page location table from the volatile memory 120 and load it I to store the non-lost memory components 140_0, 140_1 and One or more of 140_N. In particular, processing unit 110 may store the valid page location table in one or more link blocks of non-lost memory components 140_0, 140_1, ..., and 140_N. According to this embodiment, when the memory device 100 performs shutdown, the processing unit 110 may save the valid page location table. When the memory device 100 is powered on next time, the processing unit 110 can easily obtain the valid page location table from the link segment(s).
  • the valid page location table and the global page address link table can be read from the loss memory 120 and loaded/stored to the non-lost memory component at any time.
  • the valid page location table and the global page address link table can be accessed every predetermined time period (eg: 2 seconds), or each set of predetermined access operations (eg, 100 write operations) Save once.
  • the latest valid page location table and global page address link table are not read from the lost memory 120 and loaded/stored to the non-lost memory component.
  • the processing unit 110 may search for the block accessed after the latest update of the valid page location table and search for the global page in the non-missing memory component. Address link table. Processing unit 110 searches for logical page addresses stored in each of these blocks to establish and update the global page address link table. Thereafter, the processing unit 110 can establish the valid page location table according to the updated global page address link table.
  • the method and apparatus of the present invention substantially saves time in establishing a logical entity page address link table, such as when the global page address link table is established.
  • the present invention provides better performance than conventional techniques.
  • Another advantage of the present invention is that the method and apparatus of the present invention can record the usage information during access to the pages, and thus the use of all of the blocks can be efficiently managed in accordance with the usage information.
  • the arrangement of the spare area and the data area can be optimized.
  • managing flash on a page-by-page basis has many benefits. For example: The speed of random writes can be greatly improved, and the Write Amplification Index can be greatly reduced.
  • the present invention does not cause many side effects that are commonly managed on a page-based basis in the prior art, so as long as the present invention is applied to practical implementation, it is easier and more feasible to manage the flash memory on a page basis.
  • Managing flash memory on a block-by-block basis is easier to understand and implement.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • Static Random-Access Memory (AREA)

Description

一种用来管理一记忆装置的方法以及其相关的记忆装置 技术领域
本发明涉及数据通信中闪存的控制技术领域, 更具体地说, 涉及一种用来 管理一记忆装置的方法以及其相关的记忆装置。 背景技术
当一主装置存取一记忆装置例如固态硬盘 (Solid State Drive, SSD) 时, 该主装置于典型状况下会送出一存取指令与至少一对应的逻辑地址至该记忆 装置。该记忆装置的一控制器接收该逻辑地址并藉由利用一逻辑实体地址链结 表将该逻辑地址转换为一实体地址。如此, 该控制器藉由利用该实体地址来存 取该记忆装置的至少一物理内存组件。例如: 该内存组件可用一个或多个闪存 芯片 (为了简明起见, 其可称为快闪芯片) 来实施。
该逻辑实体地址链结表可依照该内存组件中的一记忆单位来建立。 例如: 该逻辑实体地址链结表可依照区块或页来建立。当该逻辑实体地址链结表依照 区块来建立时, 该逻辑实体地址链结表可称为逻辑实体区块地址链结表。当该 逻辑实体地址链结表依照页来建立时,该逻辑实体地址链结表可称为逻辑实体 页地址链结表。 另外, 一逻辑实体页地址链结表可称为全局页地址链结表, 其 包含关于该记忆装置中的多个区块 (或全部的区块) 的诸页的链结关系。
假设该内存组件具有 X个实体区块, 且每一实体区块具有 Y个实体页。 在该逻辑实体地址链结表依照区块来建立的状况下,该相关的逻辑实体区块地 址链结表的建立可透过读取每一实体区块的一页所储存的一逻辑区块地址以 及记录该实体区块与相关的逻辑区块之间的关系来实现。为了建立该逻辑实体 区块地址链结表, 必须读取分别对应于该 X个实体区块的 X页, 其中所需时 间假设为 X秒。
在该逻辑实体地址链结表依照页来建立的状况下,该相关的全局页地址链 结表的建立可透过读取全部的实体区块的每一实体页所储存的一逻辑页地址 以及记录该实体页与该相关的逻辑页之间的关系来实现。为了建立该全局页地 址链结表, 必须读取至少 Χ·Υ页, 需要 χ·Υ秒。 若一区块具有 1024页, 则建 立该全局页地址链结表所需时间是建立该逻辑实体区块地址链结表所需时间 的 1024倍, 即 1024·χ秒; 由于处理速度实在太慢了, 此为令人无法接受的处 理时间。亦即, 当按照此方式实施该全局页地址链结表时, 存取该记忆装置的 整体效能会被拖垮。因此, 需要一新颖的方法以便有效率地建立该逻辑实体地 址链结表, 并且需要相关方法以便管理透过该新颖的方法来运作的记忆装置。 发明内容
本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种用来 管理一记忆装置的方法以及其相关的记忆装置,以针对该记忆装置的一备用区
(Spare Region) 与一数据区的安排进行优化。
本发明解决其技术问题所采用的技术方案之一是:构造一种用来管理一记 忆装置的方法,该记忆装置包含至少一非遗失性(Non-volatile, NV)内存组件, 每一非遗失性内存组件包含多个区块(Block) , 该方法包含有: 提供至少一局 部页地址链结表(Local Page Address Linking Table)予该记忆装置的至少一区 块,其中该局部页地址链结表包含多个页的实体页地址与逻辑页地址之间的链 结关系;以及依据该局部页地址链结表建立该记忆装置的一全局页地址链结表
( Global Page Address Linking Table )。
本发明所述的上述方法,其中提供至少一局部页地址链结表予该记忆装置 的至少一区块的步骤另包含:于该记忆装置的写入运作期间针对该局部页地址 链结表建立一暂时局部页地址链结表。
本发明所述的上述方法,其中当该区块中至少一数据页已被写入时,该局 部页地址链结表被建立。
本发明所述的上述方法,其中当该区块中的全部数据页已被写入时,该局 部页地址链结表被建立。
本发明所述的上述方法,其中提供至少一局部页地址链结表予该记忆装置 的至少一区块的步骤另包含:暂时地在该记忆装置的一遗失性内存中储存该暂 时局部页地址链结表,并且当该区块中一页的一实体页地址与一逻辑页地址之 间的任何链结关系改变时, 更新该暂时局部页地址链结表。
本发明所述的上述方法,其中在该区块中的数据页被完全写入之前,该暂 时局部页地址链结表暂时地被储于该遗失性内存且被更新。
本发明所述的上述方法,其中提供至少一局部页地址链结表予该记忆装置 的至少一区块的步骤另包含:复制该暂时局部页地址链结表以建立该局部页地 址链结表。
本发明所述的上述方法,其中该暂时局部页地址链结表的一字段的排列顺 位代表一实体页地址, 且该字段的内容代表一相关的逻辑页地址。
本发明所述的上述方法,其中该局部页地址链结表的一字段的排列顺位代 表一实体页地址, 且该字段的内容代表一相关的逻辑页地址。
本发明所述的上述方法, 其中该局部页地址链结表位于该区块。
本发明所述的上述方法,另包含有:将该局部页地址链结表写入该区块的 最后一页。
本发明所述的上述方法,其中提供至少一局部页地址链结表予该记忆装置 的至少一区块的步骤另包含:分别提供多个局部页地址链结表予该记忆装置的 多个区块;其中依据该局部页地址链结表建立该记忆装置的该全局页地址链结 表的步骤另包含: 依据该些局部页地址链结表建立该全局页地址链结表。
本发明所述的上述方法,其中依据该局部页地址链结表建立该记忆装置的 该全局页地址链结表的步骤另包含:读取该些局部页地址链结表中之一者以更 新该全局页地址链结表。
本发明所述的上述方法,其中依据该局部页地址链结表建立该记忆装置的 该全局页地址链结表的步骤另包含:读取该局部页地址链结表中的每一者以建 立该全局页地址链结表。
本发明所述的上述方法,其中依据该局部页地址链结表建立该记忆装置的 该全局页地址链结表的步骤另包含: 自该至少一局部页地址链结表读取一第一 页的一第一实体页地址与一第一逻辑页地址之间的一第一链结关系;将该第一 链结关系写入该全局页地址链结表; 自该至少一局部页地址链结表读取该第一 页的另一实体页地址与该第一逻辑页地址之间的一第二链结关系;以及将该第 二链结关系写入该全局页地址链结表以更新该全局页地址链结表。
本发明所述的上述方法,其中该至少一局部页地址链结表包含多个局部页 地址链结表;以及该第一链结关系读取自该些局部页地址链结表的一第一局部 页地址链结表,且该第二链结关系读取自该些局部页地址链结表的一第二局部 页地址链结表。
本发明所述的上述方法,其中该全局页地址链结表的一字段的排列顺位代 表一逻辑页地址, 且该字段的内容代表一相关的实体页地址。
本发明所述的上述方法,其中该局部页地址链结表中的逻辑页地址的范围 大于该区块中的页数。
本发明解决其技术问题所采用的技术方案之二是: 构造一种记忆装置, 包 含有: 至少一非遗失性内存组件, 每一非遗失性内存组件包含多个区块; 以及 一处理单元,用来依据内嵌于该处理单元或接收自该处理单元之外的一程序代 码来管理该记忆装置,其中该处理单元用来提供至少一局部页地址链结表予该 记忆装置的至少一区块,以及该局部页地址链结表包含多个页的实体页地址与 逻辑页地址之间的链结关系;其中该处理单元用来依据该局部页地址链结表建 立该记忆装置的一全局页地址链结表。
本发明所述的上述记忆装置,其中该处理单元于该记忆装置的写入运作期 间针对该局部页地址链结表建立一暂时局部页地址链结表。
本发明所述的上述记忆装置, 其中当该区块中至少一数据页已被写入时, 该处理单元建立该局部页地址链结表。
本发明所述的上述记忆装置, 其中当该区块中的全部数据页已被写入时, 该处理单元建立该局部页地址链结表。
本发明所述的上述记忆装置, 其中在该区块中的数据页被完全写入之前, 该处理单元暂时地在该记忆装置的一遗失性内存中储存该暂时局部页地址链 结表;以及当该区块中一页的一实体页地址与一逻辑页地址之间的任何链结关 系改变时, 该处理单元更新该暂时局部页地址链结表。
本发明所述的上述记忆装置, 其中在该区块中的数据页被完全写入之前, 该暂时局部页地址链结表暂时地被储存于该遗失性内存且被更新。 本发明所述的上述记忆装置,其中该处理单元复制该暂时局部页地址链结 表以建立该局部页地址链结表。
本发明所述的上述记忆装置,其中该暂时局部页地址链结表的一字段的排 列顺位代表一实体页地址, 且该字段的内容代表一相关的逻辑页地址。
本发明所述的上述记忆装置,其该局部页地址链结表的一字段的排列顺位 代表一实体页地址, 且该字段的内容代表一相关的逻辑页地址。
本发明所述的上述记忆装置, 其中该局部页地址链结表位于该区块。 本发明所述的上述记忆装置,其中该处理单元将该局部页地址链结表写入 该区块的最后一页。
本发明所述的上述记忆装置,其中该处理单元分别提供多个局部页地址链 结表予该记忆装置的多个区块;以及该处理单元依据该些局部页地址链结表建 立该全局页地址链结表。
本发明所述的上述记忆装置,其中该处理单元读取该些局部页地址链结表 中之一者以更新该全局页地址链结表。
本发明所述的上述记忆装置,其中该处理单元读取该局部页地址链结表中 的每一者以建立该全局页地址链结表。
本发明所述的上述记忆装置,其中该处理单元自该至少一局部页地址链结 表读取一第一页的一第一实体页地址与一第一逻辑页地址之间的一第一链结 关系、将该第一链结关系写入该全局页地址链结表、 自该至少一局部页地址链 结表读取该第一页的另一实体页地址与该第一逻辑页地址之间的一第二链结 关系、以及将该第二链结关系写入该全局页地址链结表以更新该全局页地址链 结表。
本发明所述的上述记忆装置,其中该至少一局部页地址链结表包含多个局 部页地址链结表;以及该第一链结关系读取自该些局部页地址链结表的一第一 局部页地址链结表,且该第二链结关系读取自该些局部页地址链结表的一第二 局部页地址链结表。
本发明所述的上述记忆装置,其中该全局页地址链结表的一字段的排列顺 位代表一逻辑页地址, 且该字段的内容代表一相关的实体页地址。 本发明所述的上述记忆装置,其中该局部页地址链结表中的逻辑页地址的 范围大于该区块中的页数。
本发明解决其技术问题所采用的技术方案之三是:构造一种用来管理一记 忆装置的方法, 该记忆装置包含至少一非遗失性内存组件, 每一非遗失性内存 组件包含多个区块, 该方法包含有: 自一主装置(Host)接收一第一存取指令; 分析该第一存取指令以取得属于一第一逻辑区块的一第一主装置地址;将该第 一主装置地址链结 (Link) 至一实体区块; 自该主装置接收一第二存取指令; 分析该第二存取指令以取得属于一第二逻辑区块的一第二主装置地址,其中该 第二逻辑区块异于该第一逻辑区块;以及将该第二主装置地址链结至该实体区 块。
本发明所述的上述方法,其中该第一主装置地址固有地属于该第一逻辑区 块, 且该第二主装置地址固有地属于该第二逻辑区块。
本发明所述的上述方法,其另包含有:分析该第一存取指令以取得一第一 数据;分析该第二存取指令以取得一第二数据;将该第一数据写入该实体区块; 以及将该第二数据写入该实体区块。
本发明所述的上述方法,其中该第一主装置地址链结至该实体区块的至少 一第一页, 且该第二主装置地址链结至该实体区块的至少一第二页。
本发明解决其技术问题所采用的技术方案之四是:构造一种用来管理一记 忆装置的方法, 该记忆装置包含至少一非遗失性内存组件, 每一非遗失性内存 组件包含多个区块, 该方法包含有: 自一主装置接收一第一存取指令; 分析该 第一存取指令以取得属于一逻辑区块的一第一主装置地址;将该第一主装置地 址链结至一第一实体区块的至少一页; 自该主装置接收一第二存取指令; 分析 该第二存取指令以取得属于该逻辑区块的一第二主装置地址;以及将该第二主 装置地址链结至一第二实体区块的至少一页,其中该第二实体区块异于该第一 实体区块。
本发明所述的上述方法,其中该第一主装置地址与该第二主装置地址固有 地属于该逻辑区块。 本发明所述的上述方法,另包含:分析该第一存取指令以取得一第一数据; 分析该第二存取指令以取得一第二数据; 将该第一数据写入该第一实体区块; 以及将该第二数据写入该第二实体区块。
本发明所述的上述方法,其中该第一主装置地址链结至该第一实体区块的 至少一第一页, 且该第二主装置地址链结至该第二实体区块的至少一第二页。
本发明解决其技术问题所采用的技术方案之五是:构造一种用来管理一记 忆装置的方法, 该记忆装置包含至少一非遗失性内存组件, 每一非遗失性内存 组件包含多个区块, 该方法包含有: 建立至少一局部页地址链结表, 其含有多 个实体页地址与至少一逻辑页地址之间的页地址链结关系,其中该至少一局部 页地址链结表包含一第一局部页地址链结表与一第二局部页地址链结表,该第 一局部页地址链结表含有多个第一实体页的一第一页地址链结关系,而该第二 局部页地址链结表含有多个第二实体页的一第二页地址链结关系,以及该些第 二实体页异于该些第一实体页;依据该至少一局部页地址链结表建立一全局页 地址链结表; 以及依据该全局页地址链结表存取该记忆装置。
本发明所述的上述方法,其中该第一实体页属于一实体区块的数据页; 以 及在该些数据页全部被写入之后,该第一局部页地址链结表写入该实体区块的 至少一页。
本发明所述的上述方法,其中该第一局部页地址链结表写入该实体区块的 最后一页或最后几页。
本发明所述的上述方法, 其中该第一局部页地址链结表写入另一实体区 块。
本发明所述的上述方法,其中该些第一实体页属于一实体区块的一第一部 分, 以及该些第二实体页属于该实体区块的一第二部分, 其中该第一部分异于 该第二部分。
本发明所述的上述方法,其中依据该局部页地址链结表建立该全局页地址 链结表的步骤另包含:依据一逻辑页与记录于该第一局部页地址链结表的一第 一实体页地址之间的一第一页链结关系建立该全局页地址链结表;以及依据该 逻辑页与记录于该第一局部页地址链结表的一第二实体页地址之间的一第二 页链结关系更新该全局页地址链结表;其中该第一页地址链结关系被建立的时 间于该第二页地址链结关系被建立之前,以及该第一实体页地址异于该第二实 体页地址。
本发明所述的上述方法,其中依据该局部页地址链结表建立该全局页地址 链结表的步骤另包含: 依据该第一局部页地址链结表建立该全局页地址链结 表; 以及依据该第二局部页地址链结表更新该全局页地址链结表; 其中该第一 局部页地址链结表被建立的时间于该第二局部页地址链结表被建立之前。
本发明所述的上述方法,其中该全局页地址链结表包含数据页被完全写入 的实体区块的页地址链结关系。
实施本发明的方法与装置, 具有以下有益效果: 本发明的方法与装置可大 幅地省下建立逻辑实体地址链结表的时间,诸如建立一全局页地址链结表的时 间。 因此, 本发明提供较习知技术更佳的效能。
本发明的方法与装置可于存取该些页期间记录使用信息,而因此可依据该 使用信息来有效率地管理全部的区块的使用。于是, 该备用区与该数据区的安 排可被优化。 附图说明
下面将结合附图及实施例对本发明作进一步说明, 附图中:
图 1是本发明一第一实施例的一种记忆装置的示意图;
图 2A是图 1所示的非遗失性内存组件中之一者的一区块当中的一局部页 地址链结表, 其中该非遗失性内存组件于本实施例中为快闪芯片;
图 2B比较图 2A所示的局部页地址链结表的一维数组示例与二维数组示 例;
图 3A至 3F分别是本发明一实施例中关于图 1所示的记忆装置的一个全 局页地址链结表的数个范例版本;
图 4是本发明一实施例中关于图 2A所示的快闪芯片的一个区块中的一局 部页地址链结表;
图 5A至 5B分别是图 4所示的实施例中关于图 1所示的记忆装置的全局 页地址链结表的数个范例版本;
图 6是本发明一实施例中关于图 1所示的非遗失性内存组件中之一者的内 容安排, 其中该非遗失性内存组件于本实施例中为快闪芯片;
图 7A至 7D是本发明一实施例中关于图 1所示的非遗失性内存组件中的 实体地址, 其中该些非遗失性内存组件于本实施例中为多个快闪芯片;
图 8是用来管理图 7 A至 7D所示的快闪芯片的一数据区与一备用区( Spare Region );
图 9A至 9D分别是图 7A至 7D所示的实施例中的一全局页地址链结表的 数个范例版本;
图 10A至 10F分别是图 7A至 7D所示的实施例中的一有效页数量表的数 个范例版本;
图 11是本发明一实施例中关于图 7A至 7D所示的快闪芯片的一个有效页 位置表。
【主要组件符号说明】
Figure imgf000011_0001
具体实施方式
请参考图 1,其是依据本发明一第一实施例的一种记忆装置 100的示意图。 记忆装置 100包含: 一处理单元 110, 一遗失性 (Volatile) 内存 120, 一传输 接口 130, 多个非遗失性 (Non- volatile, NV) 内存组件 140_0、 140—1、 …、 与 140_N (例如: 快闪芯片), 以及一总线 150。 于典型状况下, 于传输接口 130 耦接至一主装置 (未显示于图 1 ) 之后, 该主装置可透过传输接口 130来存取 (Access) 记忆装置 100。 举例来说, 该主装置可代表一个人计算机, 例如一 膝上型计算机或一桌面计算机。
处理单元 110可依据内嵌于处理单元 110中或接收自处理单元 110之外的 程序代码 (未显示于图 1 ) 来管理记忆装置 100。 例如: 该程序代码可为内嵌 于处理单元 110的硬件码, 尤其是一只读存储器码(ROM code)。 又例如: 该 程序代码可为接收自处理单元 110之外的韧体码。尤其是, 处理单元 110用来 控制遗失性内存 120、 传输接口 130、 非遗失性内存组件 140_0、 140_1、 ...、 与 140_N、 以及总线 150。 本实施例的处理单元 110可为一高级缩减指令集计 算机机器 (Advanced Reduced Instruction Set Computer Machine, Advanced RISC Machine, ARM)处理器或一亚哥缩减指令集计算机核心(Argonaut RISC Core, ARC)处理器。 这只是为了说明目的而已, 并非对本发明的限制。 依据本实施 例的不同的变化例, 处理单元 110可为其它种处理器。
另夕卜,遗失性内存 120用来储存一全局页地址链结表(Global Page Address Linking Table), 该主装置 (未显示) 所存取的资料、 以及用来存取记忆装置 100 的其它所需信息。 本实施例的遗失性内存 120 可为一动态随机存取内存 (Dynamic Random Access Memory, DRAM) 或一静态随机存取内存 (Static Random Access Memory, SRAM) o这只是为了说明目的而已, 并非对本发明的 限制。依据本实施例的不同的变化例,遗失性内存 120可为其它种遗失性内存。
依据本实施例,图 1所示的传输接口 130用来传输数据以及该主装置与记 忆装置 100之间的指令,其中传输接口 130符合一特定通讯标准诸如串行高级 技术附件 (Serial Advanced Technology Attachment, SATA) 标准、 并列高级技 术附件( Parallel Advanced Technology Attachment, PATA)标准、 或通用串行总 线 (Universal Serial Bus, USB )标准。 例如: 记忆装置 100是一设置于该主装 置中的固态硬盘 (Solid State Drive, SSD) , 且该特定通讯标准可以用来实施该 主装置的内部通讯的一些典型通讯标准,诸如串行高级技术附件标准或并列高 级技术附件标准。 又例如: 记忆装置 100是一固态硬盘且位于该主装置之外, 并且该特定通讯标准可以用来实施该主装置的外部通讯的一些典型通讯标准, 诸如通用串行总线标准。这只是为了说明目的而已, 并非对本发明的限制。依 据本实施例的不同的变化例,记忆装置 100可为一可携式记忆装置诸如一记忆 卡,且该特定通讯标准可为用来实施一记忆卡的输入 /输出接口的一些典型通 讯标准, 诸如安全数码 (Secure Digital, SD)标准或小型快闪 (Compact Flash, CF) 标准。
另外, 非遗失性内存组件 140_0、 140_1 与 140_N用来储存数据, 其中非遗失性内存组件 140_0、 140_1、 ...、 与 140_N可为(但不限于) NAND 型快闪芯片。总线 150用来耦接处理单元 110、遗失性内存 120、传输接口 130、 和非遗失性内存组件 140_0、 140_1、 ...、 与 140_N, 以及用来进行其通讯。
依据本实施例,处理单元 110可于记忆装置 100中提供至少一局部页地址 链结表 (Local Page Address Linking Table) 予记忆装置 100 的至少一区块 (Block) ,其中该局部页地址链结表包含多个页的实体页地址与逻辑页地址之 间的链结关系。于本实施例中, 处理单元 110于记忆装置 100的写入运作期间 建立该局部页地址链结表。处理单元 110可另依据该局部页地址链结表建立上 述的全局页地址链结表。例如: 处理单元 110自该至少一局部页地址链结表读 取一特定页之一第一实体页地址与一第一逻辑页地址之间的一第一链结关系, 然后将该第一链结关系记录进该全局页地址链结表。处理单元 110可自该至少 一局部页地址链结表另读取该特定页的一第二实体页地址与该第一逻辑页地 址之间的一第二链结关系,然后将该第二链结关系写入 /记录进该全局页地址 链结表, 以更新该全局页地址链结表。
尤其是,处理单元 110于记忆装置 100中分别提供多个局部页地址链结表 予记忆装置 100的多个区块。亦即, 上述的至少一局部页地址链结表包含多个 局部页地址链结表。处理单元 110可另依据该些局部页地址链结表建立上述的 全局页地址链结表。更明确而言, 处理单元 110可读取该些局部页地址链结表 中之一者以更新上述的全局页地址链结表。例如: 一第一实体页的第一链结关 系读取自该些局部页地址链结表的一第一局部页地址链结表,而一第二实体页 的第二链结关系读取自该些局部页地址链结表的一第二局部页地址链结表。该 些局部页地址链结表的实施细节另参考图 2A说明如下。
图 2A是非遗失性内存组件 140_0的一区块当中的一局部页地址链结表, 其中为了简明起见, 非遗失性内存组件 140_0于本实施例中称为快闪芯片 0。 如图 2A所示,快闪芯片 0包含多个区块,例如本实施例中为区块 0、 1、 2、 ...、
Mo请注意,一区块是一抹除单位。换言之, 当需要抹除数据时, 处理单元 110 同时抹除储存于该区块的全部数据。 另外, 一区块, 诸如图 2A所示的区块 0, 包含多个页。 例如: 快闪芯片 0的区块 0包含 128页。 在一区块诸如区块 0 当中, 这些页被区分为两个分区, 即用来储存数据的一数据分区以及用来储存 一局部页地址链结表 0的一表格分区。该区块的资料分区内的诸页可称为该区 块的资料页。
依据本实施例,该数据分区内的页数以及该表格分区内的页数可依需要来 订定。 例如: 页 0、 1、 2 126用来储存数据, 且该区块中剩下的页用来 储存局部页地址链结表 0。 这只是为了说明目的而已, 并非对本发明的限制。 依据本实施例的一变化例, 该资料分区可包含少于 127页, 且该表格分区可包 含两页或更多页。依据本实施例的另一变化例, 该区块内的总页数、 该数据分 区内的页数以及该表格分区内的页数可分别予以变化。请注意, 一页是一写入 单位。 换言之, 当需要写入数据时, 处理单元 110—次将相当于一页的资料写 入一页。 依据本实施例, 图 1所示的非遗失性内存组件 140_0、 140_1 与 140_N分别称为快闪芯片 0、 1 与 N, 其中非遗失性内存组件 140_0、
140_1 与 140_N中的每一区块可具有一局部页地址链结表。 为了简明起 见, 只有快闪芯片 0的区块 0的局部页地址链结表 0绘示于图 2A, 是因为每 一局部页地址链结表的功能与运作都彼此相似。
于本实施例中,局部页地址链结表 0被建立的时间点是当区块 0中的全部 数据页已被写入, 也就是被完全写入 (Fully Programmed) 之时。 然而, 于区 块 0中的数据页被完全写入之前,处理单元 110会暂时地在遗失性内存 120中 储存一暂时局部页地址链结表 0; 当区块 0中一实体页地址与一逻辑页地址之 间的任何链结关系改变时, 处理单元 110就更新暂时局部页地址链结表 0。
依据本实施例, 该暂时 /非暂时局部页地址链结表(例如: 该暂时局部页 地址链结表 0或局部页地址链结表 0) 的一字段 (项目) 的排列顺位代表一实 体页地址, 而此字段中的内容代表一相关的逻辑页地址。 例如: 假设 iP与 jP 分别为图 2A所示的暂时 I非暂时局部页地址链结表的示例表格位置 (iP, jP)当 中的列数与行数, 并且 iP = 0、 1、 …等且 jP = 0、 1、 …等。 在图 2A所示的暂 时 I非暂时局部页地址链结表的这个二维数组示例中, 对应于第 (iP * 4 + jP)个 字段的示例表格位置 (iP, jp)代表一实体页地址 PPN, 其可描述如下:
PPN = (PBN * DPC + ip * 4 + jP)
其中参数 PBN表示讨论中的实体区块的实体区块编号(例如: PBN = 0、 1、 2、 ... 等, 分别对应于区块 0、 1、 2、 …等), 而参数 DPC则表示每一区块的资料页 数量 (例如: 于本实施例中为 127 )。 这只是为了说明目的而已, 并非对本发 明的限制。为了便于理解,该暂时 I非暂时局部页地址链结表可绘示为单一行, 如图 2B右半部所示。 给定 iP仍为列数且 iP = 0、 1、 …等, 则在图 2B右半部 所示的这个一维数组示例当中, 针对区块 PBN的暂时 I非暂时局部页地址链 结表而言,对应于第 iP个字段的示例表格位置 iP代表一实体页地址 (PBN * DPC + iP)。 亦即, 针对这个一维数组示例, 上式可被重新改写如下:
PPN = (PBN * DPC + iP)
请注意, 于本实施例中, 局部页地址链结表 0中的逻辑页地址的范围不大 于区块 0中的页数 (于本实施例中即 128)。 这只是为了说明目的而已, 并非 对本发明的限制。依据本实施例的一变化例, 一局部页地址链结表诸如局部页 地址链结表 0中的逻辑页地址的范围可大于一区块诸如区块 0中的页数。
于图 2A所示的暂时局部页地址链结表 0或局部页地址链结表 0当中, 对 应于第一字段的示例表格位置 (0, 0) (即左上角位置)代表实体页地址 0x0000, 对应于第二字段的示例表格位置 (0, 1)代表实体页地址 0x0001, 对应于第三字 段的示例表格位置 (0, 2)代表实体页地址 0x0002, 对应于第四字段的示例表格 位置 (0, 3)代表实体页地址 0x0003, 对应于第五字段的示例表格位置 (1, 0)代表 实体页地址 0x0004, 如此这般。
依据图 2A所示的实施例, 当该主装置传送一指令 0予处理单元 110以在 一逻辑页地址 0x0002写入数据 0时, 处理单元 110将数据 0与逻辑页地址 0x0002写入快闪芯片 0的区块 0的页 0,其中资料 0被写入页 0的一数据字节 区 (Data Byte Region, 于图 2A中标示为 "DBR"), 而逻辑页地址 0x0002则 被写入页 0的一备用字节区 (Spare Byte Region, 于图 2A中标示为 "SBR") 作为备用信息。 另外, 处理单元 110将逻辑页地址 0x0002写入该暂时局部页 地址链结表 0的第一字段 (于本实施例中或为其示例表格位置 (0, 0), 即第一 列、第一行的示例表格位置), 以藉此指出逻辑页地址 0x0002链结 I映像至快 闪芯片 0的区块 0的页 0, 其实体页地址为 0x0000。
相仿地,当该主装置接着传送一指令 1予处理单元 110以在一逻辑页地址 0x0001写入数据 1时, 处理单元 110将数据 1与逻辑页地址 0x0001写入快闪 芯片 0 的区块 0 的页 1, 其中资料 1 被写入页 1 的一数据字节区 (标示为 "DBR" ) , 且逻辑页地址 0x0001被写入页 1的一备用字节区 (标示为 "SBR" ) 作为备用信息。 另外, 处理单元 110将逻辑页地址 0x0001写入该暂时局部页 地址链结表 0的第二字段 (于本实施例中或为其示例表格位置 (0, 1), 即第一 列、第二行的示例表格位置), 以藉此指出逻辑页地址 0x0001链结 I映像到快 闪芯片 0的区块 0的页 1, 其实体页地址为 0x0001。之后, 当该主装置传送一 指令 2予处理单元 110以在逻辑页地址 0x0002写入数据 2时, 处理单元 110 将数据 2与逻辑页地址 0x0002写入区块 0的页 2, 其中资料 2被写入页 2的 一数据字节区(标示为" DBR" ) , 且逻辑页地址 0x0002被写入页 2的一备用字 节区(标示为" SBR")作为备用信息。另外,处理单元 110将逻辑页地址 0x0002 写入该暂时局部页地址链结表 0的第三字段(于本实施例中或为其示例表格位 置 (0, 2), 即第一列、 第三行的示例表格位置), 以藉此更新链结 /映射关系: 逻辑页地址 0x0002链结 I映像到快闪芯片 0的区块 0的页 2, 其实体页地址 为 0x0002。 为了简明起见, 后续各页的运作与前述相仿之处不再重复赘述。
请参考图 2A 的右上角部分, 在以上运作之后, 一系列的逻辑页地址 {0x0002, 0x0001, 0x0002, 0x0005, 0x0003, 0x0007, 0x0010, 0x0008, 0x0000, 0x0009, 0x0004}遂被写入暂时局部页地址链结表 0。 当区块 0当中的全部资料 页 (于本实施例即页 0、 1、 2 126) 均已被写入时, 处理单元 110复制 暂时局部页地址链结表 0以建立局部页地址链结表 0。 更明确而言, 处理单元 110将局部页地址链结表 0写入快闪芯片 0中的区块 0的该表格分区(于本实 施例即区块 0中所剩的页 127)。 这只是为了说明目的而已, 并非对本发明的 限制。依据本实施例的一变化例, 处理单元 110可针对一区块中的一部分数据 页写入一局部页地址链结表, 而非针对该区块中的全部资料页。
于本变化例中, 在写入一特定区块的数据页中的一第一部分之后, 处理单 元 110可针对第一部分数据页写入一第一局部页地址链结表,其中该第一局部 页地址链结表位于该第一部分数据页之后。在写入该特定区块的数据页中的一 第二部分之后,处理单元 110可针对第二部分数据页写入一第二局部页地址链 结表。 例如: 该第二局部页地址链结表位于该第二部分数据页之后。 又例如: 该第二局部页地址链结表位于该特定区块的结尾处 (例如: 最后一页)。 又例 如: 该第二局部页地址链结表位于该特定区块的次一区块的开始处(例如: 该 次一区块的第一页)。 又例如: 该第二局部页地址链结表位于该特定区块的次 一区块的另一页 (或其它某些页)。
图 3A至 3F分别是本发明一实施例中关于记忆装置 100的全局页地址链 结表的数个范例版本。当处理单元 110建立记忆装置 100的全局页地址链结表 时,处理单元 110读取分别对应于记忆装置 100各个区块的该些局部页地址链 结表每一者, 以建立该全局页地址链结表。 例如: 于记忆装置 100中, 若只有 快闪芯片 0的区块 0与 1 已被完全写入, 且若区块 0的局部页地址链结表 0 以及区块 1的全局页地址链结表 1已被建立,则处理单元 110读取局部页地址 链结表 0与 1以建立该全局页地址链结表。
首先请参考图 3A的左半部, 依据本实施例, 该全局页地址链结表的一字 段的排列顺位代表一逻辑页地址, 且此字段的内容代表一相关的实体页地址。 例如:给定 ^与 jL分别为图 3A左半部所示的全局页地址链结表的示例表格位 置 (iL, jL)的列数与行数,并且在此二维数组示例中 = 0、 1、…等且 jL = 0、 1、 ... 等,则对应于第 (iL * 4 + j 个字段的示例表格位置 (iL, jL)代表一逻辑页地址 ( * 4 + jL) o 这只是为了说明目的而已, 并非对本发明的限制。 为了便于理解, 该 全局页地址链结表可绘示为单一行, 如图 3A的右半部所示; 给定 ^仍为列数 且 iL = 0、 1、 …等, 则于该全局页地址链结表的这个一维数组示例中, 对应于 第 iL个字段的示例表格位置 iL代表一逻辑页地址 iL。
在图 3A左半部所示的全局页地址链结表中, 对应于第一字段的示例表格 位置 (0, 0) (即左上角位置) 代表逻辑页地址 0x0000, 对应于第二字段的示例 表格位置 (0, 1)代表逻辑页地址 0x0001, 对应于第三字段的示例表格位置 (0, 2) 代表逻辑页地址 0x0002, 对应于第四字段的示例表格位置 (0, 3)代表逻辑页地 址 0x0003, 对应于第五字段的示例表格位置 (1, 0)代表逻辑页地址 0x0004, 如 此这般。
当处理单元 110建立该全局页地址链结表时, 处理单元 110读取图 2A所 示的局部页地址链结表 0的第一字段并且取得逻辑页地址 0x0002, 而因此决 定逻辑页地址 0x0002链结到快闪芯片 0的区块 0的页 0,其实体页地址 0x0000。 如图 3A所示, 处理单元 110将实体页地址 0x0000 (实体页 0x0000) 写入该 全局页地址链结表的第三字段 (即其二维数组示例的示例表格位置 (0, 2)), 以 指出逻辑页地址 0x0002 (逻辑页 0x0002) 链结到实体页地址 0x0000。
接下来, 处理单元 110读取图 2A所示的局部页地址链结表 0的第二字段 并取得逻辑页地址 0x0001, 而因此决定逻辑页地址 0x0001链结到快闪芯片 0 的区块 0的页 1, 其实体页地址 0x0001。 如图 3B所示, 处理单元 110将实体 页地址 0x0001 写入该全局页地址链结表的第二字段, 以指出逻辑页地址 0x0001 (逻辑页 0x0001 ) 链结到实体页地址 0x0001 (实体页 0x0001 )。
然后, 处理单元 110读取图 2A所示的局部页地址链结表 0的第三字段并 取得逻辑页地址 0x0002, 而因此判定逻辑页地址 0x0002链结到快闪芯片 0的 区块 0的页 2, 其实体页地址 0x0002。 如图 3C所示, 处理单元 110将实体页 地址 0x0002写入 (或更新) 至该全局页地址链结表的第三字段, 以指出逻辑 页地址 0x0002 (逻辑页 0x0002 )链结到实体页地址 0x0002 (实体页 0x0002)。
接下来, 处理单元 110读取图 2A所示的局部页地址链结表 0的第四字段 并取得逻辑页地址 0x0005, 而因此判定逻辑页地址 0x0005链结到快闪芯片 0 的区块 0的页 3, 其实体页地址 0x0003。 如图 3D所示, 处理单元 110将实体 页地址 0x0003 写入该全局页地址链结表的第六字段, 以指出逻辑页地址 0x0005 (逻辑页 0x0005 ) 链结到实体页地址 0x0003 (实体页 0x0003 )。
之后, 处理单元 110读取图 2A所示的局部页地址链结表 0的第五字段并 取得逻辑页地址 0x0003, 而因此判定逻辑页地址 0x0003链结到快闪芯片 0的 区块 0的页 4, 其实体页地址 0x0004。 如图 3E所示, 处理单元 110将实体页 地址 0x0004写入该全局页地址链结表的第四字段, 以指出逻辑页地址 0x0003 (逻辑页 0x0003 ) 链结到实体页地址 0x0004实体页 0x0004)。 后续各链结关 系的相关运作与前述相仿之处不再重复赘述。 于读取图 2A所示的局部页地址 链结表 0 的全部字段以及将相对应的实体页地址填入该全局页地址链结表之 相关的字段之后, 处理单元 110建立该全局页地址链结表, 如图 3F所示。
图 4是本发明一实施例中关于快闪芯片 0的区块 1中的局部页地址链结表 1。于读取图 2A所示的局部页地址链结表 0的全部字段以及如图 3F所示地将 相对应的实体页地址填入该全局页地址链结表的相关的字段之后, 处理单元 110另读取区块 1中的局部页地址链结表 1以完成该全局页地址链结表。 请注 意, 于本实施例中, 当区块 1的全部数据页已被写入时, 处理单元 110建立局 部页地址链结表 1。 这只是为了说明目的而已, 并非对本发明的限制。 依据本 实施例的一变化例,当一区块中至少一数据页(例如:一数据页或多个数据页) 已被写入时, 处理单元 110可针对此区块建立一局部页地址链结表。于本变化 例中, 处理单元 110针对此区块而建立该局部页地址链结表, 尤其是针对该至 少一数据页而建立该局部页地址链结表。例如: 处理单元 110针对少数数据页 诸如此区块的实体页 0与 1而建立该局部页地址链结表, 其中针对实体页 0 与 1的该局部页地址链结表被建立且储存于后续的实体页, 即实体页 2。 当建 立(或更新)该全局页地址链结表时, 在处理单元 110于此区块的最后一页中 找不到局部页地址链结表的状况下,处理单元 110尝试找出此区块中最后写入 的页。 于本变化例中, 处理单元 110由最后一页开始往前面各页搜寻, 以找出 此区块中最后写入的页。于是, 处理单元 110自该区块中的最后写入的页读取 该局部页地址链结表的全部字段,并将相对应的实体页地址填入该全局页地址 链结表中的相关的字段, 以完成 /更新该全局页地址链结表。
依据图 4所示的实施例,处理单元 110读取全局页地址链结表 1的第一字 段并取得逻辑页地址 0x0006, 而因此判定逻辑页地址 0x0006链结到快闪芯片 0的区块 1的页 0, 其实体页地址于本实施例中是 0x0127。 如图 5A所示, 处 理单元 110将实体页地址 0x0127写入该全局页地址链结表的第七字段以指出 逻辑页地址 0x0006 (逻辑页 0x0006 ) 链结到实体页地址 0x0127 (实体页 0x0127
接下来,处理单元 110读取图 4所示的全局页地址链结表 1的第二字段并 取得逻辑页地址 0x0002, 而因此判定逻辑页地址 0x0002链结到快闪芯片 0的 区块 1的页 1, 其实体页地址是 0x0128。 如图 5B所示, 处理单元 110将实体 页地址 0x0128写入 (或更新) 至该全局页地址链结表的第三字段以指出逻辑 页地址 0x0002 (逻辑页 0x0002 )链结到实体页地址 0x0128 (实体页 0x0128)。 后续各链结关系的相关运作与前述相仿之处不再重复赘述。于读取该些局部页 地址链结表 0与 1的全部字段并将相对应的实体页地址填入该全局页地址链结 表的相关的字段之后, 处理单元 110完成该全局页地址链结表。
本实施例的处理单元 110 并不藉由读取非遗失性内存组件 140_0、 140_1、 ...、 与 140_N的全部页 (或全部记忆单位) 来建立该全局页地址链结 表, 而只是藉由读取该些被完全或部分写入的区块中的少数局部页地址链结 表, 或是读取代表该些区块的少数局部页地址链结表。 因此, 依据本发明所实 施的记忆装置必然具备比习知技术所实施者更佳的效率。
依据本实施例的一变化例, 在非遗失性内存组件 140_0、 140_1 与
140_N的全部数据区块的全部数据页被完全写入的状况下,处理单元 110只读 取分别对应于该些数据区块的该些局部页地址链结表以建立该全局页地址链 结表。 若非遗失性内存组件 140_0、 140_1 与 140_N总共具有 XD个数据 区块, 且每一数据区块具有 YD个数据页, 处理单元 110读取 XD个局部页地 址链结表(其总数据量于典型状况下小于 XD页)以建立该全局页地址链结表, 而非读取 XD.YD页。换言之,依据本发明建立该全局页地址链结表所需时间近 似于建立该全局区块地址链结表所需时间。
依据本实施例的另一变化例,在一特定区块并非被完全写入(即该特定区 块仅被部分写入)的状况下, 于某一时刻该特定区块中并没有局部页地址链结 表; 然而在挥发性内存 120 中存在针对该特定区块的一暂时局部页地址链结 表。在记忆装置 100进行关机之前, 本变化例的处理单元 110可将该暂时局部 页地址链结表写入该特定区块。例如:在记忆装置 100开机并开始一起始程序 之后, 该主装置可读取储存于该特定区块的该局部页地址链结表, 以建立或更 新该全局页地址链结表。这只是为了说明目的而已, 并非对本发明的限制。又 例如: 在记忆装置 100开机并开始一起始程序之后, 处理单元 110可读取先前 已写入该特定区块的某些页, 尤其是, 读取先前已写入该特定区块的每一页中 的备用字节区, 以建立或更新该全局页地址链结表。
在处理单元 110读取写入该特定区块的该些页以建立或更新该全局页地址 链结表的状况下, 处理单元 110必须从该特定区块读取小于 YD页的数据。 于 是, 若给定条件: 非遗失性内存组件 140_0、 140_1 与 140_N总共具有 ^个被完全写入的区块, 且另具有一个内含 YPP个已写入数据页的部分写入 区块;则处理单元 110为了完成该全局页地址链结表所必须读取的数据量小于 (XFP + YPP)页。 因此, 针对建立该全局页地址链结表, 依据本发明实施的记忆 装置仍具备比习知技术所实施者更佳的效率。
依据上述的各个实施例的不同的变化例, 处理单元 110建立该全局页地址 链结表的时间点可于记忆装置 100的任一起始程序期间,或为因应使用者要求 的任何时间。
依据上述的各个实施例的不同的变化例, 该全局页地址链结表可被分割为 储存于一个或多个非遗失性内存组件的多个部分表格(例如: 该些部分表格分 别储存于非遗失性内存组件 140_0、 140_1 与 140_N)。 每一分割后的部 分表格可称为副全局页地址链结表。处理单元 110可读取该全局页地址链结表 的至少一个副全局页地址链结表(例如: 一个副全局页地址链结表, 一些副全 局页地址链结表, 或全部的副全局页地址链结表) 并予以储存在遗失性内存 120中; 其各种实施变化可依据该全局页地址链结表的大小与遗失性内存 120 的大小来决定, 或依据其它要求来决定。处理单元 110可利用储存于遗失性内 存 120的副全局页地址链结表来进行上述的各个实施例所揭露的该些逻辑-至- 实体地址转换运作。
图 6是本发明一实施例中关于非遗失性内存组件 140_0的内容安排, 其中 如前面所述, 非遗失性内存组件 140_0于本实施例中称为快闪芯片 0。 如图 6 所示, 一页包含多个区段, 例如: 区段 0、 1、 2、 与 3。 一区段为最小读取单 位, 其于本实施例中可为 512字节 (Byte)。 换言之, 在一读取运作期间, 处 理单元 110可读取一个区段或多个区段。
图 7A至 7D是本发明一实施例中关于快闪芯片 0、 1 与 N的实体地 址; 于本实施例中, N = 3且 M = 1023。 由于本实施例的实体地址可落入比上 述揭露的某些实施例中所使用的地址范围 [0x0000, OxFFFF]更为宽广的范围; 为了简明起见, 以下该些实体地址以十进制系统来绘示。这只是为了说明的目 而已, 并非对本发明的限制。依据本实施例的一变化例, 该些实体地址可利用 十六进制系统来绘示, 其中相较于以上某些实施例, 该些实体地址可具有更多 位数。依据本实施例的另一变化例, 该些实体地址可依需要而利用另一种进位 系统来绘示。
针对该些实体区块地址, 快闪芯片 0的第一区块被视为快闪芯片 0至 3的 第一区块, 且被寻址(Address)为实体区块地址 0, 而因此可称为实体区块 0。 快闪芯片 0的最后一区块被视为快闪芯片 0至 3的第 1024个区块, 且被寻址 为实体区块地址 1023, 而因此可称为实体区块 1023。 快闪芯片 1的第一区块 被视为快闪芯片 0至 3的第 1025个区块, 且被寻址为实体区块地址 1024, 而 因此可称为实体区块 1024, 如此这般。 快闪芯片 3的最后一区块被视为快闪 芯片 0至 3的第 4096个区块, 且被寻址为实体区块地址 4095, 而因此可称为 实体区块 4095。 于本实施例中, 快闪芯片 0至 3的区块包含 4组实体区块: {0, 1, 1023 }、 { 1024, 1025, 2047 }、 {2048, 2049, 3071 }、 与 {3072, 3073, ..., 4095 }, 即总共 4096个实体区块。
针对该些实体页地址, 实体区块 0的第一页被视为快闪芯片 0至 3的第一 页, 且被寻址为实体页地址 0, 而因此可称为实体页 0。 实体区块 0的最后一 页被视为快闪芯片 0至 3的第 128页, 且被寻址为实体页地址 127, 而因此可 称为实体页 127。 实体区块 1的第一页被视为快闪芯片 0至 3的第 129页, 且 被寻址为实体页地址 128,而因此可称为实体页 128,如此这般。实体区块 4095 的最后一页被视为快闪芯片 0至 3 的第 524288页, 且被寻址为实体页地址 524287, 而因此可称为实体页 524287。 于本实施例中, 快闪芯片 0至 3的诸 页包含 4096组实体页: {0, 1, 127}、 { 128, 129, 255 }、 …、 与 {524160, 524161, 524287} , 即总共 524288个实体页。 图 8是用来管理图 7A至 7D所示的快闪芯片 0至 3的一数据区与一备用 区 (Spare Region )0 如图 8所示, 快闪芯片 0至 3在逻辑上被区分为该数据区 与该备用区。 该数据区用来储存数据, 且在一开始可包含实体区块 2、 3 与 4095。 该备用区用来写入新资料, 其中该备用区于典型状况下包含已被抹 除的区块, 且在一开始可包含实体区块 0与 1。 在许多存取运作之后, 该备用 区可在逻辑上包含不同的一组实体区块,且该数据区可在逻辑上包含其它实体 区块。 例如: 在许多存取运作之后, 该备用区可包含实体区块 4094与 4095, 且该数据区可包含实体区块 0至 4093。 于另一实施例中, 该备用区可包含实 体区块 0、 1024、 2048、 与 3096, 即快闪芯片 0至 3中的每 1快闪芯片包含在 逻辑上属于该备用区的至少一区块。请注意, 该数据区与该备用区各自的区块 数量可按照使用者 I设计者需求来决定。例如:该备用区可包含 4个实体区块, 且该数据区可包含 4092个实体区块。
于写入运作期间, 该主装置传送一指令 CO予记忆装置 100以于对应的主 装置地址 0000008至 0000011写入 4个区段的资料 DSQ至 DS3。遗失性内存 120 暂时地储存数据 DSQ至 DS3。 处理单元 110分析指令 CO以执行对应于指令 CO 的写入运作。处理单元 110将主装置地址 0000008至 0000011转换成相关的逻 辑地址。处理单元 110将主装置地址 0000008除以一页的区段数, 于本实施例 中即除以 4, 并且取得一商数 2与一余数 0。 商数 2表示其逻辑页地址为 2, 而因此逻辑页地址 2所指出的逻辑页可称为逻辑页 2。 另外, 余数 0表示数据 DSQ应被储存于一页的第一区段。 处理单元 110另将主装置地址 0000008除以 一区块的区段数, 于本实施例中即除以 512, 并且取得一商数 0与一余数 8。 商数 0表示其逻辑区块地址为 0, 而因此逻辑区块地址 0所指出的逻辑区块可 称为逻辑区块 0。
实作上, 当该主装置地址以二进制系统来表示时, 该些除法运作可藉由截 去 (Truncate) 该主装置地址的一部分位 (Bit) 来进行。 例如: 当要将主装置 地址 0000008除以 4时,处理单元 110自该主装置地址的二进制表示法的诸位 中抽取最后两位, 即包含最低有效位 (Least Significant Bit, LSB ) 的两个相邻 /连续位, 以取得余数 0, 并从该二进制表示法抽取其它位以取得商数 2。 另 外, 当要将主装置地址 0000008除以 512时, 处理单元 110可从该主装置地址 的二进制表示法抽取最后九位, 即包含最低有效位的九个相邻 /连续位, 以取 得余数 8, 并从该二进制表示法抽取其它位以取得商数 0。 因此, 于本实施例 中, 主装置地址 0000008实质上包含 (具有)逻辑页地址 2与逻辑区块地址 0的 讯息。 请注意, 由于主装置地址 0000008 固有地 (inherently) 属于逻辑页 2 且固有地属于逻辑区块 0, 故本实施例的一变化例的处理单元 110可藉由位位 移(Bit-Shifting)来分析主装置地址 0000008, 而非实际地进行该些除法运作。
相仿地, 本实施例的处理单元 110决定主装置地址、 0000009、 0000010、 与 0000011的逻辑页地址均为 2 (即主装置地址 0000009、 0000010、与 0000011 全部固有地属于逻辑页 2, 或包含逻辑页地址 2), 且其诸逻辑区块地址均为 0 (即主装置地址 0000009、 0000010、与 0000011还全部固有地属于逻辑区块 0, 或包含逻辑区块地址 0)。 另外, 数据 DS1、 DS2、 与 DS3应分别被储存于一页 的第二、 第三、 与第四区段。
于本实施例中, 实体区块 0最初被抹除且于逻辑上置于该备用区, 处理单 元 110自该备用区提取(Pop)实体区块 0, 并将数据 DSQ至 DS3分别写入实体 页 0的第一、 第二、 第三、 与第四区段。 处理单元 110另将数值 0记录于本实 施例的该全局页地址链结表的第三字段, 以指出逻辑页 2链结到实体页 0。 图 9A至 9D分别是本实施例中的全局页地址链结表的数个范例版本。 本实施例 的示例表格位置的排列与第 3A至 3F图所示者相似; 因此, 为了简明起见就 不赘述其细节。 请参考图 9A所示的全局页地址链结表, 实体页地址 0已被写 入第三字段, 其指出逻辑页 2链结到实体页 0。 另一种实施选择是, 实体页地 址 0 可被写入其一暂时局部页地址链结表的一对应的字段以指出逻辑与实体 地址的链结关系。然后, 该全局页地址链结表可对应地被更新。依据该暂时局 部页地址链结表更新该全局页地址链结表的实施细节与上述的各个实施例相 似。为了简明起见, 以下各实施例仅绘示出该全局页地址链结表被更新以反映 一新的逻辑-至-实体页地址链结关系 (Logical-to-Physical Page Address Linking Relationship) ; 然而, 熟悉此领域的人士于取得本发明诸实施例的教导时应可 理解, 该暂时局部页地址链结表亦可被更新以反映该新的逻辑-至 -实体页地址 链结关系, 因此其相关叙述予以省略。
另外, 处理单元 110在存取该些页期间可记录使用信息。 例如: 该使用信 息包含一有效页数量表,用来分别记录该些区块各自的有效页数量。这只是为 了说明目的而已, 并非对本发明的限制。依据本实施例的一变化例, 该使用信 息包含一无效页数量表, 用来分别记录该些区块各自的无效页数量。 实作上, 由于每一完全写入区块包含一预定数量的页(例如: 于本实施例中是 128页), 故同一完全写入区块的有效页数量与无效页数量会彼此互补。
依据本实施例,处理单元 110将数值 1记录于该有效页数量表的第一字段, 以指出实体区块 0含有 1个有效页 (即 1页的有用数据; 或换句话说, 1页的 有效数据)。 请注意, 处理单元 110可将该全局页地址链结表与该有效页数量 表储存于遗失性内存 120。 依此实施方式, 在存取该快闪芯片期间, 处理单元 110可简便地将该全局页地址链结表与该有效页数量表予以更新。 这只是为了 说明目的而已, 并非对本发明的限制。依据本实施例的一变化例, 在记忆装置
100进行关机之前, 处理单元 110可将该全局页地址链结表与该有效页数量表 可从遗失性遗失性内存 120 读出并予以加载 /储存于非遗失性内存组件 140_0、 140_1、 ...、 与 140_N 中的一个或多个非遗失性内存组件。 尤其是, 处理单元 110 可将该全局页地址链结表与该有效页数量表储存于非遗失性内 存组件 140_0、 140_1、 ...、 与 140_N的一个或多个链结区块 (Link Block)。 依此实施方式, 在记忆装置 100进行关机时, 处理单元 110可将该全局页地址 链结表与该有效页数量表可予以保存。上述的每一个链结区块均为用来保存系 统信息的一特定区块。当记忆装置 100下一回开机时, 处理单元 110可简单地 从该 (些) 链结区块取得该全局页地址链结表与该有效页数量表。
接下来,该主装置传送一指令 C1予记忆装置 100以将 4个区段的数据 DS4 至 DS7写入对应的主装置地址 0000512至 0000515。 相仿地, 处理单元 110决 定主装置地址 0000512 至 0000515 的逻辑页地址均为 128 (即主装置地址 0000512至 0000515全部属于逻辑页 128, 或包含逻辑页地址 128), 且其诸逻 辑区块地址均为 1 (即主装置地址 0000512至 0000515还全部属于逻辑区块 1, 或包含逻辑区块地址 1 )。 另外, 数据 DS4至 DS7应分别被储存于一页的第一、 第二、 第三、 与第四区段。 由于实体页 0已被写入, 处理单元 110将数据 DS4 至 DS7分别写入实体页 1 (其紧随于实体页 0的下一页) 的第一、第二、 第三、 与第四区段。 处理单元 110另将数值 1记录于图 9A所示的全局页地址链结表 的第 129个字段中, 以指出逻辑页 128链结到实体页 1。 另外, 处理单元 110 将数值 2记录于该有效页数量表的第一字段(即处理单元 110以数值 2更新其 第一字段), 以指出实体区块 0含有 2个有效页 (即 2页的有效数据)。 亦即, 处理单元 110增加实体区块 0的有效页数量。这只是为了说明目的而已, 并非 对本发明的限制。 在该有效页数量表被代换为上述的无效页数量表的状况下, 处理单元 110维持实体区块 0的无效页数量的数值。
请注意,主装置地址 0000512至 0000515与主装置地址 0000008至 0000011 属于不同的逻辑区块(例如:主装置地址 0000512至 0000515属于逻辑区块 1, 而主装置地址 0000008至 0000011则属于逻辑区块 0), 然而, 这些主装置地 址全部链结至同一实体区块中的相关的页, 并且对应于主装置地址 0000512 至 0000515的数据以及对应于主装置地址 0000008至 0000011的数据均被写入 同一实体区块, 于本实施例中即实体区块 0。
于上述状况中, 当一第一组主装置地址 (例如: 主装置地址 0000512 至 0000515 ) 属于一第一逻辑区块 (例如: 逻辑区块 1 ) 且一第二组主装置地址 (例如: 主装置地址 0000008至 0000011 ) 属于一第二逻辑区块 (例如: 逻辑 区块 0) 时, 处理单元 110可于同一实体区块 (例如: 实体区块 0) —并写入 对应于该第一组主装置地址的数据与对应于该第二组主装置地址的数据。这只 是为了说明的目的而已, 并非对本发明的限制。依据本实施例的一变化例, 当 一第一组主装置地址属于一第一逻辑区块时,处理单元 110可将对应于该第一 组主装置地址的数据中的一第一部分与一第二部分分别写入不同的实体区块, 其中该数据的第一部分与第二部分并不重迭。
于本实施例中, 该主装置接着传送一指令 C2予记忆装置 100以将 4个区 段的数据 DS8至 DS11写入对应的主装置地址 0000004至 0000007。 相仿地, 处 理单元 110决定主装置地址 0000004至 0000007的逻辑页地址均为 1 (即主装 置地址 0000004至 0000007全部属于逻辑页 1, 或包含逻辑页地址 1 ), 且其诸 逻辑区块地址均为 0 (即主装置地址 0000004至 0000007全部属于逻辑区块 0, 或包含逻辑区块地址 0)。 另外, 数据 DS8至 DS11应分别被储存于一页的第一、 第二、 第三、 与第四区段。 由于实体页 1已被写入, 处理单元 110将数据 DS8 至 DS11分别写入实体页 2 (其紧随于实体页 1的下一页)的第一、第二、第三、 与第四区段。 处理单元 110另将数值 2记录于图 9A所示的该全局页地址链结 表的第二字段, 以指出逻辑页 1链结到实体页 2。 另外, 处理单元 110将数值 3记录于该有效页数量表的第一字段(即处理单元 110以数值 3更新其第一字 段), 以指出实体区块 0含有 3个有效页(即 3页的有效数据)。亦即, 处理单 元 110增加实体区块 0的有效页数量。这只是为了说明目的而已, 并非对本发 明的限制。在该有效页数量表被代换为上述的无效页数量表的状况下, 处理单 元 110维持实体区块 0的无效页数量的数值。
图 10A至 10F分别是本实施例中的有效页数量表的数个范例版本。首先请 参考图 10A 的左半部, 该有效页数量表的一字段的排列顺位代表一实体区块 地址, 而此字段中的内容代表一相关的有效页数量。 例如: 于本实施例中, 给 定 iPBLK与 jPBLK分别为该有效页数量表的示例表格位置 (iPBLK, jPBLK)当中的列数 与行数, 并且 iPB = 0、 1、 …等且 jPBU = 0、 1、 …等, 则对应于第 (iPB c * 4 + jPBLK)个字段的示例表格位置 (iPBLK, jPBLK)代表一实体区块地址 (iPBLK * 4 + jpBLK) o 这只是为了说明目的而已, 并非对本发明的限制。 为了便于理解, 该 有效页数量表可绘示为单一行, 如图 10A的右半部所示。 给定 iPBUC仍为列数 且 iPBLK = 0、 1、 …等, 于该有效页数量表的这个一维数组示例当中, 对应于 第 iPBLK个字段的示例表格位置 iPBLK代表一实体区块地址 (iPBLK)。 于是在本实 施例中执行指令 C2之后,该全局页地址链结表与该有效页数量表分别如图 9A 与图 10A所示地被更新了。
接下来,该主装置传送一指令 C3予记忆装置 100以将 4个区段的数据 DSQ' 至 DS3'写入 I更新于对应的主装置地址 0000008至 00000011。 相仿地, 处理 单元 110决定主装置地址 0000008至 00000011的逻辑页地址均为 2 (即主装 置地址 0000008至 0000011全部属于逻辑页 2, 或包含逻辑页地址 2), 且其诸 逻辑区块地址均为 0 (即主装置地址 0000008至 0000011全部属于逻辑区块 0, 或包含逻辑区块地址 0)。 另外, 数据 DSQ '至 DS3 '应分别被储存于一页的第一、 第二、 第三、 与第四区段。 由于实体页 2已被写入, 处理单元 110将数据 DSQ, 至 DS3,分别写入实体页 3 (其紧随于实体页 2的下一页)的第一、第二、第三、 与第四区段。 处理单元 110另将数值 3记录 I更新于图 9B所示的全局页地址 链结表的第三字段, 以指出逻辑页 2现在链结到实体页 3。另外,处理单元 110 仍将数值 3记录于图 10B所示的有效页数量表的第一字段, 以指出实体区块 0 仍含有 3个有效页。亦即, 处理单元 110维持实体区块 0的有效页数量的数值 3而不予改变。 这只是为了说明目的而已, 并非对本发明的限制。 在该有效页 数量表被代换为上述的无效页数量表的状况下, 处理单元 110增加实体区块 0 的无效页数量。
虽然有 4页 (即实体页 0至 3 ) 已被写入实体区块 0, 当中只有 3个实体 页 (即实体页 1至 3 )含有有效数据。 由于逻辑页 2的数据已被更新, 实体页 0不含有效数据且可被视为一含有无效数据的无效页。 于是在执行指令 C3之 后,该全局页地址链结表与该有效页数量表分别如图 9B与图 10B所示地被更 新了。
请参考图 9C与图 10C, 于本实施例中, 假设在一些写入运作另被进行之 后, 实体区块 0的诸页已经全被写入, 且实体区块 0的有效页数量为 100。 该 主装置传送一指令 C4予记忆装置 100以将 4个区段的数据 DSQ "至 DS3 "写入 I更新对应的主装置地址 0000008至 00000011。 相仿地, 处理单元 110决定 主装置地址 0000008至 00000011的逻辑页地址均为 2 (即主装置地址 0000008 至 0000011全部属于逻辑页 2, 或包含逻辑页地址 2), 且其诸逻辑区块地址均 为 0 (即主装置地址 0000008至 0000011全部属于逻辑区块 0, 或包含逻辑区 块地址 0)。另外, 数据 DSQ,,至 DS3"应分别被储存于一页的第一、第二、第三、 与第四区段。 由于实体区块 0的全部页已被写入, 处理单元 110将数据 DSQ" 至 DS3 "分别写入实体页 128 (其紧随于实体页 127的下一页) 的第一、 第二、 第三、 与第四区段。 处理单元 110另将数值 128记录 /更新于图 9D所示的全 局页地址链结表的第三字段, 以指出逻辑页 2现在链结到实体页 128。 在此, 实体页 3不包含有效数据且可被视为一含有无效数据的无效页。另外, 处理单 元 110将数值 1记录于该有效页数量表的第二字段以指出实体区块 1含有 1个 有效页(即 1页的有效数据), 并将数值 99记录 I更新于该有效页数量表的第 一字段以指出实体区块 0现在含有 99个有效页(即 99页的有效数据)。亦即, 处理单元 110减少实体区块 0的有效页数量。这只是为了说明目的而已, 并非 对本发明的限制。 在该有效页数量表被代换为上述的无效页数量表的状况下, 处理单元 110增加实体区块 0的无效页数量。
于是在执行指令 C4之后, 该全局页地址链结表与该有效页数量表分别如 图 9D与图 10D所示地被更新了。
接下来, 该主装置传送一指令 C5予记忆装置 100以读取对应于主装置地 址 0000008至 00000011的 4个区段的数据。处理单元 110分析指令 C5以执行 该读取运作。处理单元 110将主装置地址 0000008至 0000011转换成逻辑地址。 处理单元 110将主装置地址 0000008除以一页的区段数,于本实施例中即除以 4, 并且取得一商数 2与一余数 0。 商数 2表示其逻辑页地址为 2, 其中逻辑页 地址 2所指出的逻辑页为逻辑页 2。 另外, 余数 0表示数据 DSQ应已被储存于 一页的第一区段。 相仿地, 处理单元 110决定主装置地址 0000009、 0000010、 与 0000011的逻辑页地址均为 2 (即主装置地址 0000009、 0000010、与 0000011 全部属于逻辑页 2, 或包含逻辑页地址 2), 且其诸逻辑区块地址均为 0 (即主 装置地址 0000009、 0000010、 与 0000011还全部属于逻辑区块 0, 或包含逻辑 区块地址 0)。 另外, 对应于主装置地址 0000008至 00000011的数据应已分别 被储存于一页的第一、 第二、 第三、 与第四区段。 处理单元 110读取该全局页 地址链结表的第三字段并取得数值 128, 其指出对应于逻辑页 2的数据储存于 实体页 128。 处理单元 110读取实体页 128以取得数据 DSQ "至 DS3", 并传送 这些数据予该主装置。
于本实施例中, 假设在另外进行许多写入运作之后, 该数据区的全部的区 块(例如:实体区块 0至 4093 )已被完全写入,且该备用区包含实体区块 4094 与 4095, 其中该有效页数量表绘示于图 10E。 然后, 该主装置传送一指令 C6 予记忆装置 100以写入 4个区段的数据 DS12至 DS15。处理单元 110自该备用区 提取一实体区块, 诸如实体区块 4094, 以供写入数据 0812至0815。 一般而言, 建议应维持该备用区内有足够的区块数量。例如: 备用区的最少区块数量必须 总是大于零。又例如: 备用区的最少区块数量必须在大部分时间均大于零, 其 中只要不妨碍记忆装置 100的运作, 备用区的最少区块数量可暂时为零。
假设于本实施例中维持该备用区中足够的区块数量是必须的, 在该备用区 的区块数量 (或将会) 小于一预定值 (例如: 该预定值为 2) 的状况下, 处理 单元 110 必须抹除该数据区中的一实体区块, 以将此抹除后的实体区块推 (Push)入该备用区。处理单元 110搜寻该有效页数量表并找到不包含有效数 据的实体区块 2, 是因为实体区块 2的有效页数量为 0。 由于实体区块 2具有 最少有效页数量,处理单元 110抹除实体区块 2并且接着将抹除后的实体区块 2推入该备用区。如此, 该备用区现在包含实体区块 2与 4095。这只是为了说 明目的而已, 并非对本发明的限制。依据本实施例的一变化例, 一旦当实体区 块 2的有效页数量减少为零时, 处理单元 110可立即抹除实体区块 2。
依据本实施例, 假设在另外进行一些写入运作之后, 实体区块 4094 的全 部页已被写入, 其中该有效页数量表绘示于图 10F。 然后, 该主装置传送一指 令 C7予记忆装置 100以写入 4个区段的数据 DS16至 DS19。 处理单元 110自该 备用区提取一实体区块, 诸如实体区块 4095, 以供写入数据 DS16至 DS19
相仿地, 当侦测到该备用区的区块数量 (或将会) 小于该预定值, 处理单 元 110必须抹除该数据区中的至少一实体区块以将该(些)实体区块推入该备 用区。 本实施例的处理单元 110搜寻图 10F所示的有效页数量表并找到具有 40页有效数据的实体区块 0以及具有 50页有效数据的实体区块 1, 其中相较 于其它实体区块, 实体区块 0与 1具有最少有效页数量。 于本实施例中, 处理 单元 110将实体区块 0与 1的有效数据移到实体区块 2, 并更新该全局页地址 链结表以反映该有效数据的移动。 换言之, 处理单元 110读取实体区块 0与 1 中的有效数据, 将该有效数据写入实体区块 2, 并对应地将该有效数据的逻辑 页地址链结到已被写入该有效数据的实体页。于移动该有效数据之后, 处理单 元 110抹除实体区块 0与 1, 并将抹除后的实体区块 0与 1推入该备用区。
于本实施例中, 当侦测到该备用区的区块数量小于该预定值时, 处理单元 110于典型状况下会搜寻该有效页数量表以找出一个或多个具有最少有效页数 量的完全写入区块, 并抹除该(些)具有最少有效页数量的完全写入区块以将 该(些)完全写入区块推入该备用区。 这只是为了说明目的而已, 并非对本发 明的限制。依据本实施例的一变化例,在该有效页数量表被代换为上述的无效 页数量表的状况下,处理单元 110可搜寻该无效页数量表以找出一个或多个具 有最多无效页数量的完全写入区块, 并抹除本变化例的该(些)完全写入区块 以将该 (些) 完全写入区块推入该备用区。
依据本实施例, 处理单元 110已自该备用区多提取一个实体区块予该数据 区, 诸如实体区块 2, 以供合并(Merge)实体区块 0与 1。 这只是为了说明目 的而已, 并非对本发明的限制。依据本实施例的一变化例, 只要有一个部分写 入区块具有足够的空白页 (Free Page), 处理单元 110可将该 (些) 具有最少 有效页数量的完全写入区块合并到这个部分写入区块,其中上述的空白页代表 包含这些有效页的区块当中自从该区块最近一次抹除以来尚未被写入的页。例 如: 只要这个部分写入区块具有足够的空白页以供写入数据 DS16至 DS19以及 实体区块 0与 1的有效数据,处理单元 110就可将实体区块 0与 1合并到这个 部分写入区块, 诸如实体区块 4095。 又例如: 只要这个部分写入区块具有足 够的空白页以供写入数据 DS16至 DS19以及实体区块 0的有效数据, 处理单元 110就可将实体区块 0合并到这个部分写入区块, 诸如实体区块 4095。
实作上, 处理单元 110可将数据 DS16至 DS19写入实体区块 4095; 并且只 要实体区块 4095具有足够的空白页以供写入数据 DS16至 DS19以及实体区块 0 与 1的有效数据,处理单元 110可另将实体区块 0与 1的有效数据移到实体区 块 4095。 当然了, 本变化例的处理单元 110可更新该全局页地址链结表以反 映该有效数据的移动。相仿地, 于移动该有效数据之后, 处理单元 110抹除实 体区块 0与 1, 并将抹除后的实体区块 0与 1推入该备用区。
于本实施例的其它变化例中,处理单元 110可将 N个实体区块的有效数据 移到 M个实体区块, 其中 N与 M均为正整数, 且 N大于 M。 假设该 N个实 体区块中总共有 K页的有效数据,其中 K小于该 M个实体区块当中的空白页 的总数。 处理单元 110可从该 N个实体区块读取该 K页的有效数据, 抹除该 N个实体区块, 将该 K页的有效数据暂存于遗失性内存 120, 并将该 K页的 有效数据写入该 M个实体区块。 请注意, 一般而言, 该 N个实体区块与该 M 个实体区块可重迭 (例如: 该 N个实体区块与该 M个实体区块均包含至少一 相同的实体区块)或不重迭。在该 N个实体区块与该 M个实体区块不重迭(即 该 N个实体区块当中没有一个属于该 M个实体区块, 反之亦然) 的状况下, 该 K页的有效数据可被写入该 M个实体区块当中而不必等待抹除该 N个实体 区块, 且处理单元 110最终可产生 (N - M)个被抹除的区块。 当然了, 处理单元 110更新该全局页地址链结表以反映该有效数据的移动。
请注意, 于本实施例的其它变化例中, 处理单元 110可记录每一实体区块 的无效页数量。 例如: 给定每一实体区块的页数为 128, 一特定实体区块包含 128页, 当中包含: 含有无效数据的 28页无效页; 以及含有有效数据的 100 页有效页。亦即,该特定实体区块的无效页数量与有效页数量分别为 28与 100。 处理单元 110可建立快闪芯片 0至 3的一无效页数量表,并依据该无效页数量 表抹除一特定实体区块。在上述某些变化例中, 当处理单元 110必须抹除一实 体区块时,处理单元 110可依据该无效页数量表选择具有最多无效页数量的一 特定实体区块, 并抹除该特定实体区块。 实作上, 在该特定实体区块被抹除之 前, 其内所包含的有效数据必须被移到其它区块。为了有效率地移动该有效数 据,处理单元 110可在该特定区块中记录该有效数据的一个或多个有效数据位 置。尤其是, 处理单元 110可针对每一区块建立一有效页位置表以指出该些区 块中的一个或多个有效页 (其包含有效数据) 的位置。
图 11是本发明一实施例中关于快闪芯片 0至 3的一个有效页位置表。 该 有效页位置表的示例表格位置的排列与图 10B至 10F以及图 10A右半部所示 者相似; 因此, 为了简明起见就不赘述其细节。 于本实施例中, 该有效页位置 表的每一字段指出是否存在任何对应于一相关的实体区块的有效页位置。 例 如: 本实施例的每一字段包含分别对应于该相关的实体区块各页的 128个位。
尤其是, 该有效页位置表的每一字段指出对应于该相关的实体区块的该 (些)有效页位置。一特定字段中的每一位指出该相关的实体区块中的一相关 的页是否为有效或无效。 例如: 图 11所示的有效页位置表的第一字段被记录 为' O1011100101......11111", 其指出实体区块 0中的该 (些) 有效页位置。 更明确而言, 图 11 所示的有效页位置表的该特定字段中的一特定位的排 列顺位代表该相关的实体区块中的一相关的页的页地址偏移 (Page Address Offset) 或相对页位置 (Relative Page Position )。 例如: 针对图 11所示的有效 页位置表的第一字段当中所记录的位' O1011100101......11111", 最低有效位
(Least Significant Bit, LSB ) "1" 指出实体区块 0的第一页 (即实体页 0) — 含有有效数据的有效页, 且最高有效位 (Most Significant Bit, MSB ) "0" 指出 实体区块 0的最后一页 (即实体页 127 ) 是一含有无效数据的无效页, 其中最 低有效位与最高有效位之间的其它位分别指出该相关的实体区块中的其它实 体页的有效 /无效状态。 图 11所示的有效页位置表的其它字段与前述相仿之 处不再重复赘述。于是, 处理单元 110可依据该有效页位置表快速地移动有效 页中所包含的有效数据。
于本实施例中, 该特定字段中的最低有效位指出该相关的实体区块的第一 页是否为有效页或无效页,且该特定字段中的最高有效位指出该相关的实体区 块的最后一页是否为有效页或无效页。这只是为了说明目的而已, 并非对本发 明的限制。依据本实施例的一变化例, 该特定字段中的最低有效位指出该相关 的实体区块的最后一页是否为有效页或无效页,且该特定字段中的最高有效位 指出该相关的实体区块的第一页是否为有效页或无效页。例如:针对第一字段 当中所记录的位' O1011100101......11111", 最低有效位' T' 指出实体区块 0的 最后一页 (即实体页 127 ) 是一含有有效数据的有效页, 而最高有效位 "0" 指 出实体区块 0的第一页 (即实体页 0) 是一含有无效数据的无效页, 其中最低 有效位与最高有效位之间的其它位分别指出该相关的实体区块中的其它实体 页的有效 /无效状态。
于本实施例中, 该特定位的一逻辑值 "1" 指出该相关的页是一有效页, 而 该特定位的一逻辑值 "0" 指出该相关的页是一无效页。这只是为了说明目的而 已, 并非对本发明的限制。 依据本实施例的一变化例, 该特定位的逻辑值" 0" 指出该相关的页是一有效页, 而该特定位的逻辑值 "Γ指出该相关的页是一无 效页。
另外, 处理单元 110可将该有效页位置表储存于遗失性内存 120。 依此实 施方式, 在存取快闪芯片期间, 处理单元 110可轻易地将该有效页位置表予以 更新。这只是为了说明目的而已, 并非对本发明的限制。依据本实施例的一变 化例, 在记忆装置 100进行关机的前, 处理单元 110可将该有效页位置表从遗 失性内存 120读出并予以加载 I储存于非遗失性内存组件 140_0、 140_1 与 140_N当中的一个或多个。 尤其是, 处理单元 110可将该有效页位置表储 存于非遗失性内存组件 140_0、 140_1、 ...、 与 140_N的一个或多个链结区块。 依此实施方式, 当记忆装置 100进行关机时, 处理单元 110可将该有效页位置 表予以保存。于记忆装置 100下一回开机时,处理单元 110可轻易地从该(些) 链结区块取得该有效页位置表。
于另一实施例中, 在存取记忆装置 100期间, 该有效页位置表和该全局页 地址链结表可随时从遗失性内存 120被读出并加载 /储存至非遗失性内存组 件。例如: 该有效页位置表和该全局页地址链结表可于每逢预定时间周期(例 如: 2秒)、 或于每进行一组预定存取运作(例如: 100次写入运作)就被储存 一次。当记忆装置 100正要异常地关机时, 最新的有效页位置表和全局页地址 链结表不会从遗失性内存 120 被读出并加载 /储存至非遗失性内存组件。 然 后, 一旦记忆装置 100开机时, 为了建立该有效页位置表, 处理单元 110可搜 寻在该有效页位置表的最新的更新之后所存取的区块并且搜寻非遗失性内存 组件中的全局页地址链结表。处理单元 110搜寻这些区块的每一页中所储存的 逻辑页地址, 以建立并更新该全局页地址链结表。 此后, 处理单元 110可依据 更新后的全局页地址链结表来建立该有效页位置表。
相较于习知技术, 本发明的方法与装置可大幅地省下建立逻辑实体页地址 链结表的时间, 诸如建立该全局页地址链结表的时间。 因此, 本发明提供较习 知技术更佳的效能。
本发明的另一好处是, 本发明的方法与装置可于存取该些页期间记录该使 用信息, 而因此可依据该使用信息来有效率地管理全部的区块的使用。 于是, 该备用区与该数据区的安排可被优化。
另外, 以页为基础来管理闪存会带来许多好处。 例如: 随机写入的速度可 大幅地改善, 且写入放大索引 (Write Amplification Index) 可大幅地缩小。 由 于本发明不会导致习知技术中以页为基础来管理所常见的诸多副作用,故只要 将本发明应用于实际的实施上, 以页为基础来管理闪存就变得更简易可行, 且 会比以区块为基础来管理闪存更容易了解并据以实施。
以上所述仅为本发明的较佳实施例, 凡依本发明申请专利范围所做的均等 变化与修饰, 皆应属本发明的涵盖范围。

Claims

权 利 要 求
1、 一种用来管理一记忆装置的方法, 该记忆装置包含至少一非遗失性内 存组件, 每一非遗失性内存组件包含多个区块, 其特征在于, 该方法包含有: 提供至少一局部页地址链结表予该记忆装置的至少一区块,其中该局部页 地址链结表包含多个页的实体页地址与逻辑页地址之间的链结关系; 以及
依据该局部页地址链结表建立该记忆装置的一全局页地址链结表。
2、 根据权利要求 1所述的方法, 其特征在于, 其中提供至少一局部页地 址链结表予该记忆装置的至少一区块的步骤另包含:于该记忆装置的写入运作 期间针对该局部页地址链结表建立一暂时局部页地址链结表。
3、 根据权利要求 2所述的方法, 其特征在于, 其中当该区块中至少一数 据页已被写入时, 该局部页地址链结表被建立。
4、 根据权利要求 2所述的方法, 其特征在于, 其中当该区块中的全部数 据页已被写入时, 该局部页地址链结表被建立。
5、 根据权利要求 2所述的方法, 其特征在于, 其中提供至少一局部页地 址链结表予该记忆装置的至少一区块的步骤另包含:暂时地在该记忆装置的一 遗失性内存中储存该暂时局部页地址链结表,并且当该区块中一页的一实体页 地址与一逻辑页地址之间的任何链结关系改变时,更新该暂时局部页地址链结 表。
6、 根据权利要求 5所述的方法, 其特征在于, 其中在该区块中的数据页 被完全写入之前,该暂时局部页地址链结表暂时地被储于该遗失性内存且被更 新。
7、 根据权利要求 5所述的方法, 其特征在于, 其中提供至少一局部页地 址链结表予该记忆装置的至少一区块的步骤另包含:复制该暂时局部页地址链 结表以建立该局部页地址链结表。
8、 根据权利要求 5所述的方法, 其特征在于, 其中该暂时局部页地址链 结表的一字段的排列顺位代表一实体页地址,且该字段的内容代表一相关的逻 辑页地址。
9、 根据权利要求 1所述的方法, 其特征在于, 其中该局部页地址链结表 的一字段的排列顺位代表一实体页地址,且该字段的内容代表一相关的逻辑页 地址。
10、根据权利要求 1所述的方法, 其特征在于, 其中该局部页地址链结表 位于该区块。
11、 根据权利要求 10所述的方法, 其特征在于, 另包含有: 将该局部页 地址链结表写入该区块的最后一页。
12、根据权利要求 1所述的方法, 其特征在于, 其中提供至少一局部页地 址链结表予该记忆装置的至少一区块的步骤另包含:分别提供多个局部页地址 链结表予该记忆装置的多个区块;
其中依据该局部页地址链结表建立该记忆装置的该全局页地址链结表的 步骤另包含: 依据该些局部页地址链结表建立该全局页地址链结表。
13、 根据权利要求 12所述的方法, 其特征在于, 其中依据该局部页地址 链结表建立该记忆装置的该全局页地址链结表的步骤另包含:读取该些局部页 地址链结表中之一者以更新该全局页地址链结表。
14、根据权利要求 1所述的方法, 其特征在于, 其中依据该局部页地址链 结表建立该记忆装置的该全局页地址链结表的步骤另包含:读取该局部页地址 链结表中的每一者以建立该全局页地址链结表。
15、根据权利要求 1所述的方法, 其特征在于, 其中依据该局部页地址链 结表建立该记忆装置的该全局页地址链结表的步骤另包含: 自该至少一局部页 地址链结表读取一第一页的一第一实体页地址与一第一逻辑页地址之间的一 第一链结关系; 将该第一链结关系写入该全局页地址链结表; 自该至少一局部 页地址链结表读取该第一页的另一实体页地址与该第一逻辑页地址之间的一 第二链结关系;以及将该第二链结关系写入该全局页地址链结表以更新该全局 页地址链结表。
16、 根据权利要求 15所述的方法, 其特征在于, 其中该至少一局部页地 址链结表包含多个局部页地址链结表;以及该第一链结关系读取自该些局部页 地址链结表的一第一局部页地址链结表,且该第二链结关系读取自该些局部页 地址链结表的一第二局部页地址链结表。
17、根据权利要求 1所述的方法, 其特征在于, 其中该全局页地址链结表 的一字段的排列顺位代表一逻辑页地址,且该字段的内容代表一相关的实体页 地址。
18、根据权利要求 1所述的方法, 其特征在于, 其中该局部页地址链结表 中的逻辑页地址的范围大于该区块中的页数。
19、 一种记忆装置, 其特征在于, 包含有:
至少一非遗失性内存组件, 每一非遗失性内存组件包含多个区块; 以及 一处理单元,用来依据内嵌于该处理单元或接收自该处理单元之外的一程 序代码来管理该记忆装置,其中该处理单元用来提供至少一局部页地址链结表 予该记忆装置的至少一区块,以及该局部页地址链结表包含多个页的实体页地 址与逻辑页地址之间的链结关系;
其中该处理单元用来依据该局部页地址链结表建立该记忆装置的一全局 页地址链结表。
20、 根据权利要求 19所述的记忆装置, 其特征在于, 其中该处理单元于 该记忆装置的写入运作期间针对该局部页地址链结表建立一暂时局部页地址 链结表。
21、 根据权利要求 20所述的记忆装置, 其特征在于, 其中当该区块中至 少一数据页已被写入时, 该处理单元建立该局部页地址链结表。
22、 根据权利要求 20所述的记忆装置, 其特征在于, 其中当该区块中的 全部数据页已被写入时, 该处理单元建立该局部页地址链结表。
23、 根据权利要求 20所述的记忆装置, 其特征在于, 其中在该区块中的 数据页被完全写入之前,该处理单元暂时地在该记忆装置的一遗失性内存中储 存该暂时局部页地址链结表;以及当该区块中一页的一实体页地址与一逻辑页 地址之间的任何链结关系改变时, 该处理单元更新该暂时局部页地址链结表。
24、 根据权利要求 23所述的记忆装置, 其特征在于, 其中在该区块中的 数据页被完全写入之前,该暂时局部页地址链结表暂时地被储存于该遗失性内 存且被更新。
25、 根据权利要求 23所述的记忆装置, 其特征在于, 其中该处理单元复 制该暂时局部页地址链结表以建立该局部页地址链结表。
26、 根据权利要求 23所述的记忆装置, 其特征在于, 其中该暂时局部页 地址链结表的一字段的排列顺位代表一实体页地址,且该字段的内容代表一相 关的逻辑页地址。
27、 根据权利要求 19所述的记忆装置, 其特征在于, 其该局部页地址链 结表的一字段的排列顺位代表一实体页地址,且该字段的内容代表一相关的逻 辑页地址。
28、 根据权利要求 19所述的记忆装置, 其特征在于, 其中该局部页地址 链结表位于该区块。
29、 根据权利要求 28所述的记忆装置, 其特征在于, 其中该处理单元将 该局部页地址链结表写入该区块的最后一页。
30、 根据权利要求 19所述的记忆装置, 其特征在于, 其中该处理单元分 别提供多个局部页地址链结表予该记忆装置的多个区块;以及该处理单元依据 该些局部页地址链结表建立该全局页地址链结表。
31、 根据权利要求 30所述的记忆装置, 其特征在于, 其中该处理单元读 取该些局部页地址链结表中之一者以更新该全局页地址链结表。
32、 根据权利要求 19所述的记忆装置, 其特征在于, 其中该处理单元读 取该局部页地址链结表中的每一者以建立该全局页地址链结表。
33、 根据权利要求 19所述的记忆装置, 其特征在于, 其中该处理单元自 该至少一局部页地址链结表读取一第一页的一第一实体页地址与一第一逻辑 页地址之间的一第一链结关系、 将该第一链结关系写入该全局页地址链结表、 自该至少一局部页地址链结表读取该第一页的另一实体页地址与该第一逻辑 页地址之间的一第二链结关系、以及将该第二链结关系写入该全局页地址链结 表以更新该全局页地址链结表。
34、 根据权利要求 33所述的记忆装置, 其特征在于, 其中该至少一局部 页地址链结表包含多个局部页地址链结表;以及该第一链结关系读取自该些局 部页地址链结表的一第一局部页地址链结表,且该第二链结关系读取自该些局
35、 根据权利要求 19所述的记忆装置, 其特征在于, 其中该全局页地址 链结表的一字段的排列顺位代表一逻辑页地址,且该字段的内容代表一相关的 实体页地址。
36、 根据权利要求 19所述的记忆装置, 其特征在于, 其中该局部页地址 链结表中的逻辑页地址的范围大于该区块中的页数。
37、一种用来管理一记忆装置的方法,该记忆装置包含至少一非遗失性内 存组件, 每一非遗失性内存组件包含多个区块, 其特征在于, 该方法包含有: 自一主装置接收一第一存取指令;
分析该第一存取指令以取得属于一第一逻辑区块的一第一主装置地址; 将该第一主装置地址链结至一实体区块;
自该主装置接收一第二存取指令;
分析该第二存取指令以取得属于一第二逻辑区块的一第二主装置地址,其 中该第二逻辑区块异于该第一逻辑区块; 以及
将该第二主装置地址链结至该实体区块。
38、 根据权利要求 37所述的方法, 其特征在于, 其中该第一主装置地址 固有地属于该第一逻辑区块, 且该第二主装置地址固有地属于该第二逻辑区 块。
39、 根据权利要求 37所述的方法, 其特征在于, 其另包含有: 分析该第 一存取指令以取得一第一数据; 分析该第二存取指令以取得一第二数据; 将该 第一数据写入该实体区块; 以及将该第二数据写入该实体区块。
40、 根据权利要求 37所述的方法, 其特征在于, 其中该第一主装置地址 链结至该实体区块的至少一第一页,且该第二主装置地址链结至该实体区块的 至少一第二页。
41、一种用来管理一记忆装置的方法,该记忆装置包含至少一非遗失性内 存组件, 每一非遗失性内存组件包含多个区块, 其特征在于, 该方法包含有: 自一主装置接收一第一存取指令;
分析该第一存取指令以取得属于一逻辑区块的一第一主装置地址; 将该第一主装置地址链结至一第一实体区块的至少一页;
自该主装置接收一第二存取指令;
分析该第二存取指令以取得属于该逻辑区块的一第二主装置地址; 以及 将该第二主装置地址链结至一第二实体区块的至少一页,其中该第二实体 区块异于该第一实体区块。
42、 根据权利要求 41所述的方法, 其特征在于, 其中该第一主装置地址 与该第二主装置地址固有地属于该逻辑区块。
43、 根据权利要求 41所述的方法, 其特征在于, 另包含: 分析该第一存 取指令以取得一第一数据; 分析该第二存取指令以取得一第二数据; 将该第一 数据写入该第一实体区块; 以及将该第二数据写入该第二实体区块。
44、 根据权利要求 41所述的方法, 其特征在于, 其中该第一主装置地址 链结至该第一实体区块的至少一第一页,且该第二主装置地址链结至该第二实 体区块的至少一第二页。
45、一种用来管理一记忆装置的方法,该记忆装置包含至少一非遗失性内 存组件, 每一非遗失性内存组件包含多个区块, 其特征在于, 该方法包含有: 建立至少一局部页地址链结表,其含有多个实体页地址与至少一逻辑页地 址之间的页地址链结关系,其中该至少一局部页地址链结表包含一第一局部页 地址链结表与一第二局部页地址链结表,该第一局部页地址链结表含有多个第 一实体页的一第一页地址链结关系,而该第二局部页地址链结表含有多个第二 实体页的一第二页地址链结关系, 以及该些第二实体页异于该些第一实体页; 依据该至少一局部页地址链结表建立一全局页地址链结表; 以及 依据该全局页地址链结表存取该记忆装置。
46、 根据权利要求 45所述的方法, 其特征在于, 其中该第一实体页属于 一实体区块的数据页; 以及在该些数据页全部被写入之后, 该第一局部页地址 链结表写入该实体区块的至少一页。
47、 根据权利要求 46所述的方法, 其特征在于, 其中该第一局部页地址 链结表写入该实体区块的最后一页或最后几页。
48、 根据权利要求 46所述的方法, 其特征在于, 其中该第一局部页地址 链结表写入另一实体区块。
49、 根据权利要求 45所述的方法, 其特征在于, 其中该些第一实体页属 于一实体区块的一第一部分,以及该些第二实体页属于该实体区块的一第二部 分, 其中该第一部分异于该第二部分。
50、 根据权利要求 45所述的方法, 其特征在于, 其中依据该局部页地址 链结表建立该全局页地址链结表的步骤另包含:
依据一逻辑页与记录于该第一局部页地址链结表的一第一实体页地址之 间的一第一页链结关系建立该全局页地址链结表;以及依据该逻辑页与记录于 该第一局部页地址链结表的一第二实体页地址之间的一第二页链结关系更新 该全局页地址链结表;其中该第一页地址链结关系被建立的时间于该第二页地 址链结关系被建立之前, 以及该第一实体页地址异于该第二实体页地址。
51、 根据权利要求 45所述的方法, 其特征在于, 其中依据该局部页地址 链结表建立该全局页地址链结表的步骤另包含:依据该第一局部页地址链结表 建立该全局页地址链结表;以及依据该第二局部页地址链结表更新该全局页地 址链结表;其中该第一局部页地址链结表被建立的时间于该第二局部页地址链 结表被建立之前。
52、 根据权利要求 45所述的方法, 其特征在于, 其中该全局页地址链结 表包含数据页被完全写入的实体区块的页地址链结关系。
PCT/CN2009/073564 2008-11-06 2009-08-27 一种用来管理一记忆装置的方法以及其相关的记忆装置 WO2010051717A1 (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US11217308P 2008-11-06 2008-11-06
US61/112,173 2008-11-06
US14085008P 2008-12-24 2008-12-24
US61/140,850 2008-12-24
US12/471,462 2009-05-25
US12/471,462 US8285970B2 (en) 2008-11-06 2009-05-25 Method for managing a memory apparatus, and associated memory apparatus thereof

Publications (1)

Publication Number Publication Date
WO2010051717A1 true WO2010051717A1 (zh) 2010-05-14

Family

ID=42132878

Family Applications (2)

Application Number Title Priority Date Filing Date
PCT/CN2009/073567 WO2010051718A1 (zh) 2008-11-06 2009-08-27 用来管理一记忆装置的方法以及其相关的记忆装置
PCT/CN2009/073564 WO2010051717A1 (zh) 2008-11-06 2009-08-27 一种用来管理一记忆装置的方法以及其相关的记忆装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
PCT/CN2009/073567 WO2010051718A1 (zh) 2008-11-06 2009-08-27 用来管理一记忆装置的方法以及其相关的记忆装置

Country Status (4)

Country Link
US (15) US8219781B2 (zh)
CN (7) CN111414315B (zh)
TW (12) TWI775122B (zh)
WO (2) WO2010051718A1 (zh)

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8200887B2 (en) 2007-03-29 2012-06-12 Violin Memory, Inc. Memory management system and method
US9384818B2 (en) 2005-04-21 2016-07-05 Violin Memory Memory power management
US11010076B2 (en) 2007-03-29 2021-05-18 Violin Systems Llc Memory system with multiple striping of raid groups and method for performing the same
US9632870B2 (en) * 2007-03-29 2017-04-25 Violin Memory, Inc. Memory system with multiple striping of raid groups and method for performing the same
US8843691B2 (en) * 2008-06-25 2014-09-23 Stec, Inc. Prioritized erasure of data blocks in a flash storage device
US8219781B2 (en) * 2008-11-06 2012-07-10 Silicon Motion Inc. Method for managing a memory apparatus, and associated memory apparatus thereof
TWI410976B (zh) * 2008-11-18 2013-10-01 Lite On It Corp 固態儲存媒體可靠度的測試方法
CA2758235A1 (en) * 2009-04-27 2010-11-04 Kamlesh Gandhi Device and method for storage, retrieval, relocation, insertion or removal of data in storage units
EP2441004B8 (en) * 2009-06-12 2020-02-19 Violin Systems LLC Memory system having persistent garbage collection
US8140712B2 (en) * 2009-07-17 2012-03-20 Sandforce, Inc. System, method, and computer program product for inserting a gap in information sent from a drive to a host device
US8516166B2 (en) 2009-07-20 2013-08-20 Lsi Corporation System, method, and computer program product for reducing a rate of data transfer to at least a portion of memory
US8108737B2 (en) * 2009-10-05 2012-01-31 Sandforce, Inc. System, method, and computer program product for sending failure information from a serial ATA (SATA) solid state drive (SSD) to a host device
US9104546B2 (en) * 2010-05-24 2015-08-11 Silicon Motion Inc. Method for performing block management using dynamic threshold, and associated memory device and controller thereof
US8484420B2 (en) 2010-11-30 2013-07-09 International Business Machines Corporation Global and local counts for efficient memory page pinning in a multiprocessor system
TWI587136B (zh) * 2011-05-06 2017-06-11 創惟科技股份有限公司 快閃記憶體系統及其快閃記憶體無效資料頁資訊之管理方法與回收方法
JP5917016B2 (ja) * 2011-05-10 2016-05-11 キヤノン株式会社 情報処理装置、その制御方法、および制御プログラム
US9081663B2 (en) * 2011-11-18 2015-07-14 Stec, Inc. Optimized garbage collection algorithm to improve solid state drive reliability
CN103136215A (zh) * 2011-11-24 2013-06-05 腾讯科技(深圳)有限公司 存储系统的数据读写方法和装置
JP5907739B2 (ja) * 2012-01-26 2016-04-26 株式会社日立製作所 不揮発性記憶装置
CN103226517A (zh) * 2012-01-31 2013-07-31 上海华虹集成电路有限责任公司 对Nandflash的物理块按无效页数量进行动态排序的方法
JP6072428B2 (ja) * 2012-05-01 2017-02-01 テセラ アドバンスト テクノロジーズ インコーポレーテッド 制御装置、記憶装置、記憶制御方法
US9116792B2 (en) * 2012-05-18 2015-08-25 Silicon Motion, Inc. Data storage device and method for flash block management
US9244833B2 (en) 2012-05-30 2016-01-26 Silicon Motion, Inc. Data-storage device and flash memory control method
TWI448891B (zh) * 2012-09-06 2014-08-11 Silicon Motion Inc 資料儲存裝置與快閃記憶體控制方法
TWI492052B (zh) * 2012-06-18 2015-07-11 Silicon Motion Inc 存取快閃記憶體的方法以及相關的記憶裝置
US9384125B2 (en) 2012-06-18 2016-07-05 Silicon Motion Inc. Method for accessing flash memory having pages used for data backup and associated memory device
JP6030485B2 (ja) * 2013-03-21 2016-11-24 日立オートモティブシステムズ株式会社 電子制御装置
JP2015001909A (ja) * 2013-06-17 2015-01-05 富士通株式会社 情報処理装置、制御回路、制御プログラム、および制御方法
CN103559141A (zh) * 2013-11-01 2014-02-05 北京昆腾微电子有限公司 非易失性存储器的管理方法和装置
US9547510B2 (en) * 2013-12-10 2017-01-17 Vmware, Inc. Tracking guest memory characteristics for memory scheduling
US9529609B2 (en) 2013-12-10 2016-12-27 Vmware, Inc. Tracking guest memory characteristics for memory scheduling
US9747961B2 (en) * 2014-09-03 2017-08-29 Micron Technology, Inc. Division operations in memory
US9542118B1 (en) * 2014-09-09 2017-01-10 Radian Memory Systems, Inc. Expositive flash memory control
KR20160075165A (ko) * 2014-12-19 2016-06-29 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US20160179399A1 (en) * 2014-12-23 2016-06-23 Sandisk Technologies Inc. System and Method for Selecting Blocks for Garbage Collection Based on Block Health
KR102391678B1 (ko) 2015-01-22 2022-04-29 삼성전자주식회사 저장 장치 및 그것의 서스테인드 상태 가속 방법
TWI545433B (zh) * 2015-03-04 2016-08-11 慧榮科技股份有限公司 實體儲存對照表維護方法以及使用該方法的裝置
US10223001B2 (en) * 2015-03-12 2019-03-05 Toshiba Memory Corporation Memory system
TWI574274B (zh) * 2015-05-07 2017-03-11 慧榮科技股份有限公司 循環區塊模式下的資料存取方法以及使用該方法的裝置
KR20170060206A (ko) * 2015-11-23 2017-06-01 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US10101925B2 (en) * 2015-12-23 2018-10-16 Toshiba Memory Corporation Data invalidation acceleration through approximation of valid data counts
TWI570559B (zh) * 2015-12-28 2017-02-11 點序科技股份有限公司 快閃記憶體及其存取方法
US10620879B2 (en) * 2017-05-17 2020-04-14 Macronix International Co., Ltd. Write-while-read access method for a memory device
US10970226B2 (en) * 2017-10-06 2021-04-06 Silicon Motion, Inc. Method for performing access management in a memory device, associated memory device and controller thereof, and associated electronic device
TWI659304B (zh) * 2017-10-20 2019-05-11 慧榮科技股份有限公司 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
CN108153681A (zh) * 2017-11-29 2018-06-12 深圳忆联信息系统有限公司 一种大容量固态硬盘映射表压缩方法
TWI686698B (zh) * 2018-05-24 2020-03-01 大陸商深圳大心電子科技有限公司 邏輯轉實體表更新方法及儲存控制器
US10936199B2 (en) * 2018-07-17 2021-03-02 Silicon Motion, Inc. Flash controllers, methods, and corresponding storage devices capable of rapidly/fast generating or updating contents of valid page count table
KR102679967B1 (ko) 2018-09-12 2024-07-02 에스케이하이닉스 주식회사 메모리 시스템에서의 유효 데이터 관리 방법 및 장치
US20200151119A1 (en) * 2018-11-08 2020-05-14 Silicon Motion, Inc. Method and apparatus for performing access control between host device and memory device
US11061598B2 (en) * 2019-03-25 2021-07-13 Western Digital Technologies, Inc. Optimized handling of multiple copies in storage management

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1472747A (zh) * 2002-07-30 2004-02-04 希旺科技股份有限公司 可重覆写入的非挥发性储存的储存系统与其写入方法
JP2005122529A (ja) * 2003-10-17 2005-05-12 Matsushita Electric Ind Co Ltd 半導体メモリ装置
US20050154818A1 (en) * 2004-01-13 2005-07-14 Ping Chen Method of accessing a nonvolatile memory
CN1936867A (zh) * 2005-09-25 2007-03-28 深圳市朗科科技有限公司 闪存介质数据管理方法
JP2007199846A (ja) * 2006-01-24 2007-08-09 Toshiba Corp メモリ制御装置およびメモリ制御方法
JP2007310823A (ja) * 2006-05-22 2007-11-29 Matsushita Electric Ind Co Ltd メモリカード、メモリカード処理方法、制御プログラム、及び集積回路

Family Cites Families (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5829013A (en) * 1995-12-26 1998-10-27 Intel Corporation Memory manager to allow non-volatile memory to be used to supplement main memory
WO1998003915A2 (en) * 1996-07-19 1998-01-29 Tokyo Electron Limited Flash memory card
US6000006A (en) 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
US5937425A (en) * 1997-10-16 1999-08-10 M-Systems Flash Disk Pioneers Ltd. Flash file system optimized for page-mode flash technologies
KR100319598B1 (ko) * 1998-03-18 2002-04-06 김영환 플래시메모리어레이액세스방법및장치
US7934074B2 (en) * 1999-08-04 2011-04-26 Super Talent Electronics Flash module with plane-interleaved sequential writes to restricted-write flash chips
US7318117B2 (en) * 2004-02-26 2008-01-08 Super Talent Electronics, Inc. Managing flash memory including recycling obsolete sectors
US6449689B1 (en) 1999-08-31 2002-09-10 International Business Machines Corporation System and method for efficiently storing compressed data on a hard disk drive
US6938144B2 (en) * 2001-03-22 2005-08-30 Matsushita Electric Industrial Co., Ltd. Address conversion unit for memory device
JP2003203007A (ja) * 2002-01-07 2003-07-18 Nec Corp 携帯電話機のメモリの不揮発エリア管理方法
US20060143365A1 (en) 2002-06-19 2006-06-29 Tokyo Electron Device Limited Memory device, memory managing method and program
JP4518951B2 (ja) * 2002-10-28 2010-08-04 サンディスク コーポレイション 不揮発性記憶システムにおける自動損耗均等化
JP2004296014A (ja) * 2003-03-27 2004-10-21 Mitsubishi Electric Corp 不揮発性メモリの消去回数平準化方法
CN1311366C (zh) * 2003-05-22 2007-04-18 群联电子股份有限公司 快闪存储器的平行双轨使用方法
CN1277182C (zh) * 2003-09-04 2006-09-27 台达电子工业股份有限公司 具有辅助处理单元的可编程逻辑控制器
JP3912355B2 (ja) * 2003-10-14 2007-05-09 ソニー株式会社 データ管理装置、データ管理方法、不揮発性メモリ、不揮発性メモリを有する記憶装置及びデータ処理システム
KR100526188B1 (ko) * 2003-12-30 2005-11-04 삼성전자주식회사 플래시 메모리의 주소 사상 방법, 사상 정보 관리 방법 및상기 방법을 이용한 플래시 메모리
US7631138B2 (en) * 2003-12-30 2009-12-08 Sandisk Corporation Adaptive mode switching of flash memory address mapping based on host usage characteristics
KR20060134011A (ko) * 2003-12-30 2006-12-27 쌘디스크 코포레이션 메모리 플레인 배열을 갖춘 비휘발성 메모리 및 방법
JP4701618B2 (ja) * 2004-02-23 2011-06-15 ソニー株式会社 情報処理装置及び情報処理方法、並びにコンピュータ・プログラム
US7680977B2 (en) 2004-02-26 2010-03-16 Super Talent Electronics, Inc. Page and block management algorithm for NAND flash
KR20070005730A (ko) * 2004-04-28 2007-01-10 마츠시타 덴끼 산교 가부시키가이샤 불휘발성 기억장치 및 데이터 기록방법
CN100437517C (zh) * 2004-04-28 2008-11-26 松下电器产业株式会社 非易失性存储装置和数据写入方法
US20100082878A1 (en) * 2005-06-24 2010-04-01 Matsushita Electric Industrial Co., Ltd. Memory controller, nonvolatile storage device, nonvolatile storage system, and data writing method
JP4547028B2 (ja) * 2005-08-03 2010-09-22 サンディスク コーポレイション ブロック管理を伴う不揮発性メモリ
JP5155861B2 (ja) * 2005-08-25 2013-03-06 シリコン イメージ,インコーポレイテッド スマートスケーラブル記憶スイッチアーキテクチャ
US20070083697A1 (en) * 2005-10-07 2007-04-12 Microsoft Corporation Flash memory management
CN100520734C (zh) * 2005-11-18 2009-07-29 凌阳科技股份有限公司 闪存的控制装置与方法
US8756399B2 (en) * 2006-01-25 2014-06-17 Seagate Technology Llc Mutable association of a set of logical block addresses to a band of physical storage blocks
US20070300130A1 (en) * 2006-05-17 2007-12-27 Sandisk Corporation Method of Error Correction Coding for Multiple-Sector Pages in Flash Memory Devices
CN100583293C (zh) 2006-08-09 2010-01-20 安国国际科技股份有限公司 存储装置及其读写方法
TWI346286B (en) * 2006-09-29 2011-08-01 Sandisk Corp Method and non-volatile memory storage system for phased garbage collection
US7695274B2 (en) * 2006-11-07 2010-04-13 Caruso Ii Augustine Lighter with built-in clip
JP2008146253A (ja) * 2006-12-07 2008-06-26 Sony Corp 記憶装置およびコンピュータシステム、並びに記憶装置のデータ処理方法
US7958331B2 (en) * 2006-12-13 2011-06-07 Seagate Technology Llc Storage device with opportunistic address space
WO2008082999A2 (en) * 2006-12-26 2008-07-10 Sandisk Corporation Configuration of host lba interface with flash memory
TWM317043U (en) * 2006-12-27 2007-08-11 Genesys Logic Inc Cache device of the flash memory address transformation layer
US7953954B2 (en) * 2007-01-26 2011-05-31 Micron Technology, Inc. Flash storage partial page caching
JP2008210057A (ja) * 2007-02-23 2008-09-11 Hitachi Ltd 記憶システム及びその管理方法
US9009440B2 (en) 2007-11-12 2015-04-14 Lsi Corporation Adjustment of data storage capacity provided by a storage system
US8122179B2 (en) * 2007-12-14 2012-02-21 Silicon Motion, Inc. Memory apparatus and method of evenly using the blocks of a flash memory
US7949851B2 (en) * 2007-12-28 2011-05-24 Spansion Llc Translation management of logical block addresses and physical block addresses
US7941692B2 (en) * 2007-12-31 2011-05-10 Intel Corporation NAND power fail recovery
US20090198952A1 (en) 2008-02-04 2009-08-06 Apple Inc Memory Mapping Architecture
US8438343B2 (en) * 2008-02-29 2013-05-07 Kabushiki Kaisha Toshiba Memory system with fixed and variable pointers
CN101251788A (zh) * 2008-03-07 2008-08-27 威盛电子股份有限公司 储存单元管理方法及系统
US8069299B2 (en) * 2008-06-30 2011-11-29 Intel Corporation Banded indirection for nonvolatile memory devices
US8219781B2 (en) * 2008-11-06 2012-07-10 Silicon Motion Inc. Method for managing a memory apparatus, and associated memory apparatus thereof
TWI450271B (zh) * 2009-09-02 2014-08-21 Silicon Motion Inc 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器
KR102233400B1 (ko) * 2017-05-29 2021-03-26 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1472747A (zh) * 2002-07-30 2004-02-04 希旺科技股份有限公司 可重覆写入的非挥发性储存的储存系统与其写入方法
JP2005122529A (ja) * 2003-10-17 2005-05-12 Matsushita Electric Ind Co Ltd 半導体メモリ装置
US20050154818A1 (en) * 2004-01-13 2005-07-14 Ping Chen Method of accessing a nonvolatile memory
CN1936867A (zh) * 2005-09-25 2007-03-28 深圳市朗科科技有限公司 闪存介质数据管理方法
JP2007199846A (ja) * 2006-01-24 2007-08-09 Toshiba Corp メモリ制御装置およびメモリ制御方法
JP2007310823A (ja) * 2006-05-22 2007-11-29 Matsushita Electric Ind Co Ltd メモリカード、メモリカード処理方法、制御プログラム、及び集積回路

Also Published As

Publication number Publication date
US10795811B2 (en) 2020-10-06
CN111414315B (zh) 2023-11-21
US20120331216A1 (en) 2012-12-27
TWI494760B (zh) 2015-08-01
US8219781B2 (en) 2012-07-10
US8799622B2 (en) 2014-08-05
US20210311870A1 (en) 2021-10-07
TWI829251B (zh) 2024-01-11
US20200293442A1 (en) 2020-09-17
TW201337558A (zh) 2013-09-16
US11074176B2 (en) 2021-07-27
US8473713B2 (en) 2013-06-25
US20230350799A1 (en) 2023-11-02
TW201019107A (en) 2010-05-16
US12019540B2 (en) 2024-06-25
WO2010051718A1 (zh) 2010-05-14
US20120331215A1 (en) 2012-12-27
US20170300409A1 (en) 2017-10-19
US20230048550A1 (en) 2023-02-16
US20120221782A1 (en) 2012-08-30
US8285970B2 (en) 2012-10-09
TW201346547A (zh) 2013-11-16
TW201019109A (en) 2010-05-16
CN105975399B (zh) 2020-04-10
TWI775122B (zh) 2022-08-21
CN110457231A (zh) 2019-11-15
US11748258B2 (en) 2023-09-05
CN110806985A (zh) 2020-02-18
TWI459195B (zh) 2014-11-01
CN101739352B (zh) 2013-09-18
CN101739352A (zh) 2010-06-16
CN101739351A (zh) 2010-06-16
US10482011B2 (en) 2019-11-19
CN110806985B (zh) 2023-11-21
TWI409632B (zh) 2013-09-21
US20120331263A1 (en) 2012-12-27
CN103455432A (zh) 2013-12-18
CN105975399A (zh) 2016-09-28
CN111414315A (zh) 2020-07-14
US20120331267A1 (en) 2012-12-27
TWI657338B (zh) 2019-04-21
US8473712B2 (en) 2013-06-25
US11520697B2 (en) 2022-12-06
CN103455432B (zh) 2016-09-28
US20100115188A1 (en) 2010-05-06
TW201714092A (en) 2017-04-16
US20200042437A1 (en) 2020-02-06
TW201923589A (zh) 2019-06-16
TW201805814A (zh) 2018-02-16
TWI536164B (zh) 2016-06-01
US20120221829A1 (en) 2012-08-30
TW202414218A (zh) 2024-04-01
CN110457231B (zh) 2023-10-24
US20150095562A1 (en) 2015-04-02
TW202042067A (zh) 2020-11-16
US9037832B2 (en) 2015-05-19
US20100115189A1 (en) 2010-05-06
TW202242657A (zh) 2022-11-01
TW201527972A (zh) 2015-07-16
TWI703439B (zh) 2020-09-01
TW201621669A (zh) 2016-06-16

Similar Documents

Publication Publication Date Title
US11520697B2 (en) Method for managing a memory apparatus

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 28/10/2011)

122 Ep: pct application non-entry in european phase

Ref document number: 09824372

Country of ref document: EP

Kind code of ref document: A1