US20120317313A1 - Disk device assigned id codes for storage areas of a storage device - Google Patents
Disk device assigned id codes for storage areas of a storage device Download PDFInfo
- Publication number
- US20120317313A1 US20120317313A1 US13/591,355 US201213591355A US2012317313A1 US 20120317313 A1 US20120317313 A1 US 20120317313A1 US 201213591355 A US201213591355 A US 201213591355A US 2012317313 A1 US2012317313 A1 US 2012317313A1
- Authority
- US
- United States
- Prior art keywords
- storage device
- controller
- code
- host
- storage areas
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0605—Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0632—Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
Definitions
- the present general inventive concept relates to systems and methods of data transfer between a controller and a storage device, and, more particularly, to systems and methods of determining a storage capacity and one or more storage areas of a storage device coupled to a controller, and transferring data therebetween.
- an external storage device typically includes a USB (Universal Serial Bus) controller and a hard disk drive.
- multi-media and computer systems with 32-bit operating systems typically do not recognize a total storage capacity of an external storage device that is greater than or equal to two terabytes (TB).
- TB terabytes
- the present general inventive concept provides systems and methods of data transfer between a controller and a storage device.
- exemplary embodiments of the present general inventive concept may provide systems and methods of determining a storage capacity of a storage device coupled to a controller, and transferring data therebetween.
- Exemplary embodiments of the present general inventive concept provide a system to communicate data transfer of data between a disk device and an external storage device, the system including a host to generate a control command to communicate with an external storage device, and a disk device to receive the control command from a host to identify and communicate with an external storage device when connected to the external storage device and to configure the external storage device by assigning an ID code to each storage area of the external storage device.
- the system may also include where the control command includes ID code information to be assigned to each storage area of the storage device.
- the system may also include where the disk device generates a second control command in response to receiving the control command from the host, where the second control command includes ID code information to be assigned to each storage area of the storage device.
- the system may also include where the host includes a 32 bit operating system.
- the system may also include where the assigning of the ID codes to the storage areas is variable such that at least two storage areas are merged to one larger storage area.
- the system may also include where all of the storage areas are assigned a single ID code.
- the system may also include where data sizes are transferred between the disk device and the external storage device based on the assigned ID code Information.
- the system may also include where the disk device has a switching unit to determine whether to assign an ID code to each storage area of the external storage device.
- the system may also include where the switching unit determines whether to assign an ID code to each storage area of the external storage device based on the type of operating system of the host device.
- the system may also include where the switching system has a user interface to implement switching via buttons.
- the system may also include where the user interface further includes a restart button to automatically reconnect the host to the external storage device to recognize a switching operation.
- the system may also include where the control command has a restart signal such that the disk device operates the external storage device as a reconnected state.
- Exemplary embodiments of the present general inventive concept may also provide a method to transfer data between a disk device and an external storage device, the method including receiving a command signal at a disk device from a host device to identify the external storage device and to assign ID codes to each storage area of the external storage device, and assigning the ID codes to the storage areas to configure the external storage device based on the identification of the external storage device.
- the method may also include where the command signal includes ID code information of the ID codes.
- the method may also include where the disk device generates a second command signal including ID code information to generate the ID codes when the command signal is received from the host device.
- the method may also include where the ID codes are generated by using a USB LUN configuration at the external storage device.
- the method may also include transferring data of different sizes between the disk device and the external storage device based on the configured state of the external storage device.
- the method may also include where the ID codes are assigned to the storage areas based on the type of operating system of the host device.
- Exemplary embodiments of the present general inventive concept may also provide a disk device to transfer to and from an external storage device, the disk device including a control part to receive a control command from a host device to identify the external storage device, a memory to store the control command and to generate a second control signal to assign ID codes to storage areas of the external storage device, and a switching unit to determine whether to transmit the second control signal to the external storage device to assign the ID codes to the storage areas therein.
- the device may also include where the switching is performed based on the type of operating system of the host device.
- the switching unit of the disk device may also include a restart button to restart the external storage device when the second signal is transmitted to the external storage device.
- Exemplary embodiments of the present general inventive concept may also include a method to transfer data between a controller and an external storage device, the method including receiving a command signal including ID codes of one or more storage areas of the external storage device at a controller from a host device, assigning the ID codes to the one or more storage areas to configure the external storage device, and transferring data between the controller and at least one of the one or more storage areas of the external storage device.
- Exemplary embodiments of the present general inventive concept may also include a method to transfer data between a controller and an external storage device, the method including receiving a command signal at the controller from a host device to identify one or more storage areas of the external storage device, identifying the one or more storage areas with the controller, assigning ID codes to the one or more storage areas to configure the external storage device, and transferring data between the controller and at least one of the one or more storage areas of the external storage device.
- the method may also include transmitting a second command signal from the controller to the external storage device to reassign the ID codes to configure the external storage device.
- Exemplary embodiments of the present general inventive concept may also include a method of initializing an external storage device communicatively coupled to a controller, the method including determining a position of a selection switch in the external storage device with the controller, and controlling the external storage device to operate in a first mode when it is determined that the selection switch is in a first position, and controlling the external storage device to operating in a second mode when it is determined that the selection switch is in a second position, wherein one or more storage areas of the external storage device in the first mode have a first maximum storage capacity, and the one or more storage areas of the external storage device in the second mode have a second maximum storage capacity that is greater than the first maximum storage capacity.
- Exemplary embodiments of the present general inventive concept may also include a method of configuring an external storage device communicatively coupled to a controller, the method including determining whether a flag set in a memory of the controller is set to a first value or a second value according to a received selection, operating the external storage device in a first mode when it is determined that the selection is the first value, and operating the external storage device in a second mode when it is determined that the selection is the second value, wherein one or more storage areas of the external storage device in the first mode have a first maximum storage capacity, and the one or more storage areas of the external storage device in the second mode have a second maximum storage capacity that is greater than the first maximum storage capacity.
- FIG. 1 illustrates a block diagram a system including a controller and an external storage device according to exemplary embodiments of the present general inventive concept
- FIG. 2 illustrates a flowchart of a method of data transfer between the controller and the external storage device illustrated in FIG. 1 according to exemplary embodiments of the present general inventive concept
- FIG. 3A illustrates a specification table of a mass storage device according to exemplary embodiments of the present general inventive concept
- FIG. 3B illustrates a table of eight storage devices and/or storage areas having different logical unit numbers (LUNs) according to exemplary embodiments of the present general inventive concept
- FIG. 4 illustrates a total storage area of an external storage device having a plurality of storage areas, where each storage area has an identification code according to exemplary embodiments of the present general inventive concept
- FIG. 5 illustrates a detailed view of a total storage area of FIG. 4 that includes identification (ID) codes for each of the storage areas according to exemplary embodiments of the present general inventive concept;
- FIG. 6 illustrates a system block diagram according to exemplary embodiments of the present general inventive concept
- FIG. 7 illustrates a flow chart of an exemplary method of ID assignment and data transfer in the system illustrated in FIG. 6 according to exemplary embodiments of the present general inventive concept
- FIG. 8 illustrates the ID codes of the external storage device illustrated in FIG. 6 according to exemplary embodiments of the present general inventive concept
- FIG. 9 illustrates different ID codes for different storage areas according to exemplary embodiments of the present general inventive concept
- FIG. 10 illustrates a flowchart detailing a method of data transfer with the system illustrated in FIG. 6 according to exemplary embodiments of the present general inventive concept
- FIG. 11 illustrates a block diagram of an external storage device according to exemplary embodiments of the present general inventive concept
- FIG. 12A illustrates a flowchart of a method of initializing an external storage device according to exemplary embodiments of the present general inventive concept
- FIG. 12B illustrates a display that can be displayed by a display unit communicatively coupled to at least the external storage device according to exemplary embodiments of the present general inventive concept
- FIG. 13 illustrates a detailed view of the controller illustrated in FIG. 6 according to exemplary embodiments of the present general inventive concept
- FIG. 14 illustrates a flowchart of a method of configuring an external storage device according to exemplary embodiments of the present general inventive concept
- FIG. 15 illustrates a flowchart of a method of using a non-volatile memory flag information in the operation of an external memory device according to exemplary embodiments of the present general inventive concept
- FIGS. 16A-16C illustrate flowcharts of operations of finding a target address according to exemplary embodiments of the present general inventive concept.
- FIG. 1 Illustrates a system 100 including a controller and an external storage device according to exemplary embodiments of the present general inventive concept.
- System 100 can include a controller 11 0 and an external storage device 150 .
- the controller 110 can be a disk device, a processor, a field programmable gate array, a programmable logic device, a computer, a server, a personal digital assistant, a smartphone, and/or any other suitable device to carry out the exemplary embodiments of the present general inventive concept as disclosed herein.
- the controller 110 may be part of a host device or may be communicatively coupled to a host device and/or display device.
- the external storage 150 can be a hard disk drive, solid state drive, memory device, or any other suitable storage device to carry out the exemplary embodiments of the present general inventive concept.
- the controller 110 can identify tile external storage device 150 at least when the external storage device 150 is communicatively coupled (e.g., via a wired and/or wireless communication link) to the controller 110 .
- the controller 110 can identify the external storage device 150 and a plurality of storage areas of the external storage device 150 by at least one identification (“ID”) code.
- ID identification
- data that includes one or more ID codes of the respective one or more storage areas of the external storage device 150 may be transmitted to the controller 110 via the wired and/or wireless communication link.
- Data that includes one or more ID codes of the respective one or more storage areas of the external storage 150 device may be stored in a memory or storage unit of the controller 110 .
- FIG. 2 illustrates a method of data transfer between the controller 110 and the external storage device 150 illustrated in FIG. 1 according to exemplary embodiments of the present general inventive concept.
- the external storage device 150 may be identified to have one or more storage areas by, for example, the controller 110 detecting an ID code.
- the controller 110 may request one or more ID codes from the external storage device 150 , and/or the external storage device may transmit the ID codes to the controller when the external storage device and the controller 110 are communicatively coupled together.
- the external storage device 150 and the controller 110 can communicate with one another, where the controller ′ 10 may read and/or write data to and/or from one or more storage areas (e.g., all storage areas) of the external storage device 150 . That is, as the controller 110 has identified the ID codes for the one or more storage areas of the external storage device at operation S 210 , the controller 110 may read and/or write data to and/or from one or more storage areas (e.g., all storage areas) of the external storage device 150 using the ID codes.
- the controller 110 may read and/or write data to and/or from one or more storage areas (e.g., all storage areas) of the external storage device 150 using the ID codes.
- FIG. 3A illustrates a UFI specification table of a USB mass storage device.
- the external storage device 150 as illustrated in FIG. 1 may be a storage device having a USB interface which provides a Logical Unit Number (LUN), and where a data field specifies the number of a logical unit that may process a command block.
- LUN Logical Unit Number
- the Logical Unit Number (LUN) can be used by a controller 110 to recognize and/or determine the full storage capacity of an external storage device.
- LUN Logical Unit Number
- an exemplary USB mass storage class specification may include fields (e.g., byte fields 0 - 11 , each having 8 bits (i.e., bits 0 - 7 ) for an Operation Code, Logical Unit Number (LUN), Logical Block Address (LBA), Transfer or Parameter List or Allocation Length, and one or more Reserved areas.
- the Reserved areas of the byte fields illustrated in FIG. 3A may be accessed, for example, by entering a code, password, or any other suitable security measure in, for example, a graphical user Interface window (e.g., a pop-up window).
- the graphical user interface window can be displayed by a display device that is, for example, coupled to the controller 110 or a host that includes the controller 110 illustrated in FIG. 1 .
- FIG. 3B illustrates a table that includes an example eight devices (e.g., Device 0 -Device 7 ) and/or storage areas having LUN numbers 0 - 7 , where each device has an exemplary 2 TB capacity.
- devices e.g., Device 0 -Device 7
- FIG. 3B illustrates a table that includes an example eight devices (e.g., Device 0 -Device 7 ) and/or storage areas having LUN numbers 0 - 7 , where each device has an exemplary 2 TB capacity.
- eight devices and/or storage areas, and a 2 TB capacity of each device is illustrated in FIG. 3B , these are exemplary numbers and storage capacities, and the present general Inventive concept is not limited thereto. That is, the controller 110 illustrated in FIG. 1 may recognize one or more devices, each having a storage capacity.
- a 3-bit LUN can be assigned to the eight devices (e.g., devices 0 - 7 having LUN number 0 - 7 ) in a 32 bit operating system of a host (e.g., computer or multi-media device, etc.). That is, the three bit LUN for each of the eight devices may be 000, 001, 010, 011, 100, 101, 110, and 111, respectively.
- FIG. 4 illustrates a total storage area of an external storage device having plurality of storage areas, where each storage area can have an identification code according to exemplary embodiments of the present general inventive concept.
- Total storage area 300 of an external storage device may include storage areas ST_ 1 , ST_ 2 , . . . , ST_n, with each storage area having an identification code (as referred throughout as an “ID code”) such as CODE_ 1 , CODE_ 2 , . . . , CODE_n.
- the ID code for each storage area may be different for each storage area, and/or a plurality of storage areas may have the same ID code.
- each ID code can be implemented using, for example, the USB LUN at the USB-based external storage device.
- any suitable LUN may be used in order to carry out the exemplary embodiments of the present general inventive concept as detailed herein.
- FIG. 5 illustrates a detailed view of a total storage area of FIG. 4 that includes ID codes for each of the storage areas according to exemplary embodiments of the present general inventive concept.
- FIG. 5 includes a total storage area 400 having five separate storage areas, ST_ 1 , ST_ 2 , ST_ 3 , ST_ 4 , and ST_ 5 , with each storage area having a different ID code.
- storage area ST_ 1 can have the ID code 000
- storage area ST_ 2 can have the ID code 001
- storage area ST_ 3 can have the ID code 010
- storage area ST_ 4 can have the ID code 011
- storage area ST_ 5 can have the ID code 100.
- a controller e.g., controller 110
- the storage area ST_ 1 can be assigned the ID code of 000 by the controller 110 .
- a controller e.g., controller 110
- disk device can communicate with one or more storage areas (e.g., ST_ 1 , ST_ 2 , . . . , ST_n) of a total storage area of an external storage device using an ID code (e.g., CODE_ 1 , CODE_ 2 , . . . , CODE_n; or, alternatively, 000, 001, 010, etc.) of each storage area.
- an ID code e.g., CODE_ 1 , CODE_ 2 , . . . , CODE_n; or, alternatively, 000, 001, 010, etc.
- FIG. 6 illustrates a system block diagram according to exemplary embodiments of the present general inventive concept.
- System 500 may include a controller 510 , an external storage device 550 , and a host 580 .
- the controller 510 may be any suitable controller (e.g., processor, field programmable gate array, application specific integrated circuit, programmable logic unit, etc.) to carry out the exemplary embodiments of the present general inventive concept, and may be a disk device.
- the controller 510 may be similar and/or the same as the controller 110 illustrated in FIG. 1 and described above.
- the host 580 may be a computer, a server, a tablet computer, a personal digital assistant, a smartphone, and/or a multi-media device, and/or any other suitable device to carry out the exemplary embodiments of the present general inventive concept as disclosed herein.
- the host 580 may include and/or may be coupled to a display device.
- the external storage device 550 may be a hard disk drive, a solid state drive, a memory device, or any other suitable storage device to carry out the exemplary embodiments of the present general inventive concept.
- data may be transmitted between the host 580 and the controller 510 , and between the controller 510 and the external storage device 550 .
- a first control command (“CON 1 ”) can be transmitted from the host 580 to the controller 510
- a second control command (“CON 2 ”) can be transmitted between the controller 510 and the external storage device 550 .
- the external storage device 580 can have a plurality of storage areas, each of which may be identified by an ID code (e.g., CODE_ 1 , CODE_ 2 , . . . , CODE_n; or, alternatively, 000, 001, 010, etc. as illustrated in FIGS. 4 and 5 ).
- ID code e.g., CODE_ 1 , CODE_ 2 , . . . , CODE_n; or, alternatively, 000, 001, 010, etc. as illustrated in FIGS. 4 and 5 .
- the ID codes of the plurality of storage areas may all be different, and/or two or more of the ID codes of the plurality of storage areas may be the same.
- FIG. 7 illustrates a flow chart of an exemplary method of ID assignment and data transfer in the system 500 illustrated in FIG. 6 according to exemplary embodiments of the present general inventive concept.
- the external storage device 550 can be connected to the controller 510 , and the controller 510 can determine whether a first control command (hereinafter referred to as “CON 1 ”) is received from the host 580 at operation S 610 . If it is determined that the controller 510 receives the CON 1 from the host 580 at operation S 610 , the controller 510 can assign an ID code to each storage area of the external storage device 550 using the ID code information received with the CON 1 from the host 580 .
- CON 1 a first control command
- the controller 510 can merge a plurality of storage areas into one storage area by assigning an ID code to each storage area of the external storage device 550 in response to CON 1 . That is, the controller 510 can merge the storage areas by assigning the same ID code to each of the storage areas.
- the controller 510 can change the ID code of one or more storage areas of the external storage device 550 by transmitting a second control command (hereinafter referred to as “CON 2 ”), which can include information such as the ID code to the external storage device 550 .
- CON 2 a second control command
- the controller 510 may determine whether one or more storage areas of the external storage device 550 are variable-type storage areas (e.g., where a variable-type storage area is a non-merged storage area; that is, the ID codes of a plurality of storage areas of the external storage device 550 are different from one another).
- a variable-type storage area is a non-merged storage area; that is, the ID codes of a plurality of storage areas of the external storage device 550 are different from one another.
- data can be transferred between the host 580 and the external storage device 550 . That is, data can be transferred between the host 580 and the external storage device 550 via the controller 510 .
- the controller 510 can identify at least one storage area of the external storage device 550 at operation S 620 .
- the controller 510 may identify the at least one storage area by requesting data having the ID codes of one or more storage areas of the external storage device 550 .
- the controller 510 may receive the ID codes for the one or more storage areas of the external storage device 550 without transmitting a request signal.
- data can be transferred between the host 580 and the external storage device via the controller 510 .
- the controller 510 can also change the ID code of one or more storage areas of the external storage device 550 by transmitting a CON 2 command to the external storage device 550 .
- FIG. 8 illustrates the ID codes of the external storage device illustrated in FIG. 6 according to exemplary embodiments of the present general inventive concept.
- an external storage device 700 can have storage areas ST_ 1 , ST_ 2 , ST_ 3 , ST_ 4 , and ST_ 5 , where each of the storage areas has the same ID code value of 000. That is, as all of the ID codes are the same for the storage areas (e.g., storage areas ST_ 1 , ST_ 2 , ST_ 3 , ST_ 4 , and ST_ 5 ) of external storage device 700 , the external storage device 700 can be used as a single storage area (e.g., the storage areas of the external storage device have been merged).
- FIG. 9 illustrates different ID codes for different storage areas according to exemplary embodiments of the present general inventive concept.
- FIG. 9 illustrates an external storage device 900 that can include storage areas ST_ 1 , ST_ 2 , ST_ 3 , ST_ 4 , and ST_ 5 , where a plurality of the storage areas have different ID codes from one another.
- the storage areas ST_ 1 and ST_ 2 can have ID code 000
- storage area ST_ 3 can have ID code 010
- storage areas ST_ 4 and ST_ 5 can have ID code 011.
- the storage areas ST_ 1 and ST_ 2 can have the same ID codes as one another
- the storage areas ST_ 4 and ST_ 5 can have the same ID codes as one another (e.g., but have different ID codes than storage areas ST_ 1 and ST_ 2 )
- storage area ST_ 3 can have a different ID code from storage areas ST_ 1 , ST_ 2 , ST_ 4 , and ST_ 5 .
- the external storage device 800 can have a plurality of storage areas, where the configuration of the external storage device 800 can be set and/or changed, for example, when a controller (e.g., controller 510 illustrated in FIG. 6 ) receives a CON 1 (e.g., from the host 580 ) which includes information for the ID codes of the storage areas.
- a controller e.g., controller 510 illustrated in FIG. 6
- CON 1 e.g., from the host 580
- the controller can receive the configuration information, including the ID codes for the storage areas of the external storage device 800 . That is, the controller can receive the CON 1 with the ID code information, and update the configuration of the external storage device from the single storage area configuration (e.g., storage areas ST_ 1 to ST_ 5 have the same ID code) of external storage device 700 of FIG. 8 to the configuration of the external storage device 800 illustrated in FIG. 9 (e.g., where storage area ST_ 1 and ST_ 2 have the same ID code 000, storage area ST_ 3 has ID code 010, and storage areas ST_ 4 and ST_ 5 have ID codes 011) by transmitting, for example, the CON 2 command as described above in connection with FIGS. 6 and 7 .
- the controller e.g. controller 510 illustrated in FIG. 6
- the controller can receive the configuration information, including the ID codes for the storage areas of the external storage device 800 . That is, the controller can receive the CON 1 with the ID code information, and update the configuration of the external storage device from the single storage area configuration (e.g., storage
- FIG. 10 illustrates a flowchart detailing a method of data transfer with the system illustrated in FIG. 6 according to exemplary embodiments of the present general inventive concept.
- the controller 510 can receive a first control command CON 1 from the host 580 at operation S 910 .
- the controller 510 can identify the configuration of the external storage device 550 from the received CON 1 at operation S 920 . That is, with the received CON 1 , the controller 510 can determine whether the external storage device 550 is a single storage area (e.g., where the ID codes of the storage areas of the external storage device are the same, as illustrated in FIG.
- the ID codes of the one or more storage areas of the external storage device can be provided with the first control command (CON 1 ).
- data may be transferred between the controller 510 and the one or more storage areas of the external storage device 550 , and/or between the host 580 and the external storage device 550 via the controller 510 .
- FIG. 11 illustrates a block diagram of an external storage device according to exemplary embodiments of the present general inventive concept.
- system 1000 may include a host 1002 , a controller i 005 , a switching apparatus 1010 , and an external storage device 1050 .
- the host 1002 , the controller 1005 , and external storage device 1050 illustrated In FIG. 11 may be the same as and/or similar to the host 580 , controller 510 , and external storage device 550 , respectively, that are illustrated in FIG. 6 and described above.
- the switching apparatus 1010 can respond from the second control command CON 2 (as described above at least in connection with FIG.
- the switching device 1010 can identify the one or more storage areas (e.g., storage areas ST_ 1 , ST_ 2 , . . . , ST_n illustrated in FIG. 11 ) as a merged single storage (e.g., where ID codes CODE_ 1 , CODE_ 2 , . . . , CODE_n are the same) or a plurality of storage areas (e.g., where at least two of the ID codes of the storage areas of the external storage device 1050 are different from one another) using at least the CON 2 . As illustrated in FIG.
- the controller 1005 can receive a CON 1 command from the host 1002 to configure, store, and/or retrieve data from one or more of the storage areas of the external storage device 1050 , and the CON 2 command can be transmitted by the controller 1005 to the switching apparatus 1010 to determine the ID codes of the one or more storage areas. That is, in the exemplary embodiments of the present general inventive concept illustrated in FIG. 11 , the CON 1 may not include the ID codes of the storage areas of the external storage device 1050 , and the CON 2 command may be transmitted to the switching apparatus 1010 from the controller 1005 so that the controller 1005 can identify the ID codes of the storage areas.
- the switching apparatus 1010 of FIG. 11 can include a plurality of switches, where at least one switch and/or all switches can respond to the CON 2 to determine and/or configure at least one ID code (e.g., CODE_ 1 , CODE_ 2 , . . . , CODE_n) of the external storage device 1050 .
- One or more switches can determine and/or configure an ID code (e.g., CODE_ 1 , CODE_ 2 , . . . , CODE_n) of one or more storage areas (e.g., storage areas ST_ 1 , ST_ 2 , . . .
- the CON 2 can control one or more of the switches in the switching apparatus 1010 to be in an ON or OFF position, so as to configure at least one of the ID code (e.g., CODE_ 1 , CODE_ 2 , . . . , CODE_n) of one or more storage areas (e.g., storage areas ST_ 1 , ST_ 2 , . . . , ST_n) of the external storage device 1050 .
- the controller 1005 may transmit the CON 2 command to determine the ON or OFF position of one or more of the switches of the switching apparatus 1010 to determine the ID codes of the storage areas of the external storage device 1050 .
- FIG. 12A illustrates a flowchart of a method of initializing an external storage device according to exemplary embodiments of the present general inventive concept.
- a switch e.g., a select switch
- the external storage device can operate in an enhanced mode operation at operation S 1104 .
- the enhanced mode operation can include a 32-bit mode, where each storage area (e.g., storage areas ST_ 1 , ST_ 2 , . . .
- the external storage device can operate in a legacy mode operation at operation S 1106 .
- the legacy mode operation can include a 64-bit mode, where each storage area (e.g., storage areas ST_ 1 , ST_ 2 , . . . , ST_n) of the external storage device may be less than or equal to 4 TB of storage capacity.
- the external storage device when the external storage device is powered on, if the select switch of the external storage device is in an OFF position, the external storage device operates in a 64 bit mode, but if the switch is not in an OFF position, the external storage device may operate in an enhanced mode (e.g., a 32 bit mode, where the maximum recognized storage area of the external storage device can be 2 TB).
- an enhanced mode e.g., a 32 bit mode, where the maximum recognized storage area of the external storage device can be 2 TB.
- the above-described 32-bit and 64-bit modes, and storage capacities of 2 TB and 4 T8 are merely exemplary, and other bit modes and corresponding storage sizes may be used.
- FIG. 12B illustrates a display 1150 that can be displayed by a display unit communicatively coupled to an external storage device, host device, and/or controller (e.g., the display device may be coupled to a host device, which is communicatively coupled to the external storage device) according to exemplary embodiments of the present general inventive concept.
- the display 1150 may include a selectable enable button 1152 , a selectable disable button 1154 , and a selectable restart button 1156 .
- the host and/or the external storage device may receive a selection of the enable button 1152 , the disable button 1154 , and the restart button 1156 . When a selection of the enable button 1152 is received, the external storage device can operate in an enhanced mode operation.
- the enhanced mode operation can include a 32-bit mode, where each storage area (e.g., storage areas ST_ 1 , ST_ 2 , . . . , ST_n) of the external storage device may be less than or equal to 2 TB of storage capacity.
- the legacy mode operation can include a 64-bit mode, where each storage area (e.g., storage areas ST_ 1 , ST_ 2 , . . . , ST_n) of the external storage device may be less than or equal to 4 TB of storage capacity.
- the external storage device When a selection of the restart button 1156 is received, the external storage device is operated in a selected mode condition (e.g., an enhanced mode, a legacy mode, etc.).
- a selected mode condition e.g., an enhanced mode, a legacy mode, etc.
- the above-described 32-bit and 64-bit modes, and storage capacities of 2 TB and 4 TB are merely exemplary, and other bit modes and corresponding storage sizes may be used.
- FIG. 13 illustrates a detailed view of the controller 510 illustrated in FIG. 6 according to exemplary embodiments of the present general inventive concept.
- the controller 510 may include a control unit 1210 and a memory 1250 .
- the memory 1250 can be a non-volatile memory.
- the control unit 1210 can store the first control command CON 1 in the memory 1250 when the CON 1 is received from the host 580 .
- the CON 1 can include, for example, ID code information.
- the external storage ID code information call be used to by the controller 510 to identify the storage areas of the external storage device 550 , as the ID code information can be stored in the memory 1250 .
- the code information in the memory 1250 can be erased and/or replaced with the newly-received code information.
- the controller 510 can identify a merged storage area (e.g., where the ID codes for the storage areas are the same, as illustrated in FIG.
- a restart signal may also be received by the controller 510 from the host 580 .
- the controller 510 can control the operation of the external storage device 550 so as to communicatively reconnect it to the host 580 .
- the controller 510 can identify at least one storage area of the external storage device 550 by using the information stored in the memory 1250 and/or the information received from the host 580 via the CON 1 .
- FIG. 14 illustrates a flowchart of a method of configuring an external storage device according to exemplary embodiments of the present general inventive concept.
- operation S 1402 it is determined whether the enable button 1152 has been selected, and, if no such selection has been received, it is determined at operation S 1404 whether the disable button 1154 has been selected. If a selection of the disable button 1154 has not been received at operations S 1404 and S 1406 , no operation is performed by the external storage device.
- a non-volatile memory flag can be set to a “1” value at operation S 1408 , and the external storage device may operate in the enhanced mode (e.g., 32-bit mode) as described above.
- the disable button 1154 is determined to be selected at operation S 1404 , a nonvolatile memory flag can be set to a “0” value, and the external storage device may operate in the legacy mode (e.g., 64-bit mode) as described above.
- a selection of the restart button 1156 can restart the system and operate the external storage device according to the newly set configuration indicated by the non-volatile memory flag setting.
- FIG. 15 illustrates a flowchart of a method of using a non-volatile memory flag information in the operation of an external memory device according to exemplary embodiments of the present general inventive concept.
- a non-volatile memory flag value can be read from a memory location in the external memory device and/or a memory of a controller that is communicatively coupled to the external storage device.
- FIGS. 16A-16C illustrate flowcharts of operations of finding a target address according to exemplary embodiments of the present general inventive concept.
- An external storage device may have eight storage areas, identified as LUN 0 to LUN 7 .
- LUN 0 can have the start LBA (logical block address) of the entire storage capacity of the external storage device, so that the data addresses for the external storage device can start from the LUN 0 storage area.
- LBA logical block address
- FIG. 16A when a host device that is communicatively coupled to the external storage device requests data from the LUN 0 storage area, at operation S 1602 , it is determined whether the LUN is 0 or not.
- a command can be sent from the host to the external storage device via a USB interface at operation S 1604 .
- the command can include, for example, an operation function, at least one address, a read size, or any other suitable information to carry out the exemplary embodiments of the present general inventive concept as described herein.
- the operation function can be an operation code 0x28, which is a USB read command
- the LBA and/or address can be 0x10000 (e.g., the target address to start the reading of data)
- the block count and/or read size can be 128 blocks (e.g., where 128 blocks can be a predetermined read block size).
- a USB controller can convert the received command from the host to a SATA (Serial Advanced Technology Attachment) and/or ATA (Advanced Technology Attachment) command.
- the converted operation code is 0x25 for an ATA read command (e.g., the USB operation code 0x28 read command of operation S 1604 can be converted to the 0x25 ATA read command), and the LBA and block count can be the same as at operation S 1604 (e.g., the LBA can be 0x10000, and the block count can be 128).
- a block count e.g., a block count of 128) of data can be read at the LBA (e.g., 0x10000).
- a host device that is communicatively coupled to the external storage device requests data from the stora ⁇ 1e area
- the command can include, for example, an operation function, at least one address, a read size, or any other suitable information to carry out the exemplary embodiments of the present general inventive concept as described herein. As illustrated in operation S 1610 of FIG.
- the operation function can be an operation code 0x28, which is a USB read command
- the LBA and/or address can be 0x10000
- the block count and/or read size can be 128 blocks.
- a USB controller can convert the received command from the host to a SATA and/or ATA command.
- the converted operation code is 0x25 for an ATA read command (e.g., the USB operation code 0x28 read command of operation S 1610 can be converted to the 0x25 ATA read command), but the LBA and block count can be calculated to have a target address of 0x10000+0xFFFFFFFF.
- the LBA of 0x10000 at operation S 1612 can be modified by 0xFFFFFF to calculate a target address so as to read at the beginning of the storage area LUN 1 .
- a block count e.g., a block count of 128
- the LBA e.g., 0x10000+0xFFFFFFFF
- a host device that is communicatively coupled to the external storage device requests data from the storage area, at operation S 1614 , it is determined whether the LUN is 7 or not. If it is determined that the LUN is 7, a command can be sent from the host to the external storage device via a USB interface at operation S 1616 .
- the command can include, for example, an operation function, at least one address, a read size, or any other suitable information to carry out the exemplary embodiments of the present general inventive concept as described herein. As illustrated in operation SI 616 of FIG.
- the operation function can be an operation code 0x28, which is a USB read command
- the LBA and/or address can be 0x10000
- the block count and/or read size can be 128 blocks.
- a USB controller can convert the received command from the host to a SATA and/or ATA command.
- the converted operation code is 0x25 for an ATA read command (e.g., the USB operation code 0x28 read command of operation S 1616 can be converted to the 0x25 ATA read command), but the LBA and block count can be calculated to have a target address of 0x10000+0xFFFFFFFF ⁇ 7.
- the LBA at operation S 1616 can be modified (e.g., by adding 0xFFFFFF ⁇ 7) so as to calculate a target address to read at the beginning of the storage area LUN 7 .
- a block count e.g., a block count of 128 of data can be read at the calculated target LBA (e.g., 0x10000+0xFFFFFFFF ⁇ 7).
- FIGS. 16A-16C relate to the conversion of USB commands to ATA and/or SATA commands
- any suitable interface command can be converted to another interface command so as to carry out the exemplary embodiments of the present general inventive concept as disclosed herein.
- the present general inventive concept can also be embodied as computer-readable codes on a computer-readable medium.
- the computer-readable medium can include a computer-readable recording medium and a computer-readable transmission medium.
- the computer-readable recording medium is any data storage device that can store data as a program which can be thereafter read by a computer system. Examples of the computer-readable recording medium include read-only memory (ROM), random-access memory (RAM), CD-ROMs, magnetic tapes, floppy disks, and optical data storage devices.
- the computer-readable recording medium can also be distributed over network coupled computer systems so that the computer-readable code is stored and executed in a distributed fashion.
- the computer-readable transmission medium can be transmitted through carrier waves or signals (e.g., wired or wireless data transmission through the Internet). Also, functional programs, codes, and code segments to accomplish the present general inventive concept can be easily construed by programmers skilled in the art to which the present general inventive concept pertains.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
A disk device can include a controller configured to transmit first commands in response to second commands from a host, the first commands to assign at least one identification (ID) code to at least one of a plurality of storage areas in a storage device, the second commands including the at least one ID code; wherein the controller transfers data between the host and the storage device using the ID codes.
Description
- This application is a continuation of U.S. patent application Ser. No. 13/019,424 filed on Feb. 2, 2011, which claims priority under 35 U.S.C. §119(a) from Korean Patent Application No. 1 0-201 0-0009644, filed on Feb. 2, 2010, in the Korean Intellectual Property Office, the disclosures of which are incorporated herein in their entirety by reference.
- 1. Field of the Invention
- The present general inventive concept relates to systems and methods of data transfer between a controller and a storage device, and, more particularly, to systems and methods of determining a storage capacity and one or more storage areas of a storage device coupled to a controller, and transferring data therebetween.
- 2. Description of the Related Art
- As multi-media use increases, data storage capacity of devices to store data and multi-media has also increased. Recently, manufacturers of storage devices have increased the maximum storage capacity of data storage devices, such as hard disk drives. User multi-media devices and computers that are coupled to these storage devices with increased capacity have problems reading and writing data to all portions of the storage device. That is, the portion of the storage device that data can be written to and read from is often limited to the areas that are recognizable and addressable by the user's multi-media system controller. For example, an external storage device typically includes a USB (Universal Serial Bus) controller and a hard disk drive. Some operating systems do not recognize a full storage capacity of the external storage device. For example, multi-media and computer systems with 32-bit operating systems typically do not recognize a total storage capacity of an external storage device that is greater than or equal to two terabytes (TB). Thus, when a user connects an external storage device to a multi-media host system with a storage capacity of 2 TB or greater, the host system does not recognize the full storage capacity of the external storage device.
- The present general inventive concept provides systems and methods of data transfer between a controller and a storage device. In particular, exemplary embodiments of the present general inventive concept may provide systems and methods of determining a storage capacity of a storage device coupled to a controller, and transferring data therebetween.
- Additional features and utilities of the present general inventive concept will be set forth in part in the description which follows and, in part, will be obvious from the description, or may be learned by practice of the general inventive concept.
- Exemplary embodiments of the present general inventive concept provide a system to communicate data transfer of data between a disk device and an external storage device, the system including a host to generate a control command to communicate with an external storage device, and a disk device to receive the control command from a host to identify and communicate with an external storage device when connected to the external storage device and to configure the external storage device by assigning an ID code to each storage area of the external storage device.
- The system may also include where the control command includes ID code information to be assigned to each storage area of the storage device.
- The system may also include where the disk device generates a second control command in response to receiving the control command from the host, where the second control command includes ID code information to be assigned to each storage area of the storage device.
- The system may also include where the host includes a 32 bit operating system.
- The system may also include where the assigning of the ID codes to the storage areas is variable such that at least two storage areas are merged to one larger storage area.
- The system may also include where all of the storage areas are assigned a single ID code.
- The system may also include where data sizes are transferred between the disk device and the external storage device based on the assigned ID code Information.
- The system may also include where the disk device has a switching unit to determine whether to assign an ID code to each storage area of the external storage device. The system may also include where the switching unit determines whether to assign an ID code to each storage area of the external storage device based on the type of operating system of the host device.
- The system may also include where the switching system has a user interface to implement switching via buttons.
- The system may also include where the user interface further includes a restart button to automatically reconnect the host to the external storage device to recognize a switching operation.
- The system may also include where the control command has a restart signal such that the disk device operates the external storage device as a reconnected state.
- Exemplary embodiments of the present general inventive concept may also provide a method to transfer data between a disk device and an external storage device, the method including receiving a command signal at a disk device from a host device to identify the external storage device and to assign ID codes to each storage area of the external storage device, and assigning the ID codes to the storage areas to configure the external storage device based on the identification of the external storage device.
- The method may also include where the command signal includes ID code information of the ID codes.
- The method may also include where the disk device generates a second command signal including ID code information to generate the ID codes when the command signal is received from the host device.
- The method may also include where the ID codes are generated by using a USB LUN configuration at the external storage device.
- The method may also include transferring data of different sizes between the disk device and the external storage device based on the configured state of the external storage device.
- The method may also include where the ID codes are assigned to the storage areas based on the type of operating system of the host device.
- Exemplary embodiments of the present general inventive concept may also provide a disk device to transfer to and from an external storage device, the disk device including a control part to receive a control command from a host device to identify the external storage device, a memory to store the control command and to generate a second control signal to assign ID codes to storage areas of the external storage device, and a switching unit to determine whether to transmit the second control signal to the external storage device to assign the ID codes to the storage areas therein.
- The device may also include where the switching is performed based on the type of operating system of the host device.
- The switching unit of the disk device may also include a restart button to restart the external storage device when the second signal is transmitted to the external storage device.
- Exemplary embodiments of the present general inventive concept may also include a method to transfer data between a controller and an external storage device, the method including receiving a command signal including ID codes of one or more storage areas of the external storage device at a controller from a host device, assigning the ID codes to the one or more storage areas to configure the external storage device, and transferring data between the controller and at least one of the one or more storage areas of the external storage device.
- Exemplary embodiments of the present general inventive concept may also include a method to transfer data between a controller and an external storage device, the method including receiving a command signal at the controller from a host device to identify one or more storage areas of the external storage device, identifying the one or more storage areas with the controller, assigning ID codes to the one or more storage areas to configure the external storage device, and transferring data between the controller and at least one of the one or more storage areas of the external storage device.
- The method may also include transmitting a second command signal from the controller to the external storage device to reassign the ID codes to configure the external storage device.
- Exemplary embodiments of the present general inventive concept may also include a method of initializing an external storage device communicatively coupled to a controller, the method including determining a position of a selection switch in the external storage device with the controller, and controlling the external storage device to operate in a first mode when it is determined that the selection switch is in a first position, and controlling the external storage device to operating in a second mode when it is determined that the selection switch is in a second position, wherein one or more storage areas of the external storage device in the first mode have a first maximum storage capacity, and the one or more storage areas of the external storage device in the second mode have a second maximum storage capacity that is greater than the first maximum storage capacity.
- Exemplary embodiments of the present general inventive concept may also include a method of configuring an external storage device communicatively coupled to a controller, the method including determining whether a flag set in a memory of the controller is set to a first value or a second value according to a received selection, operating the external storage device in a first mode when it is determined that the selection is the first value, and operating the external storage device in a second mode when it is determined that the selection is the second value, wherein one or more storage areas of the external storage device in the first mode have a first maximum storage capacity, and the one or more storage areas of the external storage device in the second mode have a second maximum storage capacity that is greater than the first maximum storage capacity.
- The above and/or other features and utilities of the present general inventive concept will become apparent and more readily appreciated from the following description of the exemplary embodiments, taken in conjunction with the accompanying drawings, in which:
-
FIG. 1 illustrates a block diagram a system including a controller and an external storage device according to exemplary embodiments of the present general inventive concept; -
FIG. 2 illustrates a flowchart of a method of data transfer between the controller and the external storage device illustrated inFIG. 1 according to exemplary embodiments of the present general inventive concept; -
FIG. 3A illustrates a specification table of a mass storage device according to exemplary embodiments of the present general inventive concept; -
FIG. 3B illustrates a table of eight storage devices and/or storage areas having different logical unit numbers (LUNs) according to exemplary embodiments of the present general inventive concept; -
FIG. 4 illustrates a total storage area of an external storage device having a plurality of storage areas, where each storage area has an identification code according to exemplary embodiments of the present general inventive concept; -
FIG. 5 illustrates a detailed view of a total storage area ofFIG. 4 that includes identification (ID) codes for each of the storage areas according to exemplary embodiments of the present general inventive concept; -
FIG. 6 illustrates a system block diagram according to exemplary embodiments of the present general inventive concept; -
FIG. 7 illustrates a flow chart of an exemplary method of ID assignment and data transfer in the system illustrated inFIG. 6 according to exemplary embodiments of the present general inventive concept; -
FIG. 8 illustrates the ID codes of the external storage device illustrated inFIG. 6 according to exemplary embodiments of the present general inventive concept; -
FIG. 9 illustrates different ID codes for different storage areas according to exemplary embodiments of the present general inventive concept; -
FIG. 10 illustrates a flowchart detailing a method of data transfer with the system illustrated inFIG. 6 according to exemplary embodiments of the present general inventive concept; -
FIG. 11 illustrates a block diagram of an external storage device according to exemplary embodiments of the present general inventive concept; -
FIG. 12A illustrates a flowchart of a method of initializing an external storage device according to exemplary embodiments of the present general inventive concept; -
FIG. 12B illustrates a display that can be displayed by a display unit communicatively coupled to at least the external storage device according to exemplary embodiments of the present general inventive concept; -
FIG. 13 illustrates a detailed view of the controller illustrated inFIG. 6 according to exemplary embodiments of the present general inventive concept; -
FIG. 14 illustrates a flowchart of a method of configuring an external storage device according to exemplary embodiments of the present general inventive concept; -
FIG. 15 illustrates a flowchart of a method of using a non-volatile memory flag information in the operation of an external memory device according to exemplary embodiments of the present general inventive concept; and -
FIGS. 16A-16C illustrate flowcharts of operations of finding a target address according to exemplary embodiments of the present general inventive concept. - The attached drawings for illustrating exemplary embodiments of the inventive concept are referred to in order to gain a sufficient understanding of the inventive concept, the merits thereof, and the objectives accomplished by the implementation of the inventive concept.
- Reference will now be made in detail to the embodiments of the present general inventive concept, examples of which are illustrated in the accompanying drawings, wherein like reference numerals refer to the like elements throughout. The embodiments are described below in order to explain the present general inventive concept by referring to the figures.
-
FIG. 1 Illustrates asystem 100 including a controller and an external storage device according to exemplary embodiments of the present general inventive concept.System 100 can include acontroller 11 0 and anexternal storage device 150. Thecontroller 110 can be a disk device, a processor, a field programmable gate array, a programmable logic device, a computer, a server, a personal digital assistant, a smartphone, and/or any other suitable device to carry out the exemplary embodiments of the present general inventive concept as disclosed herein. In exemplary embodiments of the present general inventive concept, thecontroller 110 may be part of a host device or may be communicatively coupled to a host device and/or display device. Theexternal storage 150 can be a hard disk drive, solid state drive, memory device, or any other suitable storage device to carry out the exemplary embodiments of the present general inventive concept. - According to exemplary embodiments of the present general inventive concept, the
controller 110 can identify tileexternal storage device 150 at least when theexternal storage device 150 is communicatively coupled (e.g., via a wired and/or wireless communication link) to thecontroller 110. For example, thecontroller 110 can identify theexternal storage device 150 and a plurality of storage areas of theexternal storage device 150 by at least one identification (“ID”) code. In exemplary embodiments of the present general inventive concept, data that includes one or more ID codes of the respective one or more storage areas of theexternal storage device 150 may be transmitted to thecontroller 110 via the wired and/or wireless communication link. Data that includes one or more ID codes of the respective one or more storage areas of theexternal storage 150 device may be stored in a memory or storage unit of thecontroller 110. -
FIG. 2 illustrates a method of data transfer between thecontroller 110 and theexternal storage device 150 illustrated inFIG. 1 according to exemplary embodiments of the present general inventive concept. Referring toFIGS. 1 and 2 , at operation S210, theexternal storage device 150 may be identified to have one or more storage areas by, for example, thecontroller 110 detecting an ID code. For example, thecontroller 110 may request one or more ID codes from theexternal storage device 150, and/or the external storage device may transmit the ID codes to the controller when the external storage device and thecontroller 110 are communicatively coupled together. At operation S220, theexternal storage device 150 and thecontroller 110 can communicate with one another, where the controller ′10 may read and/or write data to and/or from one or more storage areas (e.g., all storage areas) of theexternal storage device 150. That is, as thecontroller 110 has identified the ID codes for the one or more storage areas of the external storage device at operation S210, thecontroller 110 may read and/or write data to and/or from one or more storage areas (e.g., all storage areas) of theexternal storage device 150 using the ID codes. -
FIG. 3A illustrates a UFI specification table of a USB mass storage device. For example, theexternal storage device 150 as illustrated inFIG. 1 may be a storage device having a USB interface which provides a Logical Unit Number (LUN), and where a data field specifies the number of a logical unit that may process a command block. The Logical Unit Number (LUN) can be used by acontroller 110 to recognize and/or determine the full storage capacity of an external storage device. As illustrated inFIG. 3A , an exemplary USB mass storage class specification may include fields (e.g., byte fields 0-11, each having 8 bits (i.e., bits 0-7) for an Operation Code, Logical Unit Number (LUN), Logical Block Address (LBA), Transfer or Parameter List or Allocation Length, and one or more Reserved areas. In exemplary embodiments of the present general inventive concept, the Reserved areas of the byte fields illustrated inFIG. 3A may be accessed, for example, by entering a code, password, or any other suitable security measure in, for example, a graphical user Interface window (e.g., a pop-up window). The graphical user interface window can be displayed by a display device that is, for example, coupled to thecontroller 110 or a host that includes thecontroller 110 illustrated inFIG. 1 . -
FIG. 3B illustrates a table that includes an example eight devices (e.g., Device 0-Device 7) and/or storage areas having LUN numbers 0-7, where each device has an exemplary 2 TB capacity. Although eight devices and/or storage areas, and a 2 TB capacity of each device is illustrated inFIG. 3B , these are exemplary numbers and storage capacities, and the present general Inventive concept is not limited thereto. That is, thecontroller 110 illustrated inFIG. 1 may recognize one or more devices, each having a storage capacity. In exemplary embodiments of the present general inventive concept, a 3-bit LUN can be assigned to the eight devices (e.g., devices 0-7 having LUN number 0-7) in a 32 bit operating system of a host (e.g., computer or multi-media device, etc.). That is, the three bit LUN for each of the eight devices may be 000, 001, 010, 011, 100, 101, 110, and 111, respectively. -
FIG. 4 illustrates a total storage area of an external storage device having plurality of storage areas, where each storage area can have an identification code according to exemplary embodiments of the present general inventive concept.Total storage area 300 of an external storage device may include storage areas ST_1, ST_2, . . . , ST_n, with each storage area having an identification code (as referred throughout as an “ID code”) such as CODE_1, CODE_2, . . . , CODE_n. The ID code for each storage area may be different for each storage area, and/or a plurality of storage areas may have the same ID code. In exemplary embodiments of the present general inventive concept, each ID code can be implemented using, for example, the USB LUN at the USB-based external storage device. Alternatively, any suitable LUN may be used in order to carry out the exemplary embodiments of the present general inventive concept as detailed herein. -
FIG. 5 illustrates a detailed view of a total storage area ofFIG. 4 that includes ID codes for each of the storage areas according to exemplary embodiments of the present general inventive concept.FIG. 5 includes atotal storage area 400 having five separate storage areas, ST_1, ST_2, ST_3, ST_4, and ST_5, with each storage area having a different ID code. For example, as illustrated inFIG. 5 , storage area ST_1 can have theID code 000, storage area ST_2 can have theID code 001, storage area ST_3 can have theID code 010, storage area ST_4 can have theID code 011, and storage area ST_5 can have theID code 100. When thecontroller 110 illustrated inFIG. 1 communicates with the storage area ST_1 ofexternal storage device 150, the storage area ST_1 can be assigned the ID code of 000 by thecontroller 110. In exemplary embodiments of the present general inventive concept, a controller (e.g., controller 110) and/or disk device can communicate with one or more storage areas (e.g., ST_1, ST_2, . . . , ST_n) of a total storage area of an external storage device using an ID code (e.g., CODE_1, CODE_2, . . . , CODE_n; or, alternatively, 000, 001, 010, etc.) of each storage area. -
FIG. 6 illustrates a system block diagram according to exemplary embodiments of the present general inventive concept.System 500 may include acontroller 510, anexternal storage device 550, and ahost 580. Thecontroller 510 may be any suitable controller (e.g., processor, field programmable gate array, application specific integrated circuit, programmable logic unit, etc.) to carry out the exemplary embodiments of the present general inventive concept, and may be a disk device. Thecontroller 510 may be similar and/or the same as thecontroller 110 illustrated inFIG. 1 and described above. Thehost 580 may be a computer, a server, a tablet computer, a personal digital assistant, a smartphone, and/or a multi-media device, and/or any other suitable device to carry out the exemplary embodiments of the present general inventive concept as disclosed herein. Thehost 580 may include and/or may be coupled to a display device. Theexternal storage device 550 may be a hard disk drive, a solid state drive, a memory device, or any other suitable storage device to carry out the exemplary embodiments of the present general inventive concept. As illustrated inFIG. 6 , data may be transmitted between thehost 580 and thecontroller 510, and between thecontroller 510 and theexternal storage device 550. As illustrated inFIG. 6 and described below, a first control command (“CON1”) can be transmitted from thehost 580 to thecontroller 510, and a second control command (“CON2”), can be transmitted between thecontroller 510 and theexternal storage device 550. - The
external storage device 580 can have a plurality of storage areas, each of which may be identified by an ID code (e.g., CODE_1, CODE_2, . . . , CODE_n; or, alternatively, 000, 001, 010, etc. as illustrated inFIGS. 4 and 5 ). In exemplary embodiments of the present general inventive concept, the ID codes of the plurality of storage areas may all be different, and/or two or more of the ID codes of the plurality of storage areas may be the same. -
FIG. 7 illustrates a flow chart of an exemplary method of ID assignment and data transfer in thesystem 500 illustrated inFIG. 6 according to exemplary embodiments of the present general inventive concept. Referring toFIGS. 6 and 7 , theexternal storage device 550 can be connected to thecontroller 510, and thecontroller 510 can determine whether a first control command (hereinafter referred to as “CON1”) is received from thehost 580 at operation S610. If it is determined that thecontroller 510 receives the CON1 from thehost 580 at operation S610, thecontroller 510 can assign an ID code to each storage area of theexternal storage device 550 using the ID code information received with the CON1 from thehost 580. For example, thecontroller 510 can merge a plurality of storage areas into one storage area by assigning an ID code to each storage area of theexternal storage device 550 in response to CON1. That is, thecontroller 510 can merge the storage areas by assigning the same ID code to each of the storage areas. Thecontroller 510 can change the ID code of one or more storage areas of theexternal storage device 550 by transmitting a second control command (hereinafter referred to as “CON2”), which can include information such as the ID code to theexternal storage device 550. At operation S650, thecontroller 510 may determine whether one or more storage areas of theexternal storage device 550 are variable-type storage areas (e.g., where a variable-type storage area is a non-merged storage area; that is, the ID codes of a plurality of storage areas of theexternal storage device 550 are different from one another). When the storage areas have been identified with the ID codes in operations S640 and S650, data can be transferred between thehost 580 and theexternal storage device 550. That is, data can be transferred between thehost 580 and theexternal storage device 550 via thecontroller 510. - Still referring to
FIGS. 6 and 7 , if the CON1 is not received by thecontroller 510 from thehost 580 at operation S610, thecontroller 510 can identify at least one storage area of theexternal storage device 550 at operation S620. For example, thecontroller 510 may identify the at least one storage area by requesting data having the ID codes of one or more storage areas of theexternal storage device 550. Alternatively, thecontroller 510 may receive the ID codes for the one or more storage areas of theexternal storage device 550 without transmitting a request signal. When at least one storage area of theexternal storage device 510 is identified by thecontroller 510, data can be transferred between thehost 580 and the external storage device via thecontroller 510. As described above, thecontroller 510 can also change the ID code of one or more storage areas of theexternal storage device 550 by transmitting a CON2 command to theexternal storage device 550. -
FIG. 8 illustrates the ID codes of the external storage device illustrated inFIG. 6 according to exemplary embodiments of the present general inventive concept. As illustrated inFIG. 8 , anexternal storage device 700 can have storage areas ST_1, ST_2, ST_3, ST_4, and ST_5, where each of the storage areas has the same ID code value of 000. That is, as all of the ID codes are the same for the storage areas (e.g., storage areas ST_1, ST_2, ST_3, ST_4, and ST_5) ofexternal storage device 700, theexternal storage device 700 can be used as a single storage area (e.g., the storage areas of the external storage device have been merged). -
FIG. 9 illustrates different ID codes for different storage areas according to exemplary embodiments of the present general inventive concept.FIG. 9 illustrates an external storage device 900 that can include storage areas ST_1, ST_2, ST_3, ST_4, and ST_5, where a plurality of the storage areas have different ID codes from one another. As illustrated inFIG. 9 , the storage areas ST_1 and ST_2 can haveID code 000, storage area ST_3 can haveID code 010, and storage areas ST_4 and ST_5 can haveID code 011. That is, the storage areas ST_1 and ST_2 can have the same ID codes as one another, the storage areas ST_4 and ST_5 can have the same ID codes as one another (e.g., but have different ID codes than storage areas ST_1 and ST_2), and storage area ST_3 can have a different ID code from storage areas ST_1, ST_2, ST_4, and ST_5. Theexternal storage device 800 can have a plurality of storage areas, where the configuration of theexternal storage device 800 can be set and/or changed, for example, when a controller (e.g.,controller 510 illustrated inFIG. 6 ) receives a CON1 (e.g., from the host 580) which includes information for the ID codes of the storage areas. The controller (e.g. controller 510 illustrated inFIG. 6 ) can receive the configuration information, including the ID codes for the storage areas of theexternal storage device 800. That is, the controller can receive the CON1 with the ID code information, and update the configuration of the external storage device from the single storage area configuration (e.g., storage areas ST_1 to ST_5 have the same ID code) ofexternal storage device 700 ofFIG. 8 to the configuration of theexternal storage device 800 illustrated inFIG. 9 (e.g., where storage area ST_1 and ST_2 have thesame ID code 000, storage area ST_3 hasID code 010, and storage areas ST_4 and ST_5 have ID codes 011) by transmitting, for example, the CON2 command as described above in connection withFIGS. 6 and 7 . -
FIG. 10 illustrates a flowchart detailing a method of data transfer with the system illustrated inFIG. 6 according to exemplary embodiments of the present general inventive concept. Referring toFIGS. 6 and 10 , thecontroller 510 can receive a first control command CON1 from thehost 580 at operation S910. Thecontroller 510 can identify the configuration of theexternal storage device 550 from the received CON1 at operation S920. That is, with the received CON1, thecontroller 510 can determine whether theexternal storage device 550 is a single storage area (e.g., where the ID codes of the storage areas of the external storage device are the same, as illustrated inFIG. 8 ) or has a plurality of storage areas (e.g., where the ID codes of the storage areas of external storage device may be different from one another, as illustrated inFIG. 9 ) at operation S920. In exemplary embodiments of the present general inventive concept, the ID codes of the one or more storage areas of the external storage device (e.g.,external storage device 550 illustrated inFIG. 6 ) can be provided with the first control command (CON1). At operation S930, data may be transferred between thecontroller 510 and the one or more storage areas of theexternal storage device 550, and/or between thehost 580 and theexternal storage device 550 via thecontroller 510. -
FIG. 11 illustrates a block diagram of an external storage device according to exemplary embodiments of the present general inventive concept. Referring toFIG. 11 ,system 1000 may include ahost 1002, a controller i005, aswitching apparatus 1010, and anexternal storage device 1050. Thehost 1002, thecontroller 1005, andexternal storage device 1050 illustrated InFIG. 11 may be the same as and/or similar to thehost 580,controller 510, andexternal storage device 550, respectively, that are illustrated inFIG. 6 and described above. Theswitching apparatus 1010 can respond from the second control command CON2 (as described above at least in connection withFIG. 6 ) that can be received from thecontroller 1005, and theswitching device 1010 can identify the one or more storage areas (e.g., storage areas ST_1, ST_2, . . . , ST_n illustrated inFIG. 11 ) as a merged single storage (e.g., where ID codes CODE_1, CODE_2, . . . , CODE_n are the same) or a plurality of storage areas (e.g., where at least two of the ID codes of the storage areas of theexternal storage device 1050 are different from one another) using at least the CON2. As illustrated inFIG. 11 , thecontroller 1005 can receive a CON1 command from thehost 1002 to configure, store, and/or retrieve data from one or more of the storage areas of theexternal storage device 1050, and the CON2 command can be transmitted by thecontroller 1005 to theswitching apparatus 1010 to determine the ID codes of the one or more storage areas. That is, in the exemplary embodiments of the present general inventive concept illustrated inFIG. 11 , the CON1 may not include the ID codes of the storage areas of theexternal storage device 1050, and the CON2 command may be transmitted to theswitching apparatus 1010 from thecontroller 1005 so that thecontroller 1005 can identify the ID codes of the storage areas. - In exemplary embodiments of the present general inventive concept, the
switching apparatus 1010 ofFIG. 11 can include a plurality of switches, where at least one switch and/or all switches can respond to the CON2 to determine and/or configure at least one ID code (e.g., CODE_1, CODE_2, . . . , CODE_n) of theexternal storage device 1050. One or more switches can determine and/or configure an ID code (e.g., CODE_1, CODE_2, . . . , CODE_n) of one or more storage areas (e.g., storage areas ST_1, ST_2, . . . , ST_n) of theexternal storage device 1050 by being in an ON or OFF position. That is, the CON2 can control one or more of the switches in theswitching apparatus 1010 to be in an ON or OFF position, so as to configure at least one of the ID code (e.g., CODE_1, CODE_2, . . . , CODE_n) of one or more storage areas (e.g., storage areas ST_1, ST_2, . . . , ST_n) of theexternal storage device 1050. Thecontroller 1005 may transmit the CON2 command to determine the ON or OFF position of one or more of the switches of theswitching apparatus 1010 to determine the ID codes of the storage areas of theexternal storage device 1050. -
FIG. 12A illustrates a flowchart of a method of initializing an external storage device according to exemplary embodiments of the present general inventive concept. At operation S1102, it may be determined whether a switch (e.g., a select switch) in the external storage device is in an OFF position. If it is determined at operation S1102 that the switch is not in an OFF position (e.g., that the switch is in an ON position), the external storage device can operate in an enhanced mode operation at operation S1104. In exemplary embodiments of the present general inventive concept, the enhanced mode operation can include a 32-bit mode, where each storage area (e.g., storage areas ST_1, ST_2, . . . , ST_n) of the external storage device may be less than or equal to 2 TB of storage capacity. If it is determined at operation S1102 that the switch is in an OFF position, the external storage device can operate in a legacy mode operation at operation S1106. In exemplary embodiments of the present general inventive concept, the legacy mode operation can include a 64-bit mode, where each storage area (e.g., storage areas ST_1, ST_2, . . . , ST_n) of the external storage device may be less than or equal to 4 TB of storage capacity. That is, in exemplary embodiments of the present general inventive concept, when the external storage device is powered on, if the select switch of the external storage device is in an OFF position, the external storage device operates in a 64 bit mode, but if the switch is not in an OFF position, the external storage device may operate in an enhanced mode (e.g., a 32 bit mode, where the maximum recognized storage area of the external storage device can be 2 TB). The above-described 32-bit and 64-bit modes, and storage capacities of 2 TB and 4 T8 are merely exemplary, and other bit modes and corresponding storage sizes may be used. -
FIG. 12B illustrates adisplay 1150 that can be displayed by a display unit communicatively coupled to an external storage device, host device, and/or controller (e.g., the display device may be coupled to a host device, which is communicatively coupled to the external storage device) according to exemplary embodiments of the present general inventive concept. Thedisplay 1150 may include a selectable enablebutton 1152, a selectable disablebutton 1154, and aselectable restart button 1156. The host and/or the external storage device may receive a selection of theenable button 1152, the disablebutton 1154, and therestart button 1156. When a selection of theenable button 1152 is received, the external storage device can operate in an enhanced mode operation. In exemplary embodiments of the present general inventive concept, the enhanced mode operation can include a 32-bit mode, where each storage area (e.g., storage areas ST_1, ST_2, . . . , ST_n) of the external storage device may be less than or equal to 2 TB of storage capacity. When a selection of the disablebutton 1154 is received, the external storage device can operate in a legacy mode operation. In exemplary embodiments of the present general inventive concept, the legacy mode operation can include a 64-bit mode, where each storage area (e.g., storage areas ST_1, ST_2, . . . , ST_n) of the external storage device may be less than or equal to 4 TB of storage capacity. When a selection of therestart button 1156 is received, the external storage device is operated in a selected mode condition (e.g., an enhanced mode, a legacy mode, etc.). Again, the above-described 32-bit and 64-bit modes, and storage capacities of 2 TB and 4 TB are merely exemplary, and other bit modes and corresponding storage sizes may be used. -
FIG. 13 illustrates a detailed view of thecontroller 510 illustrated inFIG. 6 according to exemplary embodiments of the present general inventive concept. As illustrated inFIG. 11 , thecontroller 510 may include acontrol unit 1210 and amemory 1250. In exemplary embodiments of the present general inventive concept, thememory 1250 can be a non-volatile memory. Thecontrol unit 1210 can store the first control command CON1 in thememory 1250 when the CON1 is received from thehost 580. The CON1 can include, for example, ID code information. That is, when thesystem 500 restarts (e.g., when receiving a restart and/or power on command), the external storage ID code information call be used to by thecontroller 510 to identify the storage areas of theexternal storage device 550, as the ID code information can be stored in thememory 1250. In exemplary embodiments of the present general inventive concept, when a new first control command CON1 is received by thecontroller 510 which includes new ID code information, the code information in thememory 1250 can be erased and/or replaced with the newly-received code information. Thecontroller 510 can identify a merged storage area (e.g., where the ID codes for the storage areas are the same, as illustrated inFIG. 8 ) or each independent storage area (e.g., where at least two ID codes of the storage areas can be different, as illustrated inFIG. 9 ) using the control command CON1. In exemplary embodiments of the present general inventive concept, when a new control command CON1 is received by thecontroller 510, a restart signal may also be received by thecontroller 510 from thehost 580. When the restart signal is received by thecontroller 510, thecontroller 510 can control the operation of theexternal storage device 550 so as to communicatively reconnect it to thehost 580. Thecontroller 510 can identify at least one storage area of theexternal storage device 550 by using the information stored in thememory 1250 and/or the information received from thehost 580 via the CON1. -
FIG. 14 illustrates a flowchart of a method of configuring an external storage device according to exemplary embodiments of the present general inventive concept. Referring toFIGS. 12B and 14 , at operation S1402 it is determined whether theenable button 1152 has been selected, and, if no such selection has been received, it is determined at operation S1404 whether the disablebutton 1154 has been selected. If a selection of the disablebutton 1154 has not been received at operations S1404 and S1406, no operation is performed by the external storage device. When theenable button 1152 is determined to be selected at operation S1402, a non-volatile memory flag can be set to a “1” value at operation S1408, and the external storage device may operate in the enhanced mode (e.g., 32-bit mode) as described above. When the disablebutton 1154 is determined to be selected at operation S1404, a nonvolatile memory flag can be set to a “0” value, and the external storage device may operate in the legacy mode (e.g., 64-bit mode) as described above. At operation S1412, a selection of therestart button 1156 can restart the system and operate the external storage device according to the newly set configuration indicated by the non-volatile memory flag setting. -
FIG. 15 illustrates a flowchart of a method of using a non-volatile memory flag information in the operation of an external memory device according to exemplary embodiments of the present general inventive concept. At operation S1502, a non-volatile memory flag value can be read from a memory location in the external memory device and/or a memory of a controller that is communicatively coupled to the external storage device. At operation S1504, it is determined whether the non-volatile memory flag value is “1.” When it is determined that the non-volatile memory flag value is not “1” (e.g., the value is “0”) at operation S1504, the external storage device can operate in a legacy operation mode at operation S1506 as described in detail above. When it is determined that the non-volatile memory flag value is “1” at operation S1504, the external storage device can operate in an enhanced operation mode at operation S1508 as described in detail above. -
FIGS. 16A-16C illustrate flowcharts of operations of finding a target address according to exemplary embodiments of the present general inventive concept. An external storage device may have eight storage areas, identified asLUN 0 toLUN 7. In exemplary embodiments of the present general inventive concept, LUN0 can have the start LBA (logical block address) of the entire storage capacity of the external storage device, so that the data addresses for the external storage device can start from the LUN0 storage area. Referring toFIG. 16A , when a host device that is communicatively coupled to the external storage device requests data from the LUN0 storage area, at operation S1602, it is determined whether the LUN is 0 or not. If it is determined that the LUN is 0, a command can be sent from the host to the external storage device via a USB interface at operation S1604. The command can include, for example, an operation function, at least one address, a read size, or any other suitable information to carry out the exemplary embodiments of the present general inventive concept as described herein. As illustrated in operation S1604 ofFIG. 16A , the operation function can be an operation code 0x28, which is a USB read command, the LBA and/or address can be 0x10000 (e.g., the target address to start the reading of data), and the block count and/or read size can be 128 blocks (e.g., where 128 blocks can be a predetermined read block size). At operation S1606, a USB controller can convert the received command from the host to a SATA (Serial Advanced Technology Attachment) and/or ATA (Advanced Technology Attachment) command. For example, as illustrated inFIG. 16A at operation S1606, the converted operation code is 0x25 for an ATA read command (e.g., the USB operation code 0x28 read command of operation S1604 can be converted to the 0x25 ATA read command), and the LBA and block count can be the same as at operation S1604 (e.g., the LBA can be 0x10000, and the block count can be 128). When the received command is converted at operation S1606, a block count (e.g., a block count of 128) of data can be read at the LBA (e.g., 0x10000). - Referring to
FIG. 16B , when a host device that is communicatively coupled to the external storage device requests data from the stora˜1e area, at operation S1608, it is determined whether the LUN is 1 or not. If it is determined that the LUN is 1, a command can be sent from the host to the external storage device via a USB interface at operation S1610. The command can include, for example, an operation function, at least one address, a read size, or any other suitable information to carry out the exemplary embodiments of the present general inventive concept as described herein. As illustrated in operation S1610 ofFIG. 16B , the operation function can be an operation code 0x28, which is a USB read command, the LBA and/or address can be 0x10000, and the block count and/or read size can be 128 blocks. At operation S1612, a USB controller can convert the received command from the host to a SATA and/or ATA command. For example, as illustrated inFIG. 16B at operation S1610, the converted operation code is 0x25 for an ATA read command (e.g., the USB operation code 0x28 read command of operation S1610 can be converted to the 0x25 ATA read command), but the LBA and block count can be calculated to have a target address of 0x10000+0xFFFFFFFF. That is, the LBA of 0x10000 at operation S1612 can be modified by 0xFFFFFFFF to calculate a target address so as to read at the beginning of the storage area LUN1. When the received command is converted at operation S1612, a block count (e.g., a block count of 128) of data can be read at the LBA (e.g., 0x10000+0xFFFFFFFF). - Referring to
FIG. 16C , when a host device that is communicatively coupled to the external storage device requests data from the storage area, at operation S1614, it is determined whether the LUN is 7 or not. If it is determined that the LUN is 7, a command can be sent from the host to the external storage device via a USB interface at operation S1616. The command can include, for example, an operation function, at least one address, a read size, or any other suitable information to carry out the exemplary embodiments of the present general inventive concept as described herein. As illustrated in operation SI616 ofFIG. 16C , the operation function can be an operation code 0x28, which is a USB read command, the LBA and/or address can be 0x10000, and the block count and/or read size can be 128 blocks. At operation S1618, a USB controller can convert the received command from the host to a SATA and/or ATA command. For example, as illustrated inFIG. 16C at operation S1618, the converted operation code is 0x25 for an ATA read command (e.g., the USB operation code 0x28 read command of operation S1616 can be converted to the 0x25 ATA read command), but the LBA and block count can be calculated to have a target address of 0x10000+0xFFFFFFFF×7. That is, the LBA at operation S1616 can be modified (e.g., by adding 0xFFFFFFFF×7) so as to calculate a target address to read at the beginning of the storage area LUN7. When the received command is converted at operation S1618, a block count (e.g., a block count of 128) of data can be read at the calculated target LBA (e.g., 0x10000+0xFFFFFFFF×7). - Although
FIGS. 16A-16C relate to the conversion of USB commands to ATA and/or SATA commands, any suitable interface command can be converted to another interface command so as to carry out the exemplary embodiments of the present general inventive concept as disclosed herein. - The present general inventive concept can also be embodied as computer-readable codes on a computer-readable medium. The computer-readable medium can include a computer-readable recording medium and a computer-readable transmission medium. The computer-readable recording medium is any data storage device that can store data as a program which can be thereafter read by a computer system. Examples of the computer-readable recording medium include read-only memory (ROM), random-access memory (RAM), CD-ROMs, magnetic tapes, floppy disks, and optical data storage devices. The computer-readable recording medium can also be distributed over network coupled computer systems so that the computer-readable code is stored and executed in a distributed fashion. The computer-readable transmission medium can be transmitted through carrier waves or signals (e.g., wired or wireless data transmission through the Internet). Also, functional programs, codes, and code segments to accomplish the present general inventive concept can be easily construed by programmers skilled in the art to which the present general inventive concept pertains.
- Although several embodiments of the present general inventive concept have been shown and described, it would be appreciated by those skilled in the art that changes may be made in these embodiments without departing from the principles and spirit of the general inventive concept, the scope of which is defined in the claims and their equivalents.
Claims (20)
1. A disk device, comprising:
a controller configured to transmit first commands in response to second commands from a host, the first commands to assign at least one identification (ID) code to at least one of a plurality of storage areas in a storage device, the second commands including the at least one ID code; wherein
the controller transfers data between the host and the storage device using the ID codes.
2. The disk device of claim 1 , wherein:
the controller is configured to request ID codes already assigned to storage areas of the storage device.
3. The disk device of claim 1 , wherein:
the controller is configured to receive ID codes already assigned to storage areas transmitted from the storage device.
4. The disk device of claim 1 , wherein:
the controller includes a controller memory to store ID codes received in second commands from the host.
5. The disk device of claim 4 , wherein:
the controller memory comprises a non-volatile memory.
6. The disk device of claim 1 , wherein:
the controller is configured to translate the commands from the host from one format into a second format for the storage device.
7. The disk device of claim 6 , wherein:
the first format is a Universal Serial Bus (USB) format; and
the second format is selected from an ATA format, including SATA format.
8. A disk device, comprising:
a plurality of storage areas, each storage area having a corresponding programmable identification (ID) code; and
a controller configured to program the ID codes for the storage areas in response to first commands from a host, and transfer data between the host and the storage device using the ID codes.
9. The disk device of claim 8 , wherein:
at least two of the storage areas are formed in same storage device.
10. The disk device of claim 9 , wherein:
the storage device is selected from: a hard disk driver and a solid state drive.
11. The disk device of claim 8 , wherein:
the plurality of storage areas comprise at least one storage device; and
the controller is configured to determine if the storage device includes a single storage area or plural storage areas in response to a first command from the host.
12. The disk device of claim 8 , wherein:
the plurality of storage areas comprise at least one storage device; wherein
the storage device is initialized into one of at least two modes of operation in response to a mode indication, the storage areas of the storage device having different maximum sizes in the different modes of operation.
13. The disk device of claim 12 , wherein:
the mode indication is selected from: a state of a switch in the storage device; a selection input from the controller; a selection input from the host; and a value stored in a non-volatile store.
14. The disk device of claim 8 , wherein:
the controller includes a controller memory configured to store ID codes.
15. The disk device of claim 14 , wherein:
the controller is further configured to re-connect to the host in response to receiving a restart signal with a first command, and identify storage areas using the ID codes stored in the controller memory.
16. A method, comprising:
in response to a first command from a host, generating a second command for application to at least one storage device to assign at least one identification (ID) code to any of a plurality of storage areas in the at least one storage device.
17. The method of claim 16 , wherein:
assigning the at least one ID code includes assigning a same ID code to multiple storage areas to merge the multiple storage areas into one larger storage area.
18. The method of claim 16 , wherein:
assigning the at least one ID code includes assigning a different ID code to one of multiple storage areas having the same ID code, to split a larger storage area into smaller storage areas with different ID codes.
19. The method of claim 16 , further including:
transferring data between the at least one storage device and the host using the ID codes.
20. The method of claim 16 , further including:
translating the commands from the host from one format into a second format for application to the at least one storage device.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/591,355 US20120317313A1 (en) | 2010-02-02 | 2012-08-22 | Disk device assigned id codes for storage areas of a storage device |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100009644A KR101833464B1 (en) | 2010-02-02 | 2010-02-02 | Method for transferring data between disk device and external storage device and system using the method |
KR2010-9644 | 2010-02-02 | ||
US13/019,424 US8266328B2 (en) | 2010-02-02 | 2011-02-02 | Disk device assigned ID codes for storage areas of external storage device |
US13/591,355 US20120317313A1 (en) | 2010-02-02 | 2012-08-22 | Disk device assigned id codes for storage areas of a storage device |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/019,424 Continuation US8266328B2 (en) | 2010-02-02 | 2011-02-02 | Disk device assigned ID codes for storage areas of external storage device |
Publications (1)
Publication Number | Publication Date |
---|---|
US20120317313A1 true US20120317313A1 (en) | 2012-12-13 |
Family
ID=44342613
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/019,424 Active US8266328B2 (en) | 2010-02-02 | 2011-02-02 | Disk device assigned ID codes for storage areas of external storage device |
US13/591,355 Abandoned US20120317313A1 (en) | 2010-02-02 | 2012-08-22 | Disk device assigned id codes for storage areas of a storage device |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/019,424 Active US8266328B2 (en) | 2010-02-02 | 2011-02-02 | Disk device assigned ID codes for storage areas of external storage device |
Country Status (2)
Country | Link |
---|---|
US (2) | US8266328B2 (en) |
KR (1) | KR101833464B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103593310A (en) * | 2013-11-19 | 2014-02-19 | 乐视致新电子科技(天津)有限公司 | Method and device for identifying external storage equipment |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102009032821A1 (en) * | 2008-10-28 | 2010-04-29 | Giesecke & Devrient Gmbh | Storage medium with different access options |
EP2737428A4 (en) * | 2011-07-27 | 2015-05-27 | Lsi Corp | Techniques for secure storage hijacking protection |
US10198061B2 (en) * | 2015-09-01 | 2019-02-05 | Toshiba Memory Corporation | Storage and storage system |
US10235297B2 (en) | 2015-11-04 | 2019-03-19 | International Business Machines Corporation | Mechanism for creating friendly transactions with credentials |
US10270773B2 (en) * | 2015-11-04 | 2019-04-23 | International Business Machines Corporation | Mechanism for creating friendly transactions with credentials |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6115772A (en) * | 1998-09-18 | 2000-09-05 | International Business Machines, Inc. | System and method for host expansion and connection adaptability for a SCSI storage array |
US20060031636A1 (en) * | 2004-08-04 | 2006-02-09 | Yoichi Mizuno | Method of managing storage system to be managed by multiple managers |
US7111138B2 (en) * | 2003-09-16 | 2006-09-19 | Hitachi, Ltd. | Storage system and storage control device |
US20070245116A1 (en) * | 2006-04-12 | 2007-10-18 | Masayuki Yamamoto | Storage area dynamic assignment method |
US7293152B1 (en) * | 2003-04-23 | 2007-11-06 | Network Appliance, Inc. | Consistent logical naming of initiator groups |
US20070300013A1 (en) * | 2006-06-21 | 2007-12-27 | Manabu Kitamura | Storage system having transaction monitoring capability |
US7315960B2 (en) * | 2002-05-31 | 2008-01-01 | Hitachi, Ltd. | Storage area network system |
US7428742B2 (en) * | 2004-09-09 | 2008-09-23 | Victor Chuan-Chen Wu | Mass storage cradle device |
US20100011129A1 (en) * | 2008-07-14 | 2010-01-14 | Fujitsu Limited | Storage device and control unit |
US20100306465A1 (en) * | 2009-05-22 | 2010-12-02 | Hitachi, Ltd. | Storage system comprising plurality of processor units |
US20110271019A1 (en) * | 2010-04-28 | 2011-11-03 | Buffalo Inc. | Peripheral device and method of connecting peripheral device with host device |
US20120042178A1 (en) * | 2010-08-10 | 2012-02-16 | Buffalo Inc. | Peripheral Device |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4843541A (en) * | 1987-07-29 | 1989-06-27 | International Business Machines Corporation | Logical resource partitioning of a data processing system |
JP2868141B2 (en) * | 1992-03-16 | 1999-03-10 | 株式会社日立製作所 | Disk array device |
US6754720B1 (en) * | 2001-03-02 | 2004-06-22 | Adaptec, Inc. | Automatic addressing of expanders in I/O subsystem |
JP4080227B2 (en) * | 2002-03-28 | 2008-04-23 | 株式会社日立製作所 | Data verification method and disk array device |
JP4748950B2 (en) * | 2004-05-25 | 2011-08-17 | 株式会社日立製作所 | Storage area management method and system |
CN100580642C (en) * | 2006-02-28 | 2010-01-13 | 国际商业机器公司 | Universal serial bus storage device and access control method thereof |
JP4857066B2 (en) * | 2006-10-03 | 2012-01-18 | 株式会社日立製作所 | Data processing method and storage demand system in storage on demand system |
US7949802B2 (en) * | 2006-12-08 | 2011-05-24 | Nokia Corporation | Enhanced communication via a serial interface |
KR101622765B1 (en) * | 2009-09-28 | 2016-05-23 | 삼성전자 주식회사 | Electronic device and control method of data thereof |
-
2010
- 2010-02-02 KR KR1020100009644A patent/KR101833464B1/en active IP Right Grant
-
2011
- 2011-02-02 US US13/019,424 patent/US8266328B2/en active Active
-
2012
- 2012-08-22 US US13/591,355 patent/US20120317313A1/en not_active Abandoned
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6115772A (en) * | 1998-09-18 | 2000-09-05 | International Business Machines, Inc. | System and method for host expansion and connection adaptability for a SCSI storage array |
US7315960B2 (en) * | 2002-05-31 | 2008-01-01 | Hitachi, Ltd. | Storage area network system |
US7293152B1 (en) * | 2003-04-23 | 2007-11-06 | Network Appliance, Inc. | Consistent logical naming of initiator groups |
US7111138B2 (en) * | 2003-09-16 | 2006-09-19 | Hitachi, Ltd. | Storage system and storage control device |
US20060031636A1 (en) * | 2004-08-04 | 2006-02-09 | Yoichi Mizuno | Method of managing storage system to be managed by multiple managers |
US7428742B2 (en) * | 2004-09-09 | 2008-09-23 | Victor Chuan-Chen Wu | Mass storage cradle device |
US20070245116A1 (en) * | 2006-04-12 | 2007-10-18 | Masayuki Yamamoto | Storage area dynamic assignment method |
US20070300013A1 (en) * | 2006-06-21 | 2007-12-27 | Manabu Kitamura | Storage system having transaction monitoring capability |
US20100011129A1 (en) * | 2008-07-14 | 2010-01-14 | Fujitsu Limited | Storage device and control unit |
US20100306465A1 (en) * | 2009-05-22 | 2010-12-02 | Hitachi, Ltd. | Storage system comprising plurality of processor units |
US20110271019A1 (en) * | 2010-04-28 | 2011-11-03 | Buffalo Inc. | Peripheral device and method of connecting peripheral device with host device |
US20120042178A1 (en) * | 2010-08-10 | 2012-02-16 | Buffalo Inc. | Peripheral Device |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103593310A (en) * | 2013-11-19 | 2014-02-19 | 乐视致新电子科技(天津)有限公司 | Method and device for identifying external storage equipment |
Also Published As
Publication number | Publication date |
---|---|
US20110191501A1 (en) | 2011-08-04 |
US8266328B2 (en) | 2012-09-11 |
KR101833464B1 (en) | 2018-02-28 |
KR20110090067A (en) | 2011-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20120317313A1 (en) | Disk device assigned id codes for storage areas of a storage device | |
US20060174049A1 (en) | USB to SATA bridge system | |
US8255661B2 (en) | Data storage system comprising a mapping bridge for aligning host block size with physical block size of a data storage device | |
EP2396728B1 (en) | System and method of host request mapping | |
US7970974B2 (en) | Method and system for adding or removing a logical unit of a USB mass storage device | |
KR20030004022A (en) | Multifunction semiconductor strorage device | |
US20030163628A1 (en) | Method and related apparatus for controlling transmission interface between an external device and a computer system | |
US20050204092A1 (en) | Memory card device, and memory card control method for controlling the device | |
US9164703B2 (en) | Solid state drive interface controller and method selectively activating and deactivating interfaces and allocating storage capacity to the interfaces | |
US20060253673A1 (en) | Apparatus and method for permitting access to storage means | |
KR20170043993A (en) | Electronic system with interface control mechanism and method of operation thereof | |
KR102192198B1 (en) | Electronic device and communication method | |
US20180039590A1 (en) | System with solid state drive and control method thereof | |
US20100180080A1 (en) | External storage device having a self-contained security function | |
US7925819B2 (en) | Non-volatile memory storage system and method for reading an expansion read only memory image thereof | |
US20060168358A1 (en) | Storage control system | |
US20130275652A1 (en) | Methods and structure for transferring additional parameters through a communication interface with limited parameter passing features | |
US20210011869A1 (en) | Semiconductor devices including command priority policy management and related systems | |
JP5314344B2 (en) | External storage device, startup program switching method, and startup program switching program | |
US11237954B2 (en) | Controller and data storage system having the same | |
US20050198425A1 (en) | Combined optical storage and flash card reader using single ide or sata port and method thereof | |
US20110185122A1 (en) | Storage system and method of processing data using the same | |
US20050188145A1 (en) | Method and apparatus for handling data transfers | |
US20030023807A1 (en) | Disk drive device and control device thereof | |
US8209452B2 (en) | External device having a virtual storage device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |