KR20050101838A - Compact flash card - Google Patents

Compact flash card Download PDF

Info

Publication number
KR20050101838A
KR20050101838A KR1020040027059A KR20040027059A KR20050101838A KR 20050101838 A KR20050101838 A KR 20050101838A KR 1020040027059 A KR1020040027059 A KR 1020040027059A KR 20040027059 A KR20040027059 A KR 20040027059A KR 20050101838 A KR20050101838 A KR 20050101838A
Authority
KR
South Korea
Prior art keywords
sector
data
compact flash
host
flash card
Prior art date
Application number
KR1020040027059A
Other languages
Korean (ko)
Other versions
KR100593509B1 (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 KR1020040027059A priority Critical patent/KR100593509B1/en
Publication of KR20050101838A publication Critical patent/KR20050101838A/en
Application granted granted Critical
Publication of KR100593509B1 publication Critical patent/KR100593509B1/en

Links

Classifications

    • 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
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1075Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for multiport memories each having random access ports and serial ports, e.g. video RAM
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/04Arrangements for selecting an address in a digital store using a sequential addressing device, e.g. shift register, counter

Abstract

본 발명은 콤팩 플래쉬 카드 컨트롤러에 관한 것으로서, 보다 상세하게는 8섹터로 구성된 섹터버퍼를 내장하여 싱글 리드/라이트 명령 및 멀티 리드/라이트 명령을 수행하도록 함으로써, 고속의 데이터 전송률(transfer rate)을 가지는 기술을 개시한다.The present invention relates to a compact flash card controller. More particularly, the present invention relates to a compact flash card controller, and more particularly, to embed a sector buffer composed of eight sectors to perform a single read / write command and a multi read / write command, thereby providing a high data transfer rate. Discuss the technique.

이를 위한 본 발명은 호스트와 통신을 시도하는 호스트 인터페이스와, 데이터를 저장하는 복수개의 셀을 구비하는 플래쉬 메모리 어레이와, 복수개의 섹터를 구비하여, 멀티 리드 또는 멀티 라이트 동작 중 적어도 하나를 수행할 때, 상기 호스트 인터페이스로부터 수신한 명령신호에 따라 상기 복수개의 섹터 중 하나의 섹터씩 연속적으로 상기 데이터를 저장 또는 출력 중 하나를 수행하는 콤팩 플래쉬 카드 컨트롤러를 포함하여 구성함을 특징으로 한다.The present invention provides a host interface that attempts to communicate with a host, a flash memory array having a plurality of cells for storing data, and a plurality of sectors to perform at least one of a multi-read or a multi-write operation. And a compact flash card controller configured to continuously store or output the data one by one of the plurality of sectors according to the command signal received from the host interface.

Description

콤팩 플래쉬 카드{Compact flash card}Compact flash card {Compact flash card}

본 발명은 콤팩 플래쉬 카드 컨트롤러에 관한 것으로서, 보다 상세하게는 8섹터로 구성된 섹터버퍼를 내장하여 싱글 리드/라이트 명령 및 멀티 리드/라이트 명령을 수행하도록 함으로써, 고속의 데이터 전송률(transfer rate)을 가지는 기술이다.The present invention relates to a compact flash card controller. More particularly, the present invention relates to a compact flash card controller, and more particularly, to embed a sector buffer composed of eight sectors to perform a single read / write command and a multi read / write command, thereby providing a high data transfer rate. Technology.

최근 하드디스크나 플로피 디스크와 같은 자기 디스크를 대체하기 위해 플래쉬 메모리(flash EEPROM)에 대한 관심이 증가하고 있다. 플래쉬 메모리는 불 휘발성, 저전력 소비형 반도체 메모리로서 전기적으로 프로그램되고, 소형, 경량이고 진동에 대한 저항력이 강하여 휴대용 장치 등에서 많이 응용되고 있다.Recently, interest in flash memory (flash EEPROM) has been increasing to replace magnetic disks such as hard disks and floppy disks. Flash memory is a nonvolatile, low power consumption type semiconductor memory that is electrically programmed, and is widely used in portable devices due to its small size, light weight, and resistance to vibration.

플래쉬 메모리 카드는 하나의 카드상에 적어도 하나 이상의 플래쉬 메모리(IC 칩)을 장착하여 구현된다. The flash memory card is implemented by mounting at least one flash memory (IC chip) on one card.

이러한 플래쉬 메모리 카드의 중 특히, 콤팩 플래쉬 카드(compact flash card; 이하, CF 카드라 함)는 작은 체적, 가벼운 중량의 장점과 동시에 높은 자료 보존성과 신뢰성, 절전 등의 여러 장점을 가지고 있어, 컴퓨터, 컴퓨터 주변기기 영역(복사기, 프린터, 스캐너, 영사기, 외장형 메모리 카드 기기, 카드 판독기 등), 정보 가전(IA)영역(고화질 디지털 텔레비전/HDTV, 시각정보 전환기 STB, 디지털 미디어 플레이어/Media Player 등), 및 휴대형 디지털제품 영역(휴대용 정보 단말기/PDA, 디지털 카메라/Digital Camera, 디지털 워커맨/MP3 Player 등) 등에서 많이 사용되어지고 있다.Among these flash memory cards, the compact flash card (hereinafter referred to as a CF card) has many advantages such as small volume and light weight, and high data retention, reliability, and power saving. Computer peripheral areas (copiers, printers, scanners, projectors, external memory card devices, card readers, etc.), information consumer (IA) areas (high definition digital television / HDTV, visual information changer STB, digital media player / Media Player, etc.), and It is widely used in the field of portable digital products (portable information terminal / PDA, digital camera / digital camera, digital worker / MP3 player, etc.).

도 1은 종래의 호스트(1)와 CF 카드(2)간의 연결 구성도이다.1 is a diagram illustrating a connection between a conventional host 1 and a CF card 2.

호스트(1)는 컴퓨터 등의 통신장치이다. CF 카드(2)는 데이터를 임시 저장하고 삭제할 수 있는 플래쉬 메모리를 내장하여 호스트(1)에 데이터를 송수신 할 수 있다.The host 1 is a communication device such as a computer. The CF card 2 has a built-in flash memory that can temporarily store and delete data, and can transmit and receive data to and from the host 1.

도 2는 도 1의 CF 카드(2)의 세부 구성도이다.2 is a detailed configuration diagram of the CF card 2 of FIG.

종래의 CF 카드(2)는 호스트 인터페이스(10), CF 카드 컨트롤러(20), 및 플래쉬 메모리 어레이(30)를 구비한다.The conventional CF card 2 has a host interface 10, a CF card controller 20, and a flash memory array 30.

호스트 인터페이스(10)는 호스트(1)와 CF 카드(2) 간의 송수신을 위한 것으로, 호스트(1)로부터 어드레스, 명령신호, 제어신호 및 데이터 등을 수신하여 CF 카드 컨트롤러(20)로 전송하고, CF 카드 컨트롤러(20)로부터 제어신호, 데이터 등을 수신하여 호스트(1)로 전송한다.The host interface 10 is for transmitting and receiving between the host 1 and the CF card 2, and receives an address, a command signal, a control signal and data from the host 1 and transmits it to the CF card controller 20, Control signals, data and the like are received from the CF card controller 20 and transmitted to the host 1.

CF 카드 컨트롤러(20)는 내부 메모리(21), 중앙처리부(CPU)(22), 플래쉬 제어부(23), 및 CF 인터페이스(24)를 구비한다.The CF card controller 20 includes an internal memory 21, a central processing unit (CPU) 22, a flash control unit 23, and a CF interface 24.

CF 인터페이스(24)는 제어로직부(25), ATA 레지스터(26), 속성버퍼(27), 및 섹터버퍼(28)를 구비한다. The CF interface 24 includes a control logic section 25, an ATA register 26, an attribute buffer 27, and a sector buffer 28.

제어로직부(25)는 호스트 인터페이스(10)로부터 제어신호 CTRL 및 어드레스 ADD를 수신하여, 속성 버퍼(27) 및 섹터버퍼(28)를 제어한다.The control logic unit 25 receives the control signal CTRL and the address ADD from the host interface 10 to control the attribute buffer 27 and the sector buffer 28.

ATA 레지스터(26)는 호스트 인터페이스(100)간의 송수신 정보를 저장한다.The ATA register 26 stores transmission / reception information between the host interfaces 100.

속성버퍼(27)는 호스트 인터페이스(10)로부터 수신한 데이터의 속성(attribute) 정보를 저장하며, 256 bytes 크기로 구현된다.The attribute buffer 27 stores attribute information of data received from the host interface 10 and is implemented with a size of 256 bytes.

섹터버퍼(28)는 호스트 인터페이스(10) 또는 플래쉬 메모리 어레이(30)로부터 데이터를 수신하여 저장하고, 1섹터로 구현되며 1섹터는 512 bytes 크기로 구현된다.The sector buffer 28 receives data from the host interface 10 or the flash memory array 30 and stores the data. The sector buffer 28 is implemented with one sector and one sector with a size of 512 bytes.

플래쉬 메모리 어레이(30)는 복수개의 메모리 셀을 구비하여 데이터를 저장한다.The flash memory array 30 includes a plurality of memory cells to store data.

상기와 같은 구성을 갖는 종래의 CF 카드 컨트롤러는 1개의 섹터 사이즈에 해당하는 버퍼만을 구비하여 싱글 리드/라이트 섹터 명령을 수행하는데는 무리가 없으나 멀티 리드/라이트 섹터 명령을 수행 시에 리드/라이트 섹터 명령을 연속적으로 수행하지 못하여 고속의 데이터 트랜스퍼 레이트를 구현하기 어려운 문제점이 있다.The conventional CF card controller having the above configuration has only a buffer corresponding to one sector size to perform a single read / write sector command. However, the read / write sector is executed when the multi-read / write sector command is executed. There is a problem in that it is difficult to implement a high data transfer rate because the instruction cannot be continuously executed.

상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 8섹터로 구성된 섹터 버퍼를 이용하여 연속적인 데이터 송수신을 보장함으로써 고속 데이터 송수신을 구현하는데 있다.An object of the present invention for solving the above problems is to implement high-speed data transmission and reception by ensuring continuous data transmission and reception using a sector buffer consisting of eight sectors.

상기 과제를 달성하기 위한 본 발명은 호스트와 통신을 시도하는 호스트 인터페이스와, 데이터를 저장하는 복수개의 셀을 구비하는 플래쉬 메모리 어레이와, 복수개의 섹터를 구비하여, 멀티 리드 또는 멀티 라이트 동작 중 적어도 하나를 수행할 때, 상기 호스트 인터페이스로부터 수신한 명령신호에 따라 상기 복수개의 섹터 중 하나의 섹터씩 연속적으로 상기 데이터를 저장 또는 출력 중 하나를 수행하는 콤팩 플래쉬 카드 컨트롤러를 포함하여 구성함을 특징으로 한다.The present invention for achieving the above object is at least one of a multi-read or multi-write operation having a host interface attempting to communicate with the host, a flash memory array having a plurality of cells for storing data, and a plurality of sectors And a compact flash card controller configured to continuously store or output the data one by one of the plurality of sectors according to the command signal received from the host interface. .

상술한 목적 및 기타의 목적과 본 발명의 특징 및 이점은 첨부도면과 관련한 다음의 상세한 설명을 통해 보다 분명해질 것이다.The above and other objects and features and advantages of the present invention will become more apparent from the following detailed description taken in conjunction with the accompanying drawings.

이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명하면 다음과 같다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 3은 본 발명의 실시예에 따른 호스트(11)와 콤팩 플래쉬 카드(compact flash card; 이하 CF 카드)(12)간의 연결 구성도이다.3 is a diagram illustrating a connection between a host 11 and a compact flash card (CF card) 12 according to an embodiment of the present invention.

호스트(11)는 컴퓨터 등의 통신장치이다. CF 카드(12)는 데이터를 임시 저장하고 삭제할 수 있는 플래쉬 메모리를 내장하여 호스트(11)에 데이터를 송수신 할 수 있다.The host 11 is a communication device such as a computer. The CF card 12 may include a flash memory for temporarily storing and deleting data, and may transmit and receive data to and from the host 11.

도 4는 도 3의 CF 카드(12)의 세부 구성도이다.4 is a detailed configuration diagram of the CF card 12 of FIG.

CF 카드(12)는 호스트 인터페이스(100), CF 카드 컨트롤러(200), 및 플래쉬 메모리 어레이(300)를 구비한다.The CF card 12 includes a host interface 100, a CF card controller 200, and a flash memory array 300.

호스트 인터페이스(100)는 호스트(11)와 CF 카드(12) 간의 송수신을 위한 것으로, 호스트(11)로부터 어드레스, 명령신호, 제어신호 및 데이터 등을 수신하여 CF 카드 컨트롤러(200)로 전송하고, CF 카드 컨트롤러(200)로부터 제어신호, 데이터 등을 수신하여 호스트(11)로 전송한다.The host interface 100 is for transmitting and receiving between the host 11 and the CF card 12, receives an address, a command signal, a control signal and data from the host 11 and transmits it to the CF card controller 200, Control signals, data, and the like are received from the CF card controller 200 and transmitted to the host 11.

CF 카드 컨트롤러(200)는 내부 메모리(201), 중앙처리부(central processing unit; CPU)(202), 플래쉬 메모리 제어부(203), 및 CF 인터페이스(204)를 구비한다.The CF card controller 200 includes an internal memory 201, a central processing unit (CPU) 202, a flash memory controller 203, and a CF interface 204.

내부 메모리(201)는 중앙처리부(202)의 내부 동작결과를 임시 저장한다.The internal memory 201 temporarily stores an internal operation result of the central processing unit 202.

중앙처리부(202)는 내부 메모리(201), 플래쉬 메모리 제어부(203), CF 인터페이스(204)를 제어한다.The central processing unit 202 controls the internal memory 201, the flash memory control unit 203, and the CF interface 204.

플래쉬 메모리 제어부(203)는 중앙처리부(202)의 제어하에 플래쉬 메모리 어레이(300)를 제어하여 데이터를 송수신한다.The flash memory controller 203 controls the flash memory array 300 under the control of the central processing unit 202 to transmit and receive data.

CF 인터페이스(204)는 제어로직부(205), ATA 레지스터(206), 속성버퍼(207), 및 구동부(210)를 구비한다. 제어로직부(205)는 호스트 인터페이스(100)로부터 제어신호 CTRL 및 어드레스 ADD를 수신하여, 속성 버퍼(207) 및 구동부(210)를 제어한다. ATA 레지스터(26)는 호스트 인터페이스(100)간의 송수신 정보를 저장한다. 속성버퍼(207)는 호스트 인터페이스(100)로부터 수신한 데이터의 속성(attribute) 정보를 저장하며, 256 bytes 크기로 구현된다.The CF interface 204 includes a control logic unit 205, an ATA register 206, an attribute buffer 207, and a driver 210. The control logic unit 205 receives the control signal CTRL and the address ADD from the host interface 100 to control the attribute buffer 207 and the driver 210. The ATA register 26 stores transmission / reception information between the host interfaces 100. The attribute buffer 207 stores attribute information of data received from the host interface 100 and is implemented with a size of 256 bytes.

구동부(210)는 섹터버퍼(211), 어드레스 카운터(212), 섹터 포인터부(213), 및 트랜스퍼 카운터(214)를 구비한다.The driver 210 includes a sector buffer 211, an address counter 212, a sector pointer 213, and a transfer counter 214.

섹터버퍼(211)는 호스트 인터페이스(100) 또는 플래쉬 메모리 어레이(300)로부터 데이터를 수신하여 저장하고, 총 8섹터로 구현되며 1섹터당 512 bytes 크기로 구현되므로 총 4096 bytes 크기로 구현된다.The sector buffer 211 receives data from the host interface 100 or the flash memory array 300 and stores the data. The sector buffer 211 is implemented with 8 sectors in total and 512 bytes in one sector.

즉, 섹터 버퍼(211)는 2048 바이트의 듀얼 포트 램 2개로 구성되며, 로직적으로 2개의 메모리를 각각 8개의 영역으로 구분하여 사용한다. 8개의 영역으로 구분된 각 메모리는 짝수 데이터 레지스터와 홀수 데이터 레지스터를 구비하며 데이터 버스는 8비트이다.That is, the sector buffer 211 consists of two dual port RAMs of 2048 bytes, and logically divides two memories into eight regions. Each memory divided into eight areas has an even data register and an odd data register, and the data bus is 8 bits.

어드레스 카운터(212)는 섹터 버퍼(211)의 섹터 중 사용중인 섹터의 어드레스를 카운팅하여 최고 256값까지 카운팅하며, 8비트 카운팅 값을 출력한다.The address counter 212 counts the addresses of the sectors in use among the sectors of the sector buffer 211 and counts up to 256 values, and outputs an 8-bit counting value.

섹터 포인터부(213)는 호스트(100)와 데이터 송수신을 진행하고 있는 섹터를 가리키는 포인터로 3비트로 구현된다. 섹터 포인터부(213)는 호스트(100)에서 섹터 버퍼를 액세스시에 4096바이트 섹터버퍼(208)의 상위 어드레스 3비트를 가리킨다. 이때, 섹터 포인터는 섹터 버퍼(211)의 8개의 섹터 중 어느 섹터의 데이터를 트랜스퍼할 것인지를 나타낸다.The sector pointer unit 213 is a pointer indicating a sector in which data is transmitted and received with the host 100, and is implemented in 3 bits. The sector pointer portion 213 points to the upper three bits of the 4096-byte sector buffer 208 when the sector buffer accesses the sector buffer. At this time, the sector pointer indicates which sector of the eight sectors of the sector buffer 211 is to be transferred.

트랜스퍼 카운터(214)는 호스트(100)와 데이터 트랜스퍼해야 할 섹터 카운트를 저장하는 레지스터이다. 트랜스퍼 카운터(214)는 1개의 섹터가 데이터를 전송할 때마다 값이 1씩 감소하도록 다운 카운팅되고, 카운팅 값이 "0"이 되면 데이터 트랜스퍼를 중지한다.The transfer counter 214 is a register that stores a sector count to be transferred data with the host 100. Transfer counter 214 is counted down to decrease the value by one each time one sector transmits data, and stops data transfer when the counting value reaches " 0 ".

트랜스퍼 카운터(210)는 라이트 섹터 명령에 의한 동작 수행 시 섹터 카운터 값은 항상 "0"을 유지한다.The transfer counter 210 always maintains a sector counter value of "0" when performing an operation by a write sector command.

트랜스퍼 카운터(214)는 다운카운터로서, 섹터버퍼(211)의 8개의 섹터로부터 각각 데이터 전송 시마다 1씩 감소하고, 트랜스퍼 카운터(214)의 카운팅 값이 "0"이 되면 콤팩 플래쉬 카드 컨트롤러(200)는 데이터 전송 동작을 중지시킨다.The transfer counter 214 is a down counter, and decreases by one for each data transfer from eight sectors of the sector buffer 211. When the counting value of the transfer counter 214 becomes "0", the compact flash card controller 200 Stops the data transfer operation.

플래쉬 메모리 어레이(300)는 복수개의 메모리 셀을 구비하여 데이터를 저장한다.The flash memory array 300 includes a plurality of memory cells to store data.

이하, 도 5 내지 도 8을 참조하여, 본 발명의 실시예에 따른 콤팩 플래쉬 카드의 동작 및 작용을 설명하기로 한다.5 to 8, the operation and operation of the compact flash card according to the embodiment of the present invention will be described.

도 5는 도 4의 콤팩 플래쉬 카드의 싱글 리드 방법을 나타내는 순서도이다.5 is a flowchart illustrating a single read method of the compact flash card of FIG. 4.

먼저, 호스트(11)가 어드레스 및 리드 섹터 명령신호를 콤팩 플래쉬 카드(12)로 전송한다. 콤팩 플래쉬 카드(12)의 호스트 인터페이스(100)가 어드레스 및 리드 명령 신호를 수신하여 콤팩 카드 컨트롤러(200)로 전송한다(S51).First, the host 11 transmits an address and read sector command signal to the compact flash card 12. The host interface 100 of the compact flash card 12 receives an address and a read command signal and transmits the received address and read command signal to the compact card controller 200 (S51).

콤팩 카드 컨트롤러(200)는 트랜스퍼 카운터의 값을 1로 셋팅시키고(S52), 플래쉬 메모리 어레이(300)로부터 어드레스에 해당하는 데이터(512 byte)를 리드한다. 이때, 어드레스 카운터(21)의 오버플로우 비트는 "0"으로 셋팅되어 있고, 섹터 포인터(213)의 값은 "0"의 상태이다. 섹터버퍼(211)는 리드한 데이터(512 byte)를 최하위 어드레스부터 순차적으로 저장한다(S54). The compact card controller 200 sets the value of the transfer counter to 1 (S52), and reads data (512 bytes) corresponding to an address from the flash memory array 300. At this time, the overflow bit of the address counter 21 is set to "0", and the value of the sector pointer 213 is "0". The sector buffer 211 sequentially stores the read data (512 bytes) from the lowest address (S54).

콤팩 카드 컨트롤러(200)는 상태 레지스터(미도시)의 DRQ 비트를 "1"로 셋팅함으로써, 호스트(11)에 데이터를 전송할 준비가 되었음을 알린다(S55).The compact card controller 200 notifies that the host 11 is ready to transmit data by setting the DRQ bit of the status register (not shown) to "1" (S55).

호스트(11)가 섹터버퍼(211)에 저장되어 있는 데이터(512 byte)를 리드한다(S56). 이때, 호스트가(11)가 액세스할 섹터버퍼(211)의 어드레스는 어드레스 카운터(212)의 출력 8비트와 섹터 포인터(213)의 출력 3비트를 이용하여 결정된다.The host 11 reads data (512 bytes) stored in the sector buffer 211 (S56). At this time, the address of the sector buffer 211 to be accessed by the host 11 is determined using the output 8 bits of the address counter 212 and the output 3 bits of the sector pointer 213.

호스트(11)가 섹터버퍼(211)로부터 데이터를 리드완료하면, 어드레스 카운터(212)의 오버플로우 비트를 "1"로 셋팅하고, 섹터 포인터(213)의 값을 "0"으로 유지시키고, 트랜스퍼 카운터(214)의 값을 "0"으로 클리어시킨다(S57).When the host 11 reads data from the sector buffer 211, the overflow bit of the address counter 212 is set to "1", the value of the sector pointer 213 is maintained at "0", and the transfer is performed. The value of the counter 214 is cleared to "0" (S57).

도 6은 도 4의 콤팩 플래쉬 카드의 멀티 리드 방법을 나타내는 순서도이다.6 is a flowchart illustrating a multi-read method of the compact flash card of FIG. 4.

먼저, 호스트(11)가 어드레스 및 리드 섹터 명령신호를 콤팩 플래쉬 카드(12)의 호스트 인터페이스(100)로 전송한다. 호스트 인터페이스(100)는 어드레스 및 리드 섹터 명령신호를 콤팩 플래쉬 카드 컨트롤러(200)로 전송한다(S61).First, the host 11 transmits an address and read sector command signal to the host interface 100 of the compact flash card 12. The host interface 100 transmits an address and read sector command signal to the compact flash card controller 200 (S61).

콤팩 플래쉬 카드 컨트롤러(200)는 트랜스퍼 카운터(214)에 ATA 레지스터(206)의 값을 복사하여 저장시킨다(S62).The compact flash card controller 200 copies and stores the value of the ATA register 206 to the transfer counter 214 (S62).

콤팩 플래쉬 카드 컨트롤러(200)는 플래쉬 메모리 어레이(300)로부터 어드레스에 해당하는 데이터(512 bytes)를 리드하여(S63), 섹터버퍼(211)에 데이터(512 bytes)를 저장시킨다(S64).The compact flash card controller 200 reads data (512 bytes) corresponding to an address from the flash memory array 300 (S63) and stores data (512 bytes) in the sector buffer 211 (S64).

그 후, 섹터 포인터부(213)는 섹터 포인터 값을 증가시키고, 증가된 섹터 포인터 값이 "4"인지를 판단한다(S65).Thereafter, the sector pointer portion 213 increases the sector pointer value, and determines whether the increased sector pointer value is "4" (S65).

증가된 섹터 포인터 값이 "4"에 도달하지 않았으면, 상기 단계 S63 및 단계 S64를 반복 수행하여 플래쉬 메모리 어레이(300)로부터 데이터를 계속 리드하여 섹터 버퍼(211)에 저장한다.If the increased sector pointer value does not reach " 4 ", steps S63 and S64 are repeated to continuously read data from the flash memory array 300 and store the data in the sector buffer 211.

한편, 증가된 섹터 포인터 값이 "4"가 되면 섹터 버퍼(211)의 하위 2Kbyte 영역(어드레스 000h ~ 3FFh)에 데이터가 512 bytes씩 4번 저장되어 총 2048 bytes의 데이터가 저장된다.On the other hand, when the increased sector pointer value becomes "4", data is stored four times in 512 bytes each in the lower 2Kbyte areas (addresses 000h to 3FFh) of the sector buffer 211, thereby storing a total of 2048 bytes of data.

콤팩 플래쉬 카드 컨트롤러(200)는 상태 레지스터(미도시)의 DRQ 비트의 값을 "1"로 셋팅하여, 호스트(11)에게 데이터 전송 준비가 완료되었음을 알린다(S66).The compact flash card controller 200 sets the value of the DRQ bit in the status register (not shown) to "1" to inform the host 11 that the data transfer preparation is completed (S66).

호스트(11)가 섹터버퍼(211)로부터 데이터(512 bytes)를 리드한다(S67).The host 11 reads data (512 bytes) from the sector buffer 211 (S67).

상기 단계 S67의 데이터(512 bytes) 리드 동작이 완료되면 섹터 포인터부(213)는 섹터 포인터 값을 감소시키고, 섹터 포인터 값이 "0"인지 판단한다.When the data (512 bytes) read operation of step S67 is completed, the sector pointer unit 213 decreases the sector pointer value and determines whether the sector pointer value is "0".

섹터 포인터 값이 "0"이 되지 않았으면, 상기 단계 S67를 반복 수행하여 호스트(11)가 섹터 버퍼(211)로부터 데이터를 계속 리드하여, 섹터 포인터 값이 "0"이 될때까지 호스트(11)가 섹터버퍼(211)로부터 데이터를 512 bytes씩 4번 리드하여 총 2048 bytes의 데이터를 리드한다. If the sector pointer value is not " 0 ", the host 11 continues to read data from the sector buffer 211 by repeating the above step S67, until the sector pointer value becomes " 0 " Reads data from the sector buffer 211 four times by 512 bytes each to read a total of 2048 bytes of data.

상기 데이터(2048 bytes) 리드동작이 완료되면 중앙처리부(202)는 어드레스 카운터(212)의 오버플로우 비트가 "1"인지를 판단한다. 오버플로우 비트가 "1"이 아니면 상기 단계 S63 내지 S68를 반복 수행한다. 이때, 섹터 버퍼(211)는 플래쉬 메모리 어레이(300)로부터 리드한 데이터를상위 2Kbytes 영역(어드레스 400h~ 7FFh)에 저장한다.When the data (2048 bytes) read operation is completed, the CPU 202 determines whether the overflow bit of the address counter 212 is "1". If the overflow bit is not "1", steps S63 to S68 are repeated. At this time, the sector buffer 211 stores the data read from the flash memory array 300 in the upper 2 Kbytes area (address 400h to 7FFh).

한편, 상기 단계 S69의 어드레스 카운터(212)의 오버플로우 비트값이 "1"이면 섹터 포인터(213) 및 트랜스퍼 카운터(214)의 값이 "0"이 된다.On the other hand, when the overflow bit value of the address counter 212 in step S69 is "1", the values of the sector pointer 213 and the transfer counter 214 become "0".

도 7은 도 4의 콤팩 플래쉬 카드의 싱글 라이트 방법을 나타내는 순서도이다. 7 is a flowchart illustrating a single write method of the compact flash card of FIG. 4.

먼저, 호스트(11)가 어드레스 및 라이트 섹터 명령신호를 호스트 인터페이스(100)로 전송한다. 호스트 인터페이스(100)는 어드레스 및 라이트 섹터 명령신호를 콤팩 플래쉬 카드 컨트롤러(200)로 전송한다(S71).First, the host 11 transmits an address and a write sector command signal to the host interface 100. The host interface 100 transmits an address and a write sector command signal to the compact flash card controller 200 (S71).

콤팩 플래쉬 카드 컨트롤러(200)는 트랜스퍼 카운터(214)의 값을 "1"로 셋팅한다(S72).The compact flash card controller 200 sets the value of the transfer counter 214 to "1" (S72).

콤팩 플래쉬 카드 컨트롤러(200)는 상태 레지스터(미도시)의 DRQ 비트값을 "1"로 셋팅하여, 호스트(11)에게 데이터의 라이트 받을 준비가 되었음을 알린다 (S73).The compact flash card controller 200 sets the DRQ bit value of the status register (not shown) to "1" to inform the host 11 that it is ready to write data (S73).

호스트(11)가 라이트할 데이터(512 bytes)를 섹터버퍼(211)로 전송하여 섹터버퍼(211)의 최하위 어드레스부터 순차적으로 저장한다(S74).The host 11 transmits data (512 bytes) to be written to the sector buffer 211 and sequentially stores the data from the lowest address of the sector buffer 211 (S74).

어드레스 카운터(212)는 오버플로우 비트값을 "1"로 셋팅하고, 섹터 포인터부(213)의 섹터 포인터 값을 "0"으로 셋팅하며, 트랜스퍼 카운터(214)의 값을 "0"으로 클리어시킨다(S75).The address counter 212 sets the overflow bit value to "1", sets the sector pointer value of the sector pointer portion 213 to "0", and clears the value of the transfer counter 214 to "0". (S75).

섹터버퍼(211)는 데이터(512 bytes)를 플래쉬 메모리 어레이(300)로 전송하여 저장한다(S76).The sector buffer 211 transfers and stores data (512 bytes) to the flash memory array 300 (S76).

도 8은 도 4의 콤팩 플래쉬 카드의 멀티 라이트 방법을 나타내는 순서도이다.8 is a flowchart illustrating a multi-write method of the compact flash card of FIG. 4.

먼저, 호스트(11)가 어드레스 및 라이트 섹터 명령신호를 호스트 인터페이스(100)로 전송한다. 호스트 인터페이스(100)는 어드레스 및 라이트 섹터 명령신호를 콤팩 플래쉬 카드 컨트롤러(200)로 전송한다(S81).First, the host 11 transmits an address and a write sector command signal to the host interface 100. The host interface 100 transmits an address and a write sector command signal to the compact flash card controller 200 (S81).

콤팩 플래쉬 카드 컨트롤러(200)는 트랜스퍼 카운터(214)에 ATA 레지스터(206)의 값을 복사하여 저장한다(S82).The compact flash card controller 200 copies and stores the value of the ATA register 206 to the transfer counter 214 (S82).

콤팩 플래쉬 카드 컨트롤러(200)는 상태 레지스터(미도시)의 DRQ 비트값을 "1"로 셋팅하여, 호스트(11)에게 데이터의 라이트 받을 준비가 되었음을 알린다 (S83).The compact flash card controller 200 sets the DRQ bit value of the status register (not shown) to "1" to inform the host 11 that it is ready to receive data write (S83).

호스트(11)가 라이트할 데이터(512 bytes)를 섹터버퍼(211)로 전송하여 섹터버퍼(211)의 최하위 어드레스부터 순차적으로 저장한다(S84).The host 11 transmits data (512 bytes) to be written to the sector buffer 211 and sequentially stores the data from the lowest address of the sector buffer 211 (S84).

그 후, 섹터 포인터부(213)는 섹터 포인터 값을 증가시키고, 증가된 섹터 포인터 값이 "4"인지를 판단한다(S85).Thereafter, the sector pointer portion 213 increases the sector pointer value and determines whether the increased sector pointer value is "4" (S85).

증가된 섹터 포인터 값이 "4"에 도달하지 않았으면, 상기 단계 S4를 반복 수행하여 호스트(11)가 섹터 버퍼(211)에 데이터를 512 byte씩 저장한다.If the increased sector pointer value does not reach "4", the host 11 repeatedly stores the data in the sector buffer 211 by 512 bytes by repeating step S4.

한편, 증가된 섹터 포인터 값이 "4"가 되면 섹터 버퍼(211)는 하위 2Kbyte 영역(어드레스 000h ~ 3FFh)에 데이터를 512 bytes씩 4번 저장하여 총 2048 bytes의 데이터를 저장한다.On the other hand, when the increased sector pointer value becomes "4", the sector buffer 211 stores the data of 2048 bytes by storing 512 bytes of data four times in the lower 2Kbyte area (addresses 000h to 3FFh).

콤팩 플래쉬 카드 컨트롤러(200)는 섹터 버퍼(211)에 총 2048 bytes의 데이터가 저장되면, 저장된 데이터를 512 bytes씩 플래쉬 메모리 어레이(300)로 전송한다(S86).When a total of 2048 bytes of data is stored in the sector buffer 211, the compact flash card controller 200 transmits the stored data to the flash memory array 300 by 512 bytes (S86).

그 후, 섹터 포인터부(213)는 섹터 포인터값을 감소시키고, 섹터 포인터값이 "0"인지 판단한다(S87).Thereafter, the sector pointer portion 213 decreases the sector pointer value and determines whether the sector pointer value is "0" (S87).

섹터 포인터 값이 "0"이 되지 않았으면, 상기 단계 S88를 반복 수행하여 섹터 포인터 값이 "0"이 될때까지 콤팩 플래쉬 카드 컨트롤러(200)는 섹터버퍼(211)의 데이터를 512 바이트씩 플레쉬 메모리 어레이(300)로 전송하여, 총 4번 전송이 이루어지게 되어 결국 플레쉬 메모리 어레이(300)에는 총 2048 bytes의 데이터가 저장된다.If the sector pointer value is not " 0 ", the above step S88 is repeated, until the sector pointer value is " 0 ". The compact flash card controller 200 flashes the data in the sector buffer 211 by 512 bytes of flash memory. By transmitting to the array 300, a total of four transfers are made, so that a total of 2048 bytes of data are stored in the flash memory array 300.

그 후, 상기 데이터(2048 bytes)의 라이트 동작이 완료되면 중앙처리부(202)는 어드레스 카운터(212)의 오버플로우 비트가 "1"인지를 판단한다(S88). 오버플로우 비트가 "1"이 아니면 상기 단계 S83 내지 S87를 반복 수행한다. 이때, 섹터 버퍼(211)는 호스트(11)로부터 수신한 데이터를 상위 2Kbytes 영역(어드레스 400h~ 7FFh)에 저장한다.Thereafter, when the write operation of the data (2048 bytes) is completed, the central processing unit 202 determines whether the overflow bit of the address counter 212 is "1" (S88). If the overflow bit is not "1", the steps S83 to S87 are repeated. At this time, the sector buffer 211 stores the data received from the host 11 in the upper 2 Kbytes area (address 400h to 7FFh).

한편, 상기 단계 S88의 어드레스 카운터(212)의 오버플로우 비트값이 "1"이면 섹터 포인터(213) 및 트랜스퍼 카운터(214)의 값이 "0"이 되게 한다.(S89).On the other hand, when the overflow bit value of the address counter 212 in step S88 is "1", the values of the sector pointer 213 and the transfer counter 214 become "0" (S89).

이상에서 살펴본 바와 같이, 본 발명은 호스트와 콤팩 플래쉬 카드 간에 연속적으로 데이터 송수신이 가능하도록 함으로써, 고속 동작이 가능한 효과가 있다. As described above, the present invention enables the high-speed operation by continuously transmitting and receiving data between the host and the compact flash card.

아울러 본 발명의 바람직한 실시예는 예시의 목적을 위한 것으로, 당업자라면 첨부된 특허 청구범위의 기술적 사상과 범위를 통해 다양한 수정, 변경, 대체 및 부가가 가능할 것이며, 이러한 수정 변경 등은 이하의 특허 청구범위에 속하는 것으로 보아야 할 것이다.In addition, a preferred embodiment of the present invention is for the purpose of illustration, those skilled in the art will be able to various modifications, changes, replacements and additions through the spirit and scope of the appended claims, such modifications and changes are the following claims It should be seen as belonging to a range.

도 1은 종래의 호스트와 콤팩 플래쉬 카드간의 연결 구성도.1 is a connection diagram between a conventional host and a compact flash card.

도 2는 도 1의 콤팩 플래쉬 카드의 세부 구성도.FIG. 2 is a detailed configuration diagram of the compact flash card of FIG. 1. FIG.

도 3은 본 발명의 실시예에 따른 호스트와 콤팩 플래쉬 카드간의 연결 구성도.Figure 3 is a connection diagram between the host and the compact flash card according to an embodiment of the present invention.

도 4는 도 3의 콤팩 플래쉬 카드의 세부 구성도.4 is a detailed configuration diagram of the compact flash card of FIG.

도 5는 도 4의 콤팩 플래쉬 카드의 싱글 리드 방법을 나타내는 순서도.5 is a flow chart showing a single read method of the compact flash card of FIG.

도 6은 도 4의 콤팩 플래쉬 카드의 멀티 리드 방법을 나타내는 순서도.6 is a flow chart showing a multi-read method of the compact flash card of FIG.

도 7은 도 4의 콤팩 플래쉬 카드의 싱글 라이트 방법을 나타내는 순서도.7 is a flow chart showing a single write method of the compact flash card of FIG.

도 8은 도 4의 콤팩 플래쉬 카드의 멀티 라이트 방법을 나타내는 순서도.8 is a flow chart showing a multi-write method of the compact flash card of FIG.

Claims (6)

호스트와 통신을 시도하는 호스트 인터페이스;A host interface attempting to communicate with the host; 데이터를 저장하는 복수개의 셀을 구비하는 플래쉬 메모리 어레이;A flash memory array having a plurality of cells for storing data; 복수개의 섹터를 구비하여, 멀티 리드 또는 멀티 라이트 동작 중 적어도 하나를 수행할 때, 상기 호스트 인터페이스로부터 수신한 명령신호에 따라 상기 복수개의 섹터 중 하나의 섹터씩 연속적으로 송수신한 상기 데이터를 저장 또는 출력 중 하나를 수행하는 콤팩 플래쉬 카드 컨트롤러; 및Having a plurality of sectors, when performing at least one of a multi-read or a multi-write operation, storing or outputting the data continuously transmitted and received one by one of the plurality of sectors according to a command signal received from the host interface A compact flash card controller that performs one of the following; And 를 포함하여 구성함을 특징으로 하는 콤팩 플래쉬 카드.Compact flash card, characterized in that the configuration, including. 제 1항에 있어서, 상기 콤팩 플래쉬 카드 컨트롤러는,The method of claim 1, wherein the compact flash card controller, 상기 호스트 인터페이스와 상기 플래쉬 메모리 어레이 간에 데이터를 연속적으로 송수신하하도록 하는 콤팩 플래쉬 인터페이스;A compact flash interface for continuously transmitting and receiving data between the host interface and the flash memory array; 상기 플래쉬 메모리 어레이와의 데이터 송수신을 제어하는 플래쉬 메모리 제어부; 및A flash memory controller which controls data transmission and reception with the flash memory array; And 상기 콤팩 플래쉬 인터페이스 및 플래쉬 메모리 제어부의 동작을 제어하는 중앙처리부;A central processor configured to control operations of the compact flash interface and the flash memory controller; 를 구비함을 특징으로 하는 콤팩 플래쉬 카드.Compact flash card, characterized in that provided with. 제 2항에 있어서, 상기 콤팩 플래쉬 인터페이스는,The method of claim 2, wherein the compact flash interface, 상기 호스트 인터페이스와의 송수신 정보를 저장하는 레지스터;A register for storing transmission and reception information with the host interface; 상기 복수개의 섹터 중 하나의 섹터씩 순차적으로 데이터를 저장 및 출력시켜 상기 호스트 인터페이스 상기 데이터를 연속적으로 입출력시키는 구동부; 및A driver for sequentially storing and outputting data one by one of the plurality of sectors to continuously input and output the data of the host interface; And 상기 호스트 인터페이스로부터 제어신호 및 어드레스신호를 수신하여 상기 구동부를 제어하는 제어로직부;A control logic unit which receives the control signal and the address signal from the host interface and controls the driver; 를 구비함을 특징으로 하는 콤팩 플래쉬 카드.Compact flash card, characterized in that provided with. 제 3항에 있어서, 상기 구동부는,The method of claim 3, wherein the driving unit, 복수개의 섹터로 구성되는 섹터버퍼;A sector buffer consisting of a plurality of sectors; 상기 복수개의 섹터 중 사용중인 섹터의 위치를 나타내는 섹터 포인터부;A sector pointer unit for indicating a position of a sector in use among the plurality of sectors; 상기 사용중인 섹터의 어드레스를 생성하는 어드레스 카운터; 및An address counter for generating an address of the sector in use; And 상기 데이터를 상기 호스트 인터페이스로 전송시마다 다운 카운팅되는 트랜스터 카운터;A transmitter counter down counting each time the data is transmitted to the host interface; 를 구비함을 특징으로 하는 콤팩 플래쉬 카드.Compact flash card, characterized in that provided with. 제 4항에 있어서, 상기 섹터 버퍼는 듀얼 포트 램을 구비하는 것을 특징으로 하는 콤팩 플래쉬 카드.5. The compact flash card of claim 4, wherein the sector buffer comprises dual port RAM. 제 4항에 있어서, 상기 섹터버퍼는The method of claim 4, wherein the sector buffer 상기 복수개의 섹터 중 하나의 섹터당 512 바이트 크기로 구현됨을 특징으로 하는 콤팩 플래쉬 카드.And a size of 512 bytes per sector of the plurality of sectors.
KR1020040027059A 2004-04-20 2004-04-20 Compact flash card KR100593509B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040027059A KR100593509B1 (en) 2004-04-20 2004-04-20 Compact flash card

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040027059A KR100593509B1 (en) 2004-04-20 2004-04-20 Compact flash card

Publications (2)

Publication Number Publication Date
KR20050101838A true KR20050101838A (en) 2005-10-25
KR100593509B1 KR100593509B1 (en) 2006-06-28

Family

ID=37280203

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040027059A KR100593509B1 (en) 2004-04-20 2004-04-20 Compact flash card

Country Status (1)

Country Link
KR (1) KR100593509B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100761374B1 (en) * 2005-12-22 2007-09-27 엠텍비젼 주식회사 Method and Apparatus for controlling flash memory
KR100843105B1 (en) * 2006-08-23 2008-07-02 주식회사 아이피에스 computer based controller, control system, and controlling method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100761374B1 (en) * 2005-12-22 2007-09-27 엠텍비젼 주식회사 Method and Apparatus for controlling flash memory
KR100843105B1 (en) * 2006-08-23 2008-07-02 주식회사 아이피에스 computer based controller, control system, and controlling method

Also Published As

Publication number Publication date
KR100593509B1 (en) 2006-06-28

Similar Documents

Publication Publication Date Title
KR100858756B1 (en) Storage device and host apparatus
KR100441608B1 (en) NAND flash memory interface device
US20030079077A1 (en) Method and system for a compact flash memory controller
US7707321B2 (en) Chained DMA for low-power extended USB flash device without polling
JP4874588B2 (en) Storage device and host device
US10878924B2 (en) Data storage device intergrating host read commands and method of operating the same
US20040044819A1 (en) USB system having card-type USB interface connector
US7565469B2 (en) Multimedia card interface method, computer program product and apparatus
KR20200025184A (en) Nonvolatile memory device, data storage apparatus including the same and operating method thereof
US20070300006A1 (en) Multi-interface conversion device
TWI507981B (en) Command executing method, connector and memory storage device
TWI545588B (en) Controlling method, connector and memory storage device
KR100593509B1 (en) Compact flash card
US11481157B2 (en) Electronic apparatus and transfer method
CN104008072A (en) Control method, connector and memory storage device
US20240143182A1 (en) Data reading method, memory storage device, and memory control circuit unit
CN218675726U (en) MCU chip and MCU communication system
CN116931812A (en) Data access method and storage medium and apparatus for responding to host discard command
TW202340939A (en) Method and computer program product and apparatus for data access in response to host discard commands
CN115576497A (en) Data reading method, memory storage device and memory control circuit unit
ZA200704397B (en) Multimedia card interface method, computer program product and apparatus
CN113448487A (en) Computer readable storage medium, method and device for writing flash memory management table
TW202412003A (en) Data writing method, memory storage device and memory control circuit unit

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
N231 Notification of change of applicant
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130327

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140305

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee