KR20040075051A - 플래시 메모리 디바이스, 플래시 메모리 명령어 추상화방법 및 컴퓨터 프로그램 제품 - Google Patents

플래시 메모리 디바이스, 플래시 메모리 명령어 추상화방법 및 컴퓨터 프로그램 제품 Download PDF

Info

Publication number
KR20040075051A
KR20040075051A KR10-2004-7010520A KR20047010520A KR20040075051A KR 20040075051 A KR20040075051 A KR 20040075051A KR 20047010520 A KR20047010520 A KR 20047010520A KR 20040075051 A KR20040075051 A KR 20040075051A
Authority
KR
South Korea
Prior art keywords
flash memory
state machine
buffer
instruction
instructions
Prior art date
Application number
KR10-2004-7010520A
Other languages
English (en)
Other versions
KR100549910B1 (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 KR20040075051A publication Critical patent/KR20040075051A/ko
Application granted granted Critical
Publication of KR100549910B1 publication Critical patent/KR100549910B1/ko

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • 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/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/005Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor comprising combined but independently operative RAM-ROM, RAM-PROM, RAM-EPROM cells
    • 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/10Programming or data input circuits

Abstract

기록 사이클과 하나 또는 그 이상의 연속적인 기록 사이클을 하나 이상의 특정 플래시 메모리 명령어를 포함하는 일반적인 명령어로 해석할 수 있는 플래시 메모리 디바이스는 일반적인 명령어를 식별하는 특정 플래시 메모리 명령어를 버퍼에 기록하며, 연속적으로 저장된 플래시 메모리 명령어를 검색, 해석, 그리고 실행하는 상태 머신을 포함한다. 상태 머신은 상태 머신 알고리즘을 실행하는 마이크로제어기로 설정되고 설계 오류를 수정하거나 플래시 메모리 디바이스에 새로운 기능을 추가하고자 할 때 재프로그래밍 될 수 있다. 상태 머신 알고리즘은 플래시 메모리 디바이스에 저장되고 동일한 기록 사이클을 다른 방식으로 해석하도록 업데이트 될 수 있다. 따라서, 상태 머신의 실리콘이 설계되고 개발된 지 오랜 시간이 지난 후에도 상태 머신을 위한 새로운 기능이 개발될 수 있다.

Description

플래시 메모리 디바이스, 플래시 메모리 명령어 추상화 방법 및 컴퓨터 프로그램 제품{FLASH MEMORY ACCESS USING A PLURALITY OF COMMAND CYCLES}
플래시 메모리 디바이스는 사용자가 정보를 전기적으로 프로그래밍하거나 삭제할 수 있는 고체의 비휘발성 메모리 디바이스이다. 플래시 메모리는 통상적으로 플래시 메모리로부터 데이터가 판독되거나 플래시 메모리로 데이터가 프로그래밍 될 수 있도록 하는 판독 및 기록 사이클을 지원한다. 최초의 플래시 메모리 디바이스에서는 플래시 메모리 셀로 데이터를 기록하거나 플래시 메모리로부터 데이터를 판독하는 등과 같은 가장 단순한 작업을 수행하기 위해서도 CPU 또는 다른 외부 프로세서가 플래시 메모리 내의 데이터와 어드레스 버스를 제어해야만 했다. 플래시 메모리 디바이스가 발전하면서, 플래시 메모리 디바이스에 상태 머신(state machine)이 통합되었으며, 이로써 외부 프로세서의 부담이 경감되었다.
상태 머신은 현재의 상태(state or status)가 과거의 상태에 의해 좌우되는논리적 장치이다. 상태 머신이 수신하는 각 명령어는 (현재의 상태에 따라) 상태 머신이 무슨 작업을 수행할지 뿐만 아니라, 상태 머신이 다음에 취할 논리적 상태까지 결정하게 된다. 상태 머신은 고정 배선된 로직 디바이스나 상태 머신 알고리즘을 수행하도록 설정된 마이크로프로세서에 의하여 구현될 수 있다.
상태 머신을 플래시 메모리 디바이스로 통합함으로써 외부 프로세서의 제어 없이 플래시 메모리가 데이터의 프로그래밍이나 삭제와 같은 단순한 작업을 자체적으로 수행할 수 있게 되었다. 그 결과, 외부 프로세서가 플래시 메모리 장치에 고급 명령어를 발행할 수 있고, 디바이스 내의 상태 머신이 자체적으로 명령어를 해석하며, 명령어를 실행하기 위해 필요한 작업을 수행할 수 있다. 상태 머신이 이러한 작업을 수행함에 따라, 명령어의 실행 상태를 알기 위하여 외부 프로세서에 의해 감시되는 상태 레지스터에 비트를 설정할 수 있다.
현재, 플래시 메모리 디바이스로 통합되어 있는 상태 머신은 자체적으로 기설정된 기록 사이클을 명령어로 해석하고 고정 배선이나 기설정된 알고리즘을 실행하여 이러한 명령어가 수행되도록 디바이스 설계에 의하여 고정 배선된다. 그 결과, 현재의 플래시 메모리 디바이스는 그들의 상태 머신에 논리적으로 설계된 제한된 수의 소정 명령어만을 해석할 수 있다. 플래시 메모리 디바이스를 위한 새로운 명령어를 필요로 하는 새로운 기능들이 개발됨에 따라서 새로운 명령어를 해석하고 실행하기 위하여 새로운 상태 머신이 개별적으로 설계되고 개발되어야 한다. 플래시 메모리 디바이스를 위한 새로운 명령어가 개발될 때마다 새로운 상태 머신을 개발하는 것은 유연하지 않으며 논리적 설계에서의 오류가 발행할 수 있는, 시간이많이 소요되는 작업이다.
본 발명은 플래시 메모리 디바이스를 명령하고 제어하기 위한 방법 및 장치에 관련된다.
도 1 은 플래시 메모리 명령어를 발행하고 해석하는 종래의 방법을 나타내는 도면이다.
도 2 는 플래시 메모리 명령을 해석하는 플래시 메모리 명령어 추상화 방법을 나타내는 도면이다.
도 3 은 플래시 메모리 명령어 추상화 방법을 사용하여 명령을 해석할 수 있는 플래시 메모리 장치를 나타내는 개략도이다.
여러 개의 도면에 걸쳐 사용된 동일한 도면부호는 동일한 구성요소를 나타낸다.
도 1은 외부 프로세서가 종래의 플래시 메모리 디바이스에 명령어를 발행할 수 있는 종래의 방법을 설명하는 도면이다. 앞서 설명한 바와 같이, 종래의 플래시 메모리 디바이스는 외부 프로세서로부터 명령어로서 기설정된 특정 기록 사이클을 수신하고 해석하기 위해 고정 배선된 상태 머신을 포함한다. 상태 머신이 명령어로서 기설정된 기록 사이클을 수신하고 해석할 때, 이것은 명령어를 실행하기 위해 필요한 여러 가지 하위 작업을 수행하는 고정 배선된 알고리즘을 사용한다. 이러한 하위 작업을 수행하는데 있어서 플래시 메모리 내에서 특정 주소 또는 데이터라인을 래칭(latching)하고 릴리싱(releasing) 하는 기본적인 동작을 수행하는 것이 자주 필요하다. 이러한 기본적인 동작은 상태 머신이 고정 배선된 로직 디바이스로 구현된다면 상태 머신 자체적으로 수행될 수 있으며, 또는 상태 머신에 부착되고 상태 머신에 의해 제어되는 내장형 마이크로시퀀서(microsequencer)에 의해 수행될 수 있다. 내장형 마이크로시퀀서는 기설정되고 내부적으로 저장된 마이크로코드(microcode)를 실행하여 외부 프로세서의 기설정된 명령어를 실행하는데 필요한 기본적인 동작을 수행한다.
도 1은 기설정된 기록 사이클이 종래의 상태 머신에 의해 명령어로서 해석되는 종래의 방법을 예를 들어 설명하고 있다. 도면에서 보는 바와 같이, 외부 프로세서는 종래의 플래시 메모리 디바이스에 삭제 명령어 시퀀스를 기록함으로써 플래시 메모리 디바이스로부터 데이터를 삭제할 수 있다. 삭제 명령어 시퀀스는 삭제 설정 명령어(101)로 해석되는 제 1 기설정된 기록 사이클과, 후속하는 삭제 확인 명령어(102)로 해석되는 제 2 기설정된 기록 사이클을 포함한다. 이와 유사하게, 외부 프로세서는 플래시 메모리 디바이스에 프로그래밍 명령어 시퀀스를 기록함으로써 플래시 메모리 디바이스에 데이터를 프로그래밍 할 수 있다. 프로그래밍 명령 시퀀스는 프로그래밍 설정 명령어(110)로 해석되는 제 3 기설정된 기록 사이클과 후속하는 프로그래밍 확인 명령어(111)로 해석되는 제 4 기설정된 기록 사이클을 포함한다.
도 2는 플래시 메모리 디바이스 명령어가 발행되고 플래시 메모리 디바이스에 의해 하나 또는 그 이상의 기록 사이클에서 해석될 수 있는 향상된 방법을 도시한 도면이다. 도 3에 도시된 플래시 메모리 디바이스(300)와 같이 향상된 플래시 메모리 디바이스는 외부 프로세서로부터 전달된 기록 사이클을 수신하고 일반적인(generic) 명령어(220)로 해석한다. 플래시 메모리 디바이스(300)에 의해 하나 또는 그 이상의 특정 플래시 메모리 명령어로 해석되는 데이터를 포함하는 하나 또는 그 이상의 연속적인 기록 사이클이 일반적인 명령어(220)를 후속할 수 있다. 특히, 일반적인 명령어(220)에 대한 기록 사이클을 후속하는 기록 사이클의 개수 또는 바이트 카운트(221)로 해석될 수 있는 기록 사이클, 일반적인 명령어(220) 내에서 내장된 특정 플래시 메모리 명령어(222-224)로 해석될 수 있는 하나 또는 그 이상의 기록 사이클, 그리고 확인 명령어(225)로 해석될 수 있는 기록 사이클이 후속할 수 있다. 확인 명령어(225)는 특정 플래시 메모리 명령어(222-224)의 전달을 확인하고 특정 플래시 메모리 명령어(222-224)의 해석과 실행을 개시하는데 사용될 수 있다. 특정 플래시 메모리 명령어(222-224)는 삭제 명령어 또는 프로그래밍 명령어와 같은 지시 명령어(command instruction) 또는 명령어 시퀀스 뿐만 아니라 플래시 메모리 디바이스(300)에 저장되는 어드레스 데이터 또는 원 데이터(raw data)와 같이 지시 명령어 또는 명령어 시퀀스에 관계된 임의의 데이터를 포함한다.
도 3을 참조하면, 플래시 메모리 디바이스(300)는 외부 프로세서 또는 제어기로부터 기록 사이클을 수신하고 기록 사이클을 도 2에 도시된 일반적인 명령어(220)로 해석하도록 설정될 수 있는 상태 머신(310)을 포함한다. 일반적인 명령어(220)를 식별하면, 상태 머신(310)은 제 2 기록 사이클을 수신하고 제 2 기록 사이클을 버퍼(314)에 저장되는 연속적인 기록 사이클의 개수(N)를 나타내는 바이트 카운트(221)(도 2 참조)로 해석하도록 설정될 수 있다. 상태 머신(310)은 외부 프로세서로부터 다음 N개의 기록 사이클을 수신하여 버퍼(314)에 저장할 수 있도록 다르게 설정될 수 있다. 마지막으로, 상태 머신(310)은 외부 프로세서로부터 최후 기록 사이클을 수신하도록 설정될 수 있다.
상태 머신(310)이 최후 기록 사이클을 확인 명령어(225)(도 2 참조)로 해석하면, 상태 머신(310)은 차례로 버퍼(314)에 저장된 데이터를 특정 플래시 메모리 명령어(222-224)로서 검색하고 해석하여 실행한다. 그 전에, 플래시 메모리 명령어(222-224)는 삭제 또는 프로그래밍 지시와 같은 지시 명령어로 해석될 수 있으며, 어드레스 데이터와 원 데이터와 같은 지시 명령어에 연관된 데이터로 해석될 수 있다. 그러나 상태 머신(310)이 최후 기록 사이클을 확인 명령어(225)로 해석하지 않으면, 상태 머신(310)은 상태 레지스터(313)에 에러 메시지를 기록하고 버퍼(314)의 내용을 삭제하거나 무시하도록 설정될 수 있다.
플래시 메모리 디바이스(300)는 복수의 제어 라인(301), 어드레스 라인(302), 그리고 플래시 메모리 디바이스(300)가 외부 디바이스 제어기 또는 프로세서(도시 안됨)와 통신하고 데이터를 공유할 수 있도록 하는 데이터 라인(303)을 포함한다. 외부 프로세서 또는 제어기는 상태 머신(310)에 의해 명령어로 해석되는 기록 사이클의 형태로 플래시 메모리 디바이스(300)에게 명령어를 발행하고 상태 레지스터(313) 내의 발행된 명령어의 상태를 감시할 수 있다.
외부 프로세서와 플래시 메모리 디바이스(300) 사이에서의 데이터의 흐름은입력/출력(I/O) 제어 로직(312)에 의해 제어될 수 있다. I/O 제어 로직(312)은 제어 라인(301)에 의해 제어되며, 입력 버퍼(320) 또는 출력 버퍼(321)가 디바이스 데이터 라인(303)을 통하여 외부 프로세서에 선택적으로 연결되도록 설정될 수 있다. 제어 라인(301)의 상태에 따라서, I/O 제어 로직(312)은 입력 버퍼(320)가 데이터 라인(303)으로부터의 데이터를 래칭하도록 하거나 데이터 라인(303) 상에 출력 버퍼(321)로부터의 데이터를 어서트(assert)하도록 한다.
상태 머신(310)은 부분적으로 제어 라인(301)에 의해서도 제어된다. 특정 제어 상태에서, 상태 머신(310)은 입력 버퍼(320)를 통하여 외부 프로세서로부터 기록 사이클을 수신하고 기록 사이클을 명령어로 해석하도록 설정될 수 있다. 해석된 명령어는 삭제와 프로그래밍 명령어와 같은 특정 플래시 메모리 지시 명령어일 수 있으며, 또는 도 2에 도시된 일반적인 명령어(220)일 수 있다. 어떠한 경우에도 수신된 기록 사이클과 해석된 명령어는 종국적으로 플래시 메모리 어레이(330)에 기록되는 원 데이터를 포함할 수 있다. 입력 버퍼(320)로부터 기록 사이클을 수신하는 것과 더불어 상태 머신(310)은 특정 상태에서 어드레스 래치(340)로부터 어드레스 데이터를 수신하도록 설정될 수 있다.
상태 머신(310)은 자신의 상태 머신 알고리즘에 따라 외부 프로세서로부터 수신된 기록 사이클을 명령어로 해석하고 명령어를 실행하도록 설정된다. 상태 머신 알고리즘은 상태 머신(310)이 자체적으로 외부 프로세서의 명령어를 실행하는데 필요한 여러 가지 작업을 수행하도록 한다. 이로써 외부 프로세서는 플래시 메모리 디바이스(300)에 내부적인 디바이스 특정 작업을 제어해야 하는 부담을 덜게 된다. 예를 들어, 상태 머신 알고리즘은 플래시 메모리 디바이스(300)에 대해 내부적이며 외부 프로세서의 명령어를 실행하는데 필요한 여러 가지 버스 동작을 외부 프로세서가 수행하거나 감시해야 하는 것으로부터 자유롭게 한다.
상태 머신(310)은 외부 프로세서로부터의 기설정된 기록 사이클을 플래시 메모리 명령어로 해석하도록 설정된 고정 배선된 로직 디바이스로서 구현될 수 있다. 고정 배선된 로직 디바이스는 해석된 명령어를 프로세싱 하도록 다르게 설정될 수 있다. 이와 달리, 고정 배선된 로직 디바이스는 기능적으로 마이크로시퀀서에 접속되며 해석된 명령어를 프로세싱하도록 마이크로시퀀서에 신호하도록 설정될 수 있다. 일 실시예에서, 상태 머신(310)은 마이크로시퀀서(311)에 기능적으로 접속된 로직 디바이스로 설정된다. 이 실시예에서 상태 머신(310)은 마이크로시퀀서(311)가 마이크로코드의 기설정된 소스를 인출하고 실행하도록 신호할 수 있어 상태 머신(310)에 의해 명령어로 해석된 기록 사이클을 프로세싱한다. 마이크로코드의 기설정된 소스는 플래시 메모리 디바이스(300) 내의 비휘발성 메모리에 저장될 수 있다. 비휘발성 메모리는 플래시 메모리 어레이(330)의 일부이거나 또는 단독의 전용 마이크로코드 플래시 메모리 어레이(335)일 수 있다. 일 실시예에서 비휘발성 메모리는 전용 마이크로코드 플래시 메모리 어레이(335)이다.
상태 머신(310)은 마이크로시퀀서(311)와 마이크로 메모리 어레이(335)에 저장된 마이크로코드와 함께 자체적으로 외부 프로세서로부터의 명령어를 프로세싱하기 위해 필요한 여러 가지 기본적인 동작을 수행한다. 이러한 기본적인 동작의 예에는 입력 버퍼(320)로부터의 데이터를 데이터 레지스터(343)에 기록하는 동작, 어드레스 래치(343)에 데이터를 기록하거나 어드레스 래치(343)로부터 데이터를 수신하는 동작, 어드레스 카운터(323)를 증가시키는 동작, 데이터 레지스터(343)로부터의 데이터를 플래시 메모리 어레이(330)의 호출된(addressed) 셀에 기록하는 동작, 플래시 메모리 어레이(330)의 호출된 셀로부터의 데이터를 출력 버퍼(321)에 기록하는 동작, 그리고 상태 레지스터(313)로부터의 데이터를 출력 버퍼(321)에 기록하는 동작을 포함하지만 이에 한정되지 않는다.
상태 머신(310)은 마이크로시퀀서(311)와 마이크로코드 메모리 어레이(335) 내에 저장된 마이크로코드와 함께 그의 내부 알고리즘의 다양한 상태와 단계에서 플래시 메모리 디바이스(300)의 여러 가지 소자로부터 데이터를 판독하거나 소자에 데이터를 기록할 수 있다. 예를 들어 어떤 상태에서 상태 머신(310)은 입력 버퍼(320)에 의해 래칭된 데이터를 버퍼(314) 또는 데이터 레지스터(343) 중 하나에 기록하도록 마이크로시퀀서(311)에 신호할 수 있다. 상태 머신(310)은 데이터 레지스터(343)로부터의 데이터를 플래시 메모리 어레이(330)의 호출된 셀에 선택적으로 접속된 센스 증폭기(322)에 기록하도록 마이크로시퀀서(311)에 신호할 수 있다. 또한 상태 머신(310)은 어드레스 카운터(323) 또는 상태 레지스터(313)에 데이터를 기록하거나 어드레스 카운터(323) 또는 상태 레지스터(313)로부터 데이터를 수신하도록 마이크로시퀀서(311)에 신호할 수 있다. 데이터를 프로그래밍하거나 삭제하기 위해 어떤 상태에서 상태 머신은 온 또는 오프 위치에서 프로그래밍/삭제 스위치(324)를 토글(toggle)하도록 마이크로시퀀서(311)에 신호할 수 있다. 이와 유사하게, 어떤 상태에서 상태 머신(310)은 상태 레지스터(313), 상태 인식 레지스터(341), 또는 플래시 메모리 어레이(330)의 현재 호출된 소자로부터의 데이터를 출력 버퍼(321)에 기록하도록 마이크로시퀀서(311)에 신호할 수 있다. 출력 버퍼(321)에 의해 래칭된 데이터는 데이터 라인(303)을 통하여 외부 프로세서에 의해 연속적으로 판독된다.
도 2를 참조하여 개시된 바와 같이, 상태 머신(310)이 기록 사이클을 일반적인 명령어(220)로 해석하고 저장하며 이후 후속하는 기록 사이클로부터의 데이터를 복수의 특정 플래시 메모리 명령어(222-224)로 해석하도록 설계되어 있으므로 종래 기술에 비해 몇 가지 장점을 얻을 수 있다. 특히, 외부 프로세서가 특정 명령어 시퀀스(예를 들어, 도 1에 도시된 삭제 명령어 시퀀스와 프로그래밍 명령어 시퀀스) 내에 둘 이상의 별개의 명령어를 발행할 것을 필요로 하는 모든 종래의 플래시 메모리 디바이스의 기능들은 외부 프로세서에 의해 발행될 수 있는 하나의 일반적인 명령어(220)로 통합될 수 있다. 그러면, 상태 머신(310)에 의해 연속적인 기록 사이클로부터의 데이터는 버퍼(314)에 기록되고 삭제 명령어 및 삭제 확인 명령어와 같은 특정 플래시 메모리 명령어로서 해석되고 실행될 수 있다.
플래시 메모리 디바이스(300)에 이러한 기능을 추가하기 위하여 플래시 메모리 디바이스(300)는 특정 플래시 메모리 명령어와, 상태 머신(310)과 마이크로시퀀서(311)가 제 1 기록 사이클을 일반적인 명령어(220)로 해석하고, 제 2 기록 사이클을 버퍼(314)에 저장되는 연속적인 기록 사이클의 개수로 해석하며, 버퍼(314)에 연속적인 기록 사이클을 저장하고, 연속적으로 특정 플래시 메모리 명령어로서 버퍼(314)에 저장된 기록 사이클을 검색, 해석, 그리고 실행하도록 하는 마이크로코드를 보유하도록 설정된 버퍼(314)를 포함한다. 버퍼(314)는 데이터를 저장할 수 있는 임의의 형태의 메모리 일 수 있고, 플래시 메모리 어레이(330) 자체일 수도 있다. 일 실시예에서, 버퍼(314)는 상태 머신(310) 내의 랜덤 액세스 메모리이다. 기록 사이클을 일반적인 명령어(220)로 해석하고 연속하는 기록 사이클을 특정 플래시 메모리 명령어로서 저장, 검색, 해석, 그리고 실행하는 마이크로코드는 마이크로코드 메모리 어레이(335)에 저장될 수 있다.
상태 머신(310)과 마이크로시퀀서(311)는 기설정된 상태 머신 알고리즘을 실행하기 위해 고정 배선되거나, 연관된 상태 머신 프로그래밍을 수행하기 위한 마이크로제어기로서 유연하게 구성될 수 있다. 상태 머신(310)과 마이크로시퀀서(311)가 고정 배선되면, 이들은 항상 주어진 또는 기설정된 기록 사이클을 동일한 플래시 메모리 명령어로 해석한다.
본 발명의 또 다른 장점은 상태 머신(310)과 마이크로시퀀서(311)를 상태 머신 프로그램을 실행하도록 설정된 마이크로제어기로 구현함으로써 성취될 수 있다. 특히, 상태 머신 프로그램이 그 자체로 마이크로코드 메모리 어레이(335)에 저장될 수 있으므로 상태 머신(310)과 마이크로시퀀서(311)를 마이크로제어기로 구현하면 플래시 메모리 디바이스(300)의 설계 오류가 발견되거나 플래시 메모리 디바이스(300)에 대한 새로운 기능이 개발되는 것에 맞추어 상태 머신(310)과 마이크로시퀀서(311)를 보충하거나 변경할 수 있게 된다. 본 발명의 이러한 측면은 상태 머신(310)과 마이크로시퀀서(311)에 대해 새로운 기능이 플래시 메모리 디바이스(300)에 대한 실리콘이 설계되고 개발된 지 오랜 시간이 지난 후에도 플래시 메모리 디바이스(300)를 설계하는데 시간 또는 비용을 많이 추가하지 않고 개발될 수 있도록 한다.
상태 머신(310)과 마이크로시퀀서(311)가 상태 머신 프로그램을 수행하도록 설정된 마이크로제어기로 구현되면, 상태 머신(310)은 마이크로코드 메모리 어레이(335)에 로딩된 현재의 상태 머신 프로그램에 따라, 외부 프로세서로부터의 주어진 또는 기설정된 기록 사이클을 복수의 플래시 메모리 명령어 중 임의의 것으로 해석하도록 프로그래밍 될 수 있다. 기설정된 기록 사이클로부터 해석된 플래시 메모리 명령어는 마이크로코드 메모리 어레이(335)에 저장된 상태 머신 프로그램에 따라 프로그래밍이 가능하게 업데이트 될 수 있다고 말할 수 있다.
본 발명의 여러 가지 실시예가 기술되었다. 그럼에도 불구하고, 본 발명의 사상과 범위를 벗어나지 않으면서 다양한 수정이 이루어질 수 있음은 자명할 것이다.

Claims (17)

  1. 플래시 메모리 디바이스에 있어서,
    특정 플래시 메모리 명령어 또는 상기 플래시 메모리 디바이스에 기록된 데이터를 하나 또는 그 이상의 기록 사이클에 저장하도록 설정된 버퍼와,
    상기 버퍼와 접속되고 제 1 기록 사이클을 일반적인(generic) 명령어로 해석하고 상기 버퍼에 하나 또는 그 이상의 연속하는 기록 사이클로부터의 데이터를 저장하며, 최후 기록 사이클을 확인 명령어로 해석하면 상기 버퍼 내에서 상기 데이터를 하나 또는 그 이상의 특정 플래시 메모리 명령어로서 연속적으로 검색, 해석, 그리고 실행하도록 설정된 상태 머신(state machine)과,
    상기 상태 머신과 기능적으로 접속되고 상기 하나 또는 그 이상의 특정 플래시 메모리 명령어로 지시된 원 데이터(raw data)를 저장하고 검색하도록 설정된 플래시 메모리 어레이를 포함하는
    플래시 메모리 디바이스.
  2. 제 1 항에 있어서,
    비휘발성 메모리와,
    상기 상태 머신과 기능적으로 접속되고 상기 상태 머신으로부터 수신된 신호에 응답하여 상기 비휘발성 메모리에 저장된 마이크로코드를 인출하고 실행하도록설정된 마이크로시퀀서(microsequencer)를 더 포함하는
    플래시 메모리 디바이스.
  3. 제 2 항에 있어서,
    상기 비휘발성 메모리는 상기 플래시 메모리 어레이인
    플래시 메모리 디바이스.
  4. 제 2 항에 있어서,
    상기 상태 머신과 상기 마이크로시퀀서는 고정 배선되어 기설정된 기록 사이클을 항상 동일한 플래시 메모리 명령어로 해석하는
    플래시 메모리 디바이스.
  5. 제 2 항에 있어서,
    상기 상태 머신과 상태 마이크로시퀀서는 상태 머신 프로그램을 실행하도록 설정된 마이크로제어기로 설정된
    플래시 메모리 디바이스.
  6. 제 5 항에 있어서,
    상기 상태 머신 프로그램은 상기 비휘발성 메모리에 저장되는
    플래시 메모리 디바이스.
  7. 제 6 항에 있어서,
    상기 상태 머신 프로그램은 업데이트가 가능하며, 상기 상태 머신은 기설정된 기록 사이클을 프로그래밍이 가능하게 업데이트 될 수 있는 플래시 메모리 명령어로 해석되도록 설정된
    플래시 메모리 디바이스.
  8. 플래시 메모리 명령어 추상화(abstraction) 방법에 있어서,
    제 1 기록 사이클에서 수신된 데이터를 일반적인 플래시 메모리 명령어로 해석하는 단계와,
    제 2 기록 사이클에서 수신된 데이터를 특정 플래시 메모리 명령어로서 저장되는 N개의 연속하는 기록 사이클로 해석하는 단계와,
    상기 N개의 연속하는 기록 사이클을 수신하고 버퍼에 저장하는 단계와,
    확인 명령어로 해석될 수 있는 최후 기록 사이클을 수신하면 상기 버퍼에 저장된 상기 N개의 특정 플래시 메모리 명령어를 검색, 해석, 그리고 실행하는 단계를 포함하는
    플래시 메모리 명령어 추상화 방법.
  9. 제 8 항에 있어서,
    확인 명령어로 해석될 수 없는 최후 기록 사이클을 수신하면 에러 메시지를 출력하고 상기 버퍼에 저장된 상기 N개의 특정 플래시 메모리 명령어를 삭제하는 단계를 더 포함하는
    플래시 메모리 명령어 추상화 방법.
  10. 제 8 항에 있어서,
    확인 명령어로 해석될 수 없는 최후 기록 사이클을 수신하면 에러 메시지를 출력하고 상기 버퍼에 저장된 상기 N개의 특정 플래시 메모리 명령어를 무시하는 단계를 더 포함하는
    플래시 메모리 명령어 추상화 방법.
  11. 제 8 항에 있어서,
    상기 제 2 기록 사이클로부터 해석된 기록 사이클의 개수(N)가 상기 버퍼에 저장될 수 있는 플래시 메모리 명령어의 수보다 클 때 에러 메시지를 출력하는 단계를 더 포함하는
    플래시 메모리 명령어 추상화 방법.
  12. 제 8 항에 있어서,
    현재 로딩된 상태 머신 프로그램에 따라 기록 사이클을 프로그래밍이 가능하게 업데이트 될 수 있는 플래시 메모리 명령어로 해석하도록 상태 머신 프로그램을 실행하는 마이크로제어기를 사용하는 단계를 더 포함하는
    플래시 메모리 명령어 추상화 방법.
  13. 기계 판독이 가능한 매체 상에 구현된 컴퓨터 프로그램 제품에 있어서,
    상기 컴퓨터 프로그램 제품은 프로그래밍이 가능한 마이크로제어기가
    제 1 기록 사이클에서 수신된 데이터를 일반적인 플래시 메모리 명령어로 해석하고,
    제 2 기록 사이클에서 수신된 데이터를 특정 플래시 메모리 명령어로 저장되는 N개의 연속적인 기록 사이클로 해석하고,
    상기 N개의 연속적인 기록 사이클을 수신하고 버퍼에 저장하고,
    확인 명령어로 해석될 수 있는 최후 기록 사이클을 수신하면 상기 버퍼 내에 저장된 상기 N개의 특정 플래시 메모리 명령어를 검색, 해석, 그리고 실행하도록 하는 동작 가능한 명령어를 포함하는
    컴퓨터 프로그램 제품.
  14. 제 13 항에 있어서,
    확인 명령어로 해석될 수 없는 최후 기록 사이클을 수신하면 상기 프로그래밍이 가능한 마이크로제어기가 오류 메시지를 출력하고 상기 버퍼에 저장된 상기 N개의 특정 플래시 메모리 명령어를 삭제하도록 하는 동작 가능한 명령어를 더 포함하는
    컴퓨터 프로그램 제품.
  15. 제 13 항에 있어서,
    확인 명령어로 해석될 수 없는 최후 기록 사이클을 수신하면 상기 프로그래밍이 가능한 마이크로제어기가 오류 메시지를 출력하고 상기 버퍼에 저장된 상기 N개의 특정 플래시 메모리 명령어를 무시하도록 하는 동작 가능한 명령어를 더 포함하는
    컴퓨터 프로그램 제품.
  16. 제 13 항에 있어서,
    상기 제 2 기록 사이클에서 해석된 기록 사이클의 개수(N)가 상기 버퍼에 저장될 수 있는 플래시 메모리 명령어의 수보다 클 때 상기 프로그래밍이 가능한 마이크로제어기가 오류 메시지를 출력하도록 하는 동작 가능한 명령어를 더 포함하는
    컴퓨터 프로그램 제품.
  17. 제 13 항에 있어서,
    상기 프로그래밍이 가능한 마이크로제어기는 수신된 기록 사이클을 프로그래밍이 가능하게 업데이트 될 수 있는 플래시 메모리 명령어로 해석하는 동작 가능한 명령어를 더 포함하는
    컴퓨터 프로그램 제품.
KR1020047010520A 2002-01-04 2002-12-31 플래시 메모리 디바이스, 플래시 메모리 명령어 추상화방법 및 컴퓨터 프로그램 제품 KR100549910B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/038,754 US6772276B2 (en) 2002-01-04 2002-01-04 Flash memory command abstraction
US10/038,754 2002-01-04
PCT/US2002/041741 WO2003058639A1 (en) 2002-01-04 2002-12-31 Flash memory access using a plurality of command cycles

Publications (2)

Publication Number Publication Date
KR20040075051A true KR20040075051A (ko) 2004-08-26
KR100549910B1 KR100549910B1 (ko) 2006-02-06

Family

ID=21901701

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020047010520A KR100549910B1 (ko) 2002-01-04 2002-12-31 플래시 메모리 디바이스, 플래시 메모리 명령어 추상화방법 및 컴퓨터 프로그램 제품

Country Status (6)

Country Link
US (1) US6772276B2 (ko)
KR (1) KR100549910B1 (ko)
CN (1) CN100446126C (ko)
AU (1) AU2002367380A1 (ko)
MY (1) MY127778A (ko)
WO (1) WO2003058639A1 (ko)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI224259B (en) * 2003-09-08 2004-11-21 Via Tech Inc Method and related apparatus for clearing data in a memory device
US8082382B2 (en) * 2004-06-04 2011-12-20 Micron Technology, Inc. Memory device with user configurable density/performance
US7639764B2 (en) 2005-08-17 2009-12-29 Atmel Corporation Method and apparatus for synchronizing data between different clock domains in a memory controller
US7600090B2 (en) * 2005-11-28 2009-10-06 Atmel Corporation Microcontroller based flash memory digital controller system
US7574611B2 (en) * 2005-11-28 2009-08-11 Atmel Corporation Command decoder for microcontroller based flash memory digital controller system
WO2007076492A2 (en) * 2005-12-28 2007-07-05 Sandisk Corporation Methods and systems for writing non-volatile memories for increased endurance
US20070150644A1 (en) * 2005-12-28 2007-06-28 Yosi Pinto System for writing non-volatile memories for increased endurance
US7702935B2 (en) * 2006-01-25 2010-04-20 Apple Inc. Reporting flash memory operating voltages
US7861122B2 (en) * 2006-01-27 2010-12-28 Apple Inc. Monitoring health of non-volatile memory
US7702885B2 (en) 2006-03-02 2010-04-20 Atmel Corporation Firmware extendable commands including a test mode command for a microcontroller-based flash memory controller
US8140738B2 (en) * 2006-07-20 2012-03-20 Stmicroelectronics Pvt. Ltd. Flash memory interface device
KR100865816B1 (ko) 2007-02-26 2008-10-28 주식회사 하이닉스반도체 불휘발성 메모리 소자의 프로그램 방법
US20080288712A1 (en) 2007-04-25 2008-11-20 Cornwell Michael J Accessing metadata with an external host
US7913032B1 (en) 2007-04-25 2011-03-22 Apple Inc. Initiating memory wear leveling
US8732350B2 (en) * 2008-12-19 2014-05-20 Nvidia Corporation Method and system for improving direct memory access offload
US9208108B2 (en) * 2008-12-19 2015-12-08 Nvidia Corporation Method and system for improved flash controller commands selection
US8694750B2 (en) * 2008-12-19 2014-04-08 Nvidia Corporation Method and system for data structure management
TWI394047B (zh) 2009-06-26 2013-04-21 Silicon Motion Inc 快閃記憶裝置、快閃記憶裝置操作方法、以及資料儲存系統
US8683293B2 (en) * 2009-12-16 2014-03-25 Nvidia Corporation Method and system for fast two bit error correction
US20110161553A1 (en) * 2009-12-30 2011-06-30 Nvidia Corporation Memory device wear-leveling techniques
US9594675B2 (en) * 2009-12-31 2017-03-14 Nvidia Corporation Virtualization of chip enables
US9465728B2 (en) 2010-11-03 2016-10-11 Nvidia Corporation Memory controller adaptable to multiple memory devices
US9348774B2 (en) * 2013-01-25 2016-05-24 Seagate Technology Llc Controller-opaque communication with non-volatile memory devices
US9430220B2 (en) * 2014-07-22 2016-08-30 GM Global Technology Operations LLC Method, medium, and apparatus for re-programming flash memory of a computing device
US10108374B2 (en) 2016-07-12 2018-10-23 Nxp Usa, Inc. Memory controller for performing write transaction with stall when write buffer is full and abort when transaction spans page boundary
WO2018231313A1 (en) 2017-06-12 2018-12-20 Sandisk Technologies Llc Multicore on-die memory microcontroller
US10628049B2 (en) * 2017-07-12 2020-04-21 Sandisk Technologies Llc Systems and methods for on-die control of memory command, timing, and/or control signals
US10824376B2 (en) 2017-12-08 2020-11-03 Sandisk Technologies Llc Microcontroller architecture for non-volatile memory
US10622075B2 (en) 2017-12-12 2020-04-14 Sandisk Technologies Llc Hybrid microcontroller architecture for non-volatile memory
CN110310691B (zh) * 2018-03-27 2023-06-30 爱思开海力士有限公司 存储器系统中的工作负载预测及其方法
CN109324828B (zh) * 2018-09-21 2023-06-02 山东华芯半导体有限公司 一种在验证平台中实现闪存多命令并行执行的方法
US10777240B1 (en) 2019-03-07 2020-09-15 Sandisk Technologies Llc Efficient control of memory core circuits
US10971199B2 (en) 2019-06-20 2021-04-06 Sandisk Technologies Llc Microcontroller for non-volatile memory with combinational logic
US11507498B2 (en) 2020-03-05 2022-11-22 Sandisk Technologies Llc Pre-computation of memory core control signals
US11188268B1 (en) 2020-05-28 2021-11-30 Western Digital Technologies, Inc. Programmable processor in an integrated memory assembly

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5224212A (en) * 1989-05-01 1993-06-29 Motorola, Inc. Asynchronous operation in a database management system
US5546561A (en) 1991-02-11 1996-08-13 Intel Corporation Circuitry and method for selectively protecting the integrity of data stored within a range of addresses within a non-volatile semiconductor memory
US5537627A (en) * 1993-09-08 1996-07-16 Hilevel Technology, Inc. Microprogrammable processor capable of accessing unused portions of control store as fast data memory
US5696917A (en) * 1994-06-03 1997-12-09 Intel Corporation Method and apparatus for performing burst read operations in an asynchronous nonvolatile memory
US5491660A (en) * 1994-11-18 1996-02-13 Texas Instruments Incorporated On-chip operation control for memories
GB2291991A (en) * 1995-09-27 1996-02-07 Memory Corp Plc Disk drive emulation with a block-erasable memory
US5905902A (en) 1995-09-28 1999-05-18 Intel Corporation Programmable state machine employing a cache-like arrangement
US5719880A (en) * 1996-09-20 1998-02-17 Texas Instruments Incorporated, A Delaware Corporation On-chip operation for memories
JP3792823B2 (ja) * 1997-02-28 2006-07-05 キヤノン株式会社 印刷装置及び印刷制御装置
US5848026A (en) * 1997-12-08 1998-12-08 Atmel Corporation Integrated circuit with flag register for block selection of nonvolatile cells for bulk operations
US6349363B2 (en) * 1998-12-08 2002-02-19 Intel Corporation Multi-section cache with different attributes for each section
US6205084B1 (en) * 1999-12-20 2001-03-20 Fujitsu Limited Burst mode flash memory
US6553491B1 (en) * 1999-12-29 2003-04-22 Intel Corporation Configuring devices in a computer system
JP3871184B2 (ja) 2000-06-12 2007-01-24 シャープ株式会社 半導体記憶装置
WO2002067268A1 (en) 2001-02-20 2002-08-29 Micron Technology, Inc. Write state machine architecture for flash memory internal instructions

Also Published As

Publication number Publication date
MY127778A (en) 2006-12-29
CN100446126C (zh) 2008-12-24
US6772276B2 (en) 2004-08-03
US20030131185A1 (en) 2003-07-10
KR100549910B1 (ko) 2006-02-06
CN1613120A (zh) 2005-05-04
WO2003058639A1 (en) 2003-07-17
AU2002367380A1 (en) 2003-07-24

Similar Documents

Publication Publication Date Title
KR100549910B1 (ko) 플래시 메모리 디바이스, 플래시 메모리 명령어 추상화방법 및 컴퓨터 프로그램 제품
US8316174B2 (en) Microcontroller based flash memory digital controller system
JPS63145531A (ja) マイクロプロセッサ
JP2004118826A (ja) フラッシュメモリを用いてブーティングされるシステム装置及びそのブーティング方法
JP3699890B2 (ja) 不揮発性半導体記憶装置
JPH10161988A (ja) フラッシュeeprom内蔵マイクロコンピュータ
US20050015541A1 (en) Memory device controller
US5950222A (en) Microcomputer using a non-volatile memory
JPH0926883A (ja) 集積回路の使用状態投入のための装置
JP2003044303A (ja) コンピュータ装置
JP6255282B2 (ja) 半導体装置
US8825912B2 (en) Dynamic state configuration restore
JP2000066949A (ja) データ記録再生装置およびデータ記録再生装置のメモリアクセス方法
JP4491267B2 (ja) 不揮発性半導体記憶装置
JP2005309839A5 (ko)
JP4042940B2 (ja) オンチップ・プログラミング機能を持つマイクロコントローラ
ITMI20010342A1 (it) Sistema di memoria non volatile per memorizzare valori di dati
JP2008257415A (ja) プログラム書き込み機能を有するコントローラ
JP2008217472A (ja) メモリシステム
US6662279B2 (en) DQ mask to force internal data to mask external data in a flash memory
JPH11353170A (ja) フラッシュメモリ制御装置およびフラッシュメモリ制御装置のメモリアクセス方法
JP3135770B2 (ja) 不揮発性半導体メモリおよびその不揮発性半導体メモリを使用した記憶装置
JP2023150271A (ja) 半導体装置、ファームウェア書き込み方法及びファームウェア書き込みシステム
JP2008108361A (ja) 不揮発性半導体記憶装置
JP2007122754A (ja) 半導体記憶システム

Legal Events

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

Payment date: 20130104

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140103

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20141230

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20160104

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20170102

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee