KR100960627B1 - Flash memory device using FRAM as cache memory - Google Patents

Flash memory device using FRAM as cache memory Download PDF

Info

Publication number
KR100960627B1
KR100960627B1 KR1020080016360A KR20080016360A KR100960627B1 KR 100960627 B1 KR100960627 B1 KR 100960627B1 KR 1020080016360 A KR1020080016360 A KR 1020080016360A KR 20080016360 A KR20080016360 A KR 20080016360A KR 100960627 B1 KR100960627 B1 KR 100960627B1
Authority
KR
South Korea
Prior art keywords
data
flash memory
fram
read
cached
Prior art date
Application number
KR1020080016360A
Other languages
Korean (ko)
Other versions
KR20090090846A (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 KR1020080016360A priority Critical patent/KR100960627B1/en
Publication of KR20090090846A publication Critical patent/KR20090090846A/en
Application granted granted Critical
Publication of KR100960627B1 publication Critical patent/KR100960627B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/06Address interface arrangements, e.g. address buffers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 발명은 에프램을 캐시 메모리로 사용함으로써 실행 속도를 높이고 데이터의 보전성을 향상시킨 플래시 메모리 장치에 관한 것이다. The present invention relates to a flash memory device that increases the execution speed and improves data integrity by using an fram as a cache memory.

이러한 목적을 달성하기 위한 기술구성은, 데이터가 저장되는 플래시 메모리(100); 상기 플래시 메모리(100)에 저장된 데이터 중 최근에 읽기/쓰기 연산이 수행된 데이터가 캐싱되어 저장되고, 상기 캐싱된 데이터에 관한 메타 데이터에 대해서만 메모리가 동적으로 할당되어 캐시 매핑 테이블로 함께 저장되는 에프램(210); 상기 플래시 메모리(100) 또는 에프램(210) 중 어느 하나를 선택하여 데이터의 읽기/쓰기 연산을 수행하고, 에프램(210)에 캐싱된 데이터를 플래시 메모리(100)로 플러싱하는 플래시 메모리 제어부(200); 및 상기 플래시 메모리 제어부(200)와 호스트(400) 사이의 데이터 입출력을 제어하는 중앙 제어부(300)를 포함하여 구성된다.Technical configuration for achieving this purpose, the flash memory 100, the data is stored; Among the data stored in the flash memory 100, data that has been recently read / written has been cached and stored, and memory is dynamically allocated only to metadata related to the cached data and stored together in a cache mapping table. RAM 210; A flash memory controller configured to select one of the flash memory 100 and the fram 210 to perform a read / write operation of the data, and to flush the data cached in the fram 210 to the flash memory 100 ( 200); And a central controller 300 controlling data input / output between the flash memory controller 200 and the host 400.

에프램, 플래시 메모리, 캐시 메모리, 매핑 테이블 Fram, flash memory, cache memory, mapping table

Description

에프램을 캐시 메모리로 사용하는 플래시 메모리 장치{Flash memory device using FRAM as cache memory}Flash memory device using FRAM as cache memory}

본 발명은 플래시 메모리 장치에 관한 것으로, 보다 상세하게는 에프램을 캐시 메모리로 사용함으로써 메모리 장치의 실행 속도를 높이고 데이터의 보전성을 향상시킨 플래시 메모리 장치에 관한 것이다.The present invention relates to a flash memory device, and more particularly, to a flash memory device that increases the execution speed of the memory device and improves data integrity by using the fram as a cache memory.

일반적으로, 컴퓨터, 디지털 카메라, PDA 및 다양한 모바일 장치와 같은 전자 장치에는 데이터를 저장하기 위한 메모리 장치가 구비되며, 이러한 메모리 장치로는 전원이 차단된 이후 데이터가 삭제되는 휘발성 메모리(Volatile Memory)인 디램(DRAM) 및 에스램(SRAM)과, 전원이 차단된 이후에도 데이터가 계속해서 남는 비휘발성 메모리(Non Volatile Memory)인 플래시, 피램(PRAM) 및 에프램(FRAM)이 있다. 특히, 플래시 메모리는 다른 메모리들과는 달리 비휘발성을 가지면서도 전력 소모가 적으며 크기가 작아서 디지털 카메라, PDA 및 모바일 장치와 같은 소형 전자 장치의 저장 장치로서 널리 사용되고 있다.In general, electronic devices such as computers, digital cameras, PDAs, and various mobile devices are provided with memory devices for storing data, and such memory devices are volatile memory (Volatile Memory) in which data is deleted after power is cut off. DRAM and SRAM, and non-volatile memory (Non Volatile Memory), flash, PRAM and FRAM, which remain after the power is turned off. In particular, flash memory, unlike other memories, is nonvolatile, low in power consumption, and small in size, and thus is widely used as a storage device for small electronic devices such as digital cameras, PDAs, and mobile devices.

플래시 메모리는 구조적으로 쓰기 연산 동작을 실행할 때, 이미 저장된 데이터가 있는 섹터에는 또다시 중첩하여 기록할 수 없는 특성을 지니기 때문에 새로운 데이터를 기록하기 전에 이전 데이터가 저장된 섹터를 삭제하는 삭제 연산을 필요로 한다. 이로 인해 쓰기 연산은 읽기 연산 동작에 비해 시간이 오래 걸리게 되고, 최근에 수행하던 데이터 또는 빈번하게 사용되는 데이터를 액세스(access)하는 시간이 오래 걸리는 문제점이 있다. 또한, 쓰기 연산 및 삭제 연산 동작이 실행되는 동안 갑자기 전원이 끊어지게 되면, 플래시 메모리에 저장된 데이터가 파손되어 데이터의 복구가 불가능한 상태가 되는 문제점이 발생된다.Since flash memory has a characteristic that when a write operation is structurally executed, a sector having already stored data cannot be overlaid and written again, a delete operation that deletes a sector where old data is stored before writing new data is required. do. As a result, the write operation may take longer than the read operation, and it may take a long time to access recently performed data or frequently used data. In addition, if the power is suddenly cut off during the write operation and the delete operation, the data stored in the flash memory may be damaged and the data may not be recovered.

따라서, 최근에는 메모리 장치의 액세스 속도를 높이면서 데이터가 파손되는 것을 방지하기 위한 메모리 장치의 개발이 활발히 수행중이며, 그 중 하나가 국내 등록특허 제10-672996호에 개시되어 있다.Therefore, in recent years, development of a memory device for preventing data from being damaged while increasing the access speed of the memory device is being actively performed, one of which is disclosed in Korean Patent No. 10-672996.

도 1은 이러한 종래 플래시 메모리 장치를 나타낸 블럭도이다. 도면을 참조하여 설명하면, 상기 국내 등록특허 제10-672996호에서 개시된 메모리 장치(10)는 호스트(50)와 플래시 메모리(40) 사이에서 데이터의 입출력을 제어하는 중앙 제어부(20)가 마련되고, 이 중앙 제어부(20)에는 별도로 에프램(30)이 구비되어 있다. 1 is a block diagram showing such a conventional flash memory device. Referring to the drawings, the memory device 10 disclosed in Korean Patent No. 10-672996 is provided with a central control unit 20 for controlling the input and output of data between the host 50 and the flash memory 40 In addition, the central control unit 20 is provided with an fram 30 separately.

데이터는 일반 데이터와 이 일반 데이터를 입출력하는데 필요한 매핑 정보 등을 포함한 메타 데이터로 구별되는데, 종래에는 이들 일반 데이터와 메타 데이터가 모두 플래시 메모리(40)에 저장되었다. 하나의 데이터를 입출력하기 위해서는 매핑 정보를 가진 메타 데이터와 해당 일반 데이터에 대해 2번의 액세스가 필요한데, 종래에는 2번의 액세스가 모두 플래시 메모리에 대해 수행되므로 상대적으로 실행 속도가 매우 느린 문제점이 있었다.Data is divided into general data and metadata including mapping information necessary for inputting and outputting the general data, and in the related art, both of the general data and the metadata are stored in the flash memory 40. In order to input and output a single data, two accesses are required for metadata having mapping information and corresponding general data. In the related art, two accesses are performed to a flash memory.

상기 메모리 장치(10)는 상기 메타 데이터를 플래시 메모리(40)에 비해 상대 적으로 고속 액세스가 가능한 에프램(30)에 별도로 저장함으로써, 메모리 전체의 액세스 속도를 증가시키도록 한 것이다. 그러나, 실제로는 일반 데이터에 비해 메타 데이터의 크기(통상 16 ~ 64byte)가 매우 작기 때문에 메타 데이터의 액세스 속도가 전체 성능에 미치는 영향이 미비하여 그 실효성은 크지 못하였다. The memory device 10 increases the access speed of the entire memory by separately storing the meta data in the fram 30 which can be accessed relatively faster than the flash memory 40. However, since the size of metadata (normally 16 to 64 bytes) is very small compared to general data, the access speed of metadata is insignificant to overall performance and its effectiveness is not large.

플래시 메모리 장치의 실행 속도를 향상시키기 위한 또 다른 종래 기술로서 에스램(SRAM)을 사용하여 캐시 메모리를 구성한 것이 있다. 즉, 메모리 장치의 중앙 제어부는 플래시 메모리와 별도로 에스램으로 구성된 캐시 메모리를 구비하여 데이터 캐싱이 이루어지도록 한 것이다. Another conventional technique for improving the execution speed of a flash memory device is to configure a cache memory using SRAM. That is, the central control unit of the memory device includes a cache memory composed of an SRAM separate from the flash memory to perform data caching.

그러나, 이 메모리 장치는 에스램이 휘발성 메모리인 관계로 호스트로부터 분리되어 전원이 꺼진 다음에는 재접속하더라도 캐싱된 데이터가 모두 지워져 처음부터 다시 캐싱하여야 하기 때문에 히트율이 크게 저하되었다. 또한, 전원이 갑자기 꺼지는 경우를 대비하여 캐싱 중에서도 백그라운드로 계속하여 플래시 메모리로 플러싱(FLUSHING)하여야 했으므로 성능이 저하되었다. 더욱이 상기 플러싱 과정에서 전원이 갑자기 꺼지면 데이터가 파손되는 문제도 있었다. 또한, 캐시 메모리에 데이터 캐싱만 이루어지고 매핑 정보에 대한 캐싱이 이루어지지 않아 액세스 속도 향상에 한계가 있었다. However, since the RAM device is a volatile memory, the hit rate is greatly reduced because all cached data is erased and recached from the beginning even when the power is turned off after reconnecting from the host. In addition, performance was degraded because it had to be continuously flushed to the flash memory in the background during caching in case the power was suddenly turned off. In addition, there was a problem that data is damaged when the power is suddenly turned off during the flushing process. In addition, since only data caching is performed in the cache memory and no caching of mapping information is performed, there is a limit in improving access speed.

본 발명은 상기와 같은 문제점을 해결하기 위하여 개발된 것으로서, 비휘발성인 에프램을 캐시 메모리로 사용함과 동시에 일반 데이터뿐만 아니라 매핑 정보를 갖는 메타 데이터까지 캐싱하여 캐시 매핑 테이블로 에프램에 저장하도록 함으로써 캐시의 히트율을 높이고 데이터 보전성을 향상시킨 에프램을 캐시 메모리로 사용한 플래시 메모리 장치를 제공하는데 그 목적이 있다. The present invention was developed to solve the above problems, by using a non-volatile fram as a cache memory and at the same time to cache not only general data but also metadata with mapping information to be stored in the fram as a cache mapping table It is an object of the present invention to provide a flash memory device using an fram as a cache memory that increases the hit ratio of the cache and improves data integrity.

상술한 목적을 달성하기 위하여, 본 발명의 데이터가 저장되는 플래시 메모리; 상기 플래시 메모리에 저장된 데이터 중 최근에 읽기/쓰기 연산이 수행된 데이터가 캐싱되어 저장되고, 상기 캐싱된 데이터에 관한 메타 데이터에 대해서만 메모리가 동적으로 할당되어 캐시 매핑 테이블로 함께 저장되는 에프램; 상기 플래시 메모리 또는 에프램 중 어느 하나를 선택하여 데이터의 읽기/쓰기 연산을 수행하고, 에프램에 캐싱된 데이터를 플래시 메모리로 플러싱하는 플래시 메모리 제어부; 및 상기 플래시 메모리 제어부와 호스트 사이의 데이터 입출력을 제어하는 중앙 제어부를 포함하여 구성된다.In order to achieve the above object, a flash memory in which data of the present invention is stored; An fram in which recently read / write operation data of the data stored in the flash memory is cached and stored, and the memory is dynamically allocated only to metadata regarding the cached data and stored together in a cache mapping table; A flash memory controller configured to select any one of the flash memory and the fram to perform data read / write operations, and to flush the data cached in the fram to the flash memory; And a central controller controlling data input / output between the flash memory controller and a host.

한편, 상기 플래시 메모리 제어부는 부팅 속도를 높이기 위하여 호스트와 연결된 즉시 초기 부팅시 필요한 시스템 파일을 미리 에프램에 캐싱하는 제어신호를 캐싱 제어부에 전송하도록 구성된 부팅 정보 제어부를 더 포함하여 구성하는 것이 바람직하다.The flash memory controller may further include a boot information controller configured to transmit, to the caching controller, a control signal for caching a system file necessary for initial booting to the fram in advance in order to increase the boot speed. .

본 발명은 플래시 메모리보다 액세스 속도가 높은 에프램을 캐시 메모리로 사용함으로써 메모리 장치의 실행 속도를 향상시키고, 플래시 메모리에 저장된 일반 데이터뿐만 아니라 그 매핑 정보를 포함하는 메타 데이터까지 에프램에 캐싱함으로써 실행 속도를 더욱 향상시켜준다.The present invention improves the execution speed of a memory device by using an fram having a higher access speed than a flash memory as a cache memory, and executes by caching not only general data stored in the flash memory but also metadata including its mapping information. Speed up even more.

상기 메타 데이터의 캐싱은 플래시 메모리에서 에프램으로 캐싱된 데이터에 대해서만 동적으로 이루어져 캐시 매핑 테이블을 구성하기 때문에, 플래시 메모리에 정적으로 할당되는 일반 매핑 테이블보다 매핑 테이블을 구성하고 검사하는데 걸리는 시간을 현저히 감소시킬 수 있고, 캐시 메모리로서 에프램의 사용량도 크게 절감할 수 있다.Since the caching of the metadata is dynamically performed only for the data cached from the flash memory to the fram, the cache mapping table is composed. Therefore, the time taken to construct and examine the mapping table is significantly higher than that of the general mapping table statically allocated to the flash memory. In addition, the usage of the fram as cache memory can be greatly reduced.

또한, 비휘발성인 에프램에 일반 데이터 및 그 매핑 정보를 모두 캐싱하므로 전원이 꺼진 후에 재접속하더라도 기존의 캐싱된 데이터가 그대로 보전되어 히트율이 크게 증가되고, 캐시 메모리와 플래시 메모리 간에 데이터 싱크를 맞추기 위해 실시간으로 플러싱을 할 필요가 없으므로 메모리 장치의 실행 속도가 크게 향상된다.In addition, all data and its mapping information are cached in the nonvolatile FRAM, so even if the device is reconnected after the power is turned off, the existing cached data is preserved as it is, and the hit rate is greatly increased. This eliminates the need for flushing in real time, greatly speeding up memory device execution.

또한, 호스트 인터페이스를 복수개로 구성하고, 각각의 호스트 인터페이스를 통해 호스트와 플래시 메모리 사이에 병렬 데이터 전송이 이루어지므로 데이터 전송 속도가 크게 향상된다.In addition, since a plurality of host interfaces are configured and parallel data transfer is performed between the host and the flash memory through each host interface, the data transfer speed is greatly improved.

이하에서 첨부된 도면을 참조로 본 발명에 따른 플래시 메모리 장치의 바람 직한 일 실시예를 보다 상세히 설명한다. 도 2는 본 발명에 따른 플래시 메모리 장치를 나타낸 전체 블록도이고, 도 3은 도 2의 플래시 메모리 제어부를 나타낸 상세 블록도이며, 도 4는 도 3의 캐싱 제어부를 나타낸 상세 블록도이다. Hereinafter, a preferred embodiment of a flash memory device according to the present invention will be described in detail with reference to the accompanying drawings. 2 is a block diagram illustrating the flash memory device according to the present invention, FIG. 3 is a detailed block diagram illustrating the flash memory controller of FIG. 2, and FIG. 4 is a detailed block diagram illustrating the caching controller of FIG. 3.

본 발명에 따른 플래시 메모리 장치는, 크게 데이터가 저장되는 플래시 메모리(100), 상기 플래시 메모리(100)에 저장된 데이터 중에서 일부를 캐싱하여 비휘발성 메모리인 에프램(FRAM, 210)에 저장하는 플래시 메모리 제어부(200) 및 이 플래시 메모리 제어부(200)와 호스트(400) 사이의 데이터 입출력을 제어하는 중앙 제어부(300)로 구성된다. 또한, 상기 중앙 제어부(300)는 메모리 장치의 구동에 필요한 프로그램이 저장된 롬(310)과 데이터의 임시 저장 버퍼로서 램(320)을 구비하고, 호스트 인터페이스(410)를 통해 호스트(400)의 명령을 해석하고 데이터의 입출력을 제어한다.Flash memory device according to the present invention, the flash memory 100 is largely stored data, the flash memory for caching a portion of the data stored in the flash memory 100 and stored in the non-volatile memory (FRAM, 210) The control unit 200 and the flash memory control unit 200 and the central control unit 300 for controlling data input and output between the host 400. In addition, the central controller 300 includes a ROM 310 in which a program necessary for driving a memory device is stored, and a RAM 320 as a temporary storage buffer of data, and commands the host 400 through the host interface 410. Interpret and control the input and output of data.

상기 플래시 메모리(100)는 종래의 플래시 메모리와 동일하게 일반 데이터(110)와 이 일반 데이터를 입출력하는데 필요한 매핑 정보 등을 포함한 메타 데이터(120)가 일정한 파일 시스템에 따라 저장된다.The flash memory 100 stores the general data 110 and the meta data 120 including mapping information necessary for inputting / outputting the general data as in the conventional flash memory according to a predetermined file system.

상기 플래시 메모리 제어부(200)는 본 발명에 따른 가장 특징적인 기술구성으로서, 캐시 메모리로서 비휘발성인 에프램(210)을 구비하고 상기 플래시 메모리(100)에 저장된 데이터 중에서 최근에 읽기/쓰기 연산이 수행된 데이터를 상기 에프램(210)에 저장한다. The flash memory controller 200 is the most characteristic technical configuration according to the present invention. The flash memory controller 200 includes a nonvolatile FRAM 210 as a cache memory, and recently read / write operations are performed among data stored in the flash memory 100. The performed data is stored in the fram 210.

이를 위해 상기 플래시 메모리 제어부(200)는, 도 3에 도시된 바와 같이 상기 플래시 메모리(100) 또는 에프램(210) 중 어느 하나를 선택하여 읽기/쓰기 연산 을 수행하고 플러싱 동작을 제어하는 캐싱 제어부(220)와, 상기 중앙 제어부(300)로부터의 입출력 명령을 상기 캐싱 제어부(220)로 전송하는 중앙 제어부 인터페이스(250)를 포함한다. 플래시 메모리 인터페이스(230)는 상기 캐싱 제어부(220)가 플래시 메모리(100)와의 데이터 입출력을 중계하는 로직이다. To this end, the flash memory controller 200 selects one of the flash memory 100 and the fram 210 as shown in FIG. 3 to perform a read / write operation and control a flushing operation. 220, and a central controller interface 250 for transmitting input / output commands from the central controller 300 to the caching controller 220. The flash memory interface 230 is logic for the caching controller 220 to relay data input / output with the flash memory 100.

상기 캐싱 제어부(220)가 캐싱 동작을 실행함으로 있어서 플래시 메모리(100)에 저장된 데이터 중에서 어느 것을 캐싱할 것인가는 폴리시(Policy)의 문제로서 데이터의 종류 또는 구동 프로그램의 특성에 따라 여러 가지 알고리즘 개발되어 있다. 본 발명에서는 보편적으로 사용되는 캐싱 알고리즘인 가장 최근에 사용된 데이터를 캐싱하는 알고리즘을 채택하고 있으나, 균등물에 속하는 다른 캐싱 알고리즘을 사용한 경우에도 본 발명의 기술적 사상에 포함됨은 당연하다 할 것이다. As the caching control unit 220 executes a caching operation, which of the data stored in the flash memory 100 is cached is a matter of policy, and various algorithms are developed according to the type of data or the characteristics of the driving program. have. Although the present invention adopts an algorithm for caching the most recently used data, which is a commonly used caching algorithm, even if other caching algorithms belonging to the equivalents are included in the technical spirit of the present invention.

본 발명에 따르면 상기 플래시 메모리 제어부(200), 보다 정확하게는 상기 캐싱 제어부(220)에서 최근에 읽기/쓰기 연산이 수행된 일반 데이터(110)를 캐싱함과 동시에 이 캐싱된 일반 데이터에 대한 매핑 정보를 포함한 메타 데이터(120)도 함께 캐싱하여 에프램(210)에 저장함으로써 데이터 액세스 속도를 크게 향상시켜준다. According to the present invention, the flash memory controller 200, more precisely, the caching controller 220 caches the general data 110 on which the read / write operation was recently performed, and at the same time, the mapping information on the cached general data. The metadata 120 including the cache is also cached and stored in the fram 210 to greatly improve the data access speed.

보다 상세하게 설명하면, 일반 데이터(110)와 이에 관한 메타 데이터(120)를 함께 캐싱하고 메타 데이터(120)에 대해서는 메모리를 동적으로 할당하여 캐시 매핑 테이블로 에프램에 저장한다. 여기서 캐시 매핑 테이블을 동적으로 할당한다는 것은 플래시 메모리(100)에 저장된 모든 일반 데이터(110)에 대한 메타 데이터(120)를 테이블화한다는 것이 아니라, 캐싱된 일반 데이터(110)에 대해서만 에프 램(210)의 특정 영역에 테이블화하여 저장한다는 것을 의미한다. 이에 의해 캐시 매핑 테이블을 저장하고 검사하는데 걸리는 시간을 절약할 수 있고, 고가인 에프램의 사용량도 절감할 수 있다.In more detail, the general data 110 and the meta data 120 related thereto are cached together, and the metadata 120 is dynamically allocated to the memory and stored in the fram as a cache mapping table. The dynamic allocation of the cache mapping table here does not table the metadata 120 for all of the general data 110 stored in the flash memory 100, but only the program 210 for the cached general data 110. Means to table and store in a specific area. This saves the time it takes to store and inspect the cache mapping table, and reduces the cost of expensive frams.

상술한 바와 같이 플래시 메모리는 그 구조적인 한계로 인해 읽기/쓰기 연산을 위한 액세스 속도가 상대적으로 느리다. 따라서 위와 같이 구성된 본 발명의 캐싱 알고리즘에 의하면 플래시 메모리에 대한 액세스 횟수를 감소시켜 메모리 장치의 실행 속도를 획기적으로 향상시킬 수 있다. As described above, the flash memory has a relatively slow access speed for read / write operations due to its structural limitations. Therefore, according to the caching algorithm of the present invention configured as described above can reduce the number of times of access to the flash memory can significantly improve the execution speed of the memory device.

이에 반해, 일반 데이터를 캐싱하지 아니하고 메타 데이터만을 에프램에 저장하는 종래의 등록특허 제10-672996호에 개시된 메모리 장치에 따르면 일반 데이터에 대해 읽기/쓰기 연산을 수행하기 위해서는 반드시 플래시 메모리를 액세스하여야 하므로 실행 속도가 저하된다. 더욱이 에프램에 저장되는 메타 데이터는 캐싱된 데이터에 대한 매핑 테이블이 동적으로 저장된 것이 아니라, 플래시 메모리에 저장된 일반 데이터에 대한 모든 메타 데이터가 정적으로 저장되어야 하므로 고가의 에프램 사용량이 크게 증가되고 이 메타 데이터를 검사하는데 시간이 너무 오래 걸리므로 현실적으로 적용하기가 거의 불가능하다. In contrast, according to the conventional memory device disclosed in Korean Patent No. 10-672996, which stores only meta data in an fram without caching general data, a flash memory must be accessed to perform read / write operations on the general data. This slows down execution. Furthermore, the metadata stored in the fram is not a dynamic mapping table for cached data, but all metadata for regular data stored in flash memory must be stored statically, resulting in a significant increase in expensive fram usage. Examining metadata takes too long, making it practically impossible to apply.

또한, 종래에 에스램을 캐시 메모리로 사용하는 메모리 장치도 데이터 캐시만을 실행하고 메타 데이터에 대해서는 별도의 캐시 매핑 테이블을 에스램에 동적으로 저장하지 않기 때문에 매핑을 위한 플래시 메모리의 액세스 횟수가 증가되어야 하거나 양산시에 플래시 메모리 전체를 읽어 매핑 테이블을 생성 저장하도록 하여야 한다. 이것은 실행 속도를 크게 저하시킬 뿐만 아니라, 양산시에 매핑 테이블 생성에 따르는 시간이 소요되어 양산성이 떨어지는 문제점이 있다. 또한, 매핑 테이블이 특정 영역에 저장되는 경우 테이블 데이터 영역에서 삭제(ERASE)가 집중적으로 일어나기 때문에 제품의 수명을 단축시키는 치명적인 문제가 발생한다.In addition, since a conventional memory device using SRAM as a cache memory only executes the data cache and does not dynamically store a separate cache mapping table for SRAM, the number of accesses of the flash memory for mapping must be increased. Or, during mass production, read the entire flash memory to create and save mapping table. This not only significantly reduces the execution speed, but also takes time due to the mapping table generation during mass production, which leads to a problem in that mass production is inferior. In addition, when the mapping table is stored in a specific area, a ERASE occurs intensively in the table data area, thereby causing a fatal problem of shortening the life of the product.

더욱이 에스램이 휘발성 메모리이므로 전원이 꺼지면 캐싱된 데이터가 모두 지워져 버리고, 플래시 메모리에 저장된 원본 데이터와의 싱크를 맞추기 위해 실시간으로 플러싱 동작이 실행되어야 하며, 플러싱 동작 중에 전원이 갑자기 꺼지면 캐싱된 데이터가 모두 지워져 데이터가 파손되는 문제가 있다는 것은 이미 상기한 바와 같다. Moreover, since SRAM is volatile memory, all cached data is erased when the power is turned off, and the flushing operation must be executed in real time to synchronize with the original data stored in the flash memory.If the power is suddenly turned off during the flushing operation, the cached data is As described above, there is a problem that all of the data is erased and the data is damaged.

이러한 문제점은 본 발명과 같이 캐시 메모리로서 비휘발성인 에프램을 사용함으로써 완전히 해결할 수 있다. 즉 본 발명에 따르면 전원이 꺼지더라도 에프램에 기존에 캐싱된 데이터가 동적 캐시 매칭 테이블과 함께 계속 저장되어 있으므로, 호스트와 재접속된 후에도 에프램에 액세스하는 것만으로 캐싱된 데이터를 곧바로 사용할 수 있어 히트율이 크게 향상된다. This problem can be completely solved by using a nonvolatile fram as a cache memory as in the present invention. That is, according to the present invention, even if the power is turned off, the cached data is still stored in the fram together with the dynamic cache matching table, so that the cached data can be used immediately by accessing the fram even after reconnecting with the host. The rate is greatly improved.

또한, 에프램에 캐싱된 데이터는 전원이 꺼지더라도 지워지지 않기 때문에 실시간으로 플러싱할 필요가 없고 정기적으로 또는 일정한 조건에 해당하는 경우에만 플래시 메모리에 플러싱함으로써[이를 "지연 쓰기(Delay Write)"라고 한다], 데이터 싱크를 맞출 수 있다. 더욱이, 플러싱 과정에서 전원이 갑자기 꺼지더라도 에프램에 데이터가 그대로 남아 있어 싱크가 맞지 않는 데이터만 재 플러싱할 수 있으므로 데이터가 파손되는 것을 방지할 수 있다. In addition, since the data cached in the fram is not erased even when the power is turned off, it does not need to be flushed in real time and is flushed to the flash memory at regular or constant conditions (this is called "delay write"). ], You can set the data sink. Furthermore, even if the power is suddenly turned off during the flushing process, the data remains in the fram so that only data that is out of sync can be re-flushed, thereby preventing data from being destroyed.

이와 같이 캐시 메모리로서 에프램의 비휘발 특성(하드웨어적 특성)을 이용 하는 구성은 메타 데이터까지 캐싱하여 동적으로 테이블화하는 알고리즘의 특성(소프트웨어적 특성)과 더불어 본 발명의 가장 특징적인 기술구성을 이룬다. As described above, the configuration using the nonvolatile characteristics (hardware characteristics) of the fram as a cache memory is the most characteristic technical configuration of the present invention, together with the characteristics (software characteristics) of the algorithm that caches metadata and dynamically tabulates it. Achieve.

상기 캐싱 제어부(220)는 본 발명에 따른 기술적 특징을 구현하기 위하여 도 4에 도시된 바와 같이 상기 중앙 제어부 인터페이스(250)에서 전송된 입출력 명령을 해석하여 데이터 읽기/쓰기 연산인지 여부를 판단하는 연산신호 판독부(222)와, 상기 판독의 결과 데이터 읽기/쓰기 연산인 경우에 해당 데이터가 상기 에프램(210)에 캐싱되어 있는 것인지 여부를 판단하고, 그 판단에 따라 플래시 메모리(100) 또는 에프램(210)을 선택하여 데이터 읽기/쓰기 연산을 수행하는 연산 실행부(224)를 포함한다.The caching controller 220 interprets an input / output command transmitted from the central controller interface 250 to determine a data read / write operation as illustrated in FIG. 4 to implement the technical features according to the present invention. In the case of the signal readout unit 222 and the result data read / write operation of the readout, it is determined whether or not the data is cached in the fram 210, and according to the determination, the flash memory 100 or the F. It includes a calculation execution unit 224 to select the RAM 210 to perform a data read / write operation.

캐싱된 데이터에 대한 메타 데이터, 다시 말해 캐시 매핑 테이블이 에프램(210)에 동적으로 할당되어 있기 때문에, 상기 연산 실행부(224)는 에프램(210)에 저장된 상기 캐시 매핑 테이블을 참조하여 해당 데이터가 캐싱되어 있는지 여부를 판단한다.Since metadata about cached data, that is, a cache mapping table is dynamically allocated to the fram 210, the operation execution unit 224 may refer to the cache mapping table stored in the fram 210 so as to correspond to the cache mapping table. Determine whether data is cached.

상기 연산 실행부(224)는 해당 데이터가 캐싱되어 있는 경우에 에프램(210)에 데이터 읽기/쓰기 연산을 수행하기 위한 어드레스를 생성하는 에프램 어드레스 제어부(226)와 생성된 어드레스를 참조하여 에프램(210)에 데이터 읽기/쓰기 연산을 수행하는 에프램 연산 제어부(227)를 포함한다. 예를 들어, 상기 에프램 어드레스 제어부(226)는 상기 캐싱 매핑 테이블을 참조하여 논리적 어드레스를 물리적 어드레스로 변환하고, 상기 에프램 연산 제어부(227)에서 이 물리적 어드레스를 참조하여 에프램(210) 내에 저장된 캐싱된 데이터에 액세스하여 필요한 읽기/쓰기 연산 을 수행한다. 따라서, 에프램(210)에 캐싱된 데이터에 대해 읽기/쓰기 연산을 수행하는 때에는 플래시 메모리(100)를 액세스할 필요가 없다.The operation execution unit 224 refers to the fram address control unit 226 generating an address for performing data read / write operations to the fram 210 when the corresponding data is cached, The RAM 210 includes an fram operation controller 227 that performs data read / write operations. For example, the fram address control unit 226 converts a logical address into a physical address with reference to the caching mapping table, and the fram operation control unit 227 refers to the physical address in the fram 210. Access stored cached data and perform necessary read / write operations. Therefore, the flash memory 100 does not need to be accessed when performing a read / write operation on the data cached in the fram 210.

상기 연산 실행부(224)는 해당 데이터가 캐싱되어 있지 않은 경우에 플래시 메모리(100)에 데이터 읽기/쓰기 연산을 수행하기 위한 어드레스를 생성하는 플래시 메모리 어드레스 제어부(228)와 생성된 어드레스를 참조하여 플래시 메모리(100)에 데이터 읽기/쓰기 연산을 수행하는 플래시 메모리 연산 제어부(229)를 포함한다. 예를 들어, 상기 플래시 메모리 어드레스 제어부(228)는 플래시 메모리(100)에 저장된 해당 메타 데이터를 액세스하여 논리적 어드레스를 물리적 어드레스로 변환하고, 상기 플래시 메모리 연산 제어부(229)에서 이 물리적 어드레스를 참조하여 플래시 메모리(100)에 저장된 데이터에 대해 읽기/쓰기 연산을 수행한다.The operation execution unit 224 refers to the flash memory address control unit 228 and the generated address, which generate an address for performing a data read / write operation to the flash memory 100 when the corresponding data is not cached. The flash memory 100 includes a flash memory operation control unit 229 that performs data read / write operations. For example, the flash memory address control unit 228 accesses corresponding metadata stored in the flash memory 100 to convert a logical address into a physical address, and the flash memory operation control unit 229 refers to the physical address. Read / write operations are performed on the data stored in the flash memory 100.

상기 연산 실행부(224)에 의한 읽기/쓰기 연산 동작을 해당 데이터가 캐시 메모리에 히트(hit)된 경우와 히트되지 않은 경우로 나누어 보다 상세히 설명한다.The read / write operation performed by the operation execution unit 224 will be described in more detail by dividing the data into a case in which the data is hit or not in the cache memory.

먼저, 상기 중앙 제어부 인터페이스(250)에서 전송된 명령이 읽기 연산(Read command)인 경우에는 연산신호 판독부(222) 중 읽기 연산신호 판독부(222a)에서 이를 판독하여 통보하고, 연산 실행부(224)는 상기 판독 결과에 따라 먼저 에프램 어드레스 제어부(226)를 통해 캐시 매핑 테이블에 접근하여 읽기 연산의 대상이 된 데이터가 캐시 메모리 내에 존재하는지 여부를 검사한다. First, when the command transmitted from the central controller interface 250 is a read operation, the read operation signal reading unit 222a of the arithmetic signal reading unit 222 reads the notification and informs the operation execution unit ( According to the read result, 224 first accesses the cache mapping table through the fram address control unit 226 and checks whether data targeted for a read operation exists in the cache memory.

캐시 메모리 내에 해당 데이터가 존재하는 경우(히트된 경우) 연산 실행부(224)는 캐시 매핑 테이블을 통해 논리적 어드레스를 물리적 어드레스로 변환하고, 이를 참조하여 에프램 연산 제어부(227)를 통해 실제 에프램(210)에 저장된 해 당 데이터에 접근하고 읽기 연산을 수행한다. If the data exists in the cache memory (when it is hit), the operation execution unit 224 translates the logical address into a physical address through the cache mapping table, and refers to the actual fram through the fram operation control unit 227. Access the corresponding data stored in 210 and perform a read operation.

만약 캐시 메모리에 해당 데이터가 존재하지 않는 경우(히트되지 않은 경우)에는 연산 실행부(224)는 플래시 메모리 어드레스 제어부(228)를 통해 해당 데이터에 대한 논리적 어드레스를 물리적 어드레스로 변환하고, 이를 참조하여 플래시 메모리 연산 제어부(229)를 통해 실제 플래시 메모리(100)에 저장된 해당 데이터에 접근하고 읽기 연산을 수행한다. 그 후, 해당 데이터가 이에 대한 메타 데이터와 함께 캐싱되어 에프램(210)에 저장되고, 상기 메타 데이터는 동적으로 캐시 매핑 테이블화된다. If the data does not exist in the cache memory (not hit), the operation execution unit 224 converts the logical address for the data into a physical address through the flash memory address control unit 228 and refers to this. The data stored in the actual flash memory 100 is accessed through the flash memory operation control unit 229 and a read operation is performed. The data is then cached along with the metadata about it and stored in fram 210, which is dynamically cached and mapped into a table.

한편, 상기 중앙 제어부 인터페이스(250)에서 전송된 명령이 쓰기 연산(Write command)인 경우에는 연산신호 판독부(222) 중 쓰기 연산신호 판독부(222b)에서 이를 판독하여 통보하고, 연산 실행부(224)는 상기 판독 결과에 따라 먼저 에프램 어드레스 제어부(226)를 통해 캐시 매핑 테이블에 접근하여 쓰기 연산의 대상이 된 데이터가 캐시 메모리 내에 존재하는지 여부를 검사한다.On the other hand, when the command transmitted from the central control unit interface 250 is a write operation, the write operation signal reading unit 222b of the operation signal reading unit 222 reads the notification and notifies the operation execution unit ( According to the read result, 224 first accesses the cache mapping table through the fram address control unit 226 and checks whether data targeted for a write operation exists in the cache memory.

캐시 메모리 내에 해당 데이터가 존재하는 경우(히트된 경우) 연산 실행부(224)는 캐시 매핑 테이블을 통해 논리적 어드레스를 물리적 어드레스로 변환하고, 이를 참조하여 에프램 연산 제어부(227)를 통해 실제 에프램(210)에 저장된 해당 데이터에 접근하고 쓰기 연산을 수행한다.If the data exists in the cache memory (when it is hit), the operation execution unit 224 translates the logical address into a physical address through the cache mapping table, and refers to the actual fram through the fram operation control unit 227. Accesses the corresponding data stored in 210 and performs a write operation.

쓰기 연산을 수행한 후에는 상기 캐시 매핑 테이블에 싱크 비트(Sync bit)를 변경하여 플래시 메모리(100)의 원본 데이터와 싱크가 맞지 않다는 것만을 표시할 뿐 별도로 플러싱하지 않는다. 이것은 휘발성 메모리인 에스램(210)을 캐시 메모리 로 사용할 경우 백그라운드에서 거의 실시간으로 플러싱해야하는 것과 구별된다. After performing the write operation, the sync bit is changed in the cache mapping table to indicate only that the original data of the flash memory 100 is out of sync with the sync bit, and is not separately flushed. This is distinguished from having to flush in real time in the background when using the volatile memory SRAM 210 as cache memory.

본 발명에 따르면, 일정한 조건에 해당하는 경우에만 플러싱을 실시하여 플래시 메모리(100)에 대한 액세스 횟수를 획기적으로 감소시킬 수 있다. 예를 들어, 상기 에프램(210)에 캐싱된 데이터가 풀(Full)이 되거나 데이터가 플래시 메모리(100)의 삭제(ERASE) 단위로 쓰기 연산되는 때에만 플러싱 동작을 수행하도록 설정할 수 있다. According to the present invention, the number of accesses to the flash memory 100 can be drastically reduced by flushing only when certain conditions are met. For example, the flushing operation may be set only when data cached in the fram 210 becomes full or data is written in the erase unit of the flash memory 100.

즉, 캐시 메모리가 풀인 경우에 FIFO 방식을 적용하여 맨 먼저 캐싱된 데이터 중에서 싱크 비트가 변경된 데이터만을 플러싱하여 플래시 메모리(100)에 기록함으로써 싱크를 맞추도록 할 수 있다. 또한, 상술한 바와 같이 플래시 메모리(100)는 그 구조적 특성에 의해 쓰기 연산을 하기 위해서는 일정 크기(128Kbyte, 512Kbyte 등)의 플래시 메모리의 물리적 삭제 단위로 먼저 삭제 연산이 이루어져야 하므로, 이보다 작은 크기의 데이터를 플러싱하게 되면 삭제 연산의 효율성이 저하된다. 따라서 캐싱된 데이터에 대하여 상기 플래시 메모리의 삭제 단위로 쓰기 연산이 수행되는 때에는 곧바로 플러싱 되도록 하면 액세스의 효율성을 향상시킬 수 있다.That is, when the cache memory is full, the FIFO method may be applied to synchronize the sync by flushing only the data whose sync bit is changed among the first cached data and writing the data to the flash memory 100. In addition, as described above, in order to perform a write operation due to its structural characteristics, the flash memory 100 must first perform an erase operation on a physical erase unit of a flash memory having a predetermined size (128 Kbyte, 512 Kbyte, etc.), so that the data having a smaller size than this is required. Flushing reduces the efficiency of the delete operation. Therefore, when the write operation is performed on the cached data in the erase unit of the flash memory, flushing is performed immediately, thereby improving access efficiency.

한편, 캐시 메모리에 해당 데이터가 존재하지 않는 경우(히트되지 않은 경우)에는 연산 실행부(224)는 플래시 메모리 어드레스 제어부(228)를 통해 해당 데이터에 대한 논리적 어드레스를 물리적 어드레스로 변환하고, 이를 참조하여 플래시 메모리 연산 제어부(229)를 통해 실제 플래시 메모리(100)에 저장된 해당 데이터에 접근하고 쓰기 연산을 수행한다. 그 후, 해당 데이터가 이에 대한 메타 데이 터와 함께 캐싱되어 에프램(210)에 저장되고, 상기 메타 데이터는 동적으로 캐시 매핑 테이블화된다. On the other hand, if the data does not exist in the cache memory (not hit), the operation execution unit 224 converts the logical address for the data into a physical address through the flash memory address control unit 228 and refers to the same. By using the flash memory operation control unit 229 to access the corresponding data stored in the actual flash memory 100 and performs a write operation. The data is then cached along with the metadata for it and stored in the fram 210, and the metadata is dynamically cache mapped table.

본 발명의 다른 특징적 기술구성으로서, 도 3에 도시된 바와 같이 상기 플래시 메모리 제어부(200)는 부팅 속도를 높이기 위하여 호스트(400)와 연결된 즉시 초기 부팅시 필요한 시스템 파일을 미리 에프램(210)에 캐싱하는 제어신호를 캐싱 제어부(220)에 전송하도록 구성된 부팅 정보 제어부(240)를 더 포함할 수 있다.As another characteristic technical configuration of the present invention, as shown in FIG. 3, the flash memory controller 200 may pre-load the system file necessary for initial booting immediately after being connected to the host 400 to increase the booting speed. The boot information controller 240 may be further configured to transmit a caching control signal to the caching controller 220.

플래시 메모리 장치가 호스트(400)에 접속되면 호스트에서 플래시 메모리 장치의 시스템 파일을 전송받아 이를 부팅시키는데, 이 부팅에 필요한 시스템 파일은 도 2에 도시된 롬(310)에 저장된다. 따라서 종래에는 호스트(400)에 접속할 때마다 액세스 속도가 느린 롬(310)에 접근하여 상기 시스템 파일들을 읽어와야 했다. 그러나 본 발명에서는 액세스 속도가 빠른 에프램(210)을 캐시 메모리로 구비하고 있다는 하드웨어적 특성을 충분히 활용하여, 플래시 메모리 장치가 호스트(400)에 접속된 즉시 상기 부팅 정보 제어부(240)가 캐싱 제어부(220)에 명령을 전송하여 롬(310)에 저장된 해당 시스템 파일을 미리 에프램(210)에 캐싱한다. 그 결과 실제로 호스트(400)에서 시스템 파일을 요청한 때에는 이를 캐시 메모리에서 읽어와 전송하므로 초기 부팅 속도를 향상시킬 수 있다. When the flash memory device is connected to the host 400, the host receives a system file of the flash memory device and boots the system file. The system file necessary for the booting is stored in the ROM 310 illustrated in FIG. 2. Therefore, in the related art, each access to the host 400 requires accessing a ROM 310 having a slow access speed and reading the system files. However, in the present invention, the boot information control unit 240 immediately controls the caching control unit as soon as the flash memory device is connected to the host 400 by fully utilizing the hardware characteristic of having the fast access speed FRAM 210 as the cache memory. The command is transmitted to the server 220 to cache the corresponding system file stored in the ROM 310 to the fram 210 in advance. As a result, when a system file is actually requested by the host 400, the system file is read from the cache memory and transmitted, thereby improving initial boot speed.

본 발명의 또 다른 기술적 특징으로서, 중앙 제어부(300)는 도 2에 도시된 상기 호스트 인터페이스(410)를 2개 이상 복수개로 구비하고, 각각 상기 플래시 메모리(100)와 독립적으로 데이터를 전송하도록 구성될 수 있다. 보다 상세하게 설명하면, 현재 사용되고 있는 호스트 인터페이스로는 USB(Universal Serial Bus), SATA(Serial ATA), IDE(Integrated Drive Electronics) 등이 있는데, 상기 호스트 인터페이스(410)는 이 중에서 동종 또는 이종의 인터페이스가 복수개로 장착된다. 그리고 각각의 호스트 인터페이스(410)는 플래시 메모리(100)를 독립적으로 액세스하여 데이터를 전송한다. As another technical feature of the present invention, the central control unit 300 includes two or more host interfaces 410 illustrated in FIG. 2, and is configured to transmit data independently of the flash memory 100. Can be. In more detail, currently used host interfaces include Universal Serial Bus (USB), Serial ATA (SATA), Integrated Drive Electronics (IDE), and the like, and the host interface 410 is a homogeneous or heterogeneous interface. Is mounted in plurality. Each host interface 410 independently accesses the flash memory 100 to transmit data.

예를 들어, 상기 호스트 인터페이스(410)로서 USB와 SATA 각각 1개씩 장착되고, 상기 플래시 메모리(100)는 논리적 또는 물리적으로 구별되는 10개(편의상 1~10번이라 칭함)의 메모리로 구성되어 있다고 할 때, 호스트(400)는 상기 USB 인터페이스를 통해서 플래시 메모리 1 ~ 5번과 데이터를 전송하고, 상기 SATA 인터페이스를 통해서는 플래시 메모리 6 ~ 10번과 데이터를 전송하도록 구성될 수 있다. 이러한 병렬 처리 구조에 따르면 호스트(400)가 플래시 메모리(100)에 2개 이상의 데이터를 동시에 전송할 수 있어 전송 속도가 크게 향상된다. For example, the host interface 410 is equipped with one USB and one SATA each, and the flash memory 100 is composed of 10 memory (called 1 to 10 for convenience) that is logically or physically distinguished. In this case, the host 400 may be configured to transmit data from the flash memories 1 to 5 through the USB interface, and data from the flash memories 6 to 10 through the SATA interface. According to such a parallel processing structure, the host 400 may simultaneously transmit two or more data to the flash memory 100, thereby greatly improving the transmission speed.

도 1은 종래 플래시 메모리 장치를 나타낸 블럭도.1 is a block diagram showing a conventional flash memory device.

도 2는 본 발명에 따른 플래시 메모리 장치를 나타낸 전체 블록도.2 is an overall block diagram showing a flash memory device according to the present invention.

도 3은 도 2의 플래시 메모리 제어부를 나타낸 상세 블록도.FIG. 3 is a detailed block diagram illustrating the flash memory controller of FIG. 2. FIG.

도 4는 도 3의 캐싱 제어부를 나타낸 상세 블록도. 4 is a detailed block diagram illustrating the caching controller of FIG. 3.

※도면 주요 부분에 대한 부호의 설명※※ Explanation of symbols for main parts of drawing ※

100: 플래시 메모리 200: 플래시 메모리 제어부100: flash memory 200: flash memory control unit

210: 에프램 220: 캐싱 제어부210: fram 220: caching control unit

222: 연산신호 판독부 224: 연산 실행부222: arithmetic signal reading unit 224: arithmetic execution unit

240: 부팅 정보 제어부 300: 중앙 처리부240: boot information control unit 300: central processing unit

300: 중앙 제어부 400: 호스트300: central control unit 400: host

410: 호스트 인터페이스410: host interface

Claims (8)

데이터가 저장되는 플래시 메모리(100);A flash memory 100 in which data is stored; 상기 플래시 메모리(100)에 저장된 데이터 중 최근에 읽기/쓰기 연산이 수행된 데이터가 캐싱되어 저장되고, 상기 캐싱된 데이터에 관한 메타 데이터에 대해서만 메모리가 동적으로 할당되어 캐시 매핑 테이블로 함께 저장되는 에프램(210);Among the data stored in the flash memory 100, data that has been recently read / written has been cached and stored, and memory is dynamically allocated only to metadata related to the cached data and stored together in a cache mapping table. RAM 210; 상기 플래시 메모리(100) 또는 에프램(210) 중 어느 하나를 선택하여 데이터의 읽기/쓰기 연산을 수행하고, 에프램(210)에 캐싱된 데이터를 플래시 메모리(100)로 플러싱(FLUSHING) 하는 플래시 메모리 제어부(200); 및A flash that selects one of the flash memory 100 and the fram 210 to perform data read / write operation, and flushes the data cached in the fram 210 to the flash memory 100. A memory controller 200; And 상기 플래시 메모리 제어부(200)와 호스트(400) 사이의 데이터 입출력을 제어하는 중앙 제어부(300)를 포함하는 것을 특징으로 하는 에프램을 캐시 메모리로 사용한 플래시 메모리 장치.And a central controller (300) for controlling data input and output between the flash memory controller (200) and the host (400). 청구항 1에 있어서,The method according to claim 1, 상기 플래시 메모리 제어부(200)는 상기 플래시 메모리(100) 또는 에프램(210) 중 어느 하나를 선택하여 읽기/쓰기 연산을 수행하고 플러싱 동작을 제어하는 캐싱 제어부(220)와, 상기 중앙 제어부(300)로부터의 입출력 명령을 상기 캐싱 제어부(220)로 전송하는 중앙 제어부 인터페이스(250)를 포함하는 것을 특징으로 하는 에프램을 캐시 메모리로 사용한 플래시 메모리 장치.The flash memory controller 200 selects one of the flash memory 100 and the fram 210 to perform a read / write operation and to control a flushing operation, and the central controller 300. And a central control interface (250) for transmitting an input / output command from the network to the caching control unit (220). 청구항 2에 있어서, The method according to claim 2, 상기 캐싱 제어부(220)는 상기 중앙 제어부 인터페이스(250)에서 전송된 입출력 명령을 해석하여 데이터 읽기/쓰기 연산인지 여부를 판단하는 연산신호 판독부(222)와,The caching controller 220 interprets an input / output command transmitted from the central controller interface 250 to determine whether the read / write operation is a data read / write operation 222. 상기 판독의 결과 데이터 읽기/쓰기 연산인 경우에 해당 데이터가 상기 에프램(210)에 캐싱되어 있는 것인지 여부를 판단하고, 그 판단에 따라 플래시 메모리(100) 또는 에프램(210)을 선택하여 데이터 읽기/쓰기 연산을 수행하는 연산 실행부(224)로 이루어진 것을 특징으로 하는 에프램을 캐시 메모리로 사용한 플래시 메모리 장치.In the case of a data read / write operation as a result of the read, it is determined whether the data is cached in the fram 210, and according to the determination, the flash memory 100 or the fram 210 is selected and the data is selected. A flash memory device using an fram as a cache memory, characterized by comprising an operation execution unit 224 for performing a read / write operation. 청구항 3에 있어서,The method according to claim 3, 상기 연산 실행부(224)는 에프램(210)에 저장된 상기 캐시 매핑 테이블을 참조하여 해당 데이터가 캐싱되어 있는지 여부를 판단하는 것을 특징으로 하는 에프램을 캐시 메모리로 사용한 플래시 메모리 장치.The operation execution unit 224 refers to the cache mapping table stored in the fram 210 to determine whether the corresponding data is cached. 청구항 3에 있어서,The method according to claim 3, 상기 연산 실행부(224)는 해당 데이터가 캐싱되어 있는 경우에 에프램(210)에 데이터 읽기/쓰기 연산을 수행하기 위한 어드레스를 생성하는 에프램 어드레스 제어부(226)와 생성된 어드레스를 참조하여 에프램(210)에 데이터 읽기/쓰기 연산 을 수행하는 에프램 연산 제어부(227)를 포함하고,The operation execution unit 224 refers to the fram address control unit 226 generating an address for performing data read / write operations to the fram 210 when the corresponding data is cached, And an fram operation controller 227 for performing data read / write operations to the RAM 210. 해당 데이터가 캐싱되어 있지 않은 경우에 플래시 메모리(100)에 데이터 읽기/쓰기 연산을 수행하기 위한 어드레스를 생성하는 플래시 메모리 어드레스 제어부(228)와 생성된 어드레스를 참조하여 플래시 메모리(100)에 데이터 읽기/쓰기 연산을 수행하는 플래시 메모리 연산 제어부(229)를 포함하는 것을 특징으로 하는 에프램을 캐시 메모리로 사용한 플래시 메모리 장치.When the data is not cached, the data is read to the flash memory 100 with reference to the generated address and the flash memory address control unit 228 which generates an address for performing a data read / write operation to the flash memory 100. And a flash memory operation control unit (229) for performing a write / write operation. 청구항 1에 있어서,The method according to claim 1, 상기 플래시 메모리 제어부(200)는 상기 에프램(210)에 캐싱된 데이터가 풀(Full)이 되거나 데이터가 플래시 메모리(100)의 삭제(ERASE) 단위로 쓰기 연산되는 때에 플러싱 동작을 수행하는 것을 특징으로 하는 에프램을 캐시 메모리로 사용한 플래시 메모리 장치.The flash memory controller 200 performs a flushing operation when data cached in the fram 210 becomes full or data is written in an erase unit of the flash memory 100. The flash memory device which used the fram used as cache memory. 청구항 2에 있어서,The method according to claim 2, 상기 플래시 메모리 제어부(200)는 부팅 속도를 높이기 위하여 호스트(400)와 연결된 즉시 초기 부팅시 필요한 시스템 파일을 미리 에프램(210)에 캐싱하는 제어신호를 캐싱 제어부(220)에 전송하도록 구성된 부팅 정보 제어부(240)를 더 포함하는 것을 특징으로 하는 에프램을 캐시 메모리로 사용한 플래시 메모리 장치.The flash memory controller 200 is configured to transmit a control signal for caching the system file necessary for initial booting to the fram 210 in advance to the caching controller 220 immediately after being connected to the host 400 in order to increase the booting speed. Flash memory device using the fram as a cache memory, characterized in that it further comprises a control unit (240). 청구항 1에 있어서,The method according to claim 1, 상기 중앙 처리부(300)는 상기 호스트(400)와 병렬적 데이터 전송을 위하여 복수개의 호스트 인터페이스(410)를 구비하고, 각각의 호스트 인터페이스(410)를 통해 논리적 또는 물리적으로 구별되는 각각의 플래시 메모리(100)와 독립적으로 데이터를 전송하도록 구성된 것을 특징으로 하는 에프램을 캐시 메모리로 사용한 플래시 메모리 장치.The central processing unit 300 includes a plurality of host interfaces 410 for parallel data transmission with the host 400, and each of the flash memories that are logically or physically distinguished through each host interface 410. 100) A flash memory device using an fram as cache memory, characterized in that it is configured to transfer data independently.
KR1020080016360A 2008-02-22 2008-02-22 Flash memory device using FRAM as cache memory KR100960627B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080016360A KR100960627B1 (en) 2008-02-22 2008-02-22 Flash memory device using FRAM as cache memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080016360A KR100960627B1 (en) 2008-02-22 2008-02-22 Flash memory device using FRAM as cache memory

Publications (2)

Publication Number Publication Date
KR20090090846A KR20090090846A (en) 2009-08-26
KR100960627B1 true KR100960627B1 (en) 2010-06-07

Family

ID=41208579

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080016360A KR100960627B1 (en) 2008-02-22 2008-02-22 Flash memory device using FRAM as cache memory

Country Status (1)

Country Link
KR (1) KR100960627B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5714681B2 (en) * 2013-10-25 2015-05-07 ウィンボンド エレクトロニクス コーポレーション Semiconductor memory device
CN110515544B (en) * 2019-08-06 2022-10-21 科华数据股份有限公司 Data storage method and terminal equipment

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10275461A (en) 1997-03-28 1998-10-13 Internatl Business Mach Corp <Ibm> Plural bank sdram memory system controlling method, and system
JP2000099405A (en) 1998-09-28 2000-04-07 Fujitsu Ltd Electronic equipment having flash memory
US20050050261A1 (en) * 2003-08-27 2005-03-03 Thomas Roehr High density flash memory with high speed cache data interface

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10275461A (en) 1997-03-28 1998-10-13 Internatl Business Mach Corp <Ibm> Plural bank sdram memory system controlling method, and system
JP2000099405A (en) 1998-09-28 2000-04-07 Fujitsu Ltd Electronic equipment having flash memory
US20050050261A1 (en) * 2003-08-27 2005-03-03 Thomas Roehr High density flash memory with high speed cache data interface

Also Published As

Publication number Publication date
KR20090090846A (en) 2009-08-26

Similar Documents

Publication Publication Date Title
US8918580B2 (en) Storage device with buffer memory including non-volatile RAM and volatile RAM
CN108572796B (en) SSD with heterogeneous NVM types
US9697116B2 (en) Storage system and writing method thereof
TWI428917B (en) Flash memory device, data storage system, and operation method of a data storage system
US8521949B2 (en) Data deleting method and apparatus
JP5192228B2 (en) Flash controller cache structure
US20170160989A1 (en) Solid state disk and method for implementing trim command of the same
TWI409633B (en) Flash memory storage device, controller thereof, and method for programming data
US20100174853A1 (en) User device including flash and random write cache and method writing data
US8312213B2 (en) Method to speed up access to an external storage device and an external storage system
TWI712881B (en) Electronic machine and its control method, computer system and its control method, and host control method
CN107797759B (en) Method, device and driver for accessing cache information
KR20130031046A (en) Flash memory device and data manage method thererof
US20110271037A1 (en) Storage device performing data invalidation operation and data invalidation method thereof
CN107797760B (en) Method and device for accessing cache information and solid-state drive
TWI726314B (en) A data storage device and a data processing method
TWI698749B (en) A data storage device and a data processing method
US9734062B2 (en) System and methods for caching a small size I/O to improve caching device endurance
US20230120184A1 (en) Systems, methods, and devices for ordered access of data in block modified memory
JP6975202B2 (en) Recovery process and equipment from momentary interruptions, and computer-readable storage media
CN116225334A (en) Cold and hot data storage method, device and medium
KR101081948B1 (en) Nonvolatile memory device and data storing method thereof
KR100960627B1 (en) Flash memory device using FRAM as cache memory
CN115203079A (en) Method for writing data into solid state disk
KR101363422B1 (en) Non-volatile memory system

Legal Events

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

Payment date: 20130624

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140512

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160510

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170510

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180514

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20190618

Year of fee payment: 10