KR100960627B1 - Flash memory device using FRAM as cache memory - Google Patents
Flash memory device using FRAM as cache memory Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/06—Address 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
본 발명은 플래시 메모리 장치에 관한 것으로, 보다 상세하게는 에프램을 캐시 메모리로 사용함으로써 메모리 장치의 실행 속도를 높이고 데이터의 보전성을 향상시킨 플래시 메모리 장치에 관한 것이다.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
데이터는 일반 데이터와 이 일반 데이터를 입출력하는데 필요한 매핑 정보 등을 포함한 메타 데이터로 구별되는데, 종래에는 이들 일반 데이터와 메타 데이터가 모두 플래시 메모리(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
상기 메모리 장치(10)는 상기 메타 데이터를 플래시 메모리(40)에 비해 상대 적으로 고속 액세스가 가능한 에프램(30)에 별도로 저장함으로써, 메모리 전체의 액세스 속도를 증가시키도록 한 것이다. 그러나, 실제로는 일반 데이터에 비해 메타 데이터의 크기(통상 16 ~ 64byte)가 매우 작기 때문에 메타 데이터의 액세스 속도가 전체 성능에 미치는 영향이 미비하여 그 실효성은 크지 못하였다. The
플래시 메모리 장치의 실행 속도를 향상시키기 위한 또 다른 종래 기술로서 에스램(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
상기 플래시 메모리(100)는 종래의 플래시 메모리와 동일하게 일반 데이터(110)와 이 일반 데이터를 입출력하는데 필요한 매핑 정보 등을 포함한 메타 데이터(120)가 일정한 파일 시스템에 따라 저장된다.The
상기 플래시 메모리 제어부(200)는 본 발명에 따른 가장 특징적인 기술구성으로서, 캐시 메모리로서 비휘발성인 에프램(210)을 구비하고 상기 플래시 메모리(100)에 저장된 데이터 중에서 최근에 읽기/쓰기 연산이 수행된 데이터를 상기 에프램(210)에 저장한다. The
이를 위해 상기 플래시 메모리 제어부(200)는, 도 3에 도시된 바와 같이 상기 플래시 메모리(100) 또는 에프램(210) 중 어느 하나를 선택하여 읽기/쓰기 연산 을 수행하고 플러싱 동작을 제어하는 캐싱 제어부(220)와, 상기 중앙 제어부(300)로부터의 입출력 명령을 상기 캐싱 제어부(220)로 전송하는 중앙 제어부 인터페이스(250)를 포함한다. 플래시 메모리 인터페이스(230)는 상기 캐싱 제어부(220)가 플래시 메모리(100)와의 데이터 입출력을 중계하는 로직이다. To this end, the
상기 캐싱 제어부(220)가 캐싱 동작을 실행함으로 있어서 플래시 메모리(100)에 저장된 데이터 중에서 어느 것을 캐싱할 것인가는 폴리시(Policy)의 문제로서 데이터의 종류 또는 구동 프로그램의 특성에 따라 여러 가지 알고리즘 개발되어 있다. 본 발명에서는 보편적으로 사용되는 캐싱 알고리즘인 가장 최근에 사용된 데이터를 캐싱하는 알고리즘을 채택하고 있으나, 균등물에 속하는 다른 캐싱 알고리즘을 사용한 경우에도 본 발명의 기술적 사상에 포함됨은 당연하다 할 것이다. As the
본 발명에 따르면 상기 플래시 메모리 제어부(200), 보다 정확하게는 상기 캐싱 제어부(220)에서 최근에 읽기/쓰기 연산이 수행된 일반 데이터(110)를 캐싱함과 동시에 이 캐싱된 일반 데이터에 대한 매핑 정보를 포함한 메타 데이터(120)도 함께 캐싱하여 에프램(210)에 저장함으로써 데이터 액세스 속도를 크게 향상시켜준다. According to the present invention, the
보다 상세하게 설명하면, 일반 데이터(110)와 이에 관한 메타 데이터(120)를 함께 캐싱하고 메타 데이터(120)에 대해서는 메모리를 동적으로 할당하여 캐시 매핑 테이블로 에프램에 저장한다. 여기서 캐시 매핑 테이블을 동적으로 할당한다는 것은 플래시 메모리(100)에 저장된 모든 일반 데이터(110)에 대한 메타 데이터(120)를 테이블화한다는 것이 아니라, 캐싱된 일반 데이터(110)에 대해서만 에프 램(210)의 특정 영역에 테이블화하여 저장한다는 것을 의미한다. 이에 의해 캐시 매핑 테이블을 저장하고 검사하는데 걸리는 시간을 절약할 수 있고, 고가인 에프램의 사용량도 절감할 수 있다.In more detail, the
상술한 바와 같이 플래시 메모리는 그 구조적인 한계로 인해 읽기/쓰기 연산을 위한 액세스 속도가 상대적으로 느리다. 따라서 위와 같이 구성된 본 발명의 캐싱 알고리즘에 의하면 플래시 메모리에 대한 액세스 횟수를 감소시켜 메모리 장치의 실행 속도를 획기적으로 향상시킬 수 있다. 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
캐싱된 데이터에 대한 메타 데이터, 다시 말해 캐시 매핑 테이블이 에프램(210)에 동적으로 할당되어 있기 때문에, 상기 연산 실행부(224)는 에프램(210)에 저장된 상기 캐시 매핑 테이블을 참조하여 해당 데이터가 캐싱되어 있는지 여부를 판단한다.Since metadata about cached data, that is, a cache mapping table is dynamically allocated to the
상기 연산 실행부(224)는 해당 데이터가 캐싱되어 있는 경우에 에프램(210)에 데이터 읽기/쓰기 연산을 수행하기 위한 어드레스를 생성하는 에프램 어드레스 제어부(226)와 생성된 어드레스를 참조하여 에프램(210)에 데이터 읽기/쓰기 연산을 수행하는 에프램 연산 제어부(227)를 포함한다. 예를 들어, 상기 에프램 어드레스 제어부(226)는 상기 캐싱 매핑 테이블을 참조하여 논리적 어드레스를 물리적 어드레스로 변환하고, 상기 에프램 연산 제어부(227)에서 이 물리적 어드레스를 참조하여 에프램(210) 내에 저장된 캐싱된 데이터에 액세스하여 필요한 읽기/쓰기 연산 을 수행한다. 따라서, 에프램(210)에 캐싱된 데이터에 대해 읽기/쓰기 연산을 수행하는 때에는 플래시 메모리(100)를 액세스할 필요가 없다.The
상기 연산 실행부(224)는 해당 데이터가 캐싱되어 있지 않은 경우에 플래시 메모리(100)에 데이터 읽기/쓰기 연산을 수행하기 위한 어드레스를 생성하는 플래시 메모리 어드레스 제어부(228)와 생성된 어드레스를 참조하여 플래시 메모리(100)에 데이터 읽기/쓰기 연산을 수행하는 플래시 메모리 연산 제어부(229)를 포함한다. 예를 들어, 상기 플래시 메모리 어드레스 제어부(228)는 플래시 메모리(100)에 저장된 해당 메타 데이터를 액세스하여 논리적 어드레스를 물리적 어드레스로 변환하고, 상기 플래시 메모리 연산 제어부(229)에서 이 물리적 어드레스를 참조하여 플래시 메모리(100)에 저장된 데이터에 대해 읽기/쓰기 연산을 수행한다.The
상기 연산 실행부(224)에 의한 읽기/쓰기 연산 동작을 해당 데이터가 캐시 메모리에 히트(hit)된 경우와 히트되지 않은 경우로 나누어 보다 상세히 설명한다.The read / write operation performed by the
먼저, 상기 중앙 제어부 인터페이스(250)에서 전송된 명령이 읽기 연산(Read command)인 경우에는 연산신호 판독부(222) 중 읽기 연산신호 판독부(222a)에서 이를 판독하여 통보하고, 연산 실행부(224)는 상기 판독 결과에 따라 먼저 에프램 어드레스 제어부(226)를 통해 캐시 매핑 테이블에 접근하여 읽기 연산의 대상이 된 데이터가 캐시 메모리 내에 존재하는지 여부를 검사한다. First, when the command transmitted from the
캐시 메모리 내에 해당 데이터가 존재하는 경우(히트된 경우) 연산 실행부(224)는 캐시 매핑 테이블을 통해 논리적 어드레스를 물리적 어드레스로 변환하고, 이를 참조하여 에프램 연산 제어부(227)를 통해 실제 에프램(210)에 저장된 해 당 데이터에 접근하고 읽기 연산을 수행한다. If the data exists in the cache memory (when it is hit), the
만약 캐시 메모리에 해당 데이터가 존재하지 않는 경우(히트되지 않은 경우)에는 연산 실행부(224)는 플래시 메모리 어드레스 제어부(228)를 통해 해당 데이터에 대한 논리적 어드레스를 물리적 어드레스로 변환하고, 이를 참조하여 플래시 메모리 연산 제어부(229)를 통해 실제 플래시 메모리(100)에 저장된 해당 데이터에 접근하고 읽기 연산을 수행한다. 그 후, 해당 데이터가 이에 대한 메타 데이터와 함께 캐싱되어 에프램(210)에 저장되고, 상기 메타 데이터는 동적으로 캐시 매핑 테이블화된다. If the data does not exist in the cache memory (not hit), the
한편, 상기 중앙 제어부 인터페이스(250)에서 전송된 명령이 쓰기 연산(Write command)인 경우에는 연산신호 판독부(222) 중 쓰기 연산신호 판독부(222b)에서 이를 판독하여 통보하고, 연산 실행부(224)는 상기 판독 결과에 따라 먼저 에프램 어드레스 제어부(226)를 통해 캐시 매핑 테이블에 접근하여 쓰기 연산의 대상이 된 데이터가 캐시 메모리 내에 존재하는지 여부를 검사한다.On the other hand, when the command transmitted from the central
캐시 메모리 내에 해당 데이터가 존재하는 경우(히트된 경우) 연산 실행부(224)는 캐시 매핑 테이블을 통해 논리적 어드레스를 물리적 어드레스로 변환하고, 이를 참조하여 에프램 연산 제어부(227)를 통해 실제 에프램(210)에 저장된 해당 데이터에 접근하고 쓰기 연산을 수행한다.If the data exists in the cache memory (when it is hit), the
쓰기 연산을 수행한 후에는 상기 캐시 매핑 테이블에 싱크 비트(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
본 발명에 따르면, 일정한 조건에 해당하는 경우에만 플러싱을 실시하여 플래시 메모리(100)에 대한 액세스 횟수를 획기적으로 감소시킬 수 있다. 예를 들어, 상기 에프램(210)에 캐싱된 데이터가 풀(Full)이 되거나 데이터가 플래시 메모리(100)의 삭제(ERASE) 단위로 쓰기 연산되는 때에만 플러싱 동작을 수행하도록 설정할 수 있다. According to the present invention, the number of accesses to the
즉, 캐시 메모리가 풀인 경우에 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
한편, 캐시 메모리에 해당 데이터가 존재하지 않는 경우(히트되지 않은 경우)에는 연산 실행부(224)는 플래시 메모리 어드레스 제어부(228)를 통해 해당 데이터에 대한 논리적 어드레스를 물리적 어드레스로 변환하고, 이를 참조하여 플래시 메모리 연산 제어부(229)를 통해 실제 플래시 메모리(100)에 저장된 해당 데이터에 접근하고 쓰기 연산을 수행한다. 그 후, 해당 데이터가 이에 대한 메타 데이 터와 함께 캐싱되어 에프램(210)에 저장되고, 상기 메타 데이터는 동적으로 캐시 매핑 테이블화된다. On the other hand, if the data does not exist in the cache memory (not hit), the
본 발명의 다른 특징적 기술구성으로서, 도 3에 도시된 바와 같이 상기 플래시 메모리 제어부(200)는 부팅 속도를 높이기 위하여 호스트(400)와 연결된 즉시 초기 부팅시 필요한 시스템 파일을 미리 에프램(210)에 캐싱하는 제어신호를 캐싱 제어부(220)에 전송하도록 구성된 부팅 정보 제어부(240)를 더 포함할 수 있다.As another characteristic technical configuration of the present invention, as shown in FIG. 3, the
플래시 메모리 장치가 호스트(400)에 접속되면 호스트에서 플래시 메모리 장치의 시스템 파일을 전송받아 이를 부팅시키는데, 이 부팅에 필요한 시스템 파일은 도 2에 도시된 롬(310)에 저장된다. 따라서 종래에는 호스트(400)에 접속할 때마다 액세스 속도가 느린 롬(310)에 접근하여 상기 시스템 파일들을 읽어와야 했다. 그러나 본 발명에서는 액세스 속도가 빠른 에프램(210)을 캐시 메모리로 구비하고 있다는 하드웨어적 특성을 충분히 활용하여, 플래시 메모리 장치가 호스트(400)에 접속된 즉시 상기 부팅 정보 제어부(240)가 캐싱 제어부(220)에 명령을 전송하여 롬(310)에 저장된 해당 시스템 파일을 미리 에프램(210)에 캐싱한다. 그 결과 실제로 호스트(400)에서 시스템 파일을 요청한 때에는 이를 캐시 메모리에서 읽어와 전송하므로 초기 부팅 속도를 향상시킬 수 있다. When the flash memory device is connected to the
본 발명의 또 다른 기술적 특징으로서, 중앙 제어부(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
예를 들어, 상기 호스트 인터페이스(410)로서 USB와 SATA 각각 1개씩 장착되고, 상기 플래시 메모리(100)는 논리적 또는 물리적으로 구별되는 10개(편의상 1~10번이라 칭함)의 메모리로 구성되어 있다고 할 때, 호스트(400)는 상기 USB 인터페이스를 통해서 플래시 메모리 1 ~ 5번과 데이터를 전송하고, 상기 SATA 인터페이스를 통해서는 플래시 메모리 6 ~ 10번과 데이터를 전송하도록 구성될 수 있다. 이러한 병렬 처리 구조에 따르면 호스트(400)가 플래시 메모리(100)에 2개 이상의 데이터를 동시에 전송할 수 있어 전송 속도가 크게 향상된다. For example, the
도 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)
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)
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)
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 |
-
2008
- 2008-02-22 KR KR1020080016360A patent/KR100960627B1/en active IP Right Grant
Patent Citations (3)
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 |