U.S. patent application number 11/673228 was filed with the patent office on 2007-06-07 for apparatus and methods using invalidity indicators for buffered memory.
This patent application is currently assigned to Samsung Electronics Co. Ltd.. Invention is credited to Tae-Sung Jung, Shea Yun Lee, Sang-Lyul Min, Chan-Ik Park.
Application Number | 20070130442 11/673228 |
Document ID | / |
Family ID | 36580375 |
Filed Date | 2007-06-07 |
United States Patent
Application |
20070130442 |
Kind Code |
A1 |
Lee; Shea Yun ; et
al. |
June 7, 2007 |
Apparatus and Methods Using Invalidity Indicators for Buffered
Memory
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.
Inventors: |
Lee; Shea Yun; (Seoul,
KR) ; Park; Chan-Ik; (Seoul, KR) ; Jung;
Tae-Sung; (Seoul, KR) ; Min; Sang-Lyul;
(Seoul, KR) |
Correspondence
Address: |
MYERS BIGEL SIBLEY & SAJOVEC
PO BOX 37428
RALEIGH
NC
27627
US
|
Assignee: |
Samsung Electronics Co.
Ltd.
|
Family ID: |
36580375 |
Appl. No.: |
11/673228 |
Filed: |
February 9, 2007 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
11230994 |
Sep 20, 2005 |
|
|
|
11673228 |
Feb 9, 2007 |
|
|
|
Current U.S.
Class: |
711/207 |
Current CPC
Class: |
G06F 3/0625 20130101;
G06F 3/0656 20130101; G06F 3/0616 20130101; G06F 3/0679 20130101;
Y02D 10/00 20180101 |
Class at
Publication: |
711/207 |
International
Class: |
G06F 12/00 20060101
G06F012/00 |
Foreign Application Data
Date |
Code |
Application Number |
Dec 21, 2004 |
KR |
2004-109826 |
Claims
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.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] 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
[0002] The present invention relates to computing systems and
methods and, more particularly, to computing systems including a
storage system with buffer memory.
[0003] 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.
[0004] 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.
[0005] 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.
[0006] 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
[0007] 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.
[0008] 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.
[0009] 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.
[0010] 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
[0011] 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.
[0012] FIG. 1 is a block diagram illustrating a conventional
computer system;
[0013] FIG. 2 illustrates conventional file processing operations
of the computing system shown in FIG. 1;
[0014] FIG. 3 is a block diagram illustrating a computing system
including a storage system in accordance with some embodiments of
the present invention;
[0015] FIGS. 4A and 4B are diagrams showing a mapping table of a
storage system in accordance with further embodiments of the
present invention;
[0016] 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;
[0017] 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
[0018] FIG. 7 is a block diagram illustrating a computing system
according to further embodiments of the present invention.
DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS
[0019] 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.
[0020] 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.
[0021] 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.
[0022] 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".
[0023] 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.
[0024] 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.
[0025] 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.
[0026] 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.
[0027] 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.
[0028] 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.
[0029] 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.
[0030] 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.
[0031] 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.
[0032] 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.
[0033] 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.
[0034] 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.
[0035] 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.
[0036] 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".
[0037] 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.
[0038] 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.
[0039] 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.
[0040] 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.
[0041] 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.
[0042] 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.
[0043] 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.
[0044] 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.
[0045] 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.
[0046] 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.
[0047] 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.
[0048] 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).
[0049] 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.
[0050] 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.
[0051] 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.
[0052] 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.
[0053] 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.
[0054] 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.
* * * * *