KR20000039727A - Method for approaching flash memory - Google Patents
Method for approaching flash memory Download PDFInfo
- Publication number
- KR20000039727A KR20000039727A KR1019980055139A KR19980055139A KR20000039727A KR 20000039727 A KR20000039727 A KR 20000039727A KR 1019980055139 A KR1019980055139 A KR 1019980055139A KR 19980055139 A KR19980055139 A KR 19980055139A KR 20000039727 A KR20000039727 A KR 20000039727A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- flash memory
- area
- block
- task
- Prior art date
Links
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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
Description
본 발명은 플래시 메모리 접근 방법에 관한 것으로, 특히 한 순간에 적은 데이터만을 업데이트하도록 하여 더딘 엑세스 시간(access time)을 보완해 주며, 삭제 시간(erase time)의 필요성을 최소화 시켜 플래시 메모리의 실행 속도와 수명을 늘려줄 수 있는 플래시 메모리 접근 방법에 관한 것이다.The present invention relates to a flash memory access method, and in particular, to update only a small amount of data at a time to compensate for slow access time, and to minimize the need for erase time, It's about a flash memory approach that can extend its lifespan.
최근 플래시 메모리는 비휘발성(non-volatile) 메모리로 그 이용이 점차 증가하고 있는 추세로 데이터의 리드, 라이트시 일반적인 메모리와의 큰 차이점은 라이트 시간이 리드 시간에 비해 훨씬 길고, 메모리가 블록으로 나뉘어져 있어서 해당 블록에 하나의 데이터만 쓰더라도 그 블록 전체를 지우고 다시 써야 한다는 점이다.Recently, flash memory is a non-volatile memory, and its usage is gradually increasing. A big difference from general memory when reading or writing data is that the write time is much longer than the read time, and the memory is divided into blocks. Therefore, even if only one data is written to the block, the entire block must be erased and rewritten.
도1은 종래 플래시 메모리에 데이터를 라이트하는 과정을 보인 블록도로서, 이에 도시된 바와 같이 사용자가 플래시 메모리에 라이트를 하고자 할 때(ST1) 일단, 라이트할 부분이 들어있는 블록의 전체 데이터를 램(Ram)과 같은 휘발성(volatile) 메모리에 백업시킨(ST2) 다음 플래시 메모리를 지우고(ST3), 상기 램에 백업시켜둔 데이터에서 필요한 부분을 수정하여 다시 플래시 메모리에 라이트(ST4) 하였다.FIG. 1 is a block diagram illustrating a process of writing data to a conventional flash memory. As shown in FIG. 1, when a user wants to write to a flash memory (ST1), the entire data of a block containing a portion to be written is RAM. The flash memory was backed up to a volatile memory such as Ram (ST2), then the flash memory was erased (ST3), and a necessary portion of the data backed up to the RAM was modified and then written back to the flash memory (ST4).
그러나, 상기의 경우 플래시 메모리의 특성상 아주 조그만 데이터의 변화만 있더라도 지우기 과정(erase operation)이 들어가기 때문에 사용자의 체감 속도가 느려지게 된다.However, in the above case, even if there is only a small change in data due to the characteristics of the flash memory, an erasing operation is performed, so that the user's haptic speed is slowed down.
도2는 이와 같은 문제점을 개선하기 위해 멀티태스킹 기법을 적용하여 데이터의 라이트를 하는 과정을 보인 블록도로서, 이에 도시된 바와 같이 사용자가 현재 수행하고 있는 응용 프로그램(Application)의 임무(task)는 계속 수행되면서 플래시 메모리의 라이트 동작(write operation)은 상기 도1과 같은 플래시 태스크(flash task)로 실행하는 것이다. 이때 플래시 태스크(flash task)의 우선순위를 어플리케이션(Application)의 목적에 따라 다르게 두면 된다. 그리고, 플래시 태스크(flash task)의 우선순위를 응용 태스크(Application task)보다 높게 두면 즉, 라이트 동작이 완료되어 응답신호(ack)가 출력된 후 다음 과정(next procedure)이 진행되도록 할 경우는 도1의 경우와 동일하게 되고, 데이터 보존성이 높아지고, 데이터 손실율이 낮아지며 어플리케이션 실행속도가 늦어진다. 반대로 플래시 태스크의 우선 순위를 낮게 두는 경우에는 데이터가 플래시 메모리에 완전히 라이트된 것을 확인하지 않고 다음 과정(next procedure)을 진행하기 때문에 데이터의 보존성이 낮아지고, 전원이 갑자기 끊어졌을 때 데이터가 손실될 확률이 커지게 되는 단점이 있는 반면 어플리케이션의 실행속도가 빨라지는 장점이 있다.FIG. 2 is a block diagram illustrating a process of writing data by applying a multitasking technique to improve such a problem. As shown in FIG. 2, a task of an application currently executed by a user is The write operation of the flash memory while being continuously performed is executed by a flash task as shown in FIG. 1. In this case, the priority of the flash task may be set differently according to the purpose of the application. If the priority of the flash task is higher than that of the application task, that is, the next operation is performed after the write operation is completed and the response signal ack is outputted. Same as the case 1, the data retention is higher, the data loss rate is lower, and the application execution speed is slower. Conversely, if you lower the priority of the flash task, the next procedure is performed instead of confirming that the data has been completely written to the flash memory. Therefore, the preservation of the data becomes low and the probability of data loss when the power is suddenly cut off. This has the disadvantage of being larger while the application is running faster.
이와 같이, 상기 종래의 기술에 있어서는 아주 조그만 데이터의 변화만 있더라도 플래시 메모리를 지우는 과정이 들어가기 때문에 태스크 수행 시간이 길어지는 플래시 메모리의 특성을 고려하지 않고 순차 처리를 할 경우 라이트 도중 전원이 불안정하여 데이터를 잃어버려도 데이터를 복구할 수 있는 방법이 없기 때문에 개발의 최종 단계에서 심각한 오류가 발생 되는 문제점이 있었다.As described above, in the conventional technology, even if there is only a slight change in data, a process of erasing the flash memory is involved. When the sequential processing is performed without considering the characteristics of the flash memory, which causes a long task execution time, the power is unstable during writing. In the final stage of development, there was a problem that a serious error occurs because there is no way to recover data even if the data is lost.
따라서, 본 발명은 상기와 같은 종래의 문제점을 해결하기 위하여 창출한 것으로, 플래시 메모리를 복수개의 데이터 영역으로 나누고 한 영역이 다 채워질 경우 다른 영역과 번갈아 가며 이용하도록 함으로써 플래시 메모리 접근(access)시 체감 속도를 높히고, 지우기 동작을 감소 시킬 수 있는 플래시 메모리 접근 방법을 제공 하는데 그 목적이 있고 또한 이전의 데이터를 오랫동안 지우지 않으므로 데이터 오류시 데이터를 복구하는데 목적이 있다.Accordingly, the present invention was created to solve the above-mentioned conventional problems. When the flash memory is divided into a plurality of data areas and one area is filled, the present invention alternately uses the other area to experience flash memory access. Its purpose is to provide a flash memory access method that speeds up and reduces erase operations. It also aims to recover data in the event of a data failure since the previous data is not erased for a long time.
도1은 종래 플래시 메모리에 데이터를 라이트하는 과정을 보인 블록도.1 is a block diagram showing a process of writing data to a conventional flash memory.
도2는 종래 멀티태스킹 기법을 적용하여 데이터의 라이트를 하는 과정을 보인 블록도.2 is a block diagram showing a process of writing data by applying a conventional multitasking technique.
도3은 발명 플래시 메모리 접근 방법의 개념도.3 is a conceptual diagram of an inventive flash memory access method.
도4의 (a)는 플래시 메모리에 저장되는 데이터의 형식을 보인 구성도.Fig. 4A is a block diagram showing the format of data stored in the flash memory.
(b)는 데이터 영역에 저장되는 모양을 개략적으로 보인 구성도.(b) is a schematic diagram showing the shape stored in the data area.
도5는 본 발명에 의한 리드 동작시의 과정을 보인 순서도.5 is a flowchart showing a process during a read operation according to the present invention.
도6은 본 발명에 의한 라이트 동작시의 과정을 보인 순서도.Figure 6 is a flow chart showing a process during the write operation according to the present invention.
도7은 본 발명에 의한 리로케이션 태스크의 동작 과정을 보인 순서도.7 is a flowchart illustrating an operation process of a relocation task according to the present invention.
이와 같은 목적을 달성하기 위한 본 발명은, 플래시 메모리 접근 이벤트 발생시 그 요청 동작이 리드 또는 라이트인지를 판단하여 플래시 메모리에 데이터를 리드 또는 라이트 하거나 플래시 태스크의 제어메시지에 의해 플래시 메모리의복수의 영역중 어느 한 영역이 다 채워졌는지를 검사하여 리로케이션 태스크에 제어 메시지를 보내는 플래시 태스크 과정과; 다른 영역으로 라이트될 수 있도록 제어하는 리로케이션 태스크 과정으로 이루어짐으로써 달성되는 것으로, 본 발명에 따른 실시예를 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다.In order to achieve the above object, the present invention can determine whether the requested operation is read or write when a flash memory access event occurs, and read or write data to or from a plurality of areas of the flash memory by a control message of the flash task. A flash task process of checking whether one region is filled and sending a control message to a relocation task; It is achieved by a relocation task process for controlling to be written to another area, the embodiment according to the present invention will be described in detail with reference to the accompanying drawings.
일단, 플래시 메모리를 사용하는 임의의 시스템을 처음 시작하면 플래시 메모리의 임의의 데이터 영역에 저장되어 있는 최종 블록의 데이터를 검사하여 만약 오류가 있다면 그 바로 전 블록의 데이터를 최종 데이터로 하여 그 데이터를 램(Ram)으로 백업하는 초기화 동작을 하게 된다.Once you start a system that uses flash memory for the first time, it checks the data of the last block stored in any data area of flash memory, and if there is an error, the data of the immediately preceding block is used as the final data. Initialize operation to back up to RAM.
이후 발생되는 이벤트에 의해 라이트 이벤트일 경우는 램과 플래시 메모리에 동시에 라이트되게 한다.In the event of a later event, the write event is written to both RAM and flash memory.
그러나, 그 특성상 램은 리라이트가 되고 플래시 메모리는 본 발명의 방법에 의해 임의의 데이터 영역에 쌓이게 되며, 리드 이벤트일 경우는 램으로부터 데이터를 리드하게 된다.However, due to its characteristics, the RAM is rewritten and the flash memory is accumulated in an arbitrary data area by the method of the present invention, and in the case of a read event, data is read from the RAM.
그 상세한 과정을 첨부된 도면을 참조하여 설명하면 다음과 같다.The detailed process will be described below with reference to the accompanying drawings.
도3은 본 발명 플래시 메모리 접근(access) 방법의 개념도로서, 이에 도시한 바와 같이 플래시 메모리에 접근하고자 하는 이벤트(메시지 전송이나 직접 호출등)가 발생하면 플래시 태스크는 요청된 동작이 리드이면 초기화시에 플래시 메모리로 부터 백업을 받아둔 램(ram,미도시)으로 부터 데이터를 보내주고, 라이트이면 플래시 메모리의 복수의 영역(primary, secondary data area)중 어느 한 영역과 램에 동시에 데이터를 라이트하고 라이트하는 영역이 거의 다 채워지면 리로케이션 태스크를 스타트 시킨다. 리로케이션 태스크는 플래시 태스크에 의해 시작되면 현재 사용하고 있지 않은 영역을 지우고 이 영역으로 데이터를 재구성하여 복사한다.3 is a conceptual diagram of a flash memory access method according to the present invention. When an event (message transmission or direct call, etc.) occurs to access the flash memory as shown in FIG. Sends data from the RAM (not shown) backed up from the flash memory, and writes data to any one of the primary and secondary data areas of the flash memory at the same time. Start the relocation task when the area to be written is almost full. When a relocation task is initiated by a flash task, it erases the area that is not currently in use and reconstructs and copies the data into this area.
도4의 (a),(b)는 플래시 메모리의 복수의 데이터 영역에 저장되는 데이터의 형식(format)과 저장되는 모양을 개략적으로 보인 구성도로서, 데이터의 형식은 복수개의 데이터 영역 중 어느 데이터 영역에 있는 데이터가 유효한지를 구분하기 위한 무효블록 플래그(Invalid block flag)와; 데이터의 유효유무를 알려주는 유효비트(valid)와; 데이터의 유형을 구분하기 위한 데이터 유형자(ID)와; 데이터의 크기(Size) 및 업데이트할 경우의 다음 시작 어드레스(addr)등으로 구성된 헤더부와; 실제 데이터(Data)가 라이트 되는 데이터부로 구성되어 있다.4 (a) and 4 (b) are schematic diagrams illustrating a format and a shape of data stored in a plurality of data areas of a flash memory, and the format of the data is any data among the plurality of data areas. An invalid block flag for identifying whether data in the area is valid; A valid bit indicating whether data is valid; A data type identifier (ID) for identifying the type of data; A header section including a size of data and a next start address (addr) when updating; It consists of a data part to which real data (Data) is written.
상기 (a)와 같은 형식으로 구성된 데이터는 (b)와 같이 플래시 메모리의 복수개의 블록(n block)을 하나의 데이터 영역으로 구성한 복수개의 데이터 영역(primary, secondary data area)중 어느 한 데이터 영역에 데이터가 업데이트될 때 마다 종래의 블록을 지우지 않고, 다음 블록에 순차적으로 쌓이도록 한다.Data configured in the form of (a) may be stored in any one of a plurality of data areas (primary and secondary data areas) including a plurality of blocks (n blocks) of the flash memory as one data area as shown in (b). Whenever data is updated, the conventional blocks are sequentially stacked on the next block without erasing the conventional blocks.
이와 같이 플래시 메모리의 블록을 지우는 과정이 삭제되고, 바로 라이트 동작이 이루어지도록 함으로써 라이트시의 체감시간이 단축되게 된다.As such, the process of erasing the block of the flash memory is deleted, and the write operation is performed immediately, thereby reducing the haptic time during writing.
도5는 리드 동작시의 과정을 보인 순서도로서, 이에 도시된 바와 같이 발생된 이벤트가 리드일 경우 플래시 메모리와 동시에 라이트되는 램으로 부터 데이터를 리드하여 데이터를 요청한 소오스로 데이터를 전송하도록 이루어진 것으로 플래시 메모리로 부터 데이터를 리드할때에 비해 간단하게 이루어진다.FIG. 5 is a flowchart illustrating a process during a read operation. When an event generated as shown in FIG. 5 is a read, a data is read from a RAM which is simultaneously written with a flash memory to transfer data to a source requesting data. This is simpler than reading data from memory.
도6은 라이트 동작시의 과정을 보인 순서도로서, 이에 도시한 바와 같이 플래시 메모리가 동작중(Busy) 인지를 판단하여 동작중이 아니면 데이터를 업데이트하고(ST1), 동작중(Busy)이면 그 동작이 라이트 동작(write operation)인지 또는 지우기 동작(erase operation)인지를 판단하여(ST2) 만약, 라이트 동작이라면 그 라이트 동작이 완료될 때 까지 기다렸다가 업데이트 하고(ST3), 지우기 동작 즉, 리로케이션 태스크에 의해 사용하지 않는 영역을 지우고 있는 동작이라면 우선 순위에 의해 그 지우기 동작을 잠시 중지한 후 업데이트한 후에 다시 지우기 동작을 계속 수행하도록(ST4) 이루어 졌다.FIG. 6 is a flow chart illustrating a process during a write operation. As shown in FIG. 6, it is determined whether the flash memory is busy (Busy) to update data when not in operation (ST1), and when it is in operation (Busy). Determine whether this is a write operation or an erase operation (ST2). If it is a write operation, wait until the write operation is completed and update it (ST3). In the case of deleting an unused area by the priority, the erase operation is temporarily stopped and updated, and then the erase operation is continued (ST4).
도7은 리로케이션 태스크의 동작 과정을 보인 순서도로서, 이에 도시한 바와 같이 플래시 메모리의 라이트 동작이 이루어지지 않을 때 복수개의 데이터 영역중 현재 사용되지 않는 데이터 영역을 지우고(ST10), 상기 지우는 동작이 완료될 때 까지 대기한다.(ST20)FIG. 7 is a flowchart illustrating an operation of a relocation task. As shown in FIG. 7, when a write operation of a flash memory is not performed, a data region that is not currently used among a plurality of data regions is erased (ST10), and the erase operation is performed. Wait until it is completed (ST20)
다음, 현재 사용되는 데이터 영역이 다 채워지는지 그 상태를 감시하다가 상기 지우기 동작이 완료된 상태에서 현재 사용되는 데이터 영역이 모두 채워지면 최종 블록의 데이터를 상기 지우기 동작이 완료된 영역의 처음 블록으로 복사하고(ST30) 동시에 새로 사용되는 영역의 데이터가 유효한 것을 알리기 위해 상기 도4의 (a)에 도시된 바와 같이 무효블록 플래그(Invalid block flag)를 세트하고(ST40) 이와 함께 상기 동작에 관련된 기타 변수들을 같이 업데이트 시킨다.(ST50)Next, monitor the state that the currently used data area is full, and if the data area currently used is filled while the erase operation is completed, copy the data of the last block to the first block of the area where the erase operation is completed; ST30) At the same time, an invalid block flag is set as shown in (a) of FIG. 4 to indicate that data of the newly used area is valid (ST40), and together with other variables related to the operation, as shown in FIG. Update it (ST50)
이때 우선순위는 플래시 태스크가 최상위 이고, 리로케이션 태스크가 최하위로 되어 있어 플래시 태스크에 의한 플래시 메모리의 라이트 동작이 우선으로 수행되면서 라이트 동작이 되지 않을 때 리로케이션 태스크에 의해 데이터 영역의 지우기와 전환 동작이 이루어지도록 되어 있지만 리로케이션 태스크가 완료되지 않은 상태에서 영역을 전환해야 될 경우에는 리로케이션 태스크의 우선순위를 플래시 태스크와 같게 만들어 에러가 발생되지 않게 한다.At this time, the priority of the flash task is the highest and the relocation task is the lowest. Therefore, when the write operation of the flash memory is performed first by the flash task and the write operation is not performed, the data area is erased and switched by the relocation task. If this is to be done but the area needs to be switched when the relocation task is not completed, the priority of the relocation task is the same as the flash task so that no error occurs.
이상에서 설명한 바와 같이 본 발명 플래시 메모리 접근 방법은 플래시 메모리의 복수의 블록을 하나로 하는 복수개의 데이터 영역으로 나누고, 라이트시에 데이터를 외부의 램과 플래시 메모리의 어느 한 영역에 순차로 쌓이게 하고 그 영역이 다 채워질 경우 다른 영역과 번갈아 가며 이용하도록 하여 플래시 메모리는 초기화시 램에 백업할때만 리드하고, 이 후로는 새로운 데이터가 리라이트된 램으로 부터 데이터를 리드하게 함으로써 플래시 메모리 접근(access)시 체감 속도를 높히고, 지우기 동작 횟수를 감소시킴으로써 메모리의 수명을 늘려주는 효과가 있다.As described above, the flash memory access method of the present invention divides a plurality of blocks of the flash memory into a plurality of data areas, and at the time of writing, data is sequentially accumulated in any one area of the external RAM and the flash memory, and the area. When this is full, it alternates with other areas so that the flash memory can only be read when it is backed up to RAM at initialization, and then new data can be read from the rewritten RAM. By increasing the speed and reducing the number of erase operations, the life of the memory can be extended.
Claims (4)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019980055139A KR20000039727A (en) | 1998-12-15 | 1998-12-15 | Method for approaching flash memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019980055139A KR20000039727A (en) | 1998-12-15 | 1998-12-15 | Method for approaching flash memory |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20000039727A true KR20000039727A (en) | 2000-07-05 |
Family
ID=19562953
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019980055139A KR20000039727A (en) | 1998-12-15 | 1998-12-15 | Method for approaching flash memory |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20000039727A (en) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100389867B1 (en) * | 2001-06-04 | 2003-07-04 | 삼성전자주식회사 | Flash memory management method |
KR100449708B1 (en) * | 2001-11-16 | 2004-09-22 | 삼성전자주식회사 | Flash memory management method |
KR100453053B1 (en) * | 2002-06-10 | 2004-10-15 | 삼성전자주식회사 | Flash memory file system |
WO2007075668A1 (en) * | 2005-12-16 | 2007-07-05 | Microsoft Corporation | Optimizing write and wear performance for a memory |
KR100765786B1 (en) * | 2006-06-12 | 2007-10-12 | 삼성전자주식회사 | Flash memory system, host system for programming and program method thereof |
US7882300B2 (en) | 2006-10-27 | 2011-02-01 | Samsung Electronics Co., Ltd. | Apparatus and method for managing nonvolatile memory |
US8909861B2 (en) | 2004-10-21 | 2014-12-09 | Microsoft Corporation | Using external memory devices to improve system performance |
US9032151B2 (en) | 2008-09-15 | 2015-05-12 | Microsoft Technology Licensing, Llc | Method and system for ensuring reliability of cache data and metadata subsequent to a reboot |
US9361183B2 (en) | 2008-09-19 | 2016-06-07 | Microsoft Technology Licensing, Llc | Aggregation of write traffic to a data store |
US10216637B2 (en) | 2004-05-03 | 2019-02-26 | Microsoft Technology Licensing, Llc | Non-volatile memory cache performance improvement |
-
1998
- 1998-12-15 KR KR1019980055139A patent/KR20000039727A/en not_active Application Discontinuation
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100389867B1 (en) * | 2001-06-04 | 2003-07-04 | 삼성전자주식회사 | Flash memory management method |
KR100449708B1 (en) * | 2001-11-16 | 2004-09-22 | 삼성전자주식회사 | Flash memory management method |
US7127551B2 (en) | 2001-11-16 | 2006-10-24 | Samsung Electronics Co., Ltd. | Flash memory management method |
KR100453053B1 (en) * | 2002-06-10 | 2004-10-15 | 삼성전자주식회사 | Flash memory file system |
US10216637B2 (en) | 2004-05-03 | 2019-02-26 | Microsoft Technology Licensing, Llc | Non-volatile memory cache performance improvement |
US9317209B2 (en) | 2004-10-21 | 2016-04-19 | Microsoft Technology Licensing, Llc | Using external memory devices to improve system performance |
US9690496B2 (en) | 2004-10-21 | 2017-06-27 | Microsoft Technology Licensing, Llc | Using external memory devices to improve system performance |
US8909861B2 (en) | 2004-10-21 | 2014-12-09 | Microsoft Corporation | Using external memory devices to improve system performance |
US9529716B2 (en) | 2005-12-16 | 2016-12-27 | Microsoft Technology Licensing, Llc | Optimizing write and wear performance for a memory |
WO2007075668A1 (en) * | 2005-12-16 | 2007-07-05 | Microsoft Corporation | Optimizing write and wear performance for a memory |
US11334484B2 (en) | 2005-12-16 | 2022-05-17 | Microsoft Technology Licensing, Llc | Optimizing write and wear performance for a memory |
KR100765786B1 (en) * | 2006-06-12 | 2007-10-12 | 삼성전자주식회사 | Flash memory system, host system for programming and program method thereof |
US7882300B2 (en) | 2006-10-27 | 2011-02-01 | Samsung Electronics Co., Ltd. | Apparatus and method for managing nonvolatile memory |
US9032151B2 (en) | 2008-09-15 | 2015-05-12 | Microsoft Technology Licensing, Llc | Method and system for ensuring reliability of cache data and metadata subsequent to a reboot |
US10387313B2 (en) | 2008-09-15 | 2019-08-20 | Microsoft Technology Licensing, Llc | Method and system for ensuring reliability of cache data and metadata subsequent to a reboot |
US9361183B2 (en) | 2008-09-19 | 2016-06-07 | Microsoft Technology Licensing, Llc | Aggregation of write traffic to a data store |
US9448890B2 (en) | 2008-09-19 | 2016-09-20 | Microsoft Technology Licensing, Llc | Aggregation of write traffic to a data store |
US10509730B2 (en) | 2008-09-19 | 2019-12-17 | Microsoft Technology Licensing, Llc | Aggregation of write traffic to a data store |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6571326B2 (en) | Space allocation for data in a nonvolatile memory | |
US6571312B1 (en) | Data storage method and data processing device using an erasure block buffer and write buffer for writing and erasing data in memory | |
US8051258B2 (en) | Apparatus and methods using invalidity indicators for buffered memory | |
US8307149B2 (en) | Nonvolatile memory device including a logical-to-physical logig-to-physical address conversion table, a temporary block and a temporary table | |
JP3544610B2 (en) | Memory device | |
TWI261254B (en) | Memory card and semiconductor device | |
JP2778786B2 (en) | Data update / restoration processing method | |
KR100238925B1 (en) | A recoverable disk control system with a non-volatile memory | |
US20060179212A1 (en) | Flash memory control devices that support multiple memory mapping schemes and methods of operating same | |
JP2007280428A (en) | Memory management | |
US20080120488A1 (en) | Apparatus and method of managing nonvolatile memory | |
US8650339B2 (en) | Control of data transfer | |
KR20070005730A (en) | Nonvolatile storage device and data write method | |
JP2008152464A (en) | Storage device | |
JP2006079543A (en) | Memory management device | |
US8185705B2 (en) | Information recording medium, information recording medium accessing apparatus and accessing method | |
KR20040007395A (en) | Posted write-through cache for flash memory | |
JP4046877B2 (en) | Batch erase nonvolatile memory and mobile phone | |
JPH10133940A (en) | Memory device | |
JP2003257132A (en) | File management of one-time-programmable nonvolatile memory devices | |
KR20000039727A (en) | Method for approaching flash memory | |
US5748537A (en) | Method and apparatus for storing items in flash memory | |
JP3539752B2 (en) | Semiconductor storage device and memory control method | |
JPH11282765A (en) | External storage device using flash memory | |
JPH10124403A (en) | Writing method for block deletion type flash memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
N231 | Notification of change of applicant | ||
WITN | Withdrawal due to no request for examination |