KR101242195B1 - 페이지의 물리적 저장 위치의 변경이 가능한 스토리지 시스템 및 상기 스토리지 시스템의 동작 방법 - Google Patents

페이지의 물리적 저장 위치의 변경이 가능한 스토리지 시스템 및 상기 스토리지 시스템의 동작 방법 Download PDF

Info

Publication number
KR101242195B1
KR101242195B1 KR1020110017244A KR20110017244A KR101242195B1 KR 101242195 B1 KR101242195 B1 KR 101242195B1 KR 1020110017244 A KR1020110017244 A KR 1020110017244A KR 20110017244 A KR20110017244 A KR 20110017244A KR 101242195 B1 KR101242195 B1 KR 101242195B1
Authority
KR
South Korea
Prior art keywords
candidate
pages
conversion
host
address
Prior art date
Application number
KR1020110017244A
Other languages
English (en)
Other versions
KR20120097801A (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 KR1020110017244A priority Critical patent/KR101242195B1/ko
Publication of KR20120097801A publication Critical patent/KR20120097801A/ko
Application granted granted Critical
Publication of KR101242195B1 publication Critical patent/KR101242195B1/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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30101Special purpose registers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

페이지의 물리적 저장 위치의 변경이 가능한 스토리지 시스템 및 상기 스토리지 시스템의 동작 방법이 제공된다. 스토리지 시스템은 호스트에 의해 인식되는 페이지들의 논리적 주소와 물리적 주소와의 관계를 정의하는 복수의 후보 변환 테이블 중 어느 하나를 이용하여 대상 페이지의 물리적 주소를 결정할 수 있다. 스토리지 시스템은 호스트에 의해 인식되는 페이지들의 논리적 주소와 물리적 주소와의 관계를 정의하는 변환 테이블을 수정함으로써 플래시 메모리에서 데이터가 저장되는 위치를 조정할 수 있다.

Description

페이지의 물리적 저장 위치의 변경이 가능한 스토리지 시스템 및 상기 스토리지 시스템의 동작 방법{STORAGE SYSTEM FOR CHANGING PHYSICAL STORAGING ADDRESS OF PAGE AND OPERATING METHOD THEREOF}
본 발명은 스토리지 시스템 및 스토리지 시스템의 동작 방법에 관한 것이다.
NAND 플래시 메모리 시스템은 페이지 단위로 데이터를 저장한다. 그리고 공정 미세화에 따른 프로그램 장애(program disturbance) 등을 고려하여 제조사가 부여한 규칙에 따라 블록 내의 페이지의 기록 순서가 결정된다. 즉, 사용자가 입력한 페이지의 주소(즉, 논리적 주소)와 실제로 데이터가 저장되는 페이지의 주소(즉, 물리적 주소)간에 차이가 존재한다. 그리고 논리적 주소와 물리적 주소와의 매핑 관계는 제조사가 결정하며, 사용자는 매핑 관계를 알지 못할 뿐 아니라 조정할 수도 없다.
본 발명의 실시예들은 페이지의 물리적 저장 위치의 변경이 가능한 스토리지 시스템 및 상기 스토리지 시스템의 동작 방법을 제공한다.
본 발명의 일 실시예예 따른 스토리지 시스템은 페이지들로서 복수의 메모리 셀들을 포함하는 메모리 셀 어레이; 호스트에 의해 인식되는 상기 페이지들의 논리적 주소들과 상기 페이지들의 물리적 주소들 사이의 관계를 정의하는 서로 다른 복수의 후보 변환 테이블들을 포함하는 변환부; 및 상기 호스트가 접근하고자 하는 대상 블록에 있는 대상 페이지의 주소를 생성하는 입/출력 컨트롤러를 포함하고, 상기 변환부는 상기 복수의 후보 변환 테이블 중 어느 하나를 변환 테이블로 선택하고 선택된 상기 변환 테이블을 이용하여 상기 대상 페이지의 주소에 대응하는 상기 대상 페이지의 물리적 주소를 추출하고, 행(row) 디코더를 경유하여 상기 메모리 셀 어레이로 상기 대상 페이지의 물리적 주소를 제공한다.
상기 페이지들에 대한 쓰기 동작이 페어드 페이지(paired page) 구조에 따라 수행되는 경우, 상기 변환 테이블에서 상기 페이지들의 논리적 주소들과 상기 페이지들의 물리적 주소들 사이의 관계는 상기 페어드 페이지 구조를 기초로 정의될 수 있다.
상기 변환부는 상기 호스트로부터 상기 복수의 후보 변환 테이블들 중 어느 하나를 선택하는 명령을 수신하고, 상기 명령에 기초하여 상기 복수의 후보 변환 테이블들 중 어느 하나를 상기 변환 테이블로 선택할 수 있다.
상기 변환부는 상기 호스트로부터 상기 변환 테이블을 수정하는 명령을 수신하고, 상기 명령에 기초하여 상기 변환 테이블을 수정할 수 있다.
상기 변환부는 상기 서로 다른 복수의 후보 변환 테이블들 중 둘 이상의 후보 변환 테이블들을 선택하고, 상기 둘 이상의 후보 변환 테이블들은 서로 다른 블록들에 적용될 수 있다.
상기 스토리지 시스템은 상기 변환부와 연결되고, 최근에 접근된 순서에 따라 해당 블록들에 대한 데이터를 캐싱하는 캐시 레지스터(cache register)를 더 포함할 수 있다.
본 발명의 다른 실시예에 따른 스토리지 시스템은 페이지들로서 복수의 메모리 셀들을 포함하는 메모리 셀 어레이; 미리 설정된 디폴트 변환 테이블과 구별되고, 호스트에 의해 인식되는 상기 페이지들의 논리적 주소들과 상기 페이지들의 물리적 주소들 사이의 관계를 정의하는 프로그램 가능한 변환 테이블을 포함하는 변환부; 및 상기 호스트가 접근하고자 하는 대상 블록에 있는 대상 페이지의 주소를 생성하는 입/출력 컨트롤러를 포함하고, 상기 변환부는 상기 프로그램 가능한 변환 테이블을 이용하여 상기 대상 페이지의 주소에 대응하는 상기 대상 페이지의 물리적 주소를 추출하고, 행 디코더를 경유하여 상기 메모리 셀 어레이로 상기 대상 페이지의 물리적 주소를 제공한다.
상기 페이지들에 대한 쓰기 동작이 페어드 페이지(paired page) 구조에 따라 수행되는 경우, 상기 프로그램 가능한 변환 테이블에서 상기 페이지들의 논리적 주소들과 상기 페이지들의 물리적 주소들 사이의 관계는 상기 페어드 페이지 구조를 기초로 정의될 수 있다.
상기 변환부는 상기 호스트로부터 상기 변환 테이블을 수정하는 명령을 수신하고, 상기 명령에 기초하여 상기 변환 테이블을 수정할 수 있다.
상기 변환부는 미리 프로그램된 서로 다른 복수의 후보 변환 테이블들 중 어느 하나를 상기 변환 테이블로 선택할 수 있다.
상기 변환부는 상기 호스트로부터 상기 복수의 후보 변환 테이블들 중 어느 하나를 선택하는 명령을 수신하고, 상기 명령에 기초하여 상기 복수의 후보 변환 테이블들 중 어느 하나를 상기 변환 테이블로 선택하는 스토리지 시스템.
상기 변환부는 미리 프로그램된 서로 다른 복수의 후보 변환 테이블들 중 둘 이상의 후보 변환 테이블들을 선택하고, 상기 둘 이상의 후보 변환 테이블들은 서로 다른 블록들에 적용될 수 있다.
상기 스토리지 시스템은 최근에 접근된 순서에 따라 해당 블록들에 대한 데이터를 캐싱하는 캐시 레지스터를 더 포함할 수 있다.
본 발명의 일 실시예에 따른 스토리지 시스템의 동작 방법은 호스트가 접근하고자 하는 대상 블록에 있는 대상 페이지의 주소를 생성하는 단계; 상기 호스트에 의해 인식되는 메모리 셀 어레이의 페이지들의 논리적 주소들과 상기 페이지들의 물리적 주소들 사이의 관계를 정의하는 서로 다른 복수의 후보 변환 테이블들 중 어느 하나를 변환 테이블로 선택하는 단계; 상기 선택된 변환 테이블을 이용하여 상기 대상 페이지의 주소에 대응하는 상기 대상 페이지의 물리적 주소를 추출하는 단계; 및 행 디코더를 경유하여 메모리 셀 어레이로 상기 대상 페이지의 물리적 주소를 제공하는 단계를 포함한다.
상기 복수의 후보 변환 테이블들 중 어느 하나를 변환 테이블로 선택하는 단계는 상기 페이지들에 대한 쓰기 동작이 페어드 페이지 구조에 따라 수행되는 경우, 상기 페어드 페이지 구조를 기초로 상기 페이지들의 논리적 주소들과 상기 페이지들의 물리적 주소들 사이의 관계를 정의하는 후보 변환 테이블들 중 어느 하나를 변환 테이블로 선택하는 단계를 포함할 수 있다.
상기 복수의 후보 변환 테이블들 중 어느 하나를 변환 테이블로 선택하는 단계는 상기 호스트로부터 상기 복수의 후보 변환 테이블들 중 어느 하나를 선택하는 명령을 수신하고, 상기 명령에 기초하여 상기 복수의 후보 변환 테이블들 중 어느 하나를 상기 변환 테이블로 선택하는 단계를 포함할 수 있다.
상기 스토리지 시스템의 동작 방법은 상기 호스트로부터 상기 변환 테이블을 수정하는 명령을 수신하고, 상기 명령에 기초하여 상기 변환 테이블을 수정하는 단계를 더 포함할 수 있다.
상기 복수의 후보 변환 테이블들 중 어느 하나를 변환 테이블로 선택하는 단계는 서로 다른 블록에 대해 서로 다른 후보 변환 테이블이 변환 테이블로 선택되도록 상기 복수의 후보 변환 테이블들 중 어느 하나를 변환 테이블로 선택하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따른 스토리지 시스템은 호스트에 의해 인식되는 페이지들의 논리적 주소와 물리적 주소와의 관계를 정의하는 복수의 후보 변환 테이블 중 어느 하나를 이용하여 대상 페이지의 물리적 주소를 결정하거나, 논리적 주소와 물리적 주소와의 관계를 정의하는 변환 테이블을 수정함으로써, 사용자가 플래시 메모리에서 데이터가 저장되는 위치를 조정할 수 있다. 이를 통해 플래시 메모리 시스템의 성능 및 안정성이 향상될 수 있다. 그리고 플래시 메모리 관리 소프트웨어의 구상에 있어 보다 많은 자유도가 제공될 수 있다.
본 발명의 일 실시예에 따른 스토리지 시스템은 블록 별로 서로 다른 변환 테이블을 적용함으로써, 사용자가 보다 적응적으로 플래시 메모리에서 데이터가 저장되는 위치를 결정할 수 있다.
도 1은 본 발명의 일 실시예에 따른 스토리지 시스템을 도시한 도면이다.
도 2는 기존의 페이지들의 논리적 주소에 대한 페이지들의 물리적 주소가 결정되는 방법을 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따른 스토리지 시스템이 페이지들의 논리적 주소에 대한 페이지들의 물리적 주소를 결정하는 방법을 도시한 도면이다.
도 4는 본 발명의 일 실시예에 따른 페이지의 물리적 저장 위치의 변경이 가능한 스토리지 시스템의 동작 방법을 도시한 도면이다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
본 발명의 실시예를 설명함에 있어서, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고, 본 명세서에서 사용되는 용어(terminology)들은 본 발명의 바람직한 실시예를 적절히 표현하기 위해 사용된 용어들로서, 이는 사용자, 운용자의 의도 또는 본 발명이 속하는 분야의 관례 등에 따라 달라질 수 있다. 따라서, 본 용어들에 대한 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
종래의 스토리지 시스템에서, 호스트(즉, 사용자)는 메모리 셀 어레이(예를 들면, NAND 플래시 메모리 셀 어레이)에 접근(access)하기 위하여 제어 로직(Control Logic)에 해당 명령을 인가하고, 입/출력 컨트롤러(I/O Controller)를 이용하여 접근하고자 하는 블록 및 페이지의 주소를 인가한다. 여기서의 페이지 주소는 호스트에 의해 인식되는 페이지의 논리적 주소이다. 블록 및 페이지의 주소는 주소 레지스터(Address Register)를 통해 행 디코더(Row Decoder)로 전달된다. 행 디코더를 통해 메모리 셀 어레이는 해당 블록 및 페이지에 대한 명령을 처리할 물리적 위치, 즉, 물리적 주소를 선택할 수 있다.
이와 같은 종래의 스토리지 시스템은 사용자가 페이지의 논리적 주소와 페이지의 물리적 주소 사이의 매핑 관계를 알 수 없고, 매핑 관계를 조정할 수도 없다.
따라서 본 발명의 일 실시예는 사용자가 블록 내의 페이지의 물리적 주소를 자유롭게 지정할 수 있도록 주소 레지스터와 행 디코더 사이에 변환부(Translate logic)를 삽입한다. 도 1을 통해 이에 대해 자세히 설명한다.
도 1은 본 발명의 일 실시예에 따른 스토리지 시스템을 도시한 도면이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 스토리지 시스템은 메모리 셀 어레이, 입/출력 컨트롤러 및 변환부를 포함한다. 즉, 본 발명의 일 실시예에 따른 스토리지 시스템은 메모리 셀 어레이로의 접근을 위한 주소 레지스터와 행 디코더(Row Decoder) 사이에 변환부를 포함한다.
메모리 셀 어레이는 페이지들로서 복수의 메모리 셀들을 포함한다.
입/출력 컨트롤러는 호스트가 접근하고자 하는 대상 블록에 있는 대상 페이지의 주소를 생성한다. 대상 페이지의 주소는 호스트에 의해 인식되는 대상 페이지의 논리적 주소일 수 있다.
변환부는 호스트에 의해 인식되는 페이지들의 논리적 주소들과 페이지들의 물리적 주소들 사이의 관계를 정의하는 서로 다른 복수의 후보 변환 테이블들을 포함한다. 후보 변환 테이블 각각은 호스트에 의해 프로그램 가능할 수 있다.
그리고 변환부는 복수의 후보 변환 테이블 중 어느 하나를 변환 테이블로 선택한다. 보다 구체적으로, 변환부는 호스트로부터 복수의 후보 변환 테이블 중 어느 하나를 선택하는 명령을 수신하고, 호스트의 명령에 기초하여 복수의 후보 변환 테이블들 중 어느 하나를 변환 테이블로 선택할 수 있다. 또한 변환부는 호스트로부터 변환 테이블을 수정하는 명령을 수신하고, 수정 명령을 기초로 변환 테이블을 수정할 수 있다. 따라서 사용자는 변환 테이블을 수정함으로써 데이터 페이지의 물리적 저장 위치를 변경할 수 있다.
변환부는 선택된 변환 테이블 또는 수정된 변환 테이블을 이용하여 대상 페이지의 주소에 대응하는 대상 페이지의 물리적 주소를 추출하고, 행 디코더를 경유하여 메모리 셀 어레이로 대상 페이지의 물리적 주소를 제공한다. 그리고 메모리 셀 어레이의 대상 페이지의 물리적 주소에서 호스트의 접근 명령이 처리된다.
이때, 페이지들에 대한 쓰기 동작이 페어드 페이지 구조에 따라 수행되는 경우, 변환부에 의해 선택된 변환 테이블은 페이지들의 논리적 주소들과 상기 페이지들의 물리적 주소들 사이의 관계가 페어드 페이지 구조를 기초로 정의되는 후보 변환 테이블일 수 있다. 따라서 MLC(Multi Level Cell)의 데이터 안정성 등의 성능이 보다 향상될 수 있다.
또한 변환부는 서로 다른 블록들에 대해 서로 다른 후보 변환 테이블들을 변환 테이블로 선택할 수 있다. 예를 들면, 변환부는 블록 1에는 후보 변환 테이블 1을 변환 테이블로 선택하고, 블록 2에는 후보 변한 테이블 2를 변환 테이블로 선택할 수 있다. 따라서 사용자는 블록마다 동적으로 논리적 주소와 물리적 주소 사이의 매핑 관계를 결정할 수 있다.
한편 스토리지 시스템은 변환부와 연결되고, 최근에 접근된 순서에 따라 해당 블록들에 대한 데이터를 캐싱하는 캐시 레지스터(Cache Register)를 더 포함할 수 있다.
이하에서, 변환부가 없는 상태에서의 스토리지 시스템 및 본 발명의 일 실시예에 따른 변환부를 포함하는 스토리지 시스템에서의 페이지들의 논리적 주소에 대한 페이지들의 물리적 주소가 결정되는 방법을 설명한다.
도 2는 기존의 페이지들의 논리적 주소에 대한 페이지들의 물리적 주소가 결정되는 방법을 도시한 도면이다.
도 2를 참조하면, 기존의 스토리지 시스템은 호스트에 의해 인식되는 페이지들의 논리적 주소와 실제로 데이터가 저장되는 페이지들의 물리적 주소의 매핑 관계가 스토리지 시스템의 제조사에 의해 고정적으로 미리 결정된다.
도 2의 예와 같이 호스트는 페이지들의 논리적 주소를 L0부터 L63까지로 인식할 수 있다. 그런데 L0부터 L63까지의 논리적 주소들 각각은 실제로 데이터가 저장되는 페이지들의 물리적 주소인 P0부터 P63 각각과 차례로 대응되지 않고, 제조사가 정한 매핑 알고리즘에 따라 논리적 주소와 물리적 주소의 매핑 관계가 테이블(210)과 같이 결정된다.
테이블(210)을 참조하면, 논리적 주소 L0는 물리적 주소 P0에 대응한다. 그러나 논리적 주소 L1은 물리적 주소 P2에 대응한다. 다시 말해 호스트가 L1을 주소로 갖는 페이지에 대한 접근을 명령하는 경우, 메모리 시스템은 메모리 셀 어레이의 물리적 주소 P2에 해당하는 위치에서 호스트의 접근 명령을 처리한다.
마찬가지로 논리적 주소 L2는 물리적 주소 P1에 대응하고, 논리적 주소 L3는 물리적 주소 P3에 대응한다. 나머지 논리적 주소들도 테이블(210)에 정의된 매핑 관계에 따라 물리적 주소들에 대응된다.
이러한 매핑 관계가 존재할 때, 사용자가 논리적 주소 L0 내지 L63에 대해 순차적으로 접근을 명령(예를 들면 프로그램 명령)한 경우, 메모리 셀 어레이의 해당 블록에서의 물리적 페이지들이 프로그램되는 순서가 테이블(220)에 도시되어 있다.
우선, 논리적 주소 L0에 대한 프로그램 명령이 물리적 주소 P0을 갖는 페이지에서 처리된다. 그리고 논리적 주소 L1에 대한 프로그램 명령이 물리적 주소 P2를 갖는 페이지에서 처리된다. 같은 방법으로 논리적 주소 L2, L3 및 L4에 대한 프로그램 명령이 물리적 주소 P1, P3 및 P4에 대해 순차적으로 처리된다.
그런데, 앞서 말한 바와 같이 이러한 매핑 관계는 제조사가 스토리지 시스템을 제조할 때 미리 정한다. 따라서 사용자는 매핑 관계를 알 수도 없고 변경할 수도 없다.
도 3은 본 발명의 일 실시예에 따른 스토리지 시스템이 페이지들의 논리적 주소에 대한 페이지들의 물리적 주소를 결정하는 방법을 도시한 도면이다.
도 3을 참조하면, 본 발명의 일 실시예에 따른 스토리지 시스템의 변환부는 복수의 후보 변환 테이블들(후보 변환 테이블 1 내지 후보 변환 테이블 N)을 포함한다. 후보 변환 테이블들은 호스트에 의해 인식되는 페이지들의 논리적 주소들과 페이지들의 물리적 주소 사이의 매핑 관계를 나타내며, 각 후보 변환 테이블의 매핑 관계는 서로 다르다. 각 후보 변환 테이블에 대한 논리적 주소들과 물리적 주소들 사이의 매핑 관계 및 매핑 관계에 따라 프로그램 순서가 결정되는 원리는 도 2에서 설명한 것과 같다.
예를 들어, 후보 변환 테이블 1과 후보 변환 테이블 2를 비교하면, 논리적 주소 L0에 대응하여 실제 접근 명령이 수행되는 물리적 주소가 후보 변환 테이블 1에서는 P0이고 후보 변환 테이블 2에서는 P1로 서로 다르다. 논리적 주소 L1에 대응하는 물리적 주소는 후보 변환 테이블 1의 경우는 P2이고 후보 변환 테이블 2의 경우는 P2이다. 그리고 논리적 주소 L2의 경우 대응되는 물리적 주소는 각각 P1과 P3이다.
따라서, 호스트로부터 페이지의 논리적 주소 L0, L1 및 L2에 대한 프로그램 명령을 수신한 경우, 각 후보 변환 테이블에 따라 스토리지 시스템이 메모리 셀 어레이의 해당 블록에서의 물리적 페이지들을 프로그램하는 순서는 아래와 같다.
후보 변환 테이블 1이 변환 테이블로 선택된 경우, 물리적 주소 P0을 갖는 페이지에서 가장 먼저 프로그램 명령이 처리되고, 이후 물리적 주소 P2 및 P1에서 순차적으로 프로그램 명령이 처리된다.
반면, 후보 변환 테이블 2가 변환 테이블로 선택된 경우, 물리적 주소 P1을 갖는 페이지에서 가장 먼저 프로그램 명령이 처리되고, 이후 물리적 주소 P2 및 P3에서 순차적으로 프로그램 명령이 처리된다.
그리고, 후보 변환 테이블 3이 변환 테이블로 선택된 경우, 물리적 주소 P63을 갖는 페이지에서 가장 먼저 프로그램 명령이 처리되고, 이후 물리적 주소 P0 및 P1에서 순차적으로 프로그램 명령이 처리된다.
이처럼 변환부는 복수의 후보 변환 테이블 중 어느 하나를 변환 테이블로 선택할 수 있고, 선택된 변환 테이블의 논리적 주소들 및 물리적 주소들 사이의 매핑 관계에 따라 호스트로부터의 페이지들에 대한 접근 명령이 처리될 물리적 주소가 달리 결정될 수 있다.
그리고 변환부는 호스트로부터 후보 변환 테이블들 또는 변환 테이블의 매핑 관계를 수정하는 명령을 수신하고, 수정 명령에 따라 매핑 관계를 수정할 수 있다.
따라서 사용자는 논리적 페이지에 대응하는 페이지들의 물리적 주소를 페어드 페이지 구조에 적합하게 적응적으로 제어할 수 있다.
한편, 변환부는 서로 다른 블록들에 대해 서로 다른 후보 변환 테이블들을 변환 테이블로서 선택할 수 있음은 선술한 바 있다.
본 발명의 다른 실시예에 따른 스토리지 시스템은, 주소 레지스터와 행 디코더 사이에, 호스트에 의해 인식되는 페이지들의 논리적 주소들과 페이지들의 물리적 주소들 사이의 관계를 정의하는 프로그램 가능한 변환 테이블을 포함하는 변환부를 포함할 수 있다. 즉, 변환부는 변환 테이블을 수정함으로써 논리적 주소들과 물리적 주소들 사이의 매핑 관계를 변경할 수 있다. 그리고 호스트는 변환부가 변환 테이블을 수정하도록 명령할 수 있다.
이 경우, 스토리지 시스템은 하나의 변환 테이블만을 가지고도 사용자의 명령에 따라 하나의 변환 테이블을 적절히 수정함으로써, 논리적 주소에 대응하는 페이지의 물리적 주소를 변경할 수 있다.
도 4는 본 발명의 일 실시예에 따른 페이지의 물리적 저장 위치의 변경이 가능한 스토리지 시스템의 동작 방법을 도시한 도면이다.
도 4를 참조하면, 본 발명의 일 실시예에 다른 스토리지 시스템은 호스트의 접근 명령을 수신함에 따라 호스트가 접근하고자 하는 대상 블록에 있는 대상 페이지의 주소를 생성한다(410).
그리고 스토리지 시스템은 호스트에 의해 인식되는 메모리 셀 어레이의 페이지들의 논리적 주소들과 페이지들의 물리적 주소들 사이의 관계를 정의하는 서로 다른 복수의 후보 변환 테이블들 중 어느 하나를 변환 테이블로 선택한다(420). 스토리지 시스템은 호스트의 명령에 따라 변환 테이블의 매핑 관계를 수정할 수 있다.
스토리지 시스템은 선택된 변환 테이블을 이용하여 대상 페이지의 주소에 대응하는 대상 페이지의 물리적 주소를 추출한다(430).
스토리지 시스템은 행 디코더를 경유하여 메모리 셀 어레이로 추출된 대상 페이지의 물리적 주소를 제공한다(440). 그리고 스토리지 시스템은 추출된 대상 물리적 주소를 이용하여 호스트의 접근 명령을 처리한다.
지금까지 본 발명에 따른 페이지의 물리적 저장 위치의 변경이 가능한 스토리지 시스템의 동작 방법에 대해 설명하였다. 본 시스템의 동작 방법에는 앞서 도 1 내지 도 3과 관련하여 다양한 실시예를 통하여 상술한 내용이 그대로 적용될 수 있으므로, 더 이상의 상세한 설명은 생략하도록 한다.
본 발명의 실시 예에 따른 방법들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.

Claims (19)

  1. 페이지들로서 복수의 메모리 셀들을 포함하는 메모리 셀 어레이;
    호스트에 의해 인식되는 상기 페이지들의 논리적 주소들과 상기 페이지들의 물리적 주소들 사이의 관계를 정의하는 서로 다른 복수의 후보 변환 테이블들을 포함하는 변환부; 및
    상기 호스트가 접근하고자 하는 대상 블록에 있는 대상 페이지의 주소를 생성하는 입/출력 컨트롤러
    를 포함하고,
    상기 변환부는
    상기 복수의 후보 변환 테이블 중 어느 하나를 변환 테이블로 선택하고 선택된 상기 변환 테이블을 이용하여 상기 대상 페이지의 주소에 대응하는 상기 대상 페이지의 물리적 주소를 추출하고, 행(row) 디코더를 경유하여 상기 메모리 셀 어레이로 상기 대상 페이지의 물리적 주소를 제공하며,
    상기 호스트로부터 상기 복수의 후보 변환 테이블들 중 적어도 하나를 수정하는 명령을 수신하고, 상기 명령에 기초하여 상기 복수의 후보 변환 테이블들 중 적어도 하나를 수정하는 스토리지 시스템.
  2. 제1항에 있어서,
    상기 페이지들에 대한 쓰기 동작이 페어드 페이지(paired page) 구조에 따라 수행되는 경우,
    상기 변환 테이블에서 상기 페이지들의 논리적 주소들과 상기 페이지들의 물리적 주소들 사이의 관계는 상기 페어드 페이지 구조를 기초로 정의되는 스토리지 시스템.
  3. 제1항에 있어서,
    상기 변환부는
    상기 호스트로부터 상기 복수의 후보 변환 테이블들 중 어느 하나를 선택하는 명령을 수신하고, 상기 명령에 기초하여 상기 복수의 후보 변환 테이블들 중 어느 하나를 상기 변환 테이블로 선택하는 스토리지 시스템.
  4. 삭제
  5. 제1항에 있어서,
    상기 변환부는
    상기 서로 다른 복수의 후보 변환 테이블들 중 둘 이상의 후보 변환 테이블들을 선택하고,
    상기 둘 이상의 후보 변환 테이블들은 서로 다른 블록들에 적용되는 스토리지 시스템.
  6. 제1항에 있어서,
    상기 변환부와 연결되고, 최근에 접근된 순서에 따라 해당 블록들에 대한 데이터를 캐싱하는 캐시 레지스터(cache register)를 더 포함하는 스토리지 시스템.
  7. 페이지들로서 복수의 메모리 셀들을 포함하는 메모리 셀 어레이;
    미리 설정된 디폴트 변환 테이블과 구별되고, 호스트에 의해 인식되는 상기 페이지들의 논리적 주소들과 상기 페이지들의 물리적 주소들 사이의 관계를 정의하는 프로그램 가능한 변환 테이블을 포함하는 변환부; 및
    상기 호스트가 접근하고자 하는 대상 블록에 있는 대상 페이지의 주소를 생성하는 입/출력 컨트롤러
    를 포함하고,
    상기 변환부는
    상기 프로그램 가능한 변환 테이블을 이용하여 상기 대상 페이지의 주소에 대응하는 상기 대상 페이지의 물리적 주소를 추출하고, 행 디코더를 경유하여 상기 메모리 셀 어레이로 상기 대상 페이지의 물리적 주소를 제공하는 스토리지 시스템.
  8. 제7항에 있어서,
    상기 페이지들에 대한 쓰기 동작이 페어드 페이지(paired page) 구조에 따라 수행되는 경우,
    상기 프로그램 가능한 변환 테이블에서 상기 페이지들의 논리적 주소들과 상기 페이지들의 물리적 주소들 사이의 관계는 상기 페어드 페이지 구조를 기초로 정의되는 스토리지 시스템.
  9. 제7항에 있어서,
    상기 변환부는
    상기 호스트로부터 상기 변환 테이블을 수정하는 명령을 수신하고, 상기 명령에 기초하여 상기 변환 테이블을 수정하는 스토리지 시스템.
  10. 제7항에 있어서,
    상기 변환부는
    미리 프로그램된 서로 다른 복수의 후보 변환 테이블들 중 어느 하나를 상기 변환 테이블로 선택하는 스토리지 시스템.
  11. 제10항에 있어서,
    상기 변환부는
    상기 호스트로부터 상기 복수의 후보 변환 테이블들 중 어느 하나를 선택하는 명령을 수신하고, 상기 명령에 기초하여 상기 복수의 후보 변환 테이블들 중 어느 하나를 상기 변환 테이블로 선택하는 스토리지 시스템.
  12. 제7항에 있어서,
    상기 변환부는
    미리 프로그램된 서로 다른 복수의 후보 변환 테이블들 중 둘 이상의 후보 변환 테이블들을 선택하고,
    상기 둘 이상의 후보 변환 테이블들은 서로 다른 블록들에 적용되는 스토리지 시스템.
  13. 제1항에 있어서,
    최근에 접근된 순서에 따라 해당 블록들에 대한 데이터를 캐싱하는 캐시 레지스터(cache register)를 더 포함하는 스토리지 시스템.
  14. 호스트가 접근하고자 하는 대상 블록에 있는 대상 페이지의 주소를 생성하는 단계;
    상기 호스트에 의해 인식되는 메모리 셀 어레이의 페이지들의 논리적 주소들과 상기 페이지들의 물리적 주소들 사이의 관계를 정의하는 서로 다른 복수의 후보 변환 테이블들 중 어느 하나를 변환 테이블로 선택하는 단계;
    상기 선택된 변환 테이블을 이용하여 상기 대상 페이지의 주소에 대응하는 상기 대상 페이지의 물리적 주소를 추출하는 단계; 및
    행 디코더를 경유하여 메모리 셀 어레이로 상기 대상 페이지의 물리적 주소를 제공하는 단계
    를 포함하고,
    상기 복수의 후보 변환 테이블들 중 어느 하나를 변환 테이블로 선택하는 단계는
    상기 호스트로부터 상기 복수의 후보 변환 테이블들 중 적어도 하나를 수정하는 명령을 수신하고, 상기 명령에 기초하여 상기 복수의 후보 변환 테이블들 중 적어도 하나를 수정하는 단계
    를 포함하는 스토리지 시스템의 동작 방법.
  15. 제14항에 있어서,
    상기 복수의 후보 변환 테이블들 중 어느 하나를 변환 테이블로 선택하는 단계는
    상기 페이지들에 대한 쓰기 동작이 페어드 페이지 구조에 따라 수행되는 경우, 상기 페어드 페이지 구조를 기초로 상기 페이지들의 논리적 주소들과 상기 페이지들의 물리적 주소들 사이의 관계를 정의하는 후보 변환 테이블들 중 어느 하나를 변환 테이블로 선택하는 단계
    를 포함하는 스토리지 시스템의 동작 방법.
  16. 제14항에 있어서,
    상기 복수의 후보 변환 테이블들 중 어느 하나를 변환 테이블로 선택하는 단계는
    상기 호스트로부터 상기 복수의 후보 변환 테이블들 중 어느 하나를 선택하는 명령을 수신하고, 상기 명령에 기초하여 상기 복수의 후보 변환 테이블들 중 어느 하나를 상기 변환 테이블로 선택하는 단계
    를 포함하는 스토리지 시스템의 동작 방법.
  17. 삭제
  18. 제14항에 있어서,
    상기 복수의 후보 변환 테이블들 중 어느 하나를 변환 테이블로 선택하는 단계는
    서로 다른 블록에 대해 서로 다른 후보 변환 테이블이 변환 테이블로 선택되도록 상기 복수의 후보 변환 테이블들 중 어느 하나를 변환 테이블로 선택하는 단계
    를 포함하는 스토리지 시스템의 동작 방법.
  19. 제14항 내지 제16항 또는 제18항 중 어느 한 항의 방법을 수행하기 위한 프로그램이 기록되어 있는 컴퓨터로 판독 가능한 기록매체.
KR1020110017244A 2011-02-25 2011-02-25 페이지의 물리적 저장 위치의 변경이 가능한 스토리지 시스템 및 상기 스토리지 시스템의 동작 방법 KR101242195B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110017244A KR101242195B1 (ko) 2011-02-25 2011-02-25 페이지의 물리적 저장 위치의 변경이 가능한 스토리지 시스템 및 상기 스토리지 시스템의 동작 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110017244A KR101242195B1 (ko) 2011-02-25 2011-02-25 페이지의 물리적 저장 위치의 변경이 가능한 스토리지 시스템 및 상기 스토리지 시스템의 동작 방법

Publications (2)

Publication Number Publication Date
KR20120097801A KR20120097801A (ko) 2012-09-05
KR101242195B1 true KR101242195B1 (ko) 2013-03-11

Family

ID=47108954

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110017244A KR101242195B1 (ko) 2011-02-25 2011-02-25 페이지의 물리적 저장 위치의 변경이 가능한 스토리지 시스템 및 상기 스토리지 시스템의 동작 방법

Country Status (1)

Country Link
KR (1) KR101242195B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10846233B2 (en) 2018-02-12 2020-11-24 Samsung Electronics Co., Ltd. Memory controller and application processor for controlling utilization and performance of input/output device and method of operating the memory controller

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112567327A (zh) * 2018-08-21 2021-03-26 索尼公司 非易失性存储装置、主机装置和数据存储系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07334422A (ja) * 1994-06-10 1995-12-22 Oki Electric Ind Co Ltd キャッシュメモリ装置
JP2007128125A (ja) * 2005-11-01 2007-05-24 Matsushita Electric Ind Co Ltd メモリカード、物理アドレス変換方法、物理アドレス変換プログラム、物理アドレス変換プログラムを記録した記録媒体、及び集積回路
US20100169586A1 (en) * 2008-12-31 2010-07-01 Li-Pin Chang Memory storage device and a control method thereof

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07334422A (ja) * 1994-06-10 1995-12-22 Oki Electric Ind Co Ltd キャッシュメモリ装置
JP2007128125A (ja) * 2005-11-01 2007-05-24 Matsushita Electric Ind Co Ltd メモリカード、物理アドレス変換方法、物理アドレス変換プログラム、物理アドレス変換プログラムを記録した記録媒体、及び集積回路
US20100169586A1 (en) * 2008-12-31 2010-07-01 Li-Pin Chang Memory storage device and a control method thereof

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10846233B2 (en) 2018-02-12 2020-11-24 Samsung Electronics Co., Ltd. Memory controller and application processor for controlling utilization and performance of input/output device and method of operating the memory controller

Also Published As

Publication number Publication date
KR20120097801A (ko) 2012-09-05

Similar Documents

Publication Publication Date Title
US8423709B2 (en) Controller
US10915440B2 (en) Namespace mapping optimization in non-volatile memory devices
US9484103B1 (en) Electronic storage device
KR101861544B1 (ko) 메모리 액세스 제어
EP1909184A2 (en) Mapping information managing apparatus and method for non-volatile memory supporting different cell types
US10909031B2 (en) Memory system and operating method thereof
US20090070547A1 (en) Method and apparatus for performing address mapping in virtual file system of storage unit having a plurality of non-volatile data storage media
US20100057818A1 (en) Performing defragment on hard disk of host machine having a virtual machine
US10203899B2 (en) Method for writing data into flash memory apparatus, flash memory apparatus, and storage system
EP3338193B1 (en) Convertible leaf memory mapping
US11232028B2 (en) Error-checking in namespaces on storage devices
JP6008325B2 (ja) データ記憶システムおよびその制御方法
JP2010146326A (ja) 記憶装置、その制御方法及びその記憶装置を用いた電子装置
US11144448B2 (en) Memory sub-system for managing flash translation layers table updates in response to unmap commands
CN108958642B (zh) 存储器系统及其操作方法
US20180136865A1 (en) Method of operating memory device, memory device using the same and memory system including the device
US20240086094A9 (en) Data storage device with configurable policy-based storage device behavior
US20140189031A1 (en) Computing device and method of creating virtual machines in hosts
US20090276575A1 (en) Information processing apparatus and compiling method
KR101242195B1 (ko) 페이지의 물리적 저장 위치의 변경이 가능한 스토리지 시스템 및 상기 스토리지 시스템의 동작 방법
US9037773B2 (en) Methods for processing and addressing data between volatile memory and non-volatile memory in an electronic apparatus
CN108519860B (zh) 一种ssd读命中的处理方法和装置
US9336413B2 (en) Method and system for fast permission changes for virtual addresses
US11907127B2 (en) Devices, systems, and methods for configuring a storage device with cache
JP5987501B2 (ja) 分岐アドレス管理プログラム、方法、及び装置

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
FPAY Annual fee payment

Payment date: 20160122

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170224

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180222

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20200302

Year of fee payment: 8