KR102316271B1 - Method for managing of memory address mapping table for data storage device - Google Patents

Method for managing of memory address mapping table for data storage device Download PDF

Info

Publication number
KR102316271B1
KR102316271B1 KR1020190106688A KR20190106688A KR102316271B1 KR 102316271 B1 KR102316271 B1 KR 102316271B1 KR 1020190106688 A KR1020190106688 A KR 1020190106688A KR 20190106688 A KR20190106688 A KR 20190106688A KR 102316271 B1 KR102316271 B1 KR 102316271B1
Authority
KR
South Korea
Prior art keywords
address
data
mapping table
bank
hash function
Prior art date
Application number
KR1020190106688A
Other languages
Korean (ko)
Other versions
KR20210027625A (en
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 동국대학교 산학협력단
Priority to KR1020190106688A priority Critical patent/KR102316271B1/en
Publication of KR20210027625A publication Critical patent/KR20210027625A/en
Application granted granted Critical
Publication of KR102316271B1 publication Critical patent/KR102316271B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • G06F12/1018Address translation using page tables, e.g. page table structures involving hashing techniques, e.g. inverted page tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 데이터 저장장치의 주소 맵핑 테이블 운용 방법에 관한 것으로, (a) 주소 관리 메모리에 주소 맵핑 테이블을 생성하는 단계; (b) 신규 데이터에 관한 쓰기 명령이 있는 경우, 상기 신규 데이터의 논리 주소 값에 제1해시 함수를 적용한 결과값에 상응하는 상기 주소 관리 메모리 내의 해당 세트의 데이터 필드에 데이터가 존재하는지 여부를 확인하여 데이터가 존재하지 않는 경우, 상기 해당 세트의 데이터 필드에 상기 데이터의 논리 주소 및 물리 주소를 저장하고 뱅크 접근 순서를 재배열하는 단계; 및 (c) 상기 확인 결과에 따라 상기 세트에 데이터가 기존재하는 경우, 상기 주소 관리 메모리의 해당 주소의 값에 제2해시 함수를 적용하고, 상기 제2해시 함수를 적용한 결과값에 상응하는 상기 주소 관리 메모리 내의 해당 세트의 데이터 필드에 데이터의 존부를 확인하여, 데이터가 존재하지 않는 경우 해당 데이터 필드에 상기 신규 데이터의 논리 주소 및 물리 주소를 저장하고 뱅크 접근 순서를 재배열하는 단계;를 포함하여 구성된다.The present invention relates to a method of operating an address mapping table of a data storage device, comprising the steps of: (a) generating an address mapping table in an address management memory; (b) When there is a write command for new data, it is checked whether data exists in the data field of the corresponding set in the address management memory corresponding to the result of applying the first hash function to the logical address value of the new data to store the logical address and physical address of the data in the data field of the corresponding set when there is no data and rearrange the bank access order; and (c) applying a second hash function to the value of the corresponding address of the address management memory when data already exists in the set according to the result of the check, and the second hash function is applied to the value corresponding to the result. Checking the existence of data in the data field of the corresponding set in the address management memory, storing the logical address and the physical address of the new data in the corresponding data field if the data does not exist, and rearranging the bank access order; includes; is composed by

Description

데이터 저장장치의 주소 맵핑 테이블 운용 방법{METHOD FOR MANAGING OF MEMORY ADDRESS MAPPING TABLE FOR DATA STORAGE DEVICE}How to operate the address mapping table of the data storage device

본 발명의 실시예는 데이터 저장장치의 주소 맵핑 테이블 운용 방법에 관한 것으로, SSD의 플래시 메모리 등의 비휘발성 데이터 저장장치에서 주소 맵핑 테이블을 통해서 데이터 저장장치에 저장된 데이터를 찾는 시간적 성능을 향상시키기 위해 뱅크 인터리빙(Bank interleaving)을 최적화한 데이터 저장장치의 주소 맵핑 테이블 운용 방법에 관한 것이다.An embodiment of the present invention relates to a method of operating an address mapping table of a data storage device, in order to improve the temporal performance of finding data stored in the data storage device through the address mapping table in a non-volatile data storage device such as a flash memory of an SSD. A method of operating an address mapping table of a data storage device in which bank interleaving is optimized.

비휘발성 데이터 저장장치는 전원이 끊기더라도 저장된 데이터가 소실되지 않는 저장매체를 의미하며, 이에 관한 대표적인 예로서 SSD의 플래시 메모리가 여기에 해당한다.The non-volatile data storage device refers to a storage medium in which stored data is not lost even when power is cut off, and a representative example of this is a flash memory of an SSD.

도 1은 일반적인 플레시 메모리의 구성을 설명하기 위한 도면이다.1 is a diagram for explaining the configuration of a general flash memory.

플래시 메모리는 기본적으로 다이(Die), 블록(Block), 페이지(Page)로 구성되어 있다. 여기서, Page는 읽기/쓰기 동작의 기본 단위이고, 이러한 Page들이 모여 Block을 구성하며, 또한 Block들이 모여 Die를 구성한다. 이때, 다이(Die)는 단일 실리콘 기판으로 구현이 되는 물리적 단위를 나타낸다.Flash memory is basically composed of a die, a block, and a page. Here, a page is the basic unit of read/write operation, and these pages make up a block, and also blocks make up a die. In this case, the die represents a physical unit implemented by a single silicon substrate.

상술한 바와 같은 비휘발성 데이터 저장장치에 데이터를 저장할 때와 그 저장된 데이터를 검색할 때에는 주소 맵핑 테이블이 활용된다. 여기서, 주소 맵핑 테이블은 CPU 등의 프로세서가 데이터를 요청한 주소인 논리 주소(Logical address)와 실제 해당 저장매체에 데이터가 저장된 물리적 위치를 나타내는 물리 주소(physical address)을 연계하여 등록해둔 관리 테이블을 의미한다. CPU는 논리 주소(Logical address)를 통하여 읽기/쓰기 동작을 요청하게 되며, 주소 맵핑 테이블을 확인하여 물리 주소와 매칭되는 주소로 접근하는 방식에 의한다. When storing data in the nonvolatile data storage device as described above and retrieving the stored data, the address mapping table is used. Here, the address mapping table refers to a management table registered by linking a logical address that is an address from which a processor such as a CPU requests data and a physical address indicating a physical location where data is actually stored in the corresponding storage medium. do. The CPU requests a read/write operation through a logical address, and accesses an address matching the physical address by checking the address mapping table.

주소 맵핑 테이블은 별도의 메모리(예를 들어, DRAM 등)에 저장된다. DRAM의 저장 공간은 여러 개의 뱅크(Bank)로 이루어져 있다. 뱅크는 행으로 또 나뉘고, 행(row)은 또 열(column)로 또 나뉜다. DRAM에 쓰기 또는 읽기를 할 때 해당하는 뱅크에 행을 찾는 과정이 먼저 이루어지고, 행을 찾은 후에 열에 쓰기 또는 읽기를 시행한다. 행을 찾는 과정에 시간이 소요되고, 열에 쓰기 또는 읽기를 하는 과정에서도 시간이 소요되는데, 이후에 다른 뱅크의 작업을 하려할 때, 현재 뱅크가 쓰기/읽기 작업을 수행하는 다른 뱅크의 행을 미리 활성화 시켜 놓는 것이 가능하다. 그래서 이후에 직전과 같은 뱅크의 다른 행의 메모리에 접근하는 것 보다 더 빠르게 접근이 가능하다. 이를 뱅크 인터리빙(bank interleaving)이라고 한다. 즉, 뱅크 인터리빙이 많이 일어날수록 평균 전송속도가 뱅크 인터리빙이 일어나지 않았을 때보다 빨라지게 된다.The address mapping table is stored in a separate memory (eg, DRAM, etc.). The storage space of DRAM consists of several banks. A bank is further divided into rows, and a row is further divided into columns. When writing or reading DRAM, the process of finding a row in the corresponding bank is first performed, and after finding the row, writing or reading is performed on the column. The process of finding a row takes time, and the process of writing or reading a column also takes time. It is possible to activate it. Therefore, it is possible to access more quickly than accessing the memory of another row in the same bank as before. This is called bank interleaving. That is, the more the bank interleaving occurs, the faster the average transmission rate becomes than when the bank interleaving does not occur.

현재의 많은 주소 맵핑 테이블에 관한 알고리즘들이 논리 주소와 물리 주소의 연결을 수행하기 위해 제안되어 왔는데, 이때 연결을 위한 알고리즘들은 통상 해시 함수라는 것을 이용한다.A number of current address mapping table algorithms have been proposed for concatenating a logical address and a physical address. In this case, the algorithms for the concatenation usually use a hash function.

도 2는 일반적인 해시 함수를 설명하기 위한 도면이고, 도 3은 일반적인 주소 맵핑 테이블을 설명하기 위한 도면이다.FIG. 2 is a diagram for explaining a general hash function, and FIG. 3 is a diagram for explaining a general address mapping table.

해시 함수(Hash function)란 알고리즘을 수식을 이용하여 표현한 것으로서 입력 값을 연산하여 결과 값인 해시 키(Hash key)출력한다. 해시 키를 통해 주소 맵핑 테이블의 어느 위치에 들어갈 지를 결정하기 때문에 입력 값은 논리 주소가 되고 해쉬 키는 항상 주소 맵핑 테이블의 범위를 벗어나지 않는다. 해시함수로 인한 결과 값은 무작위의 성질을 띠고 있으므로 논리 주소 값이 맵핑주소 테이블 범위 내에서 골고루 분포될 수 있도록 한다.A hash function is an expression of an algorithm using a formula. It calculates an input value and outputs a hash key, which is a result value. Because the hash key determines where in the address mapping table to enter, the input value becomes a logical address, and the hash key is always within the range of the address mapping table. Since the result value of the hash function is random, logical address values can be evenly distributed within the range of the mapping address table.

주소 맵핑 테이블의 위치는 세트(Set)로 표현된다. 세트는 다수의 데이터 필드와 세트 간 맵핑 정보가 담겨있는 세트 맵핑 필드로 구성되어 있다. 하나의 해시 키는 하나의 셋과 일대일 대응이다. 어떤 세트를 사용하는지에 따라 어떤 뱅크에 접근 해야 하는지가 결정된다. 뱅크 인터리빙을 사용할 수 있으면 어떤 뱅크를 사용하는가가 접근 속도에 영향을 미치게 된다.The location of the address mapping table is expressed as a set. A set consists of a number of data fields and a set mapping field that contains mapping information between sets. A hash key is a one-to-one correspondence with a set. Which set is used determines which bank to access. If bank interleaving is available, which bank is used affects the access speed.

현재 이용되는 주소 맵핑 테이블은 해시 키에 따른 세트의 뱅크가 하나로 고정 되어 있어서 접근 속도 또한 해시 키에 따라 정해지게 된다.In the currently used address mapping table, the set of banks according to the hash key is fixed to one, so the access speed is also determined according to the hash key.

따라서, 하나의 세트에 여러 개의 뱅크를 할당하여 뱅크 인터리빙 빈도를 높여서 접근 속도를 줄일 수 있는 새로운 주소 관리 알고리즘이 필요하다.Therefore, there is a need for a new address management algorithm that can reduce access speed by increasing the frequency of bank interleaving by allocating multiple banks to one set.

본 발명은 전술한 문제를 해결하기 위해 안출된 것으로서, 본 발명에 따른 데이터 저장장치의 주소 맵핑 테이블 운용 방법은 데이터 저장장치에 저장된 데이터의 검색 과정에 주소 맵핑 테이블을 활용함에 있어서 논리 주소를 찾는 시간을 줄일 수 있는 주소 맵핑 테이블 운용 방법 및 이에 관한 알고리즘을 제공하기 위한 것이다.The present invention has been devised to solve the above-described problem, and the method for operating an address mapping table of a data storage device according to the present invention uses the address mapping table in a search process for data stored in the data storage device to find a logical address. To provide a method for operating an address mapping table that can reduce

전술한 문제를 해결하기 위한 본 발명의 실시예에 따른 데이터 저장장치의 주소 맵핑 테이블 운용 방법은 (a) 주소 관리 메모리에 주소 맵핑 테이블을 생성하는 단계; (b) 신규 데이터에 관한 쓰기 명령이 있는 경우, 상기 신규 데이터의 논리 주소 값에 제1해시 함수를 적용한 결과값에 상응하는 상기 주소 관리 메모리 내의 해당 세트의 데이터 필드에 데이터가 존재하는지 여부를 확인하여 데이터가 존재하지 않는 경우, 상기 해당 세트의 데이터 필드에 상기 데이터의 논리 주소 및 물리 주소를 저장하고 뱅크 접근 순서를 재배열하는 단계; 및 (c) 상기 확인 결과에 따라 세트에 데이터가 기존재하는 경우, 상기 주소 관리 메모리의 해당 주소의 값에 제2해시 함수를 적용하고, 상기 제2해시 함수를 적용한 결과값에 상응하는 상기 주소 관리 메모리 내의 해당 세트의 데이터 필드에 데이터의 존부를 확인하여, 데이터가 존재하지 않는 경우 해당 데이터 필드에 상기 신규 데이터의 논리 주소 및 물리 주소를 저장하고 뱅크 접근 순서를 재배열하는 단계;를 포함한다.In order to solve the above problem, a method of operating an address mapping table of a data storage device according to an embodiment of the present invention includes the steps of: (a) generating an address mapping table in an address management memory; (b) When there is a write command for new data, it is checked whether data exists in the data field of the corresponding set in the address management memory corresponding to the result of applying the first hash function to the logical address value of the new data to store the logical address and physical address of the data in the data field of the corresponding set when there is no data and rearrange the bank access order; and (c) applying a second hash function to the value of the corresponding address in the address management memory when data already exists in the set according to the result of the check, and the address corresponding to the result of applying the second hash function Checking the existence of data in the data field of the corresponding set in the management memory, storing the logical address and the physical address of the new data in the corresponding data field if the data does not exist, and rearranging the bank access order; includes; .

본 발명의 다른 일실시예에 따르면, 상기 제1해시 함수는 사전 지정된 연산을 통해 상기 주소 관리 메모리 내의 주소 값을 배정해주는 함수이고, 상기 제2해시 함수는 상기 주소 관리 메모리 내의 주소 값에 1을 증가시키는 +1 연산 함수일 수 있다.According to another embodiment of the present invention, the first hash function is a function for allocating an address value in the address management memory through a predetermined operation, and the second hash function adds 1 to an address value in the address management memory. It can be an incrementing +1 arithmetic function.

본 발명의 다른 일실시예에 따르면, 상기 (c) 단계는 상기 제2해시 함수를 적용한 결과값에 상응하는 상기 주소 관리 메모리 내의 해당 세트의 데이터 필드에 데이터가 부존재할 때까지, 상기 제2해시 함수의 적용을 반복 수행할 수 있다.According to another embodiment of the present invention, in step (c), until data does not exist in the data field of the corresponding set in the address management memory corresponding to the result of applying the second hash function, the second hash The application of the function can be repeated.

본 발명의 다른 일실시예에 따르면, 상기 주소 맵핑 테이블은 해당 데이터의 논리 주소를 저장하는 1차 테이블(primary table) 및 물리 주소를 저장하는 2차 테이블(secondary table)을 포함할 수 있다.According to another embodiment of the present invention, the address mapping table may include a primary table that stores a logical address of corresponding data and a secondary table that stores a physical address.

본 발명의 다른 일실시예에 따르면, 상기 뱅크의 접근 순서는 뱅크 인터리빙의 효과를 얻기 위해 접근한지 가장 오래된 순서로 결정할 수 있다.According to another embodiment of the present invention, the access order of the bank may be determined in the oldest order of access to obtain the effect of bank interleaving.

본 발명의 다른 일실시예에 따르면, 상기 1차 테이블은 상기 제1해시 함수 만을 적용하여 상기 주소 맵핑 테이블에 논리 주소 및 물리 주소가 맵핑 저장된 케이스와, 상기 제2해시 함수를 적용하여 상기 주소 맵핑 테이블에 논리 주소 및 물리 주소가 맵핑 저장된 케이스를 구분하고, 상기 1차 테이블에서 세트의 모든 데이터 필드에 데이터가 기존재하는 경우에 상기 제2 해시 함수를 적용하여 대응되는 다음 세트의 위치정보(next set id(nsid))를 세트 맵핑 필드에 입력할 수 있다.According to another embodiment of the present invention, the primary table applies only the first hash function to a case where logical addresses and physical addresses are mapped and stored in the address mapping table, and the address mapping by applying the second hash function A case in which a logical address and a physical address are mapped in a table is distinguished, and when data exists in all data fields of a set in the primary table, the second hash function is applied to the corresponding next set of location information (next set id(nsid)) can be entered in the Set Mapping field.

본 발명의 다른 일실시예에 따르면, (d) 데이터에 관한 읽기 명령이 있는 경우, 읽기 명령된 데이터의 논리 주소 값에 상기 제1해시 함수를 적용한 결과값에 상응하는 상기 주소 관리 메모리 내의 해당 세트의 데이터 필드에 읽기 명령 된 데이터의 논리 주소가 존재하는지를 확인하는 단계; 및 (e) 상기 확인 결과, 상기 읽기 명령된 데이터의 논리 주소가 존재하는 경우, 해당 데이터 필드의 물리 주소를 불러오는 단계;를 더 포함할 수 있다.According to another embodiment of the present invention, (d) when there is a read command for data, a corresponding set in the address management memory corresponding to the result value of applying the first hash function to the logical address value of the read command data checking whether the logical address of the read commanded data exists in the data field of; and (e) when the logical address of the read commanded data exists as a result of the check, retrieving the physical address of the corresponding data field; may further include.

본 발명의 다른 일실시예에 따르면, (f) 상기 읽기 명령된 논리 주소의 데이터가 1차 테이블의 세트에 존재하지 않는 경우, 세트 내의 세트 맵핑 필드의 nsid가 존재할 때까지 다음 세트를 확인하여, 상기 다음 세트의 위치 정보(nsid)에 의해서 동일한 논리 주소가 입력된 주소 관리 메모리 내의 데이터 필드가 존재하는 경우 해당 주소의 논리 주소의 물리 주소를 읽어 들이는 단계;를 더 포함할 수 있다.According to another embodiment of the present invention, (f) if the data of the read commanded logical address does not exist in the set of the primary table, the next set is checked until the nsid of the set mapping field in the set exists, The method may further include reading a physical address of a logical address of the corresponding address when a data field in the address management memory to which the same logical address is input according to the next set of location information (nsid) exists.

본 발명의 다른 일실시예에 따르면, 상기 (f) 단계는 다음 세트의 위치 정보를 찾기 위한 과정으로서 수행되는 세트 맵핑 필드의 nsid 검색이, 세트 맵핑 필드에 nsid가 존재하지 않을 때까지 수행될 수 있다.According to another embodiment of the present invention, in step (f), the nsid search of the set mapping field performed as a process for finding the location information of the next set may be performed until the nsid does not exist in the set mapping field. have.

또한, 본 발명의 일실시예에 따른 컴퓨터로 읽을 수 있는 기록 매체는 상기 데이터 저장장치의 주소 맵핑 테이블 운용 방법이 기록된다.In addition, in the computer-readable recording medium according to an embodiment of the present invention, the method of operating the address mapping table of the data storage device is recorded.

본 발명의 실시예에 따른 데이터 저장장치의 주소 맵핑 테이블 운용 방법은 데이터 저장장치에 저장된 데이터의 검색 과정에 주소 맵핑 테이블을 활용함에 있어서 논리 주소를 찾는 시간을 줄일 수 있고, 이에 따라 데이터 검색 시간을 최소화하여 처리할 수 있는 효과가 있다.The method for operating an address mapping table of a data storage device according to an embodiment of the present invention can reduce the time to find a logical address in using the address mapping table in the process of searching for data stored in the data storage device, and thus reduce the data search time There is an effect that can be treated to a minimum.

도 1은 일반적인 플레시 메모리의 구성을 설명하기 위한 도면이다.
도 2는 일반적인 해시 함수를 설명하기 위한 도면이다.
도 3은 일반적인 주소 맵핑 테이블을 설명하기 위한 도면이다.
도 4는 본 발명의 일실시예에 따른 데이터 저장장치의 주소 맵핑 테이블 운용 방법으로서 쓰기 명령 시의 동작 흐름을 설명하기 위한 도면이다.
도 5 내지 도 14는 본 발명의 일실시예에 따른 데이터 저장장치의 주소 맵핑 테이블 운용 방법으로서 쓰기 명령 시의 동작 방법을 설명하기 위한 도면이다.
도 15는 본 발명의 일실시예에 따른 데이터 저장장치의 주소 맵핑 테이블 운용 방법으로서 읽기 명령 시의 동작 흐름을 설명하기 위한 도면이다.
도 16은 본 발명의 일실시예에 따른 데이터 저장장치의 주소 맵핑 테이블 운용 방법으로서 읽기 명령 시의 동작을 설명하기 위한 도면이다.
1 is a diagram for explaining the configuration of a general flash memory.
2 is a diagram for explaining a general hash function.
3 is a diagram for describing a general address mapping table.
4 is a diagram for explaining an operation flow at the time of a write command as a method of operating an address mapping table of a data storage device according to an embodiment of the present invention.
5 to 14 are diagrams for explaining an operation method at the time of a write command as a method of operating an address mapping table of a data storage device according to an embodiment of the present invention.
15 is a diagram for explaining an operation flow at the time of a read command as a method of operating an address mapping table of a data storage device according to an embodiment of the present invention.
16 is a diagram for explaining an operation at the time of a read command as a method of operating an address mapping table of a data storage device according to an embodiment of the present invention.

본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.Since the present invention can apply various transformations and can have various embodiments, specific embodiments are illustrated in the drawings and described in detail in the detailed description. However, this is not intended to limit the present invention to specific embodiments, and it should be understood to include all modifications, equivalents and substitutes included in the spirit and scope of the present invention.

본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. In describing the present invention, if it is determined that a detailed description of a related known technology may unnecessarily obscure the gist of the present invention, the detailed description thereof will be omitted.

도 4는 본 발명의 일실시예에 따른 데이터 저장장치의 주소 맵핑 테이블 운용 방법으로서 쓰기 명령 시의 동작 흐름을 설명하기 위한 도면이고, 도 5 내지 도 14는 본 발명의 일실시예에 따른 데이터 저장장치의 주소 맵핑 테이블 운용 방법으로서 쓰기 명령 시의 동작 방법을 설명하기 위한 도면이다.4 is a diagram for explaining an operation flow at the time of a write command as a method of operating an address mapping table of a data storage device according to an embodiment of the present invention, and FIGS. 5 to 14 are data storage according to an embodiment of the present invention It is a diagram for explaining an operation method at the time of a write command as a method of operating an address mapping table of a device.

이후부터는 도 4 내지 도 14를 참조하여 본 발명의 일실시예에 따른 데이터 저장장치의 주소 맵핑 테이블 운용 방법을 설명하기로 한다.Hereinafter, a method of operating an address mapping table of a data storage device according to an embodiment of the present invention will be described with reference to FIGS. 4 to 14 .

도 4를 참조하면, 본 발명의 일실시예에 따른 주소 맵핑 테이블 운용 방법은, 신규 데이터에 관한 쓰기 명령이 있는 경우, 상기 신규 데이터의 논리 주소 값에 제1해시 함수를 적용한 결과값에 상응하는 상기 주소 관리 메모리 내의 해당 세트의 데이터 필드에 데이터가 존재하는지 여부를 확인하고, 데이터가 부존재하는 경우 상기 해당 주소의 세트에 상기 신규 데이터의 논리 주소 및 물리 주소를 저장한다.Referring to FIG. 4 , in the method of operating an address mapping table according to an embodiment of the present invention, when there is a write command for new data, a first hash function is applied to a logical address value of the new data. It is checked whether data exists in the data field of the corresponding set in the address management memory, and when the data does not exist, the logical address and the physical address of the new data are stored in the set of the corresponding address.

반대로, 상기 확인 결과에 따라 데이터가 기존재하는 경우 상기 주소 관리 메모리의 해당 주소의 값에 제2해시 함수를 적용하되, 상기 제2해시 함수를 적용한 결과값에 상응하는 상기 주소 관리 메모리 내의 해당 세트의 데이터 필드에 신규 데이터의 입력 가능 여부를 확인하여, 신규 데이터가 입력 가능한 경우 상기 신규 데이터의 논리 주소 및 물리 주소를 저장한다.Conversely, if data exists according to the check result, a second hash function is applied to the value of the corresponding address in the address management memory, and a corresponding set in the address management memory corresponding to the result value of applying the second hash function It is checked whether new data can be inputted into the data field of

이때, 상기 제2해시 함수의 적용은, 상기 제2해시 함수를 적용한 결과값에 상응하는 상기 주소 관리 메모리 내의 해당 세트의 데이터 필드에 신규 데이터의 입력 가능한 데이터 필드가 나올 때까지 반복 수행될 수 있다.In this case, the application of the second hash function may be repeatedly performed until a data field in which new data can be input appears in the data field of the corresponding set in the address management memory corresponding to the result of applying the second hash function. .

보다 구체적으로, 데이터에 관한 쓰기 명령이 있는 경우, 논리 주소값에 제1해시 함수를 적용한 해시 키에 대응되는 세트 내 데이터 필드에 동일 논리 주소 및 신규 데이터 입력 가능 여부를 확인하고(S410), 동일 논리 주소가 존재하지 않으며(S420), 신규 데이터의 입력이 가능한 경우(S430), 동일 논리 주소 및 신규 데이터 입력이 가능한 세트가 나올 때까지 nsid를 이용해 세트 내의 데이터를 확인하여, nsid가 존재하지 않을 경우, 해당 주소에 제2해시 함수를 적용해 세트를 확인하여(S440), 해당 주소의 데이터 필드에 논리 주소와 물리 주소를 기록할 수 있다(S450).More specifically, when there is a data write command, it is checked whether the same logical address and new data can be input in the data field in the set corresponding to the hash key to which the first hash function is applied to the logical address value (S410), and the same If the logical address does not exist (S420) and new data input is possible (S430), the data in the set is checked using the nsid until a set in which the same logical address and new data input is possible comes out, so that the nsid does not exist. In this case, the set may be checked by applying the second hash function to the corresponding address (S440), and the logical address and the physical address may be recorded in the data field of the corresponding address (S450).

CPU에서 논리주소(Logical address) 100이라는 데이터 쓰기의 명령이 들어왔을 때의 예시를 통하여 동작에 대한 설명을 하기로 한다. 예시에서의 논리주소 100에 대한 제 1 해시 함수의 해시 키는 2로 설정 하였고, 뱅크 접근 순서의 초기값은 임의로 0번, 3번, 1번, 2번, 뱅크로 지정해주었다. 그리고, 설명의 편의를 위해 주소 맵핑 테이블이 저장되는 주소 관리 메모리는 DRAM인 것으로 가정하고, 세트 내의 필드의 개수는 각 뱅크 별 2개씩 0번 뱅크에 세트 맵핑 정보가 포함된 세트 맵핑 필드와 데이터 필드가 배정되고, 1, 2, 3 번 뱅크에 각각 2개의 데이터 필드가 배정 되어서 총 8개의 필드를 가진다.The operation will be explained through an example when a data write command of logical address 100 is received from the CPU. The hash key of the first hash function for the logical address 100 in the example was set to 2, and the initial value of the bank access order was arbitrarily designated as 0, 3, 1, 2, and bank. In addition, for convenience of explanation, it is assumed that the address management memory in which the address mapping table is stored is DRAM, and the number of fields in the set is two for each bank, a set mapping field and a data field containing set mapping information in bank 0. is assigned, and 2 data fields are assigned to banks 1, 2, and 3, respectively, so that there are a total of 8 fields.

뱅크의 접근 순서는 뱅크 인터리빙의 효과를 얻기 위해 가장 오래된 순서로 접근한다. 따라서, 현재 접근할 뱅크는 가장 오래 전에 접근하였던 t-4의0번 뱅크이고, 다음으로 t-3의 3번 뱅크, t-2의 1번 뱅크, t-2의 2번 뱅크이다.The access order of the banks is the oldest in order to obtain the effect of bank interleaving. Accordingly, the current bank to be accessed is the 0th bank of t-4 that was accessed the longest, followed by the 3rd bank of t-3, the 1st bank of t-2, and the 2nd bank of t-2.

도 5를 참조하면, 현재 뱅크에 접근하는 시점을 t라고 했을 때 t-n은 그보다 n번 전에 접근하였던 뱅크임을 나타낸다. 따라서 현재 접근할 뱅크는 t-4의 뱅크이고, 이 뱅크는 접근한 이후에 가장 최근에 접근한 뱅크(t-1)로 변경된다. 따라서 다음 접근 순서를 위해 t-4에 있었던 뱅크가 t-1로 이동하고 나머지 t-n에 담겨 있던 뱅크는 t-(n+1)으로 이동하게 된다.Referring to FIG. 5 , when a time point for accessing the current bank is t, t-n indicates that the bank has been accessed n times before that. Therefore, the currently accessed bank is the bank of t-4, and this bank is changed to the most recently accessed bank (t-1) after the access. Therefore, for the next access order, the bank at t-4 moves to t-1, and the remaining banks in t-n move to t-(n+1).

쓰기나 읽기동작으로 인해 현재 사용한 뱅크가 이전의 t-4에 있던 뱅크가 아닐 상황이 존재한다. 예를 들면 기존의 뱅크 순서가 0번 1번 2번 3번 이었는데, 같은 논리주소가 2번 뱅크에 존재한다면 가장 최근에 접근한 뱅크(t-1)가 2번 뱅크로 변경되어 다음 동작으로 넘어가게 된다. 이에 따라 접근 순서 패턴의 변동이 일어날 수 있다. 이 경우에는 현재 사용한 뱅크를 기준으로 뱅크 접근 순서를 변경하여 준다. 예를 들어 t-2에 있던 뱅크를 현재 사용하게 될 경우에는 t-2가 가장 최근에 사용한 뱅크가 되므로 t-1에 들어가게 되고 t-2에 는 t-1에 있던 뱅크가 들어가게 된다.There is a situation in which the currently used bank is not the bank that was in the previous t-4 due to a write or read operation. For example, if the existing bank sequence was 0, 1, 2, and 3, but the same logical address exists in bank 2, the most recently accessed bank (t-1) is changed to bank 2 and proceeds to the next operation. will go Accordingly, a change in the access order pattern may occur. In this case, the bank access order is changed based on the currently used bank. For example, if the bank at t-2 is currently used, t-2 becomes the most recently used bank, so it enters t-1, and the bank at t-1 enters t-2.

도 6 및 도 7을 참조하면, 현재 접근할 뱅크는 가장 오래 전에 접근하였던 t-4의0번 뱅크이고, 다음으로 t-3의 3번 뱅크, t-2의 1번 뱅크, t-2의 2번 뱅크이다.6 and 7 , the currently accessed bank is the 0th bank of t-4 accessed the longest, then the 3rd bank of t-3, the 1st bank of t-2, the 1st bank of t-2 This is bank 2.

[쓰기 동작 시 1차 테이블의 셋에 비어있는 공간이 존재하는 경우][When there is an empty space in the set of the primary table during write operation]

논리 주소 100이 제 1 해시 함수 연산에 의해 해시 키는 2의 값을 갖게 된다. 오래 전에 사용한 뱅크의 순서가 0번, 3번, 1번, 2번이라는 것을 확인한다. 0번 뱅크부터 오래 전에 사용된 뱅크 순으로 해시 키 3번 셋의 각 뱅크 별 첫번째 데이터 필드와 세트 맵핑 필드를 읽고, 같은 순으로 해시 키3번의 셋의 각 뱅크 별 두번째 데이터 필드를 읽어서 7개의 데이터 필드 중 같은 논리 주소 또는 비어있는 공간의 존부 여부를 파악한다.The logical address 100 has a hash key of 2 by the first hash function operation. Check that the order of the bank used long ago is 0, 3, 1, and 2. 7 data by reading the first data field and set mapping field for each bank in the set of hash key 3 in the order of bank 0 to the bank used long ago, and the second data field for each bank in the set of hash key 3 in the same order It checks whether the same logical address or empty space exists among the fields.

같은 논리 주소가 없고, 비어 있는 공간이 있음을 확인하였으므로 비어있는 데이터 필드들 중 가장 처음 찾은 비어있는 데이트 필드인 1번 뱅크의 첫번째 데이터 필드에 논리 주소와 물리 주소를 저장한다. 이 경우 접근할 뱅크 순서 패턴이 바뀌게 되므로, 도 8과 같이 순서가 바뀌게 된다. 1번 뱅크가 가장 최근에 사용되었으므로 t-1이 된 것을 확인할 수 있다.Since it is confirmed that there is no same logical address and there is an empty space, the logical address and the physical address are stored in the first data field of bank 1, which is the first empty data field found among the empty data fields. In this case, since the access bank order pattern is changed, the order is changed as shown in FIG. 8 . Since bank 1 was used most recently, it can be confirmed that t-1 has been reached.

[쓰기 동작 시 1차 테이블의 셋의 비어있는 공간이 존재하지 않고 nsid가 비어있는 경우][When there is no empty space in the set of the primary table during write operation and the nsid is empty]

논리 주소 100이 제 1 해시 함수 연산에 의해 해시 키는 2의 값을 갖게 된다. 오래 전에 사용한 뱅크의 순서가 0번, 3번, 2번, 1번 뱅크라는 것을 확인한다. 0번 뱅크부터 오래 전에 사용된 뱅크 순으로 3번 셋의 뱅크 별 첫번째 데이터 필드와 세트 맵핑 필드를 읽고, 같은 순으로 3번 셋의 뱅크 별 두번째 데이터 필드를 7개의 데이터 필드 중 같은 논리 주소 또는 비어있는 공간의 존부 여부를 파악한다. 파악한 결과 같은 논리 주소가 없고 3번 셋의 모든 공간이 차 있으므로 세트 맵핑 필드에 nsid의 존부 여부를 확인하고, 이때 비어 있으므로 제2 해시 함수를 통하여2차 테이블의 set0이 배정되고, 2차 테이블의 set0의 위치정보가 1차 테이블의 3번 세트의 세트 맵핑 필드의 nsid에 입력된다. 그 다음으로 2차 테이블로 넘어가서 nsid에 맞는 셋을 다시 오래 전에 사용한 뱅크의 순서대로 읽는다. 같은 논리 주소가 없고, 비어있는 공간이 있음을 확인하였으므로 3번 뱅크의 첫번째 데이터 필드에 논리 주소와 물리 주소를 저장한다. 이 경우에는 1차 테이블의 가장 최근에 사용한 뱅크가 0번 뱅크가 되므로, 도 10과 같이 뱅크 접근 순서가 바뀌게 된다.The logical address 100 has a hash key of 2 by the first hash function operation. Check that the order of the banks used long ago is the 0, 3, 2, and 1 banks. The first data field and set mapping field for each bank of set 3 are read in the order of the bank used a long time ago from bank 0, and in the same order, the second data field for each bank of set 3 is set to the same logical address or empty among the 7 data fields. Assess the existence or nonexistence of space. As a result of the identification, there is no same logical address and all spaces in set 3 are full, so the presence or absence of nsid in the set mapping field is checked. The location information of set0 is input to the nsid of the set mapping field of the 3rd set of the primary table. Next, it goes to the secondary table and reads the set that matches the nsid again in the order of the bank that was used a long time ago. Since it is confirmed that there is no same logical address and there is an empty space, the logical address and the physical address are stored in the first data field of the 3rd bank. In this case, since the most recently used bank of the primary table becomes the 0 bank, the bank access order is changed as shown in FIG. 10 .

[쓰기 동작 시 1차 테이블의 셋의 비어있는 공간이 존재하지 않고 nsid가 차있는 경우][When there is no empty space in the primary table set and the nsid is full during write operation]

논리 주소 100이 제1 해시 함수 연산에 의해 해시 키는 2의 값을 갖게 된다. 오래 전에 사용한 뱅크의 순서가 0번, 3번, 1번, 2번 뱅크라는 것을 확인한다. 0번 뱅크부터 오래 전에 사용된 뱅크 순으로 3번 셋의 뱅크 별 첫번째 데이터 필드와 세트 맵핑 필드를 읽고, 같은 순으로 3번 셋의 뱅크 별 두번째 데이터 필드를 읽어서 7개의 데이터 필드 중 같은 논리 주소 또는 비어있는 데이터 필드의 존부 여부를 파악한다. 파악한 결과 같은 논리 주소가 없고 3번 셋의 모든 데이터 필드가 차 있으므로 세트 맵핑 필드의 nsid의 존부 여부를 확인하고 nsid가 있으면 nsid에 기재되어 있는 해시 키를 읽어 제 2 속성 필드에서 대응되는 셋을 다시 오래 전에 사용한 뱅크의 순서대로 읽는다. 확인 결과 같은 논리 주소가 없고, 비어있는 데이터 필드가 있음을 확인하였으므로 3번 뱅크 첫번째 데이터 필드에 논리 주소와 물리 주소를 저장한다. 이 경우에는 0번 뱅크의 세트 맵핑 필드를 사용해야 하지 않으므로 뱅크 접근순서에 변동이 없다.The logical address 100 has a hash key of 2 by the first hash function operation. Check that the order of the banks used long ago is the 0, 3, 1, and 2 banks. The first data field and set mapping field for each bank of set 3 are read in the order of the bank used long ago from bank 0, and the second data field for each bank of set 3 is read in the same order, and the same logical address or Checks the existence of empty data fields. As a result, there is no same logical address and all data fields in set 3 are full. So, check the existence of nsid in the set mapping field. Read in the order of the old bank used. As it is confirmed that there is no same logical address and there is an empty data field, the logical address and the physical address are stored in the first data field of the 3rd bank. In this case, there is no change in the bank access order because it is not necessary to use the set mapping field of bank 0.

[쓰기 동작 시 이전에 1차 테이블에 썼던 논리 주소에 다시 쓰는 경우][In case of writing back to the logical address previously written in the primary table during write operation]

논리 주소 100이 제 1 해시 함수 연산에 의해 해시 키는 2의 값을 갖게 된다. 뱅크 접근 순서를 확인한 결과 오래 전에 사용한 뱅크의 순서가 0번, 3번, 2번, 1번 뱅크 라는 것을 확인 하였다. 따라서 0번 뱅크부터 오래 전에 사용된 뱅크 순으로 3번 셋의 뱅크 별 첫번째 데이터 필드와 세트 맵핑 필드를 읽고, 같은 순으로 3번 셋의 뱅크 별 두번째 데이터 필드를 읽어서 7개의 데이터 필드 중 같은 논리 주소와 비어있는 공간의 존부 여부를 파악한다. 1번 뱅크 첫번째 데이터 필드에 같은 논리 주소가 존재함을 확인하였으므로 그 데이터 필드에 새로운 물리주소를 덮어쓴다. 이 경우에는 마지막으로 사용하는 뱅크가 바뀔 수 있어 이전에 사용한 뱅크의 순서가 변경되는게 일반적이지만 뱅크의 순서가 원래0번, 3번, 2번, 1번으로 1번 뱅크가 t-1 에 존재하므로 갱신하여 줄 필요가 없다.The logical address 100 has a hash key of 2 by the first hash function operation. As a result of checking the bank access order, it was confirmed that the order of the banks used a long time ago was 0, 3, 2, and 1 banks. Therefore, the first data field and set mapping field for each bank of set 3 are read in the order of the bank used long ago from bank 0, and the second data field for each bank of set 3 is read in the same order to read the same logical address among the 7 data fields. and whether there is an empty space. Since it is confirmed that the same logical address exists in the first data field of bank 1, a new physical address is overwritten in the data field. In this case, the last used bank can be changed, so the order of the previously used bank is generally changed, but the original bank order is 0, 3, 2, and 1, as bank 1 exists in t-1. no need to update

도 15는 본 발명의 일실시예에 따른 데이터 저장장치의 주소 맵핑 테이블 운용 방법으로서 읽기 명령 시의 동작 흐름을 설명하기 위한 도면이며, 도 16은 본 발명의 일실시예에 따른 데이터 저장장치의 주소 맵핑 테이블 운용 방법으로서 읽기 명령 시의 동작을 설명하기 위한 도면이다.15 is a diagram for explaining an operation flow at the time of a read command as a method of operating an address mapping table of a data storage device according to an embodiment of the present invention, and FIG. 16 is an address of a data storage device according to an embodiment of the present invention. A diagram for explaining an operation at the time of a read command as a mapping table operation method.

도 15를 참조하면, 본 발명의 실시예에 따른 주소 맵핑 테이블 운용 방법은, 데이터에 관한 읽기 명령이 있는 경우, 읽기 명령 된 데이터의 논리 주소 값에 상기 제1해시 함수를 적용한 결과값에 상응하는 상기 주소 관리 메모리 내의 해당 세트의 데이터 필드에 읽기 명령 된 데이터의 논리 주소가 존재하는지를 확인한다. 상기 확인 결과, 상기 읽기 명령 된 데이터의 논리 주소가 존재하는 경우, 해당 논리 주소와 대응되는 물리 주소로부터 데이터를 읽어 들인다Referring to FIG. 15 , in the method of operating an address mapping table according to an embodiment of the present invention, when there is a read command for data, the first hash function corresponds to a result value of applying the first hash function to the logical address value of the read command data. It is checked whether the logical address of the read command data exists in the data field of the corresponding set in the address management memory. As a result of the check, if the logical address of the read commanded data exists, data is read from the physical address corresponding to the corresponding logical address.

반면, 상기 확인 결과, 상기 읽기 명령된 데이터의 논리 주소가 존재하지 않는 경우, 상기 주소 관리 메모리 내의 주소를 검색될 때까지 세트 맵핑 필드의nsid를 통해 맵핑된 2차 테이블의 세트에 읽기 명령 된 데이터의 논리 주소가 존재하는지를 확인한다. 상기 확인 결과, 상기 읽기 명령 된 데이터의 논리 주소가 존재하는 경우, 해당 논리 주소와 대응되는 물리 주소를 읽어 들인다. 이때, 읽기 명령 된 논리 주소가 입력된 세트를 찾기 위한 과정으로서 수행되는 상기 세트 맵핑 필드의 nsid를 통해 다음 세트 검색은, 상기 세트 맵핑 필드의 nsid가 존재하지 않을 때까지를 검색 종점으로 하여 수행될 수 있다.On the other hand, as a result of the check, if the logical address of the read commanded data does not exist, the read commanded data into the set of the secondary table mapped through the nsid of the set mapping field until the address in the address management memory is retrieved Check if the logical address of As a result of the check, if a logical address of the read commanded data exists, a physical address corresponding to the corresponding logical address is read. At this time, the next set search through the nsid of the set mapping field, which is performed as a process for finding the set in which the read commanded logical address is input, is performed until the nsid of the set mapping field does not exist as the search end point. can

예를 들어, 데이터에 관한 읽기 명령이 있는 경우, 논리 주소값에 제1해시 함수를 적용한 해시 키에 대응되는 세트 내 동일 논리 주소를 확인하고(S510), 동일 논리 주소가 존재하지 않으면(S520), 동일 논리 주소가 있는 세트가 나올 때까지 nsid(다음 세트 맵핑정보)를 이용해 세트를 확인하고(S530), 해당 주소의 데이터 필드의 물리 주소를 읽어 들일 수 있다(S540).For example, if there is a read command on data, the same logical address in the set corresponding to the hash key to which the first hash function is applied to the logical address value is checked (S510), and if the same logical address does not exist (S520) , until a set having the same logical address is found, the set is checked using nsid (next set mapping information) (S530), and the physical address of the data field of the corresponding address can be read (S540).

이후, 뱅크 접근 순서의 초기값은 임의로 0번, 3번, 2번, 1번 뱅크로 지정해주었을 때, CPU에서 논리 주소(Logical address) 100이라는 데이터 읽기의 명령이 들어왔을 때의 예시를 통하여 동작에 대한 설명을 하기로 한다. 예시에서의 논리주소 100에 대한 제 1 해시 함수의 해시 키는 2로 설정 하였고, 뱅크 접근 순서의 초기값은 임의로 0번, 3번, 1번, 2번 뱅크로 지정해주었다.After that, when the initial value of the bank access sequence is arbitrarily designated as 0, 3, 2, or 1, the CPU receives a data read command of logical address 100 through the example. The operation will be explained. In the example, the hash key of the first hash function for the logical address 100 was set to 2, and the initial value of the bank access order was arbitrarily designated as 0, 3, 1, and 2 banks.

[1차 테이블의 셋에 같은 논리 주소가 존재하는 경우][If the same logical address exists in the set of the primary table]

논리 주소 100이 제 1 해시 함수 연산에 의해 해시 키는 2의 값을 갖게 된다. 오래 전에 사용한 뱅크의 순서가 도 13의 0번, 3번, 2번, 1번 뱅크라는 것을 확인한다. 이 순서대로 2번 셋의 뱅크 별 첫번째 데이터 필드와 세트 맵핑 필드 확인한다. 1번 뱅크의 첫번째 데이터 필드에 동일한 논리 주소가 있음을 확인 하였으므로 이 데이터 필드에 저장되어 있는 물리 주소를 읽어온다. 마지막으로 사용한 뱅크가 1번 뱅크 이기 때문에 뱅크의 접근 순서는 바뀌지 않아도 된다.The logical address 100 has a hash key of 2 by the first hash function operation. It is confirmed that the order of the banks used long ago is the 0, 3, 2, and 1 banks of FIG. In this order, check the first data field and the set mapping field for each bank in set 2. Since it is confirmed that the same logical address exists in the first data field of bank 1, the physical address stored in this data field is read. Since the last used bank is bank 1, the access order of the banks does not need to be changed.

[1차 테이블의 셋에 같은 논리 주소가 존재하지 않고, nsid가 존재하지 않는 경우][If the same logical address does not exist in the set of the primary table and the nsid does not exist]

논리 주소 100이 제 1 해시 함수 연산에 의해 해시 키는 2의 값을 갖게 된다. 오래 전에 사용한 뱅크의 순서가 0번, 3번, 2번, 1번 뱅크라는 것을 확인한다. 이 순서대로 3번 셋의 뱅크 별 첫번째 데이터 필드와 세트 맵핑 필드 확인한다. 확인 결과 데이터 필드에서 같은 논리 주소를 찾지 못하였으므로 이어서 각 뱅크의 두번째 데이터 필드를 확인한다. 그럼에도 불구하고 같은 논리 주소를 찾지 못하였고, nsid 또한 존재하지 않기 때문에 이 논리 주소에 대한 읽기 동작을 중단하고 다음 동작을 시작한다. 이 경우는 뱅크를 8번씩 모두 동등하게 사용하기 때문에 뱅크의 접근 순서가 바뀌지 않는다.The logical address 100 has a hash key of 2 by the first hash function operation. Check that the order of the banks used long ago is the 0, 3, 2, and 1 banks. In this order, check the first data field and the set mapping field for each bank in set 3. As a result of the check, the same logical address was not found in the data field, so the second data field of each bank is checked. Nevertheless, the same logical address could not be found, and the nsid does not exist, so the read operation on this logical address is stopped and the next operation is started. In this case, the access order of the banks does not change because the banks are used equally every 8 times.

[1차 테이블의 셋에 같은 논리 주소가 존재하지 않고, nsid에 대응되는 해시 키의 셋에 같은 논리 주소가 존재하는 경우][When the same logical address does not exist in the set of the primary table and the same logical address exists in the set of hash keys corresponding to nsid]

논리 주소 100이 제 1 해시 함수 연산에 의해 해시 키는 2의 값을 갖게 된다. 오래 전에 사용한 뱅크의 순서가 0번, 3번, 2번, 1번 뱅크라는 것을 확인한다. 이 순서대로 3번 셋의 각 뱅크별 첫번째 데이터 필드에 같은 논리 주소가 있는지를 확인한다. 같은 논리 주소를 찾지 못하였으므로 이어서 각 뱅크 별 두번째 데이터 필드를 확인한다. 같은 논리 주소를 찾지 못하였으므로, 세트 맵핑 필드의 nsid에 기재되어 있는 해시 키를 읽어 2차 테이블에서 대응되는 세트를 다시 오래 전에 사용한 뱅크의 순서대로 읽는다. 2번 뱅크의 첫번째 데이터 필드에 같은 논리 주소가 있음을 확인 하였으므로 이 곳에 저장되어 있는 물리 주소를 읽어온다.The logical address 100 has a hash key of 2 by the first hash function operation. Check that the order of the banks used long ago is the 0, 3, 2, and 1 banks. In this order, it is checked whether the same logical address exists in the first data field of each bank of set 3 in this order. Since the same logical address could not be found, the second data field for each bank is then checked. Since the same logical address could not be found, the hash key written in the nsid of the set mapping field is read, and the corresponding set from the secondary table is read again in the order of the bank used a long time ago. Since it is confirmed that the same logical address exists in the first data field of bank 2, the physical address stored there is read.

상술한 본 발명에 따른 데이터 저장장치의 주소 맵핑 테이블 운용 방법 은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로서 구현되는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체로는 컴퓨터 시스템에 의하여 해독될 수 있는 데이터가 저장된 모든 종류의 기록 매체를 포함한다. 예를 들어, ROM(Read Only Memory), RAM(Random Access Memory), 자기 테이프, 자기 디스크, 플래쉬 메모리, 광 데이터 저장장치 등이 있을 수 있다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 통신망으로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 읽을 수 있는 코드로서 저장되고 실행될 수 있다. The above-described method for operating an address mapping table of a data storage device according to the present invention can be implemented as a computer-readable code on a computer-readable recording medium. The computer-readable recording medium includes any type of recording medium in which data that can be read by a computer system is stored. For example, there may be a read only memory (ROM), a random access memory (RAM), a magnetic tape, a magnetic disk, a flash memory, an optical data storage device, and the like. In addition, the computer-readable recording medium may be distributed in computer systems connected through a computer communication network, and stored and executed as readable codes in a distributed manner.

전술한 바와 같은 본 발명의 상세한 설명에서는 구체적인 실시예에 관해 설명하였다. 그러나 본 발명의 범주에서 벗어나지 않는 한도 내에서는 여러 가지 변형이 가능하다. 본 발명의 기술적 사상은 본 발명의 전술한 실시예에 국한되어 정해져서는 안 되며, 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.In the detailed description of the present invention as described above, specific embodiments have been described. However, various modifications are possible without departing from the scope of the present invention. The technical spirit of the present invention should not be limited to the above-described embodiments of the present invention, and should be defined by the claims as well as the claims and equivalents.

Claims (10)

데이터 저장장치의 주소 맵핑 테이블 운용 방법에 있어서,
(a) 주소 관리 메모리에 주소 맵핑 테이블을 생성하는 단계;
(b) 신규 데이터에 관한 쓰기 명령이 있는 경우, 상기 신규 데이터의 논리 주소 값에 제1해시 함수를 적용한 결과값에 상응하는 상기 주소 관리 메모리 내의 해당 세트의 데이터 필드에 데이터가 존재하는지 여부를 확인하여 데이터가 존재하지 않는 경우, 상기 해당 세트의 데이터 필드에 상기 데이터의 논리 주소 및 물리 주소를 저장하고 뱅크 접근 순서를 재배열하는 단계; 및
(c) 상기 확인 결과에 따라 상기 세트에 데이터가 기존재하는 경우, 상기 주소 관리 메모리의 해당 주소의 값에 제2해시 함수를 적용하고, 상기 제2해시 함수를 적용한 결과값에 상응하는 상기 주소 관리 메모리 내의 해당 세트의 데이터 필드에 데이터의 존부를 확인하여, 데이터가 존재하지 않는 경우 해당 데이터 필드에 상기 신규 데이터의 논리 주소 및 물리 주소를 저장하고 뱅크 접근 순서를 재배열하는 단계;
를 포함하는 데이터 저장장치의 주소 맵핑 테이블 운용 방법.
In the method of operating an address mapping table of a data storage device,
(a) generating an address mapping table in an address management memory;
(b) When there is a write command for new data, it is checked whether data exists in the data field of the corresponding set in the address management memory corresponding to the result of applying the first hash function to the logical address value of the new data to store the logical address and physical address of the data in the data field of the corresponding set when there is no data and rearrange the bank access order; and
(c) when data already exists in the set according to the result of the check, a second hash function is applied to the value of the corresponding address in the address management memory, and the address corresponding to the result of applying the second hash function checking the existence of data in the data field of the corresponding set in the management memory, storing the logical address and the physical address of the new data in the corresponding data field when the data does not exist, and rearranging the bank access order;
A method of operating an address mapping table of a data storage device comprising a.
청구항 1에 있어서,
상기 제1해시 함수는,
사전 지정된 연산을 통해 상기 주소 관리 메모리 내의 주소 값을 배정해주는 함수이고,
상기 제2해시 함수는,
상기 주소 관리 메모리 내의 주소 값에 1을 증가시키는 +1 연산 함수인 데이터 저장장치의 주소 맵핑 테이블 운용 방법.
The method according to claim 1,
The first hash function is
It is a function that allocates an address value in the address management memory through a predetermined operation,
The second hash function is
A method of operating an address mapping table of a data storage device, which is a +1 operation function for incrementing an address value in the address management memory by 1.
청구항 1에 있어서,
상기 (c) 단계는,
상기 제2해시 함수를 적용한 결과값에 상응하는 상기 주소 관리 메모리 내의 해당 세트의 데이터 필드에 데이터가 부존재할 때까지, 상기 제2해시 함수의 적용을 반복 수행하는 데이터 저장장치의 주소 맵핑 테이블 운용 방법.
The method according to claim 1,
The step (c) is,
Method of operating an address mapping table of a data storage device by repeatedly performing application of the second hash function until there is no data in the data field of the corresponding set in the address management memory corresponding to the result of applying the second hash function .
청구항 1에 있어서,
상기 주소 맵핑 테이블은,
해당 데이터의 논리 주소를 저장하는 1차 테이블(primary table) 및 물리 주소를 저장하는 2차 테이블(secondary table)을 포함하는 데이터 저장장치의 주소 맵핑 테이블 운용 방법.
The method according to claim 1,
The address mapping table is
A method of operating an address mapping table of a data storage device including a primary table for storing a logical address of the corresponding data and a secondary table for storing a physical address.
청구항 1에 있어서,
상기 뱅크의 접근 순서는,
뱅크 인터리빙의 효과를 얻기 위해 접근한지 가장 오래된 순서로 결정하는 데이터 저장장치의 주소 맵핑 테이블 운용 방법.
The method according to claim 1,
The access order of the bank is,
A method of operating an address mapping table of a data storage device that determines the oldest access order to obtain the effect of bank interleaving.
청구항 4에 있어서,
상기 1차 테이블은,
상기 제1해시 함수 만을 적용하여 상기 주소 맵핑 테이블에 논리 주소 및 물리 주소가 맵핑 저장된 케이스와, 상기 제2해시 함수를 적용하여 상기 주소 맵핑 테이블에 논리 주소 및 물리 주소가 맵핑 저장된 케이스를 구분하고, 상기 1차 테이블에서 세트의 모든 데이터 필드에 데이터가 기존재하는 경우에 상기 제2 해시 함수를 적용하여 대응되는 다음 세트의 위치정보(next set id(nsid))를 세트 맵핑 필드에 입력하는 데이터 저장장치의 주소 맵핑 테이블 운용 방법.
5. The method according to claim 4,
The first table is
distinguishing a case in which a logical address and a physical address are mapped and stored in the address mapping table by applying only the first hash function, and a case in which a logical address and a physical address are mapped and stored in the address mapping table by applying the second hash function; When data exists in all data fields of a set in the primary table, the second hash function is applied to input the corresponding next set location information (next set id(nsid)) into the set mapping field. How to operate the device's address mapping table.
청구항 1에 있어서,
(d) 데이터에 관한 읽기 명령이 있는 경우, 읽기 명령된 데이터의 논리 주소 값에 상기 제1해시 함수를 적용한 결과값에 상응하는 상기 주소 관리 메모리 내의 해당 세트의 데이터 필드에 읽기 명령 된 데이터의 논리 주소가 존재하는지를 확인하는 단계; 및
(e) 상기 확인 결과, 상기 읽기 명령된 데이터의 논리 주소가 존재하는 경우, 해당 데이터 필드의 물리 주소를 불러오는 단계;
를 더 포함하는 데이터 저장장치의 주소 맵핑 테이블 운용 방법.
The method according to claim 1,
(d) When there is a data read command, the logic of the data read commanded to the data field of the corresponding set in the address management memory corresponding to the result of applying the first hash function to the logical address value of the read commanded data checking whether the address exists; and
(e) when the logical address of the read commanded data exists as a result of the check, retrieving a physical address of the corresponding data field;
Address mapping table operating method of the data storage device further comprising a.
청구항 7에 있어서,
(f) 상기 읽기 명령된 논리 주소의 데이터가 1차 테이블의 세트에 존재하지 않는 경우, 세트 내의 세트 맵핑 필드의 nsid가 존재할 때까지 다음 세트를 확인하여, 상기 다음 세트의 위치 정보(nsid)에 의해서 동일한 논리 주소가 입력된 주소 관리 메모리 내의 데이터 필드가 존재하는 경우 해당 주소의 논리 주소의 물리 주소를 읽어 들이는 단계;
를 더 포함하는 데이터 저장장치의 주소 맵핑 테이블 운용 방법.
8. The method of claim 7,
(f) If the data of the read commanded logical address does not exist in the set of the primary table, the next set is checked until the nsid of the set mapping field in the set exists, and the location information (nsid) of the next set is reading the physical address of the logical address of the corresponding address when there is a data field in the address management memory to which the same logical address is input;
Address mapping table operating method of the data storage device further comprising a.
청구항 8에 있어서,
상기 (f) 단계는,
다음 세트의 위치 정보를 찾기 위한 과정으로서 수행되는 세트 맵핑 필드의 nsid 검색이, 세트 맵핑 필드에 nsid가 존재하지 않을 때까지 수행되는 데이터 저장장치의 주소 맵핑 테이블 운용 방법.
9. The method of claim 8,
The step (f) is,
A method of operating an address mapping table of a data storage device in which nsid search of a set mapping field performed as a process for finding the location information of the next set is performed until nsid does not exist in the set mapping field.
컴퓨터에 의해 수행될 때, 청구항 1 내지 청구항 9 중 어느 한 항에 의한 데이터 저장장치의 주소 맵핑 테이블 운용 방법을 수행하는 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록 매체.
A computer-readable recording medium in which a program for performing the method of operating an address mapping table of a data storage device according to any one of claims 1 to 9 when executed by a computer is recorded.
KR1020190106688A 2019-08-29 2019-08-29 Method for managing of memory address mapping table for data storage device KR102316271B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190106688A KR102316271B1 (en) 2019-08-29 2019-08-29 Method for managing of memory address mapping table for data storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190106688A KR102316271B1 (en) 2019-08-29 2019-08-29 Method for managing of memory address mapping table for data storage device

Publications (2)

Publication Number Publication Date
KR20210027625A KR20210027625A (en) 2021-03-11
KR102316271B1 true KR102316271B1 (en) 2021-10-22

Family

ID=75143069

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190106688A KR102316271B1 (en) 2019-08-29 2019-08-29 Method for managing of memory address mapping table for data storage device

Country Status (1)

Country Link
KR (1) KR102316271B1 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113312277B (en) * 2021-06-29 2024-06-25 合肥忆芯电子科技有限公司 Memory bank address mapping device and method and electronic equipment
CN114785396B (en) * 2022-03-09 2024-04-12 西安电子科技大学 Logic port configuration, lookup mapping and traffic management method, system and terminal
CN115455010B (en) * 2022-11-09 2023-02-28 以萨技术股份有限公司 Data processing method based on milvus database, electronic equipment and storage medium
CN117034855B (en) * 2023-09-28 2024-01-02 芯动微电子科技(武汉)有限公司 Verification method and platform of hash interleaving algorithm based on UVM

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101297442B1 (en) 2013-02-22 2013-08-16 서울과학기술대학교 산학협력단 Nand flash memory including demand-based flash translation layer considering spatial locality
KR101490327B1 (en) 2006-12-06 2015-02-05 퓨전-아이오, 인크. Apparatus, system and method for managing commands of solid-state storage using bank interleave
KR101739556B1 (en) 2010-11-15 2017-05-24 삼성전자주식회사 Data storage device, user device and data write method thereof
KR101936364B1 (en) 2017-08-09 2019-01-08 성균관대학교산학협력단 Memory management system using flash memory and method thereof

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102357863B1 (en) * 2014-12-15 2022-02-04 삼성전자주식회사 A memory access method and apparatus

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101490327B1 (en) 2006-12-06 2015-02-05 퓨전-아이오, 인크. Apparatus, system and method for managing commands of solid-state storage using bank interleave
KR101739556B1 (en) 2010-11-15 2017-05-24 삼성전자주식회사 Data storage device, user device and data write method thereof
KR101297442B1 (en) 2013-02-22 2013-08-16 서울과학기술대학교 산학협력단 Nand flash memory including demand-based flash translation layer considering spatial locality
KR101936364B1 (en) 2017-08-09 2019-01-08 성균관대학교산학협력단 Memory management system using flash memory and method thereof

Also Published As

Publication number Publication date
KR20210027625A (en) 2021-03-11

Similar Documents

Publication Publication Date Title
KR102316271B1 (en) Method for managing of memory address mapping table for data storage device
US10303596B2 (en) Read-write control method for memory, and corresponding memory and server
JP5524144B2 (en) Memory system having a key-value store system
US9489409B2 (en) Rollover strategies in a N-bit dictionary compressed column store
US20170124077A1 (en) Flash module provided with database operation unit, and storage device
US9772790B2 (en) Controller, flash memory apparatus, method for identifying data block stability, and method for storing data in flash memory apparatus
US11314689B2 (en) Method, apparatus, and computer program product for indexing a file
CN105612518A (en) Methods and systems for autonomous memory searching
US10198203B2 (en) Method of operating memory device using pseudo-random functions, memory device using the same and memory system including the device
US11449270B2 (en) Address translation method and system for KV storage device
JP5646775B2 (en) Memory system having a key-value store system
JP6258436B2 (en) Memory system local controller
KR102071072B1 (en) Method for managing of memory address mapping table for data storage device
KR20180135390A (en) Data journaling method for large solid state drive device
JP5833212B2 (en) Memory system having a key-value store system
US8214605B2 (en) Method for reading out data from a storage medium
CN115857811A (en) Data processing method and device, solid state disk and readable storage medium
CN115145954A (en) Data query method, data storage method and device
US10877698B2 (en) Semiconductor device for managing cold addresses of nonvolatile memory device
US20090055574A1 (en) NAND Flash Memory Device And Related Method Thereof
US10169250B2 (en) Method and apparatus method and apparatus for controlling access to a hash-based disk
JP6034467B2 (en) system
US6154792A (en) Method and computer program product for paging control using a reference structure including a reference bitmap
CN117891392A (en) Management method and system for compressed data of solid state disk
CN117785061A (en) Hardware data management system, related device and write command processing method

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant