KR101936311B1 - 데이터 처리 방법 - Google Patents

데이터 처리 방법 Download PDF

Info

Publication number
KR101936311B1
KR101936311B1 KR1020110098684A KR20110098684A KR101936311B1 KR 101936311 B1 KR101936311 B1 KR 101936311B1 KR 1020110098684 A KR1020110098684 A KR 1020110098684A KR 20110098684 A KR20110098684 A KR 20110098684A KR 101936311 B1 KR101936311 B1 KR 101936311B1
Authority
KR
South Korea
Prior art keywords
data
data storage
storage device
host
address
Prior art date
Application number
KR1020110098684A
Other languages
English (en)
Other versions
KR20120061730A (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 삼성전자주식회사
Publication of KR20120061730A publication Critical patent/KR20120061730A/ko
Application granted granted Critical
Publication of KR101936311B1 publication Critical patent/KR101936311B1/ko

Links

Images

Classifications

    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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
    • G11C16/26Sensing or reading circuits; Data output circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Read Only Memory (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

호스트는 데이터 처리 동작, 예컨대 4Kbyte 단위의 랜덤 리드 동작 또는 랜덤 라이트 동작을 수행하기 위하여 헤더와 각 시작 어드레스를 포함하는 어드레스 어레이를 생성하고 생성된 어드레스 어레이를 데이터 버스를 통하여 데이터 저장 장치로 전송한다. 랜덤 리드의 경우 상기 데이터 저장 장치는 상기 어드레스 어레이를 이용하여 상기 각 시작 어드레스에 상응하는 각 데이터를 순차적으로 상기 호스트로 출력하고, 랜덤 라이트의 경우 상기 데이터 저장 장치는 각 시작 어드레스에 상응하는 각 데이터를 순차적으로 상기 호스트부터 수신하여 메모리 코어에 저장한다.

Description

데이터 처리 방법{METHOD OF PROCESSING DATA}
본 발명의 개념에 따른 실시 예는 데이터 처리 기술에 관한 것으로, 특히 eMMC(embedded Multi Media Card) 또는 SD(Secure Digital) 카드 시스템에서 새롭게 정의된 어드레스 어레이(address array)에 따라 데이터를 처리할 수 있는 방법과 상기 방법을 수행할 수 있는 시스템에 관한 것이다.
eMMCTM(Multi Media Card)는 JEDEC(http://www.jedec.org)에서 표준으로 정한 카드 인터페이스(I/F) 규약이다. eMMCTM를 포함하는 데이터 처리 시스템은 짧은 시간 동안 빠르게 데이터를 처리해야 할 필요가 있다.
본 발명이 이루고자 하는 기술적인 과제는 데이터 처리 속도, 예컨대 랜덤 리드(random read) 속도 또는 랜덤 라이트(random write) 속도를 개선하기 위해 eMMC(embedded Multi Media Card) 또는 SD(Secure Digital) 카드 시스템에서 사용될 수 있는 새롭게 정의된 어드레스 어레이에 따라 데이터를 처리할 수 있는 방법과 상기 방법을 수행할 수 있는 시스템을 제공하는 것이다.
본 발명의 실시 예들에 따른 데이터 저장 장치의 데이터 처리 방법은, 명령 버스를 통하여 호스트로부터 출력되고, 랜덤 리드 동작을 수행하기 위한 명령을 수신하고, 상기 명령에 응답하여 응답을 상기 명령 버스를 통하여 상기 호스트로 전송하는 단계와, 데이터 버스를 통하여 상기 호스트로부터 출력되고, 상기 데이터 저장 장치의 복수의 데이터 저장 영역들의 시작 위치들을 지시하는 복수의 시작 어드레스들을 포함하는 어드레스 어레이를 상기 호스트로부터 출력된 클락 신호에 따라 수신하는 단계와, 동시에 수신된 상기 복수의 시작 어드레스들을 포함하고 상기 명령을 포함하지 않은 상기 어드레스 어레이를 수신한 후, 상기 복수의 시작 어드레스들 각각에 연관된 상기 복수의 데이터 저장 영역들 각각으로부터 리드된 데이터를 상기 데이터 버스를 통하여 상기 호스트로 순차적으로 전송하는 단계를 포함하고, 상기 호스트로 대응하는 데이터가 전송되는 도중에, 상기 호스트로부터 종료 명령을 수신하면, 상기 데이터 저장 장치는 상기 대응하는 데이터만 전송하고 리드 동작을 멈추고, 상기 어드레스 어레이는 상기 어드레스 어레이에 포함된 상기 복수의 시작 어드레스들의 개수를 나타내는 정보를 포함한다.
본 발명의 실시 예들에 따른 데이터 저장 장치의 데이터 처리 방법은, 명령 버스를 통하여 호스트로부터 출력되고, 랜덤 라이트 동작을 수행하기 위한 명령을 수신하고, 상기 명령에 응답하여 응답을 상기 명령 버스를 통하여 상기 호스트로 전송하는 단계와, 데이터 버스를 통하여 상기 호스트로부터 출력되고, 상기 데이터 저장 장치의 복수의 데이터 저장 영역들의 시작 위치들을 지시하는 복수의 시작 어드레스들을 포함하는 어드레스 어레이를 수신하는 단계와, 상기 복수의 시작 어드레스들을 포함하는 상기 어드레스 어레이를 수신한 후, 상기 데이터 버스를 통하여 상기 호스트로부터 출력된 복수의 데이터를 순차적으로 수신하는 단계와, 상기 복수의 데이터 각각을 상기 복수의 시작 어드레스들 중에서 시작 어드레스에 대응하는 상기 복수의 저장 영역들 중에서 대응되는 저장 영역에 프로그램하는 단계를 포함하고, 상기 어드레스 어레이는 동시에 수신된 상기 복수의 시작 어드레스들을 포함하고 상기 명령을 포함하지 않고, 상기 데이터 저장 장치는 상기 어드레스 어레이를 수신한 후, 제1웨이(way)에서 프로그램 동작이 수행되는 동안 상기 제1웨이와 제2웨이 각각에서 프로그램 될 대응하는 데이터를 순차적으로 수신한다.
본 발명의 실시 예들에 따른 데이터 저장 장치의 데이터 처리 방법은, 명령 버스를 통하여 호스트로부터 출력되고, 랜덤 라이트 동작을 수행하기 위한 명령을 수신하고, 상기 명령에 응답하여 응답을 상기 명령 버스를 통하여 상기 호스트로 전송하는 단계와, 데이터 버스를 통하여 상기 호스트로부터 출력되고, 상기 데이터 저장 장치의 복수의 데이터 저장 영역들의 시작 위치들을 지시하는 복수의 시작 어드레스들을 포함하는 어드레스 어레이를 수신하는 단계와, 상기 어드레스 어레이를 수신한 후, 상기 데이터 버스를 통하여 상기 호스트로부터 출력된 복수의 데이터를 순차적으로 수신하는 단계와, 상기 복수의 데이터 각각을 상기 복수의 시작 어드레스들 중에서 시작 어드레스에 대응하는 상기 복수의 저장 영역들 중에서 대응되는 저장 영역에 프로그램하는 단계를 포함하고, 상기 복수의 수신된 데이터 각각을 프로그램하는 단계는, 상기 복수의 데이터를 수신하고 상기 데이터 저장 장치로 저장하는 단계와, 상기 복수의 데이터 각각을 상기 복수의 데이터 저장 영역들 중에서 대응되는 데이터 저장 영역들로 동시에 프로그램하는 단계를 포함하고, 상기 어드레스 어레이는 동시에 수신된 상기 복수의 시작 어드레스들을 포함하고 상기 명령을 포함하지 않고, 상기 어드레스 어레이는 상기 어드레스 어레이에 포함된 상기 복수의 시작 어드레스들의 개수를 나타내는 정보를 포함하는 헤더를 포함한다.
본 발명의 실시 예들에 따른 명령 채널, 클락 채널, 및 데이터 버스를 통하여 eMMC(embedded Multi Media Card) 데이터 저장 장치와 SD(Secure Digital) 카드 중에서 어느 하나(이하, "데이터 저장 장치"라 함)에 연결된 호스트를 포함하는 데이터 처리 시스템의 데이터 처리 방법은, 클락 신호에 응답하여 라이트 동작을 수행하는 상기 데이터 저장 장치로 상기 호스트로부터 출력된 상기 클락 신호를 전송하는 단계와, 상기 데이터 저장 장치에 임의로 저장 될 데이터 엔트리 세트에 관련된 라이트 동작을 지시하는 라이트 명령을 상기 명령 채널을 통하여 상기 호스트로부터 상기 데이터 저장 장치로 전송하는 단계와, 각각이 상기 데이터 엔트리 세트의 데이터 엔트리에 대한 시작 어드레스인 어드레스들을 포함하는 어드레스 세트를 포함하는 어드레스 어레이를 상기 호스트에서 생성하는 단계와, 상기 라이트 명령에 이어서 시작 어드레스들의 연속된 블록인 상기 어드레스 어레이를 상기 데이터 버스를 통하여 상기 호스트로부터 상기 데이터 저장 장치로 전송하는 단계와, 상기 데이터 저장 장치에서 상기 데이터 엔트리 세트의 각 데이터 엔트리를 상기 호스트로부터 순차적으로 수신하는 단계와, 상기 라이트 명령과 상기 어드레스 어레이에 응답하여 상기 데이터 저장 장치로 상기 데이터 엔트리 세트의 각 데이터 엔트리를 순차적으로 프로그램하는 단계를 포함하고, 상기 어드레스 어레이는 동시에 수신된 복수의 시작 어드레스들을 포함하고 상기 라이트 명령을 포함하지 않고, 상기 데이터 저장 장치는 상기 어드레스 어레이를 수신한 후 제1웨이에서 프로그램 동작이 수행되는 동안, 상기 제1웨이와 제2웨이 각각에 프로그램 될 대응하는 데이터 엔트리를 순차적으로 수신하고, 상기 어드레스 어레이는 상기 어드레스 어레이에 포함된 상기 복수의 시작 어드레스들의 개수를 나타내는 정보를 포함하는 헤더를 포함한다.
본 발명의 실시 예들에 따른, 명령 채널, 클락 채널, 및 데이터 버스를 통하여 eMMC(embedded Multi Media Card) 데이터 저장 장치와 SD(Secure Digital) 카드 중에서 어느 하나(이하, "데이터 저장 장치"라 함)에 연결된 호스트를 포함하는 데이터 처리 시스템의 데이터 처리 방법은 클락 신호에 응답하여 라이트 동작을 수행하는 상기 데이터 저장 장치로 상기 호스트로부터 출력된 상기 클락 신호를 전송하는 단계와, 상기 명령 채널을 통하여 상기 데이터 저장 장치에 저장될 데이터 엔트리 세트에 대한 라이트 동작을 나타내는 라이트 명령을 상기 호스트로부터 상기 데이터 저장장치로 전송하는 단계와, 상기 호스트에서 어드레스 세트를 포함하는 어드레스 어레이를 생성하는 단계와, 상기 라이트 명령에 이어서 시작 어드레스들의 연속된 블록인 상기 어드레스 어레이를 상기 데이터 버스를 통하여 상기 호스트로부터 상기 데이터 저장 장치로 전송하는 단계와, 상기 데이터 저장 장치에서 상기 데이터 엔트리 세트에 포함된 각 데이터 엔트리를 순차적으로 수신하는 단계와, 상기 라이트 명령과 상기 어드레스 어레이에 응답하여, 상기 데이터 엔트리 세트에 포함된 각 데이터 엔트리를 상기 데이터 저장 장치에 동시에 프로그래밍하는 단계를 포함하고, 상기 어드레스 세트의 각 어드레스는 상기 데이터 엔트리 세트에 포함된 각 데이터 엔트리에 대한 시작 어드레스이고, 상기 어드레스 어레이는 동시에 수신된 상기 시작 어드레스들을 포함하나 상기 라이트 명령을 포함하지 않고, 상기 어드레스 어레이는 상기 어드레스 어레이에 포함된 상기 시작 어드레스들의 개수를 나타내는 정보를 포함하는 헤더를 포함한다.
삭제
삭제
삭제
삭제
삭제
삭제
본 발명의 실시 예에 따른 어드레스 어레이를 이용하여 데이터를 처리할 수 있는 메모리 카드의 데이터 처리 방법은 초당 랜덤 리드(random read) 회수 또는 초당 랜덤 라이트(random write) 회수를 상당히 증가시키는 효과가 있다.
따라서 상기 방법을 수행할 수 있는 데이터 저장 장치 또는 상기 데이터 저장 장치를 포함하는 데이터 처리 시스템의 랜덤 리드(random read) 시간 및/또는 랜덤 라이트(random write) 시간은 상당히 단축되는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 실시 예에 따른 데이터 처리 시스템의 블록도를 나타낸다.
도 2a는 도 1에 도시된 데이터 처리 시스템의 리드(read) 동작을 설명하기 위한 타이밍 도이다.
도 2b는 도 1에 도시된 데이터 처리 시스템의 라이트(write) 동작을 설명하기 위한 타이밍 도이다.
도 3은 도 1에 도시된 호스트로부터 출력되는 어드레스 어레이를 나타낸다.
도 4는 도 1에 도시된 데이터 저장 장치의 메모리 맵을 나타낸다.
도 5는 도 1에 도시된 데이터 처리 시스템의 리드(read) 성능을 설명하기 위한 타이밍 도의 일 실시예이다.
도 6은 도 1에 도시된 데이터 처리 시스템의 리드(read) 성능을 설명하기 위한 타이밍 도의 다른 실시예이다.
도 7은 도 1에 도시된 데이터 처리 시스템의 라이트(write) 성능을 설명하기 위한 타이밍 도의 일 실시예이다.
도 8은 도 1에 도시된 데이터 처리 시스템의 라이트(write) 성능을 설명하기 위한 타이밍 도의 다른 실시예이다.
본 명세서에 기재된 기술적 사상이 적용된 데이터 저장 장치, 예컨대 MMC (Multi Media Card) 또는 eMMC(embedded Multi Media Card)에 대해서는 JEDEC 표준 (standard) JESD84-A441을 레퍼런스(reference)로 참조하고, SD(Secure Digital) 카드에 대해서는 http://www.sdcard.org의 SD Specifications Part 1 Physical Layer Simplified Specification Version 3.01 May 18, 2010을 레퍼런스 (reference)로 참조한다.
도 1은 본 발명의 실시 예에 따른 데이터 처리 시스템의 블록도를 나타내고, 도 3은 도 1에 도시된 호스트로부터 출력되는 어드레스 어레이(address array (ADDA))를 나타내고, 도 4는 도 1에 도시된 데이터 저장 장치의 메모리 맵(memory map)을 나타낸다.
도 1을 참조하면, 데이터 처리 시스템(10)은 호스트(20)와 데이터 저장 장치 (30)를 포함한다. 데이터 저장 장치(30)는 eMMC 또는 SD 카드로 구현될 수 있다.
호스트(20)는 본 발명의 실시 예에 따른 데이터 처리 동작, 예컨대 랜덤 리드 동작(random read operation) 또는 랜덤 라이트 동작(random write operation)을 수행하기 위하여 어드레스 어레이(address array(ADDA))를 생성하고 생성된 어드레스 어레이 ADDA)를 데이터 버스(또는 데이터 채널들; 40-3)를 통하여 데이터 저장 장치(30)로 전송할 수 있다.
본 명세서에서 사용되는 어드레스 어레이(ADDA)는 도 3에 도시된 바와 같이 어드레스들(ADD0~ADD126)의 집합 또는 어드레스들(ADD0~ADD126)의 세트(set)를 의미한다. 어드레스 어레이(ADDA)는 어드레스 어레이(ADDA)에 몇 개의 어드레스들이 포함되어 있는지에 대한 정보를 나타내는 헤더(HEADER)를 더 포함할 수 있다.
도 3에서는 설명의 편의를 위하여, 4바이트(byte)로 구성된 하나의 헤더 (HEADER)와, 각각이 4바이트로 구성된 127개의 어드레스들(ADD0~ADD126)을 포함하는 어드레스 어레이(ADDA)가 도시되어 있다. 따라서, 어드레스 어레이 (ADDA)는 512바이트(byte)로 구성된다. 어드레스들(ADD0~ADD126) 각각을 엔트리(entry)라 칭할 수 있다.
도 4에 도시된 바와 같이, 각 어드레스(ADD0~ADD126)는 각 데이터가 저장된 각 데이터 저장 영역의 시작 위치를 지시하는 시작 어드레스(start address)를 의미한다. 각 데이터의 크기(또는 양)는 호스트(20)에 의하여 한번에 처리할 수 있는 데이터의 크기(또는 양), 예컨대 4Kbyte일 수 있다. 각 데이터는 데이터 저장 장치 (30)의 메모리 코어(memory core)에 랜덤하게 저장될 수 있다.
도 4에 도시된 바와 같이, 어드레스(ADD0)는 데이터(DATAi)가 저장된 데이터 저장 영역의 시작 위치를 지시하는 시작 어드레스이고, 어드레스(ADD126)는 데이터(DATAj)가 저장된 데이터 저장 영역의 시작 위치를 지시하는 시작 어드레스이고, 어드레스(ADD125)는 데이터(DATAm)가 저장된 데이터 저장 영역의 시작 위치를 지시하는 시작 어드레스이다. 따라서, 어드레스(ADD0)가 데이터 저장 장치(30)로 입력되면, 4Kbyte 데이터(DATAi)는 호스트(20)로 순차적으로 출력된다.
도 2a는 도 1에 도시된 데이터 처리 시스템의 리드(read) 동작을 설명하기 위한 타이밍 도이다. 도 1, 도 2a, 도 3, 및 도 4를 참조하여, 데이터 처리 시스템 (10)의 랜덤 리드(random read) 동작을 설명하면 다음과 같다.
호스트(20)는 랜덤 리드 동작을 수행하기 위한 명령(command; CMD)을 양방향 명령 버스(bidirectional command bus) 또는 양방향 명령 채널(40-1)을 통하여 데이터 저장 장치(30)로 출력한다. 이때 호스트(20)는 클락 신호(CLK)를 클락 버스 또는 클락 채널(40-2)을 통하여 데이터 저장 장치(30)로 출력한다.
데이터 저장 장치(30)의 메모리 컨트롤러(30-2)는 명령(command; CMD)에 응답하여 응답(response)을 양방향 명령 버스(40-1)를 통하여 호스트(20)로 전송한다.
호스트(20)는 응답(response)을 수신한 후 도 3에 도시된 바와 같은 랜덤 리드 동작을 위한 헤더(HEADER)와 각 시작 어드레스(ADD0, ADD1, ADD2, ..., ADD125, 및 ADD126)을 포함하는 어드레스 어레이(ADDA)를 클락 신호(CLK)에 따라 데이터 버스(40-3)를 통하여 데이터 저장 장치(30)로 전송한다.
도 2a와 도 2b에는 설명의 편의를 위하여 8비트 폭 데이터 버스(DATA[7:0]; 40-3)를 도시하였으나 이는 예시적인 것에 불과하다. 실시 예에 따라, 8비트 폭 데이터 버스(DATA[7:0]; 40-3) 중에서 데이터(DATA)를 전송하기 위하여 DATA[0], DATA[3:0], 또는 DATA[7:0]이 사용될 수 있다.
데이터 저장 장치(30)의 메모리 컨트롤러(30-2)는 어드레스 어레이(ADDA)를 해석(또는 디코딩(decoding))하여 어드레스 어레이(ADDA)에 포함된 각 어드레스 (ADD0~ADD126)에 의하여 지정되며 메모리 코어(30-1)의 각 데이터 저장 영역에 저장된 각 데이터를 리드하고 리드된 각 데이터를 클락 신호(CLK)에 따라 순차적으로 데이터 버스(40-3)를 통하여 호스트(20)로 출력한다.
도 2a에 도시된 데이터 세트(DATA SET)는 각 어드레스(ADD0~ADD126)의 해석 결과에 따라 순차적으로 호스트(20)로 전송되는 각 데이터의 집합을 의미한다.
예컨대, 데이터 세트(DATA SET)에 포함된 각 데이터, 즉 각 시작 어드레스 (ADD0, ADD1, ADD2, ..., ADD125, 및 ADD126)의 해석결과에 따라 리드된 각 데이터 (DATAi, DATAk, DATAl, ..., DATAm, 및 DATAj)는 순차적으로 데이터 버스(40-3)를 통하여 호스트(20)로 전송된다. 이때 각 데이터가 호스트(20)로 전송되는 도중에, 호스트(20)로부터 종료(stop) 명령이 입력되면, 데이터 저장 장치(30)는 전송 중이던 데이터까지만 전송하고 동작을 멈출 수 있다.
도 1에서는 어드레스 어레이(ADDA)를 해석하는 주체로서 메모리 컨트롤러 (30-2)를 일 예로서 도시하나, 어드레스 어레이(ADDA)는 펨웨어(firmware)에 의하여 해석될 수 있으며, 상기 펌웨어는 메모리 컨트롤러(30-2)의 내부에 저장될 수 있고 또는 별도의 메모리에 저장된 후 메모리 컨트롤러(30-2)에 의하여 실행될 수 있다.
데이터 저장 장치(30)는 수신된 어드레스 어레이(ADDA)에 따라 데이터 세트 (DATA SET)를 호스트(20)로 출력할 때, 이어서 읽어야 하는 데이터를 미리 읽어둘 수 있다. 따라서 데이터 처리 시스템(10)의 랜덤 리드 동작의 랜덤 리드 시간은 감소하는 효과가 있다. 이러한 효과는 도 5와 도 6을 참조하여 상세히 설명될 것이다.
도 2b는 도 1에 도시된 데이터 처리 시스템의 라이트(write) 동작을 설명하기 위한 타이밍 도이다. 도 1, 도 2b, 도 3, 및 도 4를 참조하여, 데이터 처리 시스템(10)의 랜덤 라이트(random write) 동작을 설명하면 다음과 같다.
호스트(20)는 랜덤 라이트 동작을 수행하기 위한 명령(command)을 양방향 명령 버스(40-1)를 통하여 데이터 저장 장치(30)로 출력한다. 이때 호스트(20)는 클락 신호(CLK)를 클락 버스(40-2)를 통하여 데이터 저장 장치(30)로 출력한다.
데이터 저장 장치(30)의 메모리 컨트롤러(30-2)는 라이트 명령(command)에 응답하여 응답(response)을 양방향 명령 버스(40-1)를 통하여 호스트(20)로 전송한다.
호스트(20)는 응답(response)을 수신한 후 도 3에 도시된 바와 같은 랜덤 라이트 동작을 위한 헤더(HEADER)와 각 시작 어드레스(ADD0, ADD1, ADD2, ..., ADD125, 및 ADD126)를 포함하는 어드레스 어레이(ADDA)를 클락 신호(CLK)에 따라 데이터 버스(40-3)를 통하여 데이터 저장 장치(30)로 전송한다.
도 2b에 도시된 바와 같이 호스트(20)는 데이터 세트(DATA SET)에 포함된 각 데이터(DATAi, DATAk, DATAl, ..., DATAm, 및 DATAj)를 클락 신호(CLK)에 따라 순차적으로 데이터 버스(40-3)를 통하여 데이터 저장 장치(30)로 전송된다.
데이터 저장 장치(30)의 메모리 코어(30-1)는 메모리 컨트롤러(30-2)의 제어에 따라 각 데이터(DATAi, DATAk, DATAl, ..., DATAm, 및 DATAj)를 각 시작 어드레스(ADD0, ADD1, ADD2, ..., ADD125, 및 ADD126)에 따라 지정된 각 데이터 저장 영역에 순차적으로 저장한다.
데이터 저장 장치(30)는 어드레스 어레이(ADDA)를 수신한 후 데이터 세트 (DATA SET)를 수신하므로, 종래 기술과 달리 라이트 동작을 수행할 때마다 라이트 명령과 어드레스를 수신하지 않아도 되고, 이전 라이트 명령에 따른 동작이 끝날 때까지 기다리지 않아도 된다. 또한 4Kbyte 단위의 랜덤 라이트 데이터를 모아서 한꺼번에 라이트할 수 있다. 따라서 데이터 처리 시스템(10)의 랜덤 라이트 동작의 랜덤 라이트 시간은 감소하는 효과가 있다. 이러한 효과는 도 7과 도 8을 참조하여 상세히 설명될 것이다.
도 5는 도 1에 도시된 데이터 처리 시스템의 리드 성능을 설명하기 위한 타이밍 도의 일 실시예이다. 도 5는 1채널(channel)-1웨이(way) 구조를 갖는 데이터 저장 장치(30)의 랜덤 라이트 동작 타이밍을 나타낸다.
도 5를 참조하면, T1은 수학식 1과 같이 리드 명령, 예컨대 리드 요청마다 데이터 저장 장치 (30)의 메모리 코어(30-1)로부터 데이터, 예컨대 4Kbyte 데이터를 리드하여 호스트 (20)로 전송할 때까지의 시간을 나타낸다.
[수학식1]
T1 = T11 + T12 + T13 + T14 + T15 + T16
여기서, T11은 리드 명령(command)을 수신하는데 소요된 시간이고, T12는 메모리 컨트롤러(30-2) 또는 펌웨어가 리드 명령(command)을 해석하는데 소요된 시간이고, T13은 메모리 코어(30-1)에 저장된 데이터를 감지 증폭하는데 소요된 시간이고, T14는 감지 증폭된 데이터를 메모리, 예컨대 SRAM에 저장(또는 이동)하는데 소요된 시간이고, T15는 리드된 데이터에 대한 ECC 디코딩(decoding)에 소요된 시간이고, T16은 ECC 디코드된 리드 데이터를 호스트(20)로 전송하는데 소요된 시간이다.
이때 rIOPS(random Input/Output Per Second)는 T1의 역수로 계산된다.
도 1, 도 2a, 도 3, 도 4, 및 도 5를 참조하면, 랜덤 리드 동작을 수행하기 위하여 호스트(20)는 응답(response)에 응답하여 각 시작 어드레스(ADD0, ADD1, ADD2, ..., ADD125, 및 ADD126)를 포함하는 어드레스 어레이(ADDA)를 데이터 버스 (40-3)를 통하여 데이터 저장 장치(30)로 전송한다.
데이터 저장 장치(30)는 시작 어드레스(ADD0)에 따라 리드된 리드 데이터 (DATAi=RDATA0)를 호스트(20)로 전송하는 동안 시작 어드레스(ADD1)에 의하여 지정된 데이터 저장 영역에 저장된 데이터(DATAk=RDATA1)를 감지 증폭하는 동작을 수행한다.
그리고, 데이터 저장 장치(30)는 감지 증폭된 리드 데이터(RDATAk)를 리드 데이터(RDATA1)로서 호스트(20)로 전송하는 동안 시작 어드레스(ADD2)에 의하여 지정된 데이터 저장 영역에 저장된 데이터(DATAl)를 감지 증폭하는 동작을 수행한다.
이와 같은 방법으로, 데이터 저장 장치(30)는 감지 증폭된 리드 데이터 (RDATAm)를 리드 데이터(RDATA125)로서 호스트(20)로 전송하는 동안 시작 어드레스 (ADD126)에 의하여 지정된 데이터 저장 영역에 저장된 데이터(DATAj)를 감지 증폭하는 동작을 수행한다.
도 5에 도시된 바와 같이, 이전 리드 데이터(previous read data)에 대한 T16과 현재 리드 데이터(current read data)에 대한 T13은 중복되므로, 랜덤 리드 시간은 상당히 감소한다.
즉, 본 발명의 실시 예에 따라 각 시작 어드레스(ADD0, ADD1, ADD2, ..., ADD125, 및 ADD126)를 포함하는 어드레스 어레이(ADDA)를 이용하여 도 5와 같은 방법으로 랜덤 리드 동작을 수행할 때의 rIOPS는 4Kbyte 데이터를 따로따로 127회 랜덤 리드 동작을 수행할 때의 rIOPS보다 상당히 증가한다.
도 6은 도 1에 도시된 데이터 처리 시스템의 리드 성능을 설명하기 위한 타이밍 도의 다른 실시예이다. 도 6은 1채널(channel)-2웨이(way), 100% 웨이 분산 구조를 갖는 데이터 저장 장치(30)의 랜덤 리드 동작 타이밍을 나타낸다.
도 1, 도 2a, 도 3, 도 4, 및 도 6을 참조하면, 랜덤 리드 동작을 수행하기 위하여 호스트(20)는 응답(response)에 응답하여 각 시작 어드레스(ADD0, ADD1, ADD2, ..., ADD125, 및 ADD126)를 포함하는 어드레스 어레이(ADDA)를 데이터 버스 (40-3)를 통하여 데이터 저장 장치(30)로 전송한다.
예컨대, 제1웨이(WAY1)에서 리드 데이터(RDATAa)가 호스트(20)로 전송되는 동안(T16) 리드 데이터(RDATAc)를 감지 증폭하는 동작이 수행되고, 리드 데이터 (RDATAc)가 호스트(20)로 전송되는 동안(T16) 리드 데이터(RDATAe)를 감지 증폭하는 동작이 수행된다. 또한, 제2웨이(WAY2)에서 리드 데이터(RDATAd)가 SRAM에 저장 (또는 이동)되는 동안(T14) 리드 데이터(RDATAc)가 호스트(20)로 전송됨과 동시에 리드 데이터(RDATAe)를 감지 증폭하는 동작이 수행된다.
따라서 데이터 저장 장치(30)의 제1웨이(WAY1)와 제2웨이(WAY2) 각각에서 랜덤 리드 동작이 수행되므로 rIOPS는 더욱 증가한다.
도 7은 도 1에 도시된 데이터 처리 시스템의 라이트 성능을 설명하기 위한 타이밍 도의 일 실시예이다. 도 7은 1채널(channel)-1웨이(way) 구조를 갖는 데이터 저장 장치(30)의 라이트 동작 타이밍을 나타낸다.
도 7을 참조하면, T2은 수학식 2와 같이 라이트 명령, 예컨대 라이트 요청마다 호스트(20)로부터 출력된 라이트 데이터, 4KByte 데이터가 메모리 컨트롤러(30-2)의 제어에 따라 메모리 코어(30-1)에 라이트 또는 프로그램될 때까지의 시간을 나타낸다.
[수학식2]
T2 = T21 + T22 + T23 + T24 + T25 + T26
여기서, T21은 라이트 명령(command)을 수신하는데 소요된 시간이고, T22는 상기 라이트 명령을 메모리 컨트롤러(30-2) 또는 펌웨어가 해석하는데 소요된 시간이고, T23은 호스트(20)로부터 라이트 데이터를 수신하는데 소요된 시간이고, T24는 수신된 라이트 데이터를 ECC 인코딩(error-correcting code encoding)하는데 소요되는 시간이고, T25는 ECC 인코드된 라이트 데이터(ECC encoded write data)를 메모리, 예컨대 SRAM에 저장(또는 이동)하는데 소요된 시간이고, T26은 상기 메모리로부터 출력된 라이트 데이터를 메모리 코어(30-1)에 프로그램하는데 소요된 시간이다.
이때 wIOPS(write Input/Output Per Second)는 T2의 역수로 계산된다.
도 1, 도 2b, 도 3, 도 4, 및 도 7을 참조하면, 랜덤 라이트 동작을 수행하기 위하여 호스트(20)는 응답(response)을 수신한 후 도 3에 도시된 바와 같이 헤더 (HEADER)와 각 시작 어드레스(ADD0, ADD1, ADD2, ..., ADD125, 및 ADD126)를 포함하는 어드레스 어레이(ADDA)를 데이터 버스(40-3)를 통하여 데이터 저장 장치 (30)로 전송한다.
그 후, 호스트(20)는 데이터 세트(DATA SET)에 포함된 각 라이트 데이터 (WDATA0~WDATA126)를 순차적으로 데이터 버스(40-3)를 통하여 데이터 저장 장치(30)로 전송된다.
따라서, 메모리 컨트롤러(30-2)의 제어에 따라 메모리 코어(30-1)는 시작 어드레스(ADD0)에 따라 지정되고 내부적으로 결정되는 적정한 위치의 데이터 저장 영역에 라이트 데이터(WDATA0=DATAi)를 프로그램한다.
라이트 데이터(WDATA0)에 대한 프로그램 동작이 수행되는 동안, 데이터 저장 장치(30)는 호스트(20)로부터 출력되고 시작 어드레스(ADD1)에 의해서 지정된 데이터 저장 영역에 프로그램될 라이트 데이터(WDATA1=DATAk)를 수신하고 수신된 라이트 데이터(WDATA1)에 대한 ECC 인코딩 동작과 메모리, 예컨대 SRAM에 저장하는 동작을 수행한다.
라이트 데이터(WDATA0)에 대한 프로그램 동작이 종료된 직후에 메모리 코어 (30-1)는 시작 어드레스(ADD1)에 따라 지정된 데이터 저장 영역에 라이트 데이터 (WDATA1)를 프로그램한다.
라이트 데이터(WDATA1)에 대한 프로그램 동작이 수행되는 동안, 데이터 저장 장치(30)는 호스트(20)로부터 출력되고 시작 어드레스(ADD2)에 의해서 지정된 데이터 저장 영역에 프로그램될 라이트 데이터(WDATA2=DATAl)를 수신하고 수신된 라이트 데이터(WDATA2)에 대한 ECC 인코딩 동작과 메모리, 예컨대 SRAM에 저장하는 동작을 순차적으로 수행한다.
또한, 라이트 데이터(WDATA125=DATAm)에 대한 프로그램 동작이 수행되는 동안, 데이터 저장 장치(30)는 호스트(20)로부터 출력되고 시작 어드레스(ADD126)에 의해서 지정된 데이터 저장 영역에 프로그램될 라이트 데이터(WDATA126)를 수신하고 수신된 라이트 데이터(WDATA126)에 대한 ECC 인코딩 동작과 메모리, 예컨대 SRAM에 저장하는 동작을 순차적으로 수행한다. 그 후 데이터 저장 장치(30)는 라이트 데이터(WDATA126)를 시작 어드레스(ADD126)에 대해서 데이터 저장 장치(30) 내부적으로 결정되는 지정된 데이터 저장 영역에 프로그램한다. 본 명세서에서는 데이터 저장 장치(30)가 라이트 데이터를 받자마자 바로 메모리 코어(30-1)에 라이트하는 것을 예시하였으나 각 라이트 데이터를 모았다가 한꺼번에 메모리 코어(30-1)에 라이트할 수도 있다.
본 발명의 실시 예에 따른 데이터 저장 장치(30)는 랜덤 라이트 (명령)을 처리할 때에도 이전 라이트 데이터에 대한 프로그램 동작이 수행되는 동안 현재 라이트 데이터를 수신하여 ECC 인코딩하고 이를 메모리에 프로그램한다. 즉, 현재 라이트 데이터에 대한 T23, T24, 및 T25는 이전 데이터에 대한 T26에 숨겨진다.
도 8은 도 1에 도시된 데이터 처리 시스템의 라이트 성능을 설명하기 위한 타이밍 도의 다른 실시예이다. 도 8은 1채널(channel) 2웨이(way)를 갖는 데이터 저장 장치(30)의 랜덤 라이트(random write) 동작 타이밍을 나타낸다.
도 1, 도 2b, 도 3, 도 4, 및 도 8을 참조하면, 랜덤 라이트 동작을 수행하기 위하여 호스트(20)는 응답(response)을 수신한 후 도 3에 도시된 바와 같이 헤더(HEADER)와 각 시작 어드레스(ADD0, ADD1, ADD2, ..., ADD125, 및 ADD126)를 포함하는 어드레스 어레이(ADDA)를 데이터 버스(40-3)를 통하여 데이터 저장 장치 (30)로 전송한다.
그 후, 호스트(20)는 데이터 세트(DATA SET)에 포함된 각 라이트 데이터 (WDATAa, WDATAb, WDATAc, ...)를 순차적으로 데이터 버스(40-3)를 통하여 데이터 저장 장치(30)로 전송된다.
따라서, 메모리 컨트롤러(30-2)는 시작 어드레스(ADD0)에 따라 지정된, 메모리 코어(30-1)의 제1웨이(WAY1)의 데이터 저장 영역에 라이트 데이터 (WDATAa=DATAi)를 프로그램한다.
라이트 데이터(WDATAa)에 대한 프로그램 동작이 수행되는 동안, 메모리 컨트롤러(30-2)는 시작 어드레스(ADD1)에 의해서 지정된, 메모리 코어(30-1)의 제2웨이 (WAY2)의 데이터 저장 영역에 프로그램될 라이트 데이터(WDATAb)를 수신하고 수신된 라이트 데이터(WDATAb)를 ECC 인코딩하고 이를 메모리, 예컨대 SRAM에 저장한다.
또한, 라이트 데이터(WDATAa)에 대한 프로그램 동작이 수행되는 동안, 메모리 컨트롤러(30-2)는 시작 어드레스(ADD2)에 의해서 지정된, 메모리 코어(30-1)의 제1웨이(WAY1)의 데이터 저장 영역에 프로그램될 라이트 데이터(WDATAc)를 수신하고 수신된 라이트 데이터(WDATAc)를 ECC 인코딩하고 이를 메모리, 예컨대 SRAM에 저장한다.
즉, 본 발명의 데이터 저장 장치(30)는 어드레스 어레이(ADDA)를 수신한 후 두 개의 웨이들(WAY1과 WAY2) 중에서 어느 하나의 웨이(WAY1)에서 수행되는 프로그램 동작의 T26동안 두 개의 웨이들(WAY1과 WAY2) 각각에 프로그램된 라이트 데이터 (WDATAb와 WDATAc)를 순차적으로 수신할 수 있다.
따라서 wIOPS(write Input/Output Per Second)는 더욱 증가한다.
본 발명의 기술적 사상은 멀티-채널 및/또는 멀티-웨이에 적용될 수 있으며, 이에 따라 데이터 처리 장치(또는 데이터 저장 장치)의 rIOPS(또는 wIOPS)는 상당히 증가한다. 따라서 데이터 처리 장치(또는 데이터 저장 장치)의 랜덤 리드 시간 및/또는 랜덤 라이트 시간은 상당히 개선되는 효과가 있다.
램덤 리드 동작 또는 랜덤 라이트 동작은 종료(stop) 명령이 입력되거나 헤더(HEADER)에서 지정된 어드레스 개수(address count)만큼 4Kbyte 단위의 리드 동작 또는 라이트 동작이 완료될 때까지 수행된다.
랜덤 라이트 동작의 경우, 종료(stop) 명령이 수신되면 데이터 저장 장치(30)는 상기 종료 명령이 수신되기 전까지 수신한 각 데이터를 메모리 코어(30-1)에 모두 저장하고 호스트(30)로 응답(response)을 전송한다.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
10: 데이터 처리 시스템
20: 호스트
30: 데이터 저장 장치

Claims (19)

  1. 데이터 저장 장치의 데이터 처리 방법에 있어서,
    명령 버스를 통하여 호스트로부터 출력되고, 랜덤 리드 동작을 수행하기 위한 명령을 수신하고, 상기 명령에 응답하여 응답을 상기 명령 버스를 통하여 상기 호스트로 전송하는 단계;
    데이터 버스를 통하여 상기 호스트로부터 출력되고, 상기 데이터 저장 장치의 복수의 데이터 저장 영역들의 시작 위치들을 지시하는 복수의 시작 어드레스들을 포함하는 어드레스 어레이를 상기 호스트로부터 출력된 클락 신호에 따라 수신하는 단계; 및
    동시에 수신된 상기 복수의 시작 어드레스들을 포함하고 상기 명령을 포함하지 않는 상기 어드레스 어레이를 수신한 후, 상기 복수의 시작 어드레스들 각각에 연관된 상기 복수의 데이터 저장 영역들 각각으로부터 리드된 데이터를 상기 데이터 버스를 통하여 상기 호스트로 순차적으로 전송하는 단계를 포함하고,
    상기 호스트로 대응하는 데이터가 전송되는 도중에, 상기 호스트로부터 종료 명령을 수신하면, 상기 데이터 저장 장치는 상기 대응하는 데이터만 전송하고 리드 동작을 멈추고,
    상기 어드레스 어레이는 상기 어드레스 어레이에 포함된 상기 복수의 시작 어드레스들의 개수를 나타내는 정보를 포함하는 헤더를 포함하는 데이터 저장 장치의 데이터 처리 방법.
  2. 제1항에 있어서, 상기 복수의 데이터 저장 영역들 각각으로부터 리드된 상기 데이터를 전송하는 단계는,
    상기 복수의 시작 어드레스들 중에서 제1시작 어드레스에 연관된 제1데이터 저장 영역으로부터 리드된 데이터를 상기 데이터 버스를 통하여 상기 호스트로 전송하는 동안,
    상기 복수의 시작 어드레스들 중에서 제2시작 어드레스에 연관된 제2데이터 저장 영역에 저장된 데이터를 전송할 준비하고,
    상기 제2시작 어드레스는 상기 어드레스 어레이 내에서 상기 제1시작 어드레스에 바로 인접한 데이터 저장 장치의 데이터 처리 방법.
  3. 제1항에 있어서,
    상기 데이터 저장 장치는 eMMC(embedded Multi Media Card)와 SD(Secure Digital) 카드 중에서 어느 하나인 데이터 저장 장치의 데이터 처리 방법.
  4. 데이터 저장 장치의 데이터 처리 방법에 있어서,
    명령 버스를 통하여 호스트로부터 출력되고, 랜덤 라이트 동작을 수행하기 위한 명령을 수신하고, 상기 명령에 응답하여 응답을 상기 명령 버스를 통하여 상기 호스트로 전송하는 단계;
    데이터 버스를 통하여 상기 호스트로부터 출력되고, 상기 데이터 저장 장치의 복수의 데이터 저장 영역들의 시작 위치들을 지시하는 복수의 시작 어드레스들을 포함하는 어드레스 어레이를 수신하는 단계;
    상기 복수의 시작 어드레스들을 포함하는 상기 어드레스 어레이를 수신한 후,상기 호스트로부터 출력된 복수의 데이터를 상기 데이터 버스를 통하여 순차적으로 수신하는 단계; 및
    상기 복수의 데이터 각각을 상기 복수의 시작 어드레스들 중에서 시작 어드레스에 대응하는 상기 복수의 저장 영역들 중에서 대응되는 저장 영역에 프로그램하는 단계를 포함하고,
    상기 어드레스 어레이는 동시에 수신된 상기 복수의 시작 어드레스들을 포함하고 상기 명령을 포함하지 않고,
    상기 데이터 저장 장치는 상기 어드레스 어레이를 수신한 후, 제1웨이(way)에서 프로그램 동작이 수행되는 동안 상기 제1웨이와 제2웨이 각각에서 프로그램 될 대응하는 데이터를 순차적으로 수신하는 데이터 저장 장치의 데이터 처리 방법.
  5. 제4항에 있어서, 상기 복수의 데이터 각각을 프로그램하는 단계는,
    제1시작 어드레스에 연관된 제1데이터 저장 영역에 상기 복수의 데이터 중에서 제1데이터를 프로그램하는 동안,
    상기 어드레스 어레이 내에서 상기 제1시작 어드레스에 바로 인접한 제2시작 어드레스에 연관된 제2데이터 저장 영역에 저장 될 제2데이터를 수신하는 단계를 포함하는 데이터 저장 장치의 데이터 처리 방법.
  6. 제4항에 있어서,
    상기 복수의 데이터 각각에 대한 ECC(error correction code) 인코딩 동작을 수행하는 단계를 더 포함하는 데이터 저장 장치의 데이터 처리 방법.
  7. 제5항에 있어서,
    상기 제2데이터 저장 영역에 상기 제2데이터를 프로그램하기 전에 휘발성 메모리로 상기 제2데이터를 저장하는 단계를 더 포함하는 데이터 저장 장치의 데이터 처리 방법.
  8. 제4항에 있어서, 상기 복수의 데이터 각각을 프로그램하는 단계는,
    제1시작 어드레스에 연관된 제1데이터 저장 영역에 상기 복수의 데이터 중에서 제1데이터를 프로그램한 직후에 상기 어드레스 어레이 내에서 상기 제1시작 어드레스에 바로 인접한 제2시작 어드레스에 연관된 제2데이터 저장 영역에 제2데이터를 프로그램하는 데이터 저장 장치의 데이터 처리 방법.
  9. 제4항에 있어서,
    상기 데이터 저장 장치는 eMMC(embedded Multi Media Card)와 SD(Secure Digital) 카드 중에서 어느 하나인 데이터 저장 장치의 데이터 처리 방법.
  10. 제4항에 있어서, 상기 복수의 데이터 각각을 프로그램 하는 단계는,
    상기 복수의 데이터 각각을 수신하자마자 상기 복수의 데이터 저장 영역들 중에서 대응하는 데이터 저장 영역에 상기 복수의 데이터 각각을 프로그램하는 데이터 저장 장치의 데이터 처리 방법.
  11. 제4항에 있어서, 상기 복수의 데이터 각각을 프로그램하는 단계는,
    상기 복수의 데이터를 수신하고 상기 데이터 저장 장치에 저장하는 단계; 및
    상기 복수의 데이터 각각을 상기 복수의 데이터 저장 영역들 중에서 어느 하나에 순차적으로 프로그램하는 단계를 포함하는 데이터 저장 장치의 데이터 처리 방법.
  12. 데이터 저장 장치의 데이터 처리 방법에 있어서,
    명령 버스를 통하여 호스트로부터 출력되고, 랜덤 라이트 동작을 수행하기 위한 명령을 수신하고, 상기 명령에 응답하여 응답을 상기 명령 버스를 통하여 상기 호스트로 전송하는 단계;
    데이터 버스를 통하여 상기 호스트로부터 출력되고, 상기 데이터 저장 장치의 복수의 데이터 저장 영역들의 시작 위치들을 지시하는 복수의 시작 어드레스들을 포함하는 어드레스 어레이를 수신하는 단계;
    상기 어드레스 어레이를 수신한 후, 상기 데이터 버스를 통하여 상기 호스트로부터 출력된 복수의 데이터를 순차적으로 수신하는 단계; 및
    상기 복수의 데이터 각각을 상기 복수의 시작 어드레스들 중에서 시작 어드레스에 대응하는 상기 복수의 저장 영역들 중에서 대응되는 저장 영역에 프로그램하는 단계를 포함하고,
    상기 복수의 데이터 각각을 프로그램하는 단계는,
    상기 복수의 데이터를 수신하고 상기 데이터 저장 장치에 저장하는 단계; 및
    상기 복수의 데이터 각각을 상기 복수의 데이터 저장 영역들 중에서 대응되는 데이터 저장 영역에 동시에 프로그램하는 단계를 포함하고,
    상기 어드레스 어레이는 동시에 수신된 상기 복수의 시작 어드레스들을 포함하고 상기 명령을 포함하지 않고,
    상기 어드레스 어레이는 상기 어드레스 어레이에 포함된 상기 복수의 시작 어드레스들의 개수를 나타내는 정보를 포함하는 헤더를 포함하는 데이터 저장 장치의 데이터 처리 방법.
  13. 명령 채널, 클락 채널, 및 데이터 버스를 통하여 eMMC(embedded Multi Media Card) 데이터 저장 장치와 SD(Secure Digital) 카드 중에서 어느 하나(이하, "데이터 저장 장치"라 함)에 연결된 호스트를 포함하는 데이터 처리 시스템의 데이터 처리 방법에 있어서,
    클락 신호에 응답하여 라이트 동작을 수행하는 상기 데이터 저장 장치로 상기 호스트로부터 출력된 상기 클락 신호를 전송하는 단계;
    상기 데이터 저장 장치에 임의로 저장 될 데이터 엔트리 세트에 관련된 라이트 동작을 지시하는 라이트 명령을 상기 명령 채널을 통하여 상기 호스트로부터 상기 데이터 저장 장치로 전송하는 단계;
    각각이 상기 데이터 엔트리 세트의 데이터 엔트리에 대한 시작 어드레스인 어드레스들을 포함하는 어드레스 세트를 포함하는 어드레스 어레이를 상기 호스트에서 생성하는 단계;
    상기 라이트 명령에 이어서 시작 어드레스들의 연속된 블록인 상기 어드레스 어레이를 상기 데이터 버스를 통하여 상기 호스트로부터 상기 데이터 저장 장치로 전송하는 단계;
    상기 데이터 저장 장치에서 상기 데이터 엔트리 세트의 각 데이터 엔트리를 상기 호스트로부터 순차적으로 수신하는 단계; 및
    상기 라이트 명령과 상기 어드레스 어레이에 응답하여 상기 데이터 저장 장치로 상기 데이터 엔트리 세트의 각 데이터 엔트리를 순차적으로 프로그램하는 단계를 포함하고,
    상기 어드레스 어레이는 동시에 수신된 복수의 시작 어드레스들을 포함하고 상기 라이트 명령을 포함하지 않고,
    상기 데이터 저장 장치는 상기 어드레스 어레이를 수신한 후 제1웨이에서 프로그램 동작이 수행되는 동안, 상기 제1웨이와 제2웨이 각각에 프로그램 될 대응하는 데이터 엔트리를 순차적으로 수신하고,
    상기 어드레스 어레이는 상기 어드레스 어레이에 포함된 상기 복수의 시작 어드레스들의 개수를 나타내는 정보를 포함하는 헤더를 포함하는 데이터 처리 시스템의 데이터 처리 방법.
  14. 제13항에 있어서,
    상기 어드레스 어레이의 상기 헤더는 상기 데이터 엔트리 세트에 포함된 데이터 엔트리들의 개수를 더 나타내는 데이터 처리 시스템의 데이터 처리 방법.
  15. 제13항에 있어서,
    상기 데이터 엔트리 세트는 제1데이터 저장 영역에 저장될 제1데이터 엔트리와 제2데이터 저장 영역 저장 될 제2데이터 엔트리를 포함하고,
    상기 제1데이터 저장 영역은 상기 어드레스 세트 중에서 제1시작 어드레스에 의해 상기 데이터 저장 장치에서 식별되고, 상기 제2데이터 저장 영역은 상기 어드레스 세트 중에서 제2시작 어드레스에 의해 상기 데이터 저장 장치에서 식별되고,
    상기 데이터 엔트리 세트의 각 데이터 엔트리를 순차적으로 프로그램하는 단계는, 상기 제1데이터 저장 영역에 상기 제1데이터 엔트리를 프로그램하는 동시에 상기 데이터 버스를 통하여 상기 호스트로부터 상기 제2데이터 엔트리의 적어도 일부를 수신하는 데이터 처리 시스템의 데이터 처리 방법.
  16. 제15항에 있어서,
    상기 제1데이터 저장 영역으로 상기 제1데이터 엔트리를 프로그램하기 이전에 ECC(error correction code) 동작을 이용하여 상기 제1데이터 엔트리를 인코딩하는 단계를 더 포함하는 데이터 처리 시스템의 데이터 처리 방법.
  17. 제13항에 있어서,
    상기 데이터 엔트리 세트의 각 데이터 엔트리의 크기는 4Kbyte인 데이터 처리 시스템의 데이터 처리 방법.
  18. 제16항에 있어서,
    상기 데이터 저장 장치는 메모리 컨트롤러, 불휘발성 메모리 셀들의 메모리 코어, 및 휘발성 메모리를 포함하고,
    상기 제1데이터 저장 영역으로 상기 제1데이터 엔트리가 프로그램되는 동안 상기 휘발성 메모리로 상기 제2데이터 엔트리를 저장하는 단계를 더 포함하는 데이터 처리 시스템의 데이터 처리 방법.
  19. 명령 채널, 클락 채널, 및 데이터 버스를 통하여 eMMC(embedded Multi Media Card) 데이터 저장 장치와 SD(Secure Digital) 카드 중에서 어느 하나(이하, "데이터 저장 장치"라 함)에 연결된 호스트를 포함하는 데이터 처리 시스템의 데이터 처리 방법에 있어서,
    클락 신호에 응답하여 라이트 동작을 수행하는 상기 데이터 저장 장치로 상기 호스트로부터 출력된 상기 클락 신호를 전송하는 단계;
    상기 명령 채널을 통하여 상기 데이터 저장 장치에 저장될 데이터 엔트리 세트에 대한 라이트 동작을 나타내는 라이트 명령을 상기 호스트로부터 상기 데이터 저장장치로 전송하는 단계;
    상기 호스트에서 어드레스 세트를 포함하는 어드레스 어레이를 생성하는 단계;
    상기 라이트 명령에 이어서 시작 어드레스들의 연속된 블록인 상기 어드레스 어레이를 상기 데이터 버스를 통하여 상기 호스트로부터 상기 데이터 저장 장치로 전송하는 단계;
    상기 데이터 저장 장치에서 상기 데이터 엔트리 세트에 포함된 각 데이터 엔트리를 순차적으로 수신하는 단계; 및
    상기 라이트 명령과 상기 어드레스 어레이에 응답하여, 상기 데이터 엔트리 세트에 포함된 각 데이터 엔트리를 상기 데이터 저장 장치에 동시에 프로그래밍하는 단계를 포함하고,
    상기 어드레스 세트의 각 어드레스는 상기 데이터 엔트리 세트에 포함된 각 데이터 엔트리에 대한 시작 어드레스이고,
    상기 어드레스 어레이는 동시에 수신된 상기 시작 어드레스들을 포함하나 상기 라이트 명령을 포함하지 않고,
    상기 어드레스 어레이는 상기 어드레스 어레이에 포함된 상기 시작 어드레스들의 개수를 나타내는 정보를 포함하는 헤더를 포함하는 데이터 처리 시스템의 데이터 처리 방법.
KR1020110098684A 2010-12-03 2011-09-29 데이터 처리 방법 KR101936311B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US41927310P 2010-12-03 2010-12-03
US61/419,273 2010-12-03

Publications (2)

Publication Number Publication Date
KR20120061730A KR20120061730A (ko) 2012-06-13
KR101936311B1 true KR101936311B1 (ko) 2019-01-09

Family

ID=46163339

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110098684A KR101936311B1 (ko) 2010-12-03 2011-09-29 데이터 처리 방법

Country Status (2)

Country Link
US (1) US9465544B2 (ko)
KR (1) KR101936311B1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102022446B1 (ko) * 2012-12-06 2019-09-19 에스케이하이닉스 주식회사 데이터 저장 장치 및 이의 동작 방법
US20160357462A1 (en) * 2015-06-08 2016-12-08 Samsung Electronics Co., Ltd. Nonvolatile Memory Modules and Data Management Methods Thereof
CN209517211U (zh) * 2019-02-21 2019-10-18 富泰华工业(深圳)有限公司 电子装置
CN113037886B (zh) * 2021-03-05 2022-02-08 腾讯科技(深圳)有限公司 网络设备的管理方法、装置、介质以及电子设备
CN113299328A (zh) * 2021-05-21 2021-08-24 深圳市格灵精睿视觉有限公司 随机寻址读写控制方法、控制系统及存储介质

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2638484B2 (ja) * 1994-06-16 1997-08-06 日本電気株式会社 データ処理装置
US6728851B1 (en) * 1995-07-31 2004-04-27 Lexar Media, Inc. Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
JP4079506B2 (ja) * 1997-08-08 2008-04-23 株式会社東芝 不揮発性半導体メモリシステムの制御方法
US6611918B1 (en) * 1999-12-21 2003-08-26 Intel Corporation Method and apparatus for changing bias levels to reduce CMOS leakage of a real time clock when switching to a battery mode of operation
JP4222509B2 (ja) * 2001-06-04 2009-02-12 株式会社ルネサステクノロジ 記憶装置
US7694071B1 (en) * 2005-07-12 2010-04-06 Seagate Technology Llc Disk drives and methods allowing configurable zoning
KR100713984B1 (ko) * 2005-09-15 2007-05-04 주식회사 하이닉스반도체 멀티-플레인 구조를 갖는 비휘발성 메모리 장치의 프로그램방법
KR100884239B1 (ko) * 2007-01-02 2009-02-17 삼성전자주식회사 메모리 카드 시스템 및 그것의 백그라운드 정보 전송 방법
JP5142685B2 (ja) * 2007-11-29 2013-02-13 株式会社東芝 メモリシステム
US8843691B2 (en) * 2008-06-25 2014-09-23 Stec, Inc. Prioritized erasure of data blocks in a flash storage device
US8321647B2 (en) * 2009-05-06 2012-11-27 Apple Inc. Multipage preparation commands for non-volatile memory systems
US8144515B2 (en) * 2009-07-23 2012-03-27 Stec, Inc. Interleaved flash storage system and method
US8495332B2 (en) * 2009-07-24 2013-07-23 Apple Inc. Controller for optimizing throughput of read operations
US8386739B2 (en) * 2009-09-28 2013-02-26 International Business Machines Corporation Writing to memory using shared address buses
US8595414B2 (en) * 2010-09-30 2013-11-26 Apple Inc. Selectively combining commands for a system having non-volatile memory

Also Published As

Publication number Publication date
US20120144113A1 (en) 2012-06-07
US9465544B2 (en) 2016-10-11
KR20120061730A (ko) 2012-06-13

Similar Documents

Publication Publication Date Title
US10846000B2 (en) Geometry-aware command scheduling
KR102615659B1 (ko) 메모리 시스템 및 이의 동작 방법
US8954708B2 (en) Method of storing data in non-volatile memory having multiple planes, non-volatile memory controller therefor, and memory system including the same
US10628319B2 (en) Methods for caching and reading data to be programmed into a storage unit and apparatuses using the same
EP2377028B1 (en) Modifying commands
KR101888009B1 (ko) 저장 장치
KR101626084B1 (ko) 멀티 칩 메모리 시스템 및 그것의 데이터 전송 방법
KR101936311B1 (ko) 데이터 처리 방법
US8738842B2 (en) Solid state disk controller and data processing method thereof
TWI744632B (zh) 半導體設備及在一記憶體裝置上執行操作之方法
CN103324443A (zh) 存储控制装置、存储装置、信息处理系统及其处理方法
US10909031B2 (en) Memory system and operating method thereof
KR101431205B1 (ko) 캐시 메모리 장치 및 캐시 메모리 장치의 데이터 처리 방법
US20140379964A1 (en) Data storage device and data fetching method for flash memory
US10042756B2 (en) Methods for scheduling read commands and apparatuses using the same
CN108563590B (zh) 基于片上flash存储器的otp控制器和控制方法
CN104699417A (zh) 数据储存装置以及其数据存取方法
US10776042B2 (en) Methods for garbage collection and apparatuses using the same
US10168951B2 (en) Methods for accessing data in a circular block mode and apparatuses using the same
US10346052B2 (en) Memory system with priority processing and operating method thereof
US9570178B2 (en) Semiconductor memory device and operating method thereof
KR20130019999A (ko) 비휘발성 메모리 시스템
US9778864B2 (en) Data storage device using non-sequential segment access and operating method thereof
US20150121168A1 (en) Memory system including randomizer and de-randomizer
CN108121667B (zh) 数据擦除方法、装置及计算机存储介质

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