KR100298904B1 - Interface method for flash memory - Google Patents

Interface method for flash memory Download PDF

Info

Publication number
KR100298904B1
KR100298904B1 KR1019990025947A KR19990025947A KR100298904B1 KR 100298904 B1 KR100298904 B1 KR 100298904B1 KR 1019990025947 A KR1019990025947 A KR 1019990025947A KR 19990025947 A KR19990025947 A KR 19990025947A KR 100298904 B1 KR100298904 B1 KR 100298904B1
Authority
KR
South Korea
Prior art keywords
data
flash memory
program
memory
flash
Prior art date
Application number
KR1019990025947A
Other languages
Korean (ko)
Other versions
KR20010005149A (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 KR1019990025947A priority Critical patent/KR100298904B1/en
Publication of KR20010005149A publication Critical patent/KR20010005149A/en
Application granted granted Critical
Publication of KR100298904B1 publication Critical patent/KR100298904B1/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
    • G11C16/10Programming or data input circuits

Landscapes

  • Read Only Memory (AREA)

Abstract

본 발명은 메모리로의 엑세스타임을 줄여 보다 빠르게 데이타를 기록할 수 있도록 하는 플래쉬 메모리의 인터페이스방법에 관한 것으로, 제1,2데이타버스를 통해 제1,2플래쉬메모리에 연결되는 플래쉬제어기가 제1데이타버스를 통해 한 페이지분의 데이타를 제1플래쉬메모리에 연속전송한 후, 프로그램시작명령을 내려 제1플래쉬메모리의 프로그램실행이 실시되면, 다음 페이지분의 데이타를 제2데이타버스를 통해 제2플래쉬메모리에 연속전송하여 프로그램시작명령을 내리는 과정을 반복하여 제1,2플래쉬메모리에 데이타를 교대로 기록하도록 한다.The present invention relates to an interface method of a flash memory that can write data more quickly by reducing access time to a memory. The flash controller connected to the first and second flash memories through the first and second data buses includes: After continuously transferring one page of data to the first flash memory through the data bus, and executing a program start command to execute the program of the first flash memory, the next page of data is transferred to the second data bus through the second data bus. The program is repeatedly transmitted to the flash memory and the program start command is repeated to alternately write data to the first and second flash memories.

Description

플래쉬 메모리의 인터페이스방법{INTERFACE METHOD FOR FLASH MEMORY}Interface method of flash memory {INTERFACE METHOD FOR FLASH MEMORY}

본 발명은 플래쉬메모리를 데이타를 기록하거나 읽어들이는 인터페이스방법에 관한 것으로, 보다 상세하게는 두개의 기억장소를 갖는 플래쉬메모리의 엑세스시간을 줄여 좀 더 빠른 속도로 데이타를 기록할 수 있도록 하며 입력버퍼의 크기가 다른 두 종류의 플래쉬메모리에 모두 엑세스할 수 있는 플래쉬 메모리의 인터페이스방법에 관한 것이다.The present invention relates to an interface method of writing or reading data into a flash memory. More particularly, the present invention provides a method of writing data at a faster speed by reducing the access time of a flash memory having two memory locations. The present invention relates to an interface method of a flash memory that can access two types of flash memories having different sizes.

일반적으로, 메모리는 소정 사이즈로 배열된 다수의 메모리셀과, 소정 크기의(520byte 또는 1040byte)의 프로그램버퍼로 이루어지고, 상기 프로그램버퍼로 소정의 데이타를 입력한 후, 프로그램시작을 지시하면, 프로그램버퍼의 데이타를 메모리셀에 기억시킨다. 반대로, 데이타를 읽어들이는 경우에는 메모리셀에 기억된 데이타를 프로그램버퍼로 이동시킨 후, 외부제어기가 프로그램버퍼로부터 데이타를 읽어들이도록 되어 있다.In general, a memory is composed of a plurality of memory cells arranged in a predetermined size and a program buffer of a predetermined size (520 bytes or 1040 bytes), and after inputting predetermined data into the program buffer, a program start command is given. The buffer data is stored in the memory cell. On the contrary, in the case of reading data, after moving the data stored in the memory cell to the program buffer, the external controller reads the data from the program buffer.

그런데, 보통 메모리에 데이타를 기록하는데 있어서, 상기 프로그램버퍼에 입력된 데이타를 메모리셀에 기억시키는 동안 상기 프로그램버퍼는 그 데이타값을 일정시간 유지하고 있어야 하기 때문에 다른 데이타를 입력받을 수 없으며, 이러한 프로그램시간은 총기록시간에서 상당한 부분을 차지한다.However, in recording data in a memory, the program buffer cannot hold other data because the data buffer has to maintain the data value for a certain time while storing the data input to the program buffer in a memory cell. Time is a significant part of the total recording time.

따라서, 상기와 같이 프로그램시간동안 제어기는 불가피하게 휴지상태가 되어야 한다는 문제점이 있다.Therefore, there is a problem that the controller inevitably needs to be idle during the program time as described above.

또한, 플래쉬메모리는 데이타를 입출력하는 프로그램버퍼의 크기가 다른 두종류, 즉, 528byte짜리와 1040byte짜리로 구분되는데, 이 프로그램버퍼의 크기에 관계없이 동일한 방법으로 데이타를 기록할 경우, 1040byte 크기에서는 비효율적인문제점이 있다.In addition, the flash memory is divided into two types of program buffers that input / output data, that is, 528 bytes and 1040 bytes. However, when data is written in the same way regardless of the size of the program buffer, it is inefficient for a 1040 byte size. There is a problem.

본 발명은 상술한 종래의 문제점을 해결하기 위하여 안출된 것으로서, 그 목적은 메모리로의 엑세스타임을 줄여 보다 빠르게 데이타를 기록할 수 있도록 하며, 플래쉬메모리의 프로그램버퍼크기에 따라 적절한 인터페이스제어를 하는 플래쉬 제어기와 플래쉬 메모리간의 인터페이스방법을 제공하는 것이다.SUMMARY OF THE INVENTION The present invention has been made to solve the above-mentioned problems. The object of the present invention is to reduce the access time to the memory so that data can be written more quickly, and according to the program buffer size of the flash memory, appropriate flash control is performed. It provides an interface method between the controller and the flash memory.

도 1은 제어기와 플래쉬 메모리의 구성을 보이는 개략도이다.1 is a schematic diagram showing the configuration of a controller and a flash memory.

도 2는 도 1에서 제어기의 구성을 상세하게 도시한 블럭도이다.FIG. 2 is a block diagram illustrating in detail the configuration of the controller in FIG. 1.

도 3은 본 발명에 따라서 528byte 크기의 플래쉬메모리에 데이타를 기록하는 순서를 도시한 플로우챠트이다.FIG. 3 is a flowchart showing a procedure of writing data to a 528-byte flash memory according to the present invention.

도 4는 본 발명에 따라서 1040byte 크기의 플래쉬메모리에 데이타를 기록하는 순서를 도시한 플로우챠트이다.FIG. 4 is a flowchart showing a procedure of writing data to a 1040 byte flash memory according to the present invention.

도 5는 본 발명에 따라서 각각의 동작모드에서 데이타를 전송하는 A버스와 B버스의 동작상태를 보이는 타이밍도이다.5 is a timing diagram showing an operation state of the A bus and the B bus for transmitting data in each operation mode according to the present invention.

*도면의 주요 부분에 대한 부호의 설명** Description of the symbols for the main parts of the drawings *

10 : 제어기 11 : 버퍼10: controller 11: buffer

12 : 에러정정패리티생성부 13 : 플래쉬인터페이스부12: error correction parity generating unit 13: flash interface unit

20 : 플래쉬메모리 21 : 제1메모리부20: flash memory 21: first memory

22 : 제2메모리부 31, 32 : 버스22: second memory section 31, 32: bus

상술한 본 발명의 목적을 달성하기 위한 구성 수단으로서, 본 발명은 제1,2데이타버스를 통해 제1,2플래쉬메모리에 연결되는 플래쉬제어기의 플래쉬 메모리 인터페이스방법에 있어서,As a construction means for achieving the above object of the present invention, the present invention provides a flash memory interface method of the flash controller connected to the first and second flash memory through the first and second data bus,

? 특징으로 한다.? It features.

이하, 첨부한 도면을 참조하여 본 발명의 구성 및 작용을 상세하게 설명한다.Hereinafter, with reference to the accompanying drawings will be described in detail the configuration and operation of the present invention.

도 2는 메모리 제어장치 및 메모리의 구성을 개략적으로 보이는 블럭도로서, 메모리에 기록할 데이타나 읽어들인 데이타를 일시저장하는 버퍼(11)와, 상기 버퍼(11)로부터 입력되는 기록할 데이타에 에러정정패리티를 생성시키고 판독된 데이타에서 에러정정패리티를 체크하여 상기 버퍼(11)로 전송하는 에러정정패리티생성부(12)와 상기 에러정정패리티생성부(12)에서 생성된 에러정정패리티가 포함된 데이타를 데이타버스(31,32)를 통해 메모리(20)로 입력시키거나 메모리(20)로부터 데이타를 읽어들이는 플래쉬인터페이스부(13)로 이루어진 제어기(10)와, 다수의 메모리셀이 배열되어 이루어진 것으로 일정단위(예를 들어, 528byte 또는 1040byte)로 기억하며 기억되어 있는 데이타를 소정 단위(1블록=16Kbyte)로 판독하여 출력하는 제1,2메모리부(21),(22)로 이루어진 플래쉬메모리(20)와, 상기 제어기(10)의 인터페이스부(13)와 상기 플래쉬메모리(20)의 제1,2메모리부(21,22)간에 데이타를 전송하기 위한 데이타전송로인 A,B버스(31,32)로 구성된다.Fig. 2 is a block diagram schematically showing the configuration of the memory controller and the memory. The buffer 11 temporarily stores data to be written or read data in the memory, and errors in data to be written from the buffer 11; An error correction parity generation unit 12 for generating correction parity, checking error correction parity in the read data, and transmitting the error correction parity to the buffer 11 and the error correction parity generated in the error correction parity generation unit 12 are included. A controller 10 comprising a flash interface unit 13 for inputting data to or reading data from the memory 20 through the data buses 31 and 32, and a plurality of memory cells are arranged. First and second memory units 21 and 22 which store the data in a predetermined unit (for example, 528 bytes or 1040 bytes) and read out the stored data in a predetermined unit (1 block = 16 Kbytes). A and B, which are data transmission paths for transferring data between the lash memory 20, the interface unit 13 of the controller 10, and the first and second memory units 21 and 22 of the flash memory 20. It consists of buses 31 and 32.

도 3은 플래쉬메모리의 프로그램버퍼크기가 528byte일 경우, 상기 인터페이스부(20)의 본 발명에 따른 동작흐름을 보이는 플로우챠트이다.3 is a flowchart showing an operation flow of the interface unit 20 according to the present invention when the program buffer size of the flash memory is 528 bytes.

도 4는 플래쉬메모리의 프로그램버퍼 크기가 1040byte모드일 경우, 상기 인터페이스부(20)의 본 발명에 따른 동작흐름을 보이는 플로우챠트이다.4 is a flowchart illustrating an operation flow of the interface unit 20 according to the present invention when the program buffer size of the flash memory is 1040 byte mode.

상술한 장치에서, 플래쉬메모리에 데이타를 기록하는 경우를 설명하는데, 기록할 데이타는 제어기내에 구비된 버퍼(11)에 페이지단위(512byte)로 임시 저장된다. 상기 버퍼(11)는 캐쉬메모리이다.In the above-described apparatus, a case of writing data in the flash memory will be described. The data to be recorded is temporarily stored in the unit of a buffer (512 bytes) in the buffer 11 provided in the controller. The buffer 11 is a cache memory.

그리고, 상기 버퍼(11)로부터 페이지단위로 순서대로 읽어들여지는데, 이 데이타는 에러정정패리티생성부(12)에 의해서 페이지별로 에러정정패리티를 생성시킨다. 일반적으로 한 페이지분의 데이타 크기는 512byte이고, 이 페이지별 에러정정패리티는 6byte이다. 따라서, 플래쉬인터페이스부(13)로는 데이타와 에러정정패리티가 합쳐진 총 518byte가 전송된다.The data is read in order from the buffer 11 in page units, and this data is generated by the error correction parity generation unit 12 to generate error correction parity for each page. In general, the data size of one page is 512 bytes, and the error correction parity for each page is 6 bytes. Therefore, a total of 518 bytes of data and error correction parity are transmitted to the flash interface unit 13.

그리고, 플래쉬인터페이스부(13)는 상기와 같이 에러정정(ECC) 엔코딩이 완료된 데이타를 A버스(31)와 B버스(32)를 통해 교대로 플래쉬메모리(20)에 전송하여 기억시키는데, 이때, 제어기(10)는 플래쉬메모리(20)의 프로그램버퍼크기를 체크한후 그에 따라 데이타전송순서를 달리한다. 보통, 플래쉬메모리(20)는 특정 주소에 프로그램버퍼의 크기를 나타내는 값을 저장하고 있다. 따라서 제어기(10)는 동작전에 플래쉬메모리(20)에 프로그램버퍼의 크기에 대한 정보를 요구하여, 상기 특정 주소에 기억된 프로그램버퍼의 크기값을 입력받는다. 그리고, 그 데이타가 528byte를 나타내는지 1040byte를 나타내는지를 체크하고, 그 판단결과에 따라서 다음과 같이 데이타를 전송제어한다.In addition, the flash interface unit 13 transfers and stores the data of which the error correction (ECC) encoding has been completed as described above to the flash memory 20 through the A bus 31 and the B bus 32 in turn. The controller 10 checks the program buffer size of the flash memory 20 and changes the data transmission order accordingly. Normally, the flash memory 20 stores a value indicating the size of the program buffer at a specific address. Therefore, the controller 10 requests information about the size of the program buffer from the flash memory 20 before the operation, and receives the size value of the program buffer stored at the specific address. Then, it is checked whether the data represents 528 bytes or 1040 bytes, and transfer control is carried out as follows according to the determination result.

먼저, 528byte 일 경우에는, 도 3에 도시한 바와 같이, 데이타를 기억할 프로그램영역, 즉 제1메모리부(21)에 저장할 것인지 제2메모리부(22)에 저장할 것인지를 선택하는 신호(1byte)를 보낸다(301).First, in the case of 528 bytes, as shown in FIG. 3, a signal area (1 byte) for selecting whether to store data in the program area to store data, that is, the first memory unit 21 or the second memory unit 22, is stored. Send (301).

그리고, 연속데이타를 입력한다는 명령(1byte)을 전송한 후(302), 시작주소(3byte)를 전송하고(303), 이어서 상기 에러정정패리티생성부(12)에 의해 ECC 엔코딩되어 에러정정패리티(6byte)가 포함된 데이타(총 518byte)를 선택한 메모리부(즉, 제1메모리부(21) 또는 제2메모리부(22))로 전송한다. 그리고, 전송이 완료되면 해당 메모리부로 페이지 프로그램 시작 명령을 내린다(305). 이때부터 해당 메모리부(제1메모리부(21) 또는 제2메모리부(22))는 페이지 프로그램을 시작하는데, 이 페이지 프로그램은 전송받은 데이타를 해당 메모리셀에 기억시키는 과정을 말한다. 해당 메모리부의 버퍼에는 그 데이타가 소정시간 유지되고 있어야 한다. 그리고 나서, 제대로 프로그램이 이루어졌는지를 확인하는 상태판독명령(2byte)을 지시하는 것으로 한 섹터에 대한 프로그램이 완료된다.Then, after transmitting a command (1 byte) for inputting continuous data (302), a start address (3 bytes) is transmitted (303), and then ECC encoded by the error correction parity generation unit 12 to obtain error correction parity ( Data (6 bytes in total) including 6 bytes is transferred to the selected memory section (ie, the first memory section 21 or the second memory section 22). When the transfer is completed, a page program start command is issued to the corresponding memory unit (305). At this time, the memory unit (the first memory unit 21 or the second memory unit 22) starts a page program, which refers to a process of storing the received data in the corresponding memory cell. The data must be held in the buffer of the memory section for a predetermined time. Then, the program for one sector is completed by instructing a status read command (2 bytes) to confirm that the program has been properly performed.

그리고, 상기와 같이 일련의 처리를 행하는데에 있어서, 상기 단계304에서연속된 518byte의 데이타를 입력시킨 후, 다음 단계(306)로 페이지 프로그램이 진행되고 있는 순간은 다른 데이타가 입력될 수 없기 때문에, 제어기(10)는 그동안 불필요하게 놀게 된다. 따라서, 본 발명에서는 도 5a에 도시된 바와 같이, A버스(31)를 통해 첫번째 페이지(F1)를 제1메모리부(21)로 전송한 후, 페이지프로그램 시작 명령을 전송하여 제1메모리부(21)에서 페이지프로그램이 시작되면, 다음 페이지(F2)를 읽어들여 B버스(32)를 통해 제2메모리(22)로 전송한다. 전송이 완료되면 상기와 같이 프로그램 시작명령을 내려 제2메모리(22)가 전송된 데이타를 프로그램하도록 한다. 그 다음 제1메모리부(21)의 프로그램이 완료되면 A버스(31)로 다음 페이지(F3)를 제1메모리부(21)에 전송시킨 후 프로그램을 지시하고, 상기와 마찬가지로 제1메모리부(21)에서 프로그램이 시작되면 B버스(32)를 통해 두번째 페이지(F2)에 대한 프로그램이 완료된 제2메모리부(22)로 다음 페이지(F4)를 전송시킨 후, 프로그램을 지시한다. 따라서, 제1메모리부(21)에는 홀수번째 페이지들이 순차로 기억되고, 제2메모리부(22)에는 짝수번째 페이지들이 순차로 기억된다.In the series of processing as described above, after inputting 518 bytes of data contiguous in the step 304, other data cannot be input at the moment when the page program proceeds to the next step 306. In the meantime, the controller 10 plays unnecessarily. Accordingly, in the present invention, as shown in FIG. 5A, the first page F1 is transferred to the first memory unit 21 via the A bus 31, and then a page program start command is transmitted to transmit the first page unit 1. When the page program is started at 21), the next page F2 is read and transferred to the second memory 22 via the B bus 32. When the transfer is completed, the program start command is issued as described above to allow the second memory 22 to program the transferred data. When the program of the first memory unit 21 is completed, the next page F3 is transferred to the first memory unit 21 by the A bus 31, and then the program is instructed. When the program is started at 21), the next page F4 is transmitted to the second memory unit 22 where the program for the second page F2 is completed via the B bus 32, and then the program is instructed. Therefore, odd-numbered pages are sequentially stored in the first memory unit 21, and even-numbered pages are sequentially stored in the second memory unit 22.

따라서, 한 섹터가 프로그램되는데 걸리는 시간은, 프로그래밍시간(약, 200㎲)에 1섹터의 데이타(518byte)를 전송하는데 걸리는 시간이고 1byte를 전송하는데 걸리는 시간이 50㎱이므로, 실제 한 섹터당 걸리는 시간은 200.545㎲ + 518byte*50㎱=226.4㎲ 가 된다.Therefore, the time taken to program one sector is the time taken to transfer one sector of data (518 bytes) to the programming time (about 200 ms) and the time taken to transmit one byte is 50 ms, so the actual time taken per sector. Becomes 200.545 ms + 518 bytes * 50 ms = 226.4 ms.

그리고, 제어할 플래쉬메모리(20)의 프로그램버퍼 크기가 1040byte 인 경우에는, 도 4에 도시한 바와같이, 먼저, 제어기(10)에서 플래쉬메모리(20)를 구성하는 두 메모리부(21, 22)중 데이타를 기억시킬 영역, 즉, 프로그램 영역선택신호(1byte)를 보내고, 선택된 메모리부에 제1연속데이타 입력명령(1byte)를 지시한 후(402), 시작주소(3byte)에 이어서 버퍼(11)내에 기록된 데이타중 해당 순서의 페이지(518byte)를 전송하여 입력한다(403, 404). 전송이 완료되면, 이어서 제2연속데이타 입력명령을 보내고(405), 시작주소(3byte)에 이어서 다음 페이지의 연속데이타(518byte)를 입력시킨다(406,407).When the program buffer size of the flash memory 20 to be controlled is 1040 bytes, as shown in FIG. 4, first, the two memory units 21 and 22 constituting the flash memory 20 in the controller 10. Sends an area for storing data, i.e., a program area selection signal (1 byte), instructs the selected memory unit of the first continuous data input command (1 byte) (402), and then starts the buffer (3 bytes). In this case, pages 518 bytes in the corresponding order among the data recorded therein are transmitted and input (403, 404). When the transfer is completed, a second continuous data input command is then sent (405), followed by a start address (3 bytes) followed by continuous data (518 bytes) of the next page (406, 407).

이렇게, 1040 byte 크기의 플래쉬메모리에 데이타를 기억시킬 경우에는, 해당 플래쉬메모리의 2섹터분에 해당하는 데이타만큼, 두페이지의 데이타를 연속으로 전송시킨 후, 페이지 프로그램 시작명령을 보낸다(408). 이에, 해당 플래쉬메모리(20)에서는 입력받은 데이타를 프로그램하는 작업을 시작하고, 프로그램이 완료되면, 기록되었는지를 체크하는 상태판독명령을 보내는 것으로 두 섹터에 대한 프로그램이 동시에 완료된다(409).When data is stored in a 1040 byte sized flash memory, two pages of data are continuously transmitted as much as two sectors of the corresponding flash memory, and then a page program start command is sent (408). Accordingly, the flash memory 20 starts the operation of programming the input data, and when the program is completed, the program for the two sectors is completed at the same time by sending a status read command to check whether the program is recorded (409).

그리고, 상기 프로그램을 하는 동안 제어기(10)에서는 상기와 같은 수순에 의해 다음 두 페이지의 데이타를 다른 버스를 통해 다른 메모리부로 전송하여 프로그램시키도록 제어동작한다.During the program, the controller 10 performs a control operation to transfer the next two pages of data to another memory through another bus and program the same according to the above procedure.

이와같이, 제어기(10)와 플래쉬메모리(20)를 연결하는 두 데이타버스(31,32)의 동작상태에 대한 일실시예를 도 5b에 타이밍도로 나타내었는데, 먼저, 버퍼(11)에 기록된 데이타중 첫번째 페이지(F1)를 A버스(31)를 통해 제1메모리부(21)에 전송시킨다. 그리고, 첫번째 페이지(F1)에 대한 전송명령 및 데이타전송이 이루어지면 B버스(32)를 통해 다음 두번째 페이지(F2)를 제2메모리부(22)에 전송시키고, 세번째 페이지(F3)는 첫번째 페이지(F1)의 전송이 완료된 A버스(31)를 통해 다시 제1메모리부(21)에 전송시킨다. 이렇게, 세번째 페이지(F3)의 전송이 완료되어 한 섹터분에 대한 입력이 완료되면, 제어기(10)는 제1메모리부(21)에 프로그램시작을 지시하고, 이에 제1메모리부(21)가 프로그램을 실행하는 동안 B버스(32)를 통해 다음 페이지(F4)를 제2메모리부(22)에 전송시킨다. 이어서, 바로 제2메모리부(22)에 프로그램실행을 지시하고, 이에 제2메모리부(22)가 두 페이지(F2,F4)에 대한 프로그램을 실시한다. 상기 제1메모리부(21) 및 제2메모리부(22)에서 모두 프로그램이 실행되고 있는 동안에는 다른 페이지의 입력을 할 수 없으므로, 휴지 상태로 있다가, 제1메모리부(21)에서 프로그램이 완료되면, 상기와 같은 방식으로 다음 페이지(F5)를 A버스(31)를 통해 제1메모리부(21)에 입력시키고, 그 다음 프로그램 실행이 완료된 제2메모리부(22)에 B버스(32)를 통해 다음 페이지(F6)을 입력시킨다.As such, an embodiment of an operation state of two data buses 31 and 32 connecting the controller 10 and the flash memory 20 is shown in a timing diagram in FIG. 5B. First, the data recorded in the buffer 11 is shown. The first page F1 is transmitted to the first memory unit 21 via the A bus 31. When the transfer command and data transfer are performed for the first page F1, the next second page F2 is transferred to the second memory unit 22 via the B bus 32, and the third page F3 is the first page. The transfer is completed again to the first memory unit 21 via the A bus 31 where the transfer of F1 is completed. In this way, when the transfer of the third page F3 is completed and the input for one sector is completed, the controller 10 instructs the first memory unit 21 to start the program, so that the first memory unit 21 While executing the program, the next page F4 is transferred to the second memory section 22 via the B bus 32. Subsequently, the second memory unit 22 immediately instructs the program to be executed, and the second memory unit 22 executes a program for two pages F2 and F4. Since both the first memory unit 21 and the second memory unit 22 cannot execute input of another page while the program is being executed, the program remains in the idle state and the program is completed in the first memory unit 21. When the next page F5 is input to the first memory unit 21 via the A bus 31 in the same manner as described above, the B bus 32 is input to the second memory unit 22 where the program execution is completed. Enter the next page (F6) through.

상기와 같은 동작이 반복되어, 제1메모리부(21)에는 홀수번째 페이지들이 순차적으로 기억되고, 제2메모리부(22)에는 짝수번째 메모리들이 순차적으로 기억된다.As described above, the odd-numbered pages are sequentially stored in the first memory unit 21, and the even-numbered memories are sequentially stored in the second memory unit 22.

이와 같이 함에 의해, 제어기(10) 및 데이타버스(31,32)휴지 기간을 줄여, 기록시간을 단축시키게 된다.By doing so, the rest periods of the controller 10 and the data buses 31 and 32 are reduced, thereby reducing the recording time.

상술한 바와 같이, 제어기(10)에서 제어동작하는 경우, 1040byte 모드에서의 두 섹터에 대한 엑세스타임은 200㎲(프로그래밍의 기본시간) + 1036byte*50ns(한바이트당 전송시간)으로, 약 252㎲가 된다.As described above, in the case of a control operation in the controller 10, the access time for two sectors in the 1040 byte mode is 200 ms (basic programming time) + 1036 bytes * 50 ns (transmission time per byte), about 252 ms. Becomes

이와 같이, 기록된 플래쉬메모리의 데이타를 제어기의 버퍼로 읽어들이는 것은 단지 입력된 순서대로 읽어들이도록 하면된다. 기록하는 경우에는 프로그램시간이 많이 걸려 문제가 되었으나, 판독하는 경우에는 단지 읽어 전송하는 것이므로 시간의 차이가 별로 나지 않는다.As such, reading the data of the written flash memory into the buffer of the controller only needs to read in the input order. In the case of writing, the program takes a lot of time, but in the case of reading, it is only read and transmitted.

기본적으로, 판독하는데 걸리는 시간은 리드명령전송(1byte) + 시작주소(3byte) + 메모리셀에서 레지스터로 옮기는 시간(7㎲) + WE BUSY(100㎱)로 약 300㎱+7㎲이다.Basically, the time taken to read is about 300 ms + 7 ms with read command transfer (1 byte) + start address (3 bytes) + time from memory cell to register (7 ms) + WE BUSY (100 ms).

따라서, 한 페이지를 리드하는 경우, 플래쉬메모리에서 512byte + 6byte를 연속적으로 읽고, 에러정정패리티생성부(22)에서 읽은 섹터에 대해 EDC를 계산하여야 하고, 그 결과를 읽어들인 데이타에 포함된 에러정정패리티와 비교하여야 함으로, 한 섹터를 읽어들이는데 걸리는 시간은 상기 기본시간+518byte*50(1byte당 전송시간)으로 약 33.2㎲가 된다.Therefore, when reading one page, it is necessary to continuously read 512 bytes + 6 bytes from the flash memory, calculate the EDC for the sector read by the error correction parity generator 22, and correct the error contained in the data read. In comparison with parity, the time taken to read one sector is approximately 33.2 ms based on the basic time + 518 bytes * 50 (transmission time per byte).

그리고, 한 블록(32섹터)을 모두 읽는 경우에도, 상술한 바와 같이, 제1,2메모리부(21,22)로부터 교대로 읽어들이면, 메모리셀에서 레지스터로 데이타가 이동하는 걸리는 시간(Ready/Busy interval = max 7㎲)과 읽기주소(read address)를 지정하는데 걸리는 시간(0.3㎲)을 절약할 수 있으므로, (33.2㎲(기본시간)-7.3)*32섹터=828.8㎲가 걸린다. 이는 교대로 읽지 않고 순서대로 읽어들이는 경우에 걸리는 시간 33.2㎲*32섹터 = 1062㎲보다 짧다.Even when all of one block (32 sectors) is read, as described above, when data are read alternately from the first and second memory units 21 and 22, the time taken for the data to move from the memory cell to the register (Ready / Busy interval = max 7 ms) and the time required to specify the read address (0.3 ms) can be saved, so it takes (33.2 ms (base time) -7.3) * 32 sectors = 828.8 ms. This is shorter than 33.2㎲ * 32 sectors = 1062 경우 when reading sequentially instead of reading.

그리고, 기록된 데이타의 일부분을 수정해서 기록하는 경우에도 상기와 같이 제1,2메모리부(21,22)에서 한섹터씩 교대로 데이타를 읽어들여 원래의 데이타값을 가지고 있은 후에, 해당 부분의 내용을 수정해서 다시 한블록의 데이타를 교대로 제1,2메모리부(21,22)에 기록한다.Also, in the case of modifying and recording a part of the recorded data, the first and second memory units 21 and 22 alternately read data one by one, and have original data values. The contents are corrected and data of one block is alternately recorded in the first and second memory sections 21 and 22.

상술한 바와 같이, 본 발명의 플래쉬 제어기와 플래쉬 메모리간의 인터페이스방법에 의하면, 제어기의 불필요한 휴지시간을 줄이고, 엑세스타임을 줄일 수 있으며, 보다 신속하게 메모리가 이루어지도록 할 수 있는 우수한 효과가 있는 것이다.As described above, according to the interface method between the flash controller and the flash memory of the present invention, it is possible to reduce unnecessary idle time of the controller, to reduce access time, and to make the memory more quickly.

Claims (3)

제1,2데이타버스를 통해 제1,2플래쉬메모리에 연결되는 플래쉬제어기의 플래쉬 메모리 인터페이스방법에 있어서,In the flash memory interface method of the flash controller connected to the first and second flash memory through the first and second data bus, 상기 제1,2플래쉬메모리의 프로그램버퍼크기를 체크하는 제1과정과,A first process of checking a program buffer size of the first and second flash memories; 상기에서 제1,2플래쉬메모리의 프로그램 버퍼크기가 528byte이면, 데이타기록시 제1,2플래쉬메모리에 각각 한 페이지분씩의 데이타를 교대로 전송하여 프로그램시키는 제2과정과,If the program buffer size of the first and second flash memory is 528 bytes, a second process of alternately transferring data for one page to the data proxy first and second flash memories and then programming the data; 상기에서 제1,2플래쉬메모리의 프로그램 버퍼크기가 1040byte이면, 데이타기록시 제1,2플래쉬메모리에 두 페이지분씩의 데이타를 교대로 전송한 후, 프로그램이 시작되도록 하는 제3과정으로 이루어짐을 특징으로 하는 플래쉬메모리의 인터페이스방법.When the program buffer size of the first and second flash memory is 1040 bytes, a third process of alternately transferring data of two pages to the data proxy first and second flash memories and then starting the program is performed. Flash memory interface method. 제1항에 있어서, 상기 제2과정은 제1데이타버스를 통해 한 섹터분의 데이타를 제1플래쉬메모리에 연속전송한 후, 프로그램시작명령을 내려 제1플래쉬메모리의 프로그램실행이 실시되면, 한 섹터분의 다음 데이타를 제2데이타버스를 통해 제2플래쉬메모리에 연속전송하여 프로그램시작명령을 내리는 과정을 반복하여 제1,2플래쉬메모리에 데이타를 교대로 기록하는 것을 특징으로 하는 플래쉬 메모리의 인터페이스방법.2. The method of claim 1, wherein the second process includes transferring data for one sector to the first flash memory continuously through a first data bus, and then executing a program start command to execute a program of the first flash memory. Interface of flash memory, characterized in that alternately writing data to first and second flash memory by repeating the process of issuing program start command by continuously transferring next data for sector to second flash memory through second data bus. Way. 제1항에 있어서, 제3과정은 제1데이타버스를 통해 한섹터분의 데이타를 제1플래쉬메모리에 연속입력시키고, 그 다음 제2데이타버스를 통해 다음 섹터분의 데이타를 제2플래쉬메모리에 연속입력시키고, 다시 제1데이타버스를 통해 다음 데이타를 제1플래쉬메모리에 연속입력시킨 후 제1플래쉬메모리에 대한 프로그램시작을 지시하고, 그 다음 제2데이타버스를 통해 제2플래쉬메모리에 다음 데이타를 입력시킨 후 제2플래쉬메모리에 프로그램을 지시하여 두 섹터씩의 데이타를 제1,2플래쉬메모리에 교대로 기록하는 것을 특징으로 하는 플래쉬 메모리의 인터페이스방법.The method of claim 1, wherein the third process continuously inputs one sector of data to the first flash memory through the first data bus, and then inputs data of the next sector to the second flash memory through the second data bus. After continuous input, the next data is continuously input to the first flash memory through the first data bus, and then the start of the program for the first flash memory is instructed, and the next data is input to the second flash memory through the second data bus. Instructing a program to the second flash memory and inputting data of two sectors alternately to write the data into the first and second flash memories.
KR1019990025947A 1999-06-30 1999-06-30 Interface method for flash memory KR100298904B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019990025947A KR100298904B1 (en) 1999-06-30 1999-06-30 Interface method for flash memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019990025947A KR100298904B1 (en) 1999-06-30 1999-06-30 Interface method for flash memory

Publications (2)

Publication Number Publication Date
KR20010005149A KR20010005149A (en) 2001-01-15
KR100298904B1 true KR100298904B1 (en) 2001-11-01

Family

ID=19597997

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990025947A KR100298904B1 (en) 1999-06-30 1999-06-30 Interface method for flash memory

Country Status (1)

Country Link
KR (1) KR100298904B1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4282636B2 (en) * 2005-06-22 2009-06-24 株式会社東芝 Nonvolatile semiconductor memory device and data writing method thereof
KR100694978B1 (en) * 2006-05-12 2007-03-14 주식회사 하이닉스반도체 Flash memory device with structure for increasing input and output speed of data and data input and output operation method of the same
KR100733952B1 (en) * 2006-06-12 2007-06-29 삼성전자주식회사 Multi-bit flash memory device capable of minimizing coupling between flag cells and program method thereof

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR940001166A (en) * 1992-06-22 1994-01-10 가나이 쯔도무 Semiconductor memory
US5603001A (en) * 1994-05-09 1997-02-11 Kabushiki Kaisha Toshiba Semiconductor disk system having a plurality of flash memories
JPH10232817A (en) * 1997-12-26 1998-09-02 Hitachi Ltd Nonvolatile storage device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR940001166A (en) * 1992-06-22 1994-01-10 가나이 쯔도무 Semiconductor memory
US5603001A (en) * 1994-05-09 1997-02-11 Kabushiki Kaisha Toshiba Semiconductor disk system having a plurality of flash memories
JPH10232817A (en) * 1997-12-26 1998-09-02 Hitachi Ltd Nonvolatile storage device

Also Published As

Publication number Publication date
KR20010005149A (en) 2001-01-15

Similar Documents

Publication Publication Date Title
US8850119B2 (en) Operating memory with specified cache address
US6421274B1 (en) Semiconductor memory device and reading and writing method thereof
US7234087B2 (en) External storage device and memory access control method thereof
US8041882B2 (en) Method and device for writing to a flash memory
JP2017224379A (en) Nand flash memory having internal ecc processing and method of operation thereof
JP4643729B2 (en) Interleave control device, interleave control method, and memory system
US20120278539A1 (en) Memory apparatus, memory control apparatus, and memory control method
US7725621B2 (en) Semiconductor device and data transfer method
JP4256307B2 (en) Memory card
KR100298904B1 (en) Interface method for flash memory
US8166228B2 (en) Non-volatile memory system and method for reading and storing sub-data during partially overlapping periods
JP4739296B2 (en) External storage device and memory access control method thereof
JP2003203490A (en) Semiconductor memory device, control device, and control method for semiconductor memory device
JP4747535B2 (en) Data recording method
JP2008021335A (en) Nonvolatile storage device, writing method of nonvolatile storage memory and controller
JP4813454B2 (en) External storage device and memory access control method thereof
JPH09288618A (en) Storage device and memory access control method therefor
JP3447035B2 (en) Test pattern generator
JP3983788B2 (en) External storage device and memory access control method thereof
JP2007066119A (en) Memory controller, flash memory system and control method of flash memory
JPH0547189A (en) Memory card device
JP4696501B2 (en) Data recording method
JPH05210981A (en) Semiconductor memory
JP2003030045A (en) Storage device
JP2000057063A (en) Pc card type storage device

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

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee