KR20080105390A - 플래시 메모리에 사용되는 명령어들을 제어하는 방법 및장치 - Google Patents

플래시 메모리에 사용되는 명령어들을 제어하는 방법 및장치 Download PDF

Info

Publication number
KR20080105390A
KR20080105390A KR1020070052920A KR20070052920A KR20080105390A KR 20080105390 A KR20080105390 A KR 20080105390A KR 1020070052920 A KR1020070052920 A KR 1020070052920A KR 20070052920 A KR20070052920 A KR 20070052920A KR 20080105390 A KR20080105390 A KR 20080105390A
Authority
KR
South Korea
Prior art keywords
system memory
register
stored
flash memory
received
Prior art date
Application number
KR1020070052920A
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 KR1020070052920A priority Critical patent/KR20080105390A/ko
Priority to US12/099,287 priority patent/US20080301381A1/en
Publication of KR20080105390A publication Critical patent/KR20080105390A/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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • Bus Control (AREA)

Abstract

본 발명은 플래시 메모리에 사용되는 명령어들을 제어하는 방법 및 장치에 관한 것으로, 시스템 메모리에 현재 저장되어 있는 적어도 하나의 명령어에 대한 정보를 수신하고, 시스템 메모리로부터 수신된 정보가 나타내는 명령어를 수신하고, 수신된 정보가 나타내는 명령어 모두에 대한 수신이 완료되면, 명령어 모두를 수신하였음을 알리는 인터럽트를 발생시킴으로써, 플래시 메모리 제어시 중앙처리장치 및 버스 사용량을 줄일 수 있다.

Description

플래시 메모리에 사용되는 명령어들을 제어하는 방법 및 장치{Apparatus and method for controlling commands used in flash memory}
도 1은 종래의 낸드 플래시 메모리에 사용되는 명령어들을 제어하는 장치의 구성도이다.
도 2는 종래의 낸드 플래시 메모리에 사용되는 명령어들을 제어하는 방법을 나타내는 흐름도이다.
도 3는 낸드 플래시 메모리의 4 채널 - 4 웨이 아키텍처를 나타낸 구성도이다.
도 4는 낸드 플래시 메모리에 데이타를 기록하는 경우의 타이밍 다이아그램이다.
도 5는 본 발명의 바람직한 일 실시예에 따른 플래시 메모리에 사용되는 명령어들을 제어하는 장치를 나타내는 구성도이다.
도 6은 본 발명의 바람직한 일 실시예에 따른 플래시 메모리에 사용되는 명령어들을 제어하는 방법을 나타내는 흐름도이다.
도 7은 도 5에 도시된 플래시 메모리에 사용되는 명령어들을 제어하는 장치를 포함하는 플래시 메모리 제어장치를 나타내는 구성도이다.
도 8은 도 5에 도시된 플래시 메모리에 사용되는 명령어들을 제어하는 장치 를 포함하는 플래시 메모리 제어장치의 동작을 나타내는 흐름도이다.
본 발명은 플래시 메모리에 사용되는 명령어들을 제어하는 방법 및 장치에 관한 것으로 특히, 명령어를 DMA 컨트롤러부(DMA Controller)를 이용하여 제어하는 장치 및 방법에 관한 것이다. 상기 DMA 컨트롤러부(Direct Memory Access Controller)는 중앙처리장치(Central Processing Unit, CPU)와 독립적으로 시스템메모리에 직접적으로 명령어를 쓰거나 읽는 것과 같은 접근을 하는 장치를 말한다.
최근 멀티미디어 기술의 발전 속에 다양한 멀티미디어 관련 파일들의 사용이 증가하고 있으며 모바일 기기에서 사용될 수 있는 멀티미디어 파일들의 제공이 급격히 증가하고 있고, HD(High Definition)급 멀티미디어 서비스가 개시되면서 파일 크기도 점점 증가하고 있다. 이에 따라 이동식 저장장치의 읽기, 쓰기 속도의 증가에 대한 요구가 점점 증가하고 있는 추세이다.
도 1은 종래의 낸드 플래시 메모리에 사용되는 명령어들을 제어하는 장치의 구성도이다. 도 1을 참조하면, 종래의 낸드 플래시 메모리 제어장치(160)는 호스트 인터페이스(110), 버스 인터페이스(120), 제어부(130), 레지스터부(140), 및 낸드 플래시 메모리 인터페이스(150)로 구성된다. 레지스터부(140)는 명령어 레지스터(142), 명령어 레지스터 상태 레지스터(144), 및 R/B 상태 레지스터(146)로 구성된다.
호스트 인터페이스(110)는 낸드 플래시 메모리 제어장치(160)와 외부 호스트(미도시) 간의 데이터 또는 명령어가 입출력되는 것을 제어한다.
버스 인터페이스(120)는 낸드 플래시 메모리 제어장치(160)가 시스템 버스를 통해 중앙처리장치(CPU) 또는 플래시 변환계층(Flash Translation Layer, FTL)과 데이터 또는 명령어를 주고 받는 것을 제어한다. 상기 플래시 변환계층은 파일 시시템 상의 논리주소를 플래시 메모리 상의 물리주소로 변환하는 계층을 말한다. 상기 플래시 변환계층을 사용함으로써, 시스템 내에서 FAT(File Allocation Talbe)과 같은 일반 자기 디스크용 파일 시스템을 사용해서도 플래시 메모리를 효율적으로 제어할 수 있게 된다.
제어부(130)는 낸드 플래시 메모리 제어장치(160) 내부의 구성 요소들의 동작을 제어한다.
레지스터부(140)는 낸드 플래시 메모리(170)를 제어하는 명령어들과 상기 명령어들이 저장될 수 있는 공간이 레지스터부(140)에 남아 있는지를 나타내는 상태(Full, Not full) 등이 저장된다. 상기 상태가 풀(Full)인 경우는 상기 명령어들이 저장될 공간이 레지스터부(140)에 없음을 나타내는 것이고, 낫풀(Not full)인 경우에는 상기 명령어들이 저장될 공간이 레지스터부(140)에 있는 것을 나타낸다.
명령어 레지스터(142, CMD Reg)는 낸드 플래시 메모리(170)에 데이터를 기록하거나 낸드 플래시 메모리(170)로부터 데이터를 읽을 것을 요구하는 명령어들이 저장되는 레지스터이다. 상기 저장된 명령어들은 명령어 레지스터(142)에 큐(queue) 방식으로 저장될 수 있다. 상기 큐 방식이란, 먼저 저장된 명령어가 먼 저 출력되는 방식(First IN First Out)을 말한다. 명령어 레지스터는 복수의 레지스터들로 이루어지는 것이 바람직하다.
명령어 레지스터 상태 레지스터(144, CMD Reg Status Reg)는 명령어들이 저장될 수 있는 공간이 명령어 레지스터(142)에 남아 있는지를 나타내는 상태가 표시되는 레지스터이다. 명령어 레지스터(142)가 복수 개인 경우 명령어 레지스터(142)의 상태는 채널 또는 낸드 플래시 메모리 장치에 대응하는 명령어 레지스터(142)마다 명령어가 저장될 수 있는 남은 공간이 있는지 모니터(monitor)되는 것이 바람직하므로, 명령어 레지스터 상태 레지스터(144)는 낸드 플래시 메모리(170)의 낸드 플래시 메모리 장치들(0~N)의 수 또는 채널 수만큼 존재할 수 있다. 상기 낸드 플래시 메모리 장치(0~N)란, 낸드 플래시 메모리(170)를 구성하는 플래시 메모리 칩을 말한다. 상기 채널이란, 상기 낸드 플래시 메모리 장치들(0~N) 중에서 소정의 낸드 플래시 메모리 장치들을 하나의 단위로 구성한 그룹을 말한다. 예를 들어 16개의 낸드 플래시 메모리 장치들이 있는 경우, 4개의 낸드 플래시 메모리 장치들을 하나의 채널로 그룹화하면 4개의 채널이 존재하게 된다.
R/B 상태 레지스터(146, R/B Status Reg)는 낸드 플래시 메모리(170) 내의 낸드 플래시 메모리 장치들(0~N)의 개수에 대응하는 수인 N+1만큼 존재하고, 상기 낸드 플래시 메모리 장치들의(0~N)의 레디/비지(ready/busy) 상태를 나타내는 레지스터이다. 상기 낸드 플래시 메모리 장치들(0~N) 중 어느 하나의 상태가 비지인 경우는 상기 낸드 플래시 메모리 장치가 낸드 플래시 메모리 제어장치(160)에 의해 읽혀지거나 씌여지고 있는 것을 말하고, 레디인 경우는 낸드 플래시 메모리 제어장 치(160)에 의해 읽혀지지도 씌여지지도 않는 것을 말한다.
낸드 플래시 메모리 인터페이스(150)는 낸드 플래시 메모리(170)의 데이터 입출력을 제어한다.
도 2는 종래의 낸드 플래시 메모리에 사용되는 명령어들을 제어하는 방법을 나타내는 흐름도이다.
210 단계에서 외부의 호스트(host) 또는 내부의 FTL(flash translation layer)로부터 채널 또는 낸드 플래시 메모리 장치로 데이터를 읽거나 쓰도록 하는 요구가 발생하면, 낸드 플래시 메모리 제어장치(160)는 상기 호스트의 중앙처리장치(CPU) 또는 상기 FTL로부터 상기 요구에 대응하는 명령어(commnad)를 수신하고, 명령어 레지스터(142)에 상기 수신된 명령어를 기록한다. 상기 기록된 명령어는 큐(Queue) 방식으로 명령어 레지스터(142)에 저장된다.
220 단계에서 낸드 플래시 메모리 제어장치(160)는 상기 명령어가 실행될 낸드 플래시 메모리 장치의 R/B(ready/busy) 상태를 R/B 상태 레지스터(146)로부터 판단한다. 상기 판단결과, 상기 낸드 플래시 메모리 장치의 상태가 레디(ready)이면 다음 명령어를 수신하고, 비지(busy)이면 230 단계로 진행한다.
230 단계에서 낸드 플래시 메모리 제어장치(160)는 명령어 레지스터 상태 레지스터(CMD Reg Status,144)에 저장된 정보에 기초하여 명령어 레지스터(142)에 명령어들을 저장할 공간이 있는지를 판단한다. 명령어 레지스터(142)에 명령어들을 저장할 공간이 없으면, 명령어 레지스터 상태 레지스터(144)에는 풀 플래그(Full flag)가 저장되고, 명령어 레지스터(142)에 명령어들을 저장할 공간이 있으면, 명 령어 레지스터 상태 레지스터(144)에는 낫풀 플래그(Not full flag)가 저장된다. 상기 명령어 레지스터 상태 레지스터(144)에 저장된 정보에 기초하여 판단한 결과, 낫풀 플래그인 경우이면 다음 명령어를 수신하고, 풀 플래그이면 240 단계로 진행한다.
240 단계에서 낸드 플래시 메모리 제어장치(160)가 인터럽트 모드(interrupt mode)인지 판단한다. 인터럽트 모드란, 낸드 플래시 메모리 제어장치(160)의 레지스터에 명령어가 저장될 공간이 없는 등의 사건(event)이 발생한 경우, 인터럽트를 발생함으로써 중앙처리장치(CPU)에 보고하는 모드를 말한다. 폴링 모드란 낸드 플래시 메모리 제어장치(160)의 레지스터에 명령어가 저장될 공간이 없는 경우, 소프트웨어가 명령어 레지스터 상태 레지스터(144)를 직접 읽어서 낸드 플래시 메모리 제어장치(160)를 제어하는 모드이다. 상기 판단결과, 인터럽트 모드가 아닌 경우, 즉 폴링 모드(Polling mode)인 경우에는 260 단계로 진행하고, 인터럽트 모드인 경우에는 250 단계로 진행한다.
250 단계에서 낸드 플래시 메모리 제어장치(160)는 240 단계에서 판단한 결과 인터럽트 모드인 경우 명령어 레지스터(142)에 명령어들을 저장할 공간이 없음을 중앙처리장치(CPU)에 보고하기 위해 'CMD REG FULL' 인터럽트를 생성한다. 상기 'CMD REG FULL' 인터럽트가 발생하면 중앙처리장치(CPU)는 소정의 인터럽트 루틴(routine)을 처리한다. 240 단계에서 판단한 결과 폴링 모드인 경우에는 250 단계를 거치지 않고, 260 단계로 진행하므로 인터럽트를 발생시킬 필요가 없게 된다.
260 단계에서 낸드 플래시 메모리 제어장치(160)는 240 단계에서 판단한 결 과 폴링모드인 경우 또는 250 단계에서 'CMD REG FULL' 인터럽트를 생성한 경우에, 210 단계에서 수신된 명령어가 실행될 낸드 플래시 메모리 장치의 R/B 상태(RB Status)를 R/B 상태 레지스터(146)에 기초한 정보로부터 판단한다. 상기 판단 결과 R/B 상태가 레디인 경우에는 270 단계로 진행하고, 비지인 경우에는 R/B 상태가 레디가 될 때까지 대기한다.
270 단계에서 낸드 플래시 메모리 제어장치(160)는 260 단계에서 판단한 결과 상기 낸드 플래시 메모리 장치의 R/B 상태가 레디인 경우, 인터럽트 모드인지를 판단한다. 상기 판단결과, 인터럽트 모드가 아닌 경우, 즉 폴링 모드인 경우에는 소프트웨어가 직접 상기 낸드 플래시 메모리 장치의 R/B 상태를 R/B 상태 레지스터(146)로부터 직접 읽게 된다. 상기 판단결과, 인터럽트 모드인 경우에는 280 단계로 진행한다.
280 단계에서 낸드 플래시 메모리 제어장치(160)는 명령어 레지스터(142)에 명령어들을 저장할 공간이 있음을 중앙처리장치(CPU)에 보고하기 위해 "CMD REG NOT FULL' 인터럽트를 생성한다. 상기 "CMD REG NOT FULL' 인터럽트에 의해 중앙처리장치(CPU)는 250 단계에서 처리하던 소정의 인터럽트 루틴(routine)으로부터 벗어나게 된다.
도 3는 낸드 플래시 메모리의 4 채널 - 4 웨이 아키텍처를 나타낸 구성도로서, 도 2 에 도시된 방법이 사용되는 낸드 플래시 메모리의 구조이다.
도 2 및 도 3을 참조하면, 낸드 플래시 메모리 제어장치(160)는 4개의 채널, 즉 채널0, 채널1, 채널2, 채널3을 이용하여 낸드 플래시 메모리(170)에 포함된 낸 드 플래시 메모리 장치들을 제어할 수 있다. 채널0은 장치0-0, 장치0-1, 장치0-2, 및 장치0-3을 포함하고, 채널1은 장치1-0, 장치1-1, 장치1-2, 및 장치1-3을 포함하고, 채널2는 장치2-0, 장치2-1, 장치2-2, 및 장치2-3을 포함하고, 채널3은 장치3-0, 장치3-1, 장치3-2, 및 장치3-3을 포함한다. 이 때, 낸드 플래시 메모리 제어장치(160)가 32비트를 사용하여 낸드 플래시 메모리(170)를 제어할 경우, 각 채널마다 8비트씩을 할당받게 된다. 하나의 채널에 4개의 낸드 플래시 메모리 장치들이 존재하고, 상기 4개의 낸드 플래시 메모리 장치들은 8비트를 공유한다. 상기 공유를 위해서 상기 4개의 낸드 플래시 메모리 장치들은 상기 장치들을 기동시키는 칩 에이블 신호(Chip Enable 신호)를 이용함으로써 상기 할당받은 8비트를 공유할 수 있게 된다. 즉, 상기 칩 에이블 신호가 입력된 낸드 플래시 메모리 장치가 상기 할당받은 8비트를 사용할 수 있게 된다.
도 2에서 나타낸 낸드 플래시 메모리를 제어하는 방법을 하나의 태스크(task)로 정의하고, 수신된 명령어마다 도 2에 도시된 방법을 이용하여 처리하는 경우, 시작 시점은 겹치지 않고, 각 태스크의 실행 동작은 멀티채널(multi-channel) 구조 및 인터리빙 방식으로 인하여 채널별 또는 낸드 플래시 메모리 장치(0~N)별로 동시에(parallel) 이루어진다.
도 4는 낸드 플래시 메모리에 데이타를 기록하는 경우의 타이밍 다이아그램으로서 채널별로 동시에 이루어지는 각 태스크의 실행 동작을 나타낸 것이다.
도 4는 호스트로부터 낸드 플래시 메모리 제어장치로 입력되는 데이터가 충분히 빠르다고 가정했을 때 도 3의 4 채널 - 4 웨이 아키텍처로 구성된 낸드 플래 시 메모리에 데이터가 기록되는 경우이다.
프로그램 타임(Program time)이란 낸드 플래시 메모리의 데이터 버퍼(미도시)로부터 낸드 플래시 메모리 장치로 데이터가 전기적으로 차지(charge)되는 시간으로, 낸드 플래시 메모리 장치에 기록되는 시간을 의미한다. 도 4를 참조하면, 각각의 채널이 4 웨이(way) 인터리빙(interleaving)으로 동작되는 경우, 프로그램 타임이 줄어들게(hidden) 되고, 각각의 채널마다의 동작도 동시에(parallel) 진행된다. 예를 들어 채널0을 고려하여 살펴보면, 장치0-0에 할당된 시간인 페이지0은 51.44㎲이고, 4 웨이 인터리빙으로 동작하지 않는 경우의 프로그램 타임은 상기 페이지0의 4배 정도인 200.27㎲(251.71-51.44)이다. 그러나 도 3의 4 채널 - 4 웨이 아키텍처를 이용하면, 도 4에 도시된 바와 같이 페이지0은 장치0-0에, 페이지4는 장치0-1에, 페이지8은 장치0-2에, 페이지12는 장치 0-3에 할당될 수 있으므로, 채널0의 프로그램 타임이 45.95㎲(251.71-51.44*4)로 줄어들게 된다. 도 4에 따르면 각 채널의 동작이 4 웨이 인터리빙 방식으로 진행되는 경우, 약 15.7㎲ 정도(251.71/16)의 시간마다 새로운 명령어를 수신한 후 도 2에 도시된 방법이 시작되어야 도 3과 같은 4 채널 - 4 웨이 아키텍처에서 최고의 기록 성능에 도달하게 됨을 알 수 있다. 상기 251.71㎲는 채널0에 할당된 시간이고, 16은 낸드 플래시 메모리(170)에 포함된 낸드 플래시 메모리 장치들의 개수를 의미한다.
그러나 약 15.7㎲마다 인터럽트가 발생할 경우 전체 시스템에 인터럽트 처리를 수행하기 위한 과도한 부하가 발생하게 되어 시스템의 성능을 감소시키게 되는 문제점이 있다. 특히, 상기 기술한 종래 기술에 따르면 대량의 데이터를 처리할 때, 일정량의 데이터를 전송한 후에는 매 명령어마다 'CMD REG FULL' 인터럽트와 "CMD REG NOT FULL' 인터럽트가 발생한다. 폴링 모드인 경우에도 데이터 전송을 수행하는 대다수의 시간 동안 폴링(polling)에 의한 중앙처리장치(CPU)의 버스 사용이 발생하므로, 상기 버스 사용으로 인한 시스템의 성능 감소 및 불필요한 파워 손실은 폴링 모드에서도 발생한다는 문제점이 있었다.
그리고 데이터 전송 속도가 빨라질수록 중앙처리장치(CPU)와 낸드 플래시 메모리 제어장치(160) 간에 명령어 레지스터(142)에 대한 정보 교환을 위한 많은 인터럽트가 더 많이 발생하게 되고, 그 결과 시스템의 성능도 더욱 저하된다. 명령어 레지스터(142)의 큐잉(Queueing) 용량를 증가시킨다고 해도 크기가 점점 증가하고 있는 멀티 미디어 파일들을 대량 전송하는데 충분한 용량을 확보하여 인터럽트 발생을 줄이는 것은 단가를 높이는 결과를 가져오게 되는 문제점이 있었다.
본 발명이 이루고자 하는 기술적 과제는 플래시 메모리에 대해 읽고 쓰는 등의 명령어들의 처리를 DMA 컨트롤러부를 사용함으로써, 시스템의 성능을 향상시키는 플래시 메모리에 사용되는 명령어들을 제어하는 방법 및 장치를 제공하는데 있다. 또한, 상기된 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공하는데 있다.
상기 기술적 과제를 해결하기 위한 본 발명에 따른 플래시 메모리에 사용되는 명령어들을 제어하는 방법은 시스템 메모리에 현재 저장되어 있는 적어도 하나 의 명령어에 대한 정보를 수신하는 단계; 상기 시스템 메모리로부터 상기 수신된 정보가 나타내는 명령어를 수신하는 단계; 및 상기 수신된 정보가 나타내는 명령어 모두에 대한 수신이 완료되면, 상기 명령어 모두를 수신하였음을 알리는 인터럽트를 발생시키는 단계를 포함한다.
상기 다른 기술적 과제를 해결하기 위하여, 본 발명은 상기된 플래시 메모리에 사용되는 명령어들을 제어하는 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공한다.
상기 또 다른 기술적 과제를 해결하기 위한 본 발명에 따른 플래시 메모리에 사용되는 명령어들을 제어하는 장치는 시스템 메모리에 현재 저장되어 있는 적어도 하나의 명령어에 대한 정보가 저장되는 제 1 레지스터; 및 상기 시스템 메모리로부터 상기 제 1 레지스터에 저장된 정보가 나타내는 명령어들을 수신하고, 상기 저장된 정보가 나타내는 명령어 모두에 대한 수신이 완료되면, 상기 명령어 모두를 수신하였음을 알리는 인터럽트를 발생시키는 DMA 컨트롤러부를 포함한다.
이하에서는 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다.
도 5는 본 발명의 바람직한 일 실시예에 따른 플래시 메모리에 사용되는 명령어들을 제어하는 장치를 나타내는 구성도이다.
이하의 설명에서는 도 1에 도시된 장치적 구성과 동일한 도 5에 도시된 장치적 구성에 대해서는 중복 설명을 생략하기로 하고, 구성의 차이점을 중심으로 설명한다. 또한 본 명세서 및 도면에 있어서 실질적으로 동일한 기능구성을 갖는 구성 요소에 대해서는 동일한 부호를 첨부함으로써 중복 설명을 생략한다.
도 5를 참조하면, 명령어 제어장치(510)는 제 1 레지스터(520), DMA 컨트롤러부(530) 및 제 2 레지스터(540)로 구성된다.
명령어 제어장치(510)는 중앙처리장치(CPU)에 의해 저장된 명령어 저장정보에 기초하여 시스템 버스를 통해 시스템 메모리(미도시)에 저장된 명령어들을 중앙처리장치(CPU)의 개입없이 수신하고, 상기 수신된 명령어들을 명령어를 실행하는 장치로 출력한다. 상기 명령어 저장정보는 상기 시스템 메모리에 저장되어 있는 명령어의 개수 또는 상기 명령어들이 저장되어 있는 시스템 메모리 상의 주소가 될 수 있다. 명령어 제어장치(510)는 플래시 메모리를 제어하는 플래시 메모리 제어장치에 포함된다.
제 1 레지스터(520)는 시스템 메모리에 저장되어 있는 명령어들에 접근하기 위한 명령어 저장정보가 중앙처리장치(CPU)에 의해 저장되는 레지스터이다.
DMA 컨트롤러부(530)는 제 1 레지스터(520)에 저장된 상기 명령어 저장정보에 기초하여 시스템 버스를 통해 시스템 메모리(미도시)에 저장된 명령어들을 중앙처리장치(CPU)의 개입없이 수신한다. 상기 수신된 명령어들은 제 2 레지스터(540)에 큐(Queue) 방식으로 저장된다. 만일 제 2 레지스터(540)에 상기 시스템 메모리에 저장되어 있던 모든 명령어들이 수신되면, DMA 컨트롤러부(530)는 인터럽트를 발생함으로써, DMA 컨트롤러부(530)의 명령어 수신 동작이 완료되었음을 중앙처리장치(CPU)에 보고한다.
제 2 레지스터(540)는 DMA 컨트롤러부(530)로부터 수신되는 명령어들이 저장 되는 레지스터이다. 상기 수신되는 명령어들이 저장되는 방식은 큐(Queue) 방식으로 저장되는 것이 바람직하다. 큐 방식으로 저장된 명령어들은 먼저 저장된 명령어부터 명령어를 실행하는 장치로 출력된다.
도 6은 본 발명의 바람직한 일 실시예에 따른 플래시 메모리에 사용되는 명령어들을 제어하는 방법을 나타내는 흐름도이다.
도 6을 참조하면, 본 실시예에 따른 명령어들을 제어하는 방법은 도 5에 도시된 명령어들을 제어하는 장치에서 시계열적으로 처리되는 단계들로 구성된다. 따라서, 이하 생략된 내용이라 하더라도 명령어들을 제어하는 장치에 관하여 이상에서 기술된 내용은 본 실시예에 따른 명령어들을 제어하는 방법에도 적용된다. 도 5 및 도 6를 참조하여 이하 설명하기로 한다.
610 단계에서 명령어 제어장치(510)는 시스템 메모리에 현재 저장되어 있는 명령어들에 대한 명령어 저장정보를 중앙처리장치(CPU)로부터 수신하고, 상기 수신된 명령어 저장정보를 제 1 레지스터(520)에 저장한다.
620 단계에서 명령어 제어장치(510)는 제 1 레지스터(520)에 저장된 명령어 저장정보가 나타내는 명령어들을 상기 시스템 메모리로부터 수신한다.
630 단계에서 명령어 제어장치(510)는 620 단계에서 수신되는 명령어들을 제 2 레지스터(540)에 기록한다.
640 단계에서 명령어 제어장치(510)는 상기 시스템 메모리에 저장되어 있는 명령어들이 모두 수신되었는지를 판단한다. 상기 판단결과 상기 시스템 메모리에 남아 있는 명령어들이 있는 경우, 620 단계로 진행하고, 상기 시스템 메모리에 남 아 있는 명령어가 없는 경우, 650 단계로 진행한다.
650 단계에서 명령어 제어장치(510)는 인터럽트를 발생함으로써, 모든 명령어가 수신되었음을 중앙처리장치(CPU)로 보고한다. 상기와 같이 본 실시예에 따른 플래시 메모리에 사용되는 명령어들을 제어하는 방법에 의하면, 상기 시스템 메모리에 저장된 명령어들을 모두 수신하고 나서야 한 번의 인터럽트를 발생하게 되므로, 오버플로우(Overflow) 발생시 명령어를 수신할 때마다 인터럽트를 발생하는 종래기술보다 인터럽트 발생빈도가 적게 된다.
도 7은 도 5에 도시된 플래시 메모리에 사용되는 명령어들을 제어하는 장치를 포함하는 플래시 메모리 제어장치를 나타내는 구성도이다.
도 7을 참조하면, 플래시 메모리 제어장치(760)는 호스트 인터페이스(110), 버스 인터페이스(120), 제어부(130), 레지스터부(740), 플래시 메모리 인터페이스(150), 및 DMA 컨트롤러부(530)로 구성된다. 레지스터부(740)는 명령어 레지스터(142), 명령어 레지스터 상태 레지스터(144), R/B 상태 레지스터(146), 및 명령어 저장정보 레지스터(748)로 구성된다.
이하의 설명에서는 도 1과 도 5에 도시된 장치적 구성과 동일한 도 7에 도시된 장치적 구성에 대해서는 중복 설명을 생략하기로 하고, 구성의 차이점을 중심으로 설명한다. 또한 본 명세서 및 도면에 있어서 실질적으로 동일한 기능구성을 갖는 구성요소에 대해서는 동일한 부호를 첨부함으로써 중복 설명을 생략한다.
임베디드(Embedded) 시스템 또는 메모리 카드가 플래시 메모리 제어장치(760)와 플래시 메모리(170)를 포함할 수 있다.
레지스터부(740)는 낸드 플래시 메모리(170)를 제어하는 명령어들이 저장되는 레지스터, 상기 명령어들이 레지스터부(140)에 저장될 공간이 있는지 여부를 나타내는 상태(Full, Not full) 등이 저장되는 레지스터 외에도 도 1에 도시된 레지스터부(140)의 구성보다 명령어 저장정보 레지스터(748)를 더 포함하고 있다.
명령어 저장정보 레지스터(748)는 DMA 컨트롤러부(530)가 시스템 메모리에서 읽어오게 될 명령어들의 개수와 상기 시스템 메모리 상에 명령어들이 저장된 주소가 저장되는 레지스터이다. 명령어 저장정보 레지스터(748)는 도 5의 제 1 레지스터(520)에 대응한다. 상기 명령어들은 중앙처리장치(CPU) 또는 플래시 변환계층(FTL)에 의해 상기 시스템 메모리에 저장되는 것이 바람직하다.
DMA 컨트롤러부(530)는 시스템 메모리에 저장되어 있는 다수의 명령어들을 중앙처리장치(CPU)의 개입없이 명령어 저장정보 레지스터(748)에 저장되어 있는 명령어 저장정보에 기초하여 읽어 들이고, 상기 읽어들인 명령어들을 명령어 레지스터(142)에 기록하는 장치이다. 명령어 레지스터(142)는 도 5의 제 2 레지스터(540)에 대응한다.
도 8은 도 5에 도시된 플래시 메모리에 사용되는 명령어들을 제어하는 장치를 포함하는 플래시 메모리 제어장치의 동작을 나타내는 흐름도이다. 도 7 및 도 8을 참조하여 플래시 메모리 제어장치의 동작을 설명하기로 한다.
외부의 호스트(미도시) 또는 내부의 FTL로부터 플래시 메모리(170)의 채널 또는 플래시 메모리 장치(0~N)에 대한 데이터 읽기 또는 쓰기 요청이 발생하면, 상기 호스트 또는 상기 FTL은 상기 요청에 대응하는 명령어를 생성하고, 시스템 메모 리에 상기 생성된 명령어를 저장한다. 상기 저장된 명령어들은 상기 시스템 메모리에 큐(Queue) 방식으로 저장될 수 있다.
810 단계에서 플래시 메모리 제어장치(760)는 상기 시스템 메모리에 저장되어 있는 명령어들을 읽기 위한 명령어 저장정보를 중앙처리장치(CPU) 또는 플래시 변환계층(FTL)로부터 수신하고, 상기 수신된 명령어 저장정보를 명령어 저장정보 레지스터(748)에 저장한다. 상기 명령어 저장정보는 시스템 메모리에 저장된 명령어들의 개수와 상기 명령어들이 저장된 상기 시스템 메모리 상의 주소를 포함한다.
820 단계에서 플래시 메모리 제어장치(760)는 DMA 컨트롤러부(530)의 상태가 레디(ready)인지 판단한다. DMA 컨트롤러부(530)의 상태가 레디인 경우란, DMA 컨트롤러부(530)가 어떤 동작도 하지 않고 있는 상태를 말한다. DMA 컨트롤러부(530)의 상태가 비지인 경우란, DMA 컨트롤러부(530)가 상기 시스템 메모리로부터 명령어들을 읽는 동작 등을 수행하는 상태를 말한다. 상기 판단 결과, DMA 컨트롤러부(530)의 상태가 레디이면, 830 단계로 진행하고, DMA 컨트롤러부(530)의 상태가 비지이면 레디가 될 때까지 대기한다.
830 단계에서 820 단계에서의 판단 결과, DMA 컨트롤러부(530)의 상태가 레디이면 DMA 컨트롤러부(530)는 상기 시스템 메모리에 저장되어 있는 명령어들을 810 단계에서 저장된 명령어 저장정보에 기초하여 읽는다.
840 단계에서 플래시 메모리 제어장치(760)는 명령어 레지스터 상태 레지스터(144)에 저장된 정보에 기초하여 명령어 레지스터(142)에 명령어를 저장할 공간이 있는지 여부를 판단한다. 상기 판단 결과 명령어를 저장할 공간이 없는 경 우(Full flag)는 명령어를 저장할 공간이 있을 때(Not full flag)까지 대기하고, 명령어를 저장할 공간이 있을 때(Not full flag)에는 850 단계로 진행한다.
850 단계에서 DMA 컨트롤러부(530)는 830 단계에서 읽어들인 명령어들을 명령어 레지스터(142)에 큐(Queue) 방식으로 기록한다.
860 단계에서 플래시 메모리 제어장치(760)는 810 단계에서 수신한 명령어 저장정보의 명령어들의 개수만큼 읽었는지를 판단한다. 상기 판단 결과 810 단계에서 수신한 명령어 저장정보의 명령어들의 개수만큼 읽지 못한 경우에는 830 단계로 진행하고, 시스템 메모리에 남아 있는 명령어들을 읽어들인다. 상기 판단 결과 810 단계에서 수신한 명령어 저장정보의 명령어들의 개수만큼 읽은 경우에는 870 단계로 진행한다.
870 단계에서 플래시 메모리 제어장치(760)는 DMA 컨트롤러부(530)가 시스템메모리에 저장된 명령어를 읽어들이는 동작이 끝났음을 알리는 인터럽트를 발생시킨다. 상기 인터럽트는 DMA 컨트롤러부(530)가 발생시킬 수 있다. 중앙처리장치(CPU)는 상기 발생된 인터럽트를 수신함으로써, 플래시 메모리 제어장치(760)의 동작을 보고받게 된다. 상기 살펴본 바와 같이 본 발명에 따른 플래시 메모리 제어장치(760)는 플래시 메모리(170)로 데이터를 쓰거나 플래시 메모리로부터 데이터를 읽도록 하는 다수의 명령어들을 시스템 메모리로부터 한 번의 인터럽트 발생만으로 수신하는 것이 가능하다. 도 8에 도시된 방법을 하나의 태스크(task)로 볼 때, 시스템 메모리에 저장된 명령어들에 접근하기 위한 명령어 저장정보를 제공하는 명령어 저장정보 레지스터(748)의 개수가 둘 이상인 경우, 상기 둘 이상의 명령어 저장 정보에 기초하여 동시에(parallel) 둘 이상의 태스크들이 발생할 수 있으며, 상기 발생된 태스크들의 시작 순간만 달라지게 된다.
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 또한, 상술한 본 발명의 실시예에서 사용된 데이터의 구조는 컴퓨터로 읽을 수 있는 기록매체에 여러 수단을 통하여 기록될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 저장매체를 포함한다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
본 발명에 따르면, 시스템 메모리의 일부 영역에 명령어들을 저장하고, 플래시 메모리 제어장치 내에 상기 저장된 명령어에 접근하는 DMA 컨트롤러를 포함함으 로써, 명령어들이 레지스터에 오버플로우(overflow)될 때마다 발생되는 인터럽트 횟수를 줄일 수 있고, 대량의 데이터 전송시에도 인터럽트 간격을 충분히 넓게 조정할 수 있게 되어 플래시 메모리에 데이터를 입출력하는 동작 외의 동작을 최소화할 수 있게 된다. 즉, CPU와 플래시 메모리 제어장치 간에 명령어를 저장하는 레지스터의 상태정보 교환을 위한 인터럽트 발생과 같은 동작들을 최소화할 수 있게 된다. 따라서 기존 기술에 비해 중앙처리장치(CPU) 및 버스 사용량을 줄일 수 있는 고속 입출력 저장장치를 구현할 수 있으며, 플래시 변환 계층 구현시에는 하드웨어와의 상호작용(interaction)을 최소화하고, 구현의 복잡도를 감소시킬 수 있다.

Claims (15)

  1. (a) 시스템 메모리에 현재 저장되어 있는 적어도 하나의 명령어에 대한 정보를 수신하는 단계;
    (b) 상기 시스템 메모리로부터 상기 수신된 정보가 나타내는 명령어를 수신하는 단계; 및
    (c) 상기 수신된 정보가 나타내는 명령어 모두에 대한 수신이 완료되면, 상기 명령어 모두를 수신하였음을 알리는 인터럽트를 발생시키는 단계를 포함함을 특징으로 하는 플래시 메모리 명령어 제어방법.
  2. 제 1 항에 있어서,
    상기 시스템 메모리에 현재 저장되어 있는 적어도 하나의 명령어에 대한 정보는 상기 시스템 메모리에 저장되어 있는 명령어들의 개수와 상기 명령어들이 저장되어 있는 시스템 메모리의 주소를 포함함을 특징으로 하는 플래시 메모리 명령어 제어방법.
  3. 제 1 항에 있어서,
    상기 (b) 단계는
    상기 수신된 정보에 기초하여 상기 시스템 메모리로부터 명령어들을 수신할 수 있는 상태인지 판단하는 단계; 및
    상기 판단 결과, 상기 시스템 메모리로부터 명령어들을 수신할 수 없는 상태이면 수신할 수 있는 상태가 될 때까지 대기하고, 상기 판단 결과 수신할 수 있는 상태이면 상기 수신된 정보에 기초하여 상기 시스템 메모리로부터 직접 명령어들을 수신하는 단계임을 특징으로 하는 플래시 메모리 명령어 제어방법.
  4. 제 1 항에 있어서,
    상기 (c) 단계는
    상기 수신된 명령어를 저장할 레지스터에 저장할 공간이 있는지 판단하고, 저장할 공간이 있는 경우에는 상기 레지스터에 저장하고, 저장할 공간이 없는 경우에는 상기 레지스터에 저장할 공간이 생길 때까지 대기하는 단계를 더 포함함을 특징으로 하는 플래시 메모리 명령어 제어방법.
  5. 제 1 항에 있어서,
    상기 (c) 단계는
    상기 수신되는 명령어를 레지스터에 저장하는 단계; 및
    상기 시스템 메모리에 상기 저장된 정보가 나타내는 명령어들이 남아 있으면 상기 (b) 단계로 진행하는 단계를 더 포함함을 특징으로 하는 플래시 메모리 명령어 제어방법.
  6. 제 1 항에 있어서,
    상기 (b) 단계는
    상기 수신된 정보가 둘 이상인 경우 상기 둘 이상의 정보들 각각에 대응하는 명령어들을 상기 시스템 메모리로부터 동시에 수신하는 것을 특징으로 하는 플래시 메모리 명령어 제어방법.
  7. 제 1 항에 있어서,
    상기 시스템 메모리에 저장된 명령어들은 CPU 또는 FTL(Flash Translation Layer)에서 생성된 것을 특징으로 하는 플래시 메모리 명령어 제어방법.
  8. 제 1 항 내지 제 7 항 중에 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  9. 시스템 메모리에 현재 저장되어 있는 적어도 하나의 명령어에 대한 정보가 저장되는 제 1 레지스터; 및
    상기 시스템 메모리로부터 상기 제 1 레지스터에 저장된 정보가 나타내는 명령어들을 수신하고, 상기 저장된 정보가 나타내는 명령어 모두에 대한 수신이 완료되면, 상기 명령어 모두를 수신하였음을 알리는 인터럽트를 발생시키는 DMA 컨트롤러부를 포함함을 특징으로 하는 플래시 메모리 명령어 제어장치.
  10. 제 9 항에 있어서,
    상기 시스템 메모리에 현재 저장되어 있는 적어도 하나의 명령어에 대한 정보는 상기 시스템 메모리에 저장되어 있는 명령어들의 개수와 상기 명령어들이 저장되어 있는 시스템 메모리의 주소를 포함함을 특징으로 하는 플래시 메모리 명령어 제어장치.
  11. 제 9 항에 있어서,
    상기 DMA 컨트롤러부는 상기 저장된 정보에 기초하여 상기 시스템 메모리로부터 명령어들을 수신할 수 있는 상태인지 판단하고, 상기 판단 결과, 상기 시스템 메모리로부터 명령어들을 수신할 수 없는 상태이면 수신할 수 있는 상태가 될 때까지 대기하고, 상기 판단 결과 수신할 수 있는 상태이면 상기 수신된 정보에 기초하여 상기 시스템 메모리로부터 직접 명령어들을 수신하는 것을 특징으로 하는 플래시 메모리 명령어 제어장치.
  12. 제 9 항에 있어서,
    상기 DMA 컨트롤러부는 상기 수신된 명령어를 저장할 레지스터에 저장할 공간이 있는지 판단하고, 저장할 공간이 있는 경우에는 상기 레지스터에 저장하고, 저장할 공간이 없는 경우에는 상기 레지스터에 저장할 공간이 생길 때까지 대기하는 것을 특징으로 하는 플래시 메모리 명령어 제어장치.
  13. 제 9 항에 있어서,
    상기 시스템 메모리로부터 수신되는 명령어가 저장되는 제 2 레지스터를 더 포함함을 특징으로 하는 플래시 메모리 명령어 제어장치.
  14. 제 9 항에 있어서,
    상기 DMA 컨트롤러부는 상기 제 1 레지스터에 저장된 정보가 둘 이상인 경우 상기 둘 이상의 정보들 각각에 대응하는 명령어들을 상기 시스템 메모리로부터 동시에 수신하는 것을 특징으로 하는 플래시 메모리 명령어 제어장치.
  15. 제 9 항에 있어서,
    상기 시스템 메모리에 저장된 명령어들은 CPU 또는 FTL(Flash Translation Layer)에서 생성된 것을 특징으로 하는 플래시 메모리 명령어 제어장치.
KR1020070052920A 2007-05-30 2007-05-30 플래시 메모리에 사용되는 명령어들을 제어하는 방법 및장치 KR20080105390A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020070052920A KR20080105390A (ko) 2007-05-30 2007-05-30 플래시 메모리에 사용되는 명령어들을 제어하는 방법 및장치
US12/099,287 US20080301381A1 (en) 2007-05-30 2008-04-08 Device and method for controlling commands used for flash memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070052920A KR20080105390A (ko) 2007-05-30 2007-05-30 플래시 메모리에 사용되는 명령어들을 제어하는 방법 및장치

Publications (1)

Publication Number Publication Date
KR20080105390A true KR20080105390A (ko) 2008-12-04

Family

ID=40089577

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070052920A KR20080105390A (ko) 2007-05-30 2007-05-30 플래시 메모리에 사용되는 명령어들을 제어하는 방법 및장치

Country Status (2)

Country Link
US (1) US20080301381A1 (ko)
KR (1) KR20080105390A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140088463A (ko) * 2013-01-02 2014-07-10 삼성전자주식회사 메모리 시스템 및 이의 구동 방법
KR20160114726A (ko) * 2014-02-14 2016-10-05 마이크론 테크놀로지, 인크 명령어 큐잉

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100262979A1 (en) * 2009-04-08 2010-10-14 Google Inc. Circular command queues for communication between a host and a data storage device
US8447918B2 (en) 2009-04-08 2013-05-21 Google Inc. Garbage collection for failure prediction and repartitioning
US8566507B2 (en) 2009-04-08 2013-10-22 Google Inc. Data storage device capable of recognizing and controlling multiple types of memory chips
US20100287217A1 (en) * 2009-04-08 2010-11-11 Google Inc. Host control of background garbage collection in a data storage device
US8225052B2 (en) * 2009-06-03 2012-07-17 Micron Technology, Inc. Methods for controlling host memory access with memory devices and systems
JP6544246B2 (ja) * 2016-01-15 2019-07-17 富士通株式会社 不揮発性ストレージおよび不揮発性ストレージの処理方法
JP2018120448A (ja) * 2017-01-26 2018-08-02 ソニーセミコンダクタソリューションズ株式会社 演算処理装置および情報処理システム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6134630A (en) * 1997-11-14 2000-10-17 3Ware High-performance bus architecture for disk array system
US7373440B2 (en) * 1997-12-17 2008-05-13 Src Computers, Inc. Switch/network adapter port for clustered computers employing a chain of multi-adaptive processors in a dual in-line memory module format
JP2005202767A (ja) * 2004-01-16 2005-07-28 Toshiba Corp プロセッサシステム、dma制御回路、dma制御方法、dmaコントローラの制御方法、画像処理方法および画像処理回路
JP4456490B2 (ja) * 2005-01-14 2010-04-28 富士通株式会社 Dma装置
JP4563829B2 (ja) * 2005-01-27 2010-10-13 富士通株式会社 ダイレクトメモリアクセス制御方法、ダイレクトメモリアクセス制御装置、情報処理システム、プログラム
KR100725271B1 (ko) * 2005-05-20 2007-06-04 주식회사 엠피오 복수개의 dma 채널을 갖는 usb-sd 저장 장치 및 그저장 방법
CN100349150C (zh) * 2005-06-06 2007-11-14 北京中星微电子有限公司 通过直接存储器访问控制器传输数据的系统及方法
US7376762B2 (en) * 2005-10-31 2008-05-20 Sigmatel, Inc. Systems and methods for direct memory access
JP4895262B2 (ja) * 2005-12-09 2012-03-14 株式会社メガチップス 情報処理装置、コントローラおよびファイル読み出し方法
US7441070B2 (en) * 2006-07-06 2008-10-21 Qimonda North America Corp. Method for accessing a non-volatile memory via a volatile memory interface
US7818389B1 (en) * 2006-12-01 2010-10-19 Marvell International Ltd. Packet buffer apparatus and method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140088463A (ko) * 2013-01-02 2014-07-10 삼성전자주식회사 메모리 시스템 및 이의 구동 방법
KR20160114726A (ko) * 2014-02-14 2016-10-05 마이크론 테크놀로지, 인크 명령어 큐잉

Also Published As

Publication number Publication date
US20080301381A1 (en) 2008-12-04

Similar Documents

Publication Publication Date Title
KR20080105390A (ko) 플래시 메모리에 사용되는 명령어들을 제어하는 방법 및장치
US9811258B2 (en) Methods for controlling host memory access with memory devices and systems
KR100869675B1 (ko) 디스크립터 배열을 이용한 플래시 메모리 제어 시스템 및방법
US6662253B1 (en) Shared peripheral architecture
JPH071495B2 (ja) データ処理システム
US8954644B2 (en) Apparatus and method for controlling memory
US20240143392A1 (en) Task scheduling method, chip, and electronic device
CN114168271B (zh) 一种任务调度方法、电子设备及存储介质
EP1760580A1 (en) Processing operation information transfer control system and method
US8184110B2 (en) Method and apparatus for indirect interface with enhanced programmable direct port
US10521371B2 (en) Cache system and associated method
CN111796759A (zh) 多平面上的片段数据读取的计算机可读取存储介质及方法
KR101103619B1 (ko) 멀티 포트 메모리 및 그 억세스 제어 방법
CN114489475A (zh) 分布式存储系统及其数据存储方法
US7774513B2 (en) DMA circuit and computer system
CN111176566A (zh) 一种支持queue命令的eMMC读写控制方法及存储介质
JP4789269B2 (ja) ベクトル処理装置及びベクトル処理方法
CN116303169A (zh) Dma控制装置和方法及芯片
KR20110118296A (ko) 요청 동작을 스케줄링하는 낸드 플래시 메모리 장치 및 방법
KR100872196B1 (ko) 메모리 시스템 및 듀얼 포트 메모리의 접근 제어 방법
CN112306927B (zh) 一种io请求的处理方法、装置及系统
CN116601616A (zh) 一种数据处理装置、方法及相关设备
JP2009059276A (ja) 情報処理装置およびプログラム
US6425029B1 (en) Apparatus for configuring bus architecture through software control
WO2022261836A1 (zh) 存储控制方法及装置、存储方法及装置、电子设备及介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application