KR101242195B1 - 페이지의 물리적 저장 위치의 변경이 가능한 스토리지 시스템 및 상기 스토리지 시스템의 동작 방법 - Google Patents
페이지의 물리적 저장 위치의 변경이 가능한 스토리지 시스템 및 상기 스토리지 시스템의 동작 방법 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30101—Special 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
본 발명은 스토리지 시스템 및 스토리지 시스템의 동작 방법에 관한 것이다.
NAND 플래시 메모리 시스템은 페이지 단위로 데이터를 저장한다. 그리고 공정 미세화에 따른 프로그램 장애(program disturbance) 등을 고려하여 제조사가 부여한 규칙에 따라 블록 내의 페이지의 기록 순서가 결정된다. 즉, 사용자가 입력한 페이지의 주소(즉, 논리적 주소)와 실제로 데이터가 저장되는 페이지의 주소(즉, 물리적 주소)간에 차이가 존재한다. 그리고 논리적 주소와 물리적 주소와의 매핑 관계는 제조사가 결정하며, 사용자는 매핑 관계를 알지 못할 뿐 아니라 조정할 수도 없다.
본 발명의 실시예들은 페이지의 물리적 저장 위치의 변경이 가능한 스토리지 시스템 및 상기 스토리지 시스템의 동작 방법을 제공한다.
본 발명의 일 실시예예 따른 스토리지 시스템은 페이지들로서 복수의 메모리 셀들을 포함하는 메모리 셀 어레이; 호스트에 의해 인식되는 상기 페이지들의 논리적 주소들과 상기 페이지들의 물리적 주소들 사이의 관계를 정의하는 서로 다른 복수의 후보 변환 테이블들을 포함하는 변환부; 및 상기 호스트가 접근하고자 하는 대상 블록에 있는 대상 페이지의 주소를 생성하는 입/출력 컨트롤러를 포함하고, 상기 변환부는 상기 복수의 후보 변환 테이블 중 어느 하나를 변환 테이블로 선택하고 선택된 상기 변환 테이블을 이용하여 상기 대상 페이지의 주소에 대응하는 상기 대상 페이지의 물리적 주소를 추출하고, 행(row) 디코더를 경유하여 상기 메모리 셀 어레이로 상기 대상 페이지의 물리적 주소를 제공한다.
상기 페이지들에 대한 쓰기 동작이 페어드 페이지(paired page) 구조에 따라 수행되는 경우, 상기 변환 테이블에서 상기 페이지들의 논리적 주소들과 상기 페이지들의 물리적 주소들 사이의 관계는 상기 페어드 페이지 구조를 기초로 정의될 수 있다.
상기 변환부는 상기 호스트로부터 상기 복수의 후보 변환 테이블들 중 어느 하나를 선택하는 명령을 수신하고, 상기 명령에 기초하여 상기 복수의 후보 변환 테이블들 중 어느 하나를 상기 변환 테이블로 선택할 수 있다.
상기 변환부는 상기 호스트로부터 상기 변환 테이블을 수정하는 명령을 수신하고, 상기 명령에 기초하여 상기 변환 테이블을 수정할 수 있다.
상기 변환부는 상기 서로 다른 복수의 후보 변환 테이블들 중 둘 이상의 후보 변환 테이블들을 선택하고, 상기 둘 이상의 후보 변환 테이블들은 서로 다른 블록들에 적용될 수 있다.
상기 스토리지 시스템은 상기 변환부와 연결되고, 최근에 접근된 순서에 따라 해당 블록들에 대한 데이터를 캐싱하는 캐시 레지스터(cache register)를 더 포함할 수 있다.
본 발명의 다른 실시예에 따른 스토리지 시스템은 페이지들로서 복수의 메모리 셀들을 포함하는 메모리 셀 어레이; 미리 설정된 디폴트 변환 테이블과 구별되고, 호스트에 의해 인식되는 상기 페이지들의 논리적 주소들과 상기 페이지들의 물리적 주소들 사이의 관계를 정의하는 프로그램 가능한 변환 테이블을 포함하는 변환부; 및 상기 호스트가 접근하고자 하는 대상 블록에 있는 대상 페이지의 주소를 생성하는 입/출력 컨트롤러를 포함하고, 상기 변환부는 상기 프로그램 가능한 변환 테이블을 이용하여 상기 대상 페이지의 주소에 대응하는 상기 대상 페이지의 물리적 주소를 추출하고, 행 디코더를 경유하여 상기 메모리 셀 어레이로 상기 대상 페이지의 물리적 주소를 제공한다.
상기 페이지들에 대한 쓰기 동작이 페어드 페이지(paired page) 구조에 따라 수행되는 경우, 상기 프로그램 가능한 변환 테이블에서 상기 페이지들의 논리적 주소들과 상기 페이지들의 물리적 주소들 사이의 관계는 상기 페어드 페이지 구조를 기초로 정의될 수 있다.
상기 변환부는 상기 호스트로부터 상기 변환 테이블을 수정하는 명령을 수신하고, 상기 명령에 기초하여 상기 변환 테이블을 수정할 수 있다.
상기 변환부는 미리 프로그램된 서로 다른 복수의 후보 변환 테이블들 중 어느 하나를 상기 변환 테이블로 선택할 수 있다.
상기 변환부는 상기 호스트로부터 상기 복수의 후보 변환 테이블들 중 어느 하나를 선택하는 명령을 수신하고, 상기 명령에 기초하여 상기 복수의 후보 변환 테이블들 중 어느 하나를 상기 변환 테이블로 선택하는 스토리지 시스템.
상기 변환부는 미리 프로그램된 서로 다른 복수의 후보 변환 테이블들 중 둘 이상의 후보 변환 테이블들을 선택하고, 상기 둘 이상의 후보 변환 테이블들은 서로 다른 블록들에 적용될 수 있다.
상기 스토리지 시스템은 최근에 접근된 순서에 따라 해당 블록들에 대한 데이터를 캐싱하는 캐시 레지스터를 더 포함할 수 있다.
본 발명의 일 실시예에 따른 스토리지 시스템의 동작 방법은 호스트가 접근하고자 하는 대상 블록에 있는 대상 페이지의 주소를 생성하는 단계; 상기 호스트에 의해 인식되는 메모리 셀 어레이의 페이지들의 논리적 주소들과 상기 페이지들의 물리적 주소들 사이의 관계를 정의하는 서로 다른 복수의 후보 변환 테이블들 중 어느 하나를 변환 테이블로 선택하는 단계; 상기 선택된 변환 테이블을 이용하여 상기 대상 페이지의 주소에 대응하는 상기 대상 페이지의 물리적 주소를 추출하는 단계; 및 행 디코더를 경유하여 메모리 셀 어레이로 상기 대상 페이지의 물리적 주소를 제공하는 단계를 포함한다.
상기 복수의 후보 변환 테이블들 중 어느 하나를 변환 테이블로 선택하는 단계는 상기 페이지들에 대한 쓰기 동작이 페어드 페이지 구조에 따라 수행되는 경우, 상기 페어드 페이지 구조를 기초로 상기 페이지들의 논리적 주소들과 상기 페이지들의 물리적 주소들 사이의 관계를 정의하는 후보 변환 테이블들 중 어느 하나를 변환 테이블로 선택하는 단계를 포함할 수 있다.
상기 복수의 후보 변환 테이블들 중 어느 하나를 변환 테이블로 선택하는 단계는 상기 호스트로부터 상기 복수의 후보 변환 테이블들 중 어느 하나를 선택하는 명령을 수신하고, 상기 명령에 기초하여 상기 복수의 후보 변환 테이블들 중 어느 하나를 상기 변환 테이블로 선택하는 단계를 포함할 수 있다.
상기 스토리지 시스템의 동작 방법은 상기 호스트로부터 상기 변환 테이블을 수정하는 명령을 수신하고, 상기 명령에 기초하여 상기 변환 테이블을 수정하는 단계를 더 포함할 수 있다.
상기 복수의 후보 변환 테이블들 중 어느 하나를 변환 테이블로 선택하는 단계는 서로 다른 블록에 대해 서로 다른 후보 변환 테이블이 변환 테이블로 선택되도록 상기 복수의 후보 변환 테이블들 중 어느 하나를 변환 테이블로 선택하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따른 스토리지 시스템은 호스트에 의해 인식되는 페이지들의 논리적 주소와 물리적 주소와의 관계를 정의하는 복수의 후보 변환 테이블 중 어느 하나를 이용하여 대상 페이지의 물리적 주소를 결정하거나, 논리적 주소와 물리적 주소와의 관계를 정의하는 변환 테이블을 수정함으로써, 사용자가 플래시 메모리에서 데이터가 저장되는 위치를 조정할 수 있다. 이를 통해 플래시 메모리 시스템의 성능 및 안정성이 향상될 수 있다. 그리고 플래시 메모리 관리 소프트웨어의 구상에 있어 보다 많은 자유도가 제공될 수 있다.
본 발명의 일 실시예에 따른 스토리지 시스템은 블록 별로 서로 다른 변환 테이블을 적용함으로써, 사용자가 보다 적응적으로 플래시 메모리에서 데이터가 저장되는 위치를 결정할 수 있다.
도 1은 본 발명의 일 실시예에 따른 스토리지 시스템을 도시한 도면이다.
도 2는 기존의 페이지들의 논리적 주소에 대한 페이지들의 물리적 주소가 결정되는 방법을 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따른 스토리지 시스템이 페이지들의 논리적 주소에 대한 페이지들의 물리적 주소를 결정하는 방법을 도시한 도면이다.
도 4는 본 발명의 일 실시예에 따른 페이지의 물리적 저장 위치의 변경이 가능한 스토리지 시스템의 동작 방법을 도시한 도면이다.
도 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)
- 페이지들로서 복수의 메모리 셀들을 포함하는 메모리 셀 어레이;
호스트에 의해 인식되는 상기 페이지들의 논리적 주소들과 상기 페이지들의 물리적 주소들 사이의 관계를 정의하는 서로 다른 복수의 후보 변환 테이블들을 포함하는 변환부; 및
상기 호스트가 접근하고자 하는 대상 블록에 있는 대상 페이지의 주소를 생성하는 입/출력 컨트롤러
를 포함하고,
상기 변환부는
상기 복수의 후보 변환 테이블 중 어느 하나를 변환 테이블로 선택하고 선택된 상기 변환 테이블을 이용하여 상기 대상 페이지의 주소에 대응하는 상기 대상 페이지의 물리적 주소를 추출하고, 행(row) 디코더를 경유하여 상기 메모리 셀 어레이로 상기 대상 페이지의 물리적 주소를 제공하며,
상기 호스트로부터 상기 복수의 후보 변환 테이블들 중 적어도 하나를 수정하는 명령을 수신하고, 상기 명령에 기초하여 상기 복수의 후보 변환 테이블들 중 적어도 하나를 수정하는 스토리지 시스템. - 제1항에 있어서,
상기 페이지들에 대한 쓰기 동작이 페어드 페이지(paired page) 구조에 따라 수행되는 경우,
상기 변환 테이블에서 상기 페이지들의 논리적 주소들과 상기 페이지들의 물리적 주소들 사이의 관계는 상기 페어드 페이지 구조를 기초로 정의되는 스토리지 시스템. - 제1항에 있어서,
상기 변환부는
상기 호스트로부터 상기 복수의 후보 변환 테이블들 중 어느 하나를 선택하는 명령을 수신하고, 상기 명령에 기초하여 상기 복수의 후보 변환 테이블들 중 어느 하나를 상기 변환 테이블로 선택하는 스토리지 시스템. - 삭제
- 제1항에 있어서,
상기 변환부는
상기 서로 다른 복수의 후보 변환 테이블들 중 둘 이상의 후보 변환 테이블들을 선택하고,
상기 둘 이상의 후보 변환 테이블들은 서로 다른 블록들에 적용되는 스토리지 시스템. - 제1항에 있어서,
상기 변환부와 연결되고, 최근에 접근된 순서에 따라 해당 블록들에 대한 데이터를 캐싱하는 캐시 레지스터(cache register)를 더 포함하는 스토리지 시스템. - 페이지들로서 복수의 메모리 셀들을 포함하는 메모리 셀 어레이;
미리 설정된 디폴트 변환 테이블과 구별되고, 호스트에 의해 인식되는 상기 페이지들의 논리적 주소들과 상기 페이지들의 물리적 주소들 사이의 관계를 정의하는 프로그램 가능한 변환 테이블을 포함하는 변환부; 및
상기 호스트가 접근하고자 하는 대상 블록에 있는 대상 페이지의 주소를 생성하는 입/출력 컨트롤러
를 포함하고,
상기 변환부는
상기 프로그램 가능한 변환 테이블을 이용하여 상기 대상 페이지의 주소에 대응하는 상기 대상 페이지의 물리적 주소를 추출하고, 행 디코더를 경유하여 상기 메모리 셀 어레이로 상기 대상 페이지의 물리적 주소를 제공하는 스토리지 시스템. - 제7항에 있어서,
상기 페이지들에 대한 쓰기 동작이 페어드 페이지(paired page) 구조에 따라 수행되는 경우,
상기 프로그램 가능한 변환 테이블에서 상기 페이지들의 논리적 주소들과 상기 페이지들의 물리적 주소들 사이의 관계는 상기 페어드 페이지 구조를 기초로 정의되는 스토리지 시스템. - 제7항에 있어서,
상기 변환부는
상기 호스트로부터 상기 변환 테이블을 수정하는 명령을 수신하고, 상기 명령에 기초하여 상기 변환 테이블을 수정하는 스토리지 시스템. - 제7항에 있어서,
상기 변환부는
미리 프로그램된 서로 다른 복수의 후보 변환 테이블들 중 어느 하나를 상기 변환 테이블로 선택하는 스토리지 시스템. - 제10항에 있어서,
상기 변환부는
상기 호스트로부터 상기 복수의 후보 변환 테이블들 중 어느 하나를 선택하는 명령을 수신하고, 상기 명령에 기초하여 상기 복수의 후보 변환 테이블들 중 어느 하나를 상기 변환 테이블로 선택하는 스토리지 시스템. - 제7항에 있어서,
상기 변환부는
미리 프로그램된 서로 다른 복수의 후보 변환 테이블들 중 둘 이상의 후보 변환 테이블들을 선택하고,
상기 둘 이상의 후보 변환 테이블들은 서로 다른 블록들에 적용되는 스토리지 시스템. - 제1항에 있어서,
최근에 접근된 순서에 따라 해당 블록들에 대한 데이터를 캐싱하는 캐시 레지스터(cache register)를 더 포함하는 스토리지 시스템. - 호스트가 접근하고자 하는 대상 블록에 있는 대상 페이지의 주소를 생성하는 단계;
상기 호스트에 의해 인식되는 메모리 셀 어레이의 페이지들의 논리적 주소들과 상기 페이지들의 물리적 주소들 사이의 관계를 정의하는 서로 다른 복수의 후보 변환 테이블들 중 어느 하나를 변환 테이블로 선택하는 단계;
상기 선택된 변환 테이블을 이용하여 상기 대상 페이지의 주소에 대응하는 상기 대상 페이지의 물리적 주소를 추출하는 단계; 및
행 디코더를 경유하여 메모리 셀 어레이로 상기 대상 페이지의 물리적 주소를 제공하는 단계
를 포함하고,
상기 복수의 후보 변환 테이블들 중 어느 하나를 변환 테이블로 선택하는 단계는
상기 호스트로부터 상기 복수의 후보 변환 테이블들 중 적어도 하나를 수정하는 명령을 수신하고, 상기 명령에 기초하여 상기 복수의 후보 변환 테이블들 중 적어도 하나를 수정하는 단계
를 포함하는 스토리지 시스템의 동작 방법. - 제14항에 있어서,
상기 복수의 후보 변환 테이블들 중 어느 하나를 변환 테이블로 선택하는 단계는
상기 페이지들에 대한 쓰기 동작이 페어드 페이지 구조에 따라 수행되는 경우, 상기 페어드 페이지 구조를 기초로 상기 페이지들의 논리적 주소들과 상기 페이지들의 물리적 주소들 사이의 관계를 정의하는 후보 변환 테이블들 중 어느 하나를 변환 테이블로 선택하는 단계
를 포함하는 스토리지 시스템의 동작 방법. - 제14항에 있어서,
상기 복수의 후보 변환 테이블들 중 어느 하나를 변환 테이블로 선택하는 단계는
상기 호스트로부터 상기 복수의 후보 변환 테이블들 중 어느 하나를 선택하는 명령을 수신하고, 상기 명령에 기초하여 상기 복수의 후보 변환 테이블들 중 어느 하나를 상기 변환 테이블로 선택하는 단계
를 포함하는 스토리지 시스템의 동작 방법. - 삭제
- 제14항에 있어서,
상기 복수의 후보 변환 테이블들 중 어느 하나를 변환 테이블로 선택하는 단계는
서로 다른 블록에 대해 서로 다른 후보 변환 테이블이 변환 테이블로 선택되도록 상기 복수의 후보 변환 테이블들 중 어느 하나를 변환 테이블로 선택하는 단계
를 포함하는 스토리지 시스템의 동작 방법. - 제14항 내지 제16항 또는 제18항 중 어느 한 항의 방법을 수행하기 위한 프로그램이 기록되어 있는 컴퓨터로 판독 가능한 기록매체.
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)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112567327A (zh) * | 2018-08-21 | 2021-03-26 | 索尼公司 | 非易失性存储装置、主机装置和数据存储系统 |
Citations (3)
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 |
-
2011
- 2011-02-25 KR KR1020110017244A patent/KR101242195B1/ko active IP Right Grant
Patent Citations (3)
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)
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 |