KR20080004875A - 커맨드 디코딩 시스템, 플래시 메모리 커맨드 디코딩시스템 및 이를 이용한 방법 - Google Patents

커맨드 디코딩 시스템, 플래시 메모리 커맨드 디코딩시스템 및 이를 이용한 방법 Download PDF

Info

Publication number
KR20080004875A
KR20080004875A KR1020060063740A KR20060063740A KR20080004875A KR 20080004875 A KR20080004875 A KR 20080004875A KR 1020060063740 A KR1020060063740 A KR 1020060063740A KR 20060063740 A KR20060063740 A KR 20060063740A KR 20080004875 A KR20080004875 A KR 20080004875A
Authority
KR
South Korea
Prior art keywords
command
flash memory
memory controller
controller
instruction
Prior art date
Application number
KR1020060063740A
Other languages
English (en)
Other versions
KR100829788B1 (ko
Inventor
최명재
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020060063740A priority Critical patent/KR100829788B1/ko
Priority to US11/774,131 priority patent/US7730234B2/en
Publication of KR20080004875A publication Critical patent/KR20080004875A/ko
Application granted granted Critical
Publication of KR100829788B1 publication Critical patent/KR100829788B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

커맨드 디코딩 시스템은 커맨드를 제공하는 메인 프로세서, 상기 커맨드에 상응하는 명령어 블록(상기 명령어 블록은 상기 커맨드를 실행하기 위한 마이크로 명령어들을 포함함)을 저장하는 명령어 메모리(Instruction Memory), 상기 명령어 메모리에 대한 접근을 제어하는 메모리 컨트롤러 및 상기 커맨드를 입력받고, 상기 메모리 컨트롤러를 통하여 상기 커맨드에 상응하는 상기 명령어 블록에 포함된 마이크로 명령어들을 순차적으로 가져와서 상기 가져온 마이크로 명령어들을 실행하는 디바이스 컨트롤러를 포함한다. 따라서 커맨드 디코딩 시스템은 명령어 메모리 및 메모리 컨트롤러를 이용하여 새로운 명령어를 쉽게 추가하고, 동작 속도를 증가시킬 수 있다.
커맨드 디코딩 시스템, 커맨드 디코더, 플래시 메모리 컨트롤러

Description

커맨드 디코딩 시스템, 플래시 메모리 커맨드 디코딩 시스템 및 이를 이용한 방법{COMMAND DECODING SYSTEM, FLASH MEMORY COMMAND DECODING SYSTEM AND METHODS USING THE SAME}
도 1은 본 발명의 일 실시예에 따른 플래시 메모리 커맨드 디코딩 시스템을 나타내는 블록도이다.
도 2는 본 발명의 일 실시예에 따른 디바이스 컨트롤러를 나타내는 블록도이다.
도 3은 플래시 메모리 컨트롤러의 마이크로 명령어들을 나타내는 테이블이다.
도 4는 플래시 메모리 컨트롤러가 처리하는 구체적인 명령어를 나타내는 테이블이다.
도 5는 플래시 메모리 컨트롤러가 플래시 메모리를 프로그램하는 과정을 나타내는 플로우차트이다.
도 6은 플래시 메모리 컨트롤러가 플래시 메모리를 이레이즈(Erase)하는 과정을 나타내는 플로우차트이다.
도 7은 플래시 메모리 컨트롤러가 플래시 메모리의 페이지를 읽는 과정을 나타내는 플로우차트이다.
<도면의 주요 부분에 대한 부호의 설명>
100 : 커맨드 디코딩 시스템 110 : 메인 프로세서
120 : 명령어 메모리 130 : 메모리 컨트롤러
140 : 디바이스 컨트롤러 142 : 명령어 레지스터
144 : 명령어 디코더 146 : 명령어 실행기
148 : 주변 기기 인터페이스 150 : 주변 기기
본 발명은 커맨드 디코딩 시스템 및 방법에 관한 것으로 특히, 새로운 명령어를 쉽게 추가하고, 동작 속도를 증가시키기 위한 커맨드 디코딩 시스템 및 방법에 관한 것이다.
컴퓨터 시스템 및 셀룰러 폰을 포함하는 전자 기기들은 메인 프로세서뿐만 아니라 디스플레이 장치, 키보드, 메모리와 같은 여러 가지 주변기기들을 포함하고 있으며, 상기 메인 프로세서는 모든 주변기기들을 제어하기 위하여 커맨드를 주변기기들에 전송한다.
일반적으로 상기 주변기기들은 메인 프로세서로부터 전송된 커맨드를 수행하기 위하여 각각 자신의 디바이스 컨트롤러를 포함하고 있으며, 디바이스 컨트롤러는 메인 프로세서로부터 전달된 명령어를 처리하기 위하여 상기 전송된 커맨드에 대응하는 복수의 마이크로 명령어들을 실행한다.
예를 들어, 플래시 메모리를 제어하는 플래시 메모리 컨트롤러의 경우 동작방법은 다음과 같다.
메인 프로세서가 특정 주소에 저장된 데이터에 대한 읽기 명령을 플래시 메모리 컨트롤러에 전달한 경우, 플래시 메모리 컨트롤러는 메인 프로세서에 의하여 전달된 읽기 명령을 수행하기 위하여 상기 읽기 명령에 상응하는 마이크로 명령어들을 순차적으로 수행하고, 특정 주소에 저장된 데이터를 메인 프로세서에 전달한다.
디바이스 컨트롤러가 마이크로 명령어들을 실행하는 방법은 다음과 같다.
첫째, 디바이스 컨트롤러가 메인 프로세서로부터 직접 마이크로 명령어들을 입력받는 방법이다.
디바이스 컨트롤러는 메인 프로세서에 의하여 직접 접근 가능한 레지스터를 포함하고, 메인 프로세서로부터 입력된 마이크로 명령어들을 실행한다. 첫 번째 방법의 경우에는 메인 프로세서가 직접 디바이스 컨트롤러에 데이터를 전송하여야 하므로 실행속도가 늦어지는 문제점이 발생한다.
둘째, 디바이스 컨트롤러가 내부에 마이크로 명령어들을 저장할 수 있는 마이크로 명령어 테이블을 포함하고, 메인 프로세서로부터 전송된 커맨드에 상응하는 마이크로 명령어들을 실행하는 방법이다.
디바이스 컨트롤러는 메인 프로세서에 의하여 전송된 커맨드를 디코딩하고, 디코딩된 커맨드에 상응하는 마이크로 명령어들을 마이크로 명령어 테이블에서 검색하며, 상기 검색된 마이크로 명령어들을 실행한다. 두 번째 방법의 경우에는 디 바이스 컨트롤러에 포함된 마이크로 명령어 테이블은 디바이스 컨트롤러가 제작될 때 생성되고, 디바이스 컨트롤러가 제작된 후에는 변경할 수 없다. 따라서 디바이스 컨트롤러는 새로 마이크로 명령어들을 추가할 수 없고, 제한된 수의 미리 정의된 마이크로 명령어들만을 실행해야 하는 문제점이 발생한다.
본 발명의 목적은 상기 종래 기술의 문제점을 해결하기 위하여 명령어 메모리 및 메모리 컨트롤러를 이용하여 새로운 명령어를 쉽게 추가하고, 동작 속도를 증가시키기 위한 커맨드 디코딩 시스템 및 플래시 메모리 커맨드 디코딩 시스템을 제공하는데 있다.
본 발명의 다른 목적은 명령어 메모리 및 메모리 컨트롤러를 이용하여 새로운 명령어를 쉽게 추가하고, 동작 속도를 증가시키기 위한 명령어 디코딩 방법 및 플래시 메모리 커맨드 디코딩 방법을 제공하는 데 있다.
상기 목적을 달성하기 위하여 본 발명의 커맨드 디코딩 시스템은 커맨드를 제공하는 메인 프로세서, 상기 커맨드에 상응하는 명령어 블록(상기 명령어 블록은 상기 커맨드를 실행하기 위한 마이크로 명령어들을 포함함)을 저장하는 명령어 메모리(Instruction Memory), 상기 명령어 메모리에 대한 접근을 제어하는 메모리 컨트롤러 및 상기 커맨드를 입력받고, 상기 메모리 컨트롤러를 통하여 상기 커맨드에 상응하는 상기 명령어 블록에 포함된 마이크로 명령어들을 순차적으로 가져와서 상기 가져온 마이크로 명령어들을 실행하는 디바이스 컨트롤러를 포함한다.
상기 디바이스 컨트롤러는 상기 입력받은 커맨드를 디코딩할 수 있고, 상기 디코딩된 커맨드에 상응하는 상기 명령어 블록에 포함된 상기 마이크로 명령어들에 대한 읽기 명령을 상기 메모리 컨트롤러에 전송할 수 있고, 상기 메모리 컨트롤러로부터 상기 마이크로 명령어들을 전송받아 상기 전송받은 마이크로 명령어들을 실행할 수 있다.
예를 들어, 상기 디바이스 컨트롤러는 상기 입력받은 커맨드를 저장하는 커맨드 레지스터, 상기 저장된 커맨드를 디코딩하고, 상기 디코딩된 커맨드에 상응하는 상기 명령어 블록에 포함된 상기 마이크로 명령어들에 대한 읽기 명령을 상기 메모리 컨트롤러에 전송하고, 상기 메모리 컨트롤러로부터 상기 마이크로 명령어들을 전송받는 커맨드 디코더 및 상기 전송받은 마이크로 명령어들을 실행하는 커맨드 실행기를 포함할 수 있다.
상기 다른 목적을 달성하기 위하여 본 발명의 플래시 메모리 커맨드 디코딩 시스템은 플래시 메모리 커맨드를 제공하는 메인 프로세서, 상기 플래시 메모리 커맨드에 상응하는 명령어 블록(상기 명령어 블록은 상기 플래시 메모리 커맨드를 실행하기 위한 마이크로 명령어들을 포함함)을 저장하는 명령어 메모리(Instruction Memory), 상기 명령어 메모리에 대한 접근을 제어하는 메모리 컨트롤러 및 상기 플래시 메모리 커맨드를 입력받고, 상기 메모리 컨트롤러를 통하여 상기 플래시 메모리 커맨드에 상응하는 상기 명령어 블록에 포함된 마이크로 명령어들을 순차적으로 가져와서 상기 가져온 마이크로 명령어들을 실행하는 플래시 메모리 컨트롤러를 포함한다.
상기 플래시 메모리 컨트롤러는 상기 입력받은 플래시 메모리 커맨드를 디코딩할 수 있고, 상기 디코딩된 플래시 메모리 커맨드에 상응하는 상기 명령어 블록에 포함된 상기 마이크로 명령어들에 대한 읽기 명령을 상기 메모리 컨트롤러에 전송할 수 있고, 상기 메모리 컨트롤러로부터 상기 마이크로 명령어들을 전송받아 상기 전송받은 마이크로 명령어들을 실행할 수 있다.
예를 들어, 상기 플래시 메모리 컨트롤러는 상기 입력받은 플래시 메모리 커맨드를 저장하는 커맨드 레지스터, 상기 저장된 플래시 메모리 커맨드를 디코딩하고, 상기 디코딩된 플래시 메모리 커맨드에 상응하는 상기 명령어 블록에 포함된 상기 마이크로 명령어들에 대한 읽기 명령을 상기 메모리 컨트롤러에 전송하고, 상기 메모리 컨트롤러로부터 상기 마이크로 명령어들을 전송받는 커맨드 디코더 및 상기 전송받은 마이크로 명령어들을 실행하는 커맨드 실행기를 포함할 수 있다.
상기 커맨드 실행기는 캐시 메모리를 더 포함할 수 있고, 상기 커맨드 디코더는 상기 디코딩된 플래시 메모리 커맨드에 상응하는 상기 명령어 블록에 포함된 상기 마이크로 명령어들을 상기 캐시 메모리에서 먼저 검색할 수 있다.
플래시 메모리 컨트롤러는 데이터를 저장하는 플래시 메모리를 더 포함할 수 있고, 상기 플래시 메모리 컨트롤러는 상기 저장된 데이터를 읽어 상기 메인 프로세서에 전달할 때 에러 정정을 실행할 수 있다.
예를 들어, 상기 마이크로 명령어는 상기 플래시 메모리 컨트롤러에 대한 플래시 컨트롤러 명령어를 나타내는 제1 부분 및 상기 플래시 컨트롤러 명령어에 상응하는 추가적인 정보를 나타내는 제2 부분을 포함할 수 있다. 또한, 상기 제1 부 분은 4 비트로 구성되고, 상기 제2 부분은 12 비트로 구성될 수 있다.
상기 또 다른 목적을 달성하기 위하여 본 발명의 커맨드 디코딩 방법은 메인 프로세서로부터 커맨드를 입력받는 단계, 메모리 컨트롤러를 통하여 상기 입력된 커맨드에 상응하는 명령어 블록(상기 명령어 블록은 상기 커맨드를 실행하기 위한 상기 마이크로 명령어들을 포함함)에 포함된 마이크로 명령어들을 순차적으로 가져오는 단계 및 상기 가져온 마이크로 명령어들을 실행하는 단계를 포함한다.
상기 가져오는 단계는 상기 입력받은 커맨드를 디코딩하는 단계 및 상기 메모리 컨트롤러에 상기 디코딩된 커맨드에 상응하는 상기 명령어 블록에 포함된 상기 마이크로 명령어들에 대한 읽기 명령을 전송하는 단계를 포함할 수 있다.
상기 또 다른 목적을 달성하기 위하여 본 발명의 플래시 메모리 커맨드 디코딩 방법은 메인 프로세서로부터 플래시 메모리 커맨드를 입력받는 단계, 메모리 컨트롤러를 통하여 상기 입력된 플래시 메모리 커맨드에 상응하는 명령어 블록(상기 명령어 블록은 상기 플래시 메모리 커맨드를 실행하기 위한 상기 마이크로 명령어들을 포함함)에 포함된 마이크로 명령어들을 순차적으로 가져오는 단계 및 상기 가져온 마이크로 명령어들을 실행하는 단계를 포함한다.
상기 가져오는 단계는 상기 입력받은 플래시 메모리 커맨드를 디코딩하는 단계 및 상기 메모리 컨트롤러에 상기 디코딩된 플래시 메모리 커맨드에 상응하는 상기 명령어 블록에 포함된 상기 마이크로 명령어들에 대한 읽기 명령을 전송하는 단계를 포함할 수 있다.
상기 메인 프로세서에 플래시 메모리에 저장된 데이터를 전송할 때 상기 저 장된 데이터에 대하여 에러 정정 연산을 실행하는 단계를 더 포함할 수 있다.
상기 가져오는 단계는 상기 플래시 메모리 커맨드에 상응하는 상기 명령어 블록에 포함된 상기 마이크로 명령어들을 캐시 메모리에서 먼저 검색하는 단계를 포함할 수 있다.
따라서 본 발명에서는 명령어 메모리 및 메모리 컨트롤러를 이용하여 새로운 명령어를 쉽게 추가하고, 동작 속도를 증가시킬 수 있다.
본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않 는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
한편, 어떤 실시예가 달리 구현 가능한 경우에 특정 블록 내에 명기된 기능 또는 동작이 순서도에 명기된 순서와 다르게 일어날 수도 있다. 예를 들어, 연속하는 두 블록이 실제로는 실질적으로 동시에 수행될 수도 있고, 관련된 기능 또는 동작에 따라서는 상기 블록들이 거꾸로 수행될 수도 있다.
이하 본 발명의 실시예들을 도면과 함께 설명하고자 한다.
도 1은 본 발명의 일 실시예에 따른 플래시 메모리 커맨드 디코딩 시스템을 나타내는 블록도이다.
도 1을 참조하면, 커맨드 디코딩 시스템(100)은 메인 프로세서(110), 명령어 메모리(120), 메모리 컨트롤러(130) 및 디바이스 컨트롤러(140)를 포함한다. 또한, 커맨드 디코딩 시스템(100)은 주변 기기(150)를 더 포함할 수 있다.
메인 프로세서(110)는 상기 디바이스 컨트롤러(140)에 커맨드를 제공한다. 예를 들어, 상기 디바이스 컨트롤러(140)가 플래시 메모리 컨트롤러라면, 메인 프로세서(110)는 특정 주소에 저장된 데이터를 가져오기 위한 읽기 명령을 플래시 메모리 컨트롤러에 전송할 수 있다.
명령어 메모리(120)는 메인 프로세서(110)에 의하여 제공되는 모든 커맨드들에 대하여 상응하는 명령어 블록들(instruction blocks)을 저장한다. 상기 명령어 블록들은 상기 커맨드들을 각각 실행하기 위한 마이크로 명령어를 포함한다.
메모리 컨트롤러(130)는 디바이스 컨트롤러(140)가 명령어 메모리(120)를 접근할 때 또는 메인 프로세서(110)가 디바이스 컨트롤러(140)를 접근할 때 인터페이 스를 제공한다. 즉, 메모리 컨트롤러(130)는 명령어 메모리(120)의 접근을 제어할 수 있다. 예를 들어, 메모리 컨트롤러(130)는 컴퓨터 시스템에서 DMA(Direct Memory Access) 장치에 상응할 수 있다.
디바이스 컨트롤러(140)는 커맨드 레지스터(142), 커맨드 디코더(144), 커맨드 실행기(146) 및 주변 기기 인터페이스(148)를 포함한다.
디바이스 컨트롤러(140)는 메인 프로세서(110)로부터 출력된 커맨드를 입력받고, 메모리 컨트롤러(130)를 통하여 상기 커맨드에 상응하는 명령어 블록에 포함된 마이크로 명령어들을 순차적으로 가져와서 상기 가져온 마이크로 명령어들을 실행한다.
즉, 디바이스 컨트롤러(140)는 메인 프로세서(110)로부터 입력받은 커맨드를 디코딩하고, 디코딩된 커맨드에 상응하는 상기 명령어 블록에 포함된 마이크로 명령어들에 대한 읽기 명령을 메모리 컨트롤러(130)에 전송하고, 상기 메모리 컨트롤러(130)로부터 상기 마이크로 명령어들을 전송받아 상기 전송받은 마이크로 명령어들을 실행한다.
예를 들어, 디바이스 컨트롤러(140)가 플래시 메모리 컨트롤러라면, 플래시 메모리 컨트롤러는 메인 프로세서(110)로부터 플래시 메모리 커맨드를 입력받고, 메모리 컨트롤러(130)를 통하여 플래시 메모리 커맨드에 상응하는 명령어 블록에 포함된 마이크로 명령어들을 순차적으로 가져와서 상기 가져온 마이크로 명령어들을 실행할 수 있다
즉, 플래시 메모리 컨트롤러는 메인 프로세서(110)로부터 입력받은 플래시 메모리 커맨드를 디코딩하고, 상기 디코딩된 플래시 메모리 커맨드에 상응하는 상기 명령어 블록에 포함된 상기 마이크로 명령어들에 대한 읽기 명령을 상기 메모리 컨트롤러(130)에 전송하고, 상기 메모리 컨트롤러(130)로부터 상기 마이크로 명령어들을 전송받아 상기 전송받은 마이크로 명령어들을 실행할 수 있다.
커맨드 레지스터(142)는 메인 프로세서(110)로부터 입력받은 커맨드를 저장한다. 예를 들어, 디바이스 컨트롤러(140)가 플래시 메모리 컨트롤러라면, 커맨드 레지스터(142)는 플래시 메모리 커맨드를 저장할 수 있다.
커맨드 디코더(144)는 커맨드 레지스터(142)에 저장된 커맨드를 디코딩하고, 디코딩된 커맨드에 상응하는 상기 명령어 블록에 포함된 상기 마이크로 명령어들에 대한 읽기 명령을 상기 메모리 컨트롤러(130)에 전송하고, 상기 메모리 컨트롤러(130)로부터 상기 마이크로 명령어들을 전송받는다. 예를 들어, 디바이스 컨트롤러(140)가 플래시 메모리 컨트롤러라면, 커맨드 디코더(144)는 플래시 메모리 커맨드를 디코딩하고, 디코딩된 플래시 메모리 커맨드에 상응하는 상기 명령어 블록에 포함된 상기 마이크로 명령어들에 대한 읽기 명령을 상기 메모리 컨트롤러(130)에 전송하고, 상기 메모리 컨트롤러(130)로부터 상기 마이크로 명령어들을 전송받는다.
커맨드 실행기(146)는 상기 전송받은 마이크로 명령어들을 실행한다. 예를 들어, 디바이스 컨트롤러(140)가 플래시 메모리 컨트롤러라면, 커맨드 실행기(146)는 상기 전송받은 마이크로 명령어들을 실행할 수 있다.
주변 기기 인터페이스(148)는 디바이스 컨트롤러(140)가 주변 기기(150)를 접근할 때 사용되는 인터페이스이다. 예를 들어, 디바이스 컨트롤러(140)가 플래시 메모리 컨트롤러라면, 주변 기기(150)는 플래시 메모리에 상응할 수 있다. 메인 프로세서(110)에 의하여 전송된 커맨드가 플래시 메모리 내의 특정 주소에 저장된 데이터를 읽는 명령이라면 플래시 메모리 컨트롤러는 주변 기기 인터페이스(148)을 통하여 플래시 메모리를 접근한다.
도 2는 본 발명의 일 실시예에 따른 디바이스 컨트롤러를 나타내는 블록도이다.
도 2를 참조하면, 디바이스 컨트롤러(140)는 커맨드 레지스터(142), 커맨드 디코더(144), 커맨드 실행기(146) 및 주변 장치 인터페이스(148)를 포함한다. 또한 디바이스 컨트롤러(140)는 유한 상태 장치(FSM, Finite State Machine)(210), 캐시 메모리(220) 및 에러 정정부(230)를 더 포함할 수 있다.
커맨드 레지스터(142)는 메인 프로세서(110)로부터 입력받은 커맨드를 저장한다. 예를 들어, 디바이스 컨트롤러(140)가 플래시 메모리 컨트롤러라면, 커맨드 레지스터(142)는 플래시 메모리 커맨드를 저장할 수 있다.
유한 상태 장치(FSM, Finite State Machine)(210)는 디바이스 컨트롤러(140)의 상태 정보를 관리하고, 디바이스 컨트롤러(140)의 전반적인 동작을 제어할 수 있다. 예를 들어, 디바이스 컨트롤러(140)가 플래시 메모리 컨트롤러라면, 커맨드 디코더(144)가 커맨드 레지스터(1420)에 저장된 특정 커맨드를 디코딩하는 동안 주변 장치 인터페이스(148)를 통하여 입력받은 데이터에 대하여 에러 정정 연산을 수행할 수 있다. 즉, 유한 상태 장치(210)는 커맨드 디코더(144) 및 에러 정정 부(230)가 동시에 수행될 수 있도록 플래시 메모리 컨트롤러를 제어할 수 있다.
캐시 메모리(220)는 이전에 수행된 커맨드에 상응하는 명령어 블록을 저장하는 메모리이다. 일반적으로 디바이스 컨트롤러(140)가 캐시 메모리(220)에 접근하는 속도가 디바이스 컨트롤러(140)가 명령어 메모리(120)를 접근하는 속도보다 빠르므로, 캐시 메모리(220)는 디바이스 컨트롤러(140)의 성능을 향상시킬 수 있다.
커맨드 디코더(144)는 커맨드 레지스터(142)에 저장된 커맨드를 디코딩하고, 디코딩된 커맨드에 상응하는 상기 명령어 블록에 포함된 상기 마이크로 명령어들에 대한 읽기 명령을 상기 메모리 컨트롤러(130)에 전송하고, 상기 메모리 컨트롤러(130)로부터 상기 마이크로 명령어들을 전송받는다.
예를 들어, 디바이스 컨트롤러(140)가 플래시 메모리 컨트롤러라면, 커맨드 디코더(144)는 플래시 메모리 커맨드를 디코딩하고, 디코딩된 플래시 메모리 커맨드에 상응하는 상기 명령어 블록에 포함된 상기 마이크로 명령어들에 대한 읽기 명령을 상기 메모리 컨트롤러(130)에 전송하고, 상기 메모리 컨트롤러(130)로부터 상기 마이크로 명령어들을 전송받는다.
또한, 커맨드 디코더(144)는 디코딩된 플래시 메모리 커맨드에 상응하는 상기 메모리 블록에 포함된 마이크로 명령어들을 캐시 메모리(220)에서 먼저 검색할 수 있다.
커맨드 실행기(146)는 상기 전송받은 마이크로 명령어들을 실행한다. 예를 들어, 디바이스 컨트롤러(140)가 플래시 메모리 컨트롤러라면, 커맨드 실행기(146)는 상기 전송받은 마이크로 명령어들을 실행할 수 있다.
에러 정정부(230)는 디바이스 컨트롤러(140)에 입력되는 데이터를 메인 프로세서(110)에 전달할 때 에러 정정을 실행한다. 예를 들어, 디바이스 컨트롤러(140)가 플래시 메모리 컨트롤러라면, 플래시 메모리 컨트롤러가 플래시 메모리에 저장된 데이터를 읽어 메인 프로세서(110)에 전달할 때 에러 정정을 실행할 수 있다.
주변 기기 인터페이스(148)는 디바이스 컨트롤러(140)가 주변 기기(150)를 접근할 때 사용되는 인터페이스이다. 예를 들어, 디바이스 컨트롤러(140)가 플래시 메모리 컨트롤러라면, 주변 기기(150)는 플래시 메모리에 상응할 수 있다. 메인 프로세서(110)에 의하여 전송된 커맨드가 플래시 메모리 내의 특정 주소에 저장된 데이터를 읽는 명령이라면 플래시 메모리 컨트롤러는 주변 기기 인터페이스(148)을 통하여 플래시 메모리를 접근한다.
이하, 디바이스 컨트롤러(140)가 플래시 메모리 컨트롤러라고 가정하고, 도 3 내지 도 7을 참조하여 플래시 메모리 컨트롤러의 동작을 설명한다.
도 3은 플래시 메모리 컨트롤러의 마이크로 명령어들을 나타내는 테이블이다.
도 3을 참조하면, 마이크로 명령어는 상기 플래시 메모리 컨트롤러에 대한 플래시 컨트롤러 명령어를 나타내는 제1 부분(INSTCODE) 및 상기 플래시 컨트롤러 명령어에 상응하는 추가적인 정보를 나타내는 제2 부분(OFFSET)을 포함한다. 예를 들어, 상기 제1 부분(INSTCODE)은 4 비트로 구성될 수 있고, 상기 제2 부분(OFFSET)은 12 비트로 구성될 수 있다.
제1 부분(INSTCODE)은 마이크로 명령어를 나타내며, 마이크로 명령어는 코드 0000부터 코드 1111까지 총 16개를 가질 수 있다.
예를 들어, 마이크로 명령어들은 무동작(No Operation)을 나타내는 0000(NOP), 특정 명령을 나타내는 코드 0001(Write Command), 주소 값을 나타내는 코드 0010(Write Address), RnB(Ready and Busy) 상태인 경우 대기를 나타내는 코드 0011(Wait RnB), 메모리 컨트롤러에 데이터 전송을 요구하는 코드 0100(Data transfer DMA request), 에러 정정 코드(ECC, Error Correction Code)의 기록을 나타내는 코드 0110(Write ECC), 데이터의 기록을 나타내는 코드 0111(Write Data), 에러 정정 코드의 초기화를 나타내는 코드 1000(Init ECC) 및 동작 중지를 나타내는 코드 1111(Stop Operation)을 포함할 수 있다.
제2 부분(OFFSET)은 각 마이크로 명령어들과 관계되는 추가적인 정보를 의미한다. 예를 들어, 마이크로 명령어의 제1 부분이 코드 0001(Write Command)인 경우, 제2 부분(OFFSET)은 READ/WRITE와 같은 명령어 코드를 포함한다.
도 4는 플래시 메모리 컨트롤러가 처리하는 구체적인 명령어를 나타내는 테이블이고, 도 5 내지 도 7은 메모리 컨트롤러가 마이크로 명령어들을 처리하는 과정을 나타내는 플로우차트이다.
도 5는 플래시 메모리 컨트롤러가 플래시 메모리를 프로그램하는 과정을 나타내는 플로우차트이다.
플래시 메모리 컨트롤러는 프로그램 커맨드를 메인 프로세서(110)로부터 전송받는다.
플래시 메모리 컨트롤러는 메모리 컨트롤러(130)를 통하여 명령어 메모 리(120)에서 프로그램 커맨드에 상응하는 명령어 블록을 읽는다.
플래시 메모리 컨트롤러는 메모리 컨트롤러(130)를 통하여 80h 명령어를 실행하라는 마이크로 명령어를 읽는다(단계 S51). 도 4를 참조하면, Page Program 명령어의 첫 번째 단계가 80h에 상응하므로, 플래시 메모리 컨트롤러는 Page Program 명령어의 시작을 지시한다.
플래시 메모리 컨트롤러는 플래시 메모리에 주소 값을 전송하고(단계 S52), 플래시 메모리 컨트롤러는 플래시 메모리에 데이터 값을 전송한다(단계 S53).
플래시 메모리 컨트롤러가 데이터를 모두 전송한 후에는 메모리 컨트롤러(130)를 통하여 10h 명령어를 실행하라는 마이크로 명령어를 읽는다(단계 S54). 도 4를 참조하면, Page Program 명령어의 두 번째 단계가 10h에 상응하므로, 플래시 메모리 컨트롤러는 Page Program 명령어의 종료를 지시한다.
플래시 메모리 컨트롤러가 프로그램을 완료한 후 에러 유무를 체크한다(단계 S55). 만일 프로그램하는 과정에 에러가 있는 경우 플래시 메모리 컨트롤러는 프로그램 에러가 있음을 알리고(단계 S56), 플래시 메모리 컨트롤러의 프로그램 동작을 완료한다.
도 6은 플래시 메모리 컨트롤러가 플래시 메모리를 이레이즈(Erase)하는 과정을 나타내는 플로우차트이다.
플래시 메모리 컨트롤러는 이레이즈 커맨드를 메인 프로세서(110)로부터 전송받는다.
플래시 메모리 컨트롤러는 메모리 컨트롤러(130)를 통하여 60h 명령어를 실 행하라는 마이크로 명령어를 읽는다(단계 S61). 도 4를 참조하면, Block Erase 명령어의 첫 번째 단계가 60h에 상응하므로, 플래시 메모리 컨트롤러는 Block Erase 명령어의 시작을 지시한다.
플래시 메모리 컨트롤러는 플래시 메모리에 주소 값을 전송하고(단계 S62), 플래시 메모리의 블록을 지운다.
플래시 메모리 컨트롤러가 데이터를 모두 전송한 후에는 메모리 컨트롤러(130)를 통하여 D0h 명령어를 실행하라는 마이크로 명령어를 읽는다(단계 S63). 도 4를 참조하면, Block Erase 명령어의 두 번째 단계가 D0h에 상응하므로, 플래시 메모리 컨트롤러는 Block Erase 명령어의 종료를 지시한다.
플래시 메모리 컨트롤러가 이레이즈(Erase)를 완료한 후 에러 유무를 체크한다(단계 S65). 만일 이레이즈(Erase)하는 과정에 에러가 있는 경우 플래시 메모리 컨트롤러는 이레이즈 에러가 있음을 알리고(단계 S65), 플래시 메모리 컨트롤러의 프로그램 동작을 완료한다.
도 7은 플래시 메모리 컨트롤러가 플래시 메모리의 페이지를 읽는 과정을 나타내는 플로우차트이다.
플래시 메모리 컨트롤러는 읽기 커맨드를 메인 프로세서(110)로부터 전송받는다.
플래시 메모리 컨트롤러는 메모리 컨트롤러(130)를 통하여 00h 명령어를 실행하라는 마이크로 명령어를 읽는다(단계 S71). 도 4를 참조하면, Read 명령어의 첫 번째 단계가 00h에 상응하므로, 플래시 메모리 컨트롤러는 Read 명령어의 시작 을 지시한다.
플래시 메모리 컨트롤러는 플래시 메모리에 주소 값을 전송한다(단계 S72).
플래시 메모리 컨트롤러가 데이터를 모두 전송한 후에는 메모리 컨트롤러(130)를 통하여 30h 명령어를 실행하라는 마이크로 명령어를 읽는다(단계 S73). 도 4를 참조하면, Read 명령어의 두 번째 단계가 30h에 상응하므로, 플래시 메모리 컨트롤러는 Read 명령어의 종료를 지시한다.
플래시 메모리 컨트롤러가 상기 주소 값에 상응하는 데이터를 읽고(단계 S74), 플래시 메모리 컨트롤러가 읽기 동작을 완료한 후 에러 유무를 체크한다(단계 S75). 만일 읽기 동작하는 과정에 에러가 있는 경우 플래시 메모리 컨트롤러는 읽기 에러가 있음을 알리고(단계 S76), 플래시 메모리 컨트롤러의 읽기 동작을 완료한다.
상술한 바와 같이 본 발명에서는 명령어 메모리 및 메모리 컨트롤러를 이용하여 새로운 명령어를 쉽게 추가하고, 동작 속도를 증가시킬 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (16)

  1. 커맨드를 제공하는 메인 프로세서;
    상기 커맨드에 상응하는 명령어 블록(상기 명령어 블록은 상기 커맨드를 실행하기 위한 마이크로 명령어들을 포함함)을 저장하는 명령어 메모리(Instruction Memory);
    상기 명령어 메모리에 대한 접근을 제어하는 메모리 컨트롤러; 및
    상기 커맨드를 입력받고, 상기 메모리 컨트롤러를 통하여 상기 커맨드에 상응하는 상기 명령어 블록에 포함된 마이크로 명령어들을 순차적으로 가져와서 상기 가져온 마이크로 명령어들을 실행하는 디바이스 컨트롤러를 포함하는 커맨드 디코딩 시스템.
  2. 제1항에 있어서, 상기 디바이스 컨트롤러는
    상기 입력받은 커맨드를 디코딩하고, 상기 디코딩된 커맨드에 상응하는 상기 명령어 블록에 포함된 상기 마이크로 명령어들에 대한 읽기 명령을 상기 메모리 컨트롤러에 전송하고, 상기 메모리 컨트롤러로부터 상기 마이크로 명령어들을 전송받아 상기 전송받은 마이크로 명령어들을 실행하는 것을 특징으로 하는 커맨드 디코딩 시스템.
  3. 제1항에 있어서, 상기 디바이스 컨트롤러는
    상기 입력받은 커맨드를 저장하는 커맨드 레지스터;
    상기 저장된 커맨드를 디코딩하고, 상기 디코딩된 커맨드에 상응하는 상기 명령어 블록에 포함된 상기 마이크로 명령어들에 대한 읽기 명령을 상기 메모리 컨트롤러에 전송하고, 상기 메모리 컨트롤러로부터 상기 마이크로 명령어들을 전송받는 커맨드 디코더; 및
    상기 전송받은 마이크로 명령어들을 실행하는 커맨드 실행기를 포함하는 것을 특징으로 하는 커맨드 디코딩 시스템.
  4. 플래시 메모리 커맨드를 제공하는 메인 프로세서;
    상기 플래시 메모리 커맨드에 상응하는 명령어 블록(상기 명령어 블록은 상기 플래시 메모리 커맨드를 실행하기 위한 마이크로 명령어들을 포함함)을 저장하는 명령어 메모리(Instruction Memory);
    상기 명령어 메모리에 대한 접근을 제어하는 메모리 컨트롤러; 및
    상기 플래시 메모리 커맨드를 입력받고, 상기 메모리 컨트롤러를 통하여 상기 플래시 메모리 커맨드에 상응하는 상기 명령어 블록에 포함된 마이크로 명령어들을 순차적으로 가져와서 상기 가져온 마이크로 명령어들을 실행하는 플래시 메모리 컨트롤러를 포함하는 플래시 메모리 커맨드 디코딩 시스템.
  5. 제4항에 있어서, 상기 플래시 메모리 컨트롤러는
    상기 입력받은 플래시 메모리 커맨드를 디코딩하고, 상기 디코딩된 플래시 메모리 커맨드에 상응하는 상기 명령어 블록에 포함된 상기 마이크로 명령어들에 대한 읽기 명령을 상기 메모리 컨트롤러에 전송하고, 상기 메모리 컨트롤러로부터 상기 마이크로 명령어들을 전송받아 상기 전송받은 마이크로 명령어들을 실행하는 것을 특징으로 하는 플래시 메모리 커맨드 디코딩 시스템.
  6. 제4항에 있어서, 상기 플래시 메모리 컨트롤러는
    상기 입력받은 플래시 메모리 커맨드를 저장하는 커맨드 레지스터;
    상기 저장된 플래시 메모리 커맨드를 디코딩하고, 상기 디코딩된 플래시 메모리 커맨드에 상응하는 상기 명령어 블록에 포함된 상기 마이크로 명령어들에 대한 읽기 명령을 상기 메모리 컨트롤러에 전송하고, 상기 메모리 컨트롤러로부터 상기 마이크로 명령어들을 전송받는 커맨드 디코더; 및
    상기 전송받은 마이크로 명령어들을 실행하는 커맨드 실행기를 포함하는 것을 특징으로 하는 플래시 메모리 커맨드 디코딩 시스템.
  7. 제6항에 있어서, 상기 커맨드 실행기는 캐시 메모리를 더 포함하고,
    상기 커맨드 디코더는 상기 디코딩된 플래시 메모리 커맨드에 상응하는 상기 명령어 블록에 포함된 상기 마이크로 명령어들을 상기 캐시 메모리에서 먼저 검색하는 것을 특징으로 하는 플래시 메모리 커맨드 디코딩 시스템.
  8. 제6항에 있어서, 데이터를 저장하는 플래시 메모리를 더 포함하고,
    상기 플래시 메모리 컨트롤러는 상기 저장된 데이터를 읽어 상기 메인 프로세서에 전달할 때 에러 정정을 실행하는 것을 특징으로 하는 플래시 메모리 커맨드 디코딩 시스템.
  9. 제4항에 있어서, 상기 마이크로 명령어는
    상기 플래시 메모리 컨트롤러에 대한 플래시 컨트롤러 명령어를 나타내는 제1 부분; 및
    상기 플래시 컨트롤러 명령어에 상응하는 추가적인 정보를 나타내는 제2 부분을 포함하는 것을 특징으로 하는 플래시 메모리 커맨드 디코딩 시스템.
  10. 제9항에 있어서, 상기 제1 부분은 4 비트로 구성되고, 상기 제2 부분은 12 비트로 구성된 것을 특징으로 하는 플래시 메모리 커맨드 디코딩 시스템.
  11. 메인 프로세서로부터 커맨드를 입력받는 단계;
    메모리 컨트롤러를 통하여 상기 입력된 커맨드에 상응하는 명령어 블록(상기 명령어 블록은 상기 커맨드를 실행하기 위한 상기 마이크로 명령어들을 포함함)에 포함된 마이크로 명령어들을 순차적으로 가져오는 단계; 및
    상기 가져온 마이크로 명령어들을 실행하는 단계를 포함하는 커맨드 디코딩 방법.
  12. 제11항에 있어서, 상기 가져오는 단계는
    상기 입력받은 커맨드를 디코딩하는 단계; 및
    상기 메모리 컨트롤러에 상기 디코딩된 커맨드에 상응하는 상기 명령어 블록에 포함된 상기 마이크로 명령어들에 대한 읽기 명령을 전송하는 단계를 포함하는 것을 특징으로 하는 커맨드 디코딩 방법.
  13. 메인 프로세서로부터 플래시 메모리 커맨드를 입력받는 단계;
    메모리 컨트롤러를 통하여 상기 입력된 플래시 메모리 커맨드에 상응하는 명령어 블록(상기 명령어 블록은 상기 플래시 메모리 커맨드를 실행하기 위한 상기 마이크로 명령어들을 포함함)에 포함된 마이크로 명령어들을 순차적으로 가져오는 단계; 및
    상기 가져온 마이크로 명령어들을 실행하는 단계를 포함하는 플래시 메모리 커맨드 디코딩 방법.
  14. 제13항에 있어서, 상기 가져오는 단계는
    상기 입력받은 플래시 메모리 커맨드를 디코딩하는 단계; 및
    상기 메모리 컨트롤러에 상기 디코딩된 플래시 메모리 커맨드에 상응하는 상기 명령어 블록에 포함된 상기 마이크로 명령어들에 대한 읽기 명령을 전송하는 단계를 포함하는 것을 특징으로 하는 플래시 메모리 커맨드 디코딩 방법.
  15. 제13항에 있어서, 상기 메인 프로세서에 플래시 메모리에 저장된 데이터를 전송할 때 상기 저장된 데이터에 대하여 에러 정정 연산을 실행하는 단계를 더 포함하는 것을 특징으로 하는 플래시 메모리 커맨드 디코딩 시스템.
  16. 제13항에 있어서, 상기 가져오는 단계는
    상기 플래시 메모리 커맨드에 상응하는 상기 명령어 블록에 포함된 상기 마이크로 명령어들을 캐시 메모리에서 먼저 검색하는 단계를 포함하는 것을 특징으로 하는 플래시 메모리 커맨드 디코딩 시스템.
KR1020060063740A 2006-07-07 2006-07-07 커맨드 디코딩 시스템, 플래시 메모리 커맨드 디코딩시스템 및 이를 이용한 방법 KR100829788B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020060063740A KR100829788B1 (ko) 2006-07-07 2006-07-07 커맨드 디코딩 시스템, 플래시 메모리 커맨드 디코딩시스템 및 이를 이용한 방법
US11/774,131 US7730234B2 (en) 2006-07-07 2007-07-06 Command decoding system and method of decoding a command including a device controller configured to sequentially fetch the micro-commands in an instruction block

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060063740A KR100829788B1 (ko) 2006-07-07 2006-07-07 커맨드 디코딩 시스템, 플래시 메모리 커맨드 디코딩시스템 및 이를 이용한 방법

Publications (2)

Publication Number Publication Date
KR20080004875A true KR20080004875A (ko) 2008-01-10
KR100829788B1 KR100829788B1 (ko) 2008-05-16

Family

ID=39153397

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060063740A KR100829788B1 (ko) 2006-07-07 2006-07-07 커맨드 디코딩 시스템, 플래시 메모리 커맨드 디코딩시스템 및 이를 이용한 방법

Country Status (2)

Country Link
US (1) US7730234B2 (ko)
KR (1) KR100829788B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101139975B1 (ko) * 2009-05-28 2012-05-02 가부시끼가이샤 도시바 메모리 시스템 및 데이터 전송 방법
KR20170012946A (ko) * 2015-07-27 2017-02-06 삼성전자주식회사 메모리 장치 및 이를 포함하는 메모리 시스템
US9959211B2 (en) 2015-07-09 2018-05-01 SK Hynix Inc. Memory control unit for controlling semiconductor memory device and data storage apparatus including the same

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4738112B2 (ja) * 2005-09-12 2011-08-03 ルネサスエレクトロニクス株式会社 半導体記憶装置
US20160124639A1 (en) * 2014-11-05 2016-05-05 SanDisk Technologies, Inc. Dynamic storage channel
KR20160095688A (ko) * 2015-02-03 2016-08-12 에스케이하이닉스 주식회사 반도체 메모리 장치 및 이의 동작 상태 확인 방법
US20180285562A1 (en) * 2017-03-31 2018-10-04 Intel Corporation Computing system with protection against memory wear out attacks

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS621031A (ja) * 1985-03-25 1987-01-07 Hitachi Ltd デ−タ処理装置
JPH05241825A (ja) * 1992-01-28 1993-09-21 Nec Corp マイクロプロセッサ
JP2859048B2 (ja) * 1992-09-03 1999-02-17 日本電気アイシーマイコンシステム株式会社 マイクロコンピュータ
US5768287A (en) * 1996-10-24 1998-06-16 Micron Quantum Devices, Inc. Apparatus and method for programming multistate memory device
US6128703A (en) * 1997-09-05 2000-10-03 Integrated Device Technology, Inc. Method and apparatus for memory prefetch operation of volatile non-coherent data
US6154829A (en) * 1997-10-20 2000-11-28 Matsushita Electric Industrial Co., Ltd. Cascaded arithmetic pipeline data processor
KR100343459B1 (ko) * 1999-12-03 2002-07-11 박종섭 자바 프로세서
KR100385233B1 (ko) * 2000-03-14 2003-05-23 삼성전자주식회사 데이터 프로세싱 시스템의 익스포넌트 유닛
KR100484247B1 (ko) * 2000-12-28 2005-04-20 매그나칩 반도체 유한회사 재설정가능 인스트럭션 세트 마이크로 컨트롤러 유니트의인스트럭션 디코더 장치
US6778436B2 (en) 2001-10-10 2004-08-17 Fong Piau Apparatus and architecture for a compact flash memory controller
US7225280B2 (en) 2002-02-28 2007-05-29 Sandisk Il Ltd. Portable device for one-on-one transfer between another such device wherein device is restricted to data storage and transfer with single interface for data exchange
KR100487539B1 (ko) 2002-09-02 2005-05-03 삼성전자주식회사 직렬 에이티에이 케이블과 연결되는 불휘발성 반도체메모리 장치
JP3886870B2 (ja) * 2002-09-06 2007-02-28 株式会社ルネサステクノロジ データ処理装置
US7340566B2 (en) * 2002-10-21 2008-03-04 Microsoft Corporation System and method for initializing a memory device from block oriented NAND flash
US20050289253A1 (en) * 2004-06-24 2005-12-29 Edirisooriya Samantha J Apparatus and method for a multi-function direct memory access core
KR20050035836A (ko) 2005-01-24 2005-04-19 주식회사 퍼스터 다중 낸드 플래시 메모리 인터페이스 장치
JP4738112B2 (ja) * 2005-09-12 2011-08-03 ルネサスエレクトロニクス株式会社 半導体記憶装置
US7493447B2 (en) * 2006-05-03 2009-02-17 Nuvoton Technology Corporation System and method for caching sequential programs

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101139975B1 (ko) * 2009-05-28 2012-05-02 가부시끼가이샤 도시바 메모리 시스템 및 데이터 전송 방법
US9959211B2 (en) 2015-07-09 2018-05-01 SK Hynix Inc. Memory control unit for controlling semiconductor memory device and data storage apparatus including the same
KR20170012946A (ko) * 2015-07-27 2017-02-06 삼성전자주식회사 메모리 장치 및 이를 포함하는 메모리 시스템
US10140023B2 (en) 2015-07-27 2018-11-27 Samsung Electronics Co., Ltd. Memory device and memory system including the same

Also Published As

Publication number Publication date
US7730234B2 (en) 2010-06-01
US20080059709A1 (en) 2008-03-06
KR100829788B1 (ko) 2008-05-16

Similar Documents

Publication Publication Date Title
US10445228B2 (en) Methods and apparatuses for requesting ready status information from a memory
KR100829788B1 (ko) 커맨드 디코딩 시스템, 플래시 메모리 커맨드 디코딩시스템 및 이를 이용한 방법
US10108372B2 (en) Methods and apparatuses for executing a plurality of queued tasks in a memory
TWI419045B (zh) 用於管理裝置之端序模式之系統及方法
JP6006248B2 (ja) 命令エミュレーションプロセッサ、方法、およびシステム
JP4563829B2 (ja) ダイレクトメモリアクセス制御方法、ダイレクトメモリアクセス制御装置、情報処理システム、プログラム
JP2008047116A (ja) 入力/出力装置とメモリ間のデータ転送の融通性のある制御
JP2003510682A5 (ko)
JP2010500682A (ja) フラッシュメモリアクセス回路
US10199108B2 (en) Methods for read retries and apparatuses using the same
TW201741867A (zh) 記憶體複製指令、處理器、方法及系統
CN106951374B (zh) 用于检查块页地址的方法及其装置
CN109284241A (zh) 存储等待时间信息的存储设备、处理器和计算系统
KR20180034471A (ko) 벡터 피연산자 비트 크기 제어
JP2007206933A (ja) 情報処理装置、情報処理装置におけるブートローダ生成方法およびプログラム転送方法
US20090106509A1 (en) Memory system and method of driving the same
US9934100B2 (en) Method of controlling memory swap operation and data processing system using same
US8117427B2 (en) Motherboard, storage device and controller thereof, and booting method
JP3892873B2 (ja) プログラマブルコントローラ
TWI716909B (zh) 記憶體控制系統及操作記憶體控制系統的方法
JP6217386B2 (ja) マルチプロセッサ用プログラム生成方法
TWI493450B (zh) 用於在微碼呼叫程式與微碼次常式之間傳遞別名參數的設備、方法、物件及系統
JP2012216108A (ja) 情報処理装置およびプログラム転送方法
JP2007328539A (ja) バスシステムおよびバススレーブならびにバス制御方法
JP6138482B2 (ja) 組み込みシステム

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
FPAY Annual fee payment

Payment date: 20130430

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140430

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150430

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160429

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20170427

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20180430

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20190429

Year of fee payment: 12