U.S. patent application number 13/591355 was filed with the patent office on 2012-12-13 for disk device assigned id codes for storage areas of a storage device.
This patent application is currently assigned to SEAGATE TECHNNOLOGY INTERNATIONAL. Invention is credited to Keung-youn Cho, Jun-ho Jang.
Application Number | 20120317313 13/591355 |
Document ID | / |
Family ID | 44342613 |
Filed Date | 2012-12-13 |
United States Patent
Application |
20120317313 |
Kind Code |
A1 |
Jang; Jun-ho ; et
al. |
December 13, 2012 |
DISK DEVICE ASSIGNED ID CODES FOR STORAGE AREAS OF A STORAGE
DEVICE
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.
Inventors: |
Jang; Jun-ho; (Suwon-si,
KR) ; Cho; Keung-youn; (Yongin-si, KR) |
Assignee: |
SEAGATE TECHNNOLOGY
INTERNATIONAL
Grand Cayman
KY
|
Family ID: |
44342613 |
Appl. No.: |
13/591355 |
Filed: |
August 22, 2012 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
13019424 |
Feb 2, 2011 |
8266328 |
|
|
13591355 |
|
|
|
|
Current U.S.
Class: |
710/5 |
Current CPC
Class: |
G06F 3/00 20130101 |
Class at
Publication: |
710/5 |
International
Class: |
G06F 3/00 20060101
G06F003/00 |
Foreign Application Data
Date |
Code |
Application Number |
Feb 2, 2010 |
KR |
2010-9644 |
Claims
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.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] 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. .sctn.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.
BACKGROUND
[0002] 1. Field of the Invention
[0003] 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.
[0004] 2. Description of the Related Art
[0005] 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.
SUMMARY
[0006] 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.
[0007] 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.
[0008] 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.
[0009] The system may also include where the control command
includes ID code information to be assigned to each storage area of
the storage device.
[0010] 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.
[0011] The system may also include where the host includes a 32 bit
operating system.
[0012] 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.
[0013] The system may also include where all of the storage areas
are assigned a single ID code.
[0014] 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.
[0015] 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.
[0016] The system may also include where the switching system has a
user interface to implement switching via buttons.
[0017] 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.
[0018] 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.
[0019] 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.
[0020] The method may also include where the command signal
includes ID code information of the ID codes.
[0021] 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.
[0022] The method may also include where the ID codes are generated
by using a USB LUN configuration at the external storage
device.
[0023] 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.
[0024] 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.
[0025] 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.
[0026] The device may also include where the switching is performed
based on the type of operating system of the host device.
[0027] 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.
[0028] 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.
[0029] 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.
[0030] 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.
[0031] 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.
[0032] 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.
BRIEF DESCRIPTION OF THE DRAWINGS
[0033] 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:
[0034] 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;
[0035] 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;
[0036] FIG. 3A illustrates a specification table of a mass storage
device according to exemplary embodiments of the present general
inventive concept;
[0037] 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;
[0038] 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;
[0039] 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;
[0040] FIG. 6 illustrates a system block diagram according to
exemplary embodiments of the present general inventive concept;
[0041] 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;
[0042] 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;
[0043] FIG. 9 illustrates different ID codes for different storage
areas according to exemplary embodiments of the present general
inventive concept;
[0044] 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;
[0045] FIG. 11 illustrates a block diagram of an external storage
device according to exemplary embodiments of the present general
inventive concept;
[0046] FIG. 12A illustrates a flowchart of a method of initializing
an external storage device according to exemplary embodiments of
the present general inventive concept;
[0047] 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;
[0048] FIG. 13 illustrates a detailed view of the controller
illustrated in FIG. 6 according to exemplary embodiments of the
present general inventive concept;
[0049] FIG. 14 illustrates a flowchart of a method of configuring
an external storage device according to exemplary embodiments of
the present general inventive concept;
[0050] 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
[0051] FIGS. 16A-16C illustrate flowcharts of operations of finding
a target address according to exemplary embodiments of the present
general inventive concept.
DETAILED DESCRIPTION OF THE EMBODIMENTS
[0052] 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.
[0053] 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.
[0054] 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. In exemplary
embodiments of the present general inventive concept, 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.
[0055] According to 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. For example, 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. 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 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.
[0056] 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. Referring to FIGS. 1 and 2, at operation S210,
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. For example, 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. At operation S220, 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 S210, 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.
[0057] FIG. 3A illustrates a UFI specification table of a USB mass
storage device. For example, 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. 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. As illustrated in FIG. 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 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.
[0058] 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 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. 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.
[0059] 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.
[0060] 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. For example, as
illustrated in FIG. 5, 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,
and storage area ST_5 can have the ID code 100. When the controller
110 illustrated in FIG. 1 communicates with the storage area ST_1
of external storage device 150, the storage area ST_1 can be
assigned the ID code of 000 by the controller 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.
[0061] 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.
As illustrated in FIG. 6, data may be transmitted between the host
580 and the controller 510, and between the controller 510 and the
external storage device 550. As illustrated in FIG. 6 and described
below, a first control command ("CON1") can be transmitted from the
host 580 to the controller 510, and a second control command
("CON2"), can be transmitted between the controller 510 and the
external storage device 550.
[0062] 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). 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.
[0063] 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. Referring to FIGS. 6 and 7, 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 "CON1") is received from the host 580
at operation S610. If it is determined that the controller 510
receives the CON1 from the host 580 at operation S610, 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 CON1 from the host 580. For example, 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 CON1. 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
"CON2"), which can include information such as the ID code to the
external storage device 550. At operation S650, 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). When the
storage areas have been identified with the ID codes in operations
S640 and S650, 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.
[0064] Still referring to FIGS. 6 and 7, if the CON1 is not
received by the controller 510 from the host 580 at operation S610,
the controller 510 can identify at least one storage area of the
external storage device 550 at operation S620. For example, 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. Alternatively, 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.
When at least one storage area of the external storage device 510
is identified by the controller 510, data can be transferred
between the host 580 and the external storage device via the
controller 510. As described above, the controller 510 can also
change the ID code of one or more storage areas of the external
storage device 550 by transmitting a CON2 command to the external
storage device 550.
[0065] 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. As illustrated in FIG. 8, 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).
[0066] 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 in FIG. 9, the storage areas
ST_1 and ST_2 can have ID code 000, storage area ST_3 can have ID
code 010, and storage areas ST_4 and ST_5 can have ID 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.
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 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 in
FIG. 6) 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 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) 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 CON2 command as described above in connection with
FIGS. 6 and 7.
[0067] 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.
Referring to FIGS. 6 and 10, the controller 510 can receive a first
control command CON1 from the host 580 at operation S910. The
controller 510 can identify the configuration of the external
storage device 550 from the received CON1 at operation S920. That
is, with the received CON1, 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. 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 in FIG. 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 in FIG. 6) can be
provided with the first control command (CON1). At operation S930,
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.
[0068] FIG. 11 illustrates a block diagram of an external storage
device according to exemplary embodiments of the present general
inventive concept. Referring to FIG. 11, system 1000 may include a
host 1002, a controller i005, 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 CON2 (as described above at
least in connection with FIG. 6) that can be received from the
controller 1005, and 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 CON2. As illustrated in FIG.
11, the controller 1005 can receive a CON1 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 CON2
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 CON1 may not include
the ID codes of the storage areas of the external storage device
1050, and the CON2 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.
[0069] In exemplary embodiments of the present general inventive
concept, 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 CON2 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, . . .
, ST_n) of the external storage device 1050 by being in an ON or
OFF position. That is, the CON2 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 CON2 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.
[0070] 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.
[0071] 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.
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 disable button 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 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.). 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.
[0072] FIG. 13 illustrates a detailed view of the controller 510
illustrated in FIG. 6 according to exemplary embodiments of the
present general inventive concept. As illustrated in FIG. 11, the
controller 510 may include a control unit 1210 and a memory 1250.
In exemplary embodiments of the present general inventive concept,
the memory 1250 can be a non-volatile memory. The control unit 1210
can store the first control command CON1 in the memory 1250 when
the CON1 is received from the host 580. The CON1 can include, for
example, ID code information. That is, when the system 500 restarts
(e.g., when receiving a restart and/or power on command), 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. In exemplary embodiments of the present general
inventive concept, when a new first control command CON1 is
received by the controller 510 which includes new ID code
information, 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.
8) or each independent storage area (e.g., where at least two ID
codes of the storage areas can be different, as illustrated in FIG.
9) using the control command CON1. In exemplary embodiments of the
present general inventive concept, when a new control command CON1
is received by the controller 510, a restart signal may also be
received by the controller 510 from the host 580. When the restart
signal is received by the controller 510, 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 CON1.
[0073] 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 to FIGS. 12B and
14, at operation S1402 it is determined whether the enable button
1152 has been selected, and, if no such selection has been
received, it is determined at operation S1404 whether the disable
button 1154 has been selected. If a selection of the disable button
1154 has not been received at operations S1404 and S1406, no
operation is performed by the external storage device. When the
enable 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 disable
button 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 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.
[0074] 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.
[0075] 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. 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 to FIG. 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 of
FIG. 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 in FIG.
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).
[0076] Referring to FIG. 16B, when a host device that is
communicatively coupled to the external storage device requests
data from the stora.about.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 of
FIG. 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 in FIG. 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).
[0077] 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 of FIG. 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 in FIG. 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.times.7. That is, the LBA at operation S1616
can be modified (e.g., by adding 0xFFFFFFFF.times.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.times.7).
[0078] 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.
[0079] 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.
[0080] 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.
* * * * *