KR101457802B1 - 병렬화 기법을 활용하는 플래시 메모리 칩 - Google Patents

병렬화 기법을 활용하는 플래시 메모리 칩 Download PDF

Info

Publication number
KR101457802B1
KR101457802B1 KR20130062822A KR20130062822A KR101457802B1 KR 101457802 B1 KR101457802 B1 KR 101457802B1 KR 20130062822 A KR20130062822 A KR 20130062822A KR 20130062822 A KR20130062822 A KR 20130062822A KR 101457802 B1 KR101457802 B1 KR 101457802B1
Authority
KR
South Korea
Prior art keywords
instruction
parallelization
data
flash memory
technique
Prior art date
Application number
KR20130062822A
Other languages
English (en)
Inventor
신범주
민상렬
Original Assignee
서울대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 서울대학교산학협력단 filed Critical 서울대학교산학협력단
Priority to KR20130062822A priority Critical patent/KR101457802B1/ko
Application granted granted Critical
Publication of KR101457802B1 publication Critical patent/KR101457802B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into 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/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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1015Read-write modes for single port memories, i.e. having either a random port or a serial port
    • G11C7/1039Read-write modes for single port memories, i.e. having either a random port or a serial port using pipelining techniques, i.e. using latches between functional memory parts, e.g. row/column decoders, I/O buffers, sense amplifiers

Abstract

병렬화 기법을 활용하는 플래시 메모리 칩이 개시된다. 일 실시예는 플래시 메모리 소자들로 구성된 복수의 메모리 플레인들, 플래시 메모리 컨트롤러로부터 전송된 복수의 명령들을 저장하는 명령 저장부, 플래시 메모리 컨트롤러와 복수의 메모리 플레인들 사이에 전송되는 데이터를 저장하는 데이터 저장부, 및 복수의 명령들에 기초하여 복수의 플래시 메모리 연산들을 병렬화하기 위하여 명령 저장부, 데이터 저장부, 및 복수의 메모리 플레인들을 제어하는 병렬화 제어부를 포함한다.

Description

병렬화 기법을 활용하는 플래시 메모리 칩{FLASH MEMORY CHIP USING PARALLEL TECHNIQUE}
아래 실시예들은 병렬화 기법을 활용하는 플래시 메모리 칩에 관한 것이다.
플래시 메모리 저장장치는 다양한 수준의 병렬화 기법들을 활용하여 읽기 동작, 쓰기 동작, 및 지우기 동작의 성능을 향상시킬 수 있다.
예를 들어, 버스 수준에서의 병렬화 기법은 플래시 메모리 저장장치 내부의 버스 개수를 늘림으로써 성능을 향상시킬 수 있다. 칩 수준에서의 병렬화 기법은 버스 한 개당 플래시 메모리 칩의 개수를 늘림으로써 성능을 향상시킬 수 있다. 또한, 칩 내부에서의 병렬화 기법은 칩 내부에서 수행되는 동작들을 병렬적으로 처리함으로써 성능을 향상시킬 수 있다.
이 때, 플래시 메모리 컨트롤러가 전술된 다양한 수준의 병렬화 기법들을 활용하는 역할을 전적으로 담당해 왔다. 다만, 플래시 메모리 칩의 규격이 표준화되어 있지 않아, 칩 내부에서의 병렬화 기법을 활용하기 위하여 각각의 플래시 메모리 칩에 따라 플래시 메모리 컨트롤러가 새로 설계되어야 하는 문제가 있다.
일 측에 따른 병렬화 기법을 활용하는 플래시 메모리 칩은 플래시 메모리 소자들로 구성된 복수의 메모리 플레인들; 플래시 메모리 컨트롤러로부터 전송된 복수의 명령들을 저장하는 명령 저장부; 상기 플래시 메모리 컨트롤러와 상기 복수의 메모리 플레인들 사이에 전송되는 데이터를 저장하는 데이터 저장부; 및 상기 복수의 명령들에 기초하여 미리 정해진 복수의 병렬화 기법들 중 어느 하나의 병렬화 기법을 선택하고, 상기 선택된 병렬화 기법에 따라 복수의 플래시 메모리 연산들을 병렬화하기 위하여 상기 명령 저장부, 상기 데이터 저장부, 및 상기 복수의 메모리 플레인들을 제어하는 병렬화 제어부를 포함한다.
이 때, 상기 미리 정해진 복수의 병렬화 기법들은 파이프라인 기법, 데이터 병렬화 기법, 및 파이프라인 기법과 데이터 병렬화 기법이 조합된 기법 중 적어도 하나를 포함할 수 있다.
또한, 상기 복수의 명령들 각각은 명령의 유형 및 상기 명령의 대상 주소를 포함하고, 상기 병렬화 제어부는 상기 명령의 유형 및 상기 명령의 대상 주소에 기초하여 상기 어느 하나의 병렬화 기법을 선택할 수 있다.
또한, 상기 복수의 명령들 각각은 명령을 식별하기 위한 태그를 포함하고, 상기 병렬화 제어부는 상기 태그에 기초하여 상기 복수의 명령들의 진행 상태를 확인할 수 있다.
또한, 상기 명령 저장부는 상기 복수의 명령들이 수신된 순서에 따라 상기 복수의 명령들을 저장하는 명령 큐를 포함하고, 상기 플래시 메모리 컨트롤러는 상기 복수의 명령들을 미리 정해진 순서에 따라 순차적으로 하나씩 전송할 수 있다.
또한, 상기 복수의 명령들은 쓰기 명령, 읽기 명령, 및 지우기 명령을 포함하는 그룹에서 선택된 명령들의 시퀀스를 포함할 수 있다.
또한, 상기 데이터 저장부는 상기 복수의 메모리 플레인들에 대응되는 복수의 레지스터들을 포함할 수 있다.
또한, 상기 복수의 메모리 플레인들은 복수의 블록들을 포함하고, 상기 복수의 블록들은 복수의 페이지들을 포함할 수 있다.
또한, 상기 데이터 저장부는 상기 플래시 메모리 컨트롤러와 상기 복수의 메모리 플레인들 사이에 전송되는 페이지 단위의 데이터를 저장하는 페이지 레지스터를 포함할 수 있다.
또한, 상기 복수의 명령들은 제1 명령 및 제2 명령을 포함하고, 상기 병렬화 제어부는 상기 제1 명령의 유형 및 상기 제2 명령의 유형을 획득하는 유형 획득부; 및 상기 제1 명령의 유형이 쓰기 명령 또는 읽기 명령이고, 상기 제2 명령의 유형이 쓰기 명령 또는 읽기 명령인지 여부를 판단하고, 상기 판단 결과에 따라 파이프라인 기법을 선택하는 병렬화 기법 선택부를 포함할 수 있다.
또한, 상기 병렬화 제어부는 상기 선택된 병렬화 기법이 파이프라인 기법인 경우, 상기 데이터 저장부와 어느 하나의 메모리 플레인 사이의 데이터 전송 및 상기 플래시 메모리 컨트롤러와 상기 데이터 저장부 사이의 데이터 전송이 병렬화되도록 컨트롤 흐름 및 데이터 흐름을 제어하는 흐름 제어부를 포함할 수 있다.
또한, 상기 복수의 명령들은 제1 명령 및 제2 명령을 포함하고, 상기 병렬화 제어부는 상기 제1 명령의 유형 및 상기 제2 명령의 유형을 획득하는 유형 획득부;
상기 제1 명령의 대상 주소 및 상기 제2 명령의 대상 주소를 획득하는 주소 획득부; 및 상기 제1 명령의 유형 및 상기 제2 명령의 유형이 동일하고, 상기 제1 명령의 대상 주소에 포함된 대상 메모리 플레인과 상기 제2 명령의 대상 주소에 포함된 대상 메모리 플레인이 상이한지 여부를 판단하고, 상기 판단 결과에 따라 데이터 병렬화 기법을 선택하는 병렬화 기법 선택부를 포함할 수 있다.
또한, 상기 병렬화 기법 선택부는 상기 제1 명령의 유형 및 상기 제2 명령의 유형이 쓰기 명령 또는 읽기 명령으로 동일한 경우 상기 제1 명령의 대상 주소에 포함된 대상 페이지 오프셋과 상기 제2 명령의 대상 주소에 포함된 대상 페이지 오프셋이 일치하는지 여부를 비교하고, 상기 비교 결과에 따라 상기 데이터 병렬화 기법을 선택할 수 있다.
또한, 상기 병렬화 제어부는 상기 선택된 병렬화 기법이 데이터 병렬화 기법인 경우, 상기 데이터 저장부와 상기 복수의 메모리 플레인들 사이의 복수의 데이터 전송들이 병렬화되도록 컨트롤 흐름 및 데이터 흐름을 제어하는 흐름 제어부를 포함할 수 있다.
또한, 상기 흐름 제어부는 상기 선택된 병렬화 기법이 지우기 명령과 관련된 데이터 병렬화 기법인 경우 상기 복수의 메모리 플레인들에 대응되는 복수의 지우기 동작들이 병렬화되도록 컨트롤 흐름을 제어할 수 있다.
또한, 상기 복수의 명령들은 제1 명령, 제2 명령, 및 제3 명령을 포함하고, 상기 병렬화 제어부는 상기 제1 명령의 유형, 상기 제2 명령의 유형, 및 상기 제3 명령의 유형을 획득하는 유형 획득부; 상기 제1 명령의 대상 주소 및 상기 제2 명령의 대상 주소를 획득하는 주소 획득부; 및 상기 제1 명령의 유형, 상기 제2 명령의 유형, 및 상기 제3 명령의 유형이 쓰기 명령 또는 읽기 명령으로 동일하고, 상기 제1 명령의 대상 주소에 포함된 대상 메모리 플레인과 상기 제2 명령의 대상 주소에 포함된 대상 메모리 플레인이 상이하며, 상기 제1 명령의 대상 주소에 포함된 대상 페이지 오프셋과 상기 제2 명령의 대상 주소에 포함된 대상 페이지 오프셋이 일치하는지 여부를 판단하고, 상기 판단 결과에 따라 파이프라인 기법과 데이터 병렬화 기법이 조합된 기법을 선택하는 병렬화 기법 선택부를 포함할 수 있다.
또한, 상기 병렬화 제어부는 상기 선택된 병렬화 기법이 파이프라인 기법과 데이터 병렬화 기법이 조합된 기법인 경우, 상기 데이터 저장부와 상기 복수의 메모리 플레인들 사이의 복수의 데이터 전송들 및 상기 플래시 메모리 컨트롤러와 상기 데이터 저장부 사이의 데이터 전송이 병렬화되도록 컨트롤 흐름 및 데이터 흐름을 제어하는 흐름 제어부를 포함할 수 있다.
다른 일 측에 따른 병렬화 기법을 활용하는 플래시 메모리 칩은 플래시 메모리 소자들로 구성된 복수의 메모리 다이들; 및 병렬화 제어 다이를 포함하고, 상기 병렬화 제어 다이는 플래시 메모리 컨트롤러로부터 전송된 복수의 명령들을 저장하는 명령 저장부; 상기 플래시 메모리 컨트롤러와 상기 복수의 메모리 다이들 사이에 전송되는 데이터를 저장하는 데이터 저장부; 상기 복수의 명령들에 포함된 명령의 유형들 및 명령의 대상 주소들에 기초하여 미리 정해진 복수의 병렬화 기법들 중 적어도 어느 하나의 병렬화 기법을 활성화하는 병렬화 기법 활성화부; 및 상기 활성화된 적어도 하나의 병렬화 기법에 따라 복수의 플래시 메모리 연산들을 병렬화하기 위하여 상기 명령 저장부, 상기 데이터 저장부, 및 상기 복수의 메모리 다이들과 관련된 컨트롤 흐름 및 데이터 흐름을 제어하는 흐름 제어부를 포함한다.
이 때, 상기 미리 정해진 복수의 병렬화 기법들은 파이프라인 기법, 데이터 병렬화 기법 또는 복수의 기능 단위들 사용 기법 중 적어도 하나를 포함할 수 있다.
또한, 상기 복수의 명령들 각각은 명령을 식별하기 위한 태그를 포함하고, 상기 흐름 제어부는 상기 태그에 기초하여 상기 복수의 명령들의 진행 상태를 확인할 수 있다.
또한, 상기 복수의 명령들은 제1 명령과 제2 명령을 포함하고, 상기 병렬화 기법 활성화부는 상기 제1 명령의 대상 주소에 포함된 대상 메모리 다이 및 상기 제2 명령의 대상 주소에 포함된 대상 메모리 다이가 상이한지 여부를 판단하고, 상기 판단 결과에 따라 복수의 기능 단위들 사용 기법을 활성화할 수 있다.
또한, 상기 복수의 명령들은 제1 명령과 제2 명령을 포함하고, 상기 병렬화 기법 활성화부는 상기 제1 명령의 대상 주소에 포함된 대상 메모리 다이 및 상기 제2 명령의 대상 주소에 포함된 대상 메모리 다이가 동일하고, 상기 제1 명령의 유형이 쓰기 명령 또는 읽기 명령이며, 상기 제2 명령의 유형이 쓰기 명령 또는 읽기 명령인지 여부를 판단하고, 상기 판단 결과에 따라 파이프라인 기법을 활성화할 수 있다.
또한, 상기 복수의 명령들은 제1 명령 및 제2 명령을 포함하고, 상기 병렬화 기법 활성화부는 상기 제1 명령의 유형 및 상기 제2 명령의 유형이 동일하고, 상기 제1 명령의 대상 주소에 포함된 대상 메모리 다이와 상기 제2 명령의 대상 주소에 포함된 대상 메모리 다이가 일치하며, 상기 제1 명령의 대상 주소에 포함된 대상 플레인과 상기 제2 명령의 대상 주소에 포함된 대상 플레인이 상이한지 여부를 판단하고, 상기 판단 결과에 따라 데이터 병렬화 기법을 활성화할 수 있다.
또한, 상기 병렬화 기법 활성화부는 상기 제1 명령의 유형 및 상기 제2 명령의 유형이 쓰기 명령 또는 읽기 명령으로 동일한 경우 상기 제1 명령의 대상 주소에 포함된 대상 페이지 오프셋과 상기 제2 명령의 대상 주소에 포함된 대상 페이지 오프셋이 일치하는지 여부를 비교하고, 상기 비교 결과에 따라 상기 데이터 병렬화 기법을 활성화할 수 있다.
또한, 상기 흐름 제어부는 상기 활성화된 병렬화 기법이 복수의 기능 단위들 사용 기법인 경우, 상기 데이터 저장부와 상기 복수의 메모리 다이들 사이의 복수의 데이터 전송들이 병렬화 되도록 상기 컨트롤 흐름 및 상기 데이터 흐름을 제어할 수 있다.
또한, 상기 흐름 제어부는 상기 활성화된 병렬화 기법이 파이프라인 기법인 경우, 상기 데이터 저장부와 어느 하나의 메모리 다이 사이의 데이터 전송 및 상기 플래시 메모리 컨트롤러와 상기 데이터 저장부 사이의 데이터 전송이 병렬화되도록 상기 컨트롤 흐름 및 상기 데이터 흐름을 제어할 수 있다.
또한, 상기 흐름 제어부는 상기 활성화된 병렬화 기법이 데이터 병렬화 기법인 경우, 상기 데이터 저장부와 어느 하나의 메모리 다이에 포함된 복수의 플레인들 사이의 복수의 데이터 전송들이 병렬화되도록 상기 컨트롤 흐름 및 상기 데이터 흐름을 제어할 수 있다.
또한, 상기 흐름 제어부는 상기 활성화된 병렬화 기법이 지우기 명령과 관련된 데이터 병렬화 기법인 경우 어느 하나의 메모리 다이에 포함된 복수의 메모리 플레인들에 대응되는 복수의 지우기 동작들이 병렬화되도록 상기 컨트롤 흐름을 제어할 수 있다.
도 1은 일 실시예에 따른 병렬화 기법을 활용하는 플래시 메모리 칩을 나타낸 블록도.
도 2a 내지 도 2e는 일 실시예에 따른 병렬화 기법에서의 지우기 동작을 설명하기 위한 도면.
도 3a 내지 도 3f는 일 실시예에 따른 파이프라인 기법에서의 쓰기 동작을 설명하기 위한 도면.
도 4a 내지 도 4g는 일 실시예에 따른 데이터 병렬화 기법에서의 쓰기 동작을 설명하기 위한 도면.
도 5a 내지 도 5c는 일 실시예에 따른 파이프라인 기법과 데이터 병렬화 기법이 조합된 기법에서의 쓰기 동작을 설명하기 위한 도면.
도 6a 내지 도 6g는 일 실시예에 따른 파이프라인 기법에서의 읽기 동작을 설명하기 위한 도면.
도 7a 내지 도 7e는 일 실시예에 따른 데이터 병렬화 기법에서의 읽기 동작을 설명하기 위한 도면.
도 8a 내지 도 8e는 일 실시예에 따른 파이프라인 기법과 데이터 병렬화 기법이 조합된 기법에서의 읽기 동작을 설명하기 위한 도면.
도 9는 일 실시예에 따른 복수의 메모리 다이들 및 내부 컨트롤러 다이를 포함하는 플래시 메모리 칩을 나타낸 블록도.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 일 실시예에 따른 병렬화 기법을 활용하는 플래시 메모리 칩을 나타낸 블록도이다.
도 1을 참조하면, 일 실시예에 따른 플래시 메모리 칩(100)은 복수의 메모리 플레인들(110, 120), 명령 저장부(130), 데이터 저장부(140) 및 병렬화 제어부(150)를 포함한다.
복수의 메모리 플레인들(110, 120)은 플래시 메모리 소자들로 구성될 수 있다. 예를 들어, 복수의 메모리 플레인들(110, 120)은 복수의 플로팅 게이트 셀들을 이용하여 구성될 수 있다. 또한, 복수의 메모리 플레인들(110, 120)은 복수의 전하 충전(Charge trap) 셀들을 이용하여 구성될 수 있다.
여기서, 메모리 플레인(110)은 복수의 블록들(111, 112)을 포함하고, 복수의 블록들(111, 112) 각각은 복수의 페이지들을 포함할 수 있다. 마찬가지로, 메모리 플레인(120)은 복수의 블록들(121, 122)을 포함하고, 복수의 블록들(121, 122) 각각은 복수의 페이지들을 포함할 수 있다.
명령 저장부(130)는 플래시 메모리 컨트롤러(160)로부터 전송된 복수의 명령들을 저장할 수 있다. 여기서, 각각의 명령들은 명령의 유형 및 명령의 대상 주소를 포함할 수 있다. 명령의 유형은 쓰기 명령, 읽기 명령, 및 지우기 명령 중 어느 하나일 수 있고, 명령의 대상 주소는 해당 명령이 수행될 대상이 되는 주소(예를 들어, 대상 다이, 대상 플레인, 대상 블록, 대상 페이지 등)를 포함할 수 있다.
여기서, 플래시 메모리 컨트롤러(160) 및 명령 저장부(130) 사이에서 전송되는 데이터는 페이지 단위의 데이터일 수 있다. 이 경우, 명령 저장부(130)는 페이지 단위의 데이터를 저장하는 페이지 레지스터를 포함할 수 있다.
또한, 명령 저장부(130)는 원형 큐 구조를 이용하여 구현될 수 있다. 예를 들어, 플래시 메모리 컨트롤러(160)는 미리 정해진 순서에 따라 복수의 명령들을 순차적으로 하나씩 전송할 수 있다. 이 경우, 명령 저장부(130)는 복수의 명령들을 수신된 순서에 따라 저장하는 원형 큐 구조의 명령 큐를 포함할 수 있다.
데이터 저장부(140)는 플래시 메모리 컨트롤러(160)와 복수의 메모리 플레인들(110, 120) 사이에 전송되는 데이터를 저장할 수 있다. 여기서, 데이터 저장부(140)는 복수의 메모리 플레인들(110, 120) 각각에 대응되는 복수의 레지스터들(141, 142)을 포함할 수 있다.
예를 들어, 레지스터(141)는 메모리 컨트롤러(160)와 메모리 플레인(110) 사이에 전송되는 데이터를 저장하고, 레지스터(142)는 메모리 컨트롤러(160)와 메모리 플레인(120) 사이에 전송되는 데이터를 저장할 수 있다. 또한, 레지스터(141)과 레지스터(142)는 각각 원형 큐 구조를 이용하여 구현될 수 있다.
다만, 전술한 구조는 예시적인 사항에 불과하고, 전술한 구조에 의하여 데이터 저장부(140)의 구성이 제한되지 아니한다. 예를 들어, 데이터 저장부(140)는 복수의 플레인들(110, 120)을 위한 범용 페이지 레지스터를 포함하는 구조로 구현될 수 있다.
병렬화 제어부(150)는 명령 저장부(130)에 저장된 복수의 명령들에 기초하여 복수의 플래시 메모리 연산들을 병렬화하기 위한 동작들을 수행할 수 있다.
보다 구체적으로, 병렬화 제어부(150)는 명령 저장부(130)에 저장된 복수의 명령들에 기초하여 미리 정해진 복수의 병렬화 기법들 중 어느 하나의 병렬화 기법을 선택할 수 있다. 또한, 병렬화 제어부(150)는 선택된 병렬화 기법에 따라 복수의 플래시 메모리 연산들을 병렬화하기 위하여 명령 저장부(130), 데이터 저장부(140), 및 복수의 메모리 플레인들(110, 120)을 제어할 수 있다.
따라서, 일 실시예에 따른 플래시 메모리 칩은 병렬화 기법을 위한 플래시 메모리 컨트롤러의 동작을 단순화시키는 기술을 제공할 수 있다. 일 실시예에 따르면, 플래시 메모리 컨트롤러가 병렬화 기법과 무관한 명령들(예를 들어, 단순한 쓰기 명령, 읽기 명령, 지우기 명령 등)을 플래시 메모리 칩으로 전송하면, 플래시 메모리 칩 내부에서 이러한 명령들에 기초하여 적용 가능한 병렬화 기법이 선택될 수 있다. 나아가, 플래시 메모리 칩은 선택된 병렬화 기법을 이용하여 복수의 플래시 메모리 연산들을 병렬화할 수 있다.
미리 정해진 복수의 병렬화 기법들은 파이프라인 기법, 데이터 병렬화 기법, 및 파이프라인 기법과 데이터 병렬화 기법이 조합된 기법 중 적어도 하나를 포함할 수 있다. 플래시 메모리 칩이 복수의 메모리 다이(die)들을 포함하는 경우 미리 정해진 복수의 병렬화 기법들은 복수의 기능 단위들(functional units) 사용 기법을 더 포함할 수 있다.
병렬화 제어부(150)는 미리 정해진 조건에 따라 미리 정해진 복수의 병렬화 기법들 중 어느 하나의 병렬화 기법을 선택할 수 있다.
예를 들어, 병렬화 제어부(150)는 표 1에 기재된 조건들에 기초하여 미리 정해진 복수의 병렬화 기법들 중 어느 하나의 병렬화 기법을 선택할 수 있다.
파이프라인 - 쓰기/읽기
명령 종류: 명령 종류에 대한 제약사항 없음(쓰기-쓰기, 쓰기-읽기, 읽기-쓰기, 읽기-읽기 모두 파이프라인 가능)
Die 주소: 같은 die
Plane 주소: 제약사항 없음
Block 주소: 제약사항 없음
Page 주소: 제약사항 없음
데이터 병렬화 - 지우기/쓰기/읽기
명령 종류: 같은 종류의 명령에 대해서만 가능
Die 주소: 같은 die
Plane 주소: 두 개의 블록이 서로 다른 plane에 있어야 함
Block 주소: 제약사항 없음
Page 주소: Block 내에서의 page offset이 같아야 함(쓰기, 읽기만 해당됨)
복수 개의 기능 단위 - 지우기/쓰기/읽기
명령 종류: 제약사항 없음(Die 0에서 지우기/쓰기/읽기 동작을 실행하면서 Die 1에서 지우기/쓰기/읽기 동작 실행 가능)
Die 주소: 각 명령이 서로 다른 die에 issue되어야 함
Plane 주소: 제약사항 없음
Block 주소: 제약사항 없음
Page 주소: 제약사항 없음
보다 구체적으로, 병렬화 제어부(150)는 복수의 명령들의 유형들 및 복수의 명령들의 대상 주소들에 기초하여 미리 정해진 복수의 병렬화 기법들 중 어느 하나의 병렬화 기법을 선택할 수 있다.
예를 들어, 복수의 명령들이 제1 명령 및 제2 명령을 포함한다고 가정하자. 이 경우, 병렬화 제어부(150)는 유형 획득부 및 병렬화 기법 선택부를 포함할 수 있다. 유형 획득부는 제1 명령의 유형과 제2 명령의 유형을 획득할 수 있다. 병렬화 기법 선택부는 제1 명령의 유형이 쓰기 명령 또는 읽기 명령이고, 제2 명령의 유형이 쓰기 명령 또는 읽기 명령인지 여부를 판단할 수 있다. 병렬화 기법 선택부는 제1 명령의 유형이 쓰기 명령 또는 읽기 명령이고, 제2 명령의 유형이 쓰기 명령 또는 읽기 명령이라는 판단에 따라 파이프라인 기법을 선택할 수 있다.
파이프라인 기법에서 병렬화 제어부(150)는 데이터의 전송과 메모리 배열(array) 연산이 중첩되도록 컨트롤 흐름 및 데이터 흐름을 제어할 수 있다. 예를 들어, 병렬화 제어부(150)는 파이프라인 기법에서 데이터 저장부(140)와 어느 하나의 메모리 플레인(110) 사이의 데이터 전송 및 플래시 메모리 컨트롤러(160)와 데이터 저장부(140) 사이의 데이터 전송이 병렬화되도록 컨트롤 흐름 및 데이터 흐름을 제어하는 흐름 제어부를 포함할 수 있다.
또한, 병렬화 제어부(150)는 주소 획득부를 더 포함할 수 있다. 주소 획득부는 제1 명령의 대상 주소 및 제2 명령의 대상 주소를 획득할 수 있다. 이 경우, 병렬화 기법 선택부는 제1 명령의 유형 및 제2 명령의 유형이 동일하고, 제1 명령의 대상 주소에 포함된 대상 메모리 플레인과 제2 명령의 대상 주소에 포함된 대상 메모리 플레인이 상이한지 여부를 판단할 수 있다. 병렬화 기법 선택부는 제1 명령의 유형 및 제2 명령의 유형이 동일하고, 제1 명령의 대상 주소에 포함된 대상 메모리 플레인과 제2 명령의 대상 주소에 포함된 대상 메모리 플레인이 상이하다는 판단에 따라 데이터 병렬화 기법을 선택할 수 있다.
데이터 병렬화 기법에서 병렬화 제어부(150)는 복수의 메모리 플레인들에서 병렬적으로 메모리 배열 연산이 수행되도록 컨트롤 흐름 및 데이터 흐름을 제어할 수 있다. 예를 들어, 병렬화 제어부(150)는 데이터 병렬화 기법에서 데이터 저장부(140)와 복수의 메모리 플레인들(110, 120) 사이의 복수의 데이터 전송들이 병렬화되도록 컨트롤 흐름 및 데이터 흐름을 제어하는 흐름 제어부를 포함할 수 있다.
이 경우, 흐름 제어부는 선택된 병렬화 기법이 지우기 명령과 관련된 데이터 병렬화 기법인 경우 복수의 메모리 플레인들에 대응되는 복수의 지우기 동작들이 병렬화되도록 컨트롤 흐름을 제어할 수 있다.
나아가, 병렬화 기법 선택부는 제1 명령의 유형 및 제2 명령의 유형이 쓰기 명령 또는 읽기 명령으로 동일한 경우 제1 명령의 대상 주소에 포함된 대상 페이지 오프셋과 제2 명령의 대상 주소에 포함된 대상 페이지 오프셋이 일치하는지 여부를 비교할 수 있다. 병렬화 기법 선택부는 제1 명령의 대상 주소에 포함된 대상 페이지 오프셋과 제2 명령의 대상 주소에 포함된 대상 페이지 오프셋이 일치하는 경우 쓰기 명령 또는 읽기 명령과 관련된 병렬화 기법을 선택할 수 있다.
뿐만 아니라, 복수의 명령들이 제1 명령, 제2 명령, 및 제3 명령을 포함한다고 가정하자. 이 경우, 병렬화 제어부(150)는 유형 획득부, 주소 획득부, 및 병렬화 기법 선택부를 포함할 수 있다.
유형 획득부는 제1 명령의 유형, 제2 명령의 유형, 및 제3 명령의 유형을 획득할 수 있다. 주소 획득부는 제1 명령의 대상 주소 및 제2 명령의 대상 주소를 획득할 수 있다.
병렬화 기법 선택부는 제1 명령의 유형, 제2 명령의 유형, 및 제3 명령의 유형이 쓰기 명령 또는 읽기 명령으로 동일하고, 제1 명령의 대상 주소에 포함된 대상 메모리 플레인과 제2 명령의 대상 주소에 포함된 대상 메모리 플레인이 상이하며, 제1 명령의 대상 주소에 포함된 대상 페이지 오프셋과 제2 명령의 대상 주소에 포함된 대상 페이지 오프셋이 일치하는지 여부를 판단할 수 있다.
병렬화 기법 선택부는 제1 명령의 유형, 제2 명령의 유형, 및 제3 명령의 유형이 쓰기 명령 또는 읽기 명령으로 동일하고, 제1 명령의 대상 주소에 포함된 대상 메모리 플레인과 제2 명령의 대상 주소에 포함된 대상 메모리 플레인이 상이하며, 제1 명령의 대상 주소에 포함된 대상 페이지 오프셋과 제2 명령의 대상 주소에 포함된 대상 페이지 오프셋이 일치한다는 판단에 따라 파이프라인 기법과 데이터 병렬화 기법이 조합된 기법을 선택할 수 있다.
여기서, 제3 명령은 데이터 저장부(130)에 저장되고 아직 수행되지 않은 명령을 포함할 수 있다. 또한, 제3 명령은 데이터 저장부(130)에 저장되었다가 이미 수행된 명령을 포함할 수 있다.
파이프라인 기법과 데이터 병렬화 기법이 조합된 기법에서 병렬화 제어부(150)는 파이프라인 기법과 데이터 병렬화 기법, 또는 파이프라인 기법과 명령 병렬화 기법이 동시에 적용되도록 컨트롤 흐름 및 데이터 흐름을 제어할 수 있다. 예를 들어, 병렬화 제어부(150)는 파이프라인 기법과 데이터 병렬화 기법이 조합된 기법에서 데이터 저장부(140)와 복수의 메모리 플레인들(110, 120) 사이의 복수의 데이터 전송들 및 플래시 메모리 컨트롤러(160)와 데이터 저장부(140) 사이의 데이터 전송이 병렬화되도록 컨트롤 흐름 및 데이터 흐름을 제어하는 흐름 제어부를 포함할 수 있다.
다른 실시예에 따르면, 복수의 명령들 각각은 명령을 식별하기 위한 태그를 더 포함할 수 있다. 이 경우, 플래시 메모리 컨트롤러(160)는 복수의 명령들에 포함된 태그들에 기초하여 해당 명령들의 진행 상태를 확인할 수 있다.
예를 들어, 데이터 병렬화 기법에서의 읽기 동작이 수행되는 경우를 가정하자. 이 경우, 데이터 저장부(140)는 복수의 메모리 플레인들(110, 120)로부터 병렬적으로 전송된 복수의 데이터들을 저장할 수 있다. 플래시 메모리 컨트롤러(160)는 복수의 데이터들에 대응되는 태그들에 기초하여 플래시 메모리(100)에 요청한 읽기 명령의 진행 상태를 확인한다. 플래시 메모리(100)에서 읽기 동작이 완료되면 플래시 메모리 컨트롤러(160)는 태그에 기초하여 플래시 메모리(100)에게 데이터 전송을 요청한다.
이하, 도 2a 내지 도 8e를 참조하여 전술한 병렬화 기법들 각각에서의 컨트롤 흐름과 데이터 흐름을 상세히 설명한다.
도 2a 내지 도 2e는 일 실시예에 따른 병렬화 기법에서의 지우기 동작을 설명하기 위한 도면이다.
도 2a를 참조하면, 플래시 메모리 컨트롤러는 명령(210)과 명령(220)을 포함하는 명령 시퀀스를 이용하여 플래시 메모리 칩을 동작시킬 수 있다. 여기서, 명령(210)은 0번 블록을 이레이즈(erase)하라는 명령이고, 명령(220)은 3번 블록을 이레이즈하라는 명령이다.
도 2b를 참조하면, 플래시 메모리 컨트롤러는 명령(210)을 플래시 메모리 칩으로 전송할 수 있다. 이 경우, 플래시 메모리 칩은 명령 저장부에 명령(210)을 저장할 수 있다. 플래시 메모리 칩은 명령(210)을 바로 수행시키지 않고, 병렬화 기법을 적용하기 위하여 다음 명령이 전송되는 것을 기다릴 수 있다.
도 2c를 참조하면, 플래시 메모리 컨트롤러는 명령(220)을 플래시 메모리 칩으로 전송한다. 이 경우, 플래시 메모리 칩은 명령 저장부에 명령(220)을 저장할 수 있다.
병렬화 제어부는 명령 저장부에 저장된 명령(210)과 명령(220)에 기초하여 적용 가능한 병렬화 기법을 판단할 수 있다. 예를 들어, 병렬화 제어부는 명령(210)의 유형과 명령(220)의 유형이 지우기 명령으로 동일하다고 판단할 수 있다. 나아가, 병렬화 제어부는 명령(210)의 대상 주소인 0번 블록이 제1 플레인에 포함되고, 명령(220)의 대상 주소인 3번 블록이 제2 플레인에 포함되므로, 명령(210)의 대상 플레인과 명령(220)의 대상 플레인이 상이하다고 판단할 수 있다. 이에 따라, 병렬화 제어부는 지우기 명령과 관련된 데이터 병렬화 기법을 선택할 수 있다.
도 2d를 참조하면, 병렬화 제어부는 명령 저장부에 저장된 명령(210)과 명령(220)이 병렬적으로 처리되도록 컨트롤 흐름을 제어할 수 있다.
도 2e를 참조하면, 0번 블록의 이레이즈 연산과 3번 블록의 이레이즈 연산이 병렬적으로 수행될 수 있다.
도 3a 내지 도 3f는 일 실시예에 따른 파이프라인 기법에서의 쓰기 동작을 설명하기 위한 도면이다.
도 3a를 참조하면, 플래시 메모리 컨트롤러는 명령(310)과 명령(320)을 포함하는 명령 시퀀스를 이용하여 플래시 메모리 칩을 동작시킬 수 있다. 여기서, 명령(310)은 0번 블록에 포함된 0번 페이지에 제1 데이터를 프로그램(program)하라는 명령이고, 명령(320)은 2번 블록에 포함된 0번 페이지에 제2 데이터를 프로그램하라는 명령이다.
도 3b를 참조하면, 플래시 메모리 컨트롤러는 명령(310)을 플래시 메모리 칩으로 전송할 수 있다. 이 경우, 플래시 메모리 칩은 명령 저장부에 명령(310)을 저장할 수 있다.
도 3c를 참조하면, 플래시 메모리 컨트롤러는 제1 데이터(330)를 플래시 메모리 칩으로 전송할 수 있다. 이 경우, 플래시 메모리 칩은 데이터 저장부에 제1 데이터(330)를 저장할 수 있다. 여기서, 플래시 메모리 칩은 명령(310)을 바로 수행시키지 않고, 병렬화 기법을 적용하기 위하여 다음 명령이 전송되는 것을 기다릴 수 있다.
도 3d를 참조하면, 플래시 메모리 컨트롤러는 명령(320)을 플래시 메모리 칩으로 전송한다. 이 경우, 플래시 메모리 칩은 명령 저장부에 명령(320)을 저장할 수 있다.
병렬화 제어부는 명령 저장부에 저장된 명령(310)과 명령(320)에 기초하여 적용 가능한 병렬화 기법을 판단할 수 있다. 예를 들어, 병렬화 제어부는 명령(310)의 유형과 명령(320)의 유형이 모두 쓰기 명령이라고 판단할 수 있다. 이에 따라 병렬화 제어부는 파이프라인 기법을 선택할 수 있다.
도 3e를 참조하면, 병렬화 제어부는 명령(310)으로 인한 메모리 배열 연산과 명령(320)으로 인한 데이터 전송이 병렬적으로 처리되도록 컨트롤 흐름 및 데이터 흐름을 제어할 수 있다.
도 3f를 참조하면, 제1 데이터(330)가 데이터 저장부로부터 0번 블록의 0번 페이지에 프로그램되는 연산과 제2 데이터(340)가 플래시 메모리 컨트롤러로부터 데이터 저장부로 전송되는 동작이 병렬적으로 수행될 수 있다.
도 4a 내지 도 4g는 일 실시예에 따른 데이터 병렬화 기법에서의 쓰기 동작을 설명하기 위한 도면이다.
도 4a를 참조하면, 플래시 메모리 컨트롤러는 명령(410), 명령(420) 및 명령(430)을 포함하는 명령 시퀀스를 이용하여 플래시 메모리 칩을 동작시킬 수 있다. 여기서, 명령(410)은 1번 블록에 포함된 0번 페이지에 제1 데이터를 프로그램하라는 명령이고, 명령(420)은 0번 블록에 포함된 0번 페이지에 제2 데이터를 프로그램하라는 명령이다. 명령(430)은 2번 블록에 포함된 0번 페이지에 제3 데이터를 프로그램하라는 명령이다.
도 4b를 참조하면, 플래시 메모리 컨트롤러는 명령(410)을 플래시 메모리 칩으로 전송할 수 있다. 이 경우, 플래시 메모리 칩은 명령 저장부에 명령(410)을 저장할 수 있다.
도 4c를 참조하면, 플래시 메모리 컨트롤러는 제1 데이터(440)를 플래시 메모리 칩으로 전송할 수 있다. 이 경우, 플래시 메모리 칩은 데이터 저장부에 제1 데이터(440)를 저장할 수 있다. 여기서, 플래시 메모리 칩은 명령(410)을 바로 수행시키지 않고, 병렬화 기법을 적용하기 위하여 다음 명령이 전송되는 것을 기다릴 수 있다.
도 4d를 참조하면, 플래시 메모리 컨트롤러는 명령(420)을 플래시 메모리 칩으로 전송한다. 이 경우, 플래시 메모리 칩은 명령 저장부에 명령(420)을 저장할 수 있다.
병렬화 제어부는 명령 저장부에 저장된 명령(410)과 명령(420)에 기초하여 적용 가능한 병렬화 기법을 판단할 수 있다. 예를 들어, 병렬화 제어부는 명령(410)의 유형과 명령(420)의 유형이 쓰기 명령으로 동일하다고 판단할 수 있다. 또한, 병렬화 제어부는 명령(410)의 대상 주소인 1번 블록이 제2 플레인에 포함되고, 명령(420)의 대상 주소인 0번 블록이 제1 플레인에 포함되므로, 명령(410)의 대상 플레인과 명령(420)의 대상 플레인이 상이하다고 판단할 수 있다. 나아가, 병렬화 제어부는 명령(410)의 페이지 오프셋과 명령(420)의 페이지 오프셋이 0으로 동일하다고 판단할 수 있다. 이에 따라, 병렬화 제어부는 데이터 병렬화 기법을 선택할 수 있다.
도 4e를 참조하면, 플래시 메모리 칩은 플래시 메모리 컨트롤러와 연동함으로써 제2 데이터(450)를 전송 받을 수 있다. 플래시 메모리 칩은 데이터 저장부에 제2 데이터(450)를 저장할 수 있다.
도 4f를 참조하면, 병렬화 제어부는 명령 저장부에 저장된 명령(410)과 명령(420)이 병렬적으로 처리되도록 컨트롤 흐름 및 데이터 흐름을 제어할 수 있다.
도 4g를 참조하면, 제1 데이터(440)가 데이터 저장부로부터 1번 블록의 0번 페이지에 프로그램되는 연산과 제2 데이터(450)가 데이터 저장부로부터 0번 블록의 0번 페이지에 프로그램되는 연산이 병렬적으로 수행될 수 있다.
도 5a 내지 도 5c는 일 실시예에 따른 파이프라인 기법과 데이터 병렬화 기법이 조합된 기법에서의 쓰기 동작을 설명하기 위한 도면이다.
여기서, 명령(510), 명령(520), 및 명령(530)은 각각 도 4를 통하여 기술된 명령(410), 명령(420), 및 명령(430)에 대응될 수 있다. 또한, 제1 데이터(540)와 제2 데이터(550)는 각각 도 4를 통하여 기술된 제1 데이터(440)과 제2 데이터(450)에 대응될 수 있다.
도 4e를 참조하면, 플래시 메모리 칩은 파이프라인 기법과 데이터 병렬화 기법이 조합된 기법을 선택할 수 있는지 여부를 판단하기 위하여 명령(410)과 명령(420)을 수행시키지 않고 다음 명령을 기다릴 수 있다.
도 5a를 참조하면, 플래시 메모리 컨트롤러는 명령(530)을 플래시 메모리 칩으로 전송한다. 이 경우, 플래시 메모리 칩은 명령 저장부에 명령(530)을 저장할 수 있다.
병렬화 제어부는 명령 저장부에 저장된 명령(510), 명령(520), 및 명령(530)에 기초하여 적용 가능한 병렬화 기법을 판단할 수 있다. 예를 들어, 병렬화 제어부는 명령(510)의 유형, 명령(520)의 유형, 및 명령(530)의 유형이 모두 쓰기 명령으로 동일하다고 판단할 수 있다. 또한, 병렬화 제어부는 명령(510)의 대상 주소인 1번 블록이 제2 플레인에 포함되고, 명령(520)의 대상 주소인 0번 블록이 제1 플레인에 포함되므로, 명령(510)의 대상 플레인과 명령(520)의 대상 플레인이 상이하다고 판단할 수 있다. 나아가, 병렬화 제어부는 명령(510)의 페이지 오프셋과 명령(520)의 페이지 오프셋이 0으로 동일하다고 판단할 수 있다. 이에 따라, 병렬화 제어부는 파이프라인 기법과 데이터 병렬화 기법이 조합된 기법을 선택할 수 있다.
도 5b를 참조하면, 병렬화 제어부는 명령(510)으로 인한 메모리 배열 연산, 명령(520)으로 인한 메모리 배열 연산, 및 명령(530)으로 인한 데이터 전송이 병렬적으로 처리되도록 컨트롤 흐름 및 데이터 흐름을 제어할 수 있다.
도 5c를 참조하면, 제1 데이터(540)가 데이터 저장부로부터 1번 블록의 0번 페이지에 프로그램되는 연산, 제2 데이터(550)가 데이터 저장부로부터 0번 블록의 0번 페이지에 프로그램되는 연산, 및 제3 데이터(560)가 플래시 메모리 컨트롤러로부터 데이터 저장부로 전송되는 동작이 병렬적으로 수행될 수 있다.
도 6a 내지 도 6g는 일 실시예에 따른 파이프라인 기법에서의 읽기 동작을 설명하기 위한 도면이다.
도 6a를 참조하면, 플래시 메모리 컨트롤러는 명령(610)과 명령(620)을 포함하는 명령 시퀀스를 이용하여 플래시 메모리 칩을 동작시킬 수 있다. 여기서, 명령(610)은 3번 블록에 포함된 0번 페이지에 저장된 제1 데이터(630)를 리드(read)하라는 명령이고, 명령(620)은 1번 블록에 포함된 0번 페이지에 저장된 제2 데이터(640)를 리드하라는 명령이다.
도 6b를 참조하면, 플래시 메모리 컨트롤러는 명령(610)을 플래시 메모리 칩으로 전송할 수 있다. 이 경우, 플래시 메모리 칩은 명령 저장부에 명령(610)을 저장할 수 있다. 여기서, 플래시 메모리 칩은 명령(610)을 바로 수행시키지 않고, 병렬화 기법을 적용하기 위하여 다음 명령이 전송되는 것을 기다릴 수 있다.
도 6c를 참조하면, 플래시 메모리 컨트롤러는 명령(620)을 플래시 메모리 칩으로 전송한다. 이 경우, 플래시 메모리 칩은 명령 저장부에 명령(620)을 저장할 수 있다.
병렬화 제어부는 명령 저장부에 저장된 명령(610)과 명령(620)에 기초하여 적용 가능한 병렬화 기법을 판단할 수 있다. 예를 들어, 병렬화 제어부는 명령(610)의 유형과 명령(620)의 유형이 모두 읽기 명령이라고 판단할 수 있다. 이에 따라 병렬화 제어부는 파이프라인 기법을 선택할 수 있다.
도 6d를 참조하면, 병렬화 제어부는 명령(610)으로 인한 메모리 배열 연산을 수행시키기 위하여 컨트롤 흐름 및 데이터 흐름을 제어할 수 있다.
도 6e를 참조하면, 플래시 메모리 칩은 3번 블록의 0번 페이지에 저장된 제1 데이터(630)를 데이터 저장부에 복사할 수 있다. 이하, 명령(610)으로 인하여 데이터 저장부에 복사된 데이터를 복사된 제1 데이터(635)라고 한다.
도 6f를 참조하면, 명령(620)으로 인한 메모리 배열 연산과 명령(610)으로 인한 데이터 전송이 병렬적으로 처리되도록 컨트롤 흐름 및 데이터 흐름을 제어할 수 있다.
도 6g를 참조하면, 1번 블록의 0번 페이지에 저장된 제2 데이터(640)를 데이터 저장부에 복사하는 연산과 복사된 제1 데이터(635)가 플래시 메모리 컨트롤러로부터 데이터 저장부로 전송되는 동작이 병렬적으로 수행될 수 있다.
도 7a 내지 도 7e는 일 실시예에 따른 데이터 병렬화 기법에서의 읽기 동작을 설명하기 위한 도면이다.
도 7a를 참조하면, 플래시 메모리 컨트롤러는 명령(710), 명령(720), 명령(730), 및 명령(740)을 포함하는 명령 시퀀스를 이용하여 플래시 메모리 칩을 동작시킬 수 있다. 여기서, 명령(710)은 2번 블록의 0번 페이지에 저장된 제1 데이터(750)를 리드하라는 명령이고, 명령(720)은 3번 블록의 0번 페이지에 저장된 제2 데이터(760)를 리드하라는 명령이다. 명령(730)은 1번 블록의 0번 페이지에 저장된 제3 데이터(770)를 리드하라는 명령이고, 명령(740)은 0번 블록의 0번 페이지에 저장된 제4 데이터(780)를 리드하라는 명령이다.
도 7b를 참조하면, 플래시 메모리 컨트롤러는 명령(710)을 플래시 메모리 칩으로 전송할 수 있다. 이 경우, 플래시 메모리 칩은 명령 저장부에 명령(710)을 저장할 수 있다. 여기서, 플래시 메모리 칩은 명령(710)을 바로 수행시키지 않고, 병렬화 기법을 적용하기 위하여 다음 명령이 전송되는 것을 기다릴 수 있다.
도 7c를 참조하면, 플래시 메모리 컨트롤러는 명령(720)을 플래시 메모리 칩으로 전송한다. 이 경우, 플래시 메모리 칩은 명령 저장부에 명령(720)을 저장할 수 있다.
병렬화 제어부는 명령 저장부에 저장된 명령(710)과 명령(720)에 기초하여 적용 가능한 병렬화 기법을 판단할 수 있다. 예를 들어, 병렬화 제어부는 명령(710)의 유형과 명령(720)의 유형이 읽기 명령으로 동일하다고 판단할 수 있다. 또한, 병렬화 제어부는 명령(710)의 대상 주소인 2번 블록이 제1 플레인에 포함되고, 명령(720)의 대상 주소인 3번 블록이 제2 플레인에 포함되므로, 명령(710)의 대상 플레인과 명령(720)의 대상 플레인이 상이하다고 판단할 수 있다. 나아가, 병렬화 제어부는 명령(710)의 페이지 오프셋과 명령(720)의 페이지 오프셋이 0으로 동일하다고 판단할 수 있다. 이에 따라, 병렬화 제어부는 데이터 병렬화 기법을 선택할 수 있다.
도 7d를 참조하면, 병렬화 제어부는 명령 저장부에 저장된 명령(710)과 명령(720)이 병렬적으로 처리되도록 컨트롤 흐름 및 데이터 흐름을 제어할 수 있다.
도 7e를 참조하면, 2번 블록의 0번 페이지에 저장된 제1 데이터(750)를 데이터 저장부에 복사하는 연산과 3번 블록의 0번 페이지에 저장된 제2 데이터(760)를 데이터 저장부에 복사하는 연산이 병렬적으로 수행될 수 있다.
도 8a 내지 도 8e는 일 실시예에 따른 파이프라인 기법과 데이터 병렬화 기법이 조합된 기법에서의 읽기 동작을 설명하기 위한 도면이다.
여기서, 명령(830) 및 명령(840)은 각각 도 7을 통하여 기술된 명령(430) 및 명령(440)에 대응될 수 있다. 또한, 복사된 제1 데이터(855) 및 복사된 제2 데이터(865)는 각각 도 7을 통하여 기술된 복사된 제1 데이터(755) 및 복사된 제2 데이터(765)에 대응될 수 있다. 나아가, 제3 데이터(870) 및 제4 데이터(880)는 각각 도 7을 통하여 기술된 제3 데이터(770) 및 제4 데이터(780)에 대응될 수 있다.
도 7e를 참조하면, 플래시 메모리 칩은 파이프라인 기법과 데이터 병렬화 기법이 조합된 기법을 선택할 수 있는지 여부를 판단하기 위하여 복사된 제1 데이터(755) 및 복사된 제2 데이터(765)를 플래시 메모리 컨트롤러로 전송하지 않고 다음 명령을 기다릴 수 있다.
도 8a를 참조하면, 플래시 메모리 컨트롤러는 명령(830)을 플래시 메모리 칩으로 전송한다. 이 경우, 플래시 메모리 칩은 명령 저장부에 명령(830)을 저장할 수 있다.
플래시 메모리 칩은 파이프라인 기법과 데이터 병렬화 기법이 조합된 기법을 선택할 수 있는지 여부를 판단하기 위하여, 복사된 제1 데이터(755) 및 복사된 제2 데이터(765)를 플래시 메모리 컨트롤러로 전송하거나 명령(830)을 수행시키지 않고 다음 명령을 기다릴 수 있다.
도 8b를 참조하면, 플래시 메모리 컨트롤러는 명령(840)을 플래시 메모리 칩으로 전송한다. 이 경우, 플래시 메모리 칩은 명령 저장부에 명령(840)을 저장할 수 있다.
병렬화 제어부는 명령 저장부에 저장된 명령(830), 명령(840), 및 바로 전에 수행된 명령에 기초하여 적용 가능한 병렬화 기법을 판단할 수 있다. 여기서, 바로 전에 수행된 명령은 도 7을 통하여 기술된 명령(710) 또는 명령(720)일 수 있다.
예를 들어, 병렬화 제어부는 명령(830)의 유형, 명령(840)의 유형, 및 바로 전에 수행된 명령의 유형이 모두 읽기 명령으로 동일하다고 판단할 수 있다. 또한, 병렬화 제어부는 명령(830)의 대상 주소인 1번 블록이 제2 플레인에 포함되고, 명령(840)의 대상 주소인 0번 블록이 제1 플레인에 포함되므로, 명령(830)의 대상 플레인과 명령(840)의 대상 플레인이 상이하다고 판단할 수 있다. 나아가, 병렬화 제어부는 명령(830)의 페이지 오프셋과 명령(840)의 페이지 오프셋이 0으로 동일하다고 판단할 수 있다. 이에 따라, 병렬화 제어부는 파이프라인 기법과 데이터 병렬화 기법이 조합된 기법을 선택할 수 있다.
도 8c를 참조하면, 플래시 메모리 칩은 플래시 메모리 컨트롤러와 연동함으로써, 복사된 제1 데이터(855)를 데이터 저장부로부터 플래시 메모리 컨트롤러로 전송할 수 있다.
도 8d를 참조하면, 병렬화 제어부는 명령(830)으로 인한 메모리 배열 연산, 명령(840)으로 인한 메모리 배열 연산, 및 바로 전에 수행된 명령으로 인한 복사된 제2 데이터(865)의 전송이 병렬적으로 처리되도록 컨트롤 흐름 및 데이터 흐름을 제어할 수 있다.
도 8e를 참조하면, 1번 블록의 0번 페이지에 저장된 제3 데이터(870)를 데이터 저장부에 복사하는 연산, 0번 블록의 0번 페이지에 저장된 제4 데이터(880)를 데이터 저장부에 복사하는 연산, 및 복사된 제2 데이터(865)가 데이터 저장부로부터 플래시 메모리 컨트롤러로 전송되는 동작이 병렬적으로 수행될 수 있다.
도 9는 일 실시예에 따른 복수의 메모리 다이들 및 내부 컨트롤러 다이를 포함하는 플래시 메모리 칩을 나타낸 블록도이다.
도 9를 참조하면, 일 실시예에 따른 플래시 메모리 칩(900)은 플래시 메모리 소자들로 구성된 복수의 메모리 다이들(910, 920) 및 병렬화 제어 다이(930)를 포함한다.
이 때, 병렬화 제어 다이(930)는 플래시 메모리 컨트롤러(940)로부터 전송된 복수의 명령들을 저장하는 명령 저장부(931) 및 플래시 메모리 컨트롤러(940)와 복수의 메모리 다이들(910, 920) 사이에 전송되는 데이터를 저장하는 데이터 저장부(932)를 포함할 수 있다.
도면에 표시하지 않았으나, 병렬화 제어 다이(930)는 복수의 명령들에 포함된 명령의 유형들 및 명령의 대상 주소들에 기초하여 미리 정해진 복수의 병렬화 기법들 중 적어도 어느 하나의 병렬화 기법을 활성화하는 병렬화 기법 활성화부를 더 포함할 수 있다.
예를 들어, 병렬화 기법 활성화부는 복수의 명령들에 포함된 제1 명령의 대상 메모리 다이 및 복수의 명령들에 포함된 제2 명령의 대상 메모리 다이가 상이한지 여부를 판단할 수 있다.
이 경우, 병렬화 기법 활성화부는 제1 명령의 대상 메모리 다이 및 제2 명령의 대상 메모리 다이가 상이하다는 판단에 따라 복수의 기능 단위들 사용 기법을 활성화할 수 있다.
한편, 병렬화 기법 활성화부는 제1 명령의 대상 메모리 다이 및 제2 명령의 대상 메모리 다이가 동일하다고 판단되는 경우, 도 1 내지 도 8e를 통하여 기술된 것과 동일한 기준에 따라 파이프라인 기법 또는 데이터 병렬화 기법을 활성화할 수 있다.
이 때, 병렬화 기법 활성화부는 복수의 기준들이 만족된다고 판단되는 경우, 대응되는 복수의 병렬화 기법들을 활성화시킬 수 있다.
도면에 표시하지 않았으나, 병렬화 제어 다이(930)는 활성화된 적어도 하나의 병렬화 기법에 따라 복수의 플래시 메모리 연산들을 병렬화하기 위하여 명령 저장부, 데이터 저장부, 및 복수의 메모리 다이들과 관련된 컨트롤 흐름 및 데이터 흐름을 제어하는 흐름 제어부를 더 포함할 수 있다.
예를 들어, 흐름 제어부는 활성화된 병렬화 기법이 복수의 기능 단위들 사용 기법인 경우, 데이터 저장부와 복수의 메모리 다이들 사이의 복수의 데이터 전송들이 병렬화 되도록 컨트롤 흐름 및 데이터 흐름을 제어할 수 있다.
흐름 제어부는 활성화된 병렬화 기법이 파이프라인 기법 또는 데이터 병렬화 기법인 경우 또는 복수의 병렬화 기법들이 활성화된 경우, 도 1 내지 도 8e를 통하여 기술된 것과 동일하게 컨트롤 흐름 및 데이터 흐름을 제어할 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (28)

  1. 병렬화 기법을 활용하는 플래시 메모리 칩에 있어서,
    플래시 메모리 소자들로 구성된 복수의 메모리 플레인들;
    플래시 메모리 컨트롤러로부터 전송된 복수의 명령들을 저장하는 명령 저장부;
    상기 플래시 메모리 컨트롤러와 상기 복수의 메모리 플레인들 사이에 전송되는 데이터를 저장하는 데이터 저장부; 및
    상기 복수의 명령들에 기초하여 미리 정해진 복수의 병렬화 기법들 중 어느 하나의 병렬화 기법을 선택하고, 상기 선택된 병렬화 기법에 따라 복수의 플래시 메모리 연산들을 병렬화하기 위하여 상기 명령 저장부, 상기 데이터 저장부, 및 상기 복수의 메모리 플레인들을 제어하는 병렬화 제어부
    를 포함하고,
    상기 복수의 명령들 각각은 명령을 식별하기 위한 태그를 포함하며,
    상기 병렬화 제어부는 상기 태그에 기초하여 상기 복수의 명령들의 진행 상태를 확인하는 플래시 메모리 칩.
  2. 제1항에 있어서,
    상기 미리 정해진 복수의 병렬화 기법들은 파이프라인 기법, 데이터 병렬화 기법, 및 파이프라인 기법과 데이터 병렬화 기법이 조합된 기법 중 적어도 하나를 포함하는 플래시 메모리 칩.
  3. 제1항에 있어서,
    상기 복수의 명령들 각각은 명령의 유형 및 상기 명령의 대상 주소를 포함하고, 상기 병렬화 제어부는 상기 명령의 유형 및 상기 명령의 대상 주소에 기초하여 상기 어느 하나의 병렬화 기법을 선택하는 플래시 메모리 칩.
  4. 삭제
  5. 제1항에 있어서,
    상기 명령 저장부는
    상기 복수의 명령들이 수신된 순서에 따라 상기 복수의 명령들을 저장하는 명령 큐
    를 포함하고,
    상기 플래시 메모리 컨트롤러는 상기 복수의 명령들을 미리 정해진 순서에 따라 순차적으로 하나씩 전송하는 플래시 메모리 칩.
  6. 제1항에 있어서,
    상기 복수의 명령들은 쓰기 명령, 읽기 명령, 및 지우기 명령을 포함하는 그룹에서 선택된 명령들의 시퀀스를 포함하는 플래시 메모리 칩.
  7. 제1항에 있어서,
    상기 데이터 저장부는
    상기 복수의 메모리 플레인들에 대응되는 복수의 레지스터들
    을 포함하는 플래시 메모리 칩.
  8. 제1항에 있어서,
    상기 복수의 메모리 플레인들은 복수의 블록들을 포함하고, 상기 복수의 블록들은 복수의 페이지들을 포함하는 플래시 메모리 칩.
  9. 제1항에 있어서,
    상기 데이터 저장부는
    상기 플래시 메모리 컨트롤러와 상기 복수의 메모리 플레인들 사이에 전송되는 페이지 단위의 데이터를 저장하는 페이지 레지스터
    를 포함하는 플래시 메모리 칩.
  10. 제1항에 있어서,
    상기 복수의 명령들은 제1 명령 및 제2 명령을 포함하고,
    상기 병렬화 제어부는
    상기 제1 명령의 유형 및 상기 제2 명령의 유형을 획득하는 유형 획득부; 및
    상기 제1 명령의 유형이 쓰기 명령 또는 읽기 명령이고, 상기 제2 명령의 유형이 쓰기 명령 또는 읽기 명령인지 여부를 판단하고, 상기 판단 결과에 따라 파이프라인 기법을 선택하는 병렬화 기법 선택부
    를 포함하는 플래시 메모리 칩.
  11. 제1항에 있어서,
    상기 병렬화 제어부는
    상기 선택된 병렬화 기법이 파이프라인 기법인 경우, 상기 데이터 저장부와 어느 하나의 메모리 플레인 사이의 데이터 전송 및 상기 플래시 메모리 컨트롤러와 상기 데이터 저장부 사이의 데이터 전송이 병렬화되도록 컨트롤 흐름 및 데이터 흐름을 제어하는 흐름 제어부
    를 포함하는 플래시 메모리 칩.
  12. 제1항에 있어서,
    상기 복수의 명령들은 제1 명령 및 제2 명령을 포함하고,
    상기 병렬화 제어부는
    상기 제1 명령의 유형 및 상기 제2 명령의 유형을 획득하는 유형 획득부;
    상기 제1 명령의 대상 주소 및 상기 제2 명령의 대상 주소를 획득하는 주소 획득부; 및
    상기 제1 명령의 유형 및 상기 제2 명령의 유형이 동일하고, 상기 제1 명령의 대상 주소에 포함된 대상 메모리 플레인과 상기 제2 명령의 대상 주소에 포함된 대상 메모리 플레인이 상이한지 여부를 판단하고, 상기 판단 결과에 따라 데이터 병렬화 기법을 선택하는 병렬화 기법 선택부
    를 포함하는 플래시 메모리 칩.
  13. 제12항에 있어서,
    상기 병렬화 기법 선택부는 상기 제1 명령의 유형 및 상기 제2 명령의 유형이 쓰기 명령 또는 읽기 명령으로 동일한 경우 상기 제1 명령의 대상 주소에 포함된 대상 페이지 오프셋과 상기 제2 명령의 대상 주소에 포함된 대상 페이지 오프셋이 일치하는지 여부를 비교하고, 상기 비교 결과에 따라 상기 데이터 병렬화 기법을 선택하는 플래시 메모리 칩.
  14. 제1항에 있어서,
    상기 병렬화 제어부는
    상기 선택된 병렬화 기법이 데이터 병렬화 기법인 경우, 상기 데이터 저장부와 상기 복수의 메모리 플레인들 사이의 복수의 데이터 전송들이 병렬화되도록 컨트롤 흐름 및 데이터 흐름을 제어하는 흐름 제어부
    를 포함하는 플래시 메모리 칩.
  15. 제14항에 있어서,
    상기 흐름 제어부는 상기 선택된 병렬화 기법이 지우기 명령과 관련된 데이터 병렬화 기법인 경우 상기 복수의 메모리 플레인들에 대응되는 복수의 지우기 동작들이 병렬화되도록 컨트롤 흐름을 제어하는 플래시 메모리 칩.
  16. 제1항에 있어서,
    상기 복수의 명령들은 제1 명령, 제2 명령, 및 제3 명령을 포함하고,
    상기 병렬화 제어부는
    상기 제1 명령의 유형, 상기 제2 명령의 유형, 및 상기 제3 명령의 유형을 획득하는 유형 획득부;
    상기 제1 명령의 대상 주소 및 상기 제2 명령의 대상 주소를 획득하는 주소 획득부; 및
    상기 제1 명령의 유형, 상기 제2 명령의 유형, 및 상기 제3 명령의 유형이 쓰기 명령 또는 읽기 명령으로 동일하고, 상기 제1 명령의 대상 주소에 포함된 대상 메모리 플레인과 상기 제2 명령의 대상 주소에 포함된 대상 메모리 플레인이 상이하며, 상기 제1 명령의 대상 주소에 포함된 대상 페이지 오프셋과 상기 제2 명령의 대상 주소에 포함된 대상 페이지 오프셋이 일치하는지 여부를 판단하고, 상기 판단 결과에 따라 파이프라인 기법과 데이터 병렬화 기법이 조합된 기법을 선택하는 병렬화 기법 선택부
    를 포함하는 플래시 메모리 칩.
  17. 제1항에 있어서,
    상기 병렬화 제어부는
    상기 선택된 병렬화 기법이 파이프라인 기법과 데이터 병렬화 기법이 조합된 기법인 경우, 상기 데이터 저장부와 상기 복수의 메모리 플레인들 사이의 복수의 데이터 전송들 및 상기 플래시 메모리 컨트롤러와 상기 데이터 저장부 사이의 데이터 전송이 병렬화되도록 컨트롤 흐름 및 데이터 흐름을 제어하는 흐름 제어부
    를 포함하는 플래시 메모리 칩.
  18. 병렬화 기법을 활용하는 플래시 메모리 칩에 있어서,
    플래시 메모리 소자들로 구성된 복수의 메모리 다이들; 및
    병렬화 제어 다이
    를 포함하고,
    상기 병렬화 제어 다이는
    플래시 메모리 컨트롤러로부터 전송된 복수의 명령들을 저장하는 명령 저장부;
    상기 플래시 메모리 컨트롤러와 상기 복수의 메모리 다이들 사이에 전송되는 데이터를 저장하는 데이터 저장부;
    상기 복수의 명령들에 포함된 명령의 유형들 및 명령의 대상 주소들에 기초하여 미리 정해진 복수의 병렬화 기법들 중 적어도 어느 하나의 병렬화 기법을 활성화하는 병렬화 기법 활성화부; 및
    상기 활성화된 적어도 하나의 병렬화 기법에 따라 복수의 플래시 메모리 연산들을 병렬화하기 위하여 상기 명령 저장부, 상기 데이터 저장부, 및 상기 복수의 메모리 다이들과 관련된 컨트롤 흐름 및 데이터 흐름을 제어하는 흐름 제어부
    를 포함하는 플래시 메모리 칩.
  19. 제18항에 있어서,
    상기 미리 정해진 복수의 병렬화 기법들은 파이프라인 기법, 데이터 병렬화 기법 또는 복수의 기능 단위들 사용 기법 중 적어도 하나를 포함하는 플래시 메모리 칩.
  20. 제18항에 있어서,
    상기 복수의 명령들 각각은 명령을 식별하기 위한 태그를 포함하고, 상기 흐름 제어부는 상기 태그에 기초하여 상기 복수의 명령들의 진행 상태를 확인하는 플래시 메모리 칩.
  21. 제18항에 있어서,
    상기 복수의 명령들은 제1 명령과 제2 명령을 포함하고,
    상기 병렬화 기법 활성화부는 상기 제1 명령의 대상 주소에 포함된 대상 메모리 다이 및 상기 제2 명령의 대상 주소에 포함된 대상 메모리 다이가 상이한지 여부를 판단하고, 상기 판단 결과에 따라 복수의 기능 단위들 사용 기법을 활성화하는 플래시 메모리 칩.
  22. 제18항에 있어서,
    상기 복수의 명령들은 제1 명령과 제2 명령을 포함하고,
    상기 병렬화 기법 활성화부는 상기 제1 명령의 대상 주소에 포함된 대상 메모리 다이 및 상기 제2 명령의 대상 주소에 포함된 대상 메모리 다이가 동일하고, 상기 제1 명령의 유형이 쓰기 명령 또는 읽기 명령이며, 상기 제2 명령의 유형이 쓰기 명령 또는 읽기 명령인지 여부를 판단하고, 상기 판단 결과에 따라 파이프라인 기법을 활성화하는 플래시 메모리 칩.
  23. 제18항에 있어서,
    상기 복수의 명령들은 제1 명령 및 제2 명령을 포함하고,
    상기 병렬화 기법 활성화부는 상기 제1 명령의 유형 및 상기 제2 명령의 유형이 동일하고, 상기 제1 명령의 대상 주소에 포함된 대상 메모리 다이와 상기 제2 명령의 대상 주소에 포함된 대상 메모리 다이가 일치하며, 상기 제1 명령의 대상 주소에 포함된 대상 플레인과 상기 제2 명령의 대상 주소에 포함된 대상 플레인이 상이한지 여부를 판단하고, 상기 판단 결과에 따라 데이터 병렬화 기법을 활성화하는 플래시 메모리 칩.
  24. 제23항에 있어서,
    상기 병렬화 기법 활성화부는 상기 제1 명령의 유형 및 상기 제2 명령의 유형이 쓰기 명령 또는 읽기 명령으로 동일한 경우 상기 제1 명령의 대상 주소에 포함된 대상 페이지 오프셋과 상기 제2 명령의 대상 주소에 포함된 대상 페이지 오프셋이 일치하는지 여부를 비교하고, 상기 비교 결과에 따라 상기 데이터 병렬화 기법을 활성화하는 플래시 메모리 칩.
  25. 제18항에 있어서,
    상기 흐름 제어부는 상기 활성화된 병렬화 기법이 복수의 기능 단위들 사용 기법인 경우, 상기 데이터 저장부와 상기 복수의 메모리 다이들 사이의 복수의 데이터 전송들이 병렬화 되도록 상기 컨트롤 흐름 및 상기 데이터 흐름을 제어하는 플래시 메모리 칩.
  26. 제18항에 있어서,
    상기 흐름 제어부는 상기 활성화된 병렬화 기법이 파이프라인 기법인 경우, 상기 데이터 저장부와 어느 하나의 메모리 다이 사이의 데이터 전송 및 상기 플래시 메모리 컨트롤러와 상기 데이터 저장부 사이의 데이터 전송이 병렬화되도록 상기 컨트롤 흐름 및 상기 데이터 흐름을 제어하는 플래시 메모리 칩.
  27. 제18항에 있어서,
    상기 흐름 제어부는 상기 활성화된 병렬화 기법이 데이터 병렬화 기법인 경우, 상기 데이터 저장부와 어느 하나의 메모리 다이에 포함된 복수의 플레인들 사이의 복수의 데이터 전송들이 병렬화되도록 상기 컨트롤 흐름 및 상기 데이터 흐름을 제어하는 플래시 메모리 칩.
  28. 제27항에 있어서,
    상기 흐름 제어부는 상기 활성화된 병렬화 기법이 지우기 명령과 관련된 데이터 병렬화 기법인 경우 어느 하나의 메모리 다이에 포함된 복수의 메모리 플레인들에 대응되는 복수의 지우기 동작들이 병렬화되도록 상기 컨트롤 흐름을 제어하는 플래시 메모리 칩.
KR20130062822A 2013-05-31 2013-05-31 병렬화 기법을 활용하는 플래시 메모리 칩 KR101457802B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR20130062822A KR101457802B1 (ko) 2013-05-31 2013-05-31 병렬화 기법을 활용하는 플래시 메모리 칩

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20130062822A KR101457802B1 (ko) 2013-05-31 2013-05-31 병렬화 기법을 활용하는 플래시 메모리 칩

Publications (1)

Publication Number Publication Date
KR101457802B1 true KR101457802B1 (ko) 2014-11-04

Family

ID=52289258

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20130062822A KR101457802B1 (ko) 2013-05-31 2013-05-31 병렬화 기법을 활용하는 플래시 메모리 칩

Country Status (1)

Country Link
KR (1) KR101457802B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10606509B2 (en) 2018-07-17 2020-03-31 SK Hynix Inc. Data storage device managing write tag, writing operation method thereof, and storage system including the same

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100863373B1 (ko) 2004-07-08 2008-10-13 가부시끼가이샤 르네사스 테크놀로지 메모리 시스템 및 메모리 카드

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100863373B1 (ko) 2004-07-08 2008-10-13 가부시끼가이샤 르네사스 테크놀로지 메모리 시스템 및 메모리 카드

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10606509B2 (en) 2018-07-17 2020-03-31 SK Hynix Inc. Data storage device managing write tag, writing operation method thereof, and storage system including the same

Similar Documents

Publication Publication Date Title
US9021178B2 (en) High performance path for command processing
KR102344768B1 (ko) 메모리 프로토콜
US9824004B2 (en) Methods and apparatuses for requesting ready status information from a memory
US8392669B1 (en) Systems and methods for coalescing memory accesses of parallel threads
US8930921B2 (en) Compilation and placement of instructions in a memory system
US9390038B2 (en) Local bypass for in memory computing
US20160110209A1 (en) Apparatus and method for performing multi-core emulation based on multi-threading
US10223260B2 (en) Compiler-generated memory mapping hints
CN103577347A (zh) 用于操作存储器设备的方法和用于存储器操作的系统
US10402315B1 (en) Data storage system configured to write volatile scattered memory metadata to a non-volatile memory
KR101457802B1 (ko) 병렬화 기법을 활용하는 플래시 메모리 칩
US20100153678A1 (en) Memory management apparatus and method
US20140331021A1 (en) Memory control apparatus and method
JP2020508534A (ja) スーパースレッドプロセッサ、処理システム、および方法
US9678752B2 (en) Scheduling apparatus and method of dynamically setting the size of a rotating register
CN105868121A (zh) 一种信息处理方法及电子设备
CN116048770A (zh) 用于进程调度的方法和设备
US9965193B2 (en) Apparatus, system, and method of sequencing, shadowing, and queuing operations in a non-volatile storage memory
CN104750547A (zh) 虚拟机的输入输出io请求处理方法及装置
US20140289478A1 (en) Control device, and storage system
KR101414453B1 (ko) 메모리 제어장치 및 제어방법, 그리고 그 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체
KR101693966B1 (ko) 디바이스 컨트롤러를 포함하는 저장 장치, 상기 디바이스 컨트롤러가 수행하는 입출력 분산 처리 방법
KR101453663B1 (ko) 인텔리전트 ssd를 위한 효율적인 외부 정렬 방법 및 저장 장치
US9524266B2 (en) Latency management system and method for multiprocessor system
US10459842B1 (en) Data storage system with configurable prefetch buffers

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170925

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20181002

Year of fee payment: 5