KR100528482B1 - 데이타를 섹터 단위로 랜덤하게 입출력할 수 있는 플래시메모리 시스템 - Google Patents

데이타를 섹터 단위로 랜덤하게 입출력할 수 있는 플래시메모리 시스템 Download PDF

Info

Publication number
KR100528482B1
KR100528482B1 KR10-2003-0101176A KR20030101176A KR100528482B1 KR 100528482 B1 KR100528482 B1 KR 100528482B1 KR 20030101176 A KR20030101176 A KR 20030101176A KR 100528482 B1 KR100528482 B1 KR 100528482B1
Authority
KR
South Korea
Prior art keywords
data
input
circuit
output
address
Prior art date
Application number
KR10-2003-0101176A
Other languages
English (en)
Other versions
KR20050069218A (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 KR10-2003-0101176A priority Critical patent/KR100528482B1/ko
Priority to US10/957,166 priority patent/US7212426B2/en
Priority to JP2004368293A priority patent/JP4744867B2/ja
Publication of KR20050069218A publication Critical patent/KR20050069218A/ko
Application granted granted Critical
Publication of KR100528482B1 publication Critical patent/KR100528482B1/ko
Priority to JP2010228523A priority patent/JP2011018372A/ja

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • 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/08Address circuits; Decoders; Word-line control circuits

Landscapes

  • Read Only Memory (AREA)
  • Memory System (AREA)

Abstract

본 발명은 섹터 단위로 랜덤 데이타 입출력이 가능한 플래시 메모리 시스템에 관한 것이다. 본 발명에 따른 플래시 메모리 시스템은 플래시 메모리(셀 어레이), 버퍼 메모리, 랜덤 데이타 입출력 회로, 그리고 제어회로를 구비한다. 상기 랜덤 데이타 입출력 회로는 상기 버퍼 메모리로부터 섹터 단위로 데이타를 입력받거나 상기 버퍼 메모리에 섹터 단위로 데이타를 출력한다. 상기 제어회로는 상기 버퍼 메모리와 상기 랜덤 데이타 입출력 회로 사이에 입출력 되는 데이타의 순서와 횟수를 섹터 단위로 조정한다.

Description

데이타를 섹터 단위로 랜덤하게 입출력할 수 있는 플래시 메모리 시스템 {FLASH MEMORY SYSTEM CAPABLE OF INPUTTING/OUTPUTTING SECTOR DARA AT RANDOM}
본 발명은 플래시 메모리 시스템에 관한 것으로, 더욱 상세하게는 데이타를 섹터 단위로 랜덤하게 입출력할 수 있는 플래시 메모리 시스템에 관한 것이다.
플래시 메모리(Flash Memory)는 고집적이 가능한 불휘발성 메모리 장치(non-volatile memory)이다. 플래시 메모리는 데이타 보존성이 우수하기 때문에 플래시 메모리 시스템 내에서 메인 메모리로서 사용된다. 플래시 메모리는 기존의 하드 디스크 및 플로피 디스크를 대체할 만한 고집적 대용량 소자로서 주목을 받고 있다. 현재 플래시 메모리는 휴대폰, 디지탈 카메라, MP3 플레이어, 캠코더, PDA 등 휴대형 디지탈 전자기기의 저장매체로 널리 이용되고 있다.
그러나 플래시 메모리는 램(RAM)에 비해 데이타 입출력 속도가 느리다는 단점이 있다. 플래시 메모리의 읽기 및 쓰기 동작에 있어서, 지연시간의 대부분은 페이지 버퍼에 임시로 저장된 데이타를 셀 어레이에 쓰거나 셀 어레이에 저장된 데이타를 페이지 버퍼로 읽어내는데 소모된다.
또한 플래시 메모리는 랜덤 액세스가 불가능하다는 단점이 있다. 랜덤 액세스가 불가능한 플래시 메모리의 단점을 극복하기 위하여 플래시 메모리 시스템 내에 버퍼 메모리를 두어 랜덤 액세스를 지원하는 새로운 방법들이 개발되고 있다.
플래시 메모리 시스템이 랜덤 액세스를 지원하기 위해서는 플래시 메모리에 데이타를 쓰기 전에 또는 호스트에 데이타를 전송하기 전에 데이타를 임시적으로 저장하기 위한 버퍼 메모리가 필요하다. 상기 버퍼 메모리는 랜덤 액세스가 가능한 메모리(예를 들면, DRAM이나 SRAM)이다.
한편, 플래시 메모리는 복수개의 블록들(예를 들면, 1024 Blocks, 2048 Blocks)로 이루어진다. 플래시 메모리에 있어서, 상기 블록은 데이타 소거 동작의 기본 단위이다. 하나의 블록은 복수개의 페이지들(예를 들면, 16 Pages, 32 Pages, 또는 64 Pages)로 이루어진다. 상기 페이지는 데이타 쓰기 및 읽기 동작의 기본 단위이다.
한 페이지의 사이즈는 보통 (512+16)Byte 또는 (2K+64)Byte 이다. 페이지 사이즈가 (2K+64) Byte라 하고 할 때, 상기 2K Byte는 노말 데이타이고, 상기 64 Byte는 부가 데이타이다. 노말 데이타는 메인 영역에 저장되고, 부가 데이타는 스페어 영역에 저장된다. 여기서, 부가 데이타란 노말 데이타를 이용하여 생성된 에러 정정 및 검출 코드 데이타, 어드레스 맵핑 데이타, 그리고 웨어 레벨 데이타 등을 말한다.
플래시 메모리는 페이지 사이즈에 따라 소블록 플래시 메모리와 대블록 플래시 메모리로 나눌 수 있다. 상기 소블록 플래시 메모리는 (512+16) Byte의 페이지 사이즈를 가진다. 상기 대블록 플래시 메모리는 (2K+64) Byte 또는 그 이상의 페이지 사이즈를 가진다.
상기 대블록 플래시 메모리를 사용하면, 상기 소블록 플래시 메모리를 사용할 때보다 데이타 입출력 속도를 증가시킬 수 있다. 같은 용량의 데이타를 쓰거나 읽는데 있어서, 상기 대블록 플래시 메모리를 이용하면 다량의 데이타를 한꺼번에 셀 어레이에 쓰거나 셀 어레이로부터 읽어낼 수 있기 때문이다.
또한 상기 대블록 플래시 메모리를 사용하면 칩 사이즈를 줄일 수 있다. 같은 용량의 플래시 메모리를 구현하는데 있어서, 소블록 플래시 메모리를 여러개 사용하는 것보다 대블록 플래시 메모리를 하나 사용하는 것이 전체 칩 사이즈를 줄이는데 유리하다. 이런 이유로 최근에는 데이타 입출력 동작 속도를 빠르게 하고 칩 사이즈를 줄이기 위해 대블록 플래시 메모리를 주로 사용하고 있다.
그러나 대블록 플래시 메모리는 소블록 플래시 메모리에서 사용하던 제어방식을 그대로 사용할 수 없다. 특히, 에러 정정 및 검출 코드 단위와 스페어 영역 등은 페이지 사이즈에 종속되므로 페이지 사이즈에 맞게 바뀌어야 한다. 따라서 플래시 메모리의 제어 방식은 소블록 및 대블록 플래시 메모리에 따라 각각 다르게 구성되어야 한다. 만약에, 소블록 플래시 메모리에서 사용하던 제어방식을 대블록 플래시 메모리에서 사용하면, 대블록 플래시 메모리에 데이타를 기록하지 않은 영역이 생기기 때문에 데이타 저장 효율이 떨어진다.
본 발명은 상술한 문제점을 해결하기 위하여 제안된 것으로, 본 발명의 목적은 섹터 단위로 랜덤하게 데이타를 입출력 할 수 있는 랜덤 데이타 입출력 회로를 사용하여 소블록 플래시 메모리의 제어방식으로 대블록 플래시 메모리를 제어하는 플래시 메모리 시스템을 제공하는데 있다.
상술한 기술적 과제를 달성하기 위한 본 발명에 따른 플래시 메모리 시스템은, 페이지 단위로 데이타를 저장하는 플래시 메모리와; 섹터 단위로 데이타를 저장하는 버퍼 메모리와; 상기 버퍼 메모리로부터 섹터 단위로 데이타를 입력받거나 상기 버퍼 메모리에 섹터 단위로 데이타를 출력하는, 그리고 상기 플래시 메모리에 페이지 단위로 데이타를 출력하거나 상기 플래시 메모리로부터 페이지 단위로 데이타를 입력받는 랜덤 데이타 입출력 회로와; 그리고 상기 버퍼 메모리와 상기 랜덤 데이타 입출력 회로 사이에 입출력 되는 데이타의 순서와 횟수를 섹터 단위로 조정할 수 있는 제어회로를 포함하는 것을 특징으로 한다.
이 실시예에 있어서, 상기 페이지 단위는, 적어도 하나 이상의 섹터 단위로 구성되는 것을 특징으로 한다.
본 발명에 따른 플래시 메모리 시스템의 다른 일면은, 페이지 단위로 데이타를 저장하는 플래시 메모리와; 섹터 단위로 데이타를 저장하는 버퍼 메모리와; 상기 버퍼 메모리로부터 섹터 단위로 데이타를 입력받거나 상기 버퍼 메모리에 섹터 단위로 데이타를 출력하는, 그리고 상기 플래시 메모리에 페이지 단위로 데이타를 출력하거나 상기 플래시 메모리로부터 페이지 단위로 데이타를 입력받는 랜덤 데이타 입출력 회로와; 커맨드, 버퍼 섹터 카운트, 플래시 섹터 어드레스, 그리고 버퍼 섹터 어드레스에 대한 정보를 저장하는 레지스터와; 상기 레지스터에 저장된 정보들에 응답하여 상기 버퍼 메모리와 상기 랜덤 데이타 입출력 회로 사이에 입출력 되는 데이타의 순서와 횟수를 섹터 단위로 조정하는 스테이트 머신을 포함하는 것을 특징으로 한다.
이 실시예에 있어서, 상기 플래시 메모리 시스템은, 상기 스테이트 머신에 의해 제어되며 상기 플래시 메모리와 상기 버퍼 메모리 사이에 전송되는 데이타의 에러를 정정하는 에러 정정 및 데이타 입출력 회로를 더 포함하는 것을 특징으로 한다.
이 실시예에 있어서, 상기 에러 정정 및 데이타 입출력 회로는, 상기 섹터 단위로 패러티를 생성하는 것을 특징으로 한다.
이 실시예에 있어서, 상기 에러 정정 및 데이타 입출력 회로는, 상기 페이지 단위를 이루는 상기 섹터 단위의 수만큼 에러를 정정하는 것을 특징으로 한다.
이 실시예에 있어서, 상기 플래시 메모리 시스템은, 버스를 통해 호스트에 연결되는, 그리고 상기 호스트로부터 신호를 입력받아서 상기 플래시 메모리 시스템을 동작시키기 위한 내부 신호로 변경하는 호스트 인터페이스를 더 포함하는 것을 특징으로 한다.
이 실시예에 있어서, 상기 호스트 인터페이스는, NOR 플래시 메모리의 인터페이스 방식을 갖는 것을 특징으로 한다.
이 실시예에 있어서, 상기 호스트 인터페이스는, 상기 버퍼 메모리의 인터페이스 방식을 갖는 것을 특징으로 한다.
이 실시예에 있어서, 상기 플래시 메모리, 상기 버퍼 메모리, 상기 랜덤 데이타 입출력 회로, 상기 레지스터, 상기 스테이트 머신, 상기 에러 정정 및 데이타 입출력 회로, 그리고 상기 호스트 인터페이스는 단일 칩으로 이루어지는 것을 특징으로 한다.
이 실시예에 있어서, 상기 플래시 메모리는, 메인 영역과 스페어 영역으로 구분되며, 상기 메인 영역에는 노말 데이타가 저장되고, 상기 스페어 영역에는 상기 노말 데이타와 관련된 부가 데이타가 저장되는 것을 특징으로 한다.
이 실시예에 있어서, 상기 메인 영역과 스페어 영역은, 각각 섹터 단위를 이루는 것을 특징으로 한다.
이 실시예에 있어서, 상기 버퍼 메모리는, 랜덤 액세스가 가능한 메모리(RAM)인 것을 특징으로 한다. 여기서, 상기 램은, 에스램(SRAM) 또는 디램(DRAM)인 것을 특징으로 한다.
이 실시예에 있어서, 상기 페이지 단위는, 적어도 하나 이상의 섹터 단위로 구성되는 것을 특징으로 한다.
이 실시예에 있어서, 상기 버퍼 메모리와 상기 랜덤 데이타 입출력 회로 사이에 섹터 단위로 입출력 되는 데이타의 횟수는, 상기 섹터 단위의 수인 것을 특징으로 한다.
이 실시예에 있어서, 상기 랜덤 데이타 입출력 회로는, 상기 플래시 메모리에 출력될 또는 상기 플래시 메모리로부터 입력받은 데이타를 저장하는 래치회로와; 상기 스테이트 머신으로부터 제어신호를 입력받아서 내부 제어신호를 출력하는, 그리고 상기 스테이트 머신 및 상기 버퍼 메모리로부터 데이타를 입력받아서 커맨드, 어드레스, 그리고 데이타를 출력하는 입출력 버퍼와; 상기 입출력 버퍼로부터 커맨드를 입력받아서 리셋신호들을 출력하는 커맨드 입력회로와; 상기 입출력 버퍼로부터 내부 제어신호를 입력받아서 열 어드레스 셋팅 펄스(c1, c2) 및/또는 행 어드레스 셋팅 펄스(r1, r2)를 출력하는 어드레스 셋팅 펄스 발생회로와; 상기 어드레스 셋팅 펄스 발생회로로부터 열 및/또는 행 어드레스 셋팅 펄스를 입력받아서 열 및 행 어드레스를 출력하는, 상기 열 어드레스를 소정의 사이클 수만큼 순차적으로 증가하는, 그리고 상기 커맨드 입력회로로부터 리셋신호를 입력받아서 상기 열 어드레스를 초기화하는 어드레스 카운터와; 상기 어드레스 카운터로부터 열 어드레스를 입력받아서 상기 래치회로에 섹터 선택 신호를 출력하는 선택회로와; 그리고 상기 입출력 버퍼로부터 데이타를 입력받아서 상기 래치회로에 데이타를 출력하는, 그리고 상기 래치회로로부터 데이타를 입력받아서 상기 입출력 버퍼에 데이타를 출력하는 데이타 입출력 회로를 포함하는 것을 특징으로 한다.
이 실시예에 있어서, 상기 래치회로는, 상기 커맨드 입력회로로부터 리셋신호를 입력받아서 초기화되는 것을 특징으로 한다.
이 실시예에 있어서, 상기 커맨드 입력회로, 상기 어드레스 셋팅 펄스 발생회로, 그리고 상기 데이타 입출력 회로는 상기 내부 제어신호의 조합에 의해 활성화되는 것을 특징으로 한다.
이 실시예에 있어서, 상기 선택회로는, 상기 어드레스 카운터로부터 행 어드레스를 입력받아서 상기 워드라인을 선택하기 위한 신호를 출력하는 행 디코더와; 상기 어드레스 카운터로부터 열 어드레스를 입력받아서 상기 비트라인을 선택하기 위한 신호를 출력하는 열 디코더를 포함하는 것을 특징으로 한다.
이 실시예에 있어서, 상기 어드레스 셋팅 펄스 발생회로는, 상기 커맨드 입력회로로부터 리셋신호를 입력받아서 상기 행 어드레스 셋팅 펄스를 차단하는 것을 특징으로 한다.
본 발명에 따른 랜덤 데이타 입출력 회로는 플래시 메모리에 연결된다. 상기 랜덤 데이타 입출력 회로는, 상기 플래시 메모리에 출력될 또는 상기 플래시 메모리로부터 입력받은 데이타를 저장하는 래치회로와; 입출력 라인부터 커맨드를 입력받아서 리셋신호들을 출력하는 커맨드 입력회로와; 상기 입출력 라인으로부터 어드레스를 입력받아서 상기 어드레스를 출력하는, 상기 어드레스를 소정의 사이클 수만큼 순차적으로 증가하는, 그리고 상기 커맨드 입력회로로부터 리셋신호를 입력받아서 상기 어드레스를 초기화하는 어드레스 카운터와; 상기 어드레스 카운터로부터 어드레스를 입력받아서 섹터 선택 신호를 출력하는 선택회로와; 그리고 상기 선택회로로부터 섹터 선택 신호를 입력받아서 상기 래치회로의 섹터를 선택하는, 상기 입출력 라인으로부터 섹터 단위로 데이타를 입력받아서 상기 래치회로의 선택된 섹터에 데이타를 출력하는, 그리고 상기 래치회로의 선택된 섹터로부터 섹터 단위로 데이타를 입력받아서 상기 입출력 라인에 데이타를 출력하는 데이타 입출력 회로를 포함하는 것을 특징으로 한다.
이 실시예에 있어서, 제어 라인으로부터 외부 제어신호를 입력받아서 내부 제어신호를 출력하는, 상기 입출력 라인에 연결되는, 그리고 상기 입출력 라인으로부터 외부 데이타를 입력받아서 커맨드, 어드레스, 그리고 데이타를 출력하는 입출력 버퍼를 더 포함하는 것을 특징으로 한다.
이 실시예에 있어서, 상기 래치회로는, 상기 커맨드 입력회로로부터 리셋신호를 입력받아서 초기화되는 것을 특징으로 한다.
이 실시예에 있어서, 상기 커맨드 입력회로, 상기 어드레스 카운터, 그리고 상기 데이타 입출력 회로는 상기 내부 제어신호의 조합에 의해 활성화되는 것을 특징으로 한다.
이 실시예에 있어서, 기 선택회로는, 행 디코더와 열 디코더를 포함하는 것을 특징으로 한다.
본 발명의 다른 일면에 따른 랜덤 데이타 입출력 회로는 워드 라인 및 비트 라인을 통해 플래시 메모리에 연결된다. 상기 랜덤 데이타 입출력 회로는, 상기 플래시 메모리에 출력될 또는 상기 플래시 메모리로부터 입력받은 데이타를 저장하는 래치회로와; 제어 라인으로부터 외부 제어신호를 입력받아서 내부 제어신호를 출력하는, 그리고 입출력 라인으로부터 외부 데이타를 입력받아서 커맨드, 어드레스, 그리고 데이타를 출력하는 입출력 버퍼와; 상기 입출력 버퍼로부터 커맨드를 입력받아서 리셋신호들을 출력하는 커맨드 입력회로와; 상기 입출력 버퍼로부터 내부 제어신호를 입력받아서 열 어드레스 셋팅 펄스(c1, c2) 및/또는 행 어드레스 셋팅 펄스(r1, r2)를 출력하는 어드레스 셋팅 펄스 발생회로와; 상기 어드레스 셋팅 펄스 발생회로로부터 열 및/또는 행 어드레스 셋팅 펄스를 입력받아서 열 및 행 어드레스를 출력하는, 상기 열 어드레스를 소정의 사이클 수만큼 순차적으로 증가하는, 그리고 상기 커맨드 입력회로로부터 리셋신호를 입력받아서 상기 열 어드레스를 초기화하는 어드레스 카운터와; 상기 어드레스 카운터로부터 열 어드레스를 입력받아서 상기 래치회로에 섹터 선택 신호를 출력하는 선택회로와; 그리고 상기 입출력 버퍼로부터 데이타를 입력받아서 상기 래치회로에 데이타를 출력하는, 그리고 상기 래치회로로부터 데이타를 입력받아서 상기 입출력 버퍼에 데이타를 출력하는 데이타 입출력 회로를 포함하는 것을 특징으로 한다.
이 실시예에 있어서, 상기 래치회로는, 상기 커맨드 입력회로로부터 리셋신호를 입력받아서 초기화되는 것을 특징으로 한다.
이 실시예에 있어서, 상기 커맨드 입력회로, 상기 어드레스 셋팅 펄스 발생회로, 그리고 상기 데이타 입출력 회로는 상기 내부 제어신호의 조합에 의해 활성화되는 것을 특징으로 한다.
이 실시예에 있어서, 상기 선택회로는, 상기 어드레스 카운터로부터 행 어드레스를 입력받아서 상기 워드라인을 선택하기 위한 신호를 출력하는 행 디코더와; 상기 어드레스 카운터로부터 열 어드레스를 입력받아서 상기 비트라인을 선택하기 위한 신호를 출력하는 열 디코더를 포함하는 것을 특징으로 한다.
이 실시예에 있어서, 상기 어드레스 셋팅 펄스 발생회로는, 상기 커맨드 입력회로로부터 리셋신호를 입력받아서 상기 행 어드레스 셋팅 펄스를 차단하는 것을 특징으로 한다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시예를 첨부된 도면을 참조하여 설명하기로 한다.
본 발명에 따른 플래시 메모리 시스템은 랜덤 데이타 입출력 회로를 이용하여 소블록 플래시 메모리의 제어방식을 대블록 플래시 메모리에 사용할 수 있도록 한 것이다. 본 명세서에서는 대블록 플래시 메모리는 (2K+64) Byte의 페이지 사이즈를 가지며, 소블록 플래시 메모리는 (512+16) Byte의 페이지 사이즈를 가진다고 가정한다. 여기서 상기 소블록 플래시 메모리의 페이지 사이즈인 (512+16) Byte를 섹터라고 정의한다. 즉 대블록 플래시 메모리의 한 페이지는 4개의 섹터로 구성된다. 상기 섹터는 랜덤 데이타 입출력의 기본 단위이다.
도 1은 본 발명에 따른 플래시 메모리 시스템의 실시예를 보여주는 블록도이다. 상기 플래시 메모리 시스템(2)은 버스를 통해 호스트(1)에 연결된다. 상기 플래시 메모리 시스템(2)은 상기 호스트(1)로부터 제어신호, 어드레스, 그리고 데이타 등 외부 신호를 입력받는다.
도 1을 참조하면, 상기 플래시 메모리 시스템(2)은 호스트 인터페이스(10), 레지스터(20), 스테이트 머신(30), ECC & DQ 블록(40), 버퍼 메모리(50), 플래시 메모리(100), 그리고 랜덤 데이타 입출력 회로(200)를 포함한다.
상기 호스트 인터페이스(10)는 버스를 통해 상기 호스트(1)에 연결된다. 상기 호스트 인터페이스(10)는 상기 호스트(1)로부터 외부 신호를 입력받는다. 상기 호스트 인터페이스(10)는 상기 외부 신호를 내부 신호로 변경한다. 여기서, 상기 내부 신호는 제어신호, 어드레스, 데이타 등을 말한다. 상기 호스트 인터페이스(10)는 상기 레지스터(20) 또는 상기 버퍼 메모리(50)에 상기 내부 신호를 출력한다.
상기 호스트 인터페이스(10)는 다양한 인터페이스 방식들로 구현될 수 있다. 예를 들면, 상기 호스트 인터페이스(10)는 SRAM 또는 DRAM 인터페이스 방식으로 구현될 수 있다. 또한 상기 호스트 인터페이스(10)는 NOR 플래시 메모리 인터페이스 방식으로도 구현될 수 있다.
상기 레지스터(20)는 상기 호스트 인터페이스(10)로부터 레지스터 제어신호(REG_CTRL), 레지스터 어드레스(REG_ADDR) 등을 입력받는다. 상기 레지스터 제어신호는 상기 레지스터(20)의 전반적인 동작을 제어하는 신호이다.
상기 레지스터(20)는 자체적으로 어드레스를 가진다. 상기 레지스터(20)의 어드레스에는 커맨드에 대한 정보, 버퍼 섹터 카운트에 대한 정보, 상기 플래시 메모리(100)의 어드레스에 대한 정보, 그리고 상기 버퍼 메모리(50)의 어드레스에 대한 정보 등이 저장된다.
상기 커맨드에 대한 정보는 상기 플래시 메모리(100)의 읽기 또는 쓰기 동작 등을 명하는 커맨드 정보이다. 상기 커맨드 정보는 노말 데이타 입력 커맨드, 랜덤 데이타 입력 커맨드, 노말 데이타 출력 커맨드, 그리고 랜덤 데이타 출력 커맨드 정보를 포함한다. 상기 커맨드에 대한 설명은 후술되는 도 5를 참조하여 상세히 설명된다.
상기 버퍼 섹터 카운트(Buffer Sector Count; BSC)에 대한 정보는 상기 랜덤 데이타 입출력 회로(200)에서 섹터 단위로 입출력되는 데이타의 입출력의 횟수에 대한 정보이다. 예를 들어, BSC=4 이면, 섹터 단위의 데이타 입력 또는 데이타 출력 동작이 4번 연속적으로 반복된다. 만약 BSC=2 이면, 섹터 단위의 데이타 입력 또는 출력 동작은 2번만 수행된다.
상기 어드레스에 대한 정보는 플래시 블록 어드레스(Flash Block Address; FBA), 플래시 섹터 어드레스(Flash Sector Address; FSA), 그리고 버퍼 섹터 어드레스(Buffer Sector Address; BSA) 등에 대한 정보이다.
상기 플래시 블록 어드레스는 상기 플래시 메모리(100)의 블록을 지정하는 어드레스이다. 상기 플래시 섹터 어드레스는 상기 플래시 메모리(100)의 어느 한 섹터(이하 "플래시 섹터" 라 한다.)에 대한 어드레스이다. 상기 버퍼 섹터 어드레스는 상기 버퍼 메모리(50)의 어느 한 섹터(이하 "버퍼 섹터" 라 한다.)에 대한 어드레스이다.
상기 스테이트 머신(30)은 상기 레지스터(20)로부터 레지스터 값(REG_VAL)을 입력받는다. 여기서, 상기 레지스터 값은 커맨드, 버퍼 섹터 카운트, 플래시 섹터 어드레스, 그리고 버퍼 섹터 어드레스를 포함한다. 상기 스테이트 머신(30)은 상기 레지스터 값에 따라 상기 버퍼 섹터들에 저장된 데이타가 상기 플래시 섹터들에 입력되거나, 상기 플래시 섹터들에 저장된 데이타가 상기 버퍼 섹터들로 출력되도록 상기 버퍼 메모리(50)와 상기 랜덤 데이타 입출력 회로(200)를 제어한다.
상기 스테이트 머신(30)은 상기 버퍼 메모리(50)에 버퍼 제어신호(BUF_CTRL)와 버퍼 어드레스(BUF_ADDR)를 출력한다. 상기 버퍼 제어신호는 상기 버퍼 메모리(50)의 동작을 제어하기 위한 신호이다. 상기 버퍼 어드레스는 상기 버퍼 메모리(50)의 버퍼 섹터를 지정하기 위한 어드레스이다.
상기 스테이트 머신(30)은 상기 랜덤 데이타 입출력 회로(200)에 제어신호(CTRL)와 플래시 어드레스(F_ADDR)를 출력한다. 상기 플래시 어드레스는 상기 ECC & DQ 블록(40)을 통과하여 상기 랜덤 데이타 입출력 회로(200)에 입력된다. 상기 제어신호는 상기 랜덤 데이타 입출력 회로(200)를 제어하기 위한 신호이다. 상기 플래시 어드레스는 플래시 섹터를 지정하기 위한 어드레스이다.
상기 ECC & DQ 블록(40)은 에러 정정 및 데이타 입출력 블록(Error Collection and Data Input/Output Block)이다. 상기 ECC & DQ 블록(40)은 상기 스테이트 머신(30)으로부터 제어신호(ECC_CTRL, DQ_CTRL)와 플래시 어드레스(F_ADDR)를 입력받는다. 상기 제어신호(ECC_CTRL, DQ_CTRL)는 상기 ECC & DQ 블록(40)의 동작을 제어하기 신호이다. 상기 플래시 어드레스는 상기 플래시 메모리(100)의 플래시 섹터 어드레스(FSA)이다. 상기 플래시 어드레스는 상기 ECC & DQ 블록(40)을 통해 상기 랜덤 데이타 입출력 회로(200)로 입력된다.
상기 ECC & DQ 블록(40)은 상기 버퍼 메모리(50)로부터 데이타(DATA)를 입력받아서 상기 랜덤 데이타 입출력 회로(200)에 데이타(DATA)를 출력한다. 또한, 상기 ECC & DQ 블록(40)은 상기 랜덤 데이타 입출력 회로(200)로부터 데이타(DATA)를 입력받아서 상기 버퍼 메모리(50)에 데이타(DATA)를 출력한다.
상기 ECC & DQ 블록(40)은 잘 알려진 바와 같이 상기 플래시 메모리(100)와 상기 버퍼 메모리(50) 사이에 전송되는 데이타의 에러를 정정한다. 상기 ECC & DQ 블록(40)은 섹터 단위로 패러티를 생성하고, 섹터 수만큼 에러를 정정한다.
계속해서 도 1을 참조하면, 상기 플래시 메모리 시스템(2)은 플래시 메모리(100)와 버퍼 메모리(50)를 포함한다. 상기 플래시 메모리(100)는 셀 어레이를 의미한다. 상기 플래시 메모리 시스템(2)은 상기 플래시 메모리(100)에 데이타를 입력하기 전에 상기 버퍼 메모리(50)에 데이타를 임시적으로 저장한다. 또한 상기 플래시 메모리(100)에 저장된 데이타는 상기 호스트(1)로 전송되기 전에 상기 버퍼 메모리(50)에 임시적으로 저장된다.
도 2는 플래시 메모리와 버퍼 메모리의 개념도이다. 도 2를 통해 상기 플래시 메모리(100), 상기 버퍼 메모리(50), 그리고 섹터 단위로 이루어지는 랜덤 데이타 입출력 방식을 설명한다.
플래시 메모리(셀 어레이)는 복수개의 블록들(예를 들면, 1024 Blocks, 2048 Blocks)로 이루어진다. 도 2에는 하나의 블록만이 도시되어 있다. 상기 블록은 복수개의 페이지들(예를 들면, 16 Pages, 32 Pages, 64 Pages)로 이루어진다. 도 2에서 참조번호(110, 120, 130, 140, 150)은 각각 하나의 페이지를 나타낸다. 페이지는 데이타 쓰기 동작 및 데이타 읽기 동작의 기본 단위이다.
각각의 페이지는 다시 복수개의 섹터들로 이루어진다. 도 2에는 하나의 페이지(140)가 4개의 섹터들(141~144)로 구분된 예가 도시되어 있다. 플래시 메모리에서, 페이지 사이즈는 (2K+64) Byte 이고, 섹터 사이즈는 (512+16) Byte 이다. 상기 섹터는 소블록 플래시 메모리에서 페이지이다. 상기 섹터는 대블록 플래시 메모리에서 랜덤 데이타 입출력의 기본 단위를 이룬다.
한편, 상기 플래시 메모리(100)의 섹터들은 각각 어드레스를 가지고 있다. 도 2에는 4개의 플래시 섹터 어드레스(Flash Sector Address; FSA)가 표시되어 있다. 제 1 플래시 섹터(141)의 어드레스는 '00' 이다. 'FSA=00'은 상기 제 1 플래시 섹터(141)의 어드레스가 '00' 임을 의미한다. 제 2 플래시 섹터(142)의 어드레스는 '01' 이다. 제 3 플래시 섹터(143)의 어드레스는 '10' 이다. 제 4 플래시 섹터(144)의 어드레스는 '11' 이다.
상기 버퍼 메모리(50)는 상기 플래시 메모리(100)로부터 입력받거나 상기 플래시 메모리(100)로 출력될 데이타를 임시로 저장한다. 상기 버퍼 메모리(50)는 랜덤 액세스가 가능한 메모리(예를 들면, SRAM 또는 DRAM)이다. 상기 버퍼 메모리(50)는 상기 플래시 메모리(100)의 플래시 섹터들에 대응되는 버퍼 섹터들(51~54)을 가지고 있다.
상기 버퍼 섹터들(51~54)은 각각 버퍼 섹터 어드레스(Buffer Sector Address; BSA)를 가지고 있다. 제 1 버퍼 섹터(51)의 어드레스는 '00' 이다. 'BSA=00'은 상기 제 1 버퍼 섹터(51)의 어드레스가 '00' 임을 의미한다. 제 2 버퍼 섹터(52)의 어드레스는 '01' 이다. 제 3 버퍼 섹터(53)의 어드레스는 '10' 이다. 제 4 버퍼 섹터(54)의 어드레스는 '11' 이다.
도 2를 참조하여 랜덤 데이타 입출력 방식을 설명한다. 랜덤 데이타 입력이란 상기 버퍼 메모리(50)의 임의의 버퍼 섹터에 저장된 데이타를 상기 플래시 메모리(100)의 임의의 플래시 섹터에 입력하는 것을 말한다. 랜덤 데이타 출력이란 상기 플래시 메모리(100)의 임의의 플래시 섹터에 저장된 데이타를 상기 버퍼 메모리(50)의 임의의 버퍼 섹터로 출력하는 것을 말한다.
예를 들면, 상기 레지스터(20)에 랜덤 데이타 입력을 명하는 커맨드, 버퍼 섹터 카운트(BSC=1), 상기 제 2 버퍼 섹터 어드레스(BSA=01), 그리고 상기 제 3 플래시 섹터 어드레스(FSA=10)가 저장되어 있다고 가정하면, 상기 제 2 버퍼 섹터(52)에 저장된 데이타가 상기 제 3 플래시 섹터(143)로 입력되는 동작이 수행된다.
도 2에는 BSC=4 인 경우에 랜덤 데이타 입력 방식을 나타낸 예가 되시되어 있다. 상기 제 1 버퍼 섹터(51)에 저장된 데이타는 상기 제 1 플래시 섹터 어드레스(FSA=00)에 입력된다. 상기 제 2 버퍼 섹터(52)에 저장된 데이타는 상기 제 3 플래시 섹터 어드레스(FSA=10)에 입력된다. 상기 제 3 버퍼 섹터(53)에 저장된 데이타는 상기 제 4 플래시 섹터 어드레스(FSA=11)에 입력된다. 상기 제 4 버퍼 섹터(54)에 저장된 데이타는 상기 제 2 플래시 섹터 어드레스(FSA=01)에 입력된다. 따라서 상기 버퍼 메모리(50)의 버퍼 섹터들(51~54)에 저장된 데이타는 모두 상기 플래시 메모리(100)에 입력된다.
만약 BSC=2 이면, 섹터 단위의 데이타 입력 동작은 2번만 수행된다. 따라서, 상기 제 1 및 제 2 버퍼 섹터(51, 52)에 있는 데이타만이 상기 플래시 메모리(100)의 제 1 및 제 3 플래시 섹터(141, 143)에 각각 입력된다.
다시 도 1을 참조하면, 상기 플래시 메모리 시스템(2)은 랜덤 데이타 입출력 회로(200)를 더 포함한다. 상기 랜덤 데이타 입출력 회로(200)는 상기 플래시 메모리(100)와 버퍼 메모리(50) 사이에서 랜덤 데이타 입출력이 가능하도록 해주는 회로이다.
상기 랜덤 데이타 입출력 회로(200)는 상기 스테이트 머신(30)으로부터 제어신호(CTRL)를 입력받는다. 그리고 상기 랜덤 데이타 입출력 회로(200)는 입출력 라인(I/O)을 통해 커맨드, 어드레스, 그리고 데이타를 입력받는다. 상기 랜덤 데이타 입출력 회로(200)는 워드 라인 및 비트 라인을 통해 상기 플래시 메모리(100)에 연결된다.
상기 랜덤 데이타 입출력 회로(200)는 상기 입출력 라인(I/O)을 통해 섹터 단위로 데이타를 입력받아서 상기 플래시 메모리(100)에 페이지 단위로 데이타를 출력한다. 또한, 상기 랜덤 데이타 입출력 회로(200)는 상기 플래시 메모리(100)로부터 페이지 단위로 데이타를 입력받아서 상기 입출력 라인(I/O)에 섹터 단위로 데이타를 출력한다. 이때, 상기 스테이트 머신(30)은 상기 랜덤 데이타 입출력 회로(200)에서 섹터 단위로 이루어지는 데이타 입출력의 순서와 횟수를 제어한다.
도 3은 랜덤 데이타 입출력 회로의 실시예를 나타낸 블록도이다. 도 3을 참조하면, 상기 랜덤 데이타 입출력 회로(200)는 입출력 버퍼(210), 커맨드 입력회로(220), 어드레스 셋팅 펄스 발생회로(230), 어드레스 카운터(240), 선택회로(250), 데이타 입출력 회로(260), 그리고 래치회로(270)를 포함한다.
상기 래치회로(270)는 상기 플래시 메모리(100)에 출력될 또는 상기 플래시 메모리(100)로부터 입력받은 데이타를 임시적으로 저장한다. 상기 래치회로(270)는 페이지 버퍼들로 구성된다.
도 4는 페이지 버퍼의 실시예를 나타낸 회로도이다. 상기 페이지 버퍼는 PLOAD 신호에 응답하여 비트라인(B/L)을 프리차지하는 PMOS 트랜지스터와, 인버터 2개로 구성되며 데이타를 저장하는 래치와, BLSLT 신호에 응답하여 비트라인을 스위칭하는 선택 트랜지스터와, 그리고 리셋신호(P/B_RST)에 의해 상기 래치를 초기화하는 수단을 포함한다. 상기 페이지 버퍼에 대한 동작 원리는 이 기술분야에서 통상의 지식을 가진 자에게 잘 알려져 있으므로 생략한다.
상기 입출력 버퍼(210)는 상기 스테이트 머신(30)으로부터 제어신호(CTRL)를 입력받아서 내부 제어신호들(예를 들면, CLE, ALE, nWE, nRE, nCE 등)을 출력한다. 또한, 상기 입출력 버퍼(210)는 입출력 라인(I/O)으로부터 커맨드(CMD), 어드레스(ADDR), 그리고 데이타(DATA)를 입력받는다. 그리고 상기 입출력 라인에 데이타(DATA)를 출력한다.
상기 커맨드 입력회로(220)는 상기 내부 제어신호(CLE, nWE)에 동기되어 입출력 버퍼(210)로부터 커맨드(CMD)를 입력받는다. 상기 커맨드 입력회로(220)는 상기 커맨드(CMD)에 응답하여 리셋신호들(P/B_RST, Y/C_RST, P/G_RST)과 차단신호(RA_BLK)를 출력한다. 여기서, 상기 제어신호(CLE)는 커맨드 래치 인에이블 신호(Command Latch Enable signal)이다. 상기 커맨드(CMD)는 상기 커맨드 래치 인에이블 신호(CLE)가 하이인 상태에서 입력된다. 상기 제어신호(nWE)는 쓰기 인에이블 신호(Write Enable signal)이다. 상기 커맨드(CMD)는 상기 쓰기 인에이블 신호(nWE)의 로우-하이 천이(low-to-high transition)에 동기되어 입력된다.
한편, 상기 커맨드(CMD)는 상기 스테이트 머신(30)에 의해 제어된다. 상기 커맨드(CMD)는 정상적인 데이타 입력 동작을 명하는 노말 입력 커맨드(Normal_DI_CMD)와, 랜덤 데이타 입력 동작을 명하는 랜덤 입력 커맨드(Random_DI_CMD)와, 정상적인 데이타 출력 동작을 명하는 노말 출력 커맨드(Normal_DO_CMD)와, 그리고 랜덤 데이타 출력 동작을 명하는 랜덤 출력 커맨드(Random_DO_CMD)를 포함한다.
도 5는 커맨드 입력회로의 실시예를 나타낸 회로도이다. 상기 커맨드 입력회로(220)는 제 1 커맨드 입력회로(221)와 제 2 커맨드 입력회로(222)로 구성된다.
상기 제 1 커맨드 입력회로(221)는 데이타 입력에 관련된 커맨드 입력회로이다. 상기 제 1 커맨드 입력회로(221)는 상기 입출력 버퍼(210)로부터 제어신호(nWE)와 커맨드(Normal_DI_CMD, Random_DI_CMD)를 입력받아서 리셋신호들(P/B_RST, P/G_RST, Y/C_RST) 또는 차단신호(RA_BLK)를 출력한다.
상기 제 1 커맨드 입력회로(221)는 2개의 플립플롭들(DFF1, DFF2)과, 2개의 숏 펄스 발생회로들(PUL1, PUL2)과, 그리고 게이트들로 구성된다. 상기 숏 펄스 발생회로들(PUL1, PUL2)은 직렬 연결된 3개의 인버터들과, 낸드 게이트와, 그리고 인버터로 구성된다.
상기 노말 입력 커맨드는 제어신호(nWE)에 동기되어 상기 플립플롭(DFF1)과 상기 숏 펄스 발생회로(PUL1)를 거치면서 상기 래치회로(270)를 초기화하는 리셋신호(P/B_RST)와 상기 어드레스 셋팅 펄스 발생회로(230)를 초기화하는 리셋신호(P/G_RST)로 된다. 상기 제 1 커맨드 입력회로(221)는 상기 노말 입력 커맨드를 입력받아서 상기 래치회로(270)와 상기 어드레스 셋팅 펄스 발생회로(230)를 초기화하는 신호를 출력한다.
상기 랜덤 입력 커맨드는 플립플롭(DFF2)과 상기 숏 펄스 발생회로(PUL2)를 거치면서 상기 어드레스 카운터(240)를 초기화하는 리셋신호(Y/C_RST)와 상기 어드레스 셋팅 펄스 발생회로(230)를 초기화하는 리셋신호(P/G_RST)로 된다. 한편, 상기 랜덤 입력 커맨드는 플립플롭(DFF2)을 거치면서 상기 어드레스 셋팅 펄스 발생회로(230)의 로우 어드레스 셋팅 펄스(r1, r2)를 차단하는 신호(RA_BLK)로 된다. 상기 제 1 커맨드 입력회로는(221)는 상기 랜덤 입력 커맨드를 입력받아서 상기 어드레스 카운터(240)와 상기 어드레스 셋팅 펄스 발생회로(230)를 초기화하는 신호를 출력한다.
상기 제 2 커맨드 입력회로(222)는 데이타 출력에 관련된 커맨드 입력회로이다. 상기 제 2 커맨드 입력회로(222)는 2개의 플립플롭들(DFF3, DFF4)과, 1개의 숏 펄스 발생회로(PUL4)와, 그리고 OR 게이트로 구성된다. 상기 숏 펄스 발생회로(PUL4)는 직렬 연결된 3개의 인버터들과, 낸드 게이트와, 그리고 인버터로 구성된다.
상기 제 2 커맨드 입력회로(222)는 상기 입출력 버퍼(210)로부터 제어신호(nWE)와 커맨드(Normal_DO_CMD, Random_DO_CMD)를 입력받아서 리셋신호들(P/G_RST, Y/C_RST)과 차단신호(RA_BLK)를 출력한다.
상기 노말 출력 커맨드는 플립플롭(DFF3)을 거치면서 상기 어드레스 셋팅 펄스 발생회로(230)를 초기화하는 리셋신호(P/G_RST)로 된다.
상기 랜덤 출력 커맨드는 플립플롭(DFF4)과 숏 펄스 발생회로(PUL4)를 거치면서 상기 어드레스 카운터(240)를 초기화하는 리셋신호(Y/C_RST)와 상기 어드레스 셋팅 펄스 발생회로(230)를 초기화하는 리셋신호(P/G_RST)로 된다. 한편, 상기 랜덤 출력 커맨드는 플립플롭(DFF4)을 거치면서 상기 어드레스 셋팅 펄스 발생회로(230)의 로우 어드레스 셋팅 펄스(r1, r2)를 차단하는 신호(RA_BLK)로 된다.
다시 도 3을 참조하면, 상기 랜덤 데이타 입출력 회로(200)는 상기 어드레스 셋팅 펄스 발생회로(230)를 포함한다. 상기 어드레스 셋팅 펄스 발생회로(230)는 상기 입출력 버퍼(210)로부터 제어신호(ALE, nWE)를 입력받는다. 상기 어드레스 셋팅 펄스 발생회로(230)는 상기 제어신호(ALE, nWE)에 동기되어 열 어드레스 셋팅 펄스(c1, c2)와 행 어드레스 셋팅 펄스(r1, r2)를 순차적으로 출력한다. 여기서, 상기 제어신호(ALE)는 어드레스 래치 인에이블 신호(Address Latch Enable signal)이다. 상기 어드레스 셋팅 펄스 발생회로(230)는 상기 커맨드 입력회로(220)로부터 리셋신호(R/G_RST)와 차단신호(RA_BLK)를 입력받는다.
도 6은 어드레스 셋팅 펄스 발생회로의 실시예를 나타낸 회로도이다. 도 6을 참조하면, 상기 어드레스 셋팅 펄스 발생회로(230)는 플립플롭들(DFFi:i=5~8)과, 숏 펄스 발생회로들(PULj;j=5~8)과, 그리고 게이트들을 포함한다. 상기 어드레스 셋팅 펄스발생회로(230)는 상기 어드레스 래치 인에이블 신호(ALE)가 하이인 상태에서 상기 쓰기 인에이블 신호(nWE)가 천이될 때마다 순차적으로 열 및 행 어드레스 셋팅 펄스들(c1, c2, r1, r2)을 출력한다.
상기 쓰기 인에이블 신호(nWE)의 제 1 천이에 동기되어, 상기 어드레스 래치 인에이블 신호(ALE)는 플립플롭(DFF5)으로부터 출력된다. 상기 플립플롭(DFF5)으로부터 출력된 신호는 상기 숏 펄스 발생회로(PUL5)를 지나면서 제 1 열 어드레스 셋팅 펄스(c1)로 된다. 상기 플립플롭(DFF5)으로부터 출력되어 상기 플립플롭(DFF6)에 입력된 신호는 상기 쓰기 인에이블 신호(nWE)의 제 2 천이에 동기되어 상기 숏 펄스 발생회로(PUL6)에 입력되어 제 2 열 어드레스 셋팅 펄스(c2)로 된다. 동일한 과정에 의해 제 1 및 제 2 행 어드레스 셋팅 펄스들(r1, r2)이 출력된다.
상기 플립플롭들(DFFi:i=5~8)은 상기 커맨드 입력회로(220)로부터 리셋신호(P/G_RST)를 입력받아서 초기화된다. 한편, 상기 플립플롭(DFF7)의 앞단에 위치한 NOR 게이트는 상기 커맨드 입력회로(220)로부터 차단신호(RA_BLK)를 입력받는다. NOR 게이트는 하이 신호가 입력되면 무조건 로우 신호를 출력한다. 상기 플립플롭(DFF7)은 상기 차단신호(DFF7)가 하이인 경우에 출력(DQ)이 디스에이블 된다. 상기 플립플롭(DFF7)의 디스에이블된 출력신호는 상기 플립플롭(DFF8)에 입력된다. 따라서 상기 어드레스 셋팅 펄스 발생회로(230)가 상기 커맨드 입력회로(220)로부터 차단신호(RA_BLK)을 입력받으면, 행 어드레스 셋팅 펄스(r1, r2)는 차단된다.
랜덤 입력 커맨드 또는 랜덤 출력 커맨드가 입력되는 경우에 상기 행 어드레스 셋팅 펄스(r1, r2)를 차단하는 이유는, 노말 입력 커맨드 또는 노말 출력 커맨드 입력시에 설정된 행 어드레스를 그대로 유지하기 위함이다.
다시 도 3을 참조하면, 상기 랜덤 데이타 입출력 회로(200)는 어드레스 카운터(240)를 포함한다. 상기 어드레스 카운터(240)는 상기 어드레스 셋팅 펄스 발생회로(230)로부터 어드레스 셋팅 펄스들을 입력받는다. 상기 어드레스 카운터(240)는 상기 어드레스 셋팅 펄스들에 동기되어 상기 입출력 버퍼(210)로부터 어드레스(ADDR)를 입력받는다. 상기 어드레스 카운터(240)는 열 어드레스 셋팅 펄스(c1, c2)에 동기되어 열 어드레스(CA)를 발생한다. 상기 어드레스 카운터(240)는 행 어드레스 셋팅 펄스(r1, r2)에 동기되어 행 어드레스(RA)를 발생한다.
상기 어드레스 카운터(240)는 상기 열 어드레스를 소정의 사이클 수만큼 순차적으로 증가한다. 상기 소정의 사이클 수는 하나의 섹터에 데이타 입출력을 위해 천이되는 쓰기 인에이블 신호(nWE)의 사이클 수이다. 즉, 상기 열 어드레스에 의해 데이타를 입출력하고자 하는 섹터 단위의 시작점이 결정되고, 상기 소정의 사이클 수에 의해 섹터 단위의 종료점이 결정된다.
상기 어드레스 카운터(240)는 상기 커맨드 입력회로(220)로부터 리셋신호(Y/C_RST)를 입력받는다. 상기 어드레스 카운터(240)는 상기 리셋신호(Y/C_RST)에 의해 초기화된다. 상기 리셋신호(Y/C_RST)는 랜덤 입력 커맨드(Random_DI_CMD) 또는 랜덤 출력 커맨드(Random_DO_CMD)에 의해 발생된다.
상기 선택회로(250)는 상기 어드레스 카운터(240)로부터 행 및 열 어드레스를 입력받는다. 상기 선택회로(250)는 상기 행 및 열 어드레스에 응답하여 워드라인 및 비트라인을 선택하기 위한 신호를 출력한다. 상기 선택회로(250)는 행 디코더(251)와 열 디코더(252)를 포함한다. 상기 행 디코더(251)는 상기 행 어드레스에 응답하여 워드라인 선택신호를 발생한다. 상기 열 디코더(252)는 상기 열 어드레스에 응답하여 비트라인 선택신호를 발생한다.
상기 데이타 입출력 회로(260)는 상기 선택회로(250)로부터 상기 비트라인 선택신호를 입력받는다. 상기 비트라인 선택신호에 의해 상기 래치회로(270)의 섹터 단위가 선택된다. 즉, 상기 비트라인 선택신호에 의해 데이타가 입력되거나 출력되는 섹터의 시작점이 결정된다.
상기 데이타 입출력 회로(260)는 상기 입출력 버퍼(210)로부터 제어신호(nWE, nRE)와 데이타(DATA)를 입력받는다. 상기 데이타 입출력 회로(260)는 상기 제어신호(nWE)의 연속적인 로우-하이 천이에 동기되어 바이트 단위(또는 워드 단위)로 데이타를 입력받는다. 여기서, 상기 제어신호(nWE)의 사이클 수에 의해 상기 래치회로(270)에 입력되는 섹터의 종료점이 결정된다.
상기 데이타 입출력 회로(260)는 제어신호(nRE)의 연속적인 천이에 동기되어 상기 입출력 버퍼(210)에 데이타(DATA)를 출력한다. 여기서, 상기 제어신호(nRE)는 읽기 인에이블 신호(Read Enable signal)이다. 상기 데이타(DATA)는 상기 제어신호(nRE)의 연속적인 로우-하이 천이에 동기되어 출력된다.
도 7은 섹터 단위의 랜덤 데이타 입력 동작을 설명하기 위한 타이밍도이다. 도 7을 참조하여 상기 랜덤 데이타 입출력 회로(200)의 데이타 입력 동작을 설명하면 다음과 같다.
상기 랜덤 데이타 입출력 회로(200)는 칩 인에이블 신호(nCE)가 로우이고, 커맨드 래치 인에이블 신호(CLE)가 하이인 상태에서, 쓰기 인에이블 신호(nWE)에 동기되어 입출력 라인(I/O)을 통해 노말 입력 커맨드(Normal_DI_CMD)를 입력받는다. 상기 노말 입력 커맨드에 의해 상기 래치회로(270)를 초기화하는 리셋신호(P/B_RST)가 발생된다.
칩 인에이블 신호(nCE)가 로우이고, 어드레스 래치 인에이블 신호(ALE)가 하이인 상태에서, 쓰기 인에이블 신호(nWE)의 연속적인 천이에 동기되어 어드레스 셋팅 펄스신호(c1, c2, r1, r2)가 순차적으로 발생된다. 상기 어드레스 셋팅 펄스신호에 동기되어 행 및 열 어드레스들이 입력된다.
칩 인에이블 신호(nCE), 커맨드 래치 인에이블 신호(CLE), 그리고 어드레스 래치 인에이블 신호(ALE)가 모두 로우인 상태에서, 쓰기 인에이블 신호(nWE)의 연속적인 천이에 동기되어 데이타가 입력된다. 상기 데이타는 상기 쓰기 인에이블 신호(nWE)의 사이클 수만큼 바이트 단위(또는 워드 단위)로 입력된다. 예를 들면, 상기 한 섹터가 512 Byte 이고 상기 쓰기 인에이블 신호(nWE)의 한 사이클마다 1 Byte 씩 입력된다면, 상기 쓰기 인에이블 신호(nWE)의 사이클 수는 512 번이 된다. 여기서 상기 512 번의 사이클 수는 상기 어드레스 카운터(240)의 사이클 수와 동일하다.
그 다음에 랜덤 데이타 입력 동작이 수행된다. 상기 랜덤 데이타 입출력 회로(200)는 칩 인에이블 신호(nCE)가 로우이고, 커맨드 래치 인에이블 신호(CLE)가 하이인 상태에서, 쓰기 인에이블 신호(nWE)에 동기되어 랜덤 입력 커맨드(Random_DI_CMD)를 입력받는다. 상기 랜덤 입력 커맨드에 의해 상기 어드레스 카운터(270)를 초기화하는 리셋신호(Y/C_RST)가 발생된다.
칩 인에이블 신호(nCE)가 로우이고, 어드레스 래치 인에이블 신호(ALE)가 하이인 상태에서, 쓰기 인에이블 신호(nWE)의 연속적인 천이에 동기되어 열 어드레스 셋팅 펄스신호(c1, c2)가 순차적으로 발생된다. 상기 어드레스 셋팅 펄스신호에 동기되어 행 및 열 어드레스들이 입력된다. 여기서 상기 행 어드레스 셋팅 펄스신호(r1, r2)는 차단된다. 따라서 상기 행 어드레스는 상기 노말 데이타 입력시 발생했던 어드레스가 그대로 유지된다.
칩 인에이블 신호(nCE), 커맨드 래치 인에이블 신호(CLE), 그리고 어드레스 래치 인에이블 신호(ALE)가 모두 로우인 상태에서, 쓰기 인에이블 신호(nWE)의 연속적인 천이에 동기되어 데이타가 입력된다. 상기 데이타는 상기 쓰기 인에이블 신호(nWE)의 사이클 수만큼 바이트 단위(또는 워드 단위)로 입력된다. 예를 들면, 한 섹터가 16 Byte 이고 상기 쓰기 인에이블 신호(nWE)의 한 사이클마다 1 Byte 씩 입력된다면, 상기 쓰기 인에이블 신호(nWE)의 사이클 수는 16 번이 된다.
상기 노말 데이타 입력 동작 및 상기 랜덤 데이타 입력 동작은 상기 레지스터(20)에 저장된 버퍼 섹터 카운트(BSC)의 수만큼 반복적으로 수행된다. 예를 들어, BSC=4 이면, 1번의 노말 데이타 입력 동작과 3번의 랜덤 데이타 입력 동작이 수행된다.
도 8은 섹터 단위의 랜덤 데이타 출력 동작을 설명하기 위한 타이밍도이다. 도 8을 참조하여 상기 랜덤 데이타 입출력 회로(200)의 데이타 출력 동작을 설명하면 다음과 같다.
상기 랜덤 데이타 입출력 회로(200)는 칩 인에이블 신호(nCE)가 로우이고, 커맨드 래치 인에이블 신호(CLE)가 하이인 상태에서, 쓰기 인에이블 신호(nWE)에 동기되어 노말 출력 커맨드(Normal_DO_CMD)를 입력받는다.
칩 인에이블 신호(nCE)가 로우이고, 어드레스 래치 인에이블 신호(ALE)가 하이인 상태에서, 쓰기 인에이블 신호(nWE)의 연속적인 천이에 동기되어 어드레스 셋팅 펄스신호(c1, c2, r1, r2)가 순차적으로 발생된다. 상기 어드레스 셋팅 펄스신호에 동기되어 행 및 열 어드레스들이 발생된다.
칩 인에이블 신호(nCE)가 로우이고, 커맨드 래치 인에이블 신호(CLE)가 하이인 상태에서, 쓰기 인에이블 신호(nWE)에 동기되어 데이타 출력 동작을 명하는 컨펌 커맨드(Confirm_CMD)를 입력받는다. 상기 컨펌 커맨드에 의해 상기 플래시 메모리(100)에 저장된 데이타가 페이지 단위로 상기 래치회로(270)에 출력된다.
그 다음에 섹터 단위의 랜덤 데이타 출력 동작이 수행된다. 상기 랜덤 데이타 입출력 회로(200)는 칩 인에이블 신호(nCE)가 로우이고, 커맨드 래치 인에이블 신호(CLE)가 하이인 상태에서, 쓰기 인에이블 신호(nWE)에 동기되어 랜덤 출력 커맨드(Random_DO_CMD)를 입력받는다. 상기 랜덤 출력 커맨드에 의해 상기 어드레스 카운터(240)를 초기화하는 리셋신호(Y/C_RST)가 발생된다.
칩 인에이블 신호(nCE)가 로우이고, 어드레스 래치 인에이블 신호(ALE)가 하이인 상태에서, 쓰기 인에이블 신호(nWE)의 연속적인 천이에 동기되어 열 어드레스 셋팅 펄스신호(c1, c2)가 순차적으로 발생된다. 상기 어드레스 셋팅 펄스신호에 동기되어 행 및 열 어드레스들이 입력된다. 여기서 상기 행 어드레스 셋팅 펄스신호(r1, r2)는 차단된다. 따라서 상기 행 어드레스는 상기 노말 데이타 출력시 발생했던 어드레스가 그대로 유지된다.
칩 인에이블 신호(nCE), 커맨드 래치 인에이블 신호(CLE), 그리고 어드레스 래치 인에이블 신호(ALE)가 모두 로우인 상태에서, 읽기 인에이블 신호(nRE)의 연속적인 천이에 동기되어 섹터 단위로 데이타가 출력된다. 상기 데이타는 상기 읽기 인에이블 신호(nRE)의 사이클 수만큼 바이트 단위(또는 워드 단위)로 출력된다. 예를 들면, 한 섹터가 512 Byte 이고 상기 읽기 인에이블 신호(nRE)의 한 사이클마다 1 Byte 씩 출력된다면, 상기 읽기 인에이블 신호(nRE)의 사이클 수는 512 번이 된다. 여기서 상기 512 번의 사이클 수는 상기 어드레스 카운터(240)의 사이클 수와 동일하다.
상기 데이타 출력 동작은 상기 레지스터(20)에 저장된 버퍼 섹터 카운트(BSC)에 의해 반복적으로 수행된다. 예를 들어, BSC=3 이면, 3번의 랜덤 데이타 출력 동작이 수행된다.
상기 플래시 메모리 시스템(2)을 구성하는 요소들 즉, 상기 플래시 메모리(100), 상기 버퍼 메모리(50), 상기 레지스터(20), 상기 스테이트 머신(30), 상기 랜덤 데이타 입출력 회로(200), 상기 ECC & DQ 블록(40), 그리고 상기 호스트 인터페이스(10)는 단일 칩으로 형성될 수 있다. 뿐만 아니라 상기 플래시 메모리 시스템(2)이 다중칩 기술을 이용하여 구현될 수도 있음은 이 기술 분야에서 통상의 지식을 가진 자들에게 자명한 사실이다.
한편, 본 발명의 상세한 설명에서는 구체적인 실시예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 상술한 실시예에 국한되어 정해져서는 안되며 후술하는 특허청구범위 뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.
본 발명에 따른 플래시 메모리 시스템은 플래시 메모리에 데이타를 입력하거나 플래시 메모리로부터 데이타를 출력할 때 섹터 단위로 데이타를 입출력 할 수 있다. 또한 상기 플래시 메모리 시스템은 섹터 단위로 입출력 되는 데이타의 순서와 데이타의 횟수를 조정할 수 있다. 따라서 랜덤 데이타 입출력이 가능한 플래시 메모리 시스템에 의하면, 소블록 플래시 메모리의 제어방식을 이용하여 대블록 플래시 메모리를 사용할 수 있어서 데이타 저장 효율을 높일 수 있다.
도 1은 본 발명에 따른 플래시 메모리 시스템의 실시예를 나타낸 블록도이다.
도 2는 도 1의 플래시 메모리와 버퍼 메모리의 개념도이다.
도 3은 본 발명에 따른 랜덤 데이타 입출력 회로의 실시예를 나타낸 블록도이다.
도 4는 도 3의 래치회로의 실시예를 나타낸 회로도이다.
도 5는 도 3의 커맨드 입력회로의 실시예를 나타낸 회로도이다.
도 6은 도 3의 어드레스 셋팅 펄스 발생회로의 실시예를 나타낸 회로도이다.
도 7은 섹터 단위의 랜덤 데이타 입력 동작을 설명하기 위한 타이밍도이다.
도 8은 섹터 단위의 랜덤 데이타 출력 동작을 설명하기 위한 타이밍도이다.
*도면의 주요부분에 대한 부호의 설명*
1 : 호스트 2 : 플래시 메모리 시스템
10 : 호스트 인터페이스 20 : 레지스터
30 : 스테이트 머신 40 : ECC & DQ 블록
50 : 버퍼 메모리 51, 52, 53, 54 : 버퍼 섹터
100 : 플래시 메모리(셀 어레이) 110, 120, 130, 140, 150 : 페이지
141, 142, 143, 144 : 플래시 섹터 200 : 랜덤 데이타 입출력 회로
210 : 입출력 버퍼 220 : 커맨드 입력회로
221 : 제 1 커맨드 입력회로 222 : 제 2 커맨드 입력회로
230 : 어드레스 셋팅 펄스 발생회로 240 : 어드레스 카운터
250 : 선택회로 251 : 행 디코더
252 : 열 디코더 260 : 데이타 입출력 회로
270 : 래치회로

Claims (32)

  1. 페이지 단위로 데이타를 저장하는 플래시 메모리와;
    섹터 단위로 데이타를 저장하는 버퍼 메모리와;
    상기 버퍼 메모리로부터 섹터 단위로 데이타를 입력받거나 상기 버퍼 메모리에 섹터 단위로 데이타를 출력하는, 그리고 상기 플래시 메모리에 페이지 단위로 데이타를 출력하거나 상기 플래시 메모리로부터 페이지 단위로 데이타를 입력받는 랜덤 데이타 입출력 회로와; 그리고
    상기 버퍼 메모리와 상기 랜덤 데이타 입출력 회로 사이에 입출력 되는 데이타의 순서와 횟수를 섹터 단위로 조정할 수 있는 제어회로를 포함하는 것을 특징으로 하는 플래시 메모리 시스템.
  2. 제 1 항에 있어서,
    상기 페이지 단위는, 적어도 하나 이상의 섹터 단위로 구성되는 것을 특징으로 하는 플래시 메모리 시스템.
  3. 페이지 단위로 데이타를 저장하는 플래시 메모리와;
    섹터 단위로 데이타를 저장하는 버퍼 메모리와;
    상기 버퍼 메모리로부터 섹터 단위로 데이타를 입력받거나 상기 버퍼 메모리에 섹터 단위로 데이타를 출력하는, 그리고 상기 플래시 메모리에 페이지 단위로 데이타를 출력하거나 상기 플래시 메모리로부터 페이지 단위로 데이타를 입력받는 랜덤 데이타 입출력 회로와;
    커맨드, 버퍼 섹터 카운트, 플래시 섹터 어드레스, 그리고 버퍼 섹터 어드레스에 대한 정보를 저장하는 레지스터와;
    상기 레지스터에 저장된 정보들에 응답하여 상기 버퍼 메모리와 상기 랜덤 데이타 입출력 회로 사이에 입출력 되는 데이타의 순서와 횟수를 섹터 단위로 조정하는 스테이트 머신을 포함하는 것을 특징으로 하는 플래시 메모리 시스템.
  4. 제 3 항에 있어서,
    상기 스테이트 머신에 의해 제어되며, 상기 플래시 메모리와 상기 버퍼 메모리 사이에 전송되는 데이타의 에러를 정정하는 에러 정정 및 데이타 입출력 회로를 더 포함하는 것을 특징으로 하는 플래시 메모리 시스템.
  5. 제 4 항에 있어서,
    상기 에러 정정 및 데이타 입출력 회로는, 상기 섹터 단위로 패러티를 생성하는 것을 특징으로 하는 플래시 메모리 시스템.
  6. 제 5 항에 있어서,
    상기 에러 정정 및 데이타 입출력 회로는, 상기 페이지 단위를 이루는 상기 섹터 단위의 수만큼 에러를 정정하는 것을 특징으로 하는 플래시 메모리 시스템.
  7. 제 4 항에 있어서,
    버스를 통해 호스트에 연결되는, 그리고 상기 호스트로부터 신호를 입력받아서 상기 플래시 메모리 시스템을 동작시키기 위한 내부 신호로 변경하는 호스트 인터페이스를 더 포함하는 것을 특징으로 하는 플래시 메모리 시스템.
  8. 제 5 항에 있어서,
    상기 호스트 인터페이스는, NOR 플래시 메모리의 인터페이스 방식을 갖는 것을 특징으로 하는 플래시 메모리 시스템.
  9. 제 7 항에 있어서,
    상기 호스트 인터페이스는, 상기 버퍼 메모리의 인터페이스 방식을 갖는 것을 특징으로 하는 플래시 메모리 시스템.
  10. 제 7 항에 있어서,
    상기 플래시 메모리, 상기 버퍼 메모리, 상기 랜덤 데이타 입출력 회로, 상기 레지스터, 상기 스테이트 머신, 상기 에러 정정 및 데이타 입출력 회로, 그리고 상기 호스트 인터페이스는 단일 칩으로 이루어지는 것을 특징으로 하는 플래시 메모리 시스템.
  11. 제 3 항에 있어서,
    상기 플래시 메모리는, 메인 영역과 스페어 영역으로 구분되며;
    상기 메인 영역에는 노말 데이타가 저장되고, 상기 스페어 영역에는 상기 노말 데이타와 관련된 부가 데이타가 저장되는 것을 특징으로 하는 플래시 메모리 시스템.
  12. 제 11 항에 있어서,
    상기 메인 영역과 스페어 영역은, 각각 섹터 단위를 이루는 것을 특징으로 하는 플래시 메모리 시스템.
  13. 제 3 항에 있어서,
    상기 버퍼 메모리는, 랜덤 액세스가 가능한 메모리(RAM)인 것을 특징으로 하는 플래시 메모리 시스템
  14. 제 13 항에 있어서,
    상기 버퍼 메모리는, 에스램(SRAM)인 것을 특징으로 하는 플래시 메모리 시스템.
  15. 제 13 항에 있어서,
    상기 버퍼 메모리는, 디램(DRAM)인 것을 특징으로 하는 플래시 메모리 시스템.
  16. 제 3 항에 있어서,
    상기 페이지 단위는, 적어도 하나 이상의 섹터 단위로 구성되는 것을 특징으로 하는 플래시 메모리 시스템.
  17. 제 16 항에 있어서,
    상기 버퍼 메모리와 상기 랜덤 데이타 입출력 회로 사이에 섹터 단위로 입출력 되는 데이타의 횟수는, 상기 섹터 단위의 수인 것을 특징으로 하는 플래시 메모리 시스템.
  18. 제 3 항에 있어서,
    상기 랜덤 데이타 입출력 회로는,
    상기 플래시 메모리에 출력될 또는 상기 플래시 메모리로부터 입력받은 데이타를 저장하는 래치회로와;
    상기 스테이트 머신으로부터 제어신호를 입력받아서 내부 제어신호를 출력하는, 그리고 상기 스테이트 머신 및 상기 버퍼 메모리로부터 데이타를 입력받아서 커맨드, 어드레스, 그리고 데이타를 출력하는 입출력 버퍼와;
    상기 입출력 버퍼로부터 커맨드를 입력받아서 리셋신호들을 출력하는 커맨드 입력회로와;
    상기 입출력 버퍼로부터 내부 제어신호를 입력받아서 열 어드레스 셋팅 펄스(c1, c2) 및/또는 행 어드레스 셋팅 펄스(r1, r2)를 출력하는 어드레스 셋팅 펄스 발생회로와;
    상기 어드레스 셋팅 펄스 발생회로로부터 열 및/또는 행 어드레스 셋팅 펄스를 입력받아서 열 및 행 어드레스를 출력하는, 상기 열 어드레스를 소정의 사이클 수만큼 순차적으로 증가하는, 그리고 상기 커맨드 입력회로로부터 리셋신호를 입력받아서 상기 열 어드레스를 초기화하는 어드레스 카운터와;
    상기 어드레스 카운터로부터 열 어드레스를 입력받아서 상기 래치회로에 섹터 선택 신호를 출력하는 선택회로와; 그리고
    상기 입출력 버퍼로부터 데이타를 입력받아서 상기 래치회로에 데이타를 출력하는, 그리고 상기 래치회로로부터 데이타를 입력받아서 상기 입출력 버퍼에 데이타를 출력하는 데이타 입출력 회로를 포함하는 것을 특징으로 하는 플래시 메모리 시스템.
  19. 제 18 항에 있어서,
    상기 래치회로는, 상기 커맨드 입력회로로부터 리셋신호를 입력받아서 초기화되는 것을 특징으로 하는 플래시 메모리 시스템.
  20. 제 18 항에 있어서,
    상기 커맨드 입력회로, 상기 어드레스 셋팅 펄스 발생회로, 그리고 상기 데이타 입출력 회로는 상기 내부 제어신호의 조합에 의해 활성화되는 것을 특징으로 하는 플래시 메모리 시스템.
  21. 제 18 항에 있어서,
    상기 선택회로는, 상기 어드레스 카운터로부터 행 어드레스를 입력받아서 상기 워드라인을 선택하기 위한 신호를 출력하는 행 디코더와;
    상기 어드레스 카운터로부터 열 어드레스를 입력받아서 상기 비트라인을 선택하기 위한 신호를 출력하는 열 디코더를 포함하는 것을 특징으로 하는 플래시 메모리 시스템.
  22. 제 18 항에 있어서,
    상기 어드레스 셋팅 펄스 발생회로는, 상기 커맨드 입력회로로부터 리셋신호를 입력받아서 상기 행 어드레스 셋팅 펄스를 차단하는 것을 특징으로 하는 플래시 메모리 시스템.
  23. 플래시 메모리에 연결되는 랜덤 데이타 입출력 회로에 있어서:
    상기 플래시 메모리에 출력될 또는 상기 플래시 메모리로부터 입력받은 데이타를 저장하는 래치회로와;
    입출력 라인부터 커맨드를 입력받아서 리셋신호들을 출력하는 커맨드 입력회로와;
    상기 입출력 라인으로부터 어드레스를 입력받아서 상기 어드레스를 출력하는, 상기 어드레스를 소정의 사이클 수만큼 순차적으로 증가하는, 그리고 상기 커맨드 입력회로로부터 리셋신호를 입력받아서 상기 어드레스를 초기화하는 어드레스 카운터와;
    상기 어드레스 카운터로부터 어드레스를 입력받아서 섹터 선택 신호를 출력하는 선택회로와; 그리고
    상기 선택회로로부터 섹터 선택 신호를 입력받아서 상기 래치회로의 섹터를 선택하는, 상기 입출력 라인으로부터 섹터 단위로 데이타를 입력받아서 상기 래치회로의 선택된 섹터에 데이타를 출력하는, 그리고 상기 래치회로의 선택된 섹터로부터 섹터 단위로 데이타를 입력받아서 상기 입출력 라인에 데이타를 출력하는 데이타 입출력 회로를 포함하는 것을 특징으로 하는 랜덤 데이타 입출력 회로.
  24. 제 23 항에 있어서,
    제어 라인으로부터 외부 제어신호를 입력받아서 내부 제어신호를 출력하는, 상기 입출력 라인에 연결되는, 그리고 상기 입출력 라인으로부터 외부 데이타를 입력받아서 커맨드, 어드레스, 그리고 데이타를 출력하는 입출력 버퍼를 더 포함하는 것을 특징으로 하는 랜덤 데이타 입출력 회로.
  25. 제 23 항에 있어서,
    상기 래치회로는, 상기 커맨드 입력회로로부터 리셋신호를 입력받아서 초기화되는 것을 특징으로 하는 랜덤 데이타 입출력 회로.
  26. 제 24 항에 있어서,
    상기 커맨드 입력회로, 상기 어드레스 카운터, 그리고 상기 데이타 입출력 회로는 상기 내부 제어신호의 조합에 의해 활성화되는 것을 특징으로 하는 랜덤 데이타 입출력 회로.
  27. 제 23 항에 있어서,
    상기 선택회로는, 행 디코더와 열 디코더를 포함하는 것을 특징으로 하는 랜덤 데이타 입출력 회로.
  28. 워드 라인 및 비트 라인을 통해 플래시 메모리에 연결되는 랜덤 데이타 입출력 회로에 있어서:
    상기 플래시 메모리에 출력될 또는 상기 플래시 메모리로부터 입력받은 데이타를 저장하는 래치회로와;
    제어 라인으로부터 외부 제어신호를 입력받아서 내부 제어신호를 출력하는, 그리고 입출력 라인으로부터 외부 데이타를 입력받아서 커맨드, 어드레스, 그리고 데이타를 출력하는 입출력 버퍼와;
    상기 입출력 버퍼로부터 커맨드를 입력받아서 리셋신호들을 출력하는 커맨드 입력회로와;
    상기 입출력 버퍼로부터 내부 제어신호를 입력받아서 열 어드레스 셋팅 펄스(c1, c2) 및/또는 행 어드레스 셋팅 펄스(r1, r2)를 출력하는 어드레스 셋팅 펄스 발생회로와;
    상기 어드레스 셋팅 펄스 발생회로로부터 열 및/또는 행 어드레스 셋팅 펄스를 입력받아서 열 및 행 어드레스를 출력하는, 상기 열 어드레스를 소정의 사이클 수만큼 순차적으로 증가하는, 그리고 상기 커맨드 입력회로로부터 리셋신호를 입력받아서 상기 열 어드레스를 초기화하는 어드레스 카운터와;
    상기 어드레스 카운터로부터 열 어드레스를 입력받아서 상기 래치회로에 섹터 선택 신호를 출력하는 선택회로와; 그리고
    상기 입출력 버퍼로부터 데이타를 입력받아서 상기 래치회로에 데이타를 출력하는, 그리고 상기 래치회로로부터 데이타를 입력받아서 상기 입출력 버퍼에 데이타를 출력하는 데이타 입출력 회로를 포함하는 것을 특징으로 하는 랜덤 데이타 입출력 회로.
  29. 제 28 항에 있어서,
    상기 래치회로는, 상기 커맨드 입력회로로부터 리셋신호를 입력받아서 초기화되는 것을 특징으로 하는 랜덤 데이타 입출력 회로.
  30. 제 28 항에 있어서,
    상기 커맨드 입력회로, 상기 어드레스 셋팅 펄스 발생회로, 그리고 상기 데이타 입출력 회로는 상기 내부 제어신호의 조합에 의해 활성화되는 것을 특징으로 하는 랜덤 데이타 입출력 회로.
  31. 제 28 항에 있어서,
    상기 선택회로는, 상기 어드레스 카운터로부터 행 어드레스를 입력받아서 상기 워드라인을 선택하기 위한 신호를 출력하는 행 디코더와;
    상기 어드레스 카운터로부터 열 어드레스를 입력받아서 상기 비트라인을 선택하기 위한 신호를 출력하는 열 디코더를 포함하는 것을 특징으로 하는 랜덤 데이타 입출력 회로.
  32. 제 28 항에 있어서,
    상기 어드레스 셋팅 펄스 발생회로는, 상기 커맨드 입력회로로부터 리셋신호를 입력받아서 상기 행 어드레스 셋팅 펄스를 차단하는 것을 특징으로 하는 랜덤 데이타 입출력 회로.
KR10-2003-0101176A 2003-12-31 2003-12-31 데이타를 섹터 단위로 랜덤하게 입출력할 수 있는 플래시메모리 시스템 KR100528482B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR10-2003-0101176A KR100528482B1 (ko) 2003-12-31 2003-12-31 데이타를 섹터 단위로 랜덤하게 입출력할 수 있는 플래시메모리 시스템
US10/957,166 US7212426B2 (en) 2003-12-31 2004-09-30 Flash memory system capable of inputting/outputting sector data at random
JP2004368293A JP4744867B2 (ja) 2003-12-31 2004-12-20 データをセクタ単位にランダムに入出力することができるフラッシュメモリシステム
JP2010228523A JP2011018372A (ja) 2003-12-31 2010-10-08 データをセクタ単位にランダムに入出力することができるフラッシュメモリシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2003-0101176A KR100528482B1 (ko) 2003-12-31 2003-12-31 데이타를 섹터 단위로 랜덤하게 입출력할 수 있는 플래시메모리 시스템

Publications (2)

Publication Number Publication Date
KR20050069218A KR20050069218A (ko) 2005-07-05
KR100528482B1 true KR100528482B1 (ko) 2005-11-15

Family

ID=34698863

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2003-0101176A KR100528482B1 (ko) 2003-12-31 2003-12-31 데이타를 섹터 단위로 랜덤하게 입출력할 수 있는 플래시메모리 시스템

Country Status (3)

Country Link
US (1) US7212426B2 (ko)
JP (2) JP4744867B2 (ko)
KR (1) KR100528482B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8521946B2 (en) 2008-09-26 2013-08-27 Samsung Electronics Co., Ltd. Semiconductor disk devices and related methods of randomly accessing data

Families Citing this family (83)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BE880892A (fr) * 1979-12-27 1980-06-27 Cockerill Dispositif et procede pour polir en continu et pour refroidir uniformement la table d'un cylindre de laminoir
US8250295B2 (en) 2004-01-05 2012-08-21 Smart Modular Technologies, Inc. Multi-rank memory module that emulates a memory module having a different number of ranks
KR100703727B1 (ko) * 2005-01-12 2007-04-05 삼성전자주식회사 비휘발성 메모리, 이를 위한 사상 제어 장치 및 방법
US20060253659A1 (en) * 2005-05-05 2006-11-09 International Business Machines Corporation Method and virtual port register array for implementing shared access to a register array port by multiple sources
US8176230B2 (en) * 2006-04-07 2012-05-08 Kingston Technology Corporation Wireless flash memory card expansion system
US7876613B2 (en) 2006-05-18 2011-01-25 Samsung Electronics Co., Ltd. Multi-bit flash memory devices having a single latch structure and related programming methods, systems and memory cards
KR100778082B1 (ko) * 2006-05-18 2007-11-21 삼성전자주식회사 단일의 래치 구조를 갖는 멀티-비트 플래시 메모리 장치,그것의 프로그램 방법, 그리고 그것을 포함하는 메모리카드
KR101146059B1 (ko) * 2006-07-31 2012-05-14 가부시끼가이샤 도시바 비휘발성 메모리 시스템 및 비휘발성 메모리 시스템을 위한데이터 판독/기입 방법
KR100919156B1 (ko) 2006-08-24 2009-09-28 삼성전자주식회사 멀티-비트 플래시 메모리 장치 및 그것의 프로그램 방법
US7853987B2 (en) * 2006-10-10 2010-12-14 Honeywell International Inc. Policy language and state machine model for dynamic authorization in physical access control
US8166532B2 (en) * 2006-10-10 2012-04-24 Honeywell International Inc. Decentralized access control framework
US20080155239A1 (en) * 2006-10-10 2008-06-26 Honeywell International Inc. Automata based storage and execution of application logic in smart card like devices
JP4498341B2 (ja) * 2006-11-20 2010-07-07 株式会社東芝 メモリシステム
JP4970078B2 (ja) * 2007-02-21 2012-07-04 株式会社東芝 不揮発性メモリシステム
US8301833B1 (en) 2007-06-01 2012-10-30 Netlist, Inc. Non-volatile memory module
US8874831B2 (en) 2007-06-01 2014-10-28 Netlist, Inc. Flash-DRAM hybrid memory module
US8904098B2 (en) 2007-06-01 2014-12-02 Netlist, Inc. Redundant backup using non-volatile memory
KR100753174B1 (ko) * 2007-06-12 2007-08-30 엠진 (주) 플래시 메모리 기반의 대용량 저장장치
KR101424782B1 (ko) * 2007-07-19 2014-08-04 삼성전자주식회사 솔리드 스테이트 디스크 컨트롤러 및 솔리드 스테이트디스크 컨트롤러의 데이터 처리 방법
US8365040B2 (en) 2007-09-20 2013-01-29 Densbits Technologies Ltd. Systems and methods for handling immediate data errors in flash memory
US8694715B2 (en) 2007-10-22 2014-04-08 Densbits Technologies Ltd. Methods for adaptively programming flash memory devices and flash memory systems incorporating same
WO2009072101A2 (en) 2007-12-05 2009-06-11 Densbits Technologies Ltd. Apparatus and methods for generating row-specific reading thresholds in flash memory
WO2009074978A2 (en) 2007-12-12 2009-06-18 Densbits Technologies Ltd. Systems and methods for error correction and decoding on multi-level physical media
US8972472B2 (en) 2008-03-25 2015-03-03 Densbits Technologies Ltd. Apparatus and methods for hardware-efficient unbiased rounding
JP2010009642A (ja) * 2008-06-24 2010-01-14 Toshiba Corp 半導体記憶装置およびそのテスト方法
US8429330B2 (en) * 2008-09-12 2013-04-23 Sandisk Technologies Inc. Method for scrambling data in which scrambling data and scrambled data are stored in corresponding non-volatile memory locations
US8145855B2 (en) 2008-09-12 2012-03-27 Sandisk Technologies Inc. Built in on-chip data scrambler for non-volatile memory
US8819385B2 (en) 2009-04-06 2014-08-26 Densbits Technologies Ltd. Device and method for managing a flash memory
US8458574B2 (en) 2009-04-06 2013-06-04 Densbits Technologies Ltd. Compact chien-search based decoding apparatus and method
US8566510B2 (en) * 2009-05-12 2013-10-22 Densbits Technologies Ltd. Systems and method for flash memory management
US8995197B1 (en) 2009-08-26 2015-03-31 Densbits Technologies Ltd. System and methods for dynamic erase and program control for flash memory device memories
US9330767B1 (en) 2009-08-26 2016-05-03 Avago Technologies General Ip (Singapore) Pte. Ltd. Flash memory module and method for programming a page of flash memory cells
US8730729B2 (en) 2009-10-15 2014-05-20 Densbits Technologies Ltd. Systems and methods for averaging error rates in non-volatile devices and storage systems
US8724387B2 (en) 2009-10-22 2014-05-13 Densbits Technologies Ltd. Method, system, and computer readable medium for reading and programming flash memory cells using multiple bias voltages
US9037777B2 (en) 2009-12-22 2015-05-19 Densbits Technologies Ltd. Device, system, and method for reducing program/read disturb in flash arrays
US8745317B2 (en) 2010-04-07 2014-06-03 Densbits Technologies Ltd. System and method for storing information in a multi-level cell memory
US8468431B2 (en) 2010-07-01 2013-06-18 Densbits Technologies Ltd. System and method for multi-dimensional encoding and decoding
US8964464B2 (en) 2010-08-24 2015-02-24 Densbits Technologies Ltd. System and method for accelerated sampling
US9063878B2 (en) 2010-11-03 2015-06-23 Densbits Technologies Ltd. Method, system and computer readable medium for copy back
US8850100B2 (en) 2010-12-07 2014-09-30 Densbits Technologies Ltd. Interleaving codeword portions between multiple planes and/or dies of a flash memory device
DE102011056141A1 (de) 2010-12-20 2012-06-21 Samsung Electronics Co., Ltd. Negativspannungsgenerator, Dekoder, nicht-flüchtige Speichervorrichtung und Speichersystem, das eine negative Spannung verwendet
US8990665B1 (en) 2011-04-06 2015-03-24 Densbits Technologies Ltd. System, method and computer program product for joint search of a read threshold and soft decoding
KR101678919B1 (ko) 2011-05-02 2016-11-24 삼성전자주식회사 메모리 시스템 및 에러 정정 방법
US9501392B1 (en) 2011-05-12 2016-11-22 Avago Technologies General Ip (Singapore) Pte. Ltd. Management of a non-volatile memory module
US9195592B1 (en) 2011-05-12 2015-11-24 Densbits Technologies Ltd. Advanced management of a non-volatile memory
US9372792B1 (en) 2011-05-12 2016-06-21 Avago Technologies General Ip (Singapore) Pte. Ltd. Advanced management of a non-volatile memory
US8996790B1 (en) 2011-05-12 2015-03-31 Densbits Technologies Ltd. System and method for flash memory management
US9110785B1 (en) 2011-05-12 2015-08-18 Densbits Technologies Ltd. Ordered merge of data sectors that belong to memory space portions
US9396106B2 (en) 2011-05-12 2016-07-19 Avago Technologies General Ip (Singapore) Pte. Ltd. Advanced management of a non-volatile memory
US10380022B2 (en) 2011-07-28 2019-08-13 Netlist, Inc. Hybrid memory module and system and method of operating the same
US10198350B2 (en) 2011-07-28 2019-02-05 Netlist, Inc. Memory module having volatile and non-volatile memory subsystems and method of operation
US10838646B2 (en) 2011-07-28 2020-11-17 Netlist, Inc. Method and apparatus for presearching stored data
US8996788B2 (en) 2012-02-09 2015-03-31 Densbits Technologies Ltd. Configurable flash interface
US8947941B2 (en) 2012-02-09 2015-02-03 Densbits Technologies Ltd. State responsive operations relating to flash memory cells
KR101296312B1 (ko) * 2012-03-20 2013-08-14 한양대학교 산학협력단 키 레지스터 기반의 플래시 메모리 제어장치
GB201206409D0 (en) 2012-03-26 2012-05-23 Continental Automotive Systems Method and apparatus to reduct flash memory device programming time over a C.A.N. bus
US8996793B1 (en) 2012-04-24 2015-03-31 Densbits Technologies Ltd. System, method and computer readable medium for generating soft information
US8838937B1 (en) 2012-05-23 2014-09-16 Densbits Technologies Ltd. Methods, systems and computer readable medium for writing and reading data
US8879325B1 (en) 2012-05-30 2014-11-04 Densbits Technologies Ltd. System, method and computer program product for processing read threshold information and for reading a flash memory module
US9921954B1 (en) 2012-08-27 2018-03-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and system for split flash memory management between host and storage controller
US9368225B1 (en) 2012-11-21 2016-06-14 Avago Technologies General Ip (Singapore) Pte. Ltd. Determining read thresholds based upon read error direction statistics
US9069659B1 (en) 2013-01-03 2015-06-30 Densbits Technologies Ltd. Read threshold determination using reference read threshold
KR101369408B1 (ko) * 2013-03-15 2014-03-04 주식회사 디에이아이오 스토리지 시스템 및 이의 데이터 전송 방법
US10372551B2 (en) 2013-03-15 2019-08-06 Netlist, Inc. Hybrid memory system with configurable error thresholds and failure analysis capability
US9436600B2 (en) 2013-06-11 2016-09-06 Svic No. 28 New Technology Business Investment L.L.P. Non-volatile memory storage for multi-channel memory system
US9136876B1 (en) 2013-06-13 2015-09-15 Densbits Technologies Ltd. Size limited multi-dimensional decoding
US9413491B1 (en) 2013-10-08 2016-08-09 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method for multiple dimension decoding and encoding a message
US9786388B1 (en) 2013-10-09 2017-10-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Detecting and managing bad columns
US9397706B1 (en) 2013-10-09 2016-07-19 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method for irregular multiple dimension decoding and encoding
US9348694B1 (en) 2013-10-09 2016-05-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Detecting and managing bad columns
US10248328B2 (en) 2013-11-07 2019-04-02 Netlist, Inc. Direct data move between DRAM and storage on a memory module
US9536612B1 (en) 2014-01-23 2017-01-03 Avago Technologies General Ip (Singapore) Pte. Ltd Digital signaling processing for three dimensional flash memory arrays
US10120792B1 (en) 2014-01-29 2018-11-06 Avago Technologies General Ip (Singapore) Pte. Ltd. Programming an embedded flash storage device
US9542262B1 (en) 2014-05-29 2017-01-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Error correction
US9892033B1 (en) 2014-06-24 2018-02-13 Avago Technologies General Ip (Singapore) Pte. Ltd. Management of memory units
US9584159B1 (en) 2014-07-03 2017-02-28 Avago Technologies General Ip (Singapore) Pte. Ltd. Interleaved encoding
US9972393B1 (en) 2014-07-03 2018-05-15 Avago Technologies General Ip (Singapore) Pte. Ltd. Accelerating programming of a flash memory module
US9449702B1 (en) 2014-07-08 2016-09-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Power management
US9524211B1 (en) 2014-11-18 2016-12-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Codeword management
US10305515B1 (en) 2015-02-02 2019-05-28 Avago Technologies International Sales Pte. Limited System and method for encoding using multiple linear feedback shift registers
US10628255B1 (en) 2015-06-11 2020-04-21 Avago Technologies International Sales Pte. Limited Multi-dimensional decoding
US9851921B1 (en) 2015-07-05 2017-12-26 Avago Technologies General Ip (Singapore) Pte. Ltd. Flash memory chip processing
US9954558B1 (en) 2016-03-03 2018-04-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Fast decoding of data stored in a flash memory

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5592415A (en) * 1992-07-06 1997-01-07 Hitachi, Ltd. Non-volatile semiconductor memory
US5437020A (en) * 1992-10-03 1995-07-25 Intel Corporation Method and circuitry for detecting lost sectors of data in a solid state memory disk
JP3105092B2 (ja) * 1992-10-06 2000-10-30 株式会社東芝 半導体メモリ装置
US5603001A (en) * 1994-05-09 1997-02-11 Kabushiki Kaisha Toshiba Semiconductor disk system having a plurality of flash memories
US5778440A (en) * 1994-10-26 1998-07-07 Macronix International Co., Ltd. Floating gate memory device and method for terminating a program load cycle upon detecting a predetermined address/data pattern
WO1996041346A1 (en) * 1995-06-07 1996-12-19 Macronix International Co., Ltd. Automatic programming algorithm for page mode flash memory with variable programming pulse height and pulse width
US5754567A (en) * 1996-10-15 1998-05-19 Micron Quantum Devices, Inc. Write reduction in flash memory systems through ECC usage
US5937423A (en) * 1996-12-26 1999-08-10 Intel Corporation Register interface for flash EEPROM memory arrays
US5841696A (en) * 1997-03-05 1998-11-24 Advanced Micro Devices, Inc. Non-volatile memory enabling simultaneous reading and writing by time multiplexing a decode path
JPH11224492A (ja) * 1997-11-06 1999-08-17 Toshiba Corp 半導体記憶装置、不揮発性半導体記憶装置及びフラッシュメモリ
US5875130A (en) * 1998-05-27 1999-02-23 Advanced Micro Devices Method for programming flash electrically erasable programmable read-only memory
US5999451A (en) * 1998-07-13 1999-12-07 Macronix International Co., Ltd. Byte-wide write scheme for a page flash device
JP4141581B2 (ja) * 1999-04-05 2008-08-27 株式会社ルネサステクノロジ フラッシュメモリを搭載する記憶装置
JP4201927B2 (ja) * 1999-08-25 2008-12-24 株式会社ルネサステクノロジ データ処理管理装置
US6163478A (en) * 1999-10-19 2000-12-19 Advanced Micro Devices, Inc. Common flash interface implementation for a simultaneous operation flash memory device
US6111787A (en) * 1999-10-19 2000-08-29 Advanced Micro Devices, Inc. Address transistion detect timing architecture for a simultaneous operation flash memory device
US7076598B2 (en) * 2003-09-09 2006-07-11 Solid State System Co., Ltd. Pipeline accessing method to a large block memory
US6958936B2 (en) * 2003-09-25 2005-10-25 Sandisk Corporation Erase inhibit in non-volatile memories
JP4470455B2 (ja) * 2003-11-05 2010-06-02 Tdk株式会社 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8521946B2 (en) 2008-09-26 2013-08-27 Samsung Electronics Co., Ltd. Semiconductor disk devices and related methods of randomly accessing data

Also Published As

Publication number Publication date
JP4744867B2 (ja) 2011-08-10
US20050141273A1 (en) 2005-06-30
JP2011018372A (ja) 2011-01-27
JP2005196764A (ja) 2005-07-21
KR20050069218A (ko) 2005-07-05
US7212426B2 (en) 2007-05-01

Similar Documents

Publication Publication Date Title
KR100528482B1 (ko) 데이타를 섹터 단위로 랜덤하게 입출력할 수 있는 플래시메모리 시스템
KR101529291B1 (ko) 플래시 메모리 장치 및 그것을 포함한 플래시 메모리시스템
US8189424B2 (en) Semiconductor memory device having plurality of types of memories integrated on one chip
JP2008524748A (ja) メモリシステムにおけるデータ再配置
US11037609B2 (en) Semiconductor devices
US20190198120A1 (en) Memory system
US10283174B2 (en) Memory system initializing page buffers and operating method thereof
JP2008108418A (ja) マルチページプログラムの方法、及びこれを行うためのフラッシュメモリ装置
US11133054B2 (en) Semiconductor devices performing for column operation
US20220308969A1 (en) Memory device with failed main bank repair using redundant bank
US11467965B2 (en) Processing-in-memory (PIM) device
US10629248B2 (en) Semiconductor devices configured to store bank addresses and generate bank group addresses
US9607706B1 (en) Semiconductor memory device
US10319455B2 (en) Semiconductor device
US11269779B2 (en) Memory system with a predictable read latency from media with a long write latency
US20210350837A1 (en) Processing-in-memory (pim) device
US20210208816A1 (en) Processing-in-memory(pim) device
US11049530B2 (en) Semiconductor devices
US20240120015A1 (en) Semiconductor device and method for performing test
US10950283B1 (en) Semiconductor devices
US10559332B1 (en) Semiconductor devices
JP2007066119A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2022118840A (ja) 半導体装置および連続読出し方法
JP2023552449A (ja) メモリデバイスのページバッファ内のデータ読取り用クロック信号返還スキーム
KR20210062126A (ko) 낸드플래시 메모리의 무효 데이터 처리회로

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: 20121031

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20131031

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20141031

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20151030

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20181031

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20191031

Year of fee payment: 15