WO2017164515A1 - Address translation method for storage system and memory device controller for storage system - Google Patents

Address translation method for storage system and memory device controller for storage system Download PDF

Info

Publication number
WO2017164515A1
WO2017164515A1 PCT/KR2017/001702 KR2017001702W WO2017164515A1 WO 2017164515 A1 WO2017164515 A1 WO 2017164515A1 KR 2017001702 W KR2017001702 W KR 2017001702W WO 2017164515 A1 WO2017164515 A1 WO 2017164515A1
Authority
WO
WIPO (PCT)
Prior art keywords
address
mapping
size
logical address
logical
Prior art date
Application number
PCT/KR2017/001702
Other languages
French (fr)
Korean (ko)
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 WO2017164515A1 publication Critical patent/WO2017164515A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication

Definitions

  • the present invention relates to a storage system, and more particularly, to a memory device controller included in the storage system and an address translation method of the storage system.
  • the flash memory device and the storage system including the same must include a mapping table that maps a logical memory address used by an application to a physical memory address used by the flash memory device.
  • the memory device controller controlling the conversion converts between a logical memory address and a physical memory address using the mapping table.
  • Typical address mapping methods include a page mapping method, a block mapping method, or a hybrid mapping method by appropriately combining the page mapping and the block mapping.
  • the page mapping method requires a large memory for storing the address mapping table because the size of the address mapping table increases, and the block mapping method has an efficiency of data writing speed due to a large mapping unit (ie, a mapping unit). Is lowered.
  • the hybrid mapping method requires a plurality of address mapping tables in which different mapping units are stored, management complexity is large and data structure (eg, address mapping table) search time is increased.
  • An object of the present invention is to provide an address translation method of a storage system that dynamically changes the size of a mapping unit based on the continuity of logical addresses to which data is written.
  • the object of the present invention is not limited to the above-described objects, and may be variously expanded within a range without departing from the spirit and scope of the present invention.
  • an address translation method of a storage system receives a target logical address range of data applied from an application, and an address mapping table.
  • the logical address included in the target logical address range is mapped to a physical address of a physical storage area using an address mapping table, and after the data is written based on the mapped physical address, the logical address is included in the target logical address range.
  • Update the address mapping table by dynamically changing the size of at least one of a plurality of mapping units constituting an entry of the address mapping table based on the continuity of the logical addresses. Can be.
  • the size of each of the mapping units supported by the address mapping table may be 2 k to the minimum mapping unit size within a preset minimum mapping unit size to a preset maximum mapping unit size range, where k is Multiplied by zero or more).
  • the size of each of the mapping units may dynamically change in 2k units within the preset range, and the sizes of all the mapping units may not be the same.
  • mapping units may be divided or fused based on a head logical sector address of each of the mapping units.
  • the updating of the address mapping table may include fusion of logical addresses included in the target logical address range to change the target logical address range from first to nth, where n is a natural number of two or more.
  • splits the current mapping unit and when the m-th sub-target logical address range overlaps a plurality of current mapping units, a position of the m-th sub-target logical address range and And determining a fusion mapping unit corresponding to the size to update the physical address corresponding to the fusion mapping unit.
  • dividing the target logical address range into the first to nth sub-target logical address ranges may determine a first logical sector address of the mth sub-target logical address range, and the first logical sector address. Calculate a second maximum size based on the sub-size, which is a value obtained by subtracting the size of the entire first to m-th sub-target logical address ranges from the size of the target logical address range; The method may further include fusing the logical addresses consecutive from the first logical sector address to a smaller one of the first maximum size and the second maximum size to determine the m th subtarget logical address range.
  • the first maximum size may correspond to the smallest value of powers of two.
  • the second maximum size may correspond to the largest value of the powers of two.
  • the first logical sector address of the first target logical address range corresponds to the first logical sector address of the target logical address range, and the mth sub-target logic is excluded from the first target logical address range.
  • the first logical sector address of the address range may correspond to the next logical sector address of the last logical sector address of the m-1 sub target logical address range.
  • the fusion mapping unit may include contiguous logical addresses and writable contiguous physical addresses corresponding to the logical addresses.
  • dividing the current mapping unit divides the current mapping unit including the m-th sub-target logical address range into half to generate divided current mapping units, and among the divided mapping units. And dividing one of the m-th target logical address ranges into half again.
  • repeating the dividing operation may terminate the division if the size of the divided mapping unit is equal to the size of the m-th sub-target logical address range, and perform the fusion mapping on the divided mapping unit. Can be determined in units.
  • the minimum mapping unit size may correspond to one sector, and the maximum mapping unit size may correspond to 2 n blocks, where n is a natural number.
  • the head logical sector address of each of the mapping units may change dynamically.
  • a memory device controller of a storage system may refer to an address mapping table to target logical address range of data received from an application. Maps a logical address included in the C) to a physical address of a physical storage area, writes the data based on the mapped physical address, and based on the continuity of the logical address included in the target logical address. It may include a Flash Translation Layer (FTL) for updating the address mapping table by dynamically changing the size of at least one of the plurality of mapping units constituting an entry (entry) have.
  • FTL Flash Translation Layer
  • the size of each of the mapping units supported by the address mapping table may be 2 k to the minimum mapping unit size within a preset minimum mapping unit size to a preset maximum mapping unit size range, where k is Multiplied by zero or more).
  • the flash conversion layer may dynamically change the size of each of the mapping units in 2k units within the range.
  • the address translation method of a storage system may perform address mapping using a single address mapping table (ie, mapping data structure) including mapping units of various sizes. Therefore, the disadvantage that the search time of the mapping data structure of the existing hybrid mapping scheme managing the plurality of address mapping tables is increased.
  • the memory device controller of the storage system may perform address mapping using a single address mapping table (ie, mapping data structure) including mapping units of various sizes.
  • a single address mapping table ie, mapping data structure
  • mapping units of various sizes.
  • physical address information for a wide logical address area of a single block size or more may be included in an entry of one mapping table, a cache effect of contiguous data for address mapping within a limited size of volatile memory is improved. Therefore, data read performance can be improved.
  • FIG. 1 is a block diagram illustrating a memory device controller for managing a storage system according to example embodiments of the inventive concepts.
  • FIG. 2A is a diagram illustrating an example of a structure of a mapping table controlled by the memory device controller of FIG. 1.
  • FIG. 2B is a diagram illustrating an example of mapping units supported in the mapping table of FIG. 2A.
  • FIG. 3 is a flowchart illustrating an address translation method of a memory system according to example embodiments.
  • FIG. 4 is a flowchart illustrating an example of an operation of updating a mapping table in the address translation method of FIG. 3.
  • FIG. 5 is a flowchart illustrating an example of dividing a target logical address range into a plurality of sub-target logical address ranges in the updating method of the mapping table of FIG. 4.
  • FIG. 6 is a diagram illustrating an example of sub-target logical address ranges of FIG. 5.
  • FIG. 7 is a diagram illustrating an example of an operation of updating a fusion mapping unit in the updating method of the mapping table of FIG. 4.
  • FIG. 8 is a flowchart illustrating an example of dividing a mapping unit in the updating method of the mapping table of FIG. 4.
  • FIG. 9 is a diagram illustrating an example of an operation of dividing a mapping unit of FIG. 8.
  • FIG. 10 is a diagram illustrating an example of an operation of dividing a mapping unit of FIG. 8.
  • FIG. 1 is a block diagram illustrating a memory device controller for managing a storage system according to example embodiments.
  • FIG. 2A is an example of a structure of an address mapping table controlled by the memory device controller of FIG. 1.
  • 2B is a diagram illustrating an example of mapping units supported in the address mapping table of FIG. 2A.
  • the memory device controller 100 may include a flash translation layer (FTL) 140.
  • FTL flash translation layer
  • the storage system including the memory device controller 100 may include a memory device controller 100, an application 10 connected to the memory device controller 100, and a flash memory device 20.
  • the memory device controller 100 may further include a file system that provides an interface for writing data generated by the application 10 independently of the type of memory device.
  • the flash conversion layer 140 may provide an interface to the flash memory device 20 to write data to the flash memory device 20.
  • the flash translation layer 140 may be provided with information of a target logical address of data provided from the application 10.
  • the information of the target logical address may include a target logical address range and information of a logical address included therein.
  • the target logical address range means a range including logical addresses selected by a data write command among logical addresses set in an address mapping table.
  • the flash translation layer 140 may map the target logical address to a physical address of a physical storage area by referring to an address mapping table.
  • the flash translation layer 140 may write the data based on the mapped physical address.
  • the flash translation layer 140 may dynamically adjust the size of the at least one of a plurality of mapping units constituting an entry of the address mapping table based on the continuity of the logical address.
  • the address mapping table can be updated by changing the address mapping table.
  • the physical address may correspond to a physical address used by the flash memory device 20.
  • the flash translation layer 140 may directly map a logical memory address to a physical memory address by referring to the address mapping table.
  • the size of each of the mapping units supported by the address mapping table is 2k to the minimum mapping unit size within a range of a preset minimum mapping unit size to a preset maximum mapping unit size, where k is 0 or more. Multiplied by an integer).
  • the minimum mapping unit size corresponds to 512 bytes equal to one sector size
  • the maximum mapping unit size is 2n (where n is Natural number) memory blocks.
  • one page may include eight sectors, and one block may include 128 pages.
  • the minimum mapping unit size and the maximum mapping unit size may be determined to be optimal sizes according to the memory system used.
  • the address mapping table may include mapping units of various sizes.
  • the address mapping table entry may include one sector mapping unit (1-SECTOR UNIT) consisting of a single sector, two sector mapping unit (2-SECTOR UNIT) in which two sectors are fused, and four sectors in which four sectors are fused.
  • the address mapping table may include a 1-page UNIT unit in which eight sectors are fused, and a 2-PAGE UNIT unit in which 16 sectors (ie, two pages) are fused. And 2k (where k is a natural number) page mapping units fused to super-page mapping units.
  • the address mapping table may include super-block mapping units in which the super-page units are fused and block units (1-BLOCK UNIT) and 2j (where j is a natural number) are fused. It may include.
  • the mapping table may include the logical address and the corresponding physical address for each sector.
  • the address mapping table may have a mapping table for entries of a plurality of sectors constituting the mapping units.
  • mapping units including two or more sectors can guarantee a contiguous logical address and corresponding contiguous physical address.
  • the mapping units comprising the two or more sectors may be defined by each head logical sector address (i.e. indicated by HEAD in FIG. 2a) and the subsequent logical sector address (i.e. indicated by NON_HEAD in FIG. 2a).
  • Logical sector addresses NON_HEAD other than the head logical sector address may be referenced to return a physical address in an address query. For example, as shown in FIG. 2A, when data corresponding to a 2-page unit is continuously written, the head logical sector address of the 2-page unit is included. Two pages of data can be written to the storage area consecutively from the corresponding physical address.
  • the head logical sector address may be dynamically changed according to a mapping unit including a specific logical sector (ie, a logical sector address used for writing data). For example, when the size of the mapping unit including logical sector address 3 (S3) is 1 sector, the logical sector address 3 (S3) becomes the head logical sector address and the mapping includes logical sector 3 (S3). If the size of the unit is two sectors, logical sector address 2 (S2) may be the head logical sector address. Similarly, when the size of the mapping unit including logical sector address 3 (S3) is 4 sectors, logical sector 0 (S0) may be the head logical sector address.
  • the head logical sector address of the mapping unit including sector address 3 (S3) is referred to by sector address 3 (S3)
  • a physical address corresponding to sector address 3 (S3) may be returned according to the offset of the head logical sector address and sector address 3 (s3).
  • the flash translation layer 140 dynamically adjusts the size of at least some of the mapping units in 2k units within the range of the minimum mapping unit size to the maximum mapping unit size based on the continuity of the logical address indicated by the data. Can be changed. For example, as illustrated in FIG. 2B, the flash conversion layer 140 dynamically sizes the mapping units from one sector mapping unit S, which is the minimum mapping unit size, to j block mapping units, which is the maximum mapping unit size. Can change. That is, the mapping unit size is variously changed into a sector unit size (SUB_PAGE), a super page size (SUPER_PAGE), a super block size (SUPER_BLOCK), and the like based on the continuity of data to be written, and the size is not fixed for each logical address.
  • S which is the minimum mapping unit size
  • j block mapping units which is the maximum mapping unit size.
  • the mapping unit size is variously changed into a sector unit size (SUB_PAGE), a super page size (SUPER_PAGE), a super block size (SU
  • the memory device controller 100 may perform address mapping using a single address mapping table (ie, mapping data structure) including mapping units of various sizes.
  • mapping table ie, mapping data structure
  • physical address information for a wide logical address area of a block size or more may be written by using an entry of one mapping table by the mapping unit fusion, so that contiguous data for address mapping within a limited size of volatile memory may be written.
  • the cache effect can be improved and data read performance can be improved.
  • FIG. 3 is a flowchart illustrating an address translation method of a memory system according to example embodiments.
  • the address translation method of the memory system receives a target logical address range of data applied from an application (S100), and uses the address mapping table to convert the target logical address into a physical address of a physical storage area. After mapping to S200 and writing the data based on the mapped physical address S300, a plurality of mapping units constituting an entry of the address mapping table based on the continuity of the target logical address.
  • the address mapping table may be updated (S400) by dynamically changing the size of at least one of them.
  • the target logical address range of the data may be input (S100).
  • the target logical address range means logical addresses selected by a data write command among logical addresses set in the address mapping table.
  • the logical address included in the target logical address range may correspond to one sector or a plurality of consecutive sectors.
  • the logical address included in the target logical address range may be mapped to the physical address by the address mapping table (S200).
  • a flash translation layer may map the logical address directly to the physical address.
  • the size of each of the mapping units supported by the address mapping table is a value obtained by multiplying the minimum mapping unit size by 2k (where k is an integer of 0 or more) within a preset minimum mapping unit size to a preset maximum mapping unit size range. May correspond to For example, the minimum mapping unit size corresponds to one sector (i.e., sub-page size), and the maximum mapping unit size is 2j (where j is a natural number) blocks (i.e., super-block size). May correspond.
  • the data may be written (S300) based on the mapped physical address.
  • the size of at least one of the mapping units may be dynamically changed based on the continuity of logical addresses included in the target logical address range, so that the address mapping table may be updated (S400).
  • the size of each of the mapping units may change dynamically in 2k units within the set range.
  • the size of each of the mapping units may vary based on the continuity of the logical address indicated by the written data (ie, the size of the target logical address range).
  • the update S400 of the address mapping table may determine at least one new fusion mapping unit by fusing logical addresses included in the target logical address range.
  • the fusion mapping units may be determined based on sub-target logical address ranges in which the target logical addresses are divided. In one embodiment, the fusion mapping unit may be split based on the size of the existing mapping unit and the sub-target logical address ranges.
  • the fusion mapping units refer to mapping units whose current mapping units are updated through a series of fusion and / or partitioning processes based on sub-target logical address ranges constituting a target logical address range.
  • the address translation method of the storage system uses only one mapping data structure (ie, an address mapping table) including mapping units of various sizes, thereby searching for a plurality of data structures.
  • mapping data structure ie, an address mapping table
  • the data structure retrieval time can be further reduced.
  • FIG. 4 is a flowchart illustrating an example of an operation of updating a mapping table in the address translation method of FIG. 3.
  • the target logical address range is divided into first to nth (where n is a natural number of two or more) subtarget logical address ranges (S410). And m (where m is a natural number less than n) determines the number of current mapping units including the sub-target logical address range (S420), and the m-th sub-target logical address range is within the single current mapping unit. If included, the current mapping unit may be split (S430).
  • mapping unit may be determined (S440), and a physical address corresponding to the fusion mapping unit may be updated (S450).
  • the target logical address range may be divided into the first to nth sub-target logical address ranges (S410).
  • the 1 th to n th subtarget logical address ranges are the basis of an updated fusion mapping unit.
  • the 1 th to n th subtarget logical address ranges may each have a size corresponding to 2k. A method of distinguishing sub-target logical address ranges by fusing the logical addresses will be described with reference to FIGS. 5 to 7.
  • the first logical sector address (or starting logical sector address) of one sub-target logical address may correspond to the head logical sector address of the corresponding fusion mapping unit.
  • the number of current mapping units including the m-th sub-target logical address range may be determined (S420).
  • the determination process may be sequentially applied to the first to nth sub-target logical address ranges, respectively. That is, the determination process determines whether the current mapping unit including the first to nth sub-target logical address ranges is divided.
  • the current mapping unit may be split at least once (S430). In this case, the size of the current mapping unit is larger than the m th subtarget logical address range.
  • the mapping units in which the split is completed may be determined as new fusion mapping units (S440). In this case, the first logical sector address of each of the fusion mapping units may be updated with the head logical sector address. In addition, a physical address corresponding to each of the fusion mapping units may be updated (S450).
  • the m sub target logical address range corresponds to the position and size of the m th subtarget logical address range.
  • the fusion mapping unit may be determined (S440). For example, when the m-th sub-target logical address range includes a logical sector address 8 to a logical sector address 15 and has a size of 8 sectors, the size of the corresponding fusion mapping unit is 8 sectors, and the fusion mapping
  • the head logical sector address of the unit may correspond to logical sector address 8.
  • the first logical sector address of each of the fusion mapping units may be updated with the head logical sector address.
  • a physical address corresponding to each of the fusion mapping units may be updated (S450).
  • mapping units corresponding to the target logical address range may be divided or fused based on the size and position of the sub-target logical address ranges.
  • the search time of the mapping data structure eg, address mapping table
  • FIG. 5 is a flowchart illustrating an example of dividing a target logical address range into a plurality of sub-target logical address ranges in the updating method of the mapping table of FIG. 4, and FIG. 6 is a diagram of one of the sub-target logical address ranges of FIG. 5. It is a figure which shows an example.
  • the first logical sector address of the m th sub-target logical address range is determined (S412), and A first maximum size is calculated based on the first logical sector address (S414), and the sub size (sub) is a value obtained by subtracting the size of the entire first to m-th sub-target logical address ranges from the size of the target logical address range. calculate a second maximum size based on the second size, and merge the logical addresses consecutive from the first logical sector address into a smaller one of the first maximum size and the second maximum size. It may include generating a target logical address range (S418). As the steps S412 to S418 are repeated, the first to nth sub-target logical address ranges STLA1, STLA2, STLA3, and STLA4 may be determined.
  • the first logical sector address of the mth sub-target logical address range may be determined (S412).
  • the first logical sector address FSA1 of the first sub-target logical address range STLA1 may correspond to the first logical sector address FSA of the target logical address range TLA.
  • the first logical address FSA2 of the second subtarget logical address range STLA2 may be determined after the first subtarget logical address range STLA1 is determined.
  • the first logical address FSA2 of the second subtarget logical address range STLA2 may correspond to the next logical sector address FSA2 of the last logical sector address of the first subtarget logical address range STLA1.
  • the first logical address of the mth subtarget logical address range may be determined after the m-1 subtarget logical address range is determined.
  • the first logical sector address of the mth subtarget logical address range except the first target logical address range STLA1 is the next logical sector of the last logical sector address of the m-1 subtarget logical address range. May correspond to an address.
  • the first maximum size may be calculated (S414) based on the first logical sector address FSA1 of the first sub-target logical address range STLA1.
  • the first logical sector address FSA1 may be expressed as the sum of powers of two. In one embodiment, the first maximum size may correspond to the smallest of the powers of two. For example, when the first logical sector address FSA1 is logical sector 24 (ie, 24 + 23), the first maximum size may be eight sectors. Alternatively, when the first logical sector address FSA1 is 5 (ie, 22 + 20), the first maximum size may be 1 sector (ie, 20).
  • the second maximum size may be calculated (S416) based on the size of the target logical address range TLA.
  • the size of the target logical address range TLA and the sub size may be expressed as a sum of powers of two.
  • the second maximum size may correspond to the largest value among the powers of two.
  • the sub-size may correspond to the size of the target logical address range TLA.
  • the size of the target logical address range TLA is 60 sectors (ie, 23 + 25 + 24 + 22), and thus the second maximum size of the first sub target logical address range STLA1. May be 32 sectors (ie, 25).
  • the sub size is the first to m-1 sub in the size of the target logical address range TLA. It may correspond to a value minus the size of the entire target logical address ranges.
  • the sub-size of the second sub-target logical address range STLA2 is 52 sectors (ie, 26 to 23), and the second maximum size of the second sub-target logical address range STLA2 is 32 sectors ( That is, 25). The second maximum size may be calculated in the same manner for the remaining subtarget logical address ranges.
  • the logical addresses consecutive from the first logical sector address FSA1 may be fused to the smaller of the first maximum size and the second maximum size to determine the m th sub-target logical address range (S418).
  • the first maximum size of the first sub-target logical address range STLA1 is 8 sectors and the second maximum size is 32 sectors
  • the first sub-target logical address range STLA1 is It can be fused to 8 sectors in size.
  • the second subtarget logical address range STLA2 is fused to 32 sector size (ie, 25)
  • the third subtarget logical address range STLA3 is fused to 16 sector size (ie, 24)
  • the fourth The sub target logical address range STLA4 may be fused to a 4-sector size (ie, 22).
  • the current mapping units MU1 to MU5 of the current mapping table OLD MAP TABLE corresponding to the target logical address range TLA are the first to fourth sub-target logical address ranges STLA1.
  • To STLA4) may be updated to fusion mapping units NMU1 to NMU6.
  • the first current mapping unit MU1 since the first sub-target logical address range STLA1 is included in the first current mapping unit MU1, the first current mapping unit MU1 may be split. As a result, the first and second fusion mapping units NMU1 and NMU2 having a 23 sector size may be determined. If the size of the divided mapping unit is equal to the size corresponding to the first sub-target logical address range STLA1, the splitting operation may be terminated.
  • the first current mapping unit MU1 may be divided twice.
  • the fifth current mapping unit MU5 may be divided based on the size of the fourth sub-target logical address range STLA4.
  • parts of the first current mapping unit MU1 to fourth current mapping units MU2 and MU3 based on the second and third sub-target logical address ranges STLA2 and STLA3. , MU4) may be fused to determine third and fourth fusion mapping units NMU3 and NMU4, respectively.
  • the third fusion mapping unit NMU3 may have a size of 25 sectors
  • the fourth fusion mapping unit NMU4 may have a size of 24 sectors.
  • the head logical sector address of each of the first to sixth fusion mapping units NMU1 to NMU6 is updated, and the physical addresses corresponding to the logical addresses of each of the first to sixth fusion mapping units NMU1 to NMU6 are updated.
  • the address mapping table may be updated.
  • mapping data structure eg, address mapping table
  • FIG. 7 is a diagram illustrating an example of an operation of updating a fusion mapping unit in the updating method of the mapping table of FIG. 4.
  • current mapping units MU1, MU2, and MU3 may be fused (or updated) to a fusion mapping unit NMU based on one sub-target logical address range STLA.
  • mapping table data may be written in the physical addresses A1, A2, and A3 corresponding to the first to third mapping units MU1, MU2, and MU3, respectively.
  • An update of the mapping table is required to map a new physical address corresponding to the target logical address range (TLA).
  • the sub-target logical address range STLA determined by the above-described process may be compared with the corresponding first to third mapping units MU1, MU2, and MU3. As shown in FIG. 7, the sub-target logical address range STLA has a size of 4 sectors 4S, and the first to third mapping units MU1, MU2, and MU3 have a sub-target logical address range STLA. Can be included. Accordingly, the first to third mapping units MU1, MU2, and MU3 may be fused.
  • the first maximum size may be calculated based on the first logical sector address LA1 of the subtarget logical address range STLA.
  • the second maximum size may be calculated based on the size of the target logical address range including the sub-target logical address range STLA.
  • First to third mapping units MU1, MU2, and MU3 may be fused to a smaller one of the first maximum size and the second maximum size. As illustrated in FIG. 7, the first to third mapping units MU1, MU2, and MU3 may be fused into four sectors of a new fusion mapping unit NMU.
  • the head address of the fusion mapping unit NMU may correspond to the first logical address LA1. Since the method of determining the fusion mapping unit has been described above with reference to FIGS. 3 to 6, a description thereof will not be repeated.
  • the fusion mapping unit NMU may include contiguous logical addresses LA1, LA2 and LA3 and contiguous physical addresses B corresponding to the logical addresses.
  • the address mapping table is updated by mapping unit fusion, thereby reducing the number of head logical sector addresses (ie, increasing non-head logical sectors).
  • the cache effect of contiguous data for address mapping within the limited size of volatile memory can be improved.
  • FIG. 8 is a flowchart illustrating an example of dividing a mapping unit in the updating method of the mapping table of FIG. 4, and FIG. 9 is a diagram illustrating an example of an operation of dividing the mapping unit of FIG. 8.
  • the current divided by dividing the current mapping unit MU including the m-th sub-target logical address range STLA in half is divided.
  • the mapping units NMU1 and NMU2 may be generated (S432), and one of the divided mapping units including the m th target logical address range STLA may be further divided into half (S436).
  • the address mapping table needs to be updated.
  • the m-th sub-target logical address range STLA has a size of one sector
  • the current mapping unit MU has a size of four sectors.
  • the current mapping unit MU including the m-th sub-target logical address range STLA is split in half (S432). Can be. Accordingly, two divided mapping units NMU1 and NMU2 having a two sector size may be generated.
  • each of the divided mapping units NMU1 and NMU2 and the sub-target logical address range STLA may be compared. Since the first partitioned mapping unit NMU1 does not include the m-th sub-target logical address range STLA, it is no longer partitioned. Therefore, the first divided mapping unit NMU1 may be determined as a new fusion mapping unit.
  • the size of the second divided mapping unit NMU1 and the size of the mth sub-target logical address range STLA may be compared (S434).
  • the size of the second divided mapping unit NMU2 may be compared with the size of the mth sub-target logical address range STLA.
  • the second partitioned mapping unit NMU2 when the size of the second partitioned mapping unit NMU2 is larger than the size of the m-th sub-target logical address range STLA, the second partitioned mapping unit NMU2 is divided into third segments. It may be divided into a mapping unit NMU3 and a fourth divided mapping unit NMU4.
  • the third and fourth divided mapping units NMU3 and NMU4 may each have a size of one sector. Since the fourth divided mapping unit NMU4 does not include the m-th sub-target logical address range STLA, the fourth divided mapping unit NMU4 is no longer divided. Therefore, the fourth divided mapping unit NMU4 may be determined as a new fusion mapping unit.
  • the size of the third divided mapping unit NMU3 and the size of the m th sub-target logical address range STLA may be compared (S434). In one embodiment, if the size of the divided mapping unit is equal to the size corresponding to the m-th sub-target logical address range, the split may be terminated. As shown in FIG. 9, since the size of the third divided mapping unit NMU3 is the same as the size of the mth sub-target logical address range STLA, the splitting operation may be terminated. Finally, the first, third, and fourth divided mapping units NMU1, NMU3, and NMU4 may be determined as fusion mapping units, respectively.
  • the physical address corresponding to the sub-target logical address range STLA may be updated based on the head logical sector addresses LA1, LA2, and LA3 of each of the divided mapping units. For example, since the physical address A corresponding to the subtarget logical address range LA2 is used, the position of the physical address corresponding to the subtarget logical address range LA2 may be updated to the position of 'B'. . Accordingly, the entry of the address mapping table and the physical address returned corresponding thereto may be updated.
  • FIG. 10 is a diagram illustrating an example of an operation of dividing a mapping unit of FIG. 8.
  • a mapping unit included in an address mapping table may be repeatedly divided based on a subtarget logical address range STLA to update an address mapping table.
  • the sub-target logical address range TLA may be included in one mapping unit having 2x sectors.
  • the division operation of the mapping unit may be started.
  • the mapping unit may be divided into two mapping units having a 2x-1 sector size.
  • the mapping unit including the sub target logical address STLA may be repeatedly divided.
  • the divided mapping unit is no longer divided.
  • the split may be terminated.
  • the divided mapping unit may be determined as the fusion mapping unit.
  • the mapping unit corresponding to the subtarget logical address range STLA may have a size (shown as one sector size 1S in FIG. 10) of the subtarget logical address range STLA.
  • the address translation method according to the embodiments of the present invention may dynamically divide and fuse mapping units of various sizes included in one address mapping table size. That is, the disadvantage that the search time of the mapping data structure of the existing hybrid mapping scheme that manages the plurality of address mapping tables is increased.
  • the present invention can be applied to storage systems and computer systems that use address mapping between logical and physical addresses.
  • memory device controller 140 flash conversion layer

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System (AREA)

Abstract

An address translation method for a storage system comprises: receiving a target logical address of data from an application; mapping the target logical address to a physical address of a physical storage area by using an address mapping table; and updating an address mapping table by dynamically changing a size of at least one of a plurality of mapping units constituting an entry of the address mapping table, on the basis of the continuity of the target logical address, after writing the data on the basis of the mapped physical address.

Description

스토리지 시스템의 주소 변환 방법 및 스토리지 시스템의 메모리 장치 컨트롤러Address Translation Methods for Storage Systems and Memory Device Controllers for Storage Systems
본 발명은 스토리지 시스템에 관한 것으로서, 더욱 상세하게는 상기 스토리지 시스템에 포함되는 메모리 장치 컨트롤러 및 상기 스토리지 시스템의 주소 변환 방법에 관한 것이다. The present invention relates to a storage system, and more particularly, to a memory device controller included in the storage system and an address translation method of the storage system.
플래시 메모리 장치 및 이를 포함하는 스토리지 시스템은 어플리케이션에서 사용하는 논리적 메모리 주소(logical memory address)와 플래시 메모리 장치에서 사용하는 물리적 메모리 주소(physical memory address)를 매핑하는 매핑 테이블을 포함하여야 하고, 플래시 메모리 장치를 제어하는 메모리 장치 컨트롤러는 상기 매핑 테이블을 이용하여 논리적 메모리 주소와 물리적 메모리 주소 간의 변환을 수행한다. The flash memory device and the storage system including the same must include a mapping table that maps a logical memory address used by an application to a physical memory address used by the flash memory device. The memory device controller controlling the conversion converts between a logical memory address and a physical memory address using the mapping table.
일반적인 주소 매핑 방법은 페이지 매핑(page mapping) 방법, 블록 매핑(block mapping) 방법, 또는 상기 페이지 매핑과 상기 블록 매핑을 적절히 배합하여 하이브리드 매핑(hybrid mapping) 방법이 있다. 다만, 상기 페이지 매핑 방법은 주소 매핑 테이블의 사이즈가 커져 이를 저장하기 위한 많은 메모리를 필요로 하고, 상기 블록 매핑 방법은 큰 매핑 단위(즉, 매핑 단위(mapping unit))로 인해 데이터 기록 속도의 효율성이 저하된다. 또한, 상기 하이브리드 매핑 방법은 서로 다른 매핑 단위들이 저장된 복수의 주소 매핑 테이블이 필요하므로, 관리의 복잡도가 크고 자료 구조(예를 들어, 주소 매핑 테이블) 검색 시간이 증가한다. Typical address mapping methods include a page mapping method, a block mapping method, or a hybrid mapping method by appropriately combining the page mapping and the block mapping. However, the page mapping method requires a large memory for storing the address mapping table because the size of the address mapping table increases, and the block mapping method has an efficiency of data writing speed due to a large mapping unit (ie, a mapping unit). Is lowered. In addition, since the hybrid mapping method requires a plurality of address mapping tables in which different mapping units are stored, management complexity is large and data structure (eg, address mapping table) search time is increased.
본 발명의 일 목적은 데이터가 기입되는 논리 주소의 연속성에 기초하여 매핑 단위(mapping unit)의 사이즈를 동적으로 변화시키는 스토리지 시스템의 주소 변환 방법을 제공하는 것이다. An object of the present invention is to provide an address translation method of a storage system that dynamically changes the size of a mapping unit based on the continuity of logical addresses to which data is written.
본 발명의 다른 목적은 데이터가 기입되는 논리 주소의 연속성에 기초하여 매핑 단위(mapping unit)의 사이즈를 동적으로 변화시키는 스토리지 시스템의 메모리 장치 컨트롤러를 제공하는 것이다. It is another object of the present invention to provide a memory device controller of a storage system that dynamically changes the size of a mapping unit based on the continuity of logical addresses into which data is written.
다만, 본 발명의 목적은 상술한 목적들로 한정되는 것이 아니며, 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위에서 다양하게 확장될 수 있을 것이다. However, the object of the present invention is not limited to the above-described objects, and may be variously expanded within a range without departing from the spirit and scope of the present invention.
본 발명의 일 목적을 달성하기 위하여 본 발명의 실시예들에 따른 스토리지 시스템의 주소 변환 방법은 어플리케이션(application)으로부터 인가되는 데이터의 타겟 논리 주소 범위(target logical address range)를 입력받고, 주소 매핑 테이블(address mapping table)을 이용하여 상기 타겟 논리 주소 범위에 포함되는 논리 주소를 물리적 저장 영역의 물리 주소로 매핑하며, 상기 매핑된 물리 주소를 기초로 상기 데이터를 쓴 후에, 상기 타겟 논리 주소 범위에 포함되는 상기 논리 주소의 연속성에 기초하여 상기 주소 매핑 테이블의 엔트리(entry)를 구성하는 복수의 매핑 단위(mapping unit)들 중 적어도 하나의 사이즈(size)를 동적으로 변화시켜 상기 주소 매핑 테이블을 업데이트할 수 있다. In order to achieve the object of the present invention, an address translation method of a storage system according to embodiments of the present invention receives a target logical address range of data applied from an application, and an address mapping table. The logical address included in the target logical address range is mapped to a physical address of a physical storage area using an address mapping table, and after the data is written based on the mapped physical address, the logical address is included in the target logical address range. Update the address mapping table by dynamically changing the size of at least one of a plurality of mapping units constituting an entry of the address mapping table based on the continuity of the logical addresses. Can be.
일 실시예에 의하면, 상기 주소 매핑 테이블이 지원하는 상기 매핑 단위들 각각의 사이즈는 기 설정된 최소 매핑 단위 사이즈 내지 기 설정된 최대 매핑 단위 사이즈 범위 내에서 상기 최소 매핑 단위 사이즈에 2k(단, k는 0 이상의 정수)를 곱한 값에 상응할 수 있다. According to an embodiment, the size of each of the mapping units supported by the address mapping table may be 2 k to the minimum mapping unit size within a preset minimum mapping unit size to a preset maximum mapping unit size range, where k is Multiplied by zero or more).
일 실시예에 의하면, 상기 매핑 단위들 각각의 사이즈는 상기 기 설정된 범위 내에서 2k단위로 동적으로 변하고, 상기 매핑 단위들 전체의 사이즈들이 동일하지 않을 수 있다. According to an embodiment, the size of each of the mapping units may dynamically change in 2k units within the preset range, and the sizes of all the mapping units may not be the same.
일 실시예에 의하면, 상기 매핑 단위들은 상기 매핑 단위들 각각의 헤드 논리 섹터 주소를 기준으로 분할 또는 융합될 수 있다. In example embodiments, the mapping units may be divided or fused based on a head logical sector address of each of the mapping units.
일 실시예에 의하면, 상기 주소 매핑 테이블을 업데이트하는 것은 상기 타겟 논리 주소 범위에 포함되는 논리 주소들을 융합(fusion)하여 상기 타겟 논리 주소 범위를 제1 내지 제n(단, n은 2 이상의 자연수) 서브 타겟 논리 주소 범위들로 구분하고, 제m(단, m은 n 이하의 자연수) 서브 타겟 논리 주소 범위가 포함되는 현재 매핑 단위의 개수를 판단하며, 상기 제m 서브 타겟 논리 주소 범위가 단일의 현재 매핑 단위 내에 포함되는 경우, 상기 현재 매핑 단위를 분할(split)하고, 상기 제m 서브 타겟 논리 주소 범위가 복수의 현재 매핑 단위들에 중첩되는 경우, 상기 제m 서브 타겟 논리 주소 범위의 위치 및 사이즈에 상응하는 융합 매핑 단위를 결정하여 상기 융합 매핑 단위에 대응하는 물리 주소를 업데이트하는 것을 포함할 수 있다. In example embodiments, the updating of the address mapping table may include fusion of logical addresses included in the target logical address range to change the target logical address range from first to nth, where n is a natural number of two or more. Classify the sub-target logical address ranges, wherein m is a natural number less than or equal to n, and determine the number of current mapping units including the sub-target logical address ranges, and wherein the m-th sub-target logical address range is single When included in a current mapping unit, splits the current mapping unit, and when the m-th sub-target logical address range overlaps a plurality of current mapping units, a position of the m-th sub-target logical address range and And determining a fusion mapping unit corresponding to the size to update the physical address corresponding to the fusion mapping unit.
일 실시예에 의하면, 상기 타겟 논리 주소 범위를 상기 제1 내지 제n 서브 타겟 논리 주소 범위들로 구분하는 것은 상기 제m 서브 타겟 논리 주소 범위의 첫 논리 섹터 주소를 결정하고, 상기 첫 논리 섹터 주소에 기초하여 제1 최대 사이즈를 산출하며, 상기 타겟 논리 주소 범위의 사이즈에서 상기 제1 내지 제m-1 서브 타겟 논리 주소 범위들 전체의 사이즈를 뺀 값인 서브 사이즈에 기초하여 제2 최대 사이즈를 산출하고, 상기 첫 논리 섹터 주소로부터 연속되는 상기 논리 주소들을 상기 제1 최대 사이즈와 상기 제2 최대 사이즈 중 더 작은 사이즈로 융합하여 상기 제m 서브 타겟 논리 주소 범위를 결정하는 것을 더 포함할 수 있다. According to an embodiment, dividing the target logical address range into the first to nth sub-target logical address ranges may determine a first logical sector address of the mth sub-target logical address range, and the first logical sector address. Calculate a second maximum size based on the sub-size, which is a value obtained by subtracting the size of the entire first to m-th sub-target logical address ranges from the size of the target logical address range; The method may further include fusing the logical addresses consecutive from the first logical sector address to a smaller one of the first maximum size and the second maximum size to determine the m th subtarget logical address range.
일 실시예에 의하면, 상기 첫 논리 섹터 주소를 2의 거듭제곱들의 합으로 표현하였을 때, 상기 제1 최대 사이즈는 상기 2의 거듭제곱들 중 가장 작은 값에 상응할 수 있다. According to an embodiment, when the first logical sector address is expressed as a sum of powers of two, the first maximum size may correspond to the smallest value of powers of two.
일 실시예에 의하면, 상기 서브 사이즈를 2의 거듭제곱들의 합으로 표현하였을 때, 상기 제2 최대 사이즈는 상기 2의 거듭제곱들 중 가장 큰 값에 상응할 수 있다. According to an embodiment, when the subsize is expressed as a sum of powers of two, the second maximum size may correspond to the largest value of the powers of two.
일 실시예에 의하면, 상기 제1 타겟 논리 주소 범위의 상기 첫 논리 섹터 주소는 상기 타겟 논리 주소 범위의 상기 첫 논리 섹터 주소에 상응하고, 상기 제1 타겟 논리 주소 범위를 제외한 상기 제m 서브 타겟 논리 주소 범위의 상기 첫 논리 섹터 주소는 제m-1 서브 타겟 논리 주소 범위의 마지막 논리 섹터 주소의 다음 논리 섹터 주소에 상응할 수 있다. According to an embodiment, the first logical sector address of the first target logical address range corresponds to the first logical sector address of the target logical address range, and the mth sub-target logic is excluded from the first target logical address range. The first logical sector address of the address range may correspond to the next logical sector address of the last logical sector address of the m-1 sub target logical address range.
일 실시예에 의하면, 상기 융합 매핑 단위는 연속적인 논리 주소들 및 상기 논리 주소들에 대응하는 쓰기 가능한 연속적인 물리 주소들을 포함할 수 있다. According to an embodiment, the fusion mapping unit may include contiguous logical addresses and writable contiguous physical addresses corresponding to the logical addresses.
일 실시예에 의하면, 상기 현재 매핑 단위를 분할하는 것은 상기 제m 서브 타겟 논리 주소 범위를 포함하는 상기 현재 매핑 단위를 절반으로 분할하여 분할된 현재 매핑 단위들을 생성하고, 상기 분할된 매핑 단위들 중 상기 제m 타겟 논리 주소 범위를 포함하는 하나를 다시 절반으로 분할하는 동작을 반복하는 것을 포함할 수 있다. According to an embodiment, dividing the current mapping unit divides the current mapping unit including the m-th sub-target logical address range into half to generate divided current mapping units, and among the divided mapping units. And dividing one of the m-th target logical address ranges into half again.
일 실시예에 의하면, 상기 분할하는 동작을 반복하는 것은, 상기 분할된 매핑 단위의 사이즈가 상기 제m 서브 타겟 논리 주소 범위의 사이즈와 같으면 상기 분할을 종료하고, 상기 분할된 매핑 단위를 상기 융합 매핑 단위로 결정할 수 있다. According to an embodiment, repeating the dividing operation may terminate the division if the size of the divided mapping unit is equal to the size of the m-th sub-target logical address range, and perform the fusion mapping on the divided mapping unit. Can be determined in units.
일 실시예에 의하면, 상기 최소 매핑 단위 사이즈는 하나의 섹터(sector)에 상응하고, 상기 최대 매핑 단위 사이즈는 2n(단, n은 자연수) 개의 블록(block)에 상응할 수 있다. According to an embodiment, the minimum mapping unit size may correspond to one sector, and the maximum mapping unit size may correspond to 2 n blocks, where n is a natural number.
일 실시예에 의하면, 상기 매핑 단위들 각각의 헤드 논리 섹터 주소가 동적으로 변할 수 있다. According to an embodiment, the head logical sector address of each of the mapping units may change dynamically.
본 발명의 일 목적을 달성하기 위하여 본 발명의 실시예들에 따른 스토리지 시스템의 메모리 장치 컨트롤러는 주소 매핑 테이블(address mapping table)을 참조하여 어플리케이션으로부터 수신한 데이터의 타겟 논리 주소 범위(target logical address range)에 포함되는 논리 주소를 물리적 저장 영역의 물리 주소로 매핑하고, 상기 매핑된 물리 주소를 기초로 상기 데이터를 쓰며, 상기 타겟 논리 주소에 포함되는 상기 논리 주소의 연속성에 기초하여 상기 주소 매핑 테이블의 엔트리(entry)를 구성하는 복수의 매핑 단위(mapping unit)들 중 적어도 하나의 사이즈(size)를 동적으로 변화시켜 상기 주소 매핑 테이블을 업데이트하는 플래시 변환 레이어(Flash Translation Layer; FTL)를 포함할 수 있다. In order to achieve the object of the present invention, a memory device controller of a storage system according to an embodiment of the present invention may refer to an address mapping table to target logical address range of data received from an application. Maps a logical address included in the C) to a physical address of a physical storage area, writes the data based on the mapped physical address, and based on the continuity of the logical address included in the target logical address. It may include a Flash Translation Layer (FTL) for updating the address mapping table by dynamically changing the size of at least one of the plurality of mapping units constituting an entry (entry) have.
일 실시예에 의하면, 상기 주소 매핑 테이블이 지원하는 상기 매핑 단위들 각각의 사이즈는 기 설정된 최소 매핑 단위 사이즈 내지 기 설정된 최대 매핑 단위 사이즈 범위 내에서 상기 최소 매핑 단위 사이즈에 2k(단, k는 0 이상의 정수)를 곱한 값에 상응할 수 있다. According to an embodiment, the size of each of the mapping units supported by the address mapping table may be 2 k to the minimum mapping unit size within a preset minimum mapping unit size to a preset maximum mapping unit size range, where k is Multiplied by zero or more).
일 실시예에 의하면, 상기 플래시 변환 레이어는 상기 매핑 단위들 각각의 사이즈를 상기 범위 내에서 2k단위로 동적으로 변화시킬 수 있다. According to an embodiment, the flash conversion layer may dynamically change the size of each of the mapping units in 2k units within the range.
본 발명의 실시예들에 따른 스토리지 시스템의 주소 변환 방법은 다양한 사이즈의 매핑 단위들을 포함하는 단일의 주소 매핑 테이블(즉, 매핑 자료 구조)을 이용하여 주소 매핑을 수행할 수 있다. 따라서, 복수의 주소 매핑 테이블들을 관리하는 기존의 하이브리드 매핑(hybrid mapping) 방식의 매핑 자료 구조 검색 시간이 증가되는 단점이 개선될 수 있다. The address translation method of a storage system according to embodiments of the present invention may perform address mapping using a single address mapping table (ie, mapping data structure) including mapping units of various sizes. Therefore, the disadvantage that the search time of the mapping data structure of the existing hybrid mapping scheme managing the plurality of address mapping tables is increased.
본 발명의 실시예들에 따른 스토리지 시스템의 메모리 장치 컨트롤러는 다양한 사이즈의 매핑 단위들을 포함하는 단일의 주소 매핑 테이블(즉, 매핑 자료 구조)을 이용하여 주소 매핑을 수행할 수 있다. 또한, 하나의 매핑 테이블의 엔트리 내에 단일 블록 사이즈 이상의 넓은 논리 주소 영역에 대한 물리 주소 정보가 포함될 수 있으므로, 휘발성 메모리의 제한된 크기 내에서 주소 매핑을 위한 연속되는 데이터의 캐시(cache) 효과가 향상되고, 데이터 읽기 성능이 향상될 수 있다. The memory device controller of the storage system according to embodiments of the present invention may perform address mapping using a single address mapping table (ie, mapping data structure) including mapping units of various sizes. In addition, since physical address information for a wide logical address area of a single block size or more may be included in an entry of one mapping table, a cache effect of contiguous data for address mapping within a limited size of volatile memory is improved. Therefore, data read performance can be improved.
다만, 본 발명의 효과는 상술한 효과에 한정되는 것이 아니며, 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위에서 다양하게 확장될 수 있을 것이다. However, the effects of the present invention are not limited to the above-described effects, and may be variously expanded within a range not departing from the spirit and scope of the present invention.
도 1은 본 발명의 본 발명의 실시예들에 따른 스토리지 시스템을 관리하기 위한 메모리 장치 컨트롤러를 나타내는 블록도이다. 1 is a block diagram illustrating a memory device controller for managing a storage system according to example embodiments of the inventive concepts.
도 2a는 도 1의 메모리 장치 컨트롤러에 의해 제어되는 매핑 테이블의 구조의 일 예를 나타내는 도면이다. FIG. 2A is a diagram illustrating an example of a structure of a mapping table controlled by the memory device controller of FIG. 1.
도 2b는 도 2a의 매핑 테이블에서 지원되는 매핑 단위들의 일 예를 나타내는 도면이다. FIG. 2B is a diagram illustrating an example of mapping units supported in the mapping table of FIG. 2A.
도 3은 본 발명의 실시예들에 따른 메모리 시스템의 주소 변환 방법을 설명하기 위한 순서도이다. 3 is a flowchart illustrating an address translation method of a memory system according to example embodiments.
도 4는 도 3의 주소 변환 방법에서 매핑 테이블을 업데이트하는 동작의 일 예를 설명하기 위한 순서도이다. 4 is a flowchart illustrating an example of an operation of updating a mapping table in the address translation method of FIG. 3.
도 5는 도 4의 매핑 테이블의 업데이트 방법에서 타겟 논리 주소 범위를 복수의 서브 타겟 논리 주소 범위들로 구분하는 일 예를 설명하기 위한 순서도이다. FIG. 5 is a flowchart illustrating an example of dividing a target logical address range into a plurality of sub-target logical address ranges in the updating method of the mapping table of FIG. 4.
도 6은 도 5의 서브 타겟 논리 주소 범위들의 일 예를 나타내는 도면이다. FIG. 6 is a diagram illustrating an example of sub-target logical address ranges of FIG. 5.
도 7은 도 4의 매핑 테이블의 업데이트 방법에서 융합 매핑 단위를 업데이트하는 동작의 일 예를 나타내는 도면이다. FIG. 7 is a diagram illustrating an example of an operation of updating a fusion mapping unit in the updating method of the mapping table of FIG. 4.
도 8은 도 4의 매핑 테이블의 업데이트 방법에서 매핑 단위를 분할하는 일 예를 나타내는 순서도이다. 8 is a flowchart illustrating an example of dividing a mapping unit in the updating method of the mapping table of FIG. 4.
도 9는 도 8의 매핑 단위를 분할하는 동작의 일 예를 나타내는 도면이다. 9 is a diagram illustrating an example of an operation of dividing a mapping unit of FIG. 8.
도 10은 도 8의 매핑 단위를 분할하는 동작의 일 예를 나타내는 도면이다. FIG. 10 is a diagram illustrating an example of an operation of dividing a mapping unit of FIG. 8.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다. Hereinafter, with reference to the accompanying drawings, it will be described in detail a preferred embodiment of the present invention. The same reference numerals are used for the same elements in the drawings, and duplicate descriptions of the same elements are omitted.
도 1은 본 발명의 본 발명의 실시예들에 따른 스토리지 시스템을 관리하기 위한 메모리 장치 컨트롤러를 나타내는 블록도이고, 도 2a는 도 1의 메모리 장치 컨트롤러에 의해 제어되는 주소 매핑 테이블의 구조의 일 예를 나타내는 도면이며, 도 2b는 도 2a의 주소 매핑 테이블에서 지원되는 매핑 단위들의 일 예를 나타내는 도면이다. FIG. 1 is a block diagram illustrating a memory device controller for managing a storage system according to example embodiments. FIG. 2A is an example of a structure of an address mapping table controlled by the memory device controller of FIG. 1. 2B is a diagram illustrating an example of mapping units supported in the address mapping table of FIG. 2A.
도 1 내지 도 2b를 참조하면, 메모리 장치 컨트롤러(100)는 플래시 변환 레이어(Flash Translation Layer; FTL)(140)를 포함할 수 있다. 1 to 2B, the memory device controller 100 may include a flash translation layer (FTL) 140.
메모리 장치 컨트롤러(100)를 포함하는 스토리지 시스템은 메모리 장치 컨트롤러(100), 메모리 장치 컨트롤러(100)와 연결되는 어플리케이션(10) 및 플래시 메모리 장치(20)를 포함할 수 있다. The storage system including the memory device controller 100 may include a memory device controller 100, an application 10 connected to the memory device controller 100, and a flash memory device 20.
일 실시예에서, 메모리 장치 컨트롤러(100)는 어플리케이션(10)에 의하여 발생된 데이터를 메모리 장치의 종류에 무관하게(independent) 쓸 수 있는 인터페이스를 제공하는 파일 시스템을 더 포함할 수 있다. In an embodiment, the memory device controller 100 may further include a file system that provides an interface for writing data generated by the application 10 independently of the type of memory device.
플래시 변환 레이어(140)는 플래시 메모리 장치(20)에 데이터를 쓸 수 있도록 플래시 메모리 장치(20)에 대한 인터페이스를 제공할 수 있다. 플래시 변환 레이어(140)는 어플리케이션(10)으로부터 제공되는 데이터의 타겟 논리 주소의 정보를 제공받을 수 있다. 상기 타겟 논리 주소의 정보는 타겟 논리 주소 범위(target logical address range) 및 이에 포함되는 논리 주소의 정보를 포함할 수 있다. 여기서, 상기 타겟 논리 주소 범위는 주소 매핑 테이블(address mapping table)에 설정된 논리 주소들 중 데이터 쓰기 명령에 의해 선택되는 논리 주소들을 포함하는 범위를 의미한다. 플래시 변환 레이어(140)는 주소 매핑 테이블을 참조하여 상기 타겟 논리 주소를 물리적 저장 영역의 물리 주소로 매핑할 수 있다. 플래시 변환 레이어(140)는 상기 매핑된 물리 주소를 기초로 상기 데이터를 쓸 수 있다. 또한, 플래시 변환 레이어(140)는 상기 논리 주소의 연속성에 기초하여 상기 주소 매핑 테이블의 엔트리(entry)를 구성하는 복수의 매핑 단위들(mapping unit) 중 상기 적어도 하나의 사이즈(size)를 동적으로 변화시켜 상기 주소 매핑 테이블을 업데이트할 수 있다. 상기 물리 주소는 플래시 메모리 장치(20)가 사용하는 물리 주소에 상응할 수 있다. 일 실시예에서, 플래시 변환 레이어(140)는 상기 주소 매핑 테이블을 참조하여 논리적 메모리 주소를 물리적 메모리 주소로 직접 매핑할 수 있다. The flash conversion layer 140 may provide an interface to the flash memory device 20 to write data to the flash memory device 20. The flash translation layer 140 may be provided with information of a target logical address of data provided from the application 10. The information of the target logical address may include a target logical address range and information of a logical address included therein. Here, the target logical address range means a range including logical addresses selected by a data write command among logical addresses set in an address mapping table. The flash translation layer 140 may map the target logical address to a physical address of a physical storage area by referring to an address mapping table. The flash translation layer 140 may write the data based on the mapped physical address. In addition, the flash translation layer 140 may dynamically adjust the size of the at least one of a plurality of mapping units constituting an entry of the address mapping table based on the continuity of the logical address. The address mapping table can be updated by changing the address mapping table. The physical address may correspond to a physical address used by the flash memory device 20. In an embodiment, the flash translation layer 140 may directly map a logical memory address to a physical memory address by referring to the address mapping table.
일 실시예에서, 상기 주소 매핑 테이블이 지원하는 상기 매핑 단위들 각각의 사이즈는 기 설정된 최소 매핑 단위 사이즈 내지 기 설정된 최대 매핑 단위 사이즈 범위 내에서 상기 최소 매핑 단위 사이즈에 2k(단, k는 0 이상의 정수)을 곱한 값에 상응할 수 있다. 예를 들어, 플래시 메모리 장치(20)의 설정에 따라 상기 최소 매핑 단위 사이즈는 하나의 섹터(sector) 사이즈와 동일한 512 바이트(byte)에 상응하고, 상기 최대 매핑 단위 사이즈는 2n(단, n은 자연수) 개의 메모리 블록(memory block)에 상응할 수 있다. 예를 들어, 하나의 페이지(page)는 8개의 섹터들을 포함하고, 하나의 블록은 128개의 페이지들을 포함할 수 있다. 다만, 이는 예시적인 것으로서, 상기 최소 매핑 단위 사이즈 및 상기 최대 매핑 단위 사이즈는 사용되는 메모리 시스템에 따라 최적의 사이즈로 결정될 수 있다. In an embodiment, the size of each of the mapping units supported by the address mapping table is 2k to the minimum mapping unit size within a range of a preset minimum mapping unit size to a preset maximum mapping unit size, where k is 0 or more. Multiplied by an integer). For example, according to the setting of the flash memory device 20, the minimum mapping unit size corresponds to 512 bytes equal to one sector size, and the maximum mapping unit size is 2n (where n is Natural number) memory blocks. For example, one page may include eight sectors, and one block may include 128 pages. However, as an example, the minimum mapping unit size and the maximum mapping unit size may be determined to be optimal sizes according to the memory system used.
도 2a에 도시된 바와 같이, 상기 주소 매핑 테이블은 다양한 사이즈의 매핑 단위들을 포함할 수 있다. 예를 들어, 상기 주소 매핑 테이블 엔트리는 단일 섹터로 구성되는 1섹터 매핑 단위(1-SECTOR UNIT), 2개의 섹터들이 융합된 2섹터 매핑 단위(2-SECTOR UNIT), 4개의 섹터들이 융합된 4섹터 매핑 단위(4-SECTOR UNIT) 등을 포함할 수 있다. 또한, 상기 주소 매핑 테이블은 8개의 섹터들이 융합된 1페이지 매핑 단위(1-PAGE UNIT), 16개의 섹터들(즉, 2개의 페이지들)이 융합된 2페이지 매핑 단위(2-PAGE UNIT)를 포함하고, 2k(단, k는 자연수) 개의 페이지 매핑 단위들이 융합된 슈퍼-페이지(super-page) 매핑 단위들을 포함할 수 있다. 또한, 상기 주소 매핑 테이블은 상기 슈퍼-페이지 단위들이 융합된 블록 단위(1-BLOCK UNIT), 2j(단, j는 자연수) 개의 블록 매핑 단위들이 융합된 슈퍼-블록(super-block) 매핑 단위들을 포함할 수 있다. 상기 매핑 테이블은 섹터 별로 상기 논리 주소 및 이에 대응하는 물리 주소를 포함할 수 있다. 상기 주소 매핑 테이블은 상기 매핑 단위들을 구성하는 복수의 섹터들의 엔트리에 대한 매핑 테이블을 가질 수 있다. As shown in FIG. 2A, the address mapping table may include mapping units of various sizes. For example, the address mapping table entry may include one sector mapping unit (1-SECTOR UNIT) consisting of a single sector, two sector mapping unit (2-SECTOR UNIT) in which two sectors are fused, and four sectors in which four sectors are fused. Sector mapping unit (4-SECTOR UNIT) and the like. In addition, the address mapping table may include a 1-page UNIT unit in which eight sectors are fused, and a 2-PAGE UNIT unit in which 16 sectors (ie, two pages) are fused. And 2k (where k is a natural number) page mapping units fused to super-page mapping units. In addition, the address mapping table may include super-block mapping units in which the super-page units are fused and block units (1-BLOCK UNIT) and 2j (where j is a natural number) are fused. It may include. The mapping table may include the logical address and the corresponding physical address for each sector. The address mapping table may have a mapping table for entries of a plurality of sectors constituting the mapping units.
여기서, 2 이상의 섹터들을 포함하는 매핑 단위들(예를 들어, 2섹터 매핑 단위(2-SECTOR UNIT), 4섹터 매핑 단위(4-SECTOR UNIT), 1페이지 매핑 단위(1-PAGE UNIT) 등)은 연속된 논리 주소 및 이에 상응하는 연속된 물리 주소를 보장할 수 있다. 따라서, 상기 2 이상의 섹터들을 포함하는 매핑 단위들은 각각의 헤드 논리 섹터 주소(즉, 도 2a에서 HEAD로 표시)와 이에 연속되는 나머지 논리 섹터 주소(즉, 도 2a에 NON_HEAD로 표시됨)에 의해 정의될 수 있다. 상기 헤드 논리 섹터 주소가 아닌 논리 섹터 주소들(NON_HEAD)은 주소 질의(address query) 시에 물리 주소를 리턴 하는 데에 참조될 수 있다. 예를 들어, 도 2a에 도시된 바와 같이, 2페이지 매핑 단위(2-PAGE UNIT)에 상응하는 데이터가 연속적으로 써지는 경우, 상기 2페이지 매핑 단위(2-PAGE UNIT)의 헤드 논리 섹터 주소에 상응하는 물리 주소로부터 연속하여 2페이지의 데이터가 상기 저장 영역에 기입될 수 있다. Here, mapping units including two or more sectors (eg, 2-SECTOR UNIT, 4-SECTOR UNIT, 1-PAGE UNIT, etc.) Can guarantee a contiguous logical address and corresponding contiguous physical address. Thus, the mapping units comprising the two or more sectors may be defined by each head logical sector address (i.e. indicated by HEAD in FIG. 2a) and the subsequent logical sector address (i.e. indicated by NON_HEAD in FIG. 2a). Can be. Logical sector addresses NON_HEAD other than the head logical sector address may be referenced to return a physical address in an address query. For example, as shown in FIG. 2A, when data corresponding to a 2-page unit is continuously written, the head logical sector address of the 2-page unit is included. Two pages of data can be written to the storage area consecutively from the corresponding physical address.
상기 헤드 논리 섹터 주소는 특정 논리 섹터(즉, 데이터 기입에 사용된 논리 섹터 주소)가 포함되는 매핑 단위에 따라 동적으로 변할 수 있다. 예를 들어, 논리 섹터 주소 3(S3)이 포함되는 매핑 단위의 사이즈가 1섹터인 경우, 논리 섹터 주소 3(S3)이 상기 헤드 논리 섹터 주소가 되고, 논리 섹터 3(S3)이 포함되는 매핑 단위의 사이즈가 2섹터인 경우, 논리 섹터 주소 2(S2)가 상기 헤드 논리 섹터 주소가 될 수 있다. 마찬가지로, 논리 섹터 주소 3(S3)이 포함되는 매핑 단위의 사이즈가 4섹터인 경우, 논리 섹터 0(S0)이 상기 헤드 논리 섹터 주소가 될 수 있다. 예를 들어, 기입되는 데이터가 논리 섹터 주소 3(S3)을 지시하는 경우, 섹터 주소 3(S3)에 의해 섹터 주소 3(S3)을 포함하는 매핑 단위의 상기 헤드 논리 섹터 주소가 참조되고, 상기 헤드 논리 섹터 주소와 섹터 주소 3(s3)의 오프셋에 따라 섹터 주소 3(S3)에 대응하는 물리 주소가 리턴될 수 있다 The head logical sector address may be dynamically changed according to a mapping unit including a specific logical sector (ie, a logical sector address used for writing data). For example, when the size of the mapping unit including logical sector address 3 (S3) is 1 sector, the logical sector address 3 (S3) becomes the head logical sector address and the mapping includes logical sector 3 (S3). If the size of the unit is two sectors, logical sector address 2 (S2) may be the head logical sector address. Similarly, when the size of the mapping unit including logical sector address 3 (S3) is 4 sectors, logical sector 0 (S0) may be the head logical sector address. For example, when the data to be written indicates logical sector address 3 (S3), the head logical sector address of the mapping unit including sector address 3 (S3) is referred to by sector address 3 (S3), and A physical address corresponding to sector address 3 (S3) may be returned according to the offset of the head logical sector address and sector address 3 (s3).
일 실시예에서, 플래시 변환 레이어(140)는 상기 데이터가 지시하는 논리 주소의 연속성에 기초하여 적어도 일부의 매핑 단위들의 사이즈를 상기 최소 매핑 단위 사이즈 내지 상기 최대 매핑 단위 사이즈 범위 내에서 2k 단위로 동적으로 변화시킬 수 있다. 예를 들어, 도 2b에 도시된 바와 같이, 플래시 변환 레이어(140)는 최소 매핑 단위 사이즈인 1섹터 매핑 단위(S)로부터 최대 매핑 단위 사이즈인 j블록 매핑 단위까지 상기 매핑 단위들의 사이즈를 동적으로 변화시킬 수 있다. 즉, 상기 매핑 단위 사이즈는 기입되는 데이터의 연속성에 기초하여 섹터 단위 사이즈(SUB_PAGE), 슈퍼 페이지 사이즈(SUPER_PAGE) 슈퍼 블록 사이즈(SUPER_BLOCK) 등으로 다양하게 변화되고, 논리 주소 별로 사이즈가 고정되지 않는다. In one embodiment, the flash translation layer 140 dynamically adjusts the size of at least some of the mapping units in 2k units within the range of the minimum mapping unit size to the maximum mapping unit size based on the continuity of the logical address indicated by the data. Can be changed. For example, as illustrated in FIG. 2B, the flash conversion layer 140 dynamically sizes the mapping units from one sector mapping unit S, which is the minimum mapping unit size, to j block mapping units, which is the maximum mapping unit size. Can change. That is, the mapping unit size is variously changed into a sector unit size (SUB_PAGE), a super page size (SUPER_PAGE), a super block size (SUPER_BLOCK), and the like based on the continuity of data to be written, and the size is not fixed for each logical address.
상술한 바와 같이, 본 발명의 실시예들에 따른 메모리 장치 컨트롤러(100)는 다양한 사이즈의 매핑 단위들을 포함하는 단일의 주소 매핑 테이블(즉, 매핑 자료 구조)을 이용하여 주소 매핑을 수행할 수 있다. 또한, 상기 매핑 단위 융합에 의해 하나의 매핑 테이블의 엔트리를 이용하여 블록 사이즈 이상의 넓은 논리 주소 영역에 대한 물리 주소 정보가 기입될 수 있으므로, 휘발성 메모리의 제한된 크기 내에서 주소 매핑을 위한 연속되는 데이터의 캐시(cache) 효과가 향상되고, 데이터 읽기 성능이 향상될 수 있다. As described above, the memory device controller 100 may perform address mapping using a single address mapping table (ie, mapping data structure) including mapping units of various sizes. . In addition, physical address information for a wide logical address area of a block size or more may be written by using an entry of one mapping table by the mapping unit fusion, so that contiguous data for address mapping within a limited size of volatile memory may be written. The cache effect can be improved and data read performance can be improved.
플래시 변환 레이어(140)의 구체적인 동작 및 상기 주소 매핑 테이블을 업데이트하는 방법들에 대해서는 도 3 내지 도 10을 참조하여 상술하기로 한다. Detailed operations of the flash translation layer 140 and methods of updating the address mapping table will be described in detail with reference to FIGS. 3 to 10.
도 3은 본 발명의 실시예들에 따른 메모리 시스템의 주소 변환 방법을 설명하기 위한 순서도이다. 3 is a flowchart illustrating an address translation method of a memory system according to example embodiments.
도 3을 참조하면, 메모리 시스템의 주소 변환 방법은 어플리케이션(application)으로부터 인가되는 데이터의 타겟 논리 주소 범위를 입력받고(S100), 주소 매핑 테이블을 이용하여 상기 타겟 논리 주소를 물리적 저장 영역의 물리 주소로 매핑(S200)하며, 상기 매핑된 물리 주소를 기초로 상기 데이터를 쓴(S300) 후, 상기 타겟 논리 주소의 연속성에 기초하여 상기 주소 매핑 테이블의 엔트리를 구성하는 복수의 매핑 단위(mapping unit)들 중 적어도 하나의 사이즈를 동적으로 변화시켜 상기 주소 매핑 테이블을 업데이트(S400)할 수 있다. Referring to FIG. 3, the address translation method of the memory system receives a target logical address range of data applied from an application (S100), and uses the address mapping table to convert the target logical address into a physical address of a physical storage area. After mapping to S200 and writing the data based on the mapped physical address S300, a plurality of mapping units constituting an entry of the address mapping table based on the continuity of the target logical address. The address mapping table may be updated (S400) by dynamically changing the size of at least one of them.
상기 데이터의 상기 타겟 논리 주소 범위가 입력(S100)될 수 있다. 여기서, 상기 타겟 논리 주소 범위는 상기 주소 매핑 테이블에 설정된 논리 주소들 중 데이터 쓰기 명령에 의해 선택되는 논리 주소들을 의미한다. 예를 들어, 상기 타겟 논리 주소 범위에 포함되는 논리 주소는 하나의 섹터 또는 연속된 복수의 섹터들에 상응할 수 있다. The target logical address range of the data may be input (S100). Here, the target logical address range means logical addresses selected by a data write command among logical addresses set in the address mapping table. For example, the logical address included in the target logical address range may correspond to one sector or a plurality of consecutive sectors.
상기 주소 매핑 테이블에 의해 상기 타겟 논리 주소 범위에 포함되는 상기 논리 주소가 상기 물리 주소로 매핑(S200)될 수 있다. 일 실시예에서, 플래시 변환 레이어가 상기 논리 주소를 상기 물리 주소로 직접 매핑할 수 있다. 상기 주소 매핑 테이블이 지원하는 상기 매핑 단위들 각각의 사이즈는 기 설정된 최소 매핑 단위 사이즈 내지 기 설정된 최대 매핑 단위 사이즈 범위 내에서 상기 최소 매핑 단위 사이즈에 2k(단, k는 0 이상의 정수)을 곱한 값에 상응할 수 있다. 예를 들어, 상기 최소 매핑 단위 사이즈는 하나의 섹터(즉, 서브-페이지 사이즈)에 상응하고, 상기 최대 매핑 단위 사이즈는 2j(단, j는 자연수) 개의 블록(즉, 슈퍼-블록 사이즈)에 상응할 수 있다. The logical address included in the target logical address range may be mapped to the physical address by the address mapping table (S200). In one embodiment, a flash translation layer may map the logical address directly to the physical address. The size of each of the mapping units supported by the address mapping table is a value obtained by multiplying the minimum mapping unit size by 2k (where k is an integer of 0 or more) within a preset minimum mapping unit size to a preset maximum mapping unit size range. May correspond to For example, the minimum mapping unit size corresponds to one sector (i.e., sub-page size), and the maximum mapping unit size is 2j (where j is a natural number) blocks (i.e., super-block size). May correspond.
상기 매핑된 물리 주소를 기초로 상기 데이터가 기입(S300)될 수 있다. The data may be written (S300) based on the mapped physical address.
상기 타겟 논리 주소 범위에 포함되는 논리 주소의 연속성에 기초하여 상기 매핑 단위들 중 적어도 하나의 사이즈가 동적으로 변화되어 상기 주소 매핑 테이블이 업데이트(S400)될 수 있다. 일 실시예에서, 상기 매핑 단위들 각각의 사이즈는 상기 설정된 범위 내에서 2k 단위로 동적으로 변할 수 있다. 상기 매핑 단위들 각각의 사이즈는 상기 기입된 데이터가 지시하는 논리 주소의 연속성(즉, 상기 타겟 논리 주소 범위의 사이즈)에 기초하여 변할 수 있다. The size of at least one of the mapping units may be dynamically changed based on the continuity of logical addresses included in the target logical address range, so that the address mapping table may be updated (S400). In an embodiment, the size of each of the mapping units may change dynamically in 2k units within the set range. The size of each of the mapping units may vary based on the continuity of the logical address indicated by the written data (ie, the size of the target logical address range).
상기 주소 매핑 테이블의 업데이트(S400)는 상기 타겟 논리 주소 범위에 포함되는 논리 주소들을 융합하여 적어도 하나의 새로운 융합 매핑 단위들을 결정할 수 있다. 상기 융합 매핑 단위들은 상기 타겟 논리 주소들이 분할된 서브 타겟 논리 주소 범위들에 기초하여 결정될 수 있다. 일 실시예에서, 상기 융합 매핑 단위는 기존의 매핑 단위의 사이즈 및 상기 서브 타겟 논리 주소 범위들에 기초하여 분할될 수도 있다. 여기서, 상기 융합 매핑 단위들은 현재 매핑 단위들이 타겟 논리 주소 범위를 구성하는 서브 타겟 논리 주소 범위들에 기초한 일련의 융합 및/또는 분할 과정을 거쳐 업데이트된 매핑 단위들을 의미한다. 상술한 바와 같이, 본 발명의 실시예들에 따른 스토리지 시스템의 주소 변환 방법은 다양한 사이즈의 매핑 단위들을 포함하는 하나의 매핑 자료 구조(즉, 주소 매핑 테이블)만을 이용하므로, 복수의 자료 구조를 검색하는 하이브리드 매핑 방식과 비교하여 자료 구조 검색 시간이 더욱 감소될 수 있다. The update S400 of the address mapping table may determine at least one new fusion mapping unit by fusing logical addresses included in the target logical address range. The fusion mapping units may be determined based on sub-target logical address ranges in which the target logical addresses are divided. In one embodiment, the fusion mapping unit may be split based on the size of the existing mapping unit and the sub-target logical address ranges. Here, the fusion mapping units refer to mapping units whose current mapping units are updated through a series of fusion and / or partitioning processes based on sub-target logical address ranges constituting a target logical address range. As described above, the address translation method of the storage system according to embodiments of the present invention uses only one mapping data structure (ie, an address mapping table) including mapping units of various sizes, thereby searching for a plurality of data structures. Compared to the hybrid mapping method, the data structure retrieval time can be further reduced.
도 4는 도 3의 주소 변환 방법에서 매핑 테이블을 업데이트하는 동작의 일 예를 설명하기 위한 순서도이다. 4 is a flowchart illustrating an example of an operation of updating a mapping table in the address translation method of FIG. 3.
도 3 및 도 4를 참조하면, 주소 매핑 테이블을 업데이트(S400)하는 방법은 타겟 논리 주소 범위를 제1 내지 제n(단, n은 2 이상의 자연수) 서브 타겟 논리 주소 범위들로 구분(S410)하고, 제m(단, m은 n이하의 자연수) 서브 타겟 논리 주소 범위가 포함되는 현재 매핑 단위의 개수를 판단(S420)하며, 상기 제m 서브 타겟 논리 주소 범위가 단일의 상기 현재 매핑 단위 내에 포함되는 경우, 상기 현재 매핑 단위를 분할(S430)할 수 있다. 또한, 주소 매핑 테이블을 업데이트(S400)하는 방법은 상기 제m 서브 타겟 논리 주소 범위가 복수의 상기 현재 매핑 단위들에 중첩되는 경우, 상기 제m 서브 타겟 논리 주소 범위의 위치 및 사이즈에 상응하는 융합 매핑 단위를 결정(S440)하며, 상기 융합 매핑 단위에 대응하는 물리 주소를 업데이트(S450)할 수 있다. 3 and 4, in a method of updating an address mapping table (S400), the target logical address range is divided into first to nth (where n is a natural number of two or more) subtarget logical address ranges (S410). And m (where m is a natural number less than n) determines the number of current mapping units including the sub-target logical address range (S420), and the m-th sub-target logical address range is within the single current mapping unit. If included, the current mapping unit may be split (S430). In addition, in the method of updating the address mapping table (S400), when the m-th sub-target logical address range overlaps a plurality of the current mapping units, fusion corresponding to the position and size of the m-th sub-target logical address range may be performed. The mapping unit may be determined (S440), and a physical address corresponding to the fusion mapping unit may be updated (S450).
상기 타겟 논리 주소 범위에 포함되는 논리 주소들이 융합됨으로써 상기 타겟 논리 주소 범위가 상기 제1 내지 제n 서브 타겟 논리 주소 범위들로 구분(S410)될 수 있다. 상기 1 내지 제n 서브 타겟 논리 주소 범위들은 업데이트되는 융합 매핑 단위의 기초가 된다. 상기 1 내지 제n 서브 타겟 논리 주소 범위들은 각각 2k에 상응하는 사이즈를 가질 수 있다. 상기 논리 주소들을 융합하여 서브 타겟 논리 주소 범위들을 구분하는 방법은 도 5 내지 도 7을 참조하여 설명하기로 한다. As the logical addresses included in the target logical address range are fused, the target logical address range may be divided into the first to nth sub-target logical address ranges (S410). The 1 th to n th subtarget logical address ranges are the basis of an updated fusion mapping unit. The 1 th to n th subtarget logical address ranges may each have a size corresponding to 2k. A method of distinguishing sub-target logical address ranges by fusing the logical addresses will be described with reference to FIGS. 5 to 7.
일 실시예에서, 하나의 서브 타겟 논리 주소의 첫 논리 섹터 주소(또는 시작 논리 섹터 주소)는 이에 대응하는 융합 매핑 단위의 헤드 논리 섹터 주소에 상응할 수 있다. In one embodiment, the first logical sector address (or starting logical sector address) of one sub-target logical address may correspond to the head logical sector address of the corresponding fusion mapping unit.
상기 제m 서브 타겟 논리 주소 범위가 포함되는 현재 매핑 단위의 개수를 판단(S420)할 수 있다. 상기 판단 과정은 상기 제1 내지 제n 서브 타겟 논리 주소 범위들에 각각 순차적으로 적용될 수 있다. 즉, 상기 판단 과정을 통해 상기 제1 내지 제n 서브 타겟 논리 주소 범위들을 각각 포함하는 현재 매핑 단위의 분할 여부가 판단된다. The number of current mapping units including the m-th sub-target logical address range may be determined (S420). The determination process may be sequentially applied to the first to nth sub-target logical address ranges, respectively. That is, the determination process determines whether the current mapping unit including the first to nth sub-target logical address ranges is divided.
상기 제m 서브 타겟 논리 주소 범위가 단일의 상기 현재 매핑 단위 내에 포함되는 경우, 상기 현재 매핑 단위는 적어도 한 번 분할(S430)될 수 있다. 이 경우, 상기 현재 매핑 단위의 사이즈는 상기 제m 서브 타겟 논리 주소 범위보다 크다. 상기 분할이 완료된 매핑 단위들은 새로운 융합 매핑 단위들로 결정(S440)될 수 있다. 이 때, 상기 융합 매핑 단위들 각각의 첫 논리 섹터 주소는 헤드 논리 섹터 주소로 업데이트될 수 있다. 또한, 상기 융합 매핑 단위들 각각에 대응하는 물리 주소가 업데이트(S450)될 수 있다. When the m-th sub-target logical address range is included in a single current mapping unit, the current mapping unit may be split at least once (S430). In this case, the size of the current mapping unit is larger than the m th subtarget logical address range. The mapping units in which the split is completed may be determined as new fusion mapping units (S440). In this case, the first logical sector address of each of the fusion mapping units may be updated with the head logical sector address. In addition, a physical address corresponding to each of the fusion mapping units may be updated (S450).
상기 제m 서브 타겟 논리 주소 범위가 복수의 현재 매핑 단위들과 중첩되는 경우(또는, 복수의 현재 매핑 단위들에 포함되는 경우), 상기 제m 서브 타겟 논리 주소 범위의 위치 및 사이즈에 상응하는 상기 융합 매핑 단위가 결정(S440)될 수 있다. 예를 들어, 상기 제m 서브 타겟 논리 주소 범위가 논리 섹터 주소 8 내지 논리 섹터 주소 15을 포함하면서 8섹터의 사이즈를 갖는 경우, 이에 대응하는 상기 융합 매핑 단위의 사이즈는 8섹터이고, 상기 융합 매핑 단위의 헤드 논리 섹터 주소는 논리 섹터 주소 8에 상응할 수 있다. 상기 융합 매핑 단위들 각각의 첫 논리 섹터 주소는 헤드 논리 섹터 주소로 업데이트될 수 있다. 또한, 상기 융합 매핑 단위들 각각에 대응하는 물리 주소가 업데이트(S450)될 수 있다. When the m th subtarget logical address range overlaps (or is included in a plurality of current mapping units), the m sub target logical address range corresponds to the position and size of the m th subtarget logical address range. The fusion mapping unit may be determined (S440). For example, when the m-th sub-target logical address range includes a logical sector address 8 to a logical sector address 15 and has a size of 8 sectors, the size of the corresponding fusion mapping unit is 8 sectors, and the fusion mapping The head logical sector address of the unit may correspond to logical sector address 8. The first logical sector address of each of the fusion mapping units may be updated with the head logical sector address. In addition, a physical address corresponding to each of the fusion mapping units may be updated (S450).
이에 따라, 상기 타겟 논리 주소 범위에 대응하는 현재 매핑 단위들은 상기 서브 타겟 논리 주소 범위들의 사이즈 및 위치에 기초하여 분할 또는 융합될 수 있다. 따라서, 매핑 자료 구조(예를 들어, 주소 매핑 테이블)의 검색 시간이 크게 단축될 수 있다. Accordingly, current mapping units corresponding to the target logical address range may be divided or fused based on the size and position of the sub-target logical address ranges. Thus, the search time of the mapping data structure (eg, address mapping table) can be greatly shortened.
도 5는 도 4의 매핑 테이블의 업데이트 방법에서 타겟 논리 주소 범위를 복수의 서브 타겟 논리 주소 범위들로 구분하는 일 예를 설명하기 위한 순서도이고, 도 6은 도 5의 서브 타겟 논리 주소 범위들의 일 예를 나타내는 도면이다. FIG. 5 is a flowchart illustrating an example of dividing a target logical address range into a plurality of sub-target logical address ranges in the updating method of the mapping table of FIG. 4, and FIG. 6 is a diagram of one of the sub-target logical address ranges of FIG. 5. It is a figure which shows an example.
도 4 내지 도 6을 참조하면, 타겟 논리 주소 범위를 복수의 서브 타겟 논리 주소 범위들로 구분(S410)하는 방법은 제m 서브 타겟 논리 주소 범위의 첫 논리 섹터 주소를 결정(S412)하고, 상기 첫 논리 섹터 주소에 기초하여 제1 최대 사이즈를 산출(S414)하며, 상기 타겟 논리 주소 범위의 사이즈에서 상기 제1 내지 제m-1 서브 타겟 논리 주소 범위들 전체의 사이즈를 뺀 값인 서브 사이즈(sub-size)에 기초하여 제2 최대 사이즈를 산출(S416)하고, 상기 첫 논리 섹터 주소로부터 연속되는 상기 논리 주소들을 제1 최대 사이즈와 상기 제2 최대 사이즈 중 더 작은 사이즈로 융합하여 상기 제m 서브 타겟 논리 주소 범위를 생성(S418)하는 것을 포함할 수 있다. 상기 S412 내지 S418 단계들이 반복됨으로써 제1 내지 제n 서브 타겟 논리 주소 범위들(STLA1, STLA2, STLA3, STLA4)이 결정될 수 있다. 4 to 6, in the method of dividing the target logical address range into a plurality of sub-target logical address ranges (S410), the first logical sector address of the m th sub-target logical address range is determined (S412), and A first maximum size is calculated based on the first logical sector address (S414), and the sub size (sub) is a value obtained by subtracting the size of the entire first to m-th sub-target logical address ranges from the size of the target logical address range. calculate a second maximum size based on the second size, and merge the logical addresses consecutive from the first logical sector address into a smaller one of the first maximum size and the second maximum size. It may include generating a target logical address range (S418). As the steps S412 to S418 are repeated, the first to nth sub-target logical address ranges STLA1, STLA2, STLA3, and STLA4 may be determined.
우선, 제m 서브 타겟 논리 주소 범위의 첫 논리 섹터 주소가 결정(S412)될 수 있다. 일 실시예에서, 제1 서브 타겟 논리 주소 범위(STLA1)의 첫 논리 섹터 주소(FSA1)는 타겟 논리 주소 범위(TLA)의 첫 논리 섹터 주소(FSA)에 상응할 수 있다. 제2 서브 타겟 논리 주소 범위(STLA2)의 첫 논리 주소(FSA2)는 제1 서브 타겟 논리 주소 범위(STLA1)가 결정된 후에 결정될 수 있다. 제2 서브 타겟 논리 주소 범위(STLA2)의 첫 논리 주소 (FSA2)는 제1 서브 타겟 논리 주소 범위(STLA1)의 마지막 논리 섹터 주소의 다음 논리 섹터 주소(FSA2)에 상응할 수 있다. 또한, 제m 서브 타겟 논리 주소 범위의 첫 논리 주소는 제m-1 서브 타겟 논리 주소 범위가 결정된 후에 결정될 수 있다. 일 실시예에서, 제1 타겟 논리 주소 범위(STLA1)를 제외한 상기 제m 서브 타겟 논리 주소 범위의 상기 첫 논리 섹터 주소는 상기 제m-1 서브 타겟 논리 주소 범위의 마지막 논리 섹터 주소의 다음 논리 섹터 주소에 상응할 수 있다. First, the first logical sector address of the mth sub-target logical address range may be determined (S412). In one embodiment, the first logical sector address FSA1 of the first sub-target logical address range STLA1 may correspond to the first logical sector address FSA of the target logical address range TLA. The first logical address FSA2 of the second subtarget logical address range STLA2 may be determined after the first subtarget logical address range STLA1 is determined. The first logical address FSA2 of the second subtarget logical address range STLA2 may correspond to the next logical sector address FSA2 of the last logical sector address of the first subtarget logical address range STLA1. Also, the first logical address of the mth subtarget logical address range may be determined after the m-1 subtarget logical address range is determined. In one embodiment, the first logical sector address of the mth subtarget logical address range except the first target logical address range STLA1 is the next logical sector of the last logical sector address of the m-1 subtarget logical address range. May correspond to an address.
이하, 제1 서브 타겟 논리 주소 범위(STLA1)가 결정되는 방법을 중심으로 설명하기로 한다. Hereinafter, a method of determining the first sub-target logical address range STLA1 will be described.
제1 서브 타겟 논리 주소 범위(STLA1)의 첫 논리 섹터 주소(FSA1)에 기초하여 제1 최대 사이즈가 산출(S414)될 수 있다. 첫 논리 섹터 주소(FSA1)는 2의 거듭제곱들의 합으로 표현될 수 있다. 일 실시예에서, 상기 제1 최대 사이즈는 상기 2의 거듭제곱들 중 가장 작은 값에 상응할 수 있다. 예를 들어, 첫 논리 섹터 주소(FSA1)가 논리 섹터 24(즉, 24 + 23)인 경우, 상기 제1 최대 사이즈는 8섹터일 수 있다. 또는, 첫 논리 섹터 주소(FSA1)가 5(즉, 22 + 20)인 경우, 상기 제1 최대 사이즈는 1섹터(즉, 20)일 수 있다. The first maximum size may be calculated (S414) based on the first logical sector address FSA1 of the first sub-target logical address range STLA1. The first logical sector address FSA1 may be expressed as the sum of powers of two. In one embodiment, the first maximum size may correspond to the smallest of the powers of two. For example, when the first logical sector address FSA1 is logical sector 24 (ie, 24 + 23), the first maximum size may be eight sectors. Alternatively, when the first logical sector address FSA1 is 5 (ie, 22 + 20), the first maximum size may be 1 sector (ie, 20).
제1 서브 타겟 논리 주소 범위(STLA1)의 경우, 타겟 논리 주소 범위(TLA)의 사이즈에 기초하여 상기 제2 최대 사이즈가 산출(S416)될 수 있다. 상기 타겟 논리 주소 범위(TLA)의 사이즈 및 상기 서브 사이즈는 2의 거듭제곱들의 합으로 표현될 수 있다. 이 때, 상기 제2 최대 사이즈는 상기 서브 사이즈는 상기 2의 거듭제곱들 중 가장 큰 값에 상응할 수 있다. In the case of the first sub-target logical address range STLA1, the second maximum size may be calculated (S416) based on the size of the target logical address range TLA. The size of the target logical address range TLA and the sub size may be expressed as a sum of powers of two. In this case, the second maximum size may correspond to the largest value among the powers of two.
제1 서브 타겟 논리 주소 범위(STLA1)의 경우, 상기 서브 사이즈는 타겟 논리 주소 범위(TLA)의 사이즈에 상응할 수 있다. 예를 들어, 도 6의 경우, 타겟 논리 주소 범위(TLA)의 사이즈는 60섹터(즉, 23 + 25 + 24 + 22)이므로, 제1 서브 타겟 논리 주소 범위(STLA1)의 상기 제2 최대 사이즈는 32섹터(즉, 25)일 수 있다. In the case of the first sub-target logical address range STLA1, the sub-size may correspond to the size of the target logical address range TLA. For example, in the case of FIG. 6, the size of the target logical address range TLA is 60 sectors (ie, 23 + 25 + 24 + 22), and thus the second maximum size of the first sub target logical address range STLA1. May be 32 sectors (ie, 25).
일 실시예에서, 제1 서브 타겟 논리 주소 범위(STLA1)를 제외한 제m 서브 타겟 논리 주소 범위의 경우, 상기 서브 사이즈는 타겟 논리 주소 범위(TLA)의 사이즈에서 상기 제1 내지 제m-1 서브 타겟 논리 주소 범위들 전체의 사이즈를 뺀 값에 상응할 수 있다. 예를 들어, 제2 서브 타겟 논리 주소 범위(STLA2)의 상기 서브 사이즈는 52섹터(즉, 26 - 23)이고, 제2 서브 타겟 논리 주소 범위(STLA2)의 상기 제2 최대 사이즈는 32섹터(즉, 25)일 수 있다. 나머지 서브 타겟 논리 주소 범위들에 대해서도 동일한 방식으로 상기 제2 최대 사이즈가 산출될 수 있다. In an embodiment, for the m sub-target logical address range excluding the first sub-target logical address range STLA1, the sub size is the first to m-1 sub in the size of the target logical address range TLA. It may correspond to a value minus the size of the entire target logical address ranges. For example, the sub-size of the second sub-target logical address range STLA2 is 52 sectors (ie, 26 to 23), and the second maximum size of the second sub-target logical address range STLA2 is 32 sectors ( That is, 25). The second maximum size may be calculated in the same manner for the remaining subtarget logical address ranges.
첫 논리 섹터 주소(FSA1)로부터 연속되는 상기 논리 주소들이 상기 제1 최대 사이즈와 상기 제2 최대 사이즈 중 더 작은 사이즈로 융합되어 상기 제m 서브 타겟 논리 주소 범위가 결정(S418)될 수 있다. 도 6에 도시된 바와 같이, 제1 서브 타겟 논리 주소 범위(STLA1)의 상기 제1 최대 사이즈가 8섹터이고 상기 제2 최대 사이즈가 32섹터인 경우, 제1 서브 타겟 논리 주소 범위(STLA1)는 8섹터 사이즈로 융합될 수 있다. The logical addresses consecutive from the first logical sector address FSA1 may be fused to the smaller of the first maximum size and the second maximum size to determine the m th sub-target logical address range (S418). As shown in FIG. 6, when the first maximum size of the first sub-target logical address range STLA1 is 8 sectors and the second maximum size is 32 sectors, the first sub-target logical address range STLA1 is It can be fused to 8 sectors in size.
마찬가지로, 제2 서브 타겟 논리 주소 범위(STLA2)는 32섹터 사이즈(즉, 25)로 융합되고, 제3 서브 타겟 논리 주소 범위(STLA3)는 16섹터 사이즈(즉, 24)로 융합되며, 제4 서브 타겟 논리 주소 범위(STLA4)는 4섹터 사이즈(즉, 22)로 융합될 수 있다. 다만, 이는 예시적인 것으로서, 서브 타겟 논리 주소 범위의 사이즈가 이에 한정되는 것은 아니다. Similarly, the second subtarget logical address range STLA2 is fused to 32 sector size (ie, 25), the third subtarget logical address range STLA3 is fused to 16 sector size (ie, 24), and the fourth The sub target logical address range STLA4 may be fused to a 4-sector size (ie, 22). However, this is merely an example, and the size of the subtarget logical address range is not limited thereto.
도 6에 도시된 바와 같이, 타겟 논리 주소 범위(TLA)에 대응하는 현재 매핑 테이블(OLD MAP TABLE)의 현재 매핑 단위들(MU1 내지 MU5)은 제1 내지 제4 서브 타겟 논리 주소 범위들(STLA1 내지 STLA4)에 기초하여 융합 매핑 단위들(NMU1 내지 NMU6)로 업데이트될 수 있다. 일 실시예에서, 제1 서브 타겟 논리 주소 범위(STLA1) 가 제1 현재 매핑 단위(MU1) 내에 포함되므로, 제1 현재 매핑 단위(MU1)가 분할될 수 있다. 그 결과, 23 섹터 사이즈를 갖는 제1 및 제2 융합 매핑 단위들(NMU1, NMU2)이 결정될 수 있다. 분할된 매핑 단위의 사이즈가 제1 서브 타겟 논리 주소 범위(STLA1)에 상응하는 사이즈와 같아지면 상기 분할 동작이 종료될 수 있다. 여기서, 제1 현재 매핑 단위(MU1)는 두 번 분할될 수 있다. 마찬가지로, 제5 현재 매핑 단위(MU5)는 제4 서브 타겟 논리 주소 범위(STLA4)의 사이즈에 기초하여 분할될 수 있다. As illustrated in FIG. 6, the current mapping units MU1 to MU5 of the current mapping table OLD MAP TABLE corresponding to the target logical address range TLA are the first to fourth sub-target logical address ranges STLA1. To STLA4), may be updated to fusion mapping units NMU1 to NMU6. In an embodiment, since the first sub-target logical address range STLA1 is included in the first current mapping unit MU1, the first current mapping unit MU1 may be split. As a result, the first and second fusion mapping units NMU1 and NMU2 having a 23 sector size may be determined. If the size of the divided mapping unit is equal to the size corresponding to the first sub-target logical address range STLA1, the splitting operation may be terminated. Here, the first current mapping unit MU1 may be divided twice. Similarly, the fifth current mapping unit MU5 may be divided based on the size of the fourth sub-target logical address range STLA4.
또한, 도 6에 도시된 바와 같이, 제2 및 제3 서브 타겟 논리 주소 범위들(STLA2, STLA3)에 기초하여 제1 현재 매핑 유닛(MU1)의 일부 내지 제4 현재 매핑 유닛들(MU2, MU3, MU4)이 각각 융합되어 제3 및 제4 융합 매핑 단위들(NMU3, NMU4)이 결정될 수 있다. 제3 융합 매핑 단위(NMU3)는 25섹터 사이즈를 가지고, 제4 융합 매핑 단위(NMU4)는 24섹터 사이즈를 가질 수 있다. In addition, as shown in FIG. 6, parts of the first current mapping unit MU1 to fourth current mapping units MU2 and MU3 based on the second and third sub-target logical address ranges STLA2 and STLA3. , MU4) may be fused to determine third and fourth fusion mapping units NMU3 and NMU4, respectively. The third fusion mapping unit NMU3 may have a size of 25 sectors, and the fourth fusion mapping unit NMU4 may have a size of 24 sectors.
제1 내지 제6 융합 매핑 단위들(NMU1 내지 NMU6) 각각의 헤드 논리 섹터 주소가 업데이트되고, 제1 내지 제6 융합 매핑 단위들(NMU1 내지 NMU6) 각각의 논리 주소들에 대응하는 물리 주소들이 업데이트됨으로써 주소 매핑 테이블이 업데이트될 수 있다. The head logical sector address of each of the first to sixth fusion mapping units NMU1 to NMU6 is updated, and the physical addresses corresponding to the logical addresses of each of the first to sixth fusion mapping units NMU1 to NMU6 are updated. As a result, the address mapping table may be updated.
상술한 바와 같이, 상기 타겟 논리 주소 범위에 대응하는 현재 매핑 단위들은 상기 서브 타겟 논리 주소 범위들의 사이즈 및 위치에 기초하여 분할 또는 융합될 수 있다. 따라서, 매핑 자료 구조(예를 들어, 주소 매핑 테이블)의 검색 시간이 크게 단축될 수 있다. As described above, current mapping units corresponding to the target logical address range may be divided or fused based on the size and position of the sub-target logical address ranges. Thus, the search time of the mapping data structure (eg, address mapping table) can be greatly shortened.
도 7은 도 4의 매핑 테이블의 업데이트 방법에서 융합 매핑 단위를 업데이트하는 동작의 일 예를 나타내는 도면이다. FIG. 7 is a diagram illustrating an example of an operation of updating a fusion mapping unit in the updating method of the mapping table of FIG. 4.
도 4 내지 도 7을 참조하면, 하나의 서브 타겟 논리 주소 범위(STLA)에 기초하여 현재 매핑 단위들(MU1, MU2, MU3)이 융합 매핑 단위(NMU)로 융합(또는 업데이트)될 수 있다. 4 to 7, current mapping units MU1, MU2, and MU3 may be fused (or updated) to a fusion mapping unit NMU based on one sub-target logical address range STLA.
기존의 매핑 테이블에서, 제1 내지 제3 매핑 단위들(MU1, MU2, MU3)에 각각 대응하는 물리 주소들(A1, A2, A3)에 데이터가 기입될 수 있다. 타겟 논리 주소 범위(TLA)에 대응하는 새로운 물리 주소의 매핑을 위해 매핑 테이블의 업데이트가 필요하다. In the existing mapping table, data may be written in the physical addresses A1, A2, and A3 corresponding to the first to third mapping units MU1, MU2, and MU3, respectively. An update of the mapping table is required to map a new physical address corresponding to the target logical address range (TLA).
상술한 과정에 의해 결정된 서브 타겟 논리 주소 범위(STLA)와 이에 대응하는 제1 내지 제3 매핑 단위들(MU1, MU2, MU3)이 비교될 수 있다. 도 7에 도시된 바와 같이, 서브 타겟 논리 주소 범위(STLA)는 4섹터(4S) 사이즈를 갖고, 제1 내지 제3 매핑 단위들(MU1, MU2, MU3)이 서브 타겟 논리 주소 범위(STLA)에 포함될 수 있다. 따라서, 제1 내지 제3 매핑 단위들(MU1, MU2, MU3)이 융합될 수 있다. The sub-target logical address range STLA determined by the above-described process may be compared with the corresponding first to third mapping units MU1, MU2, and MU3. As shown in FIG. 7, the sub-target logical address range STLA has a size of 4 sectors 4S, and the first to third mapping units MU1, MU2, and MU3 have a sub-target logical address range STLA. Can be included. Accordingly, the first to third mapping units MU1, MU2, and MU3 may be fused.
서브 타겟 논리 주소 범위(STLA)의 첫 논리 섹터 주소(LA1)에 기초하여 제1 최대 사이즈가 산출될 수 있다. 또한, 서브 타겟 논리 주소 범위(STLA)를 포함하는 타겟 논리 주소 범위의 사이즈에 기초하여 제2 최대 사이즈가 산출될 수 있다. 제1 내지 제3 매핑 단위들(MU1, MU2, MU3)이 상기 제1 최대 사이즈와 상기 제2 최대 사이즈 중 더 작은 사이즈로 융합될 수 있다. 도 7에 도시된 바와 같이, 제1 내지 제3 매핑 단위들(MU1, MU2, MU3)은 4섹터의 새로운 융합 매핑 단위(NMU)로 융합(FUSION)될 수 있다. 융합 매핑 단위(NMU)의 헤드 주소는 제1 논리 주소(LA1)에 상응할 수 있다. 상기 융합 매핑 단위를 결정하는 방법은 도 3 내지 도 6을 참조하여 상술하였으므로, 이에 중복되는 설명은 생략하기로 한다. The first maximum size may be calculated based on the first logical sector address LA1 of the subtarget logical address range STLA. In addition, the second maximum size may be calculated based on the size of the target logical address range including the sub-target logical address range STLA. First to third mapping units MU1, MU2, and MU3 may be fused to a smaller one of the first maximum size and the second maximum size. As illustrated in FIG. 7, the first to third mapping units MU1, MU2, and MU3 may be fused into four sectors of a new fusion mapping unit NMU. The head address of the fusion mapping unit NMU may correspond to the first logical address LA1. Since the method of determining the fusion mapping unit has been described above with reference to FIGS. 3 to 6, a description thereof will not be repeated.
융합 매핑 단위(NMU)는 연속적인 논리 주소들(LA1, LA2, LA3) 및 상기 논리 주소들에 대응하는 연속적인 물리 주소들(B)을 포함할 수 있다. 이와 같이, 매핑 단위 융합에 의해 상기 주소 매핑 테이블이 업데이트됨으로써 헤드 논리 섹터 주소의 개수가 줄어들 수 있다(즉, 논-헤드 논리 섹터가 증가함). 따라서, 휘발성 메모리의 제한된 크기 내에서 주소 매핑을 위한 연속되는 데이터의 캐시(cache) 효과가 향상될 수 있다. The fusion mapping unit NMU may include contiguous logical addresses LA1, LA2 and LA3 and contiguous physical addresses B corresponding to the logical addresses. As such, the address mapping table is updated by mapping unit fusion, thereby reducing the number of head logical sector addresses (ie, increasing non-head logical sectors). Thus, the cache effect of contiguous data for address mapping within the limited size of volatile memory can be improved.
도 8은 도 4의 매핑 테이블의 업데이트 방법에서 매핑 단위를 분할하는 일 예를 나타내는 순서도이고, 도 9는 도 8의 매핑 단위를 분할하는 동작의 일 예를 나타내는 도면이다. 8 is a flowchart illustrating an example of dividing a mapping unit in the updating method of the mapping table of FIG. 4, and FIG. 9 is a diagram illustrating an example of an operation of dividing the mapping unit of FIG. 8.
도 4, 도 8 및 도 9를 참조하면, 현재 매핑 단위를 분할(S430)하는 방법은 제m 서브 타겟 논리 주소 범위(STLA)를 포함하는 현재 매핑 단위(MU)를 절반으로 분할하여 분할된 현재 매핑 단위들(NMU1, NMU2)을 생성(S432)하고, 분할된 매핑 단위들 중 제m 타겟 논리 주소 범위(STLA)를 포함하는 하나를 다시 절반으로 분할(S436)할 수 있다. 4, 8, and 9, in the method of dividing the current mapping unit (S430), the current divided by dividing the current mapping unit MU including the m-th sub-target logical address range STLA in half is divided. The mapping units NMU1 and NMU2 may be generated (S432), and one of the divided mapping units including the m th target logical address range STLA may be further divided into half (S436).
현재 매핑 단위(MU) 내의 소정의 논리 주소(LA2)에 대응하는 물리 주소(A)에 데이터가 기입될 수 있다. 이에 따라, 주소 매핑 테이블의 업데이트가 필요하다. 도 9에 도시된 바와 같이, 제m 서브 타겟 논리 주소 범위(STLA)는 1섹터 사이즈를 가지고, 현재 매핑 단위(MU)는 4섹터 사이즈를 갖는다. Data may be written to a physical address A corresponding to a predetermined logical address LA2 in the current mapping unit MU. Accordingly, the address mapping table needs to be updated. As shown in FIG. 9, the m-th sub-target logical address range STLA has a size of one sector, and the current mapping unit MU has a size of four sectors.
제m 서브 타겟 논리 주소 범위(STLA)가 단일의 현재 매핑 단위(MU) 내에 포함되는 경우, 제m 서브 타겟 논리 주소 범위(STLA)를 포함하는 현재 매핑 단위(MU)가 절반으로 분할(S432)될 수 있다. 따라서, 2섹터 사이즈를 갖는 두 개의 분할된 매핑 단위들(NMU1, NMU2)이 생성될 수 있다. If the mth sub-target logical address range STLA is included in a single current mapping unit MU, the current mapping unit MU including the m-th sub-target logical address range STLA is split in half (S432). Can be. Accordingly, two divided mapping units NMU1 and NMU2 having a two sector size may be generated.
일 실시예에서, 각각의 분할된 매핑 단위들(NMU1, NMU2)과 서브 타겟 논리 주소 범위(STLA)가 비교될 수 있다. 제1 분할된 매핑 단위(NMU1)는 제m 서브 타겟 논리 주소 범위(STLA)를 포함하지 않으므로, 더 이상 분할되지 않는다. 따라서, 제1 분할된 매핑 단위(NMU1)는 새로운 융합 매핑 단위로 결정될 수 있다. In one embodiment, each of the divided mapping units NMU1 and NMU2 and the sub-target logical address range STLA may be compared. Since the first partitioned mapping unit NMU1 does not include the m-th sub-target logical address range STLA, it is no longer partitioned. Therefore, the first divided mapping unit NMU1 may be determined as a new fusion mapping unit.
제2 분할된 매핑 단위(NMU1)의 사이즈와 제m 서브 타겟 논리 주소 범위(STLA)의 사이즈가 비교(S434)될 수 있다. 예를 들어, 제2 분할된 매핑 단위(NMU2)의 사이즈와 제m 서브 타겟 논리 주소 범위(STLA)의 사이즈가 비교될 수 있다. The size of the second divided mapping unit NMU1 and the size of the mth sub-target logical address range STLA may be compared (S434). For example, the size of the second divided mapping unit NMU2 may be compared with the size of the mth sub-target logical address range STLA.
도 9에 도시된 바와 같이, 제2 분할된 매핑 단위(NMU2)의 사이즈가 제m 서브 타겟 논리 주소 범위(STLA)의 사이즈보다 큰 경우, 제2 분할된 매핑 단위(NMU2)는 제3 분할된 매핑 단위(NMU3)와 제4 분할된 매핑 단위(NMU4)로 분할될 수 있다. 제3 및 제4 분할된 매핑 단위들(NMU3, NMU4)은 각각 1섹터 사이즈를 가질 수 있다. 제4 분할된 매핑 단위(NMU4)는 제m 서브 타겟 논리 주소 범위(STLA)를 포함하지 않으므로, 더 이상 분할되지 않는다. 따라서, 제4 분할된 매핑 단위(NMU4)는 새로운 융합 매핑 단위로 결정될 수 있다. As illustrated in FIG. 9, when the size of the second partitioned mapping unit NMU2 is larger than the size of the m-th sub-target logical address range STLA, the second partitioned mapping unit NMU2 is divided into third segments. It may be divided into a mapping unit NMU3 and a fourth divided mapping unit NMU4. The third and fourth divided mapping units NMU3 and NMU4 may each have a size of one sector. Since the fourth divided mapping unit NMU4 does not include the m-th sub-target logical address range STLA, the fourth divided mapping unit NMU4 is no longer divided. Therefore, the fourth divided mapping unit NMU4 may be determined as a new fusion mapping unit.
다시, 제3 분할된 매핑 단위(NMU3)의 사이즈와 제m 서브 타겟 논리 주소 범위(STLA)의 사이즈가 비교(S434)될 수 있다. 일 실시예에서, 분할된 매핑 단위의 사이즈가 제m 서브 타겟 논리 주소 범위에 상응하는 사이즈와 같으면 상기 분할이 종료될 수 있다. 도 9에 도시된 바와 같이, 제3 분할된 매핑 단위(NMU3)의 사이즈와 제m 서브 타겟 논리 주소 범위(STLA)의 사이즈가 동일하므로, 상기 분할 동작이 종료될 수 있다. 최종적으로, 제1, 제3 및 제4 분할된 매핑 단위들(NMU1, NMU3, NMU4)이 각각 융합 매핑 단위로 결정될 수 있다. Again, the size of the third divided mapping unit NMU3 and the size of the m th sub-target logical address range STLA may be compared (S434). In one embodiment, if the size of the divided mapping unit is equal to the size corresponding to the m-th sub-target logical address range, the split may be terminated. As shown in FIG. 9, since the size of the third divided mapping unit NMU3 is the same as the size of the mth sub-target logical address range STLA, the splitting operation may be terminated. Finally, the first, third, and fourth divided mapping units NMU1, NMU3, and NMU4 may be determined as fusion mapping units, respectively.
상기 분할이 종료되면, 상기 분할된 매핑 단위들 각각의 헤드 논리 섹터 주소(LA1, LA2, LA3)에 기초하여 서브 타겟 논리 주소 범위(STLA)에 대응하는 물리 주소가 업데이트될 수 있다. 예를 들어, 서브 타겟 논리 주소 범위(LA2)에 대응하는 물리 주소(A)가 사용되었으므로, 서브 타겟 논리 주소 범위(LA2)에 대응하는 물리 주소의 위치가 'B'의 위치로 업데이트될 수 있다. 이에 따라, 주소 매핑 테이블의 엔트리 및 이에 대응하여 리턴되는 물리 주소가 업데이트될 수 있다. When the partitioning ends, the physical address corresponding to the sub-target logical address range STLA may be updated based on the head logical sector addresses LA1, LA2, and LA3 of each of the divided mapping units. For example, since the physical address A corresponding to the subtarget logical address range LA2 is used, the position of the physical address corresponding to the subtarget logical address range LA2 may be updated to the position of 'B'. . Accordingly, the entry of the address mapping table and the physical address returned corresponding thereto may be updated.
도 10은 도 8의 매핑 단위를 분할하는 동작의 일 예를 나타내는 도면이다. FIG. 10 is a diagram illustrating an example of an operation of dividing a mapping unit of FIG. 8.
도 10을 참조하면, 서브 타겟 논리 주소 범위(STLA)에 기초하여 주소 매핑 테이블에 포함되는 매핑 단위가 반복적으로 분할되어 주소 매핑 테이블이 업데이트될 수 있다. Referring to FIG. 10, a mapping unit included in an address mapping table may be repeatedly divided based on a subtarget logical address range STLA to update an address mapping table.
도 10에 도시된 바와 같이, 서브 타겟 논리 주소 범위(TLA)가 2x 섹터를 갖는 하나의 매핑 단위에 포함될 수 있다. 따라서, 상기 매핑 단위의 분할 동작이 시작될 수 있다. 상기 매핑 단위는 2x-1 섹터 사이즈를 갖는 두 개의 매핑 단위로 분할될 수 있다. 서브 타겟 논리 주소(STLA)가 포함되는 매핑 단위는 반복적으로 분할될 수 있다. 또한, 분할된 매핑 단위에 서브 타겟 논리 주소(STLA)가 중첩되지 않는 경우, 상기 분할된 매핑 단위는 더 이상 분할되지 않는다. As shown in FIG. 10, the sub-target logical address range TLA may be included in one mapping unit having 2x sectors. Thus, the division operation of the mapping unit may be started. The mapping unit may be divided into two mapping units having a 2x-1 sector size. The mapping unit including the sub target logical address STLA may be repeatedly divided. In addition, when the sub-target logical address STLA does not overlap the divided mapping unit, the divided mapping unit is no longer divided.
최종적으로, 상기 분할된 매핑 단위의 사이즈가 서브 타겟 논리 주소 범위(STLA)에 상응하는 사이즈와 같으면 상기 분할이 종료될 수 있다. 상기 분할된 매핑 단위는 상기 융합 매핑 단위로 결정될 수 있다. 예를 들어, 서브 타겟 논리 주소 범위(STLA)에 대응하는 매핑 단위는 서브 타겟 논리 주소 범위(STLA)의 사이즈(도 10에서 1섹터 사이즈(1S)로 도시됨.)를 가질 수 있다. Finally, if the size of the divided mapping unit is equal to the size corresponding to the sub-target logical address range STLA, the split may be terminated. The divided mapping unit may be determined as the fusion mapping unit. For example, the mapping unit corresponding to the subtarget logical address range STLA may have a size (shown as one sector size 1S in FIG. 10) of the subtarget logical address range STLA.
상술한 바와 같이, 본 발명의 실시예들에 따른 주소 변환 방법은 하나의 주소 매핑 테이블 사이즈 내에 포함되는 다양한 사이즈의 매핑 단위들을 동적으로 분할 및 융합할 수 있다. 즉, 복수의 주소 매핑 테이블들을 관리하는 기존의 하이브리드 매핑(hybrid mapping) 방식의 매핑 자료 구조 검색 시간이 증가되는 단점이 개선될 수 있다. As described above, the address translation method according to the embodiments of the present invention may dynamically divide and fuse mapping units of various sizes included in one address mapping table size. That is, the disadvantage that the search time of the mapping data structure of the existing hybrid mapping scheme that manages the plurality of address mapping tables is increased.
본 발명은 논리 주소와 물리 주소 사이의 주소 매핑을 사용하는 스토리지 시스템 및 컴퓨터 시스템들에 적용될 수 있다. The present invention can be applied to storage systems and computer systems that use address mapping between logical and physical addresses.
이상에서는 본 발명의 실시예들을 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다. Although the above has been described with reference to the embodiments of the present invention, those skilled in the art will be able to variously modify and change the present invention without departing from the spirit and scope of the present invention as set forth in the claims below. It will be appreciated.
<부호의 설명><Description of the code>
10: 어플리케이션 20: 플래시 메모리 10: application 20: flash memory
100: 메모리 장치 컨트롤러 140: 플래시 변환 레이어 100: memory device controller 140: flash conversion layer

Claims (16)

  1. 어플리케이션(application)으로부터 인가되는 데이터의 타겟 논리 주소 범위(target logical address range)를 입력받는 단계; Receiving a target logical address range of data applied from an application;
    주소 매핑 테이블(address mapping table)을 이용하여 상기 타겟 논리 주소 범위에 포함되는 논리 주소를 물리적 저장 영역의 물리 주소로 매핑하는 단계; Mapping a logical address included in the target logical address range to a physical address of a physical storage area using an address mapping table;
    상기 매핑된 물리 주소를 기초로 상기 데이터를 쓰는 단계; Writing the data based on the mapped physical address;
    상기 타겟 논리 주소 범위에 포함되는 상기 논리 주소의 연속성에 기초하여 상기 주소 매핑 테이블의 엔트리(entry)를 구성하는 복수의 매핑 단위(mapping unit)들 중 적어도 하나의 사이즈(size)를 동적으로 변화시켜 상기 주소 매핑 테이블을 업데이트하는 단계를 포함하는 스토리지 시스템의 주소 변환 방법. Dynamically changing at least one of a plurality of mapping units constituting an entry of the address mapping table based on the continuity of the logical addresses included in the target logical address range; Updating the address mapping table.
  2. 제 1 항에 있어서, 상기 주소 매핑 테이블이 지원하는 상기 매핑 단위들 각각의 사이즈는 기 설정된 최소 매핑 단위 사이즈 내지 기 설정된 최대 매핑 단위 사이즈 범위 내에서 상기 최소 매핑 단위 사이즈에 2k(단, k는 0 이상의 정수)을 곱한 값에 상응하는 것을 특징으로 하는 스토리지 시스템의 주소 변환 방법. The method of claim 1, wherein the size of each of the mapping units supported by the address mapping table is 2 k to the minimum mapping unit size within a preset minimum mapping unit size to a preset maximum mapping unit size range, where k is Address corresponding to a value multiplied by an integer of 0 or more).
  3. 제 2 항에 있어서, 상기 매핑 단위들 각각의 사이즈는 상기 기 설정된 범위 내에서 2k에 단위로 동적으로 변하는 것을 특징으로 하는 스토리지 시스템의 주소 변환 방법. The address translation method of claim 2, wherein the size of each of the mapping units is dynamically changed in units of 2 k within the preset range.
  4. 제 2 항에 있어서, 상기 주소 매핑 테이블을 업데이트하는 단계는 The method of claim 2, wherein updating the address mapping table
    상기 타겟 논리 주소 범위에 포함되는 논리 주소들을 융합(fusion)하여 상기 타겟 논리 주소 범위를 제1 내지 제n(단, n은 2 이상의 자연수) 서브 타겟 논리 주소 범위들(sub-target logical address ranges)로 구분하는 단계; Fusing the logical addresses included in the target logical address range to convert the target logical address range from first to nth, where n is a natural number of two or more sub-target logical address ranges. Dividing into;
    제m(단, m은 n 이하의 자연수) 서브 타겟 논리 주소 범위가 포함되는 현재 매핑 단위의 개수를 판단하는 단계; Determining the number of current mapping units including the m th sub-th target logical address range (where m is a natural number less than or equal to n);
    상기 제m 서브 타겟 논리 주소 범위가 단일의 현재 매핑 단위 내에 포함되는 경우, 상기 현재 매핑 단위를 분할(split)하는 단계; Splitting the current mapping unit when the mth sub-target logical address range is included in a single current mapping unit;
    상기 제m 서브 타겟 논리 주소 범위가 복수의 현재 매핑 단위들에 중첩되는 경우, 상기 제m 서브 타겟 논리 주소 범위의 위치 및 사이즈에 상응하는 융합 매핑 단위를 결정하는 단계; 및 Determining a fusion mapping unit corresponding to a position and a size of the m th subtarget logical address range when the m th subtarget logical address range overlaps a plurality of current mapping units; And
    상기 융합 매핑 단위에 대응하는 물리 주소를 업데이트하는 단계를 포함하는 것을 특징으로 하는 스토리지 시스템의 주소 변환 방법. Updating a physical address corresponding to the fusion mapping unit.
  5. 제 4 항에 있어서, 상기 타겟 논리 주소 범위를 상기 제1 내지 제n 서브 타겟 논리 주소 범위들로 구분하는 단계는 The method of claim 4, wherein dividing the target logical address range into the first through n-th sub-target logical address ranges comprises:
    상기 제m 서브 타겟 논리 주소 범위의 첫 논리 섹터 주소를 결정하는 단계; Determining a first logical sector address of the mth sub-target logical address range;
    상기 첫 논리 섹터 주소에 기초하여 제1 최대 사이즈를 산출하는 단계; Calculating a first maximum size based on the first logical sector address;
    상기 타겟 논리 주소 범위의 사이즈에서 상기 제1 내지 제m-1 서브 타겟 논리 주소 범위들 전체의 사이즈를 뺀 값인 서브 사이즈(sub-size)에 기초하여 제2 최대 사이즈를 산출하는 단계; 및 Calculating a second maximum size based on a sub-size that is a size of the target logical address range minus the size of the entire first to m-th subtarget logical address ranges; And
    상기 첫 논리 섹터 주소로부터 연속되는 상기 논리 주소들을 상기 제1 최대 사이즈와 상기 제2 최대 사이즈 중 더 작은 사이즈로 융합하여 상기 제m 서브 타겟 논리 주소 범위를 결정하는 단계를 포함하는 것을 특징으로 하는 스토리지 시스템의 주소 변환 방법. Fusing the logical addresses consecutive from the first logical sector address to a smaller one of the first maximum size and the second maximum size to determine the mth sub-target logical address range. How the system translates addresses.
  6. 제 5 항에 있어서, 상기 첫 논리 섹터 주소를 2의 거듭제곱거듭제곱들의 합으로 표현하였을 때, 상기 제1 최대 사이즈는 상기 2의 거듭제곱거듭제곱들 중 가장 작은 값에 상응하는 것을 특징으로 하는 스토리지 시스템의 주소 변환 방법. 6. The method of claim 5, wherein when the first logical sector address is expressed as a sum of powers of two, the first maximum size corresponds to the smallest value of powers of two. How the storage system translates addresses.
  7. 제 6 항에 있어서, 상기 서브 사이즈를 2의 거듭제곱거듭제곱들의 합으로 표현하였을 때, 상기 제2 최대 사이즈는 상기 2의 거듭제곱거듭제곱들 중 가장 큰 값에 상응하는 것을 특징으로 하는 스토리지 시스템의 주소 변환 방법. 7. The storage system of claim 6, wherein when the subsize is expressed as a sum of powers of two, the second maximum size corresponds to a largest value of powers of two. How address is translated.
  8. 제 5 항에 있어서, 상기 제1 서브 타겟 논리 주소 범위의 상기 첫 논리 섹터 주소는 상기 타겟 논리 주소 범위의 상기 첫 논리 섹터 주소에 상응하고, 6. The method of claim 5 wherein the first logical sector address of the first sub-target logical address range corresponds to the first logical sector address of the target logical address range,
    상기 제1 서브 타겟 논리 주소 범위를 제외한 상기 제m 서브 타겟 논리 주소 범위의 상기 첫 논리 섹터 주소는 제m-1 서브 타겟 논리 주소 범위의 마지막 논리 섹터 주소의 다음 논리 섹터 주소에 상응하는 것을 특징으로 하는 스토리지 시스템의 주소 변환 방법. Wherein the first logical sector address of the mth subtarget logical address range except the first subtarget logical address range corresponds to the next logical sector address of the last logical sector address of the m-1 subtarget logical address range. How the storage system translates addresses.
  9. 제 4 항에 있어서, 상기 융합 매핑 단위는 연속적인 논리 주소들 및 상기 논리 주소들에 대응하는 쓰기 가능한 연속적인 물리 주소들을 포함하는 것을 특징으로 하는 스토리지 시스템의 주소 변환 방법. 5. The method of claim 4, wherein the fusion mapping unit comprises contiguous logical addresses and writable contiguous physical addresses corresponding to the logical addresses.
  10. 제 4 항에 있어서, 상기 현재 매핑 단위를 분할하는 단계는 The method of claim 4, wherein dividing the current mapping unit
    상기 제m 서브 타겟 논리 주소 범위를 포함하는 상기 현재 매핑 단위를 절반으로 분할하여 분할된 매핑 단위들을 생성하는 단계; 및 Generating divided mapping units by dividing the current mapping unit including the m-th sub-target logical address range in half; And
    상기 분할된 매핑 단위들 중 상기 제m 타겟 논리 주소 범위를 포함하는 하나를 다시 절반으로 분할하는 동작을 상기 분할된 매핑 단위의 사이즈가 상기 제m 서브 타겟 논리 주소 범위의 사이즈와 같아질 때까지 반복하는 단계를 포함하는 것을 특징으로 하는 스토리지 시스템의 주소 변환 방법. The operation of dividing one of the partitioned mapping units including the m th target logical address range into half is repeated until the size of the partitioned mapping unit becomes equal to the size of the m th subtarget logical address range. The address translation method of a storage system comprising the step of.
  11. 제 10 항에 있어서, 상기 분할하는 동작을 반복하는 단계는, 상기 분할된 매핑 단위의 사이즈가 상기 제m 서브 타겟 논리 주소 범위의 사이즈와 같으면 상기 분할을 종료하고, 분할이 종료된 각각의 상기 분할된 매핑 단위를 다시 각각 상기 융합 매핑 단위로 결정하는 것을 특징으로 하는 스토리지 시스템의 주소 변환 방법. 12. The method of claim 10, wherein repeating the dividing operation comprises: terminating the division if the size of the divided mapping unit is equal to the size of the m-th sub-target logical address range, and each of the divisions at which the division is terminated. And determining the mapped mapping units as the fusion mapping units, respectively.
  12. 제 2 항에 있어서, 상기 최소 매핑 단위 사이즈는 하나의 섹터(sector)에 상응하고, 상기 최대 매핑 단위 사이즈는 2j(단, j는 자연수) 개의 블록(block)에 상응하는 것을 특징으로 하는 스토리지 시스템의 주소 변환 방법. The storage of claim 2, wherein the minimum mapping unit size corresponds to one sector, and the maximum mapping unit size corresponds to 2 j blocks (where j is a natural number). How the system translates addresses.
  13. 제 2 항에 있어서, 상기 매핑 단위들 각각의 헤드 논리 섹터 주소가 동적으로 변하는 것을 특징으로 하는 스토리지 시스템의 주소 변환 방법. The method of claim 2, wherein the head logical sector address of each of the mapping units is dynamically changed.
  14. 주소 매핑 테이블(address mapping table)을 참조하여 어플리케이션으로부터 수신한 데이터의 타겟 논리 주소 범위(target logical address range)에 포함되는 논리 주소를 물리적 저장 영역의 물리 주소로 매핑하고, 상기 매핑된 물리 주소를 기초로 상기 데이터를 쓰며, 상기 타겟 논리 주소에 포함되는 상기 논리 주소의 연속성에 기초하여 상기 주소 매핑 테이블의 엔트리(entry)를 구성하는 복수의 매핑 단위(mapping unit)들 중 적어도 하나의 사이즈(size)를 동적으로 변화시켜 상기 주소 매핑 테이블을 업데이트하는 플래시 변환 레이어(Flash Translation Layer; FTL)를 포함하는 스토리지 시스템의 메모리 장치 컨트롤러. A logical address included in a target logical address range of data received from an application is mapped to a physical address of a physical storage area by referring to an address mapping table, and based on the mapped physical address. Write at least one of the data, and at least one of a plurality of mapping units constituting an entry of the address mapping table based on the continuity of the logical address included in the target logical address. And a Flash Translation Layer (FTL) to dynamically update the address mapping table.
  15. 제 14 항에 있어서, 상기 주소 것을 매핑 테이블이 지원하는 상기 매핑 단위들 각각의 사이즈는 기 설정된 최소 매핑 단위 사이즈 내지 기 설정된 최대 매핑 단위 사이즈 범위 내에서 상기 최소 매핑 단위 사이즈에 2k(단, k는 0 이상의 정수)을 곱한 값에 상응하는 특징으로 하는 스토리지 시스템의 메모리 장치 컨트롤러. 15. The method of claim 14, wherein the size of each of the mapping units supported by the mapping table is 2 k to the minimum mapping unit size within a range of a preset minimum mapping unit size to a preset maximum mapping unit size. Is an integer greater than or equal to 0).
  16. 제 15 항에 있어서, 상기 플래시 변환 레이어는 상기 매핑 단위들 각각의 사이즈를 상기 기 설정된 범위 내에서 2k단위로 동적으로 변화시키는 것을 특징으로 하는 스토리지 시스템의 메모리 장치 컨트롤러. The memory device controller of claim 15, wherein the flash conversion layer dynamically changes the size of each of the mapping units in 2k units within the preset range.
PCT/KR2017/001702 2016-03-21 2017-02-16 Address translation method for storage system and memory device controller for storage system WO2017164515A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2016-0033463 2016-03-21
KR1020160033463A KR101805828B1 (en) 2016-03-21 2016-03-21 Method for translating address of storage system and memory device controller for storage system

Publications (1)

Publication Number Publication Date
WO2017164515A1 true WO2017164515A1 (en) 2017-09-28

Family

ID=59900517

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2017/001702 WO2017164515A1 (en) 2016-03-21 2017-02-16 Address translation method for storage system and memory device controller for storage system

Country Status (2)

Country Link
KR (1) KR101805828B1 (en)
WO (1) WO2017164515A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110858129A (en) * 2018-08-22 2020-03-03 爱思开海力士有限公司 Data storage device and operation method thereof
CN111143313A (en) * 2019-12-25 2020-05-12 成都三零嘉微电子有限公司 Method for improving log block read-write performance of hybrid mapping algorithm

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102571629B1 (en) * 2018-05-23 2023-08-29 에스케이하이닉스 주식회사 Memory system and operaiton method for thereof
KR20210142974A (en) 2020-05-19 2021-11-26 에스케이하이닉스 주식회사 Storage device and operating method thereof

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050144367A1 (en) * 2003-12-30 2005-06-30 Sinclair Alan W. Data run programming
US20080155177A1 (en) * 2006-12-26 2008-06-26 Sinclair Alan W Configuration of Host LBA Interface With Flash Memory
US20110307645A1 (en) * 2010-06-10 2011-12-15 Hitachi Global Storage Technologies Netherlands B.V. Implementing enhanced host to physical storage mapping using numerical compositions for persistent media
US20140052898A1 (en) * 2012-08-18 2014-02-20 Yen Chih Nan Method for mapping management
US20140223089A1 (en) * 2011-09-23 2014-08-07 Industry-University Cooperation Foundation Hanyang University Method and device for storing data in a flash memory using address mapping for supporting various block sizes

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050144367A1 (en) * 2003-12-30 2005-06-30 Sinclair Alan W. Data run programming
US20080155177A1 (en) * 2006-12-26 2008-06-26 Sinclair Alan W Configuration of Host LBA Interface With Flash Memory
US20110307645A1 (en) * 2010-06-10 2011-12-15 Hitachi Global Storage Technologies Netherlands B.V. Implementing enhanced host to physical storage mapping using numerical compositions for persistent media
US20140223089A1 (en) * 2011-09-23 2014-08-07 Industry-University Cooperation Foundation Hanyang University Method and device for storing data in a flash memory using address mapping for supporting various block sizes
US20140052898A1 (en) * 2012-08-18 2014-02-20 Yen Chih Nan Method for mapping management

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110858129A (en) * 2018-08-22 2020-03-03 爱思开海力士有限公司 Data storage device and operation method thereof
CN111143313A (en) * 2019-12-25 2020-05-12 成都三零嘉微电子有限公司 Method for improving log block read-write performance of hybrid mapping algorithm

Also Published As

Publication number Publication date
KR20170109391A (en) 2017-09-29
KR101805828B1 (en) 2017-12-07

Similar Documents

Publication Publication Date Title
WO2017164515A1 (en) Address translation method for storage system and memory device controller for storage system
WO2013042880A2 (en) Method and device for storing data in a flash memory using address mapping for supporting various block sizes
US5584005A (en) Virtual memory address translation apparatus and method using link, auxiliary link and page tables
WO2012111905A2 (en) Distributed memory cluster control device and method using mapreduce
WO2014157817A1 (en) Method for mapping page address based on flash memory and system therefor
JP2001175536A (en) Method and device for calculating page table index from virtual address
WO2001002962A1 (en) Virtual memory mapping using region-based page tables
WO2013176376A1 (en) Method and device for identifying information for chip-level parallel flash memory
CN114138193B (en) Data writing method, device and equipment for partition naming space solid state disk
CN107943727B (en) High-efficient DMA controller
CN104516826A (en) Method and device for correspondence of large virtual pages and large physical pages
WO2019190084A1 (en) Non-volatile memory device and method for data management of non-volatile memory
US20230168830A1 (en) Method and apparatus for data access of nand flash file, and storage medium
WO2017188581A1 (en) Storage device for relieving concentrated workload
JPS5953634B2 (en) computer system
WO2014107845A1 (en) Data processing method and device
KR20000013760A (en) Multiple access computer address hashing method of lan switch using cyclic redundancy check and system therefor
WO2024150875A1 (en) Method and device for data transfer between systolic array and memory
WO2010067919A1 (en) Flash memory system and flash memory management method
WO2022265410A1 (en) Method and system for generating intermediate representations
KR101359692B1 (en) Signature search system using memory space storaging partial information on substring of input signature
WO2023171930A1 (en) Neural network model compression method and neural network model compression device
JPS6175397A (en) Voice data memory control system
JPH0981503A (en) Data transfer system and data transfer method
JPS5985561A (en) File controller

Legal Events

Date Code Title Description
NENP Non-entry into the national phase

Ref country code: DE

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

Ref document number: 17770486

Country of ref document: EP

Kind code of ref document: A1

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 25.01.2019)

122 Ep: pct application non-entry in european phase

Ref document number: 17770486

Country of ref document: EP

Kind code of ref document: A1