KR20050101838A - Compact flash card - Google Patents
Compact flash card Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1075—Input/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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/04—Arrangements 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
본 발명은 콤팩 플래쉬 카드 컨트롤러에 관한 것으로서, 보다 상세하게는 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)
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)
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 |
-
2004
- 2004-04-20 KR KR1020040027059A patent/KR100593509B1/en not_active IP Right Cessation
Cited By (2)
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 |