Data storage devices including integrated anti-virus circuits and method of operating the same

A data storage device includes a storage medium and a controller circuit configured to be coupled to an external host to provide an interface between the external host and the storage medium, the controller circuit configured to detect a virus carried by a data file transferred to and/or stored in the storage medium. The controller circuit may be further configured to cure the detected virus.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit, under 35 U.S.C §119, of Korean Patent Application No. 10-2011-0026568 filed Mar. 24, 2011, the entirety of which is incorporated by reference herein.

BACKGROUND

Exemplary embodiments relate to data storage apparatus and methods and, more particularly, to anti-virus detection and cure for data stored in such devices.

Computer viruses may infect data processed or stored in a computer device. A computer virus may infect any of a variety of different types of files including, for example, binary executable files, volume boot records (VBRs) and master boot records (MBRs).

An anti-virus agent (e.g., a program) may detect and cure a computer virus on data stored in a working memory device and a data storage device to protect data from malicious code. The anti-virus agent may detect a path or data that is infected or is capable of being infected by the computer virus, in run time. The anti-virus agent may be implemented by independent software that is included in an operating system or driven by the operating system. Computer virus detection and cure on data stored in a data storage device may take a significant amount of time due to many data input/output steps.

SUMMARY

Some embodiments of the inventive subject matter provide a data storage device including a storage medium and a controller circuit configured to be coupled to an external host to provide an interface between the external host and the storage medium. The controller circuit is configured to detect a virus carried by a data file transferred to and/or stored in the storage medium. The controller circuit may be further configured to cure the detected virus.

In some embodiments, the controller circuit may be configured to detect a virus in a data file received from the external host in conjunction with a write command from the external host. The controller circuit may be further configured to store a virus detection result for the received data file in metadata stored for the file. The controller circuit may also be configured to indicate presence of the detected virus to the external host.

In further embodiments, the controller circuit may be configured to detect presence of a virus in a data file stored in the storage medium responsive to a read command received from the external host. The controller circuit may be configured to detect a virus in the data file responsive to receiving the data file from the external host, to include a virus detection result for the data file in metadata stored for the data file, and, responsive to the read command, to detect presence of the virus in the data file from the virus detection result in the stored metadata. The controller circuit may be further configured to selectively transfer the data file, an alternative file and/or an error message to the external host responsive to detecting presence of the virus.

In additional embodiments, the controller circuit may be configured to receive a virus scan command from the external host, to conduct a virus scan of a data file stored in the storage medium responsive to the virus scan command and to provide a virus scan result to the external host responsive to the virus scan. The controller circuit may be further configured to receive a virus cure command from the external host, to conduct a virus curing operation responsive to the received virus cure command and to provide a virus cure result to the external host responsive to the virus curing operation.

In some embodiments, the controller circuit may include an anti-virus circuit. The anti-virus circuit may include a matching circuit configured to detect a virus by comparing the data file and virus signature data and a curing circuit configured to delete the detected virus. The anti-virus circuit may further include a filter circuit configured to determine a virus infection probability of the data file.

In further embodiments, the storage medium may include first and second storage media connected to the controller via respective first and second channels. The data storage device may further include a first buffer memory device configured to buffer a data file transferred via the first channel and a second buffer memory device configured to buffer a data file transferred via the second channel. The anti-virus circuit may include a first anti-virus circuit configured to detect and cure a virus of the data file buffered by the first buffer memory device and a second anti-virus circuit configured to detect and cure a virus of the data file buffered by the second buffer memory device.

Additional embodiments of the inventive subject matter provide methods of operating a data storage device configured to be coupled to an external host. The methods include detecting a virus carried by a data file transferred to the storage device from the external host and/or stored in a storage medium of the data storage device using a controller circuit integrated with the storage medium in the storage device. Detecting a virus may not require virus scanning of the data file by the external host. The methods may further include curing the detected virus using the controller circuit.

In some embodiments, detecting a virus may include detecting the virus in a file received from the external host in conjunction with a write command from the external host. The methods may include storing a virus detection result for the received file in metadata stored for the file.

In some embodiments, detecting a virus may include detecting presence of a virus in a data file stored in the storage medium responsive to a read command received from the external host. In some embodiments, the methods further include detecting the virus in the data file responsive to receiving the data file from the external host and including a virus detection result for the data file in metadata stored for the data file. Detecting a virus may include detecting, responsive to the read command, presence of the virus in the data file from the virus detection result in the stored metadata.

In some embodiments, detecting a virus may be preceded by receiving a virus scan command from the external host and wherein detecting a virus includes conducting a virus scan of a data file stored in the storage medium responsive to the virus scan command and wherein the method further includes providing a virus scan result to the external host responsive to the virus scan.

One aspect of embodiments of the inventive subject matter is directed to provide a data storage device which includes a storage medium; and a controller configured to control the storage medium, wherein the controller includes an anti-virus circuit configured to detect a virus of one of a data file to be stored in the storage medium and a data file stored in the storage medium and to cure the detected virus, and wherein the controller is configured to drive a file system for managing the data file and controls the anti-virus circuit so as to detect a virus of the data file and to cure a virus of the data file.

In this embodiment, the controller is configured to drive the file system based upon identification information of the data file provided from a host device.

In this embodiment, the controller is configured to generate metadata including a name, an extension, a size, and location information of the data file based upon the identification information of the data file and to manage the generated metadata via the file system.

In this embodiment, the anti-virus circuit includes a matching circuit configured to detect whether the data file is infected by a virus, by comparing the data file and virus signature data; and a curing circuit configured to delete a virus of the data file and to recover the data file.

In this embodiment, the anti-virus circuit further includes a filter circuit configured to detect a virus infection probability of the data file.

In this embodiment, the storage medium includes a first storage medium group formed of a plurality of nonvolatile memory devices; and a second storage medium group formed of a plurality of nonvolatile memory devices.

In this embodiment, the first and second storage medium groups are connected to the controller via channels, respectively.

In this embodiment, the data storage device further includes a first buffer memory device configured to buffer a data file transferred via a channel of the first storage medium group; and a second buffer memory device configured to buffer a data file transferred via a channel of the second storage medium group, and wherein the anti-virus circuit includes a first anti-virus circuit configured to detect a virus of a data file buffered by the first buffer memory device and to cure a virus of the data file; and a second anti-virus circuit configured to detect a virus of a data file buffered by the second buffer memory device and to cure a virus of the data file.

Another aspect of embodiments of the inventive subject matter is directed to provide an operating method of a data storage device which includes a storage medium; and a controller controlling the storage medium and configured to detect a virus of one of a data file to be stored in the storage medium and a data file stored in the storage medium and to cure the detected virus. The operating method includes receiving a virus scanning command and identification information of a data file from a host device; detecting a virus of the data file based upon the identification information of the input data file and a file system managed within the data storage device; and transferring the detection result to the host device.

In this embodiment, the identification information of the data file is a file name of the data file.

In this embodiment, the detecting includes detecting a virus infection probability of the data file; and detecting whether the data file is infected by a virus, by comparing the data file and virus signature data.

In this embodiment, the operating method further includes updating the virus signature data or setting a virus scanning operation.

In this embodiment, the operating method further includes deleting the virus of the data file; and recovering the data file.

In this embodiment, the operating method further includes recording a scanning result, indicating that the data file is infected, at metadata managed by the file system, and the transferring includes transferring the scanning result to the host device based upon the metadata.

In this embodiment, the operating method further includes if an access to the data file is requested from the host device, confirming whether the data file is infected by a virus, based upon the metadata; and transferring a data file infected by a virus, a data file replacing a data file infected by a virus, or an error message according to a setting value provided from the host device.

DETAILED DESCRIPTION

The inventive subject matter is described more fully hereinafter with reference to the accompanying drawings, in which embodiments of the inventive subject matter are shown. This inventive subject matter 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 inventive subject matter to those skilled in the art. In the drawings, the size and relative sizes of layers and regions may be exaggerated for clarity. Like numbers refer to like elements throughout.

FIG. 1is a block diagram illustrating a data processing system according to some embodiments of the inventive subject matter. A data processing system120may detect and cure (e.g., remove, disable or otherwise remedy) a virus on stored data using an anti-virus circuit135. A data storage device120according to some embodiments may be configured to perform a virus scanning (e.g., search and cure) operation based upon a file system implemented by the data storage device120. The data storage device120may be an object-based storage device (OSD), for example. The OSD may be an intelligent storage device that directly makes and manages metadata or a file system for managing a data file.

Referring toFIG. 1, the data storage device120may include a data storage device controller130and a storage medium150. The data storage device controller130may include a CPU131, a working memory device132, and an anti-virus circuit (unit)135.

The data storage device controller130may be configured to control overall operation of the data storage device120. For example, the data storage device controller130may be configured to store data provided from a host device110in the storage medium150. The data storage device controller130may also be configured to provide data stored in the storage medium150to the host device110.

The storage medium150may be configured to permanently store data under the control of the data storage device controller130. For example, the storage medium150may include a magnetic disk (e.g., a platter) or a nonvolatile memory device.

The data storage device controller130may drive a file system and an anti-virus agent to perform the virus scanning operation. The file system and the anti-virus agent may be software that is driven by an embedded operating system for driving the data storage device controller130. The file system and the anti-virus agent may be loaded and driven on the working memory device132.

The anti-virus circuit135may include a matching circuit137and a curing circuit138. The anti-virus circuit135may further include a filter circuit136. The filter circuit136, the matching circuit137, and the curing circuit138may operate under the control of an anti-virus agent loaded on the working memory device132.

The filter circuit136may be configured to filter a virus infection probability of data. For example, the filter circuit136may be implement a bloom filter extracted from virus signature data using a hash function. The filter circuit136may determine a virus infection probability of data using the bloom filter.

The matching circuit137may detect virus infection by comparing data and the virus signature data. The virus signature data used at the matching and filter circuits137and136may include specific data patterns extracted from various viruses. The virus signature data may be provided from the anti-virus agent. The curing circuit138may be configured to delete a virus included in data and to recover data that has been infected.

The filter circuit136, the matching circuit137, and the curing circuit138may be implemented by a digital circuit, an analog circuit, or a combination of digital and analog circuits. In some embodiments, the filter circuit136, the matching circuit137, and the curing circuit138may be implemented by software driven by an anti-virus agent circuit loaded on the working memory device132. In further embodiments, the filter circuit136, the matching circuit137, and the curing circuit138may be implemented by a combination of hardware and software.

According to some embodiments of the inventive subject matter, the data storage device120may directly make and manage metadata or a file system for managing a data file. Under the control of the host device110, the data storage device120may perform a virus scanning operation based upon the file system. Accordingly, it is possible to reduce a data input/output operation between the host device110and the data storage device120executed at the virus scanning operation. Further, since the virus scanning operation is performed directly within the data storage device120, it is possible to make real-time virus detection on a data file stored in the data storage device120.

FIG. 2is a diagram illustrating a software layer structure of a data processing system according to some embodiments of the inventive subject matter. The software layers of the host device110and the software layers of the data storage device120may be linked with each other to perform any operation (e.g., an operation of generating, deleting, or accessing a data file).

The software layers of the host device110may include an application program SL300driven via an operating system and a reduced file system SL200. The software layers of the host device110may further include a host anti-virus agent SL100for executing a virus scanning operation. The host anti-virus agent SL100may be one of various application programs SL300driven by the host device110.

The software layers of the data storage device120may include an anti-virus agent SL400driven via an embedded operating system for driving the data storage device129and a file system SL500.

As described above, a data storage device according to some embodiments of the inventive subject matter may be an object-based storage device (OSD). The OSD may directly make and manage a file system for managing a data file or metadata. Accordingly, the file system SL500of the data storage device120may generate and manage an attribute of a data file updated at generating, deleting, and accessing of a data file. The data file attribute may include a file name, an extension, a file size, time information, a file location, and the like. The reduced file system SL200of the host device110may manage data file identification information only. For example, the file identification information may include a file name of a data file.

The reduced file system SL200and the file system SL500may share the data file identification information. For example, the reduced file system SL200and the file system SL500may communicate with each other to update the data file identification information. Further, the reduced file system SL200and the file system SL500may communicate with each other to send the data file identification information.

The host device110and the data storage device120may perform an operation (e.g., file generating, deleting, or accessing) using the data file identification information. In particular, it is assumed that the application program SL300of the host device110accesses any data file. The application program SL300may request a corresponding data file from the reduced file system SL200so as to access the corresponding data file. The reduced file system SL200may request the corresponding data file from the file system SL500based upon data file identification information. The file system SL500may provide the reduced file system SL200with corresponding data based upon a data file attribute (e.g., a file name, a file size, a file location, etc.).

The anti-virus agent SL100of the host device110and the anti-virus agent SL400of the data storage device120may be lined with each other for a virus scanning operation. The anti-virus agent SL100of the host device110may be driven according to the control of a user. The anti-virus agent SL100of the host device110may control the anti-virus agent SL400of the data storage device120. The anti-virus agent SL400of the data storage device120may control an anti-virus circuit135inFIG. 1to perform a virus scanning operation.

Virus scanning operations of the anti-virus agent SL100of the host device110and the anti-virus agent SL400of the data storage device120will be more fully described below. The anti-virus agent SL100of the host device110may request a virus scanning operation on any data file from the anti-virus agent SL400of the data storage device120based upon the reduced file system SL200. The anti-virus agent SL400of the data storage device120may perform a virus scanning operation on a corresponding data file based on the file system SL500. The anti-virus agent SL400of the data storage device120may report the result to the anti-virus agent SL100of the host device110.

The anti-virus agent SL100of the host device110may update the anti-virus agent SL400of the data storage device120or may change setting of the anti-virus agent SL400of the data storage device120. For example, in the event that updating of virus signature data is needed, the anti-virus agent SL100of the host device110may update the anti-virus agent SL400of the data storage device120. Alternatively, the anti-virus agent SL100of the host device110may change setting of the anti-virus agent SL400of the data storage device120to set whether or not to use the anti-virus circuit135or to confirm a state of the anti-virus agent SL400or the anti-virus circuit135.

The virus scanning operation and the update operation of the data storage device120under the control of the anti-virus agent SL400of the data storage device120will be more fully described with reference toFIGS. 3 to 6.

FIG. 3is a flowchart illustrating data storing operations of a data storage device according to some embodiments of the inventive subject matter. Below, a data storing operation of a data storage device according to some embodiments of the inventive subject matter will be more fully described with reference toFIGS. 1 to 3.

In a step S110, a data storage device controller130may receive a write command and a file object from a host device110. Herein, the file object may indicate actual data to be stored in a storage medium150. As described above, a data storage device120may be an object-based storage device. Accordingly, the host device110(e.g., the reduced file system SL200) may generate data file identification information on a data file to be written and may transfer a write command and a file object (i.e., actual data to be stored) to the data storage device controller130.

In a step S120, the data storage device controller130, (e.g., the anti-virus agent SL400), may check whether an anti-virus function is enabled, in response to an input of the write command. The anti-virus function may be activated by the anti-virus agent SL100of the host device110.

If the anti-virus function is disabled, data storage operations may occur as follows. If the anti-virus function is disabled, in a step S180the data storage device controller130may store the file object in the storage medium150and may update metadata corresponding to a data file. In the event that a new data file is written, metadata corresponding to the new data file may be generated. In a step S170, the data storage device controller130may provide the host device110with a response indicating that a write operation is completed.

If the anti-virus function is enabled, in step S130, the data storage device controller130(e.g., the anti-virus agent SL400) may cause the anti-virus circuit135to perform virus filtering and matching operations on the transferred file object. If a virus is not detected from the transferred file object, in a step S180the data storage device controller130may store the file object in the storage medium150and may update metadata corresponding to a data file. In step S170, the data storage device controller130may provide the host device110with a response indicating that a write operation is completed.

In the event that a virus is detected from the transferred file object, in a step S150the data storage device controller130may store the file object in the storage medium150and may update metadata corresponding to a data file. In a case where a new data file is written, metadata corresponding to the new data file may be generated. In a step S160, the data storage device controller130may include a virus detecting result in metadata corresponding to a data file from which a virus is detected. The virus detecting result may be information indicating whether a data file is infected by a virus and may include at least one bit of data.

After recording the virus detecting result, in a step S170the data storage device controller130may provide the host device110with a response indicating that a write operation is completed. In a case where a virus is detected from the transferred file object, a response informing that a write operation is completed may include information indicating that a data file is infected by a virus.

FIG. 4is a flowchart for describing a data reading operation of a data storage device according to some embodiments of the inventive subject matter. Below, a data reading operation of a data storage device according to some embodiments of the inventive subject matter will be more fully described with reference toFIGS. 1,2, and4.

In a step S210, a data storage device controller130may receive a read command and data file identification information from a host device110. The file identification information may be provided from the reduced file system SL200. In a step S220, the data storage device controller130(e.g., the anti-virus agent SL400) may check whether an anti-virus function is enabled, in response to an input of the read command. The agent SL100of the host device110may activate the anti-virus function.

When the anti-virus function is not activated, a data reading operation may be made as follows. In a step S260, the data storage device controller130may read a data file based upon the file system SL500. In a step S270, the data storage device controller130may provide the host device110with the data file and a response indicating that a read operation is completed.

If the anti-virus function is activated, in a step S230the data storage device controller130(e.g., the anti-virus agent SL400) may check metadata of a data file via the file system SL500. In a step S240, an operation may diverge according to whether a virus detecting result is recorded at metadata of a data file. If the virus detecting result is not recorded, in a step S260the data storage device controller130may read a data file based upon the file system SL500. In the step S270, the data storage device controller130may provide the host device110with the data file and a response indicating that a read operation is completed.

If the virus detecting result is recorded, at a step S250the data storage device controller130(e.g., the anti-virus agent SL400) may judge whether an access to a virus-detected data file is allowed. Whether access to a virus-detected data file is allowed may be set by an anti-virus agent SL100of the host device110.

If access to the virus-detected data file is allowed, in a step S260the data storage device controller130may read a data file based upon the file system SL500. In the step S270, the data storage device controller130may provide the host device with a data file and a response indicating that a read operation is completed.

If access to the virus-detected data file is not to be allowed, in step S280the data storage device controller130may send a replaced file or may provide the host device110with an error message. It is thereby possible to previously prevent the data processing system100from being infected by a virus.

FIG. 5is a flowchart for describing a virus scanning operation of a data storage device according to some embodiments of the inventive subject matter. Below, a virus scanning operation of a data storage device according to some embodiments of the inventive subject matter will be more fully described with reference toFIGS. 1,2, and5.

In a step S310, the data storage device controller130(e.g., the anti-virus agent SL400) may receive a virus scanning command and data file identification information form a host device110. In a step S320, the data storage device controller130may perform a virus filtering operation and a virus matching operation based upon the data file identification information and the file system SL500. The data storage device controller130may control the anti-virus circuit135to perform the virus filtering and matching operations. In a step S330, the data storage device controller130may provide a response to the virus scanning command and a virus scanning result.

In a step S340, the data storage device controller130may judge whether a virus curing command is received from the host device110. If the virus curing command is received, in a step S350the data storage device controller130may perform a virus curing operation on an infected data file. In a step S360, the data storage device controller130may provide the host device110with a response to the virus curing command and a curing result. In the event that the virus curing command is not received from the host device110, the data storage device controller130may end the virus scanning operation.

FIG. 6is a flowchart for describing an update operation of an anti-virus circuit of a data storage device according to some embodiments of the inventive subject matter. Below, an update operation of an anti-virus circuit of a data storage device according to some embodiments of the inventive subject matter will be more fully described with reference toFIGS. 1,2, and6.

In a step S410, a data storage device controller130(e.g., the anti-virus agent SL400) may receive an update command from a host device110, that is, an anti-virus agent SL100. The data storage device controller130may send a response to the update command to the host device110. For example, the response may include information indicating that the update command is received normally. In another embodiment, the response may include information on a current version of the anti-virus agent SL400. In still another embodiment, the response may include update certification information.

In a step S430, the data storage device controller130may receive update data from the host device110. For example, the update data may include virus signature data. In another embodiment, the update data may include information for changing a setting of the anti-virus agent SL400.

In a step S450, the data storage device controller130may update the anti-virus agent SL400or the anti-virus circuit135based upon the input update data. In a step S460, the data storage device controller130may provide the host device110with a response indicating that an update operation is completed.

FIG. 7is a block diagram illustrating a data processing system according to another exemplary embodiment of the inventive subject matter. A data storage device220may perform a virus scanning operation on stored data using an anti-virus circuit249. The data storage device220may include a file system to perform the virus scanning operation. The data storage device220may directly perform the virus scanning operation based upon a file system. The data storage device220may be an object-based storage device OSD, for example.

Referring toFIG. 7, the data storage device220may include a data storage device controller230and storage media250and260. The data storage device controller230may include a CPU231, a working memory device232, and an anti-virus circuit249. Each of the storage media250and260may include a plurality of storage media. For example, the storage media250and260may be formed of a plurality of nonvolatile memory devices. The storage media250and260may be connected to the data storage device controller230via channels CH1to CHk, respectively.

The data storage device controller230may be configured to control an overall operation of the data storage device220. For example, the data storage device controller230may be configured to store data provided from a host device (not shown) in the storage media250and260. The data storage device controller230may be configured to transfer data stored in the storage media250and260to the host device. To improve a processing speed, the data storage device controller230may store data in the storage media250and260using an interleaving manner or may read data from the storage media250and260using an interleaving manner.

According to some embodiments of the inventive subject matter, the data storage device controller230may drive a file system and an anti-virus agent to perform a virus scanning operation. The file system and the anti-virus agent may be software driven via an embedded operating system for driving the data storage device controller230. The file system and the anti-virus agent may be loaded and driven on the working memory device232.

A buffer memory device241may be connected between the storage medium250and the data storage device controller230. The buffer memory device241may be connected to the anti-virus circuit242. The buffer memory device241may buffer data transferred between the storage medium250and the data storage device controller230. The anti-virus circuit242may perform a virus scanning operation on data temporarily stored in the buffer memory device241according to the control of the data storage device controller230.

A buffer memory device243may be connected between the storage medium260and the data storage device controller230. The buffer memory device243may be connected to the anti-virus circuit244. The buffer memory device243may buffer data transferred between the storage medium260and the data storage device controller230. The anti-virus circuit244may perform a virus scanning operation on data temporarily stored in the buffer memory device243according to the control of the data storage device controller230(i.e., an anti-virus agent). The anti-virus agent and the anti-virus circuit249may be configured the same as those described inFIGS. 1 to 6, and description thereof is thus omitted.

The data storage device220may directly generate and manage metadata or a file system for managing a data file. Under the control of a host device (not shown), the data storage device220may perform a virus scanning operation based upon the file system. Accordingly, it is possible to reduce a data input/output operation between the host device and the data storage device220executed at the virus scanning operation. Further, since the virus scanning operation is performed directly within the data storage device220, it may be possible to conduct substantially real-time virus detection on a data file stored in the data storage device220. It may be possible to reduce a time taken to perform a virus scanning operation by making parallel processing on a virus scanning operation via the anti-virus circuits242and244each provided to channels CH1and CHk.

FIG. 8is a block diagram illustrating a data storage device controller according to some embodiments of the inventive subject matter. Referring toFIG. 8, there is shown an example of a data storage device controller130included in a data storage device120inFIG. 1according to some embodiments of the inventive subject matter. However, it is understood that components of the data storage device controller130other than an anti-virus circuit135are included in a data storage device controller230included in a data storage device220inFIG. 7according to another exemplary embodiment of the inventive subject matter. Below, the data storage device controller130will be more fully described with reference toFIGS. 1 and 8.

The data storage device controller130may include a CPU131, a RAM132, an anti-virus circuit135, a host interface136, and a data storage medium interface137.

The CPU131may be configured to control an overall operation of the data storage device controller130. The RAM132may be used as a working memory of the CPU131. The anti-virus circuit135may be configured to perform a virus scanning operation in the same manner as described inFIGS. 1 and 2.

The host interface136may include a protocol for data exchange between a host device110and a data storage device controller130. For example, the host interface136may be configured to communicate with the host device110via one of various protocols such as a USB (Universal Serial Bus) protocol, an MMC (Multimedia Card) protocol, a PCI (Peripheral Component Interconnection) protocol, a PCI-E (PCI-Express) protocol, an ATA (Advanced Technology Attachment) protocol, a SATA (Serial ATA) protocol, a SCSI (Small Computer Small Interface) protocol, an ESDI (Enhanced Small Disk Interface) protocol, and an IDE (Integrated Drive Electronics) protocol.

The data storage medium interface137may provide an interface between the storage medium150and the data storage device controller130.

The data storage device controller130is not limited to the above-described components. For example, the data storage device controller130may further include a ROM for storing code data needed for an initial booting operation. Alternatively, the data storage device controller130may further include a component such as an ECC circuit.

In a case where the storage medium150is formed of a memory device, the data storage device controller130and the storage medium150may be integrated in a single semiconductor device. The data storage device controller130and the storage medium150may be integrated in a single semiconductor device to form a memory card. For example, the data storage device controller130and the storage medium150may be integrated in a single semiconductor device to form a memory card such as a PC (PCMCIA) card, a CF card, an SM (or, SMC) card, a memory stick, a multimedia card (MMC, RS-MMC, MMCmicro), a security card (SD, miniSD, microSD, SDHC), a universal flash storage (UFS) device, or the like. In another embodiment, the data storage device controller130and the storage medium150may form a solid state drive (SSD).

In some embodiments, the data storage device controller130or the storage medium150may be packed by various types of packages such as Pop (Package on Package), Ball grid arrays (BGAs), Chip scale packages (CSPs), Plastic Leaded Chip Carrier (PLCC), Plastic Dual In-Line Package (PDI2P), Die in Waffle Pack, Die in Wafer Form, Chip On Board (COB), Ceramic Dual In-Line Package (CERDIP), Plastic Metric Quad Flat Pack (MQFP), Small Outline (SOIC), Shrink Small Outline Package (SSOP), Thin Small Outline (TSOP), Thin Quad Flat pack (TQFP), System In Package (SIP), Multi Chip Package (MCP), Wafer-level Fabricated Package (WFP), Wafer-Level Processed Stack Package (WSP), and the like.