KR20050037695A - 플래시메모리 제어기 - Google Patents

플래시메모리 제어기 Download PDF

Info

Publication number
KR20050037695A
KR20050037695A KR1020030072934A KR20030072934A KR20050037695A KR 20050037695 A KR20050037695 A KR 20050037695A KR 1020030072934 A KR1020030072934 A KR 1020030072934A KR 20030072934 A KR20030072934 A KR 20030072934A KR 20050037695 A KR20050037695 A KR 20050037695A
Authority
KR
South Korea
Prior art keywords
flash memory
bus
data
read
write
Prior art date
Application number
KR1020030072934A
Other languages
English (en)
Inventor
이명섭
Original Assignee
매그나칩 반도체 유한회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 매그나칩 반도체 유한회사 filed Critical 매그나칩 반도체 유한회사
Priority to KR1020030072934A priority Critical patent/KR20050037695A/ko
Publication of KR20050037695A publication Critical patent/KR20050037695A/ko

Links

Classifications

    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1678Details of memory controller using bus width
    • 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

Abstract

본 발명은 메모리 버스를 통해 플래시메모리와 연결되고, 호스트 버스를 통해 호스트 시스템과 연결되는 플래시메모리 제어기에 있어서, 크기 신호에 의해 제어되는 적어도 2 개의 패리티 블록과 적어도 2 개의 신드롬 블록, 및 데이터 리드 및 라이트 상태 제어수단(data read/write state machine)에 의해 동작되는 적어도 2 개의 리드 레지스터와 적어도 2 개의 라이트 레지스터를 포함하고, 메모리 버스를 통해 플래시메모리로부터 ID를 리드하여 몇 비트 데이터 버스인 플래시메모리인지를 확인하고, 플래시메모리가 병렬로 연결되어 있는지 확인하기 위해 ID를 추가로 리드하기 때문에, 데이터 버스가 8 비트인 플래시메모리나 데이터 버스가 16 비트인 플래시메모리에 모두 사용가능하며, 고속의 데이터 전송 속도(data transfer rate)를 갖는 기술이다.

Description

플래시메모리 제어기{Flash memory controller}
본 발명은 플래시메모리 제어기(flash memory controller)에 관한 것으로, 보다 상세하게는 플래시 액세스 데이터 버스를 8 비트(bit) 또는 16 비트로 사용하도록 구성하여 데이터 버스가 8 비트인 플래시메모리나 데이터 버스가 16 비트인 플래시메모리에 모두 사용가능하며, 고속의 데이터 전송 속도(data transfer rate)를 갖는 기술이다.
일반적으로 플래시메모리 제어기(flash memory controller)는 호스트 시스템(에를 들어, PC 또는 휴대용 전자 기기)과 플래시메모리 사이에 연결되어 데이터 입출력을 제어한다.
플래시메모리에 데이터를 쓰는 동작(또는 프로그램 동작)과 플래시메모리로부터 데이터를 읽는 동작에는 시간이 많이 걸린다. 따라서 플래시메모리 제어 시스템에서는 플래시메모리에 대한 데이터 읽기와 쓰기에 걸리는 시간을 줄이는 것이 가장 중요한 기술적인 과제 중의 하나이다. 종래 기술에서는 데이터 읽기 쓰기 속도를 높이기 위해 소프트웨어를 최적화 하는 방법이나 주파수를 증가시키는 방법(예를 들어, 호스트 시스템에서 입력되는 데이터를 처리하는 메모리 제어기의 동작 속도를 높이거나 메모리 제어기와 플래시메모리 사이의 인터페이스 속도를 높이는 방법) 또는 여러 개의 플래시메모리를 병렬로 연결하는 방법을 사용하였다.
그런데, 종래 기술에 따른 소프트웨어 최적화 기술에서는 호스트 시스템이나 플래시메모리 제어 시스템의 구성에 따라 한계가 있고, 주파수 증가 방법은 플래시메모리의 동작 한계와 시스템의 전류 증가로 인하여 속도 향상이 제한되는 문제점이 있다.
한편 플래시메모리를 병렬로 연결하는 종래 기술에서는 예를 들어, 2개의 플래시메모리 칩을 독립적으로 제어하기 때문에 플래시메모리 제어기는 병렬로 연결된 플래시메모리를 독립적으로 액세스하기 위한 병렬연결 가능한 수만큼의 제어 신호 인터페이스 핀과 병렬연결이 가능한 수만큼의 데이터 인터페이스 핀이 필요하게 된다. 또한 병렬로 연결된 각각의 플래시메모리를 별개로 제어해야 하기 때문에 병렬로 연결된 플래시메모리의 수만큼 프로그램이 길어지는 문제점이 있다.
또한 16 비트 ECC(Error Coding and Correction)는 8 비트 ECC보다 2배 이상의 크기를 가지며 회로 구현이 매우 어렵고, 하나의 사이클 내에 에러 보정(error collection)을 수행하기 어려운 문제점이 있다.
상기 문제점을 해결하기 위한 본 발명의 목적은 데이터 버스가 16 비트인 플래시메모리를 연결하여 사용할 수 있고, 데이터 버스가 8 비트인 플래시메모리를 병렬로 연결하여 데이터 버스가 16 비트인 플래시메모리처럼 사용하는 것이다.
상기 문제점을 해결하기 위한 본 발명의 다른 목적은 16 비트 데이터 버스를 통해 플래시메모리로부터 데이터를 리드 및 라이트 하여 고속의 데이터 전송율(data transfer rate)을 갖는 것이다.
상기 문제점을 해결하기 위한 본 발명의 또 다른 목적은 16 비트 데이터 버스를 통해 플래시메모리로부터 데이터를 리드 및 라이트 할 때 8 비트 ECC를 수정할 필요 없이 사용하는 것이다.
상기 목적을 달성하기 위한 본 발명은 메모리 버스를 통해 플래시메모리와 연결되고, 호스트 버스를 통해 호스트 시스템과 연결되는 플래시메모리 제어기에 있어서, 크기 신호에 의해 제어되는 적어도 2 개의 패리티 블록과 적어도 2 개의 신드롬 블록을 포함하는 것을 특징으로 한다.
또한 상기 목적을 달성하기 위한 본 발명은 데이터 리드 및 라이트 상태 제어수단(data read/write state machine)에 의해 동작되는 적어도 2 개의 리드 레지스터와 적어도 2 개의 라이트 레지스터를 더 포함하는 것을 특징으로 한다.
또한 상기 목적을 달성하기 위한 본 발명은 상기 메모리 버스를 통해 상기 플래시메모리로부터 ID를 리드하여 몇 비트 데이터 버스인 플래시메모리인지를 확인하는 것을 특징으로 한다.
또한 상기 목적을 달성하기 위한 본 발명은 상기 플래시메모리가 병렬로 연결되어 있는지 확인하기 위해 ID를 추가로 리드하는 것을 특징으로 한다.
상술한 목적 및 기타의 목적과 본 발명의 특징 및 이점은 첨부도면과 관련한 다음의 상세한 설명을 통해 보다 분명해 질 것이다.
이하, 첨부 도면을 참조하여 본 발명의 실시예를 상세히 설명하면 다음과 같다.
도 1은 본 발명에 따른 플래시메모리 제어기를 나타낸 상세 블록도이다.
플래시메모리 제어기는 메모리 버스를 통해 플래시메모리와 연결되고, 호스트 버스를 통해 호스트 시스템과 연결된다.
플래시메모리 제어기는 메모리 버스를 통해 메모리와 데이터를 통신하고 메모리의 동작을 제어한다.
여기서 메모리 버스는 칩 선택신호 버스, 상태 신호 버스, 데이터 버스(IO<7:0>, IO<15:8>), 및 제어신호 버스를 포함한다.
제어신호 버스를 통해 전송되는 제어신호는 CLE(Command Latch Enable), ALE(Address Latch Enable), WE(Write Enable), RE(Read Enable), WP(Write Protect), PRE(Power-on Read Enable) 신호등을 포함한다.
상태 신호 버스는 상태 신호 RDBY(Ready/Busy output)를 전송하는데, 상태 신호 RDBY는 플래시메모리에서 생성되어 플래시메모리가 준비 상태(ready)인지 동작상태(busy)인지를 나타낸다.
ALE 블록(11)은 어드레스<0>에 의해 제어되며, ALE 신호는 정상 상태에서 로우 레벨을 유지하고, 인에이블 되면 하이 레벨로 천이 한다.
CLE 블록(12)은 어드레스<1>에 의해 제어되며, CLE 신호는 정상 상태에서 로우 레벨을 유지하고, 인에이블 되면 하이 레벨로 천이 한다.
RE 블록(13)은 어드레스<2>에 의해 제어되며, RE 신호는 정상 상태에서 하이 레벨을 유지하고, 인에이블 되면 하나의 사이클 동안 로우 레벨로 천이한 후에 다시 하이 레벨로 천이하고, 대기 시간(wait time)이 있는 경우 한 사이클 동안 로우 레벨을 유지하고, 다시 한 사이클 동안 하이 레벨을 유지하는 상태를 대기 시간이 끝날 때까지 반복한다.
WE 상태 제어블록(WE state machine)(14)은 어드레스<3>에 의해 제어되며, WE 신호는 정상 상태에서 하이 레벨을 유지하고, 인에이블 되면 하나의 사이클 동안 로우 레벨을 유지한 후에 다시 하이 레벨로 천이 하는데, 대기 시간(wait time)이 있는 경우 한 사이클 동안 로우 레벨을 유지하고, 다음 한 사이클 동안 하이 레벨을 유지하는 동작을 대기 시간이 끝날 때까지 반복한다.
WP 블록(15)은 어드레스<4>에 의해 제어되며, WP 신호는 초기에 플래시메모리로 유효하지 않은 데이터가 라이트 되는 것을 방지하기 위해 로우 레벨을 유지하며, 플래시메모리 제어 블록의 다른 부분에서 인에이블 되면 하이 레벨로 천이 한다. WP 블록(15)이 인에이블 되면 WP 신호는 로우 레벨로 천이하고 WP 블록(15)을 디스에이블 시키거나 다른 블록을 인에이블 시키면 다시 하이 레벨로 천이 한다.
CE 디코더 블록(16)은 어드레스<5>에 의해 제어되며, CE 신호는 정상 상태에서 하이 레벨을 유지하는데, 인에이블 되면 로우 레벨로 천이하고, 디스에이블 되면 다시 하이 레벨로 천이 한다. 또한 Data<3:0>를 디코딩 하여 칩 밀도(chip density)를 높이기 위해 16개의 CE 신호 CE<15:0>를 사용한다.
리드 및 라이트(Read/Write) 블록(17)은 BS 신호 및 리드 시에는 로우 레벨이고, 라이트 시에 하이 레벨인 라이트(write) 신호(WR)에 의해 제어되며, FRD 및 FWR 신호는 플래시메모리 제어 블록 인에이블 신호(BS) 신호가 인에이블일 때 WR 신호가 하이 레벨이면 FWR 신호가 인에이블 되고, BS 신호가 인에이블일 때 WR 신호가 로우 레벨이면 FRD 신호가 인에이블 된다.
FRD 및 FWR 신호는 제어 레지스터(control register)(18)를 인에이블 시키거나 각 상태 제어부(state machine)를 인에이블 시킨다.
제어 레지스터(control register)(18)는 각 패리티 발생 상태 제어부(parity generator state machine)(19)와 신드롬 상태 제어부(syndrome state machine)(20)를 제어한다.
패리티 발생 상태 제어부(19)는 제어 레지스터(18)로부터 출력된 신호(CON)에 의해 제어되어 각 패리티 발생기(parity generator)(21, 22)의 동작에 필요한 상태(state machine)를 생성한다.
패리티 발생기(21, 22)는 인에이블 되면 패리티 발생기 상태 제어부(19)에 의해 동작하여 패리티를 생성하는데, 크기(size) 신호(SZ)가 로우 레벨인 경우는 제 1 패리티 발생기(21)만 동작하고, 크기 신호(SZ)가 하이 레벨인 경우는 제 1 패리티 발생기(21)와 제 2 패리티 발생기(22) 모두 동작한다.
신드롬 발생기 상태 제어부(20)는 제어 레지스터(18)로부터 출력된 신호에 의해 제어되어 신드롬 발생기(23, 24)에 필요한 상태(state machine)를 생성한다.
신드롬 발생기(syndrome generator)(23, 24)는 인에이블 되면 신드롬 발생기 상태 제어부(20)에 의해 동작하며 신드롬을 생성하는데, 크기 신호(SZ)가 로우 레벨인 경우 제 1 신드롬 발생기(23)만 동작하고, 크기 신호(SZ)가 하이 레벨인 경우 제 1 신드롬 발생기(23)와 제 2 신드롬 발생기(24) 모두 동작한다. 최종적으로 발생된 신드롬 값이 "0"이 아닌 경우는 플래시메모리로부터 리드 또는 라이트 시에 잃어버린 데이터가 있음을 의미한다.
데이터 리드 또는 라이트 상태 제어부(25)는 제어 레지스터(18)로부터 출력된 신호(CON)에 의해 제어되어 인에이블 되고, 데이터 버스 값 또는 패리티 값을 라이트 레지스터(26, 27)에 라이트 할지를 선택하거나, 연속적으로 2 바이트(byte) 라이트 할 때 필요한 상태(state machine)와 연속적으로 2 바이트를 리드할 때 필요한 상태(state machine)를 생성한다.
라이트 레지스터(26, 27)는 인에이블 되면 데이터 리드 및 라이트 상태 제어부(25)로부터 출력된 데이터 라이트 상태(data write state machine)에 의해 라이트 레지스터(26, 27)의 값을 바이트 단위로 시프트 시켜 데이터 버스(IO)로 출력한다.
리드 레지스터(28, 29)는 인에이블 되면 데이터 리드 및 라이트 상태 제어부(25)로부터 출력된 데이터 리드 상태(data read state machine)에 의해 동작하며 데이터 버스(IO)로부터 리드한 데이터를 바이트 단위로 시프트 시킨다.
이와 같이 구성된 본 발명에 따른 플래시메모리 제어기의 동작을 설명하면 다음과 같다.
초기 동작 시에는 16 비트 호스트 버스 인터페이스하며, 8 비트 데이터 버스 인터페이스 한다.
8 비트 플래시 데이터 버스를 통해 플래시메모리로부터 ID를 리드하여 8 비트 플래시 데이터 버스인 플래시메모리인지 16 비트 플래시 데이터 버스인 플래시메모리인지를 확인한다.
ID 확인 결과 16 비트 플래시 데이터 버스인 플래시메모리인 경우 이후부터는 16 비트 플래시 데이터 버스(IO<7:0>, IO<15:8>)로 플래시메모리와 인터페이스하며 호스트 버스(DB<31:0>)도 16 비트 버스에서 32 비트 버스로 확장하며 이에 따라 크기 신호(SZ)는 하이 레벨을 유지한다.
한편, ID 확인 결과 8 비트 플래시 데이터 버스인 플래시메모리인 경우 플래시메모리가 병렬로 연결되어 있는지 확인하기 위해 다시 ID를 리드한다.
ID 확인 결과 8 비트 플래시 데이터 버스인 플래시메모리가 병렬로 연결된 경우 16 비트 플래시 데이터 버스(IO<7:0>, IO<15:8>)로 플래시메모리와 인터페이스하고 호스트 버스(DB<31:0>)도 16 비트 버스에서 32 비트 버스로 확장하는데, 이에 따라 크기 신호(SZ)는 하이 레벨을 유지한다. 한편, 플래시메모리가 병렬로 연결되지 않은 경우 호스트 버스는 16 비트 버스 인터페이스하고, 데이터 버스는 8 비트 데이터 버스로 플래시메모리와 인터페이스하며 크기 신호(SZ)는 로우 레벨이 된다.
크기 신호(SZ)가 로우 레벨인 경우 제 2 패리티 발생기(22), 제 2 신드롬 발생기(24), 제 2 라이트 레지스터(27), 및 제 2 리드 레지스터(29)는 항상 디스에이블 된다.
라이트 동작은 데이터 라이트, 패리티를 발생하는 데이터 라이트(data write with parity generation), 패리티 라이트 등이 있으며, 제어 레지스터(18)에 의해 선택된다.
패리티 발생기(21, 22)는 패리티를 발생하는 데이터 라이트 시에 인에이블 되며, 4 사이클 동작으로 수행된다. 즉, 첫 번째 사이클에서 데이터(D<7:0>)의 값을 로드(load)하고, 두 번째 사이클에서 패리티 발생과 동시에 데이터(D<15:8>)의 값이 데이터(D<7:0>)로 시프트하고, 세 번째 사이클에서 데이터(D<7:0>)의 값을 로드(load)하고, 네 번째 사이클에서 패리티 발생을 수행한다.
라이트 레지스터(26, 27)는 3 사이클 동작으로 수행되는데, 첫 번째 사이클에서 입력된 데이터(D<7:0>)를 데이터 버스(IO<7:0>)로 출력하고, 두 번째 사이클에서 입력된 데이터(D<15:8>)의 값이 데이터(D<7:0>)로 시프트하고, 세 번째 사이클에서 데이터(D<7:0>)를 데이터 버스(IO<7:0>)로 출력한다.
리드 동작은 데이터 리드, 신드롬을 발생하는 데이터 리드, 신드롬 리드 등이 있으며, 제어 레지스터(18)에 의해 선택된다.
리드 레지스터(28, 29)는 3 사이클 동작으로 수행되는데, 첫 번째 사이클에서 데이터 버스(IO<7:0>)를 통해 입력된 데이터를 데이터(RD<7:0>)로 로드하고, 두 번째 사이클에서 데이터(RD<7:0>)의 값이 데이터(RD<15:8>)로 시프트하고, 세 번째 사이클에서 데이터 버스(IO<7:0>)를 통해 입력된 데이터를 데이터(RD<7:0>)로 로드 한다.
신드롬 발생기(23, 24)는 신드롬을 발생하는 데이터 리드 시에 인에이블 되며, 4 사이클 동작으로 수행되는데, 첫 번째 사이클에서 데이터(RD<7:0>)의 값을 로드하고, 두 번째 사이클에서 신드롬 발생과 동시에 데이터(RD<15:8>)의 값이 데이터(RD<7:0>)로 시프트하고, 세 번째 사이클에서 데이터(RD<7:0>)의 값을 로드하고, 네 번째 사이클에서 신드롬 발생을 수행한다.
한편, 크기 신호(SZ)가 하이 레벨인 경우, 라이트 동작은 데이터 라이트, 패리티를 발생하는 데이터 라이트, 패리티 라이트 등이 있으며 제어 레지스터(18)에 의해 선택된다.
바이트 교환(byte swap)은 데이터(D<23:16>)와 데이터(D<15:8>)를 바이트 단위로 교환(swap)을 실행하고, [D<23:16>, D<7:0>]의 16 비트 값을 제 1 패리티 발생기(21)로 보내며, [D<31:24>, D<15:8>]의 16 비트 값을 제 2 패리티 발생기(22)로 보낸다.
패리티 발생기(21, 22)는 패리티를 발생하는 데이터 라이트 시에 인에이블 되며, 4 사이클 동작으로 수행되는데, 첫 번째 사이클에서 데이터(D<7:0>)의 값을 로드(load)하고, 두 번째 사이클에서 패리티 발생과 동시에 데이터(D<15:8>)의 값이 데이터(D<7:0>)로 시프트하고, 세 번째 사이클에서 데이터(D<7:0>)의 값을 로드(load)하고, 네 번째 사이클에서 패리티 발생을 수행한다.
라이트 레지스터(26, 27)는 3 사이클 동작으로 수행되는데, 첫 번째 사이클에서 입력된 데이터(RD<7:0>)를 데이터 버스(IO<7:0>)로 출력하고, 두 번째 사이클에서 데이터(RD<15:8>)의 값이 데이터(RD<7:0>)로 시프트하고, 세 번째 사이클에서 데이터(RD<7:0>)를 데이터 버스(IO<7:0>)로 출력한다.
리드 동작은 데이터 리드, 신드롬을 발생하는 데이터 리드, 신드롬 리드 등이 있으며 제어 레지스터(18)에 의해 선택된다.
데이터 버스(IO<7:0>)는 제 1 리드 레지스터(28)로, 다른 데이터 버스(IO<15:8>)는 제 2 리드 레지스터(29)로 보내진다.
리드 레지스터(28, 29)는 3 사이클 동작으로 수행되는데, 첫 번째 사이클에서 데이터 버스(IO<7:0>)로부터 입력된 데이터를 데이터(D<7:0>)로 로드하고, 두 번째 사이클에서 데이터(RD<7:0>)의 값이 데이터(RD<15:8>)로 시프트하고, 세 번째 사이클에서 데이터 버스(IO<7:0>)를 통해 입력된 데이터를 데이터(RD<7:0>)로 로드 한다.
신드롬 발생기(23, 24)는 신드롬을 발생하는 데이터 리드 시에 인에이블 되며, 4 사이클 동작으로 수행되는데, 첫 번째 사이클에서 데이터(RD<7:0>)의 값을 로드하고, 두 번째 사이클에서 신드롬 발생과 동시에 데이터(RD<15:8>)의 값이 데이터(RD<7:0>)로 시프트하고, 세 번째 사이클에서 데이터(RD<7:0>)의 값을 로드하고, 네 번째 사이클에서 신드롬 발생을 수행한다.
즉, 제 1 신드롬 발생기(23)나 제 1 리드 레지스터(28)의 값이 데이터(RD<15:0>)가 되고, 제 2 신드롬 발생기(24)나 제 2 리드 레지스터(29)의 값이 데이터(RD<31:16>)가 된다.
이와 같이 본 발명에 따른 플래시메모리 제어기는 플래시메모리로 데이터를 라이트하기 위해 패리티 발생기와 라이트 레지스터를 각 2 개씩 배치하고 플래시메모리로부터 데이터를 리드하기 위해 신드롬 발생기와 리드 레지스터를 각 2 개씩 배치하여 데이터 버스를 16 비트로 한다. 또한 호스트 버스를 32 비트로 확장하며 버스 크기를 나타내는 크기 신호(SZ)를 추가로 연결하여 크기 신호(SZ) 값에 의해 패리티 발생기나 라이트 레지스터를 1 개만 동작시키거나 2 개 모두 동작시킬 수 있고, 신드롬 발생기나 리드 레지스터를 1 개만 동작시키거나 2 개 모두 동작시킬 수 있다.
이상에서 살펴본 바와 같이, 본 발명에 따른 플래시메모리 제어기는 데이터 버스가 16 비트인 플래시메모리를 연결하여 사용할 수 있고, 데이터 버스가 8 비트인 플래시메모리를 병렬로 연결하여 데이터 버스가 16 비트인 플래시메모리처럼 사용이 가능하고, 16 비트 데이터 버스를 통해 플래시메모리로부터 데이터를 리드 및 라이트 할 수 있기 때문에 고속의 데이터 전송율(data transfer rate)을 갖는 효과가 있다.
또한 16 비트 데이터 버스를 통해 플래시메모리로부터 데이터를 리드 및 라이트 할 때 8 비트 ECC를 수정할 필요 없이 사용할 수 있는 효과가 있다.
아울러 본 발명의 바람직한 실시예는 예시의 목적을 위한 것으로, 당업자라면 첨부된 특허청구범위의 기술적 사상과 범위를 통해 다양한 수정, 변경, 대체 및 부가가 가능할 것이며, 이러한 수정 변경 등은 이하의 특허청구범위에 속하는 것으로 보아야 할 것이다.
도 1은 본 발명에 따른 플래시메모리 제어기를 나타낸 상세 블록도.

Claims (10)

  1. 메모리 버스를 통해 플래시메모리와 연결되고, 호스트 버스를 통해 호스트 시스템과 연결되는 플래시메모리 제어기에 있어서,
    상기 플래시메모리의 데이터 버스 크기에 따라 그 값이 설정되는 크기 신호에 의해 제어되는 적어도 2 개의 패리티 블록과 적어도 2 개의 신드롬 블록을 포함하여, 비트 수가 낮은 데이터 버스를 갖는 상기 플래시메모리를 병렬로 연결하여, 비트 수가 높은 데이터 버스를 갖는 상기 플래시메모리와 동일하게 동작하는 것을 특징으로 하는 플래시메모리 제어기.
  2. 제 1 항에 있어서,
    데이터 리드 및 라이트 상태 제어수단(data read/write state machine)에 의해 동작되는 적어도 2 개의 리드 레지스터와 적어도 2 개의 라이트 레지스터를 더 포함하는 것을 특징으로 하는 플래시메모리 제어기.
  3. 제 2 항에 있어서,
    상기 메모리 버스는 칩 선택신호 버스, 상태 신호 버스, 데이터 버스, 및 제어신호 버스를 포함하는 것을 특징으로 하는 플래시메모리 제어기.
  4. 제 3 항에 있어서,
    상기 제어신호 버스를 통해 전송되는 제어신호는 CLE(Command Latch Enable), ALE(Address Latch Enable), WE(Write Enable), RE(Read Enable), WP(Write Protect), PRE(Power-on Read Enable)를 포함하는 것을 특징으로 하는 플래시메모리 제어기.
  5. 제 3 항에 있어서,
    상기 상태 신호 버스는 상태 신호(Ready/Busy output)를 전송하는데, 상기 상태 신호는 플래시메모리에서 생성되어 플래시메모리가 준비 상태(ready)인지 동작상태(busy)인지를 나타내는 신호인 것을 특징으로 하는 플래시메모리 제어기.
  6. 제 3 항에 있어서,
    상기 데이터 버스는 비트 수가 적은 적어도 2 개의 데이터 버스를 포함하는 것을 특징으로 하는 플래시메모리 제어기.
  7. 제 2 항에 있어서,
    상기 크기 신호가 인에이블 상태인 경우 모든 상기 패리티 블록, 상기 신드롬 블록, 상기 리드 레지스터, 및 상기 라이트 레지스터가 동작하는 것을 특징으로 하는 플래시메모리 제어기.
  8. 제 2 항에 있어서,
    상기 크기 신호가 디스에이블 상태인 경우 상기 패리티 블록, 상기 신드롬 블록, 상기 리드 레지스터, 및 상기 라이트 레지스터 중의 특정 일부만이 동작하는 것을 특징으로 하는 플래시메모리 제어기.
  9. 제 1 항에 있어서,
    상기 메모리 버스를 통해 상기 플래시메모리로부터 몇 비트 데이터 버스인 플래시메모리인지를 확인하는 것을 특징으로 하는 플래시메모리 제어기.
  10. 제 9 항에 있어서,
    상기 메모리 버스를 통해 상기 플래시메모리가 병렬로 연결되어 있는지 확인하는 것을 특징으로 하는 플래시메모리 제어기.
KR1020030072934A 2003-10-20 2003-10-20 플래시메모리 제어기 KR20050037695A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020030072934A KR20050037695A (ko) 2003-10-20 2003-10-20 플래시메모리 제어기

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030072934A KR20050037695A (ko) 2003-10-20 2003-10-20 플래시메모리 제어기

Publications (1)

Publication Number Publication Date
KR20050037695A true KR20050037695A (ko) 2005-04-25

Family

ID=37240313

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030072934A KR20050037695A (ko) 2003-10-20 2003-10-20 플래시메모리 제어기

Country Status (1)

Country Link
KR (1) KR20050037695A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101249251B1 (ko) * 2006-01-04 2013-04-01 삼성전자주식회사 플래시 메모리 컨트롤러

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101249251B1 (ko) * 2006-01-04 2013-04-01 삼성전자주식회사 플래시 메모리 컨트롤러

Similar Documents

Publication Publication Date Title
JP4550439B2 (ja) Ecc制御装置
US8006165B2 (en) Memory controller and semiconductor memory device
US20040255225A1 (en) Control circuit for error checking and correction and memory controller
EP1324190B1 (en) Data processing system having a read-modify-write unit
WO2009093680A1 (ja) マルチプロセッサシステムおよびマルチプロセッサシステムの同期方法
KR101036445B1 (ko) 다중 버스트 프로토콜 장치 제어기
KR20100037313A (ko) 보안 메모리 인터페이스, 이를 포함하는 시스템 및 스마트카드
JP2010501915A (ja) メモリ用モジュールコマンド構造およびメモリシステム
JP2008090419A (ja) 集積回路装置
CN104238957A (zh) 串行外围接口控制器、串行外围接口快闪存储器及其存取方法和存取控制方法
JPH1040122A (ja) 計算機
US7110305B2 (en) Nonvolatile semiconductor memory device for outputting a status signal having an output data width wider than an input data width
CN100392619C (zh) 控制闪存存取时间的方法、闪存的存取系统及闪存控制器
US8291270B2 (en) Request processing device, request processing system, and access testing method
CN115981913A (zh) 基于sram的ecc校验方法及装置
KR20050037695A (ko) 플래시메모리 제어기
JPS60181851A (ja) 部分書込み制御方式
KR101917165B1 (ko) 반도체 메모리 장치
JPWO2010029682A1 (ja) 情報処理装置
KR20030000017A (ko) 플래시 메모리 제어 장치 및 플래시 메모리 제어 방법
KR101118645B1 (ko) 마이클로컨트롤러 개발 시스템
JP3177975B2 (ja) 1チップマイクロコンピュータ
CN115879401A (zh) 一种现场可编程门阵列的端口配置方法
JP3242474B2 (ja) データ処理装置
JPH10340233A (ja) マイクロプロセッサ

Legal Events

Date Code Title Description
N231 Notification of change of applicant
N231 Notification of change of applicant
WITN Withdrawal due to no request for examination