KR20110124821A - 복수의 커맨드 실행이 가능한 메모리 시스템 - Google Patents

복수의 커맨드 실행이 가능한 메모리 시스템 Download PDF

Info

Publication number
KR20110124821A
KR20110124821A KR1020100044224A KR20100044224A KR20110124821A KR 20110124821 A KR20110124821 A KR 20110124821A KR 1020100044224 A KR1020100044224 A KR 1020100044224A KR 20100044224 A KR20100044224 A KR 20100044224A KR 20110124821 A KR20110124821 A KR 20110124821A
Authority
KR
South Korea
Prior art keywords
area
memory
command
commands
host processor
Prior art date
Application number
KR1020100044224A
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 KR1020100044224A priority Critical patent/KR20110124821A/ko
Publication of KR20110124821A publication Critical patent/KR20110124821A/ko

Links

Images

Classifications

    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • 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
    • 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/0625Power saving in storage systems
    • 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]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)

Abstract

복수의 커맨드의 실행이 가능한 메모리 시스템이 개시된다. 메모리 시스템은, 비휘발성 메모리와, 호스트 프로세서로부터의 커맨드에 따라 비휘발성 메모리를 액세스하기 위한 비휘발성 메모리 콘트롤러와, 호스트 프로세서 및 비휘발성 메모리 콘트롤러에 의해 액세스 가능한 공유 메모리 영역이 구비된 내부 메모리를 포함하며, 공유 메모리 영역에는, 비휘발성 메모리 콘트롤러에 의해 순차적으로 실행될 복수의 커맨드들이 저장됨으로써, 메모리 시스템의 성능을 향상시키고, 메모리 시스템의 전력소모를 줄일 수 있는 메모리 시스템을 제공하는 것을 목적으로 한다.

Description

복수의 커맨드 실행이 가능한 메모리 시스템{MEMORY SYSTEM FOR EXECUTING MULTIPLE COMMANDS}
본 발명은 플래시 메모리에 관한 것으로, 더욱 상세하게는 호스트 프로세서로부터 전달된 복수의 커맨드들을 순차적으로 실행할 수 있는 메모리 시스템에 관한 것이다.
플래시 메모리는 전기적으로 데이터를 지우고 재기록이 가능한 비휘발성 기억장치로, EEPROM과 달리 디지털 음악 재생기, 디지털 카메라, 핸드폰 등 대용량의 휘발성, 고체상태의 스토리지가 필요한 경우에 사용된다. 이외에도 플래시 메모리는 컴퓨터간에 데이터를 옮기기 위한 임시저장매체인 USB 드라이버에도 사용되며, 최근에는 플래시 메모리를 포함하는 SD(Secure Digital) 카드, 멀티미디어 카드(Multi Media Card, MMC) 등이 널리 보급되고 있다.
이러한 플래시 메모리를 내장한 SD 카드나 멀티미디어 카드와 같은 메모리 시스템에는 호스트 프로세서로부터 전달된 데이터를 임시저장하기 위해 플래시 메모리 콘트롤러내에 작은 용량의 SDRAM을 내장하고 있다. 또한, 플래시 메모리를 포함하는 메모리 시스템은 동기 모드 방식에 의해 한번에 하나씩의 커맨드가 처리되고 있다. 즉, 호스트 프로세서로부터 전달된 커맨드와 관련된 데이터는 일단 SDRAM에 저장된 후, 플래시 메모리 컨트롤러에 의해 읽혀져서 실행된다. 이후, 호스트 프로세서로 리턴 신호가 전달되고, 리턴 신호를 전달받은 호스트 프로세서는 다음 커맨드와 관련 데이터를 메모리 시스템으로 전달한다.
그러나, 이와 같은 종래 시스템의 경우 플래시 메모리 콘트롤러내에 작은 용량의 SDRAM을 사용하기 때문에 한번에 하나씩의 커맨드만이 처리되며, 많은 양의 데이터를 메모리 시스템에 쓰기 위해서는 작은 단위로 쪼개어 여러번에 걸쳐 처리해야 한다. 이로 인해 데이터 액세스 속도가 많이 걸리고, 전체적인 메모리 시스템의 성능을 향상시키는데 한계가 있다. 또한, 잦은 신호 교환으로 인해 메모리 시스템의 전력 소모가 많다는 문제점이 있다.
본 발명은 상기 문제점을 해결하기 위해 안출된 것으로, 본 발명의 목적은, 메모리 시스템의 성능을 향상시키고, 메모리 시스템의 전력소모를 줄일 수 있는 메모리 시스템을 제공하는 것을 목적으로 한다.
상기의 목적을 달성하기 위하여 본 발명에 따른 메모리 시스템은, 메모리 시스템에 있어서, 비휘발성 메모리와, 호스트 프로세서로부터의 커맨드에 따라 비휘발성 메모리를 액세스하기 위한 비휘발성 메모리 콘트롤러와, 호스트 프로세서 및 비휘발성 메모리 콘트롤러에 의해 액세스 가능한 공유 메모리 영역이 구비된 내부 메모리를 포함하며, 공유 메모리 영역에는, 비휘발성 메모리 콘트롤러에 의해 순차적으로 실행될 복수의 커맨드들이 저장될 수 있다.
또한, 내부 메모리는, 호스트 프로세서 전용의 제1 메모리 영역과, 비휘발성 메모리 콘트롤러 전용의 제2 메모리 영역과, 호스트 프로세서 및 비휘발성 메모리 콘트롤러 모두에 의해 액세스 가능한 공유 메모리 영역을 포함하는 원디램(듀얼 포트 메모리)일 수 있다.
또한, 공유 메모리 영역은, 비휘발성 메모리 콘트롤러에 의해 순차적으로 실행될 복수의 커맨드들이 저장되는 커맨드 영역과, 복수의 커맨드들 각각에 대응되는 데이터를 저장하는 페이로드 영역이 분리된 구조를 가지도록 구성된다.
또한, 메모리 시스템은, 비동기 모드로 액세스되며 단일의 칩으로 집적화될 수 있다.
또한, 비휘발성 메모리는, 낸드 타입의 메모리 셀 구조를 갖는 낸드 플래시 메모리일 수 있다.
비휘발성 메모리 콘트롤러는, 커맨드 영역에 저장된 복수의 커맨드들을 저장된 순서에 따라 순차적으로 실행하거나, 또는 복수의 커맨드들에는 우선순위가 부여되어, 부여된 우선순위에 따라 복수의 커맨드들을 순차적으로 실행할 수 있다. 또한, 우선순위는, 커맨드의 특정 비트에 할당되어질 수 있다.
본 발명에 따르면, 공유 메모리 영역에 비휘발성 메모리 콘트롤러에 의해 순차적으로 실행될 복수의 커맨드들을 저장하고, 이들을 한번에 실행함으로써, 메모리 시스템의 성능을 향상시키고, 메모리 시스템의 전력소모를 줄일 수 있는 메모리 시스템을 제공하는 것을 목적으로 한다.
또한, 호스트 프로세서는 복수의 커맨드들에 우선순위를 부여하여 전송하고, 커맨드들을 실행시에는 커맨드들의 우선순위만을 스캐닝하여 우선순위가 높은 커맨드들을 우선적으로 실행시킴으로써, 메모리 시스템의 성능을 향상시킬 수 있다.
도 1은 본 발명의 일 실시예에 따른 메모리 시스템의 하드웨어 구조이다.
도 2(a)는 도 1의 메일 박스의 구조를 도시한 도면이다.
도 2(b)는 도 1의 메일 박스의 구조를 도시한 도면이다.
도 3은 도 1의 공유 메모리 영역(#3)에 저장된 복수의 커맨드들을 도시한 도면이다.
도 4는 도 1 내지 도 3에 따른 메모리 시스템의 비동기 모드의 동작방법을 설명하는 흐름도이다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 바람직한 실시예를 첨부된 도면을 참조하여 설명하기로 한다.
도 1은 본 발명의 다른 실시예에 따른 메모리 시스템의 하드웨어 구조로, 호스트 프로세서(110)에 연결된 메모리 시스템(100)은 플래시 메모리(101), 플래시 메모리 콘트롤러(102), 원디램(103)을 포함할 수 있다.
플래시 메모리(101)는, 메모리 칩 안에 정보를 유지하기 위해 전력이 필요없는 비휘발성 메모리 장치로, 셀 어레이 구성이 NAND 구조를 가지는 NAND 플래시 메모리가 바람직하나, 이에 한정되는 것은 아니며 NOR 플래시 메모리, ROM(Read Only Memory), SRAM(Static Random Access Momory) 등으로 구성될 수도 있다.
플래시 메모리 콘트롤러(102)는, 호스트 프로세서(110)의 동작 모드와 동일한 동작 모드로 플래시 메모리(101)의 데이터를 액세스하며, 내부에는 논리적 어드레스를 물리적 어드레스로 변환하여 플래시 메모리(101)에 제공하기 위한 플래시 변환 레이어(Flash Translation Layer, FTL)를 포함하고 있다.
한편, 원디램(103)은, 듀얼 포트 메모리로도 칭해지며, 호스트 프로세서(110) 전용의 메모리 영역(#1)과, 플래시 메모리 콘트롤러(102) 전용의 메모리 영역(#2)과, 호스트 프로세서(110)과 플래시 메모리 콘트롤러(102) 모두에 의해 액세스가 가능한 공유 메모리 영역(#3)을 포함하여 구성된다. 호스트 프로세서(110)와 플래시 메모리 콘트롤러(102)가 공유 메모리 영역(#3)을 액세스하기 위해서는 원디램(103)으로부터 액세스 권한을 획득한 후 공유 메모리 영역(#3)을 액세스하여야 한다. 상기한 메모리 시스템(100)은 단일의 칩으로 집적화될 수 있다.
비록 본 발명에서는 호스트 프로세서(110) 전용의 메모리 영역(#1)과, 플래시 메모리 콘트롤러(102) 전용의 메모리 영역(#2)과, 호스트 프로세서(110)과 플래시 메모리 콘트롤러(102) 모두에 의해 액세스가 가능한 공유 메모리 영역(#3)을 포함하는 원디램(103)을 예시하고 있으나, 이에 한정되는 것은 아니며 호스트 프로세서(110)과 플래시 메모리 콘트롤러(102) 모두에 의해 액세스가 가능한 공유 메모리 영역(#3)만을 가지는 메모리일 수도 있다.
도 1에 도시된 바와 같이, 원디램(103)의 공유 메모리 영역(#3)은 세마포어 영역(10), 메일박스 영역(20), 체크비트 영역(30), 커맨드 영역(50), 데이터 영역(60)으로 나누어질 수 있다.
세마포어 영역(10)은, 공유 메모리 영역(#3)의 소유권에 대한 정보를 저장할 수 있다. 일 실시예로, 세마포어 영역(10)의 특정 비트가 로직 "1"인 경우 공유 메모리 영역(#3)의 소유권을 호스트 프로세서(110)가 가지며, 세마포어 영역(10)의 특정 비트가 로직 "0"인 경우 공유 메모리 영역(#3)의 소유권을 플래시 메모리 콘트롤러(102)가 가질 수 있다.
체크비트 영역(30)은, 커맨드 혹은 데이터의 독출 상태에 대한 정보를 저장할 수 있다. 일 실시예로, 호스트 프로세서(110)가 원디램(103)의 공유영역(#3)(특히 메일박스 영역(20))에 커맨드와 데이터를 쓰면 플래시 메모리 콘트롤러(102)로 인터럽트(INT)가 발생되고, 플래시 메모리 콘트롤러(102)는 공유 메모리 영역(#3)에 저장된 커맨드와 데이터를 읽어가며, 플래시 메모리 콘트롤러(102)가 커맨드와 데이터를 읽으면, 체크비트 영역(30)의 CHECKBIT A TO B 영역의 특정 비트는 "0"으로 세팅된다. 호스트 프로세서(110)는 이러한 특정 비트를 보고, 플래시 메모리 콘트롤러(102)가 커맨드와 데이터를 읽어갔음을 알 수 있다.
역으로, 플래시 메모리 콘트롤러(102)가 원디램(103)의 공유영역(#3)(특히 메일박스 영역(20))에 커맨드와 데이터를 쓰면 호스트 프로세서(110)로 인터럽트(INT)가 발생되고, 호스트 프로세서(110)는 공유 메모리 영역(#3)에 저장된 커맨드와 데이터를 읽어가며, 호스트 프로세서(110)가 커맨드와 데이터를 모두 읽는 즉시 체크비트 영역(30)의 CHECKBIT B TO A 영역의 특정 비트는 "0"으로 세팅된다. 이와 같은 체크비트 영역(30)은 이중확인을 위한 것으로, 실시예에 따라서는 도 1의 체크비트 영역(30)은 포함하지 않을수도 있다.
한편, 메일박스 영역(20), 커맨드 영역(50)과 데이터 영역(60)에 대한 자세한 설명은 이하 도 2 내지 도 3의 해당부분에서 상세하게 설명하기로 한다.
한편, 도 2(a) 내지 (b)는 도 1의 메일 박스 영역(20)의 구조를 도시한 도면으로, 제1 메일박스(MAILBOX A TO B) 또는 제2 메일박스(MAILBOX B TO A)는 동일한 구조를 가진다.
도 2(a) 내지 (b)를 참조하면, 메일 박스(MAILBOX A TO B 또는 MAILBOX B TO A)는 총 32비트로 구성되며, 0~7비트의 8비트는 커맨드 파라미터(Function_Parameter)를, 8~15의 8비트는 커맨드 코드(Function_code)를, 16~19비트의 4비트는 커맨드 타입(Type)을 도시하고 있다. 그리고 나머지 비트들(20~31비트)는 추후를 위해 예약 영역(Reserved)으로 남겨두었다. 그리고, TBD는 To Be Determined로 Reserved와 마찬가지로 그 값은 추후에 임의로 설정가능함을 나타낸다. 비록 본 발명에서는 32비트의 경우를 예시하고 있으나, 메일 박스(MAILBOX A TO B 또는 MAILBOX B TO A)의 비트수는 당업자의 필요에 따라 변형 실시될 수 있음은 당연하다.
이들중 커맨드 타입(Type)은, 호스트 프로세서(110)로부터 전달되는 커맨드의 타입으로, 공유 메모리 영역(#3)의 커맨드 영역(50)에 대한 커맨드(RD, WR, ER 등)인지 또는 메일 박스 영역(20)에 대한 커맨드(예컨대, 소유권 요청 커맨드 또는 소유권 해제 커맨드 등)인지를 나타낸다.
커맨드 코드(Function_Code)는, 플래시 메모리(101)를 액세스하기 위한 커맨드로, 예컨대 리드(Read, RD), 라이트(WRite, WR), 지우기(ERase, ER), 소유권 해제, 소유권 요청과 같은 커맨드이다.
커맨드 파라미터(Function_Parameter)는, 커맨드에 관련된 옵션으로, 라이트(WR)를 buffered로 할 것인지 unbuffered로 할 것인지 또는 연속적으로 4회 리드를 한 후 4회 라이트와 같은 리드(RD), 라이트(WR) 등의 커맨드의 추가옵션정보를 나타낸다.
공유 영역의 메일 박스 영역(20)은 도 1에 도시된 바와 같이, 호스트 프로세서(110) 측으로부터 플래시 메모리 콘트롤러(102) 측으로 가는 메일 박스(MAILBOX A TO B)와 플래시 메모리 콘트롤러(102) 측으로부터 호스트 프로세서(110) 측으로 가는 메일박스(MAILBOX B TO A)로 구분된다. 한편, 메일 박스 영역(20)에 커맨드 타입(Type), 커맨드 코드(Function_Code)와 커맨드 파라미터(Function_Parameter)가 기입됨과 동시에 인터럽트(INT)가 발생된다. 즉, 호스트 프로세서(110)가 메일 박스 영역(20)의 메일박스(MAILBOX A TO B)에 커맨드를 기입하면, 메일박스(MAILBOX A TO B)는 플래시 메모리 콘트롤러(102)로 인터럽트(INT)를 발생시켜, 커맨드가 기입되었음을 알린다. 그 역의 경우도 마찬가지로, 플래시 메모리 콘트롤러(102)가 메일 박스 영역(20)의 메일박스(MAILBOX B TO A)에 커맨드를 기입하면, 메일박스(MAILBOX B TO A)는 호스트 프로세서(110)로 인터럽트(INT)를 발생시켜, 커맨드가 기입되었음을 알린다.
도 3은 도 1의 공유 메모리 영역(#3)에 저장된 복수의 커맨드들의 포맷을 도시한 도면이다.
도 3을 참조하면, 하나의 커맨드는 4개의 필드, 즉 커맨드 타입(Command Type), 공유 영역의 어드레스(Shared Address), 플래시 메모리의 어드레스(Flash Address), 섹터 카운터(Sector Counter)로 이루어진다. 이들 중 커맨드 타입(Command Type)은, 리드(Read), 라이트(Write)와 같은 커맨드이며, 그 값은 리드(Read)의 경우 "00000011(Read)" 또는 라이트(Write)의 경우 "00000010(Write)"이다. 한편, 공유 영역의 어드레스(Shared Address)는, 커맨드가 쓰여질 공유 메모리 영역(#3)의 어드레스를, 플래시 메모리의 어드레스(Flash Address)는 공유 메모리 영역(#3)에 저장된 커맨드가 쓰여질 플래시 메모리의 어드레스를, 섹터 카운터(Sector Counter)는 각 커맨드에 대응되는 데이터의 사이즈를 의미한다.
도 1 및 도 3에 도시된 바와 같이, 커맨드 0 (CMD 0)와 관련된 데이터는 페이로드 0(Payload 0), 커맨드 1 (CMD 1)과 관련된 데이터는 페이로드 1(Payload 1)과 같은 식으로 각 커맨드에는 각 커맨드에 관련된 데이터가 1대1로 대응된다. 또한, 공유 메모리 영역(#3)의 커맨드 영역(50)과 페이로드 영역(60)은 분리된 구조를 가지며, 커맨드 영역(50)에는 일련의 커맨드들만이, 페이로드 영역(60)에는 데이터들만이 저장된다. 일반적으로 페이로드 영역(50)의 각 코멘드에 대응되는 데이터의 사이즈는 커맨드마다 다르기 때문에, 본 발명과 같이 커맨드 영역(50)과 페이로드 영역(60)을 분리하는 구조를 취함으로써, 메모리 성능을 보다 향상시킬 수 있다. 다만, 당업자의 필요에 따라서는 커맨드 영역(50)과 페이로드 영역(60)을 분리하지 않고, 하나의 영역내에 커맨드 0 (CMD 0), 페이로드 0(Payload 0), 커맨드 1 (CMD 1), 페이로드 1(Payload 1)과 같은 식으로 커맨드와 페이로드를 순차적으로 함께 저장할 수도 있을 것이다. 실시예에 따라서는 커맨드의 특정 비트를 우선순위비트로 설정하여 우선순위를 부여할 수도 있다. 이러한 경우 플래시 메모리 콘트롤러(102)는 커맨드의 우선순위가 부여된 비트들을 우선 스캐닝한 후, 우선순위가 높은 순서대로 커맨드를 실행할 수도 있을 것이다.
도 4는 도 1 내지 도 3에 따른 메모리 시스템의 비동기 모드의 동작방법을 설명하는 흐름도이다.
도 1 내지 도 4를 참조하면, 단계 400에서, 호스트 프로세서(110)는 세마포어 영역(10)의 소유권에 대한 정보를 독출하고, 현재 소유권이 플래시 메모리 콘트롤러(102)에 있는 경우 소유권 요청 커맨드를 메일박스 영역(20)의 메일박스(MAILBOX A TO B)에 기입한다.
단계 401에서, 소유권 요청 커맨드가 메일박스 영역(20)의 메일박스(MAILBOX A TO B)에 기입되면, 메일박스(MAILBOX A TO B)는 메시지가 기입되었음을 알리는 인터럽트 신호(INT)를 생성하고, 생성된 인터럽트 신호(INT)를 플래시 메모리 콘트롤러(102)로 전달한다.
단계 402에서, 인터럽트 신호(INT)를 전달받은 플래시 메모리 콘트롤러(102)는 메일박스(MAILBOX A TO B)로부터 소유권 요청 커맨드를 독출하고, 소유권 해제 커맨드를 메일박스 영역(20)의 메일박스(MAILBOX B TO A)에 기입한다.
단계 403에서, 소유권 해제 커맨드가 메일박스 영역(20)의 메일박스(MAILBOX B TO A)에 기입되면, 메일박스(MAILBOX B TO A)는 메시지가 기입되었음을 알리는 인터럽트 신호(INT)를 생성하고, 생성된 인터럽트 신호(INT)를 호스트 프로세서(110)로 전달한다.
단계 404에서, 인터럽트 신호(INT)를 전달받은 호스트 프로세서(110)는 메일박스(MAILBOX B TO A)로부터 소유권 해제 커맨드를 독출하고, 세마포어 영역(10)의 소유권을 변경한다. 이를 통해 호스트 프로세서(110)는 공유 메모리 영역(#3)에 대한 소유권을 넘겨받을 수 있다.
단계 405에서, 공유 메모리 영역(#3)에 대한 소유권을 넘겨받은 호스트 프로세서(110)는 커맨드와 커맨드에 대응하는 데이터를 호스트 프로세서(110) 전용의 메모리 영역(#1)으로부터 공유 메모리 영역(#3)의 커맨드 영역(50)과 페이로드 영역(60)에 각각 기입한다. 실시예에 따라서는 외부의 메모리로부터 공유 메모리 영역(#3)의 커맨드 영역(50)과 페이로드 영역(60)에 직접 기입할 수도 있다. 기입이 완료되면, 페이로드 영역(60)은 페이크 리턴 신호(fake return signal)를 생성하고, 생성된 페이크 리턴신호는 호스트 프로세서(110)로 전달된다.
이후 단계 406에서, 호스트 프로세서(110)는 정해진 수(N)의 커맨드와 대응하는 데이터가 기입되었는지 확인한다. 확인 결과, 정해진 수의 커맨드와 대응하는 데이터가 공유 메모리 영역(#3)에 기입되었으면 단계 407로, 그렇지 않으면 단계 411로 진행한다.
단계 411에서, 호스트 프로세서(110)는 N의 계수를 1만큼 가산하고, 단계 405로 진행하여 다음 커맨드와 데이터를 공유 메모리 영역(#3)에 기입한다.
단계 407에서는, 호스트 프로세서(110)는 정해진 수의 커맨드와 데이터가 공유 메모리 영역(#3)에 기입되면, 메일박스 영역(20)의 메일박스(MAILBOX A TO B)에 소유권 해제 커맨드를 기입한다. 이 경우의 소유권 해제 커맨드는 일종의 공유 메모리 영역(#3)에 데이터 기입이 완료되었음을 알리는 커맨드이다.
단계 408에서, 소유권 해제 커맨드가 메일박스 영역(20)의 메일박스(MAILBOX A TO B)에 기입되면, 메일박스(MAILBOX A TO B)는 메시지가 기입되었음을 알리는 인터럽트 신호(INT)를 생성하고, 생성된 인터럽트 신호(INT)를 플래시 메모리 콘트롤러(102)로 전달한다.
단계 409에서, 인터럽트 신호(INT)를 전달받은 플래시 메모리 콘트롤러(102)는 메일박스(MAILBOX A TO B)로부터 소유권 해제 커맨드를 독출하고, 세마포어 영역(10)의 소유권을 변경한다.
이후, 단계 410에서, 플래시 메모리 콘트롤러(102)는 커맨드 영역(50)과 페이로드 영역(60)에 저장된 커맨드들을 커맨드 영역(50)에 저장된 순서에 따라 순차적으로 실행한다. 실시예에 따라서는 각각의 커맨드에는 우선순위가 부여되어 있으며, 플래시 메모리 콘트롤러(102)는 우선적으로 커맨드들에 부여된 우선순위를 스캐닝한 후, 우선순위가 높은 커맨드부터 실행할 수도 있다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있다. 또한 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을수 있는 코드가 저장되고 실행될 수 있다.
이상 도면과 명세서에서 최적 실시예들이 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
10: 세마포어
20: 메일박스영역
30: 체크비트영역
40: 예약된 영역
50: 커맨드 영역
60: 페이로드 영역
100: 메모리 시스템의 하드웨어 구조
101: 플래시 메모리
102: 플래시 메모리 콘트롤러
103: 원디램
110: 호스트 프로세서

Claims (9)

  1. 메모리 시스템에 있어서,
    비휘발성 메모리;
    호스트 프로세서로부터의 커맨드에 따라 상기 비휘발성 메모리를 액세스하기 위한 비휘발성 메모리 콘트롤러; 및
    상기 호스트 프로세서 및 상기 비휘발성 메모리 콘트롤러에 의해 액세스 가능한 공유 메모리 영역이 구비된 내부 메모리를 포함하며,
    상기 공유 메모리 영역에는, 상기 비휘발성 메모리 콘트롤러에 의해 순차적으로 실행될 복수의 커맨드들이 저장되는 것을 특징으로 하는 메모리 시스템.
  2. 제1항에 있어서,
    상기 내부 메모리는,
    상기 호스트 프로세서 전용의 제1 메모리 영역;
    상기 비휘발성 메모리 콘트롤러 전용의 제2 메모리 영역; 및
    상기 호스트 프로세서 및 상기 비휘발성 메모리 콘트롤러 모두에 의해 액세스 가능한 공유 메모리 영역을 포함하는 원디램인 것을 특징으로 하는 메모리 시스템.
  3. 제2항에 있어서,
    상기 공유 메모리 영역은,
    상기 비휘발성 메모리 콘트롤러에 의해 순차적으로 실행될 복수의 커맨드들이 저장되는 커맨드 영역; 및
    상기 복수의 커맨드들 각각에 대응되는 데이터를 저장하는 페이로드 영역이 분리된 구조를 가지는 것을 특징으로 하는 메모리 시스템.
  4. 제2항에 있어서,
    상기 메모리 시스템은,
    비동기 모드로 액세스되는 것을 특징으로 하는 메모리 시스템.
  5. 제2항에 있어서,
    상기 비휘발성 메모리는,
    낸드 타입의 메모리 셀 구조를 갖는 낸드 플래시 메모리인 것을 특징으로 하는 메모리 시스템.
  6. 제2항에 있어서,
    상기 메모리 시스템은,
    단일의 칩으로 집적화된 것을 특징으로 하는 메모리 시스템.
  7. 제2항에 있어서,
    상기 비휘발성 메모리 콘트롤러는,
    상기 커맨드 영역에 저장된 복수의 커맨드들을 저장된 순서에 따라 순차적으로 실행하는 것을 특징으로 하는 메모리 시스템.
  8. 제2항에 있어서,
    상기 복수의 커맨드들에는 우선순위가 부여되어 있으며,
    상기 비휘발성 메모리 콘트롤러는, 상기 부여된 우선순위에 따라 상기 복수의 커맨드들을 순차적으로 실행하는 것을 특징으로 하는 메모리 시스템.
  9. 제8항에 있어서,
    상기 우선순위는,
    커맨드의 특정 비트에 할당되어 있는 것을 특징으로 하는 메모리 시스템.
KR1020100044224A 2010-05-12 2010-05-12 복수의 커맨드 실행이 가능한 메모리 시스템 KR20110124821A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100044224A KR20110124821A (ko) 2010-05-12 2010-05-12 복수의 커맨드 실행이 가능한 메모리 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100044224A KR20110124821A (ko) 2010-05-12 2010-05-12 복수의 커맨드 실행이 가능한 메모리 시스템

Publications (1)

Publication Number Publication Date
KR20110124821A true KR20110124821A (ko) 2011-11-18

Family

ID=45394434

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100044224A KR20110124821A (ko) 2010-05-12 2010-05-12 복수의 커맨드 실행이 가능한 메모리 시스템

Country Status (1)

Country Link
KR (1) KR20110124821A (ko)

Similar Documents

Publication Publication Date Title
US8606988B2 (en) Flash memory control circuit for interleavingly transmitting data into flash memories, flash memory storage system thereof, and data transfer method thereof
US11487666B2 (en) Timed data transfer between a host system and a memory sub-system
CN102460405B (zh) 用于通过存储器装置来控制主机存储器存取的方法及系统
US20180275921A1 (en) Storage device
US20210133096A1 (en) Memory system and operating method thereof
US8060669B2 (en) Memory controller with automatic command processing unit and memory system including the same
CN101297276A (zh) 具有本地执行功能和存储功能的大容量存储设备
US8127072B2 (en) Data storage device and method for accessing flash memory
US10346052B2 (en) Memory system with priority processing and operating method thereof
US9123443B2 (en) Memory device, memory management device, and memory management method
US20100185811A1 (en) Data processing system and method
US20240037039A1 (en) Management of Programming Mode Transitions to Accommodate a Constant Size of Data Transfer between a Host System and a Memory Sub-System
US11635901B2 (en) Data storage device, and non-volatile memory control method
US20160299719A1 (en) Memory device and method for data exchanging thereof
US20110035537A1 (en) Multiprocessor system having multi-command set operation and priority command operation
CN111796759A (zh) 多平面上的片段数据读取的计算机可读取存储介质及方法
US20130054885A1 (en) Multiport memory element and semiconductor device and system including the same
CN114746834A (zh) 基于分区状态的分区附加命令调度
US10310744B2 (en) Memory system which transfers management information between first and second memories in a burst mode before a read process is performed on a third memory
US10466938B2 (en) Non-volatile memory system using a plurality of mapping units and operating method thereof
CN101930407B (zh) 闪速存储器控制电路及其存储系统与数据传输方法
US8954662B2 (en) SSD controller, and method for operating an SSD controller
US20190236020A1 (en) Memory system and operating method thereof
US11461238B2 (en) Storage device, memory controller, and method for fetching write commands from submission queues to perform full page writes
US9009571B2 (en) Storage medium, system and method utilizing the same

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E601 Decision to refuse application
J201 Request for trial against refusal decision
J301 Trial decision

Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20120517

Effective date: 20130705

Free format text: TRIAL NUMBER: 2012101004690; TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20120517

Effective date: 20130705