KR100881597B1 - 읽기 요청 처리 시스템 및 방법 - Google Patents

읽기 요청 처리 시스템 및 방법 Download PDF

Info

Publication number
KR100881597B1
KR100881597B1 KR1020070011249A KR20070011249A KR100881597B1 KR 100881597 B1 KR100881597 B1 KR 100881597B1 KR 1020070011249 A KR1020070011249 A KR 1020070011249A KR 20070011249 A KR20070011249 A KR 20070011249A KR 100881597 B1 KR100881597 B1 KR 100881597B1
Authority
KR
South Korea
Prior art keywords
read request
logical address
processor
flash memory
request processing
Prior art date
Application number
KR1020070011249A
Other languages
English (en)
Other versions
KR20080072447A (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 KR1020070011249A priority Critical patent/KR100881597B1/ko
Priority to PCT/KR2008/000430 priority patent/WO2008093961A1/en
Priority to US12/525,543 priority patent/US8255663B2/en
Publication of KR20080072447A publication Critical patent/KR20080072447A/ko
Application granted granted Critical
Publication of KR100881597B1 publication Critical patent/KR100881597B1/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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures

Abstract

본 발명은 플래시 메모리 기반의 저장장치에서 호스트 읽기 성능을 극대화하기 위한 읽기 요청 처리 시스템에 관한 것이다. 본 발명에서 제안하는 읽기 요청 처리 시스템은 읽기 요청 처리를 저장장치의 프로세서에서 담당하던 종래의 시스템과 달리 독립적인 읽기 요청 자동 처리기를 추가함으로써 프로세서에 의한 병목 현상을 해결한다. 또한, 쓰기 버퍼를 사용하는 저장장치의 경우에는 읽기 요청 처리 시 쓰기 버퍼와 플래시 메모리의 데이터를 병합하여 호스트로 전송하는 과정을 디스크립터 배열(descriptor array) 기반으로 제어할 수 있도록 구성하여 프로세서 오버헤드를 최소화한다.
플래시 메모리(flash memory), 읽기 요청 처리, 디스크립터 배열(descriptor array)

Description

읽기 요청 처리 시스템 및 방법 {SYSTEM AND METHOD FOR PROCESSING READ REQUEST}
도 1은 종래 기술에 따른 플래시 메모리 기반 저장 장치의 구성을 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 읽기 요청 처리 시스템을 포함하는 플래시 메모리 기반 저장 장치의 구성을 도시한 도면이다.
도 3은 본 발명의 또 다른 일실시예에 따른 읽기 요청 처리 시스템을 포함하는 플래시 메모리 기반 저장 장치의 구성을 도시한 도면이다.
도 4는 본 발명의 일실시예에 따른 읽기 요청 처리 시스템의 내부 구성을 도시한 구성도이다.
도 5는 본 발명의 또 다른 일실시예에 따른 읽기 요청 처리 시스템의 내부 구성을 도시한 구성도이다.
도 6은 본 발명의 일실시예에 따른 읽기 요청 처리 방법의 흐름을 도시한 흐름도이다.
도 7는 본 발명의 또 다른 일실시예에 따른 읽기 요청 처리 방법의 흐름을 도시한 도면이다.
도 8은 본 발명의 일실시예에 따른 읽기 요청 처리 시스템에서 쓰기 버퍼 를 포함하는 경우 호스트 읽기 요청을 처리하는 것의 일례를 도시한 도면이다.
도 9은 본 발명의 일실시예에 따른 읽기 요청 처리 시스템에서 호스트 읽기 요청에 대응되는 디스크립터 배열의 일례를 도시한 도면이다.
<도면의 주요 부분에 대한 부호의 설명>
401: 읽기 요청 처리 시스템
410: 읽기 요청 수신부
420: 물리 주소 유효성 판단부
430: 논리 주소 유효성 판단부
440: 물리 주소 수신부
450: 읽기 요청부
460: 오류 처리부
470: 시스템 활성화 요청 수신부
본 발명은 저장장치의 호스트 읽기 요청 처리 시스템에 관한 것으로, 더욱 상세하게는 플래시 메모리 기반 저장장치 시스템의 읽기 요청 처리 시스템의 구조에 관한 것이다.
일반적인 저장장치 시스템은 ATA, SCSI와 같은 널리 사용되는 저장장치 프로토콜을 준수하는 호스트 인터페이스, 디스크, 플래시 메모리 등의 비 휘발성 기 록 매체와 이를 제어하는 제어기, 시스템의 전체 동작을 관리하는 프로세서와 프로세서의 코드, 데이터를 저장하기 위한 메모리로 구성된다.
플래시 메모리(Flash Memory)는 전원이 공급되지 않아도 저장한 데이터가 사라지지 않고 유지되는 비 휘발성 메모리이며, 칩 전체 혹은 일부를 전기적으로 지우고 다시 쓸 수 있는 기능을 제공한다. 플래시 메모리에 저장된 데이터의 삭제는 칩 전체뿐만 아니라 블록 단위의 삭제도 가능하지만 바이트 단위의 삭제는 불가능 하다.
플래시 메모리는 전기적으로 동작하는 반도체 메모리로서 물리적인 구성 요소를 포함하는 디스크와 같은 기존 저장 매체에 비해 전력 소모가 적고 크기가 작으며 물리적 충격이나 진동에 강하다. 이러한 이점들 때문에 플래시 메모리는 디지털 카메라, 휴대형 멀티미디어 재생기, 휴대폰, PDA 등의 휴대형 전자 기기의 저장 매체나 USB 디스크, MMC 메모리 카드와 같은 휴대형 저장장치의 기록 매체로서 널리 사용되고 있다. 또한, 최근에는 고집적화와 가격 하락, 다중 칩 병렬 처리 기법에 의한 고성능화로 일반적인 컴퓨터 시스템의 저장장치로도 주목 받고 있다.
그러나 플래시 메모리는 한번 기록한 영역에 바로 덮어 쓰는 것이 불가능하고, 기록 단위보다 훨씬 큰 단위로 수행하는 지우기 작업을 먼저 수행하여야 한다는 제한이 있다. 또한, 지우기 단위가 되는 각 블록마다 수행할 수 있는 지우기 작업의 최대 회수가 정해져 있다. 이외에도 읽기 작업과 쓰기 작업의 성능 차이가 심하여 읽기 속도는 매우 빠른데 비해, 쓰기 속도는 느리다.
이런 제약들로 인해, 덮어 쓰기가 가능한 자기 디스크를 기록 매체로 하는 하드 디스크 드라이브 등과는 달리 플래시 메모리 기반 저장장치에서는 호스트로 보여지는 논리적 주소 공간이 실제 플래시 메모리 상의 물리적 주소 공간과 그대로 일치하지 않는다. 일반적으로 호스트 쓰기 작업 시 같은 논리 주소라 하더라도 이미 지우기 작업이 수행된 다른 물리 주소에 기록하며, 읽기 작업 시에는 주어진 논리 주소의 데이터가 실제로 어떤 물리 주소에 기록되어 있는지를 찾기 위한 사상 테이블을 유지한다. 이러한 플래시 메모리 기반 저장장치의 주소 사상을 담당하는 소프트웨어 계층을 플래시 사상 계층이라고 (FTL: Flash Translation Layer) 부른다.
FTL은 그 사상 단위에 따라 크게 호스트 인터페이스의 읽기, 쓰기 작업 단위인 섹터를 기준으로 하는 섹터 수준 사상과 플래시 메모리의 지우기 작업 단위인 블록을 기준으로 하는 블록 수준 사상 기법으로 나누어 볼 수 있다. 그러나, 사상 단위의 크고 작음에 따라 사상 테이블의 크기가 달라질 뿐, 메모리나 플래시 메모리 상에 사상 테이블을 유지해야 하며 읽기 작업 시 사상 테이블 참조가 필수라는 점은 변함이 없다.
FTL에서 수행하는 기능들은 기본적인 주소 사상 외에도 해당 논리 주소에 호스트 쓰기 작업이 수행되어 무효화된 물리 섹터들을 모아 지우기 작업을 수행하여 쓰기가 가능한 영역으로 환원시키는 쓰레기 수집과 (garbage collection) 각 지우기 단위들의 지우기 회수 간의 균형을 맞추어 전체 저장장치의 수명을 증가시키기 위한 마모도 평균화 (wear leveling) 등을 포함한다.
도 1은 종래 기술에 따른 플래시 메모리 기반 저장 장치의 구성을 도시한 도 면이다.
일반적인 플래시 메모리 기반 저장장치는 도 1에 도시한 바와 같이 호스트 인터페이스(150), 플래시 메모리 제어기(160), 프로세서(110), 메모리(140), FTL 소프트웨어(120)로 구성된다. 읽기 작업 처리 시 프로세서에서 실행되는 FTL(120)은 시작 섹터 주소와 섹터 개수로 구성된 호스트 요청을 입력 받아 메모리(140)에 유지하는 (또는, 플래시 메모리에 사상 테이블을 유지하는 경우 테이블의 필요한 일부를 메모리(140)로 읽어 들인) 사상 테이블(130)을 참조하여 블록 번호, 블록 내에서의 섹터 번호, 섹터 개수로 구성된 플래시 메모리 요청으로 바꾸어 플래시 메모리 제어기(160)를 동작시킨다. 플래시 메모리에서 읽혀진 데이터는 메모리(140)를 거치거나 FIFO를 통해 직접 호스트 인터페이스(150)로 전달된다.
한편, 플래시 메모리 기반 저장장치에서는 메모리를 프로세서의 데이터와 코드, FTL의 사상 테이블 저장용도뿐만 아니라 호스트 쓰기 성능 향상을 위한 쓰기 버퍼로 쓰는 경우가 많다. 쓰기 작업이 읽기에 비해 느리고 쓰기 전에 지우기 작업이 선행되어야 하는 플래시 메모리의 특성 상 쓰기 성능이 저하되는 경우가 많은데, 쓰기 버퍼를 사용하면 일단 데이터 전송이 끝난 후 호스트에 처리 완료를 보고하고 백그라운드로 실제 플래시 메모리로의 쓰기 작업을 수행함으로써 낮은 플래시 메모리 쓰기 성능을 숨길 수 있기 때문이다. 이럴 경우 읽기 요청을 처리할 때 필요한 일부 데이터가 쓰기 버퍼에 존재하는 상황이 발생한다. 플래시 메모리에 있는 데이터보다 쓰기 버퍼의 데이터가 더 최신의 것이므로 호스트로는 쓰기 버퍼의 데이터를 전송해야 한다.
종래 시스템들에서는 상기의 호스트 읽기 요청 처리, 쓰기 버퍼와 플래시 메모리의 데이터 병합 작업을 전적으로 프로세서에서 담당하도록 하고 있어 읽기 성능을 저하시키는 주요 원인이 되고 있다. 저장장치 시스템의 경우 프로세서는 데이터 전송 경로나 호스트 인터페이스, 기록 매체 제어기 등의 전용 논리 회로에 비해 비교적 낮은 속도로 동작하는 것이 일반적이어서 호스트 읽기 성능을 제한하는 병목이 된다. 또한, 프로세서는 FTL의 다른 동작 즉, 쓰레기 수집이나 마모도 평균화 작업 등 관리 작업들도 처리해야 하므로 이런 작업의 처리 중에 읽기 요청이 들어오는 경우 바로 읽기 처리를 시작할 수 없는 상황이 발생하여 처리 시간을 더욱 증가시킨다. 쓰기 버퍼를 사용하는 종래의 플래시 메모리 기반 저장장치는 쓰기 버퍼에 존재하는 데이터를 플래시 메모리의 데이터와 병합하는 작업을 프로세서에서 매 섹터 별로 처리하여 프로세서의 작업량이 증가하면서 읽기 성능을 저하시킨다.
따라서, 본 발명에서는 프로세서가 직접 관여하지 않고도 호스트 인터페이스의 플래시 메모리에 대한 읽기 요청을 처리할 수 있도록 하고, 쓰기 버퍼에 데이터가 분산되어 있는 경우 이를 통합할 수 있도록 하는 읽기 요청 처리 시스템에 관하여 제안하고자 한다.
본 발명은 상기와 같은 종래기술을 개선하기 위해 안출된 것으로서, 프로세서와 독립적으로 플래시 메모리에 대한 읽기 요청을 처리할 수 있도록 하는 것을 목적으로 한다.
또한 본 발명은 플래시 메모리에 대한 읽기 요청 처리를 수행하면서 프로세서의 상태와 무관하게 빠른 읽기 요청 처리가 가능하도록 하는 것을 목적으로 한다.
또한 본 발명은 프로세서와 사상 테이블을 공유하면서도 사상 테이블에 대한 동기화를 유지할 수 있도록 하는 것을 목적으로 한다.
또한, 본 발명은 플래시 메모리 및 쓰기 버퍼에 데이터가 분산되어 저장된 경우 이를 병합하여 읽기 요청을 처리할 수 있도록 하는 것을 목적으로 한다.
또한, 본 발명은 디스크립터 배열을 이용하여 한 번의 읽기 요청으로 플래시 메모리 및 쓰기 버퍼에 분산된 데이터를 확인할 수 있도록 하는 것을 목적으로 한다.
상기의 목적을 이루고 종래기술의 문제점을 해결하기 위하여, 본 발명의 일실시예에 따른 읽기 요청 처리 시스템은 호스트 인터페이스(host interface)로부터 논리 주소 정보(logical address information)를 포함하는 읽기 요청을 수신하는 읽기 요청 수신부, 사상 테이블(translation table)을 참조하여 상기 논리 주소 정보에 포함된 논리 주소(logical address)를 기초로 상기 논리 주소에 대응되는 물리 주소가 상기 사상 테이블에서 유효한지 판단하는 물리 주소 유효성 판단부, 상기 논리 주소에 대응되는 물리 주소가 상기 사상 테이블에서 유효한 경우, 상기 사상 테이블을 참조하여 상기 논리 주소에 대응되는 상기 물리 주소를 수신하는 물리 주소 수신부; 및 상기 물리 주소에 대응되는 데이터를 플래시 메모리로부터 읽도록 요청하는 읽기 요청부를 포함하고, 프로세서와 독립적으로 동작한다.
또한 본 발명의 다른 실시예에 따른 읽기 요청 처리 시스템은 프로세서로부터 논리 섹터 정보(logical sector information)를 포함하는 디스크립터(descriptor)를 하나 이상 포함하는 디스크립터 배열(descriptor array)을 수신하는 디스크립터 배열 수신부, 상기 디스크립터 배열에 포함된 디스크립터를 참고하여 플래시 메모리 또는 쓰기 버퍼로부터 각 디스크립터의 논리 섹터 정보에 대응되는 논리 섹터의 데이터를 읽도록 요청하는 읽기 요청부 및 상기 플래시 메모리 또는 상기 쓰기 버퍼로부터 읽은 데이터를 상기 디스크립터 배열의 순서에 따라 병합하는 데이터 병합부를 포함하고 프로세서와 독립적으로 동작한다.
또한 본 발명의 일실시예에 따른 읽기 요청 처리 방법은 호스트 인터페이스로(host interface)부터 논리 주소 정보(logical address information)를 포함하는 읽기 요청을 수신하는 단계, 사상 테이블(translation table)을 참조하여 상기 논리 주소 정보에 포함된 논리 주소(logical address)를 기초로 상기 논리 주소에 대응되는 물리 주소가 상기 사상 테이블에서 유효한지 판단하는 단계, 상기 논리 주소에 대응되는 물리 주소가 상기 사상 테이블에서 유효한 경우, 상기 사상 테이블을 참조하여 상기 논리 주소에 대응되는 상기 물리 주소를 수신하는 단계 및 상기 물리 주소에 대응되는 데이터를 플래시 메모리로부터 읽도록 요청하는 단계를 포함한다.
또한 본 발명의 또 다른 일실시예에 따른 읽기 요청 처리 시스템은 프로세서로부터 논리 섹터 정보(logical sector information)를 포함하는 디스크립 터(descriptor)를 하나 이상 포함하는 디스크립터 배열(descriptor array)을 수신하는 단계, 상기 디스크립터 배열에 포함된 디스크립터를 참고하여 플래시 메모리 또는 쓰기 버퍼로부터 각 디스크립터의 논리 섹터 정보에 대응되는 논리 섹터의 데이터를 읽도록 요청하는 단계 및 상기 플래시 메모리 또는 상기 쓰기 버퍼로부터 읽은 데이터를 상기 디스크립터 배열의 순서에 따라 병합하는 단계를 포함한다.
이하 첨부된 도면들 및 첨부된 도면들에 기재된 내용들을 참조하여 본 발명의 바람직한 실시예를 상세하게 설명하지만, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 2는 본 발명의 일실시예에 따른 읽기 요청 처리 시스템을 포함하는 플래시 메모리 기반 저장 장치의 구성을 도시한 도면이다.
도면에서 읽기 요청 처리 시스템(260)는 호스트 인터페이스(240)의 신호에 따라 프로세서(210)와 독립적으로 동작하며, 호스트 인터페이스(240)가 전달한 호스트 요청 정보를 가지고 사상 테이블(220)에 접근하여 플래시 메모리 제어기(250)를 위한 요청을 생성하고 플래시 메모리 제어기(250)의 동작을 시작시킨다. 플래시 메모리에서 읽혀진 데이터는 메모리(230)를 거쳐 (또는 FIFO를 통해 직접) 호스트 인터페이스(240)로 전달되고 호스트 인터페이스(240)는 호스트 전송 프로토콜에 따라 데이터를 호스트로 전송한다. 이때, 프로세서(210)는 처리되는 읽기 요청과는 상관없이 FTL의 다른 작업들을 수행할 수 있다.
읽기 요청 처리 시스템(260)은 호스트 요청이 들어올 때 비봉쇄적 (non- blocking) 인터럽트(interrupt)를 프로세서(210)에 보내어 요청 처리가 시작되었음을 알려주고, 유효하지 않은 논리 주소 등의 오류 발생 시 상태 레지스터를 통해 오류 발생 원인을 프로세서(210)에 알려준다. 프로세서(210)는 시스템 시작 시 읽기 요청 처리 시스템(260)에 사상 테이블(220)의 주소와 전체 논리 주소 공간의 크기 등 필요한 정보를 설정한다. 이 작업은 시스템 시작 시 한번만 수행된다.
표 1은 읽기 요청 처리 시스템(260)의 가능한 제어, 상태 레지스터 형식 중 하나를 보여준다. Enable 플래그는 읽기 요청 처리 시스템(260)을 활성화하도록 설정한다. 상태 레지스터의 각 플래그는 정상 처리 여부와 오류 발생 시 오류 원인을 나타낸다.
Figure 112007010402783-pat00001
프로세서(210)는 쓰레기 수집, 마모도 평균화 등의 관리 작업 시 작업의 대상에 해당하는 사상 테이블(220) 영역을 갱신한다. 이때, 호스트 읽기 요청이 들어와 변경 중인 사상 테이블(220) 영역을 참조할 경우 이미 무효화된 이전 사상 값을 사용해 잘못된 플래시 메모리 요청을 만드는 문제가 발생할 수 있다. 이를 피하기 위해, 각 사상 테이블(220) 엔트리는 현재 해당 엔트리가 무효한지를 나타내는 플래그를 두어 작업 중인 엔트리에 대해서는 읽기 요청 처리 시스템(260)이 동작하지 않도록 설정할 수 있다.
표 2는 가능한 사상 테이블 엔트리 형식 중 하나를 보여 준다. 이 예에서는 FTL이 블록 단위 사상을 사용하는 경우로, 각각의 엔트리는 논리 블록에 사상된 물리 블록의 주소를 나타내며 최상위 비트는 물리 주소의 무효 여부를 나타내는 플래그로 사용된다. 이 비트가 설정되어 있는 경우 읽기 요청 처리 시스템은 '유효하지 않은 물리 주소' 에러 비트를 상태 레지스터에 설정하고 자동 처리를 중단한다.
Figure 112007010402783-pat00002
도 3은 본 발명의 또 다른 일실시예에 따른 읽기 요청 처리 시스템을 포함하는 플래시 메모리 기반 저장 장치의 구성을 도시한 도면이다.
호스트 인터페이스(350)는 프로세서(310)에 호스트 읽기 요청 처리가 시작되었음을 알리는 인터럽트를 보내고 프로세서(310)는 플래시 메모리 읽기 요청을 생성하여 플래시 메모리 제어기(360)를 동작시킨다. 이후 프로세서(310)는 쓰기 버퍼(330)를 검색하여 현재 처리 중인 읽기 요청에 포함되는 섹터가 존재하는지 찾는다. 그리고, 읽기 요청 처리 시스템(340)은 쓰기 버퍼(330)에 존재하는 섹터들에 대해서는 쓰기 버퍼(330)로부터, 그렇지 않은 섹터들에 대해서는 플래시 메모리 제어기(360)에서 전달되는 데이터를 호스트 인터페이스(350)로 전송한다.
상기 작업을 효율적으로 처리하기 위해 읽기 요청 처리 시스템(340)은 디스크립터 배열(descriptor array) 기반으로 하나의 읽기 요청을 한번 동작으로 처리할 수 있는 기능을 갖는다. 프로세서(310)는 쓰기 버퍼(330)에 연속적으로 존재하는 섹터 구간들에 대해 각각 디스크립터를 작성하고 이들을 제외한 플래시 메모리에서 전송될 나머지 섹터 구간들에 대해서도 각각 디스크립터를 작성한다. 읽기 요청 전체에 대한 디스크립터 배열이 구성되면 상기 디스크립터 배열의 시작 주소를 읽기 요청 처리 시스템(340)에 설정하고 읽기 요청 처리 시스템(340)을 동작시킨다. 읽기 요청 처리 시스템(340)은 디스크립터 배열에 기술된 대로 순차적으로 각 섹터 구간들을 처리하게 된다. 일단 디스크립터 배열 작성 작업이 완료되어 읽기 요청 처리 시스템(340)을 동작시키고 나면 프로세서(310)의 역할은 끝나며 다른 작업 처리에 사용될 수 있다.
표 3은 읽기 요청 처리 시스템(340)의 동작을 지시하는 가능한 디스크립터 형식의 일례를 나타낸다. 각 디스크립터는 몇 개의 연속된 섹터에 대해 쓰기 버퍼(330) 또는 플래시 메모리 제어기(360) 어느 쪽에서 데이터를 전송해야 하는지를 나타내며, 쓰기 버퍼(330)에서 전송하는 경우는 해당 섹터가 존재하는 쓰기 버퍼(330)의 주소를 담고 있다. EOA 플래그는 디스크립터 배열의 끝을 나타낸다. 플래시 메모리 데이터 버리기 여부 플래그는 섹터들을 쓰기 버퍼(330)에서 전송하는 경우 해당 섹터 수만큼 플래시 메모리 제어기(360)에서 전송된 데이터를 버릴 것인지의 여부를 나타낸다.
Figure 112007010402783-pat00003
도 4는 본 발명의 일실시예에 따른 읽기 요청 처리 시스템의 내부 구성을 도시한 구성도이다.
도면에 도시한 바와 같이 본 발명의 일실시예에 따른 읽기 요청 처리 시스템(401)은 읽기 요청 수신부(410), 물리 주소 유효성 판단부(420), 논리 주소 유효성 판단부(430), 물리 주소 수신부(440), 읽기 요청부(450), 오류 처리부(460) 및 시스템 활성화 요청 수신부(470)를 포함한다. 상기한 구성요소들은 소프트웨어, 하드웨어 또는 소프트웨어 및 하드웨어가 결합된 형태로 구현될 수 있으며, 서로 통신 가능한 형태로 연결될 수 있다. 이하 구성요소 별로 상술하도록 한다.
읽기 요청 수신부(410)는 호스트 인터페이스(host interface)로부터 논리 주소 정보(logical address information)을 포함하는 읽기 요청을 수신한다. 상기 논리 주소 정보는 플래시 메모리에 저장된 데이터를 가리키는 논리 주소 자체일 수도 있고, 논리 주소 이외에도 다른 정보를 더 포함하는 정보일 수 있으며, 상기 논리 주소 정보를 기초로 논리 주소를 생성할 수 있도록 할 수도 있다.
또한, 읽기 요청 수신부(410)는 읽기 요청을 수신하면, 상기 읽기 요청을 수신하였음을 프로세서에 알릴 수 있으며, 비 봉쇄적 인터럽트를 이용함으로써 프로세서가 실시간으로 확인하도록 할 수 있다. 이로써, 프로세서는 읽기 요청 수신부에서 읽기 요청에 대한 처리를 시작하였는지 여부를 확인할 수 있다.
물리 주소 유효성 판단부(420)는 사상 테이블(translation table)을 참조하여 읽기 요청 처리부에서 수신한 읽기 요청에 포함된 논리 주소 정보에 포함된 논리 주소를 기초로 논리 주소에 대응되는 물리 주소가 상기 사상 테이블에서 유효한지 판단한다. 읽기 요청 처리 시스템(401)은 프로세서와 독립적으로 동작하기 때문에, 프로세서에서 읽기 요청 처리 이외에 상기 사상 테이블을 변경하는 작업을 수행하는 경우, 이 것이 읽기 요청 처리 시스템에서 동기화되지 못하여 문제가 발생할 수 있다. 이를 방지하기 위하여, 메인 메모리에서 사상 테이블을 변경한 경우에는 사상 테이블에 기록된 물리 주소가 유효하지 않은 것으로 설정해 둘 수 있다. 이를 위하여 사상 테이블에 저장되는 물리 주소 정보에 유효성 여부를 나타내는 플래그를 둘 수 있다.
논리 주소 유효성 판단부(430)는 읽기 요청 수신부(410)에서 수신한 논리 주소 정보에 포함된 논리 주소가 유효한지 여부를 판단한다. 이는 잘못된 논리 주소를 입력 받은 경우에 이에 대한 에러 처리를 수행하기 위한 것이다.
물리 주소 수신부(440)는 읽기 요청 수신부(410)에서 수신한 논리 주소 정보에 포함된 논리 주소에 대응되는 물리 주소가 상기 사상 테이블에서 유효한 경우, 상기 사상 테이블을 참조하여 상기 논리 주소에 대응되는 상기 물리 주소를 수신한다. 플래시 메모리는 일반적으로 물리 주소 및 논리 주소가 구분되고, 실제로 저장되는 주소를 물리 주소, 시스템에서 데이터를 식별하기 위하여 사용되는 주소를 논리 주소라 한다. 따라서, 실제로 데이터를 읽어오기 위해서는 실제 데이터가 기록되어 있는 물리 주소를 확인해야 하고, 물리 주소 수신부(440)에서 이와 같은 역할을 수행하게 된다.
읽기 요청부(450)는 물리 주소 수신부(440)에서 수신한 물리 주소에 대응되는 데이터를 플래시 메모리로부터 읽도록 요청한다. 상기 요청은 플래시 메모리에 실제 데이터를 읽고 쓰는 모듈에게 전달될 수 있으며, 상기 모듈은 상기 물리 주소를 이용하여 플래시 메모리의 상기 물리 주소에 존재하는 실제 데이터를 읽게 된다. 상기 읽은 데이터는 호스트 인터페이스로 전달될 수 있다.
오류 처리부(460)는 상기 논리 주소에 대응되는 상기 물리 주소가 상기 사상 테이블에서 유효하지 않거나, 상기 논리 주소가 유효하지 않은 경우, 오류 정보(error information)을 상기 프로세서로 전송한다. 상기 오류 정보는 프로세서에서 접근 가능한 레지스터에 저장되어 프로세서에서 확인하도록 할 수 있다. 또한, 오류 처리부(460)는 이 밖에도 읽기 요청 처리 시스템에서 오류가 발생하게 되는 경우 이를 프로세서에 알림으로써, 프로세서가 적절히 대응하도록 할 수 있다.
시스템 활성화 요청 수신부(470)는 프로세서로부터 시스템 활성화 요청을 수신한다. 상기 시스템 활성화 요청은 읽기 요청 처리 시스템(401)이 동작을 시작하도록 하는 요청으로 상기 요청을 수신하기 전에는 읽기 요청 처리 시스템(401)이 별도의 동작 없이 대기 상태를 유지할 수 있다. 또한, 상기 시스템 활성화 요청은 읽기 요청 처리 시스템(401)에서 사용할 사상 테이블의 시작 주소를 포함할 수 있으며, 사용 가능한 논리 주소 범위에 대한 정보 등 시스템 동작에 필요한 다양한 정보를 포함함으로써, 읽기 요청 처리 시스템(401)이 정상적으로 동작을 개시하도록 할 수 있다.
도 5는 본 발명의 또 다른 일실시예에 따른 읽기 요청 처리 시스템의 내부 구성을 도시한 구성도이다.
도면에 도시한 바와 같이 본 발명의 일실시예에 따른 읽기 요청 처리 시스템(501)은 디스크립터 배열 수신부(510), 읽기 요청부(520) 및 데이터 병합부(530)를 포함한다. 상기한 구성요소들은 소프트웨어, 하드웨어 또는 소프트웨어 및 하드웨어가 결합된 형태로 구현될 수 있으며, 서로 통신 가능한 형태로 연결될 수 있다. 이하 구성요소 별로 상술하도록 한다.
디스크립터 배열 수신부(510)는 프로세서로부터 논리 섹터 정보(logical sector information)를 포함하는 디스크립터(descriptor)를 하나 이상 포함하는 디스크립터 배열(descriptor array)을 수신한다. 상기 디스크립터 배열은 상기 프로세서에서 생성한 것으로, 디스크립터 배열 수신부(510)는 프로세서로부터 버스 또는 네트워크 등을 통하여 직접 디스크립터 배열을 수신할 수도 있고, 프로세서에서 메모리에 디스크립터 배열을 저장해 두면 이를 읽어서 수신할 수도 있다.
상기 디스크립터는 상기 디스크립터의 논리 섹터 정보에 대응되는 논리 섹터의 데이터가 상기 플래시 메모리 및 상기 쓰기 버퍼 중 어느 쪽에 저장되어 있는지를 나타내는 정보를 포함할 수 있다. 이에 따라서, 읽기 요청 처리 시스템은 쓰기 버퍼 및 플래시 메모리에 분산되어 있는 데이터를 각각 읽어 하나의 데이터로 결합시킬 수 있다. 또한, 상기 디스크립터는 상기 디스크립터의 논리 섹터 정보에 대응되는 논리 섹터의 데이터가 쓰기 버퍼에 저장되어 있는 경우 플래시 메모리로부터 읽은 데이터를 사용할 지 여부에 관한 정보를 포함할 수 있다. 이에 따라 쓰기 버퍼에 포함된 데이터에 대해서는 플래시 메모리에서 데이터를 읽어오더라도 이를 사용하지 않고 버리도록 할 수 있다.
읽기 요청부(520)는 상기 디스크립터 배열에 포함된 디스크립터를 참고하여 플래시 메모리 또는 쓰기 버퍼로부터 각 디스크립터의 논리 섹터 정보에 대응되는 논리 섹터의 데이터를 읽도록 요청한다. 쓰기 버퍼로부터는 데이터를 직접 읽어올 수도 있고, 별도의 모듈을 통하여 읽어올 수도 있으며, 플래시 메모리로부터는 플래시 메모리에 데이터를 읽고 쓰기 위한 별도의 모듈을 통하여 데이터를 읽어오도록 요청할 수 있다. 이 때 상기 별도의 모듈은 미리 플래시 메모리로부터 데이터를 읽어 FIFO 등의 저장장치에 저장해 두었다가 상기 요청에 따라 상기 저장장치에 저장된 데이터를 읽기 요청 처리 시스템에서 읽을 수 있도록 할 수도 있다.
데이터 병합부(530)는 상기 플래시 메모리 또는 상기 쓰기 버퍼로부터 읽은 데이터를 상기 디스크립터 배열의 순서에 따라 병합한다. 따라서, 플래시 메모리 및 쓰기 버퍼에 데이터가 분산되어 있는 경우 이 데이터를 병합하여 제공함으로써, 호스트 인터페이스 및 프로세서 입장에서는 간단하게 병합된 데이터를 확인할 수 있는 효과가 있다.
도 6은 본 발명의 일실시예에 따른 읽기 요청 처리 방법의 흐름을 도시한 흐름도이다.
호스트 읽기 요청이 들어오면 읽기 요청 처리 시스템의 동작이 시작되며 호스트 인터페이스로부터 읽기 요청의 인자를 전달받는다(S601). 요청 인자가 논리 섹터 주소 형태로 되어 있지 않은 경우 논리 섹터 주소로 변환이 필요할 수 있다. 예를 들어 ATA 프로토콜의 경우 실린더, 헤드, 섹터 번호 형태로 시작 섹터 인자를 받을 수 있고 이럴 경우 현재의 헤드 수와 실린더 당 섹터 수 설정 값을 이용해 선형적인 논리 섹터 주소로 변환한다(S602). 인자로 받거나 인자로부터 변환한 논리 섹터 주소가 유효한 범위 내에 있지 않는 경우 더 이상 처리를 계속할 수 없으므로 상태 레지스터에 해당 에러 플래그를 설정하고 처리를 종료한다(S608).
유효한 논리 섹터 주소가 주어지면 초기화 시 설정된 사상 테이블 시작 주소와 테이블 엔트리 크기를 이용하여 실제 논리 주소에 해당하는 사상 테이블 엔트리 주소를 계산하고 그 주소의 물리 주소를 읽어 온다(S604). 물리 주소의 무효 플래그를 검사하여 무효한 경우 상태 레지스터에 해당 에러 플래그를 설정하고 처리 과정을 종료한다(S608).
유효한 물리 주소인 경우 플래시 메모리 제어기에서 정의한 형식의 읽기 요청을 생성한다(S606). 표 4은 가능한 플래시 메모리 제어기 요청 형식 중 하나를 보여준다. 이 실시예에서 하나의 플래시 메모리 읽기 요청은 물리적 플래시 메모리 블록 번호, 블록 내의 시작 섹터 번호, 읽으려는 섹터 개수 정보로 구성된다. 다음으로 생성한 플래시 메모리 읽기 요청을 제어기에 설정한 뒤 제어기 동작을 시작시킨다(S608).
Figure 112007010402783-pat00004
읽기 요청 처리 시스템이 상술한 몇 가지 이유들로 인해 정상적인 동작을 수행할 수 없는 경우에는 기존 방식대로 프로세서가 동작하여 에러 원인을 분석하고 그에 따른 적절한 처리를 수행해야 한다. 사상 테이블의 엔트리가 일시적으로 무효화되어 있는 경우는 엔트리 변경 작업이 완료되기를 기다려 플래시 메모리 제어기 요청을 시작시키는 작업을 해야 하며, 호스트 요청이 잘못된 논리 섹터에 대한 읽기인 경우는 에러임을 호스트로 전달해야 한다.
도 7는 본 발명의 또 다른 일실시예에 따른 읽기 요청 처리 방법의 흐름을 도시한 도면이다.
읽기 요청 처리 시스템의 동작이 시작되면 주어진 디스크립터 배열의 시작 주소로부터 디스크립터 배열의 첫 디스크립터를 읽어 들인다(S701). 섹터들을 어디로부터 전송 받아야 하는지를 판단하고(S702) 플래시 메모리 제어기에서 전송 받아야 하는 경우는 플래시 메모리 제어기 FIFO로부터 설정된 섹터 수만큼을 전송하고(S705) 쓰기 버퍼에서 전송해야 하는 경우는 디스크립터 상의 쓰기 버퍼 주소를 이용하여 쓰기 버퍼를 접근하여 설정된 섹터 수만큼을 전송한다(S703). 또한, 쓰기 버퍼에서 데이터를 전송하는 경우에도 플래시 메모리 제어기 FIFO에서는 동일한 수의 섹터 데이터를 꺼내야 할 필요가 있다(S704). 하나의 디스크립터 처리가 끝나면 디스크립터 배열의 끝을 나타내는 플래그(EOA)가 설정되어 있는지 확인하고, 설정되어 있지 않은 경우 다음 디스크립터로 진행하여 처리 작업을 반복한다(S706).
도 8은 본 발명의 일실시예에 따른 읽기 요청 처리 시스템에서 쓰기 버퍼를 포함하는 경우 호스트 읽기 요청을 처리하는 것의 일례를 도시한 도면이다.
호스트에서는 10번 논리 섹터에서 17번 논리 섹터를 읽으려고 할 때 11, 14, 15, 17번 논리 섹터가 쓰기 버퍼(810)에 존재한다. 이 읽기 요청(820)을 처리하는데 있어 2가지 방법이 가능하다. 첫 번째는 쓰기 버퍼(810)에 존재하는 섹터들에 대해서는 아예 플래시 메모리 제어기로 읽기 요청을 내지 않고 <10>, <12, 13>, <16> 구간에 해당하는 3개의 요청으로 나누는 방법이고 다른 방법은 <10, 17>까지의 전체 구간에 대한 플래시 메모리 읽기 요청을 일단 낸 뒤 쓰기 버퍼(810)에서 전송해야 하는 <11>, <14, 15>, <17>에 대해서는 플래시 메모리 제어기에서 전송되는 데이터를 사용하지 않고 그냥 버리는 방법이다. 전자의 경우 플래시 메모리 읽기 요청을 여러 개를 만들기 위한 처리 오버헤드가 후자의 경우에 비해 상대적으로 커지므로 본 실시 예에서는 후자의 방법을 사용하는 것이 바람직할 수 있으나, 전자의 방법 역시 본 발명에 적용 가능하며 이로부터 본 발명의 권리범위가 제한되지 않는다. 이를 위해 디스크립터에 플래시 메모리의 데이터를 버릴 것인지의 여부를 나타내는 플래그를 사용한다. 이 플래그가 1인 경우 플래시 메모리에서 전송된 데이터는 디스크립터의 섹터 수만큼 버려진다.
도 9은 본 발명의 일실시예에 따른 읽기 요청 처리 시스템에서 호스트 읽기 요청에 대응되는 디스크립터 배열의 일례를 도시한 도면이다. 도면에서 읽기 요청은 총 6개(도면 부호 921 내지 926)의 구간으로 나뉘며 그 중 3개(도면 부호 921, 923 및 925)는 플래시 메모리에서 나머지 3개(도면 부호 922, 924 및 926)는 쓰기 버퍼에서 읽도록 설정된다. 도면에 도시된 디스크립터는 상기 표 3에 예시된 디스크립터와 같다.
본 발명에 따른 읽기 요청 처리 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 이는 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명 사상은 아래에 기재된 특허 청구 범위에 의해서만 파악되어야 하고, 이의 균등 또는 등가적 변형 모두는 본 발명 사상의 범주에 속한다고 할 것이다.
본 발명에 따르면, 프로세서와 독립적으로 플래시 메모리에 대한 읽기 요청을 처리할 수 있도록 하는 효과가 있다.
또한 본 발명에 따르면 플래시 메모리에 대한 읽기 요청 처리를 수행하면서 프로세서의 상태와 무관하게 빠른 읽기 요청 처리가 가능하도록 하는 효과가 있다.
또한 본 발명에 따르면 프로세서와 사상 테이블을 공유하면서도 사상 테이블에 대한 동기화를 유지할 수 있도록 하는 효과가 있다.
또한, 본 발명에 따르면 플래시 메모리 및 쓰기 버퍼에 데이터가 분산되어 저장된 경우 이를 병합하여 읽기 요청을 처리할 수 있도록 하는 효과가 있다.
또한, 본 발명에 따르면 디스크립터 배열을 이용하여 한 번의 읽기 요청으로 플래시 메모리 및 쓰기 버퍼에 분산된 데이터를 확인할 수 있도록 하는 효과가 있다.

Claims (19)

  1. 호스트 인터페이스(host interface)로부터 논리 주소 정보(logical address information)를 포함하는 읽기 요청을 수신하는 읽기 요청 수신부;
    사상 테이블(translation table)을 참조하여 상기 논리 주소 정보에 포함된 논리 주소(logical address)를 기초로 상기 논리 주소에 대응되는 물리 주소가 상기 사상 테이블에서 유효한지 판단하는 물리 주소 유효성 판단부;
    상기 논리 주소에 대응되는 물리 주소가 상기 사상 테이블에서 유효한 경우, 상기 사상 테이블을 참조하여 상기 논리 주소에 대응되는 상기 물리 주소를 수신하는 물리 주소 수신부;
    상기 물리 주소에 대응되는 데이터를 플래시 메모리로부터 읽도록 요청하는 읽기 요청부; 및
    상기 프로세서로부터 상기 사상 테이블의 주소를 포함하는 시스템 활성화 요청을 수신하는 시스템 활성화 요청 수신부
    를 포함하고, 프로세서와 독립적으로 동작하는 읽기 요청 처리 시스템.
  2. 제1항에 있어서,
    상기 논리 주소가 유효한지 여부를 판단하는 논리 주소 유효성 판단부
    를 더 포함하는 읽기 요청 처리 시스템.
  3. 제2항에 있어서,
    상기 논리 주소에 대응되는 상기 물리 주소가 상기 사상 테이블에서 유효하 지 않거나, 상기 논리 주소가 유효하지 않은 경우, 오류 정보(error information)을 상기 프로세서로 전송하는 오류 처리부
    를 더 포함하는 읽기 요청 처리 시스템.
  4. 제3항에 있어서,
    상기 오류 처리부는,
    상기 오류 정보를 상기 프로세서가 접근 가능한 레지스터에 저장하는 것
    을 특징으로 하는 읽기 요청 처리 시스템.
  5. 제1항에 있어서,
    상기 읽기 요청 수신부는,
    상기 읽기 요청을 수신하면, 상기 프로세서에 읽기 요청 처리를 시작함을 알리는 것
    을 특징으로 하는 읽기 요청 처리 시스템.
  6. 제5항에 있어서,
    상기 읽기 요청 수신부는,
    상기 프로세서에서 확인 가능한 인터럽트(interrupt)를 발생시켜 상기 읽기 요청 처리를 시작함을 알리는 것
    을 특징으로 하는 읽기 요청 처리 시스템.
  7. 삭제
  8. 삭제
  9. 제1항에 있어서,
    상기 시스템 활성화 요청은 전체 논리 주소 공간의 크기를 포함하는 것
    을 특징으로 하는 읽기 요청 처리 시스템.
  10. 삭제
  11. 삭제
  12. 삭제
  13. 호스트 인터페이스(host interface)로부터 논리 주소 정보(logical address information)를 포함하는 읽기 요청을 수신하는 단계;
    사상 테이블(translation table)을 참조하여 상기 논리 주소 정보에 포함된 논리 주소(logical address)를 기초로 상기 논리 주소에 대응되는 물리 주소가 상기 사상 테이블에서 유효한지 판단하는 단계;
    상기 논리 주소에 대응되는 물리 주소가 상기 사상 테이블에서 유효한 경우, 상기 사상 테이블을 참조하여 상기 논리 주소에 대응되는 상기 물리 주소를 수신하는 단계;
    상기 물리 주소에 대응되는 데이터를 플래시 메모리로부터 읽도록 요청하는 단계; 및
    상기 프로세서로부터 상기 사상 테이블의 주소를 포함하는 시스템 활성화 요청을 수신하는 단계
    를 포함하는 읽기 요청 처리 방법.
  14. 제13항에 있어서,
    상기 논리 주소가 유효한지 여부를 판단하는 단계
    를 더 포함하는 읽기 요청 처리 방법.
  15. 제14항에 있어서,
    상기 논리 주소에 대응되는 상기 물리 주소가 상기 사상 테이블에서 유효하지 않거나, 상기 논리 주소가 유효하지 않은 경우, 오류 정보(error information)을 프로세서로 전송하는 단계
    를 더 포함하는 읽기 요청 처리 방법.
  16. 삭제
  17. 삭제
  18. 삭제
  19. 제13항 내지 제15항의 방법 중 어느 한 항의 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록매체.
KR1020070011249A 2007-02-02 2007-02-02 읽기 요청 처리 시스템 및 방법 KR100881597B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020070011249A KR100881597B1 (ko) 2007-02-02 2007-02-02 읽기 요청 처리 시스템 및 방법
PCT/KR2008/000430 WO2008093961A1 (en) 2007-02-02 2008-01-24 System and method for processing read request
US12/525,543 US8255663B2 (en) 2007-02-02 2008-01-24 System and method for processing read request

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070011249A KR100881597B1 (ko) 2007-02-02 2007-02-02 읽기 요청 처리 시스템 및 방법

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020080059150A Division KR100903051B1 (ko) 2008-06-23 2008-06-23 읽기 요청 처리 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20080072447A KR20080072447A (ko) 2008-08-06
KR100881597B1 true KR100881597B1 (ko) 2009-02-03

Family

ID=39674228

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070011249A KR100881597B1 (ko) 2007-02-02 2007-02-02 읽기 요청 처리 시스템 및 방법

Country Status (3)

Country Link
US (1) US8255663B2 (ko)
KR (1) KR100881597B1 (ko)
WO (1) WO2008093961A1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8006039B2 (en) * 2008-02-25 2011-08-23 International Business Machines Corporation Method, system, and computer program product for merging data
KR100980667B1 (ko) * 2008-09-17 2010-09-07 한국과학기술원 Ssd에서의 임의 쓰기 성능을 개선하기 위한 저장 장치, 방법, 및 컴퓨터 판독 가능한 기록 매체
KR101861744B1 (ko) 2013-02-28 2018-05-29 삼성전자주식회사 데이터 블록 오프셋에 기초하여 버퍼 디스크립터의 타겟 엔트리 어드레스를 계산할 수 있는 집적 회로와 상기 집적 회로를 포함하는 시스템
US9959203B2 (en) * 2014-06-23 2018-05-01 Google Llc Managing storage devices
CN105849688B (zh) * 2014-12-01 2019-10-22 华为技术有限公司 数据写入的方法、装置、设备和存储系统
CN106033319A (zh) * 2015-03-11 2016-10-19 广明光电股份有限公司 固态硬盘动态建立转换层的方法
US10380100B2 (en) 2016-04-27 2019-08-13 Western Digital Technologies, Inc. Generalized verification scheme for safe metadata modification
US10380069B2 (en) * 2016-05-04 2019-08-13 Western Digital Technologies, Inc. Generalized write operations verification method
US10776308B2 (en) * 2017-06-30 2020-09-15 Intel Corporation Smart memory data store or load method and apparatus
KR20190086177A (ko) * 2018-01-12 2019-07-22 에스케이하이닉스 주식회사 컨트롤러 및 그것의 동작방법
US10997066B2 (en) * 2018-02-20 2021-05-04 Samsung Electronics Co., Ltd. Storage devices that support cached physical address verification and methods of operating same
KR102651408B1 (ko) * 2018-02-20 2024-03-26 삼성전자주식회사 스토리지 디바이스 및 스토리지 디바이스의 동작 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040042478A (ko) * 2002-11-14 2004-05-20 삼성전자주식회사 플래시 메모리, 그에 따른 플래시 메모리 액세스 장치 및방법
WO2005069288A1 (en) 2004-01-19 2005-07-28 Trek 2000 International Ltd. Portable data storage device using a memory address mapping table
JP2005209058A (ja) 2004-01-26 2005-08-04 Megawin Technology Co Ltd フラッシュメモリの読み書きの制御方法
KR20060113248A (ko) * 2005-04-30 2006-11-02 삼성전자주식회사 낸드 플래시 메모리 제어 장치 및 방법

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3706167B2 (ja) * 1995-02-16 2005-10-12 株式会社ルネサステクノロジ 半導体ディスク装置
US6418506B1 (en) * 1996-12-31 2002-07-09 Intel Corporation Integrated circuit memory and method for transferring data using a volatile memory to buffer data for a nonvolatile memory array
US6377500B1 (en) * 1999-11-11 2002-04-23 Kabushiki Kaisha Toshiba Memory system with a non-volatile memory, having address translating function
JP4058322B2 (ja) * 2002-10-07 2008-03-05 株式会社ルネサステクノロジ メモリカード
US8041878B2 (en) * 2003-03-19 2011-10-18 Samsung Electronics Co., Ltd. Flash file system
KR20050076274A (ko) * 2004-01-20 2005-07-26 삼성전자주식회사 디스크립터 dma콘트롤러를 채용한 더블 버퍼링 dma데이터전송장치
EP1870814B1 (en) * 2006-06-19 2014-08-13 Texas Instruments France Method and apparatus for secure demand paging for processor devices
KR100568115B1 (ko) * 2004-06-30 2006-04-05 삼성전자주식회사 점진적 머지 방법 및 그것을 이용한 메모리 시스템
KR100706242B1 (ko) * 2005-02-07 2007-04-11 삼성전자주식회사 메모리 시스템 및 그것의 런 단위 어드레스 매핑 테이블 구성 방법
JP5162846B2 (ja) * 2005-07-29 2013-03-13 ソニー株式会社 記憶装置、コンピュータシステム、および記憶システム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040042478A (ko) * 2002-11-14 2004-05-20 삼성전자주식회사 플래시 메모리, 그에 따른 플래시 메모리 액세스 장치 및방법
WO2005069288A1 (en) 2004-01-19 2005-07-28 Trek 2000 International Ltd. Portable data storage device using a memory address mapping table
JP2005209058A (ja) 2004-01-26 2005-08-04 Megawin Technology Co Ltd フラッシュメモリの読み書きの制御方法
KR20060113248A (ko) * 2005-04-30 2006-11-02 삼성전자주식회사 낸드 플래시 메모리 제어 장치 및 방법

Also Published As

Publication number Publication date
US8255663B2 (en) 2012-08-28
WO2008093961A1 (en) 2008-08-07
KR20080072447A (ko) 2008-08-06
US20100115190A1 (en) 2010-05-06

Similar Documents

Publication Publication Date Title
KR100881597B1 (ko) 읽기 요청 처리 시스템 및 방법
KR102074329B1 (ko) 데이터 저장 장치 및 그것의 데이터 처리 방법
EP2849076B1 (en) Dma transmission method and system
US8489803B2 (en) Efficient use of flash memory in flash drives
US20180165014A1 (en) Array controller, solid state disk, and method for controlling solid state disk to write data
US9336153B2 (en) Computer system, cache management method, and computer
US20120110239A1 (en) Causing Related Data to be Written Together to Non-Volatile, Solid State Memory
KR100794312B1 (ko) 명령어 자동 처리 유니트를 포함한 메모리 컨트롤러 및그를 포함한 메모리 시스템
CN111007991B (zh) 基于nvdimm分离读写请求的方法及其计算机
KR102335838B1 (ko) 에너지-백 메모리에 대한 영구 기록 데이터
KR101654807B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
JP6139381B2 (ja) メモリシステムおよび方法
WO2017113213A1 (zh) 访问请求处理方法、装置及计算机系统
CN108319430B (zh) 处理io请求的方法及装置
US20220188020A1 (en) Memory system and method of controlling nonvolatile memory
KR20180126656A (ko) 데이터 저장 장치 및 그것의 동작 방법
CN112764669B (zh) 一种硬件加速器
CN112765055B (zh) 存储设备的控制部件
US20240086113A1 (en) Synchronous write method and device, storage system and electronic device
KR100903051B1 (ko) 읽기 요청 처리 시스템 및 방법
US10282301B2 (en) Method and system for hardware accelerated read-ahead caching
KR101549569B1 (ko) 가비지 컬렉션 수행 방법 및 그 방법을 이용한 플래시 메모리 장치
US20060277326A1 (en) Data transfer system and method
CN113254363A (zh) 具有部分逻辑到物理地址转换表的非易失性存储控制器
KR20130010731A (ko) 메모리 장치

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
A107 Divisional application of patent
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130129

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140129

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20150129

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20160128

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee