KR102071072B1 - 데이터 저장장치의 주소 맵핑 테이블 운용 방법 - Google Patents

데이터 저장장치의 주소 맵핑 테이블 운용 방법 Download PDF

Info

Publication number
KR102071072B1
KR102071072B1 KR1020180047143A KR20180047143A KR102071072B1 KR 102071072 B1 KR102071072 B1 KR 102071072B1 KR 1020180047143 A KR1020180047143 A KR 1020180047143A KR 20180047143 A KR20180047143 A KR 20180047143A KR 102071072 B1 KR102071072 B1 KR 102071072B1
Authority
KR
South Korea
Prior art keywords
address
data
hash function
field
mapping table
Prior art date
Application number
KR1020180047143A
Other languages
English (en)
Other versions
KR20190123819A (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 동국대학교 산학협력단
Priority to KR1020180047143A priority Critical patent/KR102071072B1/ko
Publication of KR20190123819A publication Critical patent/KR20190123819A/ko
Application granted granted Critical
Publication of KR102071072B1 publication Critical patent/KR102071072B1/ko

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/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • 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

데이터 저장장치의 주소 맵핑 테이블 운용에 관한 컴퓨터 구현 방법(computer implemented method)으로서, (a) 주소 관리 메모리에 상기 주소 맵핑 테이블을 생성하는 단계; (b) 신규 데이터에 관한 쓰기 명령이 있는 경우, 상기 신규 데이터의 논리 주소 값에 제1 해시 함수를 적용한 결과값에 상응하는 상기 주소 관리 메모리 내의 해당 주소의 데이터 필드에 데이터가 존재하는지 여부를 확인하고, 데이터가 부존재하는 경우 상기 해당 주소의 데이터 필드에 상기 신규 데이터의 논리 주소 및 물리 주소를 저장하는 단계; (c) 상기 확인 결과에 따라 데이터가 기존재하는 경우 상기 주소 관리 메모리의 해당 주소의 값에 제2 해시 함수를 적용하되, 상기 제2 해시 함수를 적용한 결과값에 상응하는 상기 주소 관리 메모리 내의 해당 주소의 데이터 필드에 데이터의 존부를 확인하여, 데이터가 부존재하는 경우 상기 신규 데이터의 논리 주소 및 물리 주소를 저장하는 단계를 포함하는 주소 맵핑 테이블 운용 방법이 제공된다.

Description

데이터 저장장치의 주소 맵핑 테이블 운용 방법{METHOD FOR MANAGING OF MEMORY ADDRESS MAPPING TABLE FOR DATA STORAGE DEVICE}
본 발명은 SSD 플래시 메모리 등의 비휘발성 데이터 저장장치의 주소 맵핑 테이블의 검색 기술에 관한 것으로서, 보다 구체적으로는 상기 주소 맵핑 테이블을 통해서 데이터 저장장치에 저장된 데이터를 찾는 시간적 성능을 향상시키기 위해 2개의 해시 함수(Hash function)을 이용하여 운용하는 주소 관리 구조에 관한 것이다.
비휘발성 데이터 저장장치는 전원이 끊기더라도 저장된 데이터가 소실되지 않는 저장매체를 의미하며, 이에 관한 대표적인 예로서 SSD 플래시 메모리가 여기에 해당한다. SSD 플래시 메모리는 기본적으로 다이(Die), 블록(Block), 페이지(Page)로 구성되어 있다. 여기서, Page는 읽기/쓰기 동작의 기본 단위이고, 이러한 Page들이 모여 Block을 구성하며, 또한 Block들이 모여 Die를 구성한다. 이때, 다이(Die)는 단일 실리콘 기판으로 구현이 되는 물리적 단위를 나타낸다.
상술한 바와 같은 비휘발성 데이터 저장장치에 데이터를 저장할 때와 그 저장된 데이터를 검색할 때에는 주소 맵핑 테이블이 활용된다. 여기서, 주소 맵핑 테이블은 CPU 등의 프로세서가 데이터를 요청한 주소인 논리 주소(Logical address)와 실제 해당 저장매체에 데이터가 저장된 물리적 위치를 나타내는 물리 주소(physical address)을 연계하여 등록해둔 관리 테이블을 의미한다. 이러한 주소 맵핑 테이블은 별도의 메모리(예를 들어, DRAM 등)에 저장된다. 이에 따라 CPU는 논리 주소(Logical address)를 통하여 읽기/쓰기 동작을 요청하게 되며, 주소 맵핑 테이블을 확인하여 물리 주소와 매칭되는 주소로 접근하는 방식에 의한다. 이때, 주소 관리를 위한 기존 방식의 맵핑 테이블은 도 1과 같다.
현재의 많은 주소 맵핑 테이블에 관한 알고리즘들이 논리 주소와 물리 주소의 연결을 수행하기 위해 제안되어 왔는데, 이때 연결을 위한 알고리즘들은 통상 해시 함수라는 것을 이용한다. 해시 함수(Hash function)란 알고리즘을 수식을 이용하여 표현한 것으로서 입력 값을 연산하여 결과 값을 출력한다.
그러나 현재 이용되는 해시 함수는 주소 맵핑 테이블을 압축하여 작은 용량에 보다 많은 논리 주소와 물리 주소를 넣기 위한 관점에서 대부분 사용되고 있다. 이에 따라서 현재까지의 주소 맵핑 테이블들은 해시 함수를 주소 맵핑 테이블의 저장 공간을 효율적으로 사용하는데 활용된다는 점에서 장점을 가지고 있지만, 논리 주소와 물리 주소들 검색함에 있어 시간이 오래 걸리는 문제점이 있다. 즉, 대부분의 주소 맵핑 테이블에서의 현재까지의 검색 방식에 의하면, 0번째의 논리 주소로부터 1씩 증가시키며 원하는 값을 찾는 방식(Fully associate 방식)을 이용하고 있기 때문에, 데이터를 찾는데 걸리는 시간이 길어지는 것이 확인된다. 따라서, 하드웨어 설계 시 효율적으로 데이터를 찾을 수 있는 새로운 주소 관리 알고리즘을 채택할 필요가 있다.
본 발명은 데이터 저장장치에 저장된 데이터의 검색 과정에 주소 맵핑 테이블을 활용함에 있어서 논리 주소를 찾는 시간을 줄일 수 있는 주소 맵핑 테이블 운용 방법 및 이에 관한 알고리즘을 제공하기 위한 것이다.
본 발명의 일 측면에 따르면, 데이터 저장장치의 주소 맵핑 테이블 운용에 관한 컴퓨터 구현 방법(computer implemented method)으로서, (a) 주소 관리 메모리에 상기 주소 맵핑 테이블을 생성하는 단계; (b) 신규 데이터에 관한 쓰기 명령이 있는 경우, 상기 신규 데이터의 논리 주소 값에 제1 해시 함수를 적용한 결과값에 상응하는 상기 주소 관리 메모리 내의 해당 주소의 데이터 필드에 데이터가 존재하는지 여부를 확인하고, 데이터가 부존재하는 경우 상기 해당 주소의 데이터 필드에 상기 신규 데이터의 논리 주소 및 물리 주소를 저장하는 단계; (c) 상기 확인 결과에 따라 데이터가 기존재하는 경우 상기 주소 관리 메모리의 해당 주소의 값에 제2 해시 함수를 적용하되, 상기 제2 해시 함수를 적용한 결과값에 상응하는 상기 주소 관리 메모리 내의 해당 주소의 데이터 필드에 데이터의 존부를 확인하여, 데이터가 부존재하는 경우 상기 신규 데이터의 논리 주소 및 물리 주소를 저장하는 단계를 포함하는 주소 맵핑 테이블 운용 방법이 제공된다.
일 실시예에서, 상기 제1 해시 함수는 사전 지정된 기준값을 이용한 나머지 연산(Modulo operation) 함수이고, 상기 제2 해시 함수는 상기 주소 관리 메모리 내의 주소 값에 1을 증가시키는 +1 연산 함수일 수 있다.
일 실시예에서, 상기 (c) 단계에서, 상기 제2 해시 함수의 적용은, 상기 제2 해시 함수를 적용한 결과값에 상응하는 상기 주소 관리 메모리 내의 해당 주소의 데이터 필드에 데이터가 부존재할 때까지 반복 수행될 수 있다.
일 실시예에서, 상기 주소 맵핑 테이블은, 해당 데이터의 논리 주소를 저장하기 위한 논리 주소 필드, 해당 데이터의 물리 주소를 저장하기 위한 물리 주소 필드, 제1 속성 필드, 제2 속성 필드, 제3 속성 필드를 포함한다.
여기서, 상기 제1 속성 필드는, 상기 제1 해시 함수만을 적용하여 상기 주소 맵핑 테이블에 논리 주소 및 물리 주소가 맵핑 저장된 케이스와, 상기 제2 해시 함수를 적용하여 상기 주소 맵핑 테이블에 논리 주소 및 물리 주소가 맵핑 저장된 케이스를 구분하기 위한 이진 코드가 입력될 수 있다.
여기서, 상기 제2 속성 필드는, 상기 제2 해시 함수에 따른 +1 연산의 종점(終點)에 해당하는지 여부를 구분하기 위한 이진 코드가 입력될 수 있다.
여기서, 상기 제3 속성 필드는, 상기 주소 관리 메모리 내의 해당 주소의 데이터 필드에 데이터의 존부를 구분하기 위한 이진 코드가 입력될 수 있다.
일 실시예에서, (d) 데이터에 관한 읽기 명령이 있는 경우, 읽기 명령된 데이터의 논리 주소 값에 상기 제1 해시 함수를 적용한 결과값에 상응하는 상기 주소 관리 메모리 내의 해당 주소의 데이터 필드에 읽기 명령된 데이터의 논리 주소가 존재하는지를 확인하는 단계; (e) 상기 확인 결과, 상기 읽기 명령된 데이터의 논리 주소가 존재하는 경우, 해당 논리 주소와 맵핑된 물리 주소로부터 데이터를 읽어들이는 단계를 포함할 수 있다.
일 실시예에서, (e) 상기 확인 결과, 상기 읽기 명령된 데이터의 논리 주소가 존재하지 않는 경우, 상기 읽기 명령된 데이터의 해당 논리 주소와 동일 논리 주소가 입력된 논리 주소 필드를 포함하는 상기 주소 관리 메모리 내의 주소를 검색될 때까지, 상기 제2 해시 함수에 따른 +1 연산을 적용하여, 동일 논리 주소가 입력된 논리 주소 필드에 관한 상기 주소 관리 메모리 내의 주소가 존재하는 경우 해당 주소의 논리 주소와 맵핑된 물리 주소로부터 데이터를 읽어들이는 단계를 포함할 수 있다.
일 실시예에서, 상기 (e) 단계에서, 동일 논리 주소가 입력된 논리 주소 필드를 찾기 위한 과정으로서 수행되는 상기 제2 해시 함수에 따른 +1 연산을 통한 상기 주소 관리 메모리 내의 주소의 검색은, 상기 제2 속성 필드에 상기 +1 연산의 종점에 해당하는 이진 코드가 입력된 주소까지를 검색 종점으로 하여 수행될 수 있다.
본 발명의 다른 측면에 따르면, 상술한 주소 맵핑 테이블 운용 방법이 기록되며 컴퓨터로 읽을 수 있는 기록 매체가 제공된다.
본 발명의 실시예에 따른 주소 맵핑 테이블 운용 방법 및 그 알고리즘에 의하면, 데이터 저장장치에 저장된 데이터의 검색 과정에 주소 맵핑 테이블을 활용함에 있어서 논리 주소를 찾는 시간을 줄일 수 있고, 이에 따라 데이터 검색 시간을 최소화하면서도 보다 많은 양의 데이터를 처리할 수 있는 효과가 있다.
도 1은 종래 기술에 따른 주소 맵핑 테이블을 도시한 도면.
도 2는 본 발명의 실시예에 따른 주소 맵핑 테이블 운용 방법으로서 쓰기 명령시의 동작 흐름을 전반적으로 도시한 도면.
도 3 ~ 도 6은 도 2의 흐름도를 설명하기 위한 예시 도면들.
도 7은 본 발명의 실시예에 따른 주소 맵핑 테이블 운용 방법으로서 읽기 명령시의 동작 흐름을 전반적으로 도시한 도면.
도 8 및 도 9는 도 7의 흐름도를 설명하기 위한 예시 도면들.
본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 본 명세서의 설명 과정에서 이용되는 숫자(예를 들어, 제1, 제2 등)는 하나의 구성요소를 다른 구성요소와 구분하기 위한 식별기호에 불과하다.
또한, 명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하나 이상의 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 조합으로 구현될 수 있음을 의미한다.
앞서 [배경 기술]의 설명을 통해서 언급한 바와 같이, 기존의 주소 맵핑 테이블들은 논리 주소와 물리 주소들 검색함에 있어 시간이 오래 걸리는 문제점이 있었다. 이는 대부분의 주소 맵핑 테이블에서의 종래의 검색 방식에 의하면, 0번째의 논리 주소로부터 1씩 증가시키며 원하는 값을 찾는 방식(Fully associate 방식)을 이용하고 있기 때문이다.
따라서 본 발명의 실시예에서는 상술한 바와 같은 문제점을 해결하기 위하여 검색 시간 감소를 위해 크게 2가지 방법을 제안한다.
첫째로, 본 발명에서는, 해시함수(Hash function)로서 "나머지 연산(Modulo operation)"에 의한 제1 해시 함수와, 주소 맵핑 테이블이 저장되는 메모리(이하, 주소 관리 메모리라 명명함. 일반적으로 DRAM 등이 사용됨)의 "주소 값(Key) +1 연산"에 의한 제2 해시 함수, 즉, 2개 해시 함수(Hash function)를 사용한다.
예를 들어, CPU로부터 논리 주소 102의 데이터의 쓰기 명령이 들어왔다고 가정하고, 제1 해시 함수가 숫자 100을 이용하는 나머지 연산을 수행하는 함수라고 가정하였을 때, 논리 주소 102에 상기 나머지 연산을 수행하면 2라는 결과값을 출력된다. 이때 그 결과값 2에 상응하는 주소 관리 메모리 내의 주소(Key) 값에 공간이 비어 있는 경우라면, 그 주소에 해당 데이터의 논리 주소 및 물리 주소를 저장(기록)한다.
반면, 해당 주소 관리 메모리의 주소에 이미 다른 데이터가 존재하는 경우라면, 제2 해시 함수에 따른 +1 연산을 수행함으로써 그 주소(Key) 값을 1 증가시킨 주소에 공간이 비어 있는지를 확인하는 방식을 적용한다.
둘째로, 본 발명에서는, 제2 해시 함수를 사용함에 있어서, 주소 맵핑 테이블의 논리 주소 필드와 물리 주소 필드 이외에도, 제1 속성 필드, 제2 속성 필드, 제3 속성 필드를 추가로 사용한다.
여기서, 상기 제1 속성 필드는, 상기 제1 해시 함수만을 적용하여 상기 주소 맵핑 테이블에 논리 주소 및 물리 주소가 맵핑 저장된 케이스와, 상기 제2 해시 함수를 적용하여 상기 주소 맵핑 테이블에 논리 주소 및 물리 주소가 맵핑 저장된 케이스를 구분하기 위한 이진 코드가 입력(기록)될 수 있다.
이하에서는 설명의 편의를 위해, 제1 속성 필드를 우선순위(P : Primary) 필드라 명명한다. 본 명세서에 첨부된 도면들을 참조할 때, 우선순위(P) 필드에는, 제2 해시 함수에 따른 +1 연산은 사용되지 않고 제1 해시 함수에 따른 나머지 연산만을 이용하여 논리 주소/물리 주소를 저장한 케이스에는 이진 코드 1을 기록하고, 제2 해시 함수에 따른 +1 연산까지를 이용하여 논리 주소/ 물리 주소를 저장한 케이스에는 이진 코드 0을 기록하는 예를 가정하고 있다.
또한 여기서, 상기 제2 속성 필드는, 상기 제2 해시 함수에 따른 +1 연산의 종점(終點)(즉, 끝나는 시점)에 해당하는지 여부를 구분하기 위한 이진 코드가 입력(기록)될 수 있다. 이하에서는 설명의 편의를 위해, 제2 속성 필드를 끝점(F : Final) 필드라 명명한다. 본 명세서에 첨부된 도면들을 참조할 때, 끝점(F) 필드에는, 상기 제2 해시 함수를 적용하였을 때에 기준하여, +1 연산이 적용된 종점에 해당하지 않는 경우 이진 코드 0으로 기록하고, 종점에 해당하는 경우 이진 코드 1을 기록할 수 있다.
또한 여기서, 상기 제3 속성 필드는, 상기 주소 관리 메모리 내의 해당 주소의 데이터 필드에 데이터의 존부를 구분하기 위한 이진 코드가 입력될 수 있다. 이하에서는 설명의 편의를 위해, 제3 속성 필드를 파일의 존재 여부(E : Empty) 필드로 명명한다. 본 명세서에 첨부된 도면들을 참조할 때, 파일의 존재 여부(E) 필드에는 데이터가 존재하면 이진 코드 0을, 데이터가 부존재하면 이진코드 1을 입력(기록)함으로써 데이터의 유무 정보를 제시하여 준다.
이하에서는 앞선 2가지 방법이 적용된 본 발명의 실시예에 따른 주소 맵핑 테이블 운용 방법에 관하여 첨부된 도면들을 참조하여 보다 상세히 설명하기로 한다.
먼저, 데이터 쓰기 명령에 따른 주소 맵핑 테이블 운용 방법에 관하여 도 2 ~ 도 6을 참조하여 설명한다. 여기서, 도 2는 본 발명의 실시예에 따른 주소 맵핑 테이블 운용 방법으로서 쓰기 명령시의 동작 흐름을 전반적으로 도시한 도면이고, 도 3 ~ 도 6은 도 2의 흐름도를 설명하기 위한 예시 도면들이다.
도 2를 참조할 때, 본 발명의 실시예에 따른 주소 맵핑 테이블 운용 방법은, 신규 데이터에 관한 쓰기 명령이 있는 경우, 상기 신규 데이터의 논리 주소 값에 제1 해시 함수를 적용한 결과값에 상응하는 상기 주소 관리 메모리 내의 해당 주소의 데이터 필드에 데이터가 존재하는지 여부를 확인하고[도 2의 S210 및 S220 참조], 데이터가 부존재하는 경우 상기 해당 주소의 데이터 필드에 상기 신규 데이터의 논리 주소 및 물리 주소를 저장한다[도 2의 S240 참조].
반대로, 상기 확인 결과에 따라 데이터가 기존재하는 경우 상기 주소 관리 메모리의 해당 주소의 값에 제2 해시 함수를 적용하되, 상기 제2 해시 함수를 적용한 결과값에 상응하는 상기 주소 관리 메모리 내의 해당 주소의 데이터 필드에 데이터의 존부를 확인하여, 데이터가 부 존재하는 경우 상기 신규 데이터의 논리 주소 및 물리 주소를 저장한다[도 2의 S230 및 S240 참조]. 이때, 상기 제2 해시 함수의 적용은, 상기 제2 해시 함수를 적용한 결과값에 상응하는 상기 주소 관리 메모리 내의 해당 주소의 데이터 필드에 데이터가 부존재할 때까지 반복 수행될 수 있다.
이에 관하여, 도 3 ~ 도 6의 일 예시를 이용하여 보충 설명을 하면 다음과 같다.
도 3의 (A)의 주소 맵핑 테이블을 시작으로 하여, CPU에서 논리 주소 102라는 Data 쓰기의 신규 명령이 들어왔을 때를 가정하고, 예시에서의 나머지(Modulo) 연산은 100으로 나눈 후의 나머지 값으로 가정한다. 그리고 설명의 편의를 위해 주소 맵핑 테이블이 저장되는 주소 관리 메모리는 DRAM인 것으로 가정한다.
[쓰기 동작 시, DRAM의 주소( Key )에 Data가 비어 있는 경우]
먼저, 쓰기 명령된 논리 주소 102에 100으로 나눈 나머지 연산의 결과값으로서 2가 도출되게 되므로, 그 2에 해당하는 DRAM 주소(Key) 값을 확인한다. 도 3의 (A)를 참조할 때, DRAM의 주소(Key)가 2에서 Data의 존재여부(E)의 값이 1인 것을 확인되므로(즉, 해당 주소에 데이터가 부 존재하는 것(비어 있음)이 확인되므로), DRAM 주소(Key) 2에 해당하는 데이터 필드에 논리 주소와 물리 주소를 저장한다. 또한, 우선순위(P), 끝점(F), Data의 존재 여부(E)의 값을 이진 코드 0로 전환하여 준다. 이에 따라 Data 쓰기가 완료된 후, 도 3의 (B)와 같은 주소 맵핑 테이블이 성립된다.
[쓰기 동작 시, DRAM의 주소( Key )에 Data가 존재하는 경우]
도 4의 (A)와 같이 주소 맵핑 테이블이 구성되어 있는 시점에 논리 주소 202라는 Data 쓰기의 명령이 들어 왔을 때를 가정하면, 우선, 논리 주소 202를 나머지 연산(Modulo)을 통하여 2의 DRAM의 주소(Key)값을 산출한다. 이때, 2의 DRAM의 주소(Key)에는 현재 Data가 존재하므로(즉, Data의 존재여부(E)가 0 값을 가지고 있으므로), 현재의 Key 2에는 새로 들어온 Data를 저장하지 않고, 제2 해시함수에 따른 +1 연산을 수행하여 해당 Key + 1을 통하여 Key 3의 DRAM의 주소(Key)값을 산출한다.
DRAM의 주소(Key) 3이 비어 있는 것을 확인 시, 논리 주소와 물리 주소를 저장하고 DRAM 주소(Key) 3에 끝점(F)을 이진 코드 1로, Data의 존재여부(E) 값을 이진 코드 0으로 바꾸어 준다. 이때, DRAM 주소(Key) 3의 우선순위(P) 값은 제2 해시 함수에 따른 +1 연산이 적용된 케이스이므로 이진 코드 0이 기록된다. 또한 이때, DRAM의 주소(Key) 2의 끝점(F)의 값은 종전 1의 값에서 0의 값으로 치환하여 준다. 이제, +1 연산의 종점은 DRAM 주소(Key) 3이 되었기 때문이다. 이러한 Data 쓰기 완료 후, 도 4의 (B)와 같은 주소 맵핑 테이블이 성립된다.
[쓰기 동작 시, DRAM의 주소( Key )에 우선순위(P) 값이 1이 아닌 Data가 존재하는 경우]
도 5의 (A)와 같이 주소 맵핑 테이블이 구성되어 있는 시점에 논리 주소 103의 Data 쓰기의 명령이 들어 왔을 때를 가정하면, 제1 해시 함수에 따른 나머지 연산에 따라 3의 DRAM의 주소(Key)값을 산출한다. 그 후, DRAM의 주소(Key) 3의 Data의 존재여부(E) 값을 확인한다. 이때, 존재여부(E)의 값이 0 이므로 데이터가 존재하고, 우선순위(P) 값을 확인하였을 때 우선순위(P) 값이 0 이므로, 이 Data는 우선순위(P) 값이 1인 Data에게 자리를 내어주어야 한다. 이에 따라, 논리 주소 103의 Data 쓰기 명령을 이곳에 실시한 후, 우선순위(P), 끝점(F)을 1, Data의 존재여부(E) 값을 모두 0으로 체크한다. 기존에 있던 Data는 존재여부(E)의 값이 1인 주소로 찾아가서 도 5의 (B)외 같이 쓰기 동작을 수행한다.
[쓰기 동작 시, 이전에 저장한 논리 주소의 값을 다시 덮어쓰는 경우]
도 6의 (A)와 같이 주소 맵핑 테이블이 구성되어 있는 시점에, CUP에서 논리 주소 202라는 Data 쓰기의 명령이 다시 요청되었을 때를 가정하면, 논리 주소 202번지가 저장된 곳을 찾아 새로운 Data를 저장하여야 한다.
즉, 논리 주소 202의 쓰기 명령이 요청 된다면, 제1 해시 함수에 따른 나머지 연산을 통해 DRAM의 주소(Key)값이 2인 곳을 찾는다. 이때, DRAM의 주소(Key)값이 2인 곳의 Data의 존재여부(E)값이 0이므로 Data가 존재하는데, 저장된 논리 주소 값과 쓰기가 요청된 논리 주소 값이 상호간 다르므로, 제2 해시 함수에 따른 Key + 1 연산을 이용하여 다음 번지의 값을 확인한다. DRAM의 주소(Key)값이 3인 곳의 Data는 우선순위 값(P)이 1인 것을 판단 후, 논리 주소 값의 비교 과정을 수행함이 없이 바로 다음 주소로 넘어간다. 다시 Key + 1을 수행하여 다음 번지의 값을 확인하고, 논리 주소 값과 쓰기가 요청된 논리 주소 값이 같게 되는 DRAM의 주소에 쓰기 동작(즉, 덮어쓰기 동작)을 실행한다. 그 결과는 도 6의 (B)와 같다.
다음으로, 데이터 읽기 명령에 따른 주소 맵핑 테이블 운용 방법에 관하여 도 7 ~ 도 9를 참조하여 설명한다. 여기서, 도 7은 본 발명의 실시예에 따른 주소 맵핑 테이블 운용 방법으로서 읽기 명령시의 동작 흐름을 전반적으로 도시한 도면이고, 도 8및 도 9는 도 7의 흐름도를 설명하기 위한 예시 도면들이다.
도 7을 참조할 때, 본 발명의 실시예에 따른 주소 맵핑 테이블 운용 방법은, 데이터에 관한 읽기 명령이 있는 경우, 읽기 명령된 데이터의 논리 주소 값에 상기 제1 해시 함수를 적용한 결과값에 상응하는 상기 주소 관리 메모리 내의 해당 주소의 데이터 필드에 읽기 명령된 데이터의 논리 주소가 존재하는지를 확인한다[도 7의 S510 및 S520 참조]. 상기 확인 결과, 상기 읽기 명령된 데이터의 논리 주소가 존재하는 경우, 해당 논리 주소와 맵핑된 물리 주소로부터 데이터를 읽어들인다[도 7의 S540 참조].
반면, 상기 확인 결과, 상기 읽기 명령된 데이터의 논리 주소가 존재하지 않는 경우, 상기 읽기 명령된 데이터의 해당 논리 주소와 동일 논리 주소가 입력된 논리 주소 필드를 포함하는 상기 주소 관리 메모리 내의 주소를 검색될 때까지, 상기 제2 해시 함수에 따른 +1 연산을 적용하여, 동일 논리 주소가 입력된 논리 주소 필드에 관한 상기 주소 관리 메모리 내의 주소가 존재하는 경우 해당 주소의 논리 주소와 맵핑된 물리 주소로부터 데이터를 읽어들인다[도 7의 S530 및 S540 참조]. 이때, 동일 논리 주소가 입력된 논리 주소 필드를 찾기 위한 과정으로서 수행되는 상기 제2 해시 함수에 따른 +1 연산을 통한 상기 주소 관리 메모리 내의 주소의 검색은, 상기 제2 속성 필드에 상기 +1 연산의 종점에 해당하는 이진 코드가 입력된 주소까지를 검색 종점으로 하여 수행될 수 있다.
이에 관하여, 도 8 및 도 9의 일 예시를 이용하여 보충 설명을 하면 다음과 같다.
[읽기 동작 시, DRAM의 주소( Key )에 해당 논리 주소가 존재하는 경우]
도 8과 같은 주소 맵핑 테이블이 저장되어 있다고 가정한다.
이때, CPU에서 논리주소(Logical address) 102의 Data 읽기 명령을 내렸을 때, 나머지 연산을 통하여 DRAM의 주소(Key)값 2를 산출한다. 이때, 해당 DRAM의 주소값 Key 2에서의 DRAM에 저장되어 있는 논리 주소와 읽기를 명령한 논리 주소를 비교하여 같으면 Data 읽기 명령을 수행한다.
[읽기 동작 시, DRAM에 해당 논리 주소가 존재하지 않는 경우]
도 9와 같은 주소 맵핑 테이블이 저장되어 있다고 가정할 때, CPU에서 논리 주소 301의 Data 읽기 명령을 내렸을 때의 동작을 살펴본다.
우선, 제1 해시 함수에 따른 나머지 연산을 통해 DRAM의 주소(Key) 값이 1 임을 산출해 낸다. 이때, 해당 DRAM의 주소(Key) 1에서의 DRAM에 저장되어 있는 논리 주소와 읽기를 명령한 논리 주소를 비교한 후 다르므로 알맞은 Data를 찾아야 한다. 여기서, 만약 끝점(F)이 1이라면 현재 나머지 연산 값에 해당하는 Data가 없다는 의미이므로, 읽기 동작을 종료한다.
[읽기 동작 시, DRAM의 주소( Key )의 해당 논리 주소가 존재하지 않는 경우]
도 9와 같은 주소 맵핑 테이블이 저장되어 있다고 가정할 때, CPU에서 논리 주소 202의 Data 읽기 명령을 내렸을 때의 동작을 살펴본다.
우선, 제1 해시 함수에 따른 나머지 연산을 통해 DRAM의 주소(Key) 값이 2 임을 산출해 낸다. 이때, 해당 DRAM의 주소(Key) 2에서의 DRAM에 저장되어 있는 논리 주소와 읽기를 명령한 논리 주소를 비교한 후 다르므로, 다른 Data를 찾아야 한다. 현재 DRAM의 주소(Key) 2에 해당하는 Data의 끝점(F)이 0이므로 나머지 연산 값이 같은 다른 Data가 DRAM에 존재함을 의미한다.
해시함수(Hash function)인 Key + 1을 이용하여 DRAM 주소(Key)값을 증가시켜 Data를 스캔한다. 다음 번지인 DRAM의 주소(Key) 3에서의 논리 주소와 읽기 명령을 내린 논리 주소 값이 서로 다르므로 Data를 읽지 않고 DRAM의 다음 주소로 넘어간다. 다음 번지인 DRAM의 주소(Key) 4에서의 논리 주소와 읽기 명령을 내린 논리 주소의 값이 같으므로 읽기 동작을 수행한다.
상술한 본 발명의 실시예에 따른 주소 맵핑 테이블 운용 방법은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로서 구현되는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체로는 컴퓨터 시스템에 의하여 해독될 수 있는 데이터가 저장된 모든 종류의 기록 매체를 포함한다. 예를 들어, ROM(Read Only Memory), RAM(Random Access Memory), 자기 테이프, 자기 디스크, 플래쉬 메모리, 광 데이터 저장장치 등이 있을 수 있다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 통신망으로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 읽을 수 있는 코드로서 저장되고 실행될 수 있다.
이상에서는 본 발명의 실시예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 쉽게 이해할 수 있을 것이다.

Claims (8)

  1. 데이터 저장장치의 주소 맵핑 테이블 운용에 관한 컴퓨터 구현 방법(computer implemented method)으로서,
    (a) 주소 관리 메모리에 상기 주소 맵핑 테이블을 생성하는 단계;
    (b) 신규 데이터에 관한 쓰기 명령이 있는 경우, 상기 신규 데이터의 논리 주소 값에 제1 해시 함수를 적용한 결과값에 상응하는 상기 주소 관리 메모리 내의 해당 주소의 데이터 필드에 데이터가 존재하는지 여부를 확인하고, 데이터가 부존재하는 경우 상기 해당 주소의 데이터 필드에 상기 신규 데이터의 논리 주소 및 물리 주소를 저장하는 단계;
    (c) 상기 확인 결과에 따라 데이터가 기존재하는 경우 상기 주소 관리 메모리의 해당 주소의 값에 제2 해시 함수를 적용하되, 상기 제2 해시 함수를 적용한 결과값에 상응하는 상기 주소 관리 메모리 내의 해당 주소의 데이터 필드에 데이터의 존부를 확인하여, 데이터가 부존재하는 경우 상기 신규 데이터의 논리 주소 및 물리 주소를 저장하는 단계;를 포함하고,
    상기 제1 해시 함수는, 사전 지정된 기준값을 이용한 나머지 연산(Modulo operation) 함수이고,
    상기 제2 해시 함수는, 상기 주소 관리 메모리 내의 주소 값에 1을 증가시키는 +1 연산 함수이고,
    상기 (c) 단계에서, 상기 제2 해시 함수의 적용은, 상기 제2 해시 함수를 적용한 결과값에 상응하는 상기 주소 관리 메모리 내의 해당 주소의 데이터 필드에 데이터가 부존재할 때까지 반복 수행되고,
    상기 주소 맵핑 테이블은, 해당 데이터의 논리 주소를 저장하기 위한 논리 주소 필드, 해당 데이터의 물리 주소를 저장하기 위한 물리 주소 필드, 제1 속성 필드, 제2 속성 필드, 제3 속성 필드를 포함하고,
    상기 제1 속성 필드는, 상기 제1 해시 함수만을 적용하여 상기 주소 맵핑 테이블에 논리 주소 및 물리 주소가 맵핑 저장된 케이스와, 상기 제2 해시 함수를 적용하여 상기 주소 맵핑 테이블에 논리 주소 및 물리 주소가 맵핑 저장된 케이스를 구분하기 위한 이진 코드가 입력되고,
    상기 제2 속성 필드는, 상기 제2 해시 함수에 따른 +1 연산의 종점(終點)에 해당하는지 여부를 구분하기 위한 이진 코드가 입력되고,
    상기 제3 속성 필드는, 상기 주소 관리 메모리 내의 해당 주소의 데이터 필드에 데이터의 존부를 구분하기 위한 이진 코드가 입력되는 주소 맵핑 테이블 운용 방법.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 제1항에 있어서,
    (d) 데이터에 관한 읽기 명령이 있는 경우, 읽기 명령된 데이터의 논리 주소 값에 상기 제1 해시 함수를 적용한 결과값에 상응하는 상기 주소 관리 메모리 내의 해당 주소의 데이터 필드에 읽기 명령된 데이터의 논리 주소가 존재하는지를 확인하는 단계;
    (e) 상기 확인 결과, 상기 읽기 명령된 데이터의 논리 주소가 존재하는 경우, 해당 논리 주소와 맵핑된 물리 주소로부터 데이터를 읽어들이는 단계
    를 포함하는 주소 맵핑 테이블 운용 방법.
  6. 제5항에 있어서,
    (e) 상기 확인 결과, 상기 읽기 명령된 데이터의 논리 주소가 존재하지 않는 경우, 상기 읽기 명령된 데이터의 해당 논리 주소와 동일 논리 주소가 입력된 논리 주소 필드를 포함하는 상기 주소 관리 메모리 내의 주소가 검색될 때까지, 상기 제2 해시 함수에 따른 +1 연산을 적용하여, 동일 논리 주소가 입력된 논리 주소 필드에 관한 상기 주소 관리 메모리 내의 주소가 존재하는 경우 해당 주소의 논리 주소와 맵핑된 물리 주소로부터 데이터를 읽어들이는 단계
    를 포함하는 주소 맵핑 테이블 운용 방법.
  7. 제6항에 있어서,
    상기 (e) 단계에서, 동일 논리 주소가 입력된 논리 주소 필드를 찾기 위한 과정으로서 수행되는 상기 제2 해시 함수에 따른 +1 연산을 통한 상기 주소 관리 메모리 내의 주소의 검색은, 상기 제2 속성 필드에 상기 +1 연산의 종점에 해당하는 이진 코드가 입력된 주소까지를 검색 종점으로 하여 수행되는, 주소 맵핑 테이블 운용 방법.
  8. 제1항, 제5항 내지 제7항 중 어느 한 항에 따른 주소 맵핑 테이블 운용 방법이 기록된 컴퓨터로 읽을 수 있는 기록 매체.
KR1020180047143A 2018-04-24 2018-04-24 데이터 저장장치의 주소 맵핑 테이블 운용 방법 KR102071072B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180047143A KR102071072B1 (ko) 2018-04-24 2018-04-24 데이터 저장장치의 주소 맵핑 테이블 운용 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180047143A KR102071072B1 (ko) 2018-04-24 2018-04-24 데이터 저장장치의 주소 맵핑 테이블 운용 방법

Publications (2)

Publication Number Publication Date
KR20190123819A KR20190123819A (ko) 2019-11-04
KR102071072B1 true KR102071072B1 (ko) 2020-03-03

Family

ID=68578459

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180047143A KR102071072B1 (ko) 2018-04-24 2018-04-24 데이터 저장장치의 주소 맵핑 테이블 운용 방법

Country Status (1)

Country Link
KR (1) KR102071072B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113312277A (zh) * 2021-06-29 2021-08-27 合肥忆芯电子科技有限公司 存储体地址映射装置、方法及电子设备
CN114253472B (zh) * 2021-11-29 2023-09-22 郑州云海信息技术有限公司 一种元数据管理方法、设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101297442B1 (ko) * 2013-02-22 2013-08-16 서울과학기술대학교 산학협력단 공간 지역성을 고려한 요구 기반 플래시 메모리 변환 계층을 포함하는 낸드 플래시 메모리 시스템

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101297442B1 (ko) * 2013-02-22 2013-08-16 서울과학기술대학교 산학협력단 공간 지역성을 고려한 요구 기반 플래시 메모리 변환 계층을 포함하는 낸드 플래시 메모리 시스템

Also Published As

Publication number Publication date
KR20190123819A (ko) 2019-11-04

Similar Documents

Publication Publication Date Title
US10303596B2 (en) Read-write control method for memory, and corresponding memory and server
US7461233B2 (en) Method for identifying data characteristics for flash memory
US8751763B1 (en) Low-overhead deduplication within a block-based data storage
US9851917B2 (en) Method for de-duplicating data and apparatus therefor
KR102564170B1 (ko) 데이터 객체 저장 방법, 장치, 및 이를 이용한 컴퓨터 프로그램이 저장되는 컴퓨터 판독가능한 저장 매체
US20150363328A1 (en) Methods and apparatus for data processing
US10565125B2 (en) Virtual block addresses
US9032183B2 (en) Method and apparatus for content derived data placement in memory
CN104866434A (zh) 面向多应用的数据存储系统和数据存储、调用方法
US10353820B2 (en) Low-overhead index for a flash cache
US9164704B2 (en) Semiconductor storage device for handling write to nonvolatile memories with data smaller than a threshold
KR102316271B1 (ko) 데이터 저장장치의 주소 맵핑 테이블 운용 방법
US20190220443A1 (en) Method, apparatus, and computer program product for indexing a file
US20150169570A1 (en) Method and device for managing data
CN110765076A (zh) 数据存储方法、装置、电子设备及存储介质
CN107135662A (zh) 一种差异数据备份方法、存储系统和差异数据备份装置
KR102071072B1 (ko) 데이터 저장장치의 주소 맵핑 테이블 운용 방법
US20170083537A1 (en) Mapping logical identifiers using multiple identifier spaces
JP2007220107A (ja) 不揮発性メモリのマッピング情報管理装置及び方法
JP5646775B2 (ja) key−valueストア方式を有するメモリシステム
CN113157600A (zh) 一种叠瓦式硬盘的空间分配方法、文件存储系统及服务器
JP6258436B2 (ja) メモリシステムのローカルコントローラ
CN115437579B (zh) 一种元数据管理方法、装置、计算机设备及可读存储介质
CN107967306B (zh) 一种存储系统中关联块的快速挖掘方法
JP2015028815A (ja) key−valueストア方式を有するメモリシステム

Legal Events

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