US20070130442A1 - Apparatus and Methods Using Invalidity Indicators for Buffered Memory - Google Patents

Apparatus and Methods Using Invalidity Indicators for Buffered Memory Download PDF

Info

Publication number
US20070130442A1
US20070130442A1 US11/673,228 US67322807A US2007130442A1 US 20070130442 A1 US20070130442 A1 US 20070130442A1 US 67322807 A US67322807 A US 67322807A US 2007130442 A1 US2007130442 A1 US 2007130442A1
Authority
US
United States
Prior art keywords
buffer memory
data
computing system
memory
processing unit
Prior art date
Legal status (The legal status 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 status listed.)
Abandoned
Application number
US11/673,228
Inventor
Shea Lee
Chan-ik Park
Tae-Sung Jung
Sang-Lyul Min
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Priority to US11/673,228 priority Critical patent/US20070130442A1/en
Assigned to SAMSUNG ELECTRONICS CO., LTD. reassignment SAMSUNG ELECTRONICS CO., LTD. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MIN, SANG LYUL, JUNG, TAE SUNG, PARK, CHAN IK, LEE, SHEA YUN
Publication of US20070130442A1 publication Critical patent/US20070130442A1/en
Priority to US12/775,767 priority patent/US8122193B2/en
Priority to US13/365,485 priority patent/US8533391B2/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in storage systems
    • 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]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • the present invention relates to computing systems and methods and, more particularly, to computing systems including a storage system with buffer memory.
  • FIG. 1 is a block diagram illustrating a generic computing system.
  • the computing system includes a host 10 , e.g., a host computer system, and storage 20 .
  • the host 10 includes a central processing unit (not shown) and a main memory (not shown).
  • the storage 20 is connected to the host 10 using a standardized interface, such as a small computer system interconnect (SCSI) interface, an enhanced small device interface (ESDI), or an intelligent drive electronic (IDE) interface.
  • the storage 20 includes a storage medium 22 , such as a hard disk or a floppy disk, a buffer memory 24 and a controller 26 .
  • the controller 26 is connected to the storage medium 22 and the buffer memory using conventional interfaces.
  • the buffer memory 24 includes memory, such as a static random access memory SRAM or a dynamic random access memory DRAM. The buffer memory 24 is used for improving a write performance of the storage 20 .
  • FIG. 2 is a view showing exemplary file processing for the computing system shown in FIG. 1 .
  • an application program When an application program is executed at a high level, such as at the host 10 , the application program generates files and the generated files are managed by a file system such as a file allocation table (FAT) file system. If the application program writes data in the generated files, the written data is transmitted to lower level, such as the storage 20 , under control of the central processing unit. The transmitted data is temporally stored in the buffer memory of the storage 20 .
  • the host 10 requests a file, data of the requested file is directly transferred from the storage 20 to the main memory of the host 10 or the data of the requested file is transferred to the main memory of the host 10 through the buffer memory 24 . Data transferred through the buffer memory 24 may be temporally stored in the buffer memory 24 .
  • the capacity of the buffer memory 24 usually is small in comparison to the capacity of the storage medium 22 , it typically is not possible to store all of data transferred from the storage medium 22 to the main memory in the buffer memory 24 . Therefore, the data stored in the buffer memory 24 is intermittently transferred to the storage medium 22 under control of the controller 26 .
  • the transfer of data from the buffer memory 24 to the storage medium 22 typically is automatically performed without intervention of the host 10 .
  • the data temporally stored in the buffer memory 24 may be automatically transferred to the storage medium 22 if the buffer memory 24 lacks room for storing new data when the host 10 requests to perform a write operation, or if the storage 20 is in an idle state wherein no requests are received from the host 10 within a predetermined time period.
  • the above-mentioned computing system may have disadvantages.
  • the data When data of a file processed by an application program of the host 10 is deleted, the data is treated as the deleted file by the file system at the host 10 . Even if the data is considered deleted at the level of the host 10 , the data may actually still be stored in the buffer memory 24 . The data stored in the buffer memory 24 may then be automatically transferred to the storage medium 22 without intervention of the host 10 when the buffer memory 24 .
  • the data stored in the buffer memory becomes invalid because of the deletion at the high level, the invalid data may be unnecessarily written in the storage medium 22 because the controller 26 typically cannot determine the validity of data stored in the buffer memory 24 . Accordingly, write performance of the storage 20 may be degraded, and a lifetime of the storage 20 may be shortened due to the unnecessary write operations. In addition, power may be wasted by unnecessary write operations.
  • a computing system includes a buffer memory configured to temporarily store data intended for storage in an external storage device and a processing unit configured to selectively invalidate data stored in the buffer memory and to control transfer of data from the buffer memory to the external storage device responsive to the selective invalidation.
  • the processing unit may be configured to manage write state information for the temporarily stored data to provide selective invalidation.
  • the processing unit may be configured to control the buffer memory and the external storage according to the write state information so that at least a part of the temporarily stored data is not written in the external storage.
  • the write state information may indicate whether the temporarily stored data is valid.
  • the processor may be configured to store the write state information in a table in a memory of the computing system.
  • a system memory of the computing system may be configured to store a device driver configured to manage the buffer memory.
  • the buffer memory may be configured as a read cache memory and/or a write cache memory.
  • a computing system includes a buffer memory configured to temporarily store data intended for storage in an external storage device, a system memory configured to provide a device driver configured to manage the buffer memory, and a processing unit configured to control the buffer memory responsive to the device driver and to manage write state information of data stored in the buffer memory.
  • the write state information may indicate whether the temporarily stored data is valid.
  • the processing unit may be configured to prevent writing of invalid data from the buffer memory to the external storage device.
  • data temporarily stored in a buffer memory is identified as invalid.
  • Data is selectively transferred from the buffer memory to an external storage device based on the selective identification of data. For example, if the temporarily stored data is invalidated, the temporarily stored data may not be written in the external storage. Selectively identifying may include updating write state information for the temporarily stored data.
  • a computing system includes a buffer memory configured to temporarily store data intended for storage in an external storage device and a processing unit configured to selectively control data transfer from the buffer memory according to invalidation information related to data stored in the buffer memory.
  • FIG. 1 is a block diagram illustrating a conventional computer system
  • FIG. 2 illustrates conventional file processing operations of the computing system shown in FIG. 1 ;
  • FIG. 3 is a block diagram illustrating a computing system including a storage system in accordance with some embodiments of the present invention
  • FIGS. 4A and 4B are diagrams showing a mapping table of a storage system in accordance with further embodiments of the present invention.
  • FIG. 5 is a flowchart illustrating exemplary operations for managing data stored in a storage system of a computing system in accordance with additional embodiments of the present invention
  • FIGS. 6A-6C are mapping diagrams illustrating exemplary write operations based on invalidity information for data stored in a buffer memory in a storage system of a computing system in accordance with still further embodiments of the present invention.
  • FIG. 7 is a block diagram illustrating a computing system according to further embodiments of the present invention.
  • first and second are used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another element. Thus, a first item could be termed a second item, and similarly, a second item may be termed a first item without departing from the teachings of the present invention.
  • the term “and/or” includes any and all combinations of one or more of the associated listed items. The symbol “/” may also used as a shorthand notation for “and/or”.
  • an “unwrite,” “erase” or “delete” command, request or information represents a command or other information input to a storage system to invalidate data stored in a buffer memory and prevent its transfer from the buffer memory to a storage medium.
  • a transfer of data from a buffer memory to a storage medium may be referred to as a “transcribe” or “flushing” operation.
  • FIG. 3 is a block diagram illustrating a computing system 1000 in accordance with some embodiments of the present invention.
  • the computing system 1000 includes a host system 100 and a storage system 200 .
  • the storage system 200 may include, for example, a storage device coupled to the host system 100 using a standardized interface, such as a SCSI, ESDI, and/or IDE interface. It will be appreciated that other types of interfaces, including nonstandard interfaces, may be used to couple the host system 100 and the storage system 200 .
  • the storage system 200 may include memory integrated with the host system 100 .
  • the host system 100 includes a central processing unit (CPU) 110 and a memory 120 .
  • the memory 120 may include a main memory of the host system 100 .
  • An application program 121 and a file system 122 are embodied in the memory 120 .
  • the file system 122 may include one or more file systems having a file allocation table (FAT) or other file system.
  • FAT file allocation table
  • the host system 100 outputs an unwrite command to the storage system 200 when all or some of the data of a file processed by the application program 121 is to be deleted.
  • the host system 100 may, for example, transmit the unwrite command accompanied by information relating to an address and/or size of the data to be deleted to the storage system 200 .
  • a FAT file system may include a master boot record (MBR), a partition boot record (PBR), first and second file allocation tables (primary FAT, copy FAT) and a root directory.
  • the data stored or to be stored in the storage system 200 can, for example, be identified using two items of information, such as a file name including the data and a path of a directory tree for reaching a place where the file is stored.
  • Each entry of a directory stores information, such as a length of file (e.g., 32 bytes long), a file name, an extension name, a file property byte, a last modification date and time, a file size and a connection of a start-up cluster.
  • a predetermined character may be used as a first character of a file name to indicate a deleted file.
  • a hexadecimal number byte code E5h may be assigned to the first character of the file name for a deleted file to serve as a tag for indicating that the file is deleted.
  • the CPU 110 may assign a predetermined character as the first character of the file name of the deleted file and also output an unwrite command and/or other invalidity information corresponding to the deleted file to the storage system 200 .
  • the storage system 200 includes a storage medium 220 , a buffer memory 240 and a controller 260 .
  • the storage system 200 prevents writing of data stored in the buffer memory 220 to the storage medium 260 when the data of a file is considered deleted at a higher level of the storage system 200 and an invalidity indicator has been input to the storage system 200 .
  • the invalidity indicator may include the unwrite command, along with information about an address and a size of the deleted data.
  • the storage medium 220 may store all types of data, such as text, images, music and programs.
  • the storage medium 220 may be a nonvolatile memory, such as a magnetic disk and/or a flash memory. However, it will be understood that the storage medium 220 is not limited to nonvolatile memory.
  • the buffer memory 240 is used to buffer data transfer between the host system 100 and storage medium 220 .
  • the buffer memory 240 may include high speed volatile memory, such as dynamic random access memory (DRAM) and/or static random access memory (SRAM), and/or nonvolatile memory, such as magnetoresistive random access memory (MRAM), parameter random access memory (PRAM), ferroelectric random access memory (FRAM), NAND flash memory and/or NOR flash memory.
  • DRAM dynamic random access memory
  • SRAM static random access memory
  • nonvolatile memory such as magnetoresistive random access memory (MRAM), parameter random access memory (PRAM), ferroelectric random access memory (FRAM), NAND flash memory and/or NOR flash memory.
  • the buffer memory 240 serves as a write buffer.
  • the buffer memory 240 may temporarily store data to be written in the storage medium 220 responsive to a request of the host system 100 .
  • the write buffer function of the buffer memory 240 can be selectively used. Occasionally, in a “write bypass” operation, data transferred from the host system may be directly transferred to the storage medium 220 without being stored in the buffer memory 240 .
  • the buffer memory 240 may also work as a read buffer.
  • the buffer memory 240 may temporarily store data read from the storage medium 220 .
  • FIG. 3 shows only one buffer memory, two or more buffer memories can be provided. In such embodiments, each buffer memory may be used exclusively as a write buffer or read buffer, or may serve as a write and read buffer.
  • the controller 260 controls the storage medium 220 and the buffer memory 240 .
  • the controller 260 controls the storage medium 220 to cause transfer of data stored in the storage medium 220 directly to the host system 100 or to cause transfer of data stored in the storage medium 220 to the host system 100 via the buffer memory 240 .
  • the controller 240 temporarily stores data related to the write command in the buffer memory 240 . All or part of the data stored in the buffer memory 240 is transferred to the storage medium 220 when the buffer memory 240 lacks room for storing additional data or when the storage system 200 is idle.
  • the storage system 200 may be considered idle when no requests have been received from the host system 100 within a predetermined time.
  • the controller 260 holds address mapping information for the storage medium 220 and the buffer memory 240 and a mapping table 261 for storing write state information representing validity/invalidity of stored data.
  • the write state information is updated by invalidity information (e.g., an indicator) provided from an external device.
  • the controller 260 controls the storage medium 220 and the buffer memory 240 to write all or part of data stored in the buffer memory 240 to the storage medium 220 based on the write state information in the mapping table 261 .
  • the storage medium 220 and the buffer memory 240 may be embodied using a flash memory.
  • the storage system 200 of the illustrated embodiments of the present invention determines whether or not to transfer all or part of data stored in the buffer memory 240 to the storage medium 220 by referring to the write state information. That is, the storage system 200 of the present invention receives the unwrite or other information representing that data stored in the buffer memory is invalid data from an external source device, such as the host system 100 . In response to the unwrite or other invalidity indicator, the storage system 200 prevents writing of invalid data to the storage medium 220 from the buffer memory 240 . In other words, the storage system 200 assigns a tag representing invalidity of data stored in the buffer memory 240 and selectively transfers data stored in the buffer memory 240 to the storage medium 220 based on the assigned tag. Accordingly, a write performance of the storage system 200 may be improved, which can reduce shortening of the lifetime of the storage system 200 caused by unnecessary write operations. Furthermore, power consumed by unnecessary write operations may be reduced.
  • FIGS. 4A and 4B are diagrams showing exemplary mapping tables which may be used by the controller 260 of FIG. 3 according to some embodiments of the present invention.
  • “BBN” represents a block number of the buffer memory 240
  • “DCN” represents a cluster number of the storage medium 220
  • “WSI” represents the write state information indicating whether the data stored in the buffer memory 240 is a valid or invalid.
  • the block size of the buffer memory 240 is identical to a size of a cluster having a plurality of sectors.
  • the storage medium 220 need not be limited to this assumption.
  • an allocation unit of the storage medium 220 can correspond to a sector of a magnetic disc, or a page, sector or block of flash memory.
  • invalid data is indicated by an “X” and valid data is indicated by a “V”.
  • FIG. 4A it is also assumed that data sets FILE 1 , FILE 2 , FILE 3 corresponding to three files is stored in the buffer memory 240 as valid data.
  • the data sets FILE 1 , FILE 2 FILE 3 may not be stored in the storage medium 220 yet.
  • the stored file data sets FILE 1 , FILE 2 , FILE 3 are transferred to the storage medium 220 when the buffer memory 140 lacks room for storing new data or when the storage medium 220 becomes idle, as described above.
  • the controller 260 updates the write state information of the file data sets FILE 1 , FILE 2 , FILE 3 stored in the buffer memory 240 according to invalidity information transferred from the host system 100 .
  • the file data set FILE 2 is deleted in the host system 100 and the host system 100 transmits invalidity information for the file data set FILE 2 to the controller 260 , the invalidity information indicating that the file data set FILE 2 has been deleted at the host system 100 .
  • the controller 260 receives the invalidity information for the file data set FILE 2 , the controller 260 changes the write state information WSI of the file data set FILE 2 to “X” to indicate that the file data set FILE 2 is invalid.
  • FIG. 5 is a flowchart illustrating exemplary operations for managing data stored in a storage system in a computing system in accordance with some embodiments of the present invention.
  • a storage system 200 shown in FIG. 2 includes the storage medium 220 for storing data and the buffer memory 240 for temporally storing data to be written to the storage medium 220 .
  • a step S 100 it is determined whether unwrite or other invalidity information is provided to the storage system 200 .
  • all or part of the corresponding data temporarily stored in the buffer memory 240 is marked invalid in response to the unwrite or other invalidity information. After invalidation, the invalid data is not written to the storage medium 220 .
  • FIGS. 6A-6C are diagrams illustrating exemplary data management operations in accordance with further embodiments of the present invention.
  • the controller 260 of the storage system 200 transfers data stored in the buffer memory 240 to the storage medium 220 by referring to the mapping table 261 .
  • the mapping table 261 Referring to FIG. 6A , it is assumed that there are three file data sets FILE 1 , FILE 2 , FILE 3 stored in the buffer memory 240 as valid data.
  • the controller 260 of the storage system 200 determines which data stored the buffer memory 240 is invalid based on the write state information WSI in the mapping table 261 that corresponds to the stored file data sets FILE 1 , FILE 2 , FILE 3 . As shown in FIG.
  • the controller 260 controls the buffer memory 240 and the storage medium 220 to transfer the file data sets FILE 1 , FILE 2 , FILE 3 from the buffer memory 240 to corresponding locations in the storage medium 220 , as all of the file data sets FILE 1 to FILE 3 are tagged as being valid by the mapping table 261 .
  • invalidity information including, for example, an unwrite command, address information for the invalid data file and size information for the invalid data file
  • the controller 260 invalidates data related to the invalidity information. For example, as shown in FIG. 6B , if the invalid data corresponds to the file data set FILE 2 , the controller 260 updates the write state information WSI of the mapping table 261 related to the file data set FILE 2 to indicate that the file data set FILE 2 is invalid. The controller 260 may then determine which data stored in the buffer memory 240 is invalid based on the write state information WSI in the mapping table 261 . As shown in FIG.
  • the file data FILE 1 and FILE 3 are tagged as valid data and the file data FILE 2 is tagged as invalid data in the mapping table 261 .
  • the controller 260 controls the buffer memory 240 and the storage medium 220 to transfer the file data sets FILE 1 and FILE 3 to corresponding locations of the storage medium 220 , while foregoing transfer the file data FILE 2 to a corresponding location of the storage medium 220 .
  • Space in the buffer memory 240 occupied by the invalid file data set FILE 2 may be used for storing new data in a subsequent new write/read operation.
  • the controller 260 invalidates the data file set FILE 1 .
  • the controller 260 updates the write state information WSI of the mapping table 261 related to the file data set FILE 1 to show that the file data set FILE 1 is invalid.
  • the controller 260 may then determine whether the data stored in the buffer memory 240 is invalid by referring to the write state information WSI of the mapping table 261 related to the file data FILE 1 . As shown in FIG.
  • the file data set FILE 1 is not transferred to the storage medium 220 because of the “X” state of the write state information WSI. Accordingly, transfer of invalid data may be limited or prevented when the storage medium 220 is idle.
  • the space of the buffer memory 240 occupied by the invalid data may be used to store new data in a subsequent write operation.
  • the controller 260 may selectively transfer the invalid data to the storage medium 220 . That is, although the data stored in the buffer memory 240 is invalidated by the unwrite command, the controller 260 may selectively transfer the invalid data to the storage medium 220 .
  • the storage system 200 described above controls data transfer operations between the buffer memory 240 and the storage medium 220 by referring to the mapping table including the write state information representing whether the data stored in the buffer memory 240 is invalid or valid.
  • the write state information of the data may be provided from a source external to the storage system 200 .
  • the data may be new data read and modified by the external source.
  • storage systems according to various embodiments of the present invention may be used not only in computing systems, but also in devices that store data on a hard disk or in a flash memory, such as a MP3 player or other portable electronic device. By reducing transfer of invalid from a buffer memory to a storage medium, write performance and/or lifetime of the storage system can be improved. In addition, power consumption associated with unnecessary write operations can be reduced.
  • FIG. 7 is a block diagram showing a computing system according to further embodiments of the present invention, wherein some functions of the described above with reference to the storage system 200 FIG. 3 are integrated with the computing system.
  • a computing system 2000 includes a processing unit 2100 , a system memory 2200 , and a buffer memory 2300 .
  • the processing unit 2100 may include a central processing unit (CPU), a microprocessor, and the like.
  • the processing unit 2100 may be configured to control operations of the computing system 2000 .
  • the computing system 2000 may be configured to perform a similar role to that of the controller 260 illustrated in FIG. 3 .
  • the processing unit 2100 may be configured to limit or prevent data in the buffer memory 2300 from being written to an external storage device 3000 according to a mapping table of the system memory 2200 , as described in detail below.
  • the system memory 2200 may serve all or in part as a main memory of the computing system 2000 .
  • An application program 2210 and a file system 2220 may be provided in the system memory 2200 .
  • the file system 2220 may include, for example, file systems including a File allocation table file system, but the invention is not limited to such embodiments.
  • a device driver 2230 and a mapping table 2240 may be further provided in the system memory 2200 .
  • the device driver 2230 may control an interface with external storage device 3000
  • the processing unit 2100 may control the interface with the external storage device 3000 using the device driver 2230 .
  • the processing unit 2100 may be configured to manage address mapping between the external storage device 3000 and the buffer memory 2300 using the device driver 2230 .
  • the mapping table 2240 in the system memory 2200 may be used to store interface information with the external storage device 3000 , address mapping information between the external storage device 3000 and the buffer memory 2300 , and write state information indicating whether data in the buffer memory 2300 is valid information, along lines described above.
  • the processing unit 2100 may update the write state information. For example, when all data of a file processed by the application program 2210 is deleted or when a part of data of a file processed by the application program 2210 is deleted, the processing unit 2100 may update the write state information in the mapping table 2240 based on the device driver 2230 .
  • the processing unit 2100 may control the buffer memory 2230 and the external storage device 3000 so that at least a part of data stored in the buffer memory 2230 is written in the external storage device 3000 according to the write state information of the mapping table 2240 . Accordingly, it is possible to limit or prevent data in the buffer memory 2300 corresponding to previously deleted data from being written in the external storage device 3000 .
  • the buffer memory 2300 may be used to smooth data transfer between the computing system 2000 and the external storage device 3000 .
  • the buffer memory 2300 may include high-speed volatile memory, such as DRAM or SRAM, and non-volatile memory, such as MRAM, PRAM, FRAM, NAND flash memory, NOR flash memory, or the like.
  • the buffer memory 2300 may include a NAND flash memory.
  • the buffer memory 2300 may function as a write buffer.
  • the buffer memory 2300 may function as a write buffer that temporarily stores data to be written in the external storage device 3000 according to request of the processing unit 2100 .
  • the write buffer function may be used selectively.
  • data processed by the processing unit 2100 can be directly transferred to the external storage device 3000 without passing through the write buffer, that is, the buffer memory 2300 .
  • the buffer memory 2300 may also serve as a read buffer.
  • the buffer memory 2300 may function as a read buffer that temporarily stores data read out from the external storage device 3000 according to a request of the processing unit 2100 .
  • FIG. 7 two or more buffer memories can be provided to the computing system 2000 . In this case, each buffer may be used as a write buffer, a read buffer, or a buffer having write and read buffer functions.
  • the external storage device 3000 may be used to store data including document data, image data, music data, and program, and may include a magnetic disk and/or a non-volatile semiconductor memory, such as a flash memory. No buffer memory is provided in the external storage device 3000 .
  • the buffer memory 2300 of the computing system 2000 may be used as a cache memory, e.g., a write buffer/read buffer.
  • the buffer memory 2300 and the external storage device 3000 may function as a hybrid hard disk (HHD).
  • HHD hybrid hard disk
  • the processing unit 2100 may be configured to control the external storage device 3000 and the buffer memory 2300 .
  • the processing unit 2100 may control the external storage device 3000 using the device driver 2230 so that data in the external storage device 3000 is transferred to the computing system 2000 as necessary.
  • the processing unit 2100 may control the buffer memory 2300 and the external storage device 3000 using the device driver 2230 so that data in the external storage device 3000 is transferred to the computing system 2000 via the buffer memory 2300 as necessary.
  • the processing unit 2100 can cause data in the external storage device 3000 to be stored temporarily in the buffer memory 2300 .
  • the processing unit 2100 may manage the mapping table 2240 for storing address mapping information between the external storage device 3000 and the buffer memory 2300 and write state information indicating whether data in the buffer memory 2300 is valid information.
  • the computing system 2000 and the external storage device 3000 may be interconnected by a standardized interface, such as ATA, SATA, USB, SCCSI, ESDI, or IDE interface, or by other types of interfaces.
  • the computing system 2000 may refer to write state information of the mapping table and prevent at least a part of data stored in the buffer memory 2300 from being transferred to the external storage device 3000 .
  • the computing system 2000 may limit or prevent invalid data in the buffer memory 2300 from being written in the external storage device 3000 , based on write state information indicating whether data stored in the buffer memory 2300 is valid data or invalid data.
  • the computing system 2000 may selectively control a data transfer operation to the external storage device 3000 by fastening a tag of valid/invalid information to data stored in the buffer memory 2300 .
  • An operation of transferring data stored in the buffer memory 2300 to the external storage device 3000 may be substantially the same as described in FIGS. 4 to 6 , and description thereof is thus omitted. According to the illustrated embodiments, write performance of the computing system 2000 may be improved, and it may be possible to prevent the lifetime of the external storage device 3000 from being unduly shortened due to unnecessary write operations. It may also be possible to increase battery life.
  • the buffer memory 2300 may be integrated with the processing unit 2100 in a common circuit board assembly, e.g., mounted on an on-board type of computing system.
  • the buffer memory 2300 may be connected to the processing unit 2100 via a PCI bus or a PCI-E bus.
  • PCI bus or a PCI-E bus.
  • Other interconnection techniques may also be used. For example, commonly used interfaces for a desktop and notebook computers may be used.
  • the buffer memory 2300 is realized with a non-volatile memory, such as a NAND flash memory or a NOR flash memory, it can be used for various functions.
  • the buffer memory 2300 may be used as a boot-up memory for storing a boot code that is used at booting.
  • a buffer memory 2300 may also be used as a boot-up memory.
  • important software can be stored in the buffer memory 2300 in order to improve system performance.
  • an interface function (including a control function) can be provided in each constituent element if necessary.
  • a bus of a computing system in FIG. 7 is simplified, such a bus may include various buses that are well known in a computing system.

Abstract

A computing system includes a buffer memory configured to temporarily store data intended for storage in an external storage device and a processing unit configured to selectively invalidate data stored in the buffer memory and to control transfer of data from the buffer memory to the external storage device responsive to the selective invalidation. In some embodiments, for example, the processing unit may be configured to manage write state information of the temporarily stored data and to update the write state information according to information related to the temporarily stored data. The processing unit may be configured to control the buffer memory and the external storage according to the write state information so that at least a part of the temporarily stored data is not written in the external storage.

Description

    CROSS-REFERENCE TO RELATED APPLICATIONS
  • This application is a continuation-in-part application of U.S. application Ser. No. 11/230,994, filed Sep. 20, 2005, which claims priority to Korean Application No. 2004-109826, filed Dec. 21, 2004, the disclosures of both of which are hereby incorporated herein by reference in their entireties.
  • BACKGROUND OF THE INVENTION
  • The present invention relates to computing systems and methods and, more particularly, to computing systems including a storage system with buffer memory.
  • FIG. 1 is a block diagram illustrating a generic computing system. The computing system includes a host 10, e.g., a host computer system, and storage 20. The host 10 includes a central processing unit (not shown) and a main memory (not shown). The storage 20 is connected to the host 10 using a standardized interface, such as a small computer system interconnect (SCSI) interface, an enhanced small device interface (ESDI), or an intelligent drive electronic (IDE) interface. The storage 20 includes a storage medium 22, such as a hard disk or a floppy disk, a buffer memory 24 and a controller 26. The controller 26 is connected to the storage medium 22 and the buffer memory using conventional interfaces. The buffer memory 24 includes memory, such as a static random access memory SRAM or a dynamic random access memory DRAM. The buffer memory 24 is used for improving a write performance of the storage 20.
  • FIG. 2 is a view showing exemplary file processing for the computing system shown in FIG. 1. When an application program is executed at a high level, such as at the host 10, the application program generates files and the generated files are managed by a file system such as a file allocation table (FAT) file system. If the application program writes data in the generated files, the written data is transmitted to lower level, such as the storage 20, under control of the central processing unit. The transmitted data is temporally stored in the buffer memory of the storage 20. When the host 10 requests a file, data of the requested file is directly transferred from the storage 20 to the main memory of the host 10 or the data of the requested file is transferred to the main memory of the host 10 through the buffer memory 24. Data transferred through the buffer memory 24 may be temporally stored in the buffer memory 24.
  • Because the capacity of the buffer memory 24 usually is small in comparison to the capacity of the storage medium 22, it typically is not possible to store all of data transferred from the storage medium 22 to the main memory in the buffer memory 24. Therefore, the data stored in the buffer memory 24 is intermittently transferred to the storage medium 22 under control of the controller 26. The transfer of data from the buffer memory 24 to the storage medium 22 typically is automatically performed without intervention of the host 10. For example, the data temporally stored in the buffer memory 24 may be automatically transferred to the storage medium 22 if the buffer memory 24 lacks room for storing new data when the host 10 requests to perform a write operation, or if the storage 20 is in an idle state wherein no requests are received from the host 10 within a predetermined time period.
  • The above-mentioned computing system may have disadvantages. When data of a file processed by an application program of the host 10 is deleted, the data is treated as the deleted file by the file system at the host 10. Even if the data is considered deleted at the level of the host 10, the data may actually still be stored in the buffer memory 24. The data stored in the buffer memory 24 may then be automatically transferred to the storage medium 22 without intervention of the host 10 when the buffer memory 24. Although the data stored in the buffer memory becomes invalid because of the deletion at the high level, the invalid data may be unnecessarily written in the storage medium 22 because the controller 26 typically cannot determine the validity of data stored in the buffer memory 24. Accordingly, write performance of the storage 20 may be degraded, and a lifetime of the storage 20 may be shortened due to the unnecessary write operations. In addition, power may be wasted by unnecessary write operations.
  • SUMMARY OF THE INVENTION
  • In some embodiments of the present invention, a computing system includes a buffer memory configured to temporarily store data intended for storage in an external storage device and a processing unit configured to selectively invalidate data stored in the buffer memory and to control transfer of data from the buffer memory to the external storage device responsive to the selective invalidation. In some embodiments, for example, the processing unit may be configured to manage write state information for the temporarily stored data to provide selective invalidation. The processing unit may be configured to control the buffer memory and the external storage according to the write state information so that at least a part of the temporarily stored data is not written in the external storage. The write state information may indicate whether the temporarily stored data is valid. The processor may be configured to store the write state information in a table in a memory of the computing system. A system memory of the computing system may be configured to store a device driver configured to manage the buffer memory. The buffer memory may be configured as a read cache memory and/or a write cache memory.
  • In further embodiments of the present invention, a computing system includes a buffer memory configured to temporarily store data intended for storage in an external storage device, a system memory configured to provide a device driver configured to manage the buffer memory, and a processing unit configured to control the buffer memory responsive to the device driver and to manage write state information of data stored in the buffer memory. The write state information may indicate whether the temporarily stored data is valid. The processing unit may be configured to prevent writing of invalid data from the buffer memory to the external storage device.
  • In some method embodiments of the present invention, data temporarily stored in a buffer memory is identified as invalid. Data is selectively transferred from the buffer memory to an external storage device based on the selective identification of data. For example, if the temporarily stored data is invalidated, the temporarily stored data may not be written in the external storage. Selectively identifying may include updating write state information for the temporarily stored data.
  • In additional embodiments of the present invention, a computing system includes a buffer memory configured to temporarily store data intended for storage in an external storage device and a processing unit configured to selectively control data transfer from the buffer memory according to invalidation information related to data stored in the buffer memory.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The accompanying drawings, which are included to provide a further understanding of the invention and are incorporated in and constitute a part of this application, illustrate embodiment(s) of the invention and together with the description serve to explain the principle of the invention.
  • FIG. 1 is a block diagram illustrating a conventional computer system;
  • FIG. 2 illustrates conventional file processing operations of the computing system shown in FIG. 1;
  • FIG. 3 is a block diagram illustrating a computing system including a storage system in accordance with some embodiments of the present invention;
  • FIGS. 4A and 4B are diagrams showing a mapping table of a storage system in accordance with further embodiments of the present invention;
  • FIG. 5 is a flowchart illustrating exemplary operations for managing data stored in a storage system of a computing system in accordance with additional embodiments of the present invention;
  • FIGS. 6A-6C are mapping diagrams illustrating exemplary write operations based on invalidity information for data stored in a buffer memory in a storage system of a computing system in accordance with still further embodiments of the present invention; and
  • FIG. 7 is a block diagram illustrating a computing system according to further embodiments of the present invention.
  • DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS
  • Specific exemplary embodiments of the invention now will be described with reference to the accompanying drawings. This invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. In the drawings, like numbers refer to like elements. It will be understood that when an element is referred to as being “connected” or “coupled” to another element, it can be directly connected or coupled to the other element or intervening elements may be present. Furthermore, “connected” or “coupled” as used herein may include wirelessly connected or coupled.
  • The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless expressly stated otherwise. It will be further understood that the terms “includes,” “includes,” “including” and/or “including,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
  • Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. It will be further understood that terms, such as those defined in commonly used dictionaries, should be interpreted as having a meaning that is consistent with their meaning in the context of the relevant art and the present specification and will not be interpreted in an idealized or overly formal sense unless expressly so defined herein.
  • It will be understood that although the terms first and second are used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another element. Thus, a first item could be termed a second item, and similarly, a second item may be termed a first item without departing from the teachings of the present invention. As used herein, the term “and/or” includes any and all combinations of one or more of the associated listed items. The symbol “/” may also used as a shorthand notation for “and/or”.
  • In the present invention, an “unwrite,” “erase” or “delete” command, request or information represents a command or other information input to a storage system to invalidate data stored in a buffer memory and prevent its transfer from the buffer memory to a storage medium. A transfer of data from a buffer memory to a storage medium may be referred to as a “transcribe” or “flushing” operation.
  • FIG. 3 is a block diagram illustrating a computing system 1000 in accordance with some embodiments of the present invention. The computing system 1000 includes a host system 100 and a storage system 200. The storage system 200 may include, for example, a storage device coupled to the host system 100 using a standardized interface, such as a SCSI, ESDI, and/or IDE interface. It will be appreciated that other types of interfaces, including nonstandard interfaces, may be used to couple the host system 100 and the storage system 200. The storage system 200 may include memory integrated with the host system 100.
  • The host system 100 includes a central processing unit (CPU) 110 and a memory 120. The memory 120 may include a main memory of the host system 100. An application program 121 and a file system 122 are embodied in the memory 120. The file system 122 may include one or more file systems having a file allocation table (FAT) or other file system.
  • The host system 100 outputs an unwrite command to the storage system 200 when all or some of the data of a file processed by the application program 121 is to be deleted. The host system 100 may, for example, transmit the unwrite command accompanied by information relating to an address and/or size of the data to be deleted to the storage system 200.
  • A FAT file system, such as that shown in FIG. 2, may include a master boot record (MBR), a partition boot record (PBR), first and second file allocation tables (primary FAT, copy FAT) and a root directory. The data stored or to be stored in the storage system 200 can, for example, be identified using two items of information, such as a file name including the data and a path of a directory tree for reaching a place where the file is stored. Each entry of a directory stores information, such as a length of file (e.g., 32 bytes long), a file name, an extension name, a file property byte, a last modification date and time, a file size and a connection of a start-up cluster.
  • A predetermined character may be used as a first character of a file name to indicate a deleted file. For example, a hexadecimal number byte code E5h may be assigned to the first character of the file name for a deleted file to serve as a tag for indicating that the file is deleted. When a file is deleted, the CPU 110 may assign a predetermined character as the first character of the file name of the deleted file and also output an unwrite command and/or other invalidity information corresponding to the deleted file to the storage system 200.
  • Still referring to FIG. 3, the storage system 200 includes a storage medium 220, a buffer memory 240 and a controller 260. The storage system 200 prevents writing of data stored in the buffer memory 220 to the storage medium 260 when the data of a file is considered deleted at a higher level of the storage system 200 and an invalidity indicator has been input to the storage system 200. The invalidity indicator may include the unwrite command, along with information about an address and a size of the deleted data.
  • The storage medium 220 may store all types of data, such as text, images, music and programs. The storage medium 220 may be a nonvolatile memory, such as a magnetic disk and/or a flash memory. However, it will be understood that the storage medium 220 is not limited to nonvolatile memory.
  • The buffer memory 240 is used to buffer data transfer between the host system 100 and storage medium 220. The buffer memory 240 may include high speed volatile memory, such as dynamic random access memory (DRAM) and/or static random access memory (SRAM), and/or nonvolatile memory, such as magnetoresistive random access memory (MRAM), parameter random access memory (PRAM), ferroelectric random access memory (FRAM), NAND flash memory and/or NOR flash memory.
  • The buffer memory 240 serves as a write buffer. For example, the buffer memory 240 may temporarily store data to be written in the storage medium 220 responsive to a request of the host system 100. The write buffer function of the buffer memory 240 can be selectively used. Occasionally, in a “write bypass” operation, data transferred from the host system may be directly transferred to the storage medium 220 without being stored in the buffer memory 240. The buffer memory 240 may also work as a read buffer. For example, the buffer memory 240 may temporarily store data read from the storage medium 220. Although FIG. 3 shows only one buffer memory, two or more buffer memories can be provided. In such embodiments, each buffer memory may be used exclusively as a write buffer or read buffer, or may serve as a write and read buffer.
  • The controller 260 controls the storage medium 220 and the buffer memory 240. When a read command is input from the host system 100, the controller 260 controls the storage medium 220 to cause transfer of data stored in the storage medium 220 directly to the host system 100 or to cause transfer of data stored in the storage medium 220 to the host system 100 via the buffer memory 240. When a write command is input from the host system 100, the controller 240 temporarily stores data related to the write command in the buffer memory 240. All or part of the data stored in the buffer memory 240 is transferred to the storage medium 220 when the buffer memory 240 lacks room for storing additional data or when the storage system 200 is idle. The storage system 200 may be considered idle when no requests have been received from the host system 100 within a predetermined time.
  • The controller 260 holds address mapping information for the storage medium 220 and the buffer memory 240 and a mapping table 261 for storing write state information representing validity/invalidity of stored data. The write state information is updated by invalidity information (e.g., an indicator) provided from an external device. The controller 260 controls the storage medium 220 and the buffer memory 240 to write all or part of data stored in the buffer memory 240 to the storage medium 220 based on the write state information in the mapping table 261. In some embodiments of the present invention, the storage medium 220 and the buffer memory 240 may be embodied using a flash memory.
  • As described above, the storage system 200 of the illustrated embodiments of the present invention determines whether or not to transfer all or part of data stored in the buffer memory 240 to the storage medium 220 by referring to the write state information. That is, the storage system 200 of the present invention receives the unwrite or other information representing that data stored in the buffer memory is invalid data from an external source device, such as the host system 100. In response to the unwrite or other invalidity indicator, the storage system 200 prevents writing of invalid data to the storage medium 220 from the buffer memory 240. In other words, the storage system 200 assigns a tag representing invalidity of data stored in the buffer memory 240 and selectively transfers data stored in the buffer memory 240 to the storage medium 220 based on the assigned tag. Accordingly, a write performance of the storage system 200 may be improved, which can reduce shortening of the lifetime of the storage system 200 caused by unnecessary write operations. Furthermore, power consumed by unnecessary write operations may be reduced.
  • FIGS. 4A and 4B are diagrams showing exemplary mapping tables which may be used by the controller 260 of FIG. 3 according to some embodiments of the present invention. In FIGS. 4A and 4B, “BBN” represents a block number of the buffer memory 240, “DCN” represents a cluster number of the storage medium 220, and “WSI” represents the write state information indicating whether the data stored in the buffer memory 240 is a valid or invalid. In the illustrated embodiments, it is assumed that the block size of the buffer memory 240 is identical to a size of a cluster having a plurality of sectors. However, the storage medium 220 need not be limited to this assumption. For example, an allocation unit of the storage medium 220 can correspond to a sector of a magnetic disc, or a page, sector or block of flash memory. In the FIGS. 4A and 4B, invalid data is indicated by an “X” and valid data is indicated by a “V”.
  • In FIG. 4A, it is also assumed that data sets FILE1, FILE2, FILE3 corresponding to three files is stored in the buffer memory 240 as valid data. The data sets FILE1, FILE2 FILE3 may not be stored in the storage medium 220 yet. The stored file data sets FILE1, FILE2, FILE3 are transferred to the storage medium 220 when the buffer memory 140 lacks room for storing new data or when the storage medium 220 becomes idle, as described above. The controller 260 updates the write state information of the file data sets FILE1, FILE2, FILE3 stored in the buffer memory 240 according to invalidity information transferred from the host system 100. For example, the file data set FILE2 is deleted in the host system 100 and the host system 100 transmits invalidity information for the file data set FILE2 to the controller 260, the invalidity information indicating that the file data set FILE2 has been deleted at the host system 100. When the controller 260 receives the invalidity information for the file data set FILE2, the controller 260 changes the write state information WSI of the file data set FILE2 to “X” to indicate that the file data set FILE2 is invalid.
  • FIG. 5 is a flowchart illustrating exemplary operations for managing data stored in a storage system in a computing system in accordance with some embodiments of the present invention. As mentioned above, a storage system 200 shown in FIG. 2 includes the storage medium 220 for storing data and the buffer memory 240 for temporally storing data to be written to the storage medium 220. As shown in FIG. 5, in a step S100, it is determined whether unwrite or other invalidity information is provided to the storage system 200. In a step S200, all or part of the corresponding data temporarily stored in the buffer memory 240 is marked invalid in response to the unwrite or other invalidity information. After invalidation, the invalid data is not written to the storage medium 220.
  • FIGS. 6A-6C are diagrams illustrating exemplary data management operations in accordance with further embodiments of the present invention. As described above with reference to FIG. 2, the controller 260 of the storage system 200 transfers data stored in the buffer memory 240 to the storage medium 220 by referring to the mapping table 261. Referring to FIG. 6A, it is assumed that there are three file data sets FILE1, FILE2, FILE3 stored in the buffer memory 240 as valid data. The controller 260 of the storage system 200 determines which data stored the buffer memory 240 is invalid based on the write state information WSI in the mapping table 261 that corresponds to the stored file data sets FILE1, FILE2, FILE3. As shown in FIG. 6A, the controller 260 controls the buffer memory 240 and the storage medium 220 to transfer the file data sets FILE1, FILE2, FILE3 from the buffer memory 240 to corresponding locations in the storage medium 220, as all of the file data sets FILE1 to FILE3 are tagged as being valid by the mapping table 261.
  • If invalidity information including, for example, an unwrite command, address information for the invalid data file and size information for the invalid data file, is input to the controller 260 before the transfer of corresponding data to the storage medium 220, the controller 260 invalidates data related to the invalidity information. For example, as shown in FIG. 6B, if the invalid data corresponds to the file data set FILE2, the controller 260 updates the write state information WSI of the mapping table 261 related to the file data set FILE2 to indicate that the file data set FILE2 is invalid. The controller 260 may then determine which data stored in the buffer memory 240 is invalid based on the write state information WSI in the mapping table 261. As shown in FIG. 6B, the file data FILE1 and FILE3 are tagged as valid data and the file data FILE2 is tagged as invalid data in the mapping table 261. Accordingly, the controller 260 controls the buffer memory 240 and the storage medium 220 to transfer the file data sets FILE1 and FILE3 to corresponding locations of the storage medium 220, while foregoing transfer the file data FILE2 to a corresponding location of the storage medium 220. Space in the buffer memory 240 occupied by the invalid file data set FILE2 may be used for storing new data in a subsequent new write/read operation.
  • In another example shown in FIG. 6C, it is assumed that only one data file set FILE1 is stored in the buffer memory 240. If invalidity information is input to the controller 260 before transfer of the data file set FILE1 to the storage medium 220, the controller 260 invalidates the data file set FILE1. In particular, the controller 260 updates the write state information WSI of the mapping table 261 related to the file data set FILE1 to show that the file data set FILE1 is invalid. After the updating, the controller 260 may then determine whether the data stored in the buffer memory 240 is invalid by referring to the write state information WSI of the mapping table 261 related to the file data FILE1. As shown in FIG. 6C, the file data set FILE1 is not transferred to the storage medium 220 because of the “X” state of the write state information WSI. Accordingly, transfer of invalid data may be limited or prevented when the storage medium 220 is idle. The space of the buffer memory 240 occupied by the invalid data may be used to store new data in a subsequent write operation.
  • Although the invalid data is written in the storage medium 220, files related to the invalid data stored in the storage medium 220 are not influenced by the stored invalid data. Furthermore, the controller 260 may selectively transfer the invalid data to the storage medium 220. That is, although the data stored in the buffer memory 240 is invalidated by the unwrite command, the controller 260 may selectively transfer the invalid data to the storage medium 220.
  • The storage system 200 described above controls data transfer operations between the buffer memory 240 and the storage medium 220 by referring to the mapping table including the write state information representing whether the data stored in the buffer memory 240 is invalid or valid. As described above, the write state information of the data may be provided from a source external to the storage system 200. Also, the data may be new data read and modified by the external source. It will be appreciated that storage systems according to various embodiments of the present invention may be used not only in computing systems, but also in devices that store data on a hard disk or in a flash memory, such as a MP3 player or other portable electronic device. By reducing transfer of invalid from a buffer memory to a storage medium, write performance and/or lifetime of the storage system can be improved. In addition, power consumption associated with unnecessary write operations can be reduced.
  • FIG. 7 is a block diagram showing a computing system according to further embodiments of the present invention, wherein some functions of the described above with reference to the storage system 200 FIG. 3 are integrated with the computing system. Referring to FIG. 7, a computing system 2000 according to further embodiments of the present invention includes a processing unit 2100, a system memory 2200, and a buffer memory 2300. The processing unit 2100 may include a central processing unit (CPU), a microprocessor, and the like. The processing unit 2100 may be configured to control operations of the computing system 2000. In particular, the computing system 2000 may be configured to perform a similar role to that of the controller 260 illustrated in FIG. 3. For example, the processing unit 2100 may be configured to limit or prevent data in the buffer memory 2300 from being written to an external storage device 3000 according to a mapping table of the system memory 2200, as described in detail below.
  • Continuing to refer to FIG. 7, the system memory 2200 may serve all or in part as a main memory of the computing system 2000. An application program 2210 and a file system 2220 may be provided in the system memory 2200. The file system 2220 may include, for example, file systems including a File allocation table file system, but the invention is not limited to such embodiments. A device driver 2230 and a mapping table 2240 may be further provided in the system memory 2200. The device driver 2230 may control an interface with external storage device 3000, and the processing unit 2100 may control the interface with the external storage device 3000 using the device driver 2230. Further, the processing unit 2100 may be configured to manage address mapping between the external storage device 3000 and the buffer memory 2300 using the device driver 2230. The mapping table 2240 in the system memory 2200 may be used to store interface information with the external storage device 3000, address mapping information between the external storage device 3000 and the buffer memory 2300, and write state information indicating whether data in the buffer memory 2300 is valid information, along lines described above. The processing unit 2100 may update the write state information. For example, when all data of a file processed by the application program 2210 is deleted or when a part of data of a file processed by the application program 2210 is deleted, the processing unit 2100 may update the write state information in the mapping table 2240 based on the device driver 2230. The processing unit 2100 may control the buffer memory 2230 and the external storage device 3000 so that at least a part of data stored in the buffer memory 2230 is written in the external storage device 3000 according to the write state information of the mapping table 2240. Accordingly, it is possible to limit or prevent data in the buffer memory 2300 corresponding to previously deleted data from being written in the external storage device 3000.
  • The buffer memory 2300 may be used to smooth data transfer between the computing system 2000 and the external storage device 3000. The buffer memory 2300 may include high-speed volatile memory, such as DRAM or SRAM, and non-volatile memory, such as MRAM, PRAM, FRAM, NAND flash memory, NOR flash memory, or the like. In exemplary embodiments, the buffer memory 2300 may include a NAND flash memory.
  • The buffer memory 2300 may function as a write buffer. For example, the buffer memory 2300 may function as a write buffer that temporarily stores data to be written in the external storage device 3000 according to request of the processing unit 2100. The write buffer function may be used selectively. For example, data processed by the processing unit 2100 can be directly transferred to the external storage device 3000 without passing through the write buffer, that is, the buffer memory 2300. The buffer memory 2300 may also serve as a read buffer. For example, the buffer memory 2300 may function as a read buffer that temporarily stores data read out from the external storage device 3000 according to a request of the processing unit 2100. Although only one buffer 2300 is illustrated in FIG. 7, two or more buffer memories can be provided to the computing system 2000. In this case, each buffer may be used as a write buffer, a read buffer, or a buffer having write and read buffer functions.
  • Continuing to refer to FIG. 7, the external storage device 3000 may be used to store data including document data, image data, music data, and program, and may include a magnetic disk and/or a non-volatile semiconductor memory, such as a flash memory. No buffer memory is provided in the external storage device 3000. The buffer memory 2300 of the computing system 2000 may be used as a cache memory, e.g., a write buffer/read buffer. The buffer memory 2300 and the external storage device 3000 may function as a hybrid hard disk (HHD).
  • The processing unit 2100 may be configured to control the external storage device 3000 and the buffer memory 2300. The processing unit 2100 may control the external storage device 3000 using the device driver 2230 so that data in the external storage device 3000 is transferred to the computing system 2000 as necessary. The processing unit 2100 may control the buffer memory 2300 and the external storage device 3000 using the device driver 2230 so that data in the external storage device 3000 is transferred to the computing system 2000 via the buffer memory 2300 as necessary. The processing unit 2100 can cause data in the external storage device 3000 to be stored temporarily in the buffer memory 2300. For example, all or a part of data temporarily stored in the buffer memory 2300 may be transferred to the external storage device 3000 under control of the processing unit 2100 when the buffer memory 2300 lacks room for storing new data or when an idle time period of the processing unit 2100 exists. In order to perform the above-described operations, as set forth above, the processing unit 2100 may manage the mapping table 2240 for storing address mapping information between the external storage device 3000 and the buffer memory 2300 and write state information indicating whether data in the buffer memory 2300 is valid information. In some embodiments, the computing system 2000 and the external storage device 3000 may be interconnected by a standardized interface, such as ATA, SATA, USB, SCCSI, ESDI, or IDE interface, or by other types of interfaces.
  • When the buffer memory 2300 lacks room for storing new data or when the processing unit 2100 is idle for a sufficient time period, the computing system 2000 may refer to write state information of the mapping table and prevent at least a part of data stored in the buffer memory 2300 from being transferred to the external storage device 3000. The computing system 2000 may limit or prevent invalid data in the buffer memory 2300 from being written in the external storage device 3000, based on write state information indicating whether data stored in the buffer memory 2300 is valid data or invalid data. In other words, the computing system 2000 may selectively control a data transfer operation to the external storage device 3000 by fastening a tag of valid/invalid information to data stored in the buffer memory 2300. An operation of transferring data stored in the buffer memory 2300 to the external storage device 3000 may be substantially the same as described in FIGS. 4 to 6, and description thereof is thus omitted. According to the illustrated embodiments, write performance of the computing system 2000 may be improved, and it may be possible to prevent the lifetime of the external storage device 3000 from being unduly shortened due to unnecessary write operations. It may also be possible to increase battery life.
  • In some embodiments, the buffer memory 2300 may be integrated with the processing unit 2100 in a common circuit board assembly, e.g., mounted on an on-board type of computing system. In further embodiments, the buffer memory 2300 may be connected to the processing unit 2100 via a PCI bus or a PCI-E bus. Other interconnection techniques may also be used. For example, commonly used interfaces for a desktop and notebook computers may be used.
  • In the event that the buffer memory 2300 is realized with a non-volatile memory, such as a NAND flash memory or a NOR flash memory, it can be used for various functions. For example, the buffer memory 2300 may be used as a boot-up memory for storing a boot code that is used at booting. A buffer memory 2300 may also be used as a boot-up memory. Furthermore, important software can be stored in the buffer memory 2300 in order to improve system performance.
  • In some embodiments of the present invention, various functions of constituent elements are described. However, an interface function (including a control function) can be provided in each constituent element if necessary. Although a bus of a computing system in FIG. 7 is simplified, such a bus may include various buses that are well known in a computing system.
  • It will be apparent to those skilled in the art that various modifications and variations can be made in the present invention. Thus, it is intended that the present invention covers the modifications and variations of this invention provided they come within the scope of the appended claims and their equivalents.

Claims (30)

1. A computing system comprising:
a buffer memory configured to temporarily store data intended for storage in an external storage device; and
a processing unit configured to selectively invalidate data stored in the buffer memory and to control transfer of data from the buffer memory to the external storage device responsive to the selective invalidation.
2. The computing system of claim 1, wherein the processing unit is configured to manage write state information of the temporarily stored data.
3. The computing system of claim 2, wherein the processing unit is configured to control the buffer memory and the external storage device according to the write state information so that at least some of the temporarily stored data is not written in the external storage device.
4. The computing system of claim 3, wherein the write state information indicates whether the temporarily stored data is valid.
5. The computing system of claim 4, wherein processor is configured to store the write state information in a table in a system memory of the computing system.
6. The computing system of claim 5, the system memory is configured to store a device driver configured to manage the buffer memory.
7. The computing system of claim 1, wherein the buffer memory comprises a volatile semiconductor memory including SRAM or DRAM and a non-volatile semiconductor memory including a NAND flash memory, a NOR flash memory, MRAM, FRAM, or PRAM, and the external storage device comprises a magnetic disk and/or a non-volatile semiconductor memory.
8. The computing system of claim 1, wherein the buffer memory is configured as a read cache memory and/or a write cache memory.
9. The computing system of claim 1, wherein the buffer memory is configured to store software for improving system performance.
10. A computing system comprising:
a buffer memory configured to temporarily store data intended for storage in an external storage device;
a system memory configured to provide a device driver configured to manage the buffer memory; and
a processing unit configured to control the buffer memory responsive to the device driver and to manage write state information of data stored in the buffer memory.
11. The computing system of claim 10, wherein the write state information indicates whether the temporarily stored data is valid.
12. The computing system of claim 11, wherein the processing unit is configured to prevent writing of invalid data from the buffer memory to the external storage device.
13. The computing system of claim 11, wherein the processing unit is configured to update the write state information.
14. The computing system of claim 10, wherein the processing unit is configured to store the write state information in a table in the system memory.
15. The computing system of claim 10, wherein the buffer memory is configured as a read cache memory and/or a write cache memory.
16. The computing system of claim 10, wherein the buffer memory is configured to store software for improving system performance.
17. A data management method of a computing system which comprises a buffer memory for temporarily storing data intended for storage in an external storage device and a processing unit operatively associated with the buffer memory, the data management method comprising:
selectively identifying data temporarily stored in a buffer memory as invalid; and
selectively transferring data from the buffer memory to an external storage device based on the selective identification of data.
18. The data management method of claim 17, wherein when the temporarily stored data is invalidated, the temporarily stored data is not written in the external storage device.
19. The data management method of claim 17, wherein selectively identifying comprises updating write state information for the temporarily stored data.
20. A computing system comprising:
a buffer memory configured to temporarily store data intended for storage in an external storage device; and
a processing unit configured to selectively control data transfer from the buffer memory according to invalidation information for data stored in the buffer memory.
21. The computing system of claim 20, wherein the processing unit is configured to invalidate the temporarily stored data in the buffer memory according to the invalidation information so that at least a part of the stored data in the buffer memory is not written in the external storage device.
22. The computing system of claim 21, wherein the processing unit is configured to prevent transfer of temporarily stored data that is invalidated.
23. The computing system of claim 20, wherein the processing unit is configured to manage write state information of the temporarily stored data.
24. The computing system of claim 23, further comprising a system memory configured to store the write state information in a table.
25. The computing system 24, wherein the system memory is configured to store a device driver configured to manage the buffer memory.
26. The computing system 20, wherein the buffer memory comprises a volatile semiconductor memory including SRAM or DRAM and a non-volatile semiconductor memory including a NAND flash memory, a NOR flash memory, MRAM, FRAM, or PRAM, and the external storage device comprises a magnetic disk and/or a nonvolatile semiconductor memory.
27. The computing system of claim 20, wherein the buffer memory is configured as a read cache memory and/or a write cache memory.
28. The computing system of claim 20, wherein the buffer memory is configured to store software for improving system performance.
29. The computing system of claim 20, wherein the buffer memory is configured to communicate with the processing unit via a PCI-E bus.
30. The computing system of claim 20, wherein the buffer memory and the processing unit are integrated in a common circuit board assembly.
US11/673,228 2004-12-21 2007-02-09 Apparatus and Methods Using Invalidity Indicators for Buffered Memory Abandoned US20070130442A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US11/673,228 US20070130442A1 (en) 2004-12-21 2007-02-09 Apparatus and Methods Using Invalidity Indicators for Buffered Memory
US12/775,767 US8122193B2 (en) 2004-12-21 2010-05-07 Storage device and user device including the same
US13/365,485 US8533391B2 (en) 2004-12-21 2012-02-03 Storage device and user device including the same

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR1020040109826A KR100578143B1 (en) 2004-12-21 2004-12-21 Storage system with scheme capable of invalidating data stored in buffer memory and computing system including the same
KR2004-109826 2004-12-21
US11/230,994 US7802054B2 (en) 2004-12-21 2005-09-20 Apparatus and methods using invalidity indicators for buffered memory
US11/673,228 US20070130442A1 (en) 2004-12-21 2007-02-09 Apparatus and Methods Using Invalidity Indicators for Buffered Memory

Related Parent Applications (2)

Application Number Title Priority Date Filing Date
US11/230,994 Continuation-In-Part US7802054B2 (en) 2004-12-21 2005-09-20 Apparatus and methods using invalidity indicators for buffered memory
US12/016,737 Continuation-In-Part US8838875B2 (en) 2004-12-21 2008-01-18 Systems, methods and computer program products for operating a data processing system in which a file delete command is sent to an external storage device for invalidating data thereon

Related Child Applications (2)

Application Number Title Priority Date Filing Date
US11/230,994 Continuation-In-Part US7802054B2 (en) 2004-12-21 2005-09-20 Apparatus and methods using invalidity indicators for buffered memory
US12/016,737 Continuation-In-Part US8838875B2 (en) 2004-12-21 2008-01-18 Systems, methods and computer program products for operating a data processing system in which a file delete command is sent to an external storage device for invalidating data thereon

Publications (1)

Publication Number Publication Date
US20070130442A1 true US20070130442A1 (en) 2007-06-07

Family

ID=36580375

Family Applications (3)

Application Number Title Priority Date Filing Date
US11/230,994 Active 2027-06-14 US7802054B2 (en) 2004-12-21 2005-09-20 Apparatus and methods using invalidity indicators for buffered memory
US11/673,228 Abandoned US20070130442A1 (en) 2004-12-21 2007-02-09 Apparatus and Methods Using Invalidity Indicators for Buffered Memory
US12/860,961 Active US8051258B2 (en) 2004-12-21 2010-08-23 Apparatus and methods using invalidity indicators for buffered memory

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US11/230,994 Active 2027-06-14 US7802054B2 (en) 2004-12-21 2005-09-20 Apparatus and methods using invalidity indicators for buffered memory

Family Applications After (1)

Application Number Title Priority Date Filing Date
US12/860,961 Active US8051258B2 (en) 2004-12-21 2010-08-23 Apparatus and methods using invalidity indicators for buffered memory

Country Status (6)

Country Link
US (3) US7802054B2 (en)
JP (1) JP5420814B2 (en)
KR (1) KR100578143B1 (en)
CN (1) CN1821977B (en)
DE (1) DE102005063250A1 (en)
TW (1) TWI298167B (en)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090083393A1 (en) * 2007-09-25 2009-03-26 Oki Electric Industry Co., Ltd. Data synchronous system for synchronizing updated data in a redundant system
US20100125697A1 (en) * 2008-11-14 2010-05-20 Chul Lee Computing device having storage, apparatus and method of managing storage, and file system recorded recording medium
US20100191896A1 (en) * 2009-01-23 2010-07-29 Magic Technologies, Inc. Solid state drive controller with fast NVRAM buffer and non-volatile tables
US20120019544A1 (en) * 2010-07-22 2012-01-26 Samsung Electronics Co., Ltd. Image forming apparatus and method of controlling the same
US20130145097A1 (en) * 2011-12-05 2013-06-06 Qualcomm Incorporated Selective Access of a Store Buffer Based on Cache State
US9123409B2 (en) 2009-06-11 2015-09-01 Micron Technology, Inc. Memory device for a hierarchical memory architecture
US9165657B2 (en) 2012-04-18 2015-10-20 Samsung Electronics Co., Ltd. Operating method of memory system including NAND flash memory, variable resistance memory and controller
US9747043B2 (en) 2012-03-16 2017-08-29 Kabushiki Kaisha Toshiba Write reordering in a hybrid disk drive
CN108153491A (en) * 2017-12-22 2018-06-12 深圳市瑞驰信息技术有限公司 A kind of storage method and framework for closing part server
US11010296B2 (en) * 2017-10-24 2021-05-18 Infineon Technologies Ag Temporarily storing memory contents

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100578143B1 (en) 2004-12-21 2006-05-10 삼성전자주식회사 Storage system with scheme capable of invalidating data stored in buffer memory and computing system including the same
KR100876084B1 (en) * 2007-02-13 2008-12-26 삼성전자주식회사 Computing system capable of delivering deletion information to flash storage
US8122193B2 (en) 2004-12-21 2012-02-21 Samsung Electronics Co., Ltd. Storage device and user device including the same
US7571286B2 (en) * 2006-08-24 2009-08-04 International Business Machines Corporation Reduced memory traffic via detection and tracking of temporally silent stores
JP2008090626A (en) * 2006-10-02 2008-04-17 Sony Corp Transfer device, transfer system, program and transfer method
KR100826500B1 (en) * 2006-10-23 2008-05-02 삼성전자주식회사 Nonvolatile semi-conductor memory device and data recovery method of the nonvolatile semi-conductor memory device
US7554855B2 (en) 2006-12-20 2009-06-30 Mosaid Technologies Incorporated Hybrid solid-state memory system having volatile and non-volatile memory
KR100866959B1 (en) * 2007-02-13 2008-11-05 삼성전자주식회사 Partial page data write method of non-volatile memory device
JP5448428B2 (en) * 2008-11-27 2014-03-19 三菱電機株式会社 Data management system, data management method, and data management program
TWI396090B (en) * 2009-02-18 2013-05-11 Silicon Motion Inc Flash memory apparatus, data storage system, and method for sending special instructions to a flash memory apparatus
KR20110024147A (en) * 2009-09-01 2011-03-09 삼성전자주식회사 Memory system capable of compensating resistance drift of a resistive memory device and method of processing data of the memory system
WO2011063832A1 (en) * 2009-11-25 2011-06-03 Telefonaktiebolaget L M Ericsson (Publ) Addressable fifo
US8738846B2 (en) 2010-10-15 2014-05-27 Arkologic Limited File system-aware solid-state storage management system
US11232022B2 (en) * 2010-10-29 2022-01-25 Samsung Electronics Co., Ltd. Memory system, data storage device, user device and data management method thereof having a data management information matching determination
US9135037B1 (en) 2011-01-13 2015-09-15 Google Inc. Virtual network protocol
CN102654852A (en) * 2011-03-03 2012-09-05 安凯(广州)微电子技术有限公司 Asynchronous data reading/writing control method, device and system
US9063818B1 (en) 2011-03-16 2015-06-23 Google Inc. Automated software updating based on prior activity
US8533796B1 (en) 2011-03-16 2013-09-10 Google Inc. Providing application programs with access to secured resources
US9237087B1 (en) 2011-03-16 2016-01-12 Google Inc. Virtual machine name resolution
US8595716B2 (en) 2011-04-06 2013-11-26 Robert Bosch Gmbh Failsafe firmware updates
US9075979B1 (en) 2011-08-11 2015-07-07 Google Inc. Authentication based on proximity to mobile device
US8966198B1 (en) 2011-09-01 2015-02-24 Google Inc. Providing snapshots of virtual storage devices
US8958293B1 (en) 2011-12-06 2015-02-17 Google Inc. Transparent load-balancing for cloud computing services
US8800009B1 (en) 2011-12-30 2014-08-05 Google Inc. Virtual machine service access
US8983860B1 (en) 2012-01-30 2015-03-17 Google Inc. Advertising auction system
US8996887B2 (en) 2012-02-24 2015-03-31 Google Inc. Log structured volume encryption for virtual machines
US8677449B1 (en) 2012-03-19 2014-03-18 Google Inc. Exposing data to virtual machines
US9069806B2 (en) * 2012-03-27 2015-06-30 Google Inc. Virtual block devices
US9767025B2 (en) * 2012-04-18 2017-09-19 Qualcomm Incorporated Write-only dataless state for maintaining cache coherency
KR101929984B1 (en) 2012-05-17 2018-12-18 삼성전자주식회사 Modular multiplicator and modular multiplication method thereof
KR101925868B1 (en) 2012-05-17 2018-12-06 삼성전자주식회사 Modular arithmetic unit and secure system having the same
KR101996004B1 (en) 2012-05-29 2019-07-03 삼성전자주식회사 Programming method of nonvolatile memory device and memory system having the same
DE102013105356A1 (en) 2012-05-29 2013-12-05 Samsung Electronics Co., Ltd. Method for operating non-volatile memory device for use in smart-TV system, involves detecting errors generated during programming operation for programming portion of non-volatile multi-bit memory cells in non-volatile memory device
KR102000634B1 (en) 2012-06-07 2019-07-16 삼성전자주식회사 Nonvolatile memory device and erase method thereof
KR101975406B1 (en) 2012-07-11 2019-05-07 삼성전자주식회사 Non_volatile memory device and memory system having the same and memory management, erase and programming methods thereof
KR102020466B1 (en) * 2012-10-04 2019-09-10 에스케이하이닉스 주식회사 Data storage device including a buffer memory device
EP2923358A4 (en) * 2012-11-20 2016-06-29 Charles I Peddle Solid state drive architectures
CN102981782B (en) * 2012-11-28 2016-08-03 华为技术有限公司 Data processing method and device
CN104731520B (en) * 2013-12-24 2019-06-25 联想(北京)有限公司 A kind of information processing method and a kind of electronic equipment
US10241715B2 (en) 2014-01-31 2019-03-26 Hewlett Packard Enterprise Development Lp Rendering data invalid in a memory array
KR102218712B1 (en) 2014-02-11 2021-02-22 삼성전자주식회사 Method of mapping address in storage device and method of reading data from storage device
KR102344834B1 (en) 2014-09-24 2021-12-29 삼성전자주식회사 Solid state drive and computing system including the same
US9665743B2 (en) * 2015-02-26 2017-05-30 Whitecanyon Software, Inc. Selective storage device wiping system and method
KR102610846B1 (en) * 2016-05-13 2023-12-07 한국전자통신연구원 Apparatus and method for distributed storage having a high performance
KR102545166B1 (en) * 2016-07-26 2023-06-19 삼성전자주식회사 Host and Storage System securely deleting files and Operating Method of Host
WO2018036626A1 (en) 2016-08-25 2018-03-01 Huawei Technologies Co., Ltd. Apparatus and method for software self test
CN106354432A (en) * 2016-08-30 2017-01-25 北京小米移动软件有限公司 Data modification method and device
US10289561B2 (en) 2017-08-08 2019-05-14 Samsung Electronics Co., Ltd. Nonvolatile memory devices and methods of controlling the same
KR102144124B1 (en) * 2019-04-22 2020-08-13 고려대학교 산학협력단 Method and apparatus for managing data of non-volatile memory in hybrid main memory system

Citations (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4433374A (en) * 1980-11-14 1984-02-21 Sperry Corporation Cache/disk subsystem with cache bypass
US5530828A (en) * 1992-06-22 1996-06-25 Hitachi, Ltd. Semiconductor storage device including a controller for continuously writing data to and erasing data from a plurality of flash memories
US5561823A (en) * 1994-03-14 1996-10-01 Conner Peripherals, Inc. Monitor system for determining the available capacity of a READ buffer and a WRITE buffer in a disk drive system
US5594926A (en) * 1993-07-19 1997-01-14 Efar Microsystems, Inc. Hard disk accelerating system for computer
US5696929A (en) * 1995-10-03 1997-12-09 Intel Corporation Flash EEPROM main memory in a computer system
US5802344A (en) * 1995-11-03 1998-09-01 International Business Machines Corporation Method and apparatus for dynamic segment allocation in log structured arrays
US5907716A (en) * 1996-05-02 1999-05-25 Fujitsu Limited Fifo buffer capable of partially erasing data set held therein
US6219752B1 (en) * 1997-08-08 2001-04-17 Kabushiki Kaisha Toshiba Disk storage data updating method and disk storage controller
US6233648B1 (en) * 1997-12-26 2001-05-15 Kabushiki Kaisha Toshiba Disk storage system and data update method used therefor
US6272589B1 (en) * 1998-03-20 2001-08-07 Kabushiki Kaisha Toshiba Method and apparatus for controlling write buffering operation in a disk drive
US6473835B2 (en) * 1998-08-31 2002-10-29 International Business Machines Corporation Partition of on-chip memory buffer for cache
US6675276B2 (en) * 2001-11-13 2004-01-06 Eastman Kodak Company Method for providing extensible dos-fat system structures on one-time programmable media
US6728826B2 (en) * 1992-06-22 2004-04-27 Renesas Technology Corp. Semiconductor storage device in which commands are sequentially fed to a plurality of flash memories to continuously write data
US6910107B1 (en) * 2000-08-23 2005-06-21 Sun Microsystems, Inc. Method and apparatus for invalidation of data in computer systems
US20050138296A1 (en) * 2003-12-18 2005-06-23 Coulson Richard L. Method and system to alter a cache policy
US20050246701A1 (en) * 2004-04-29 2005-11-03 Gajendran Kanapathipillai Methods and systems for updating memory contents
US20060136676A1 (en) * 2004-12-21 2006-06-22 Park Chan-Ik Apparatus and methods using invalidity indicators for buffered memory
US7113402B2 (en) * 2004-10-01 2006-09-26 Lenovo (Singapore) Pte. Ltd. Systems, apparatus and method for reducing dust on components in a computer system

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01284941A (en) * 1988-05-11 1989-11-16 Nec Corp Information processor
KR900003744B1 (en) 1988-06-27 1990-05-30 제일제당 주식회사 Microorganism for producing of serratiopeptidase, serratia marcescens
JP2783285B2 (en) * 1988-08-10 1998-08-06 株式会社日立製作所 Information processing device
JPH05303528A (en) * 1992-04-27 1993-11-16 Oki Electric Ind Co Ltd Write-back disk cache device
JPH06131123A (en) 1992-10-22 1994-05-13 Fujitsu Ltd External storage device for computer
DE4423559A1 (en) 1993-11-09 1995-05-11 Hewlett Packard Co Data connection method and apparatus for multiprocessor computer systems with shared memory
US6026027A (en) * 1994-01-31 2000-02-15 Norand Corporation Flash memory system having memory cache
KR100251950B1 (en) 1997-06-26 2000-04-15 윤종용 Data storage apparatus
US6321318B1 (en) * 1997-12-31 2001-11-20 Texas Instruments Incorporated User-configurable on-chip program memory system
US6601147B1 (en) 1999-03-31 2003-07-29 International Business Machines Corporation Computer system and method for maintaining an integrated shared buffer memory in a group of interconnected hosts
JP3473483B2 (en) * 1999-03-31 2003-12-02 日本電気株式会社 Cache storage device and cache storage control method
KR100393991B1 (en) * 2000-02-02 2003-08-06 엘지전자 주식회사 Video decoder and its method for buffer control
JP2002269065A (en) 2001-03-08 2002-09-20 Mitsubishi Electric Corp Microcomputer with incorporated programmable nonvolatile memory
US6915396B2 (en) 2001-05-10 2005-07-05 Hewlett-Packard Development Company, L.P. Fast priority determination circuit with rotating priority
US6708251B1 (en) 2001-05-31 2004-03-16 Keen Personal Media, Inc. Disk drive having separate interfaces for host commands and audiovisual data
JP2003015928A (en) 2001-07-04 2003-01-17 Nec System Technologies Ltd Data storage device for flash memory and data storage method used therefor
JP2003199014A (en) 2001-12-27 2003-07-11 Toshiba Corp Disk storage device and command processing method
JP4082913B2 (en) 2002-02-07 2008-04-30 株式会社ルネサステクノロジ Memory system
JP3703439B2 (en) 2002-03-19 2005-10-05 Necマイクロシステム株式会社 Data transfer control device and method
KR100841436B1 (en) * 2002-08-08 2008-06-25 삼성전자주식회사 Video recording/reproducing apparatus and control method of memory device of thereof
US20040193656A1 (en) * 2003-03-28 2004-09-30 Pizzo Michael J. Systems and methods for caching and invalidating database results and derived objects

Patent Citations (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4433374A (en) * 1980-11-14 1984-02-21 Sperry Corporation Cache/disk subsystem with cache bypass
US6728826B2 (en) * 1992-06-22 2004-04-27 Renesas Technology Corp. Semiconductor storage device in which commands are sequentially fed to a plurality of flash memories to continuously write data
US5530828A (en) * 1992-06-22 1996-06-25 Hitachi, Ltd. Semiconductor storage device including a controller for continuously writing data to and erasing data from a plurality of flash memories
US5809515A (en) * 1992-06-22 1998-09-15 Hitachi, Ltd. Semiconductor storage device in which instructions are sequentially fed to a plurality of flash memories to continuously write and erase data
US5594926A (en) * 1993-07-19 1997-01-14 Efar Microsystems, Inc. Hard disk accelerating system for computer
US5561823A (en) * 1994-03-14 1996-10-01 Conner Peripherals, Inc. Monitor system for determining the available capacity of a READ buffer and a WRITE buffer in a disk drive system
US5696929A (en) * 1995-10-03 1997-12-09 Intel Corporation Flash EEPROM main memory in a computer system
US5802344A (en) * 1995-11-03 1998-09-01 International Business Machines Corporation Method and apparatus for dynamic segment allocation in log structured arrays
US5907716A (en) * 1996-05-02 1999-05-25 Fujitsu Limited Fifo buffer capable of partially erasing data set held therein
US6219752B1 (en) * 1997-08-08 2001-04-17 Kabushiki Kaisha Toshiba Disk storage data updating method and disk storage controller
US6233648B1 (en) * 1997-12-26 2001-05-15 Kabushiki Kaisha Toshiba Disk storage system and data update method used therefor
US6272589B1 (en) * 1998-03-20 2001-08-07 Kabushiki Kaisha Toshiba Method and apparatus for controlling write buffering operation in a disk drive
US6473835B2 (en) * 1998-08-31 2002-10-29 International Business Machines Corporation Partition of on-chip memory buffer for cache
US6910107B1 (en) * 2000-08-23 2005-06-21 Sun Microsystems, Inc. Method and apparatus for invalidation of data in computer systems
US6675276B2 (en) * 2001-11-13 2004-01-06 Eastman Kodak Company Method for providing extensible dos-fat system structures on one-time programmable media
US20050138296A1 (en) * 2003-12-18 2005-06-23 Coulson Richard L. Method and system to alter a cache policy
US20050246701A1 (en) * 2004-04-29 2005-11-03 Gajendran Kanapathipillai Methods and systems for updating memory contents
US7113402B2 (en) * 2004-10-01 2006-09-26 Lenovo (Singapore) Pte. Ltd. Systems, apparatus and method for reducing dust on components in a computer system
US20060136676A1 (en) * 2004-12-21 2006-06-22 Park Chan-Ik Apparatus and methods using invalidity indicators for buffered memory

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7797458B2 (en) * 2007-09-25 2010-09-14 Oki Electric Industry Co., Ltd. Data synchronous system for synchronizing updated data in a redundant system
US20090083393A1 (en) * 2007-09-25 2009-03-26 Oki Electric Industry Co., Ltd. Data synchronous system for synchronizing updated data in a redundant system
US20100125697A1 (en) * 2008-11-14 2010-05-20 Chul Lee Computing device having storage, apparatus and method of managing storage, and file system recorded recording medium
US20100191896A1 (en) * 2009-01-23 2010-07-29 Magic Technologies, Inc. Solid state drive controller with fast NVRAM buffer and non-volatile tables
US9626327B2 (en) 2009-06-11 2017-04-18 Micron Technology, Inc. Memory device for a hierarchical memory architecture
US10725956B2 (en) 2009-06-11 2020-07-28 Micron Technology, Inc. Memory device for a hierarchical memory architecture
US10031879B2 (en) 2009-06-11 2018-07-24 Micron Technology, Inc. Memory device for a hierarchical memory architecture
US9123409B2 (en) 2009-06-11 2015-09-01 Micron Technology, Inc. Memory device for a hierarchical memory architecture
KR101557624B1 (en) * 2009-06-11 2015-10-06 션 에일러트 Memory device for a hierarchical memory architecture
US20120019544A1 (en) * 2010-07-22 2012-01-26 Samsung Electronics Co., Ltd. Image forming apparatus and method of controlling the same
US8723876B2 (en) * 2010-07-22 2014-05-13 Samsung Electronics Co., Ltd. Image forming apparatus and method of controlling the same
US20130145097A1 (en) * 2011-12-05 2013-06-06 Qualcomm Incorporated Selective Access of a Store Buffer Based on Cache State
US9747043B2 (en) 2012-03-16 2017-08-29 Kabushiki Kaisha Toshiba Write reordering in a hybrid disk drive
US9367255B2 (en) 2012-04-18 2016-06-14 Samsung Electronics Co., Ltd. Storage device including variable resistance memory, flash memory and controller
US9165657B2 (en) 2012-04-18 2015-10-20 Samsung Electronics Co., Ltd. Operating method of memory system including NAND flash memory, variable resistance memory and controller
US11010296B2 (en) * 2017-10-24 2021-05-18 Infineon Technologies Ag Temporarily storing memory contents
CN108153491A (en) * 2017-12-22 2018-06-12 深圳市瑞驰信息技术有限公司 A kind of storage method and framework for closing part server

Also Published As

Publication number Publication date
US20100318754A1 (en) 2010-12-16
KR100578143B1 (en) 2006-05-10
JP2006178983A (en) 2006-07-06
TWI298167B (en) 2008-06-21
US20060136676A1 (en) 2006-06-22
CN1821977A (en) 2006-08-23
US8051258B2 (en) 2011-11-01
JP5420814B2 (en) 2014-02-19
US7802054B2 (en) 2010-09-21
TW200634844A (en) 2006-10-01
CN1821977B (en) 2011-02-23
DE102005063250A1 (en) 2006-06-29

Similar Documents

Publication Publication Date Title
US20070130442A1 (en) Apparatus and Methods Using Invalidity Indicators for Buffered Memory
US10949092B2 (en) Memory system with block rearrangement to secure a free block based on read valid first and second data
US8122193B2 (en) Storage device and user device including the same
US8041878B2 (en) Flash file system
US10915475B2 (en) Methods and apparatus for variable size logical page management based on hot and cold data
US7840617B2 (en) Host device and memory system
JP2582487B2 (en) External storage system using semiconductor memory and control method thereof
US8230160B2 (en) Flash memory storage system and flash memory controller and data processing method thereof
US20080028132A1 (en) Non-volatile storage device, data storage system, and data storage method
US20130145076A1 (en) System and method for memory storage
US11301331B2 (en) Storage device and operating method of storage device
JP2011128998A (en) Semiconductor storage device
US10402335B2 (en) Method and apparatus for persistently caching storage data in a page cache
JPWO2007119267A1 (en) Memory controller for flash memory
KR102585883B1 (en) Operating method of memory system and memory system
JP2006018839A (en) Incremental merge method and memory systems using the same
US9389998B2 (en) Memory formatting method, memory controller, and memory storage apparatus
EP3926451B1 (en) Communication of data relocation information by storage device to host to improve system performance
KR101596833B1 (en) Storage device based on a flash memory and user device including the same
JP2005115561A (en) Flash rom controller
US20080059706A1 (en) Storage apparatus, storage system and control method for storage apparatus
KR20080021211A (en) Computing system with scheme capable of invalidating data stored in buffer memory
KR102210536B1 (en) Data storage system of on-volatile memory apparatus and method of the same
US7996598B2 (en) Memory management module
JP2582487C (en)

Legal Events

Date Code Title Description
AS Assignment

Owner name: SAMSUNG ELECTRONICS CO., LTD., KOREA, REPUBLIC OF

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:LEE, SHEA YUN;PARK, CHAN IK;JUNG, TAE SUNG;AND OTHERS;REEL/FRAME:018874/0861;SIGNING DATES FROM 20070101 TO 20070201

STCB Information on status: application discontinuation

Free format text: EXPRESSLY ABANDONED -- DURING EXAMINATION