US20100106905A1 - Disk array control device and storage device - Google Patents
Disk array control device and storage device Download PDFInfo
- Publication number
- US20100106905A1 US20100106905A1 US12/485,686 US48568609A US2010106905A1 US 20100106905 A1 US20100106905 A1 US 20100106905A1 US 48568609 A US48568609 A US 48568609A US 2010106905 A1 US2010106905 A1 US 2010106905A1
- Authority
- US
- United States
- Prior art keywords
- command
- drive
- register
- log
- host
- 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
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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/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
- One embodiment of the present invention relates to a disk array control device which manages a plurality of drives as a single logical drive, and a storage device including the disk array control device.
- the disk array control system is a system which handles a plurality of drives, such as hard disk drives, as a single logical drive.
- data is distributively written in a plurality of drives in units of a data block. Accordingly, the performance of data write and read can be improved.
- Jpn. Pat. Appln. KOKAI Publication No. 2007-188372 discloses a disk array controller which controls an array disk that comprises a plurality of disk drives.
- the disk array controller includes a memory module which stores a flag designating whether the plural disk drives are used as an array disk or are used as unit disk drives.
- the disk array controller executes a process for array-controlling the plural disk drives.
- the disk array controller enables a system apparatus to access each disk drive as a unit disk drive.
- FIG. 1 is an exemplary block diagram showing a structure example of a storage device according to an embodiment of the invention
- FIG. 2 is an exemplary flow chart illustrating an example of the procedure of a command pass-through control process which is executed by a disk array controller provided in the storage device according to the embodiment;
- FIG. 3 shows an example of a log page structure which is stored in each of a plurality of drives provided in the storage device according to the embodiment
- FIG. 4 shows a structure example of a pass-through control register provided in the storage device according to the embodiment
- FIG. 5 is an exemplary view for explaining a pass-through control operation for a DOWNLOAD MICROCODE command, which is executed by the disk array controller provided in the storage device according to the embodiment;
- FIG. 6 is an exemplary view for explaining a pass-through control operation for a SMART command, which is executed by the disk array controller provided in the storage device according to the embodiment;
- FIG. 7 is an exemplary flow chart for describing an example of the procedure of an access process for a pass-through control register in the storage device, which is executed by the disk array controller provided in the storage device according to the embodiment;
- FIG. 8 is an exemplary flow chart for describing an example of the procedure of a pass-through control process for a DOWNLOAD MICROCODE command, which is executed by the disk array controller provided in the storage device according to the embodiment;
- FIG. 9 is an exemplary flow chart for describing an example of the procedure of a pass-through control process for a SMART command, which is executed by the disk array controller provided in the storage device according to the embodiment;
- FIG. 10 shows an example of implementation of the storage device according to the embodiment
- FIG. 11 is an exemplary perspective view showing the external appearance of an information processing apparatus including a main body in which the storage device according to the embodiment is accommodated;
- FIG. 12 is an exemplary block diagram showing the structure of the information processing apparatus shown in FIG. 11 .
- a disk array control device manages a plurality of drives as a single logical drive.
- the disk array control device comprises a first register configured to store a to-be-accessed drive number which is designated by a host, and a control module.
- the control module is configured to receive a command from the host, determine whether the received command is a predetermined command which is used for maintenance of each of the drives, and execute, in a case where the received command is the predetermined command, a pass-through process of sending the received command to the drive which is designated by the to-be-accessed drive number in the first register.
- the storage device is realized as a storage device which supports, e.g. the AT attachment (ATA) standard.
- This storage device 12 is a drive device which functions as an external storage device of an information processing apparatus 1 such as a server or a personal computer.
- a host 11 and the storage device 12 are provided in the information processing apparatus main body of the information processing apparatus 1 .
- the host 11 is a core unit of the information processing apparatus 1 and is composed of a CPU which executes various programs, a memory, etc.
- the storage device 12 is connected to the host 11 via an ATA interface such as a serial ATA interface.
- the storage device 12 comprises a RAID controller 201 and a plurality of drives 210 .
- the RAID controller 201 is a disk array controller for handling the plural drives 210 as a single logical drive.
- the RAID controller 201 and an n-number of drives 210 are provided in the housing of the storage device 12 .
- the number “n” is an integer of 2 or more.
- the RAID controller 201 is interposed between the host 11 and the n-number of drives 210 .
- the RAID controller 201 includes a host-side ATA interface 101 and an n-number of drive-side ATA interfaces 111 .
- the RAID controller 201 is connected to the host 11 via the host-side ATA interface 101 .
- the n-number of drives 210 are connected to the n-number of drive-side ATA interfaces 11 of the RAID controller 201 .
- Each drive 210 functions as an ATA device that is a drive supporting the ATA standard.
- Each drive 210 is composed of, for instance, a hard disk drive (HDD) or a solid state drive (SSD).
- the SSD is a semiconductor disk drive which stores data in a nonvolatile semiconductor memory such as a NAND flash memory.
- the RAID controller 201 is a controller for causing the n-number of drives 210 to appear as a single drive to the host 11 . Since the RAID controller 201 and the n-number of drives 210 are built in the housing of the storage device 12 , the storage device 12 is accessed as a single ATA device from the host 11 . In order to improve the data read/write performance, the RAID controller 201 distributes data among the n-number of drives 210 . Various RAID levels, such as RAID0, RAID3 and RAID5, are applicable to the RAID controller 210 . In the present embodiment, it is assumed that the RAID controller 201 is realized, for instance, as a disk array controller corresponding to RAID 0 .
- the RAID controller 201 has a command pass-through control function for enabling the n-number of drives 210 , which are under the control of the RAID controller 201 , to be directly accessed from the host 11 .
- the command pass-through control function can directly send (pass-through) only a predetermined command relating to the maintenance of drives from the host 11 to an arbitrary one of the n-number of drives 210 .
- the RAID controller 201 includes a pass-through control register 300 .
- the pass-through control register 300 is a register which can be accessed by the host 11 with use of a command that is stipulated in the ATA standard.
- the pass-through control register 300 is used, for example, in order to store a to-be-accessed drive number which is designated by the host 11 .
- a control module 400 in the RAID controller 201 is a processor which controls the operation of the RAID controller 201 . As illustrated in a flow chart of FIG. 2 , the control module 400 receives a command that is sent from the host 11 (block S 11 ). The control module 400 determines whether the received command is a predetermined command which is used for the maintenance of drives (block S 12 ). In the case where the received command is the predetermined command, the control module 400 executes a pass-through process for sending the received command to the drive which is designated by the to-be-accessed drive number that is set in the pass-through control register 300 by the host 11 (block S 13 ).
- the control module 400 of the RAID controller 201 sends the command, which has been received by the host 11 , to the drive 210 (ATA drive 0 ) corresponding to the drive number 0 .
- the control module 400 executes a RAID control process for executing data read/write among the n-number of drives 210 (block S 14 ).
- the DOWNLOAD MICROCODE command is an ATA command which is used in order for the host 11 to alter a microcode (firmware) of the drive.
- the SMART command is an ATA command for reading or writing a log page structure (SMART information) which is stored in the drive 210 .
- the command pass-through control function of the present embodiment affects only the operation corresponding to a limited predetermined command, such as a DOWNLOAD MICROCODE command or a SMART command, in the commands from the host 11 .
- a limited predetermined command such as a DOWNLOAD MICROCODE command or a SMART command
- the command pass-through control function can be utilized.
- the process e.g. alteration of the microcode, read/write of log data
- the process e.g. alteration of the microcode, read/write of log data
- the command pass-through control function of this embodiment has a pass-through mode which sends each of all kinds of commands from the host 11 to the drive which is designated by the to-be-accessed drive number that is set in the pass-through control register 300 .
- This pass-through mode can be used, for example, in order to evaluate the operation of each drive 210 at a time of shipment of the storage device 12 .
- the pass-through control register 300 includes a drive select register 301 , a pass-through mode (PTM) register 302 and a page select register 303 .
- PTM pass-through mode
- PTM page select register
- the log page structure (SMART log page structure) is used for storing various log information such as a self-test result.
- SMART command for designating write of log data to the first vender-specific log address use may be made of, for instance, a SMART WRITE LOG command to the first vender-specific log address, or a WRITE LOG EXT command to the first vender-specific log address.
- a log address range (00h to FFh) is allocated, and the log page structure comprises 256 pages.
- A0h to BFh are vender specific addresses (pages).
- the vender specific address is an address which is reserved for the specific purpose of the manufacturer (vender) of the storage device 12 .
- a log address A0h (also referred to as “page A0h”) is used as the first vender-specific log address, and a SMART write command to the log address A0h is used for access to the pass-through control register 300 .
- the access to the pass-through control register 300 can also be realized by using a vender specific command.
- some kind of driver software which is executed by the host 11 , or some kind of bridge device in the host 11 , fails to support a vender specific command in which a command protocol is not defined.
- a SMART command in which the protocol is defined is used for the access to the pass-through control register 300 , high compatibility can be obtained.
- the drive select register 301 is a register for storing the to-be-accessed drive number which is designated by the host 11 .
- the pass-through mode (PTM) register 302 is a register for storing an operation mode which is designated by the host 11 .
- An example of the operation mode is the above-described pass-through mode for sending all kinds of commands from the host 11 to the drive that is designated by the to-be-accessed drive number.
- Other examples of the operation mode are a log page mode and a SMART READ DATA mode.
- the operation mode of the RAID controller 201 is set to the pass-through mode, the log page mode or the SMART READ DATA mode.
- the log page mode is a mode for reading/writing the log page structure (SMART information) by using a SMART command to a second vender-specific log address belonging to the log address range allocated to the log page structure (e.g. a SMART READ LOG command to the second vender-specific log address, or a SMART WRITS LOG command to the second vender-specific log address).
- a to-be-accessed page (log address) in the log page structure is designated by the to-be-accessed log address which is stored in the page select register 303 .
- a log address A1h (also referred to as “page A1h”) is used as the second vender-specific log address. Specifically, the page A1h is used as a window for the host 11 to access the log page structure of each drive.
- the SMART READ DATA mode is a mode for reading the SMART data structure, which is the SMART information different from the above-described log page structure, by using a SMART command to the second vender-specific log address belonging to the log address range allocated to the log page structure (e.g. a SMART READ LOG command to the second vender-specific log address, or a SMART WRITE LOG command to the second vender-specific log address).
- a SMART READ DATA mode the page select register 303 is not used, and the entire SMART data structure is returned to the host 11 .
- FIG. 4 shows a structure example of the pass-through control register 300 which is allocated to the page A0h.
- bit 6 - 0 indicates the to-be-accessed drive number (to-be-accessed ATA drive number).
- the data area of byte 1 is used as the page select register 303 .
- the value of 1-byte data, which is set in the data area of byte 1 indicates the to-be-accessed log address (to-be-accessed log page).
- the data area of byte 2 in the data area of 512 bytes corresponding to the page A0h is used as the PTM register 302 .
- the control module 400 receives a command from the host 11 . If the received command is a SMART command which designates write of log data to the log page A0h, the control module 400 writes the data (512-byte log data) from the host 11 in the pass-through control register 300 , thereby to set the to-be-accessed drive number, to-be-accessed log address or operation mode (log page mode, SMART READ DATA mode, pass-through mode) in the pass-through control register 300 .
- SMART command which designates write of log data to the log page A0h
- the DOWNLOAD MICROCODE command, and the SMART command to the log page A1h become the predetermined commands that are passed through to the drive 210 .
- the commands that are passed through are only the DOWNLOAD MICROCODE command and the SMART command to the log page A1h.
- the RAID controller 201 of the present embodiment can provide three kinds of direct access methods, namely, the direct access by the DOWNLOAD MICROCODE command (hereinafter referred to as “DLMC command”), the direct access by the SMART command and the direct access by the pass-through mode.
- DLMC command the direct access by the DOWNLOAD MICROCODE command
- SMART command the direct access by the SMART command
- pass-through mode the direct access by the pass-through mode.
- the RAID controller 201 is provided with the drive select register 301 , page select register 303 and pass-through mode register (PTM register) 302 , and the operation of the RAID controller 201 can be varied by the combination of values of these registers.
- PTM register pass-through mode register
- the pass-through control register 300 (drive select register 301 , page select register 303 and PTM register 302 ) is cleared by power-on of the storage device 12 or software reset of the storage device 12 .
- the default values of the pass-through control register 300 are all zeros.
- the values of the pass-through control register 300 can be varied by the SMART WRITE LOG command to the page A0h from the host 11 , or the WRITE LOG EXT command to the page A0h from the host 11 .
- the pass-through control operation to the DLMC command is varied in accordance with the value of the drive select register 301 .
- the pass-through destination (access destination) of the DLMC command is the RAID controller 201 itself. Specifically, the microcode of the RAID controller 201 is varied.
- the pass-through destination of the DLMC command is the ATA drive 210 which is designated by the ATA drive number that is indicated by the bit 6 - 0 of the drive select register 301 . For example, if the ATA drive number that is indicated by bit 6 - 0 is k, the DLMC command is passed through to the drive 210 of the drive number k.
- the value of the PTM register 302 is FFn
- the value of the bit 7 of the drive select register 301 is not used, and all commands from the host 11 are passed through to the ATA drive 210 which is designated by the ATA drive number that is indicated by bit 6 - 0 of the drive select register 301 .
- the SMART command to the page A1h is passed through to the ATA drive 210 which is designated by the ATA drive number that is indicated by the bit 6 - 0 of the drive select register 301 .
- the SMART command to the pages other than the page A1h is passed through to the RAID controller 201 itself.
- SMART commands include commands for executing read/write access to the log of a certain page in the log page structure (SMART READ LOG command, SMART WRITE LOG command, READ LOG EXT command, WRITE LOG EXT command), and a command for reading the SMART data structure (SMART READ DATA command).
- SMART READ LOG command commands for executing read/write access to the log of a certain page in the log page structure
- SMART WRITE LOG command READ LOG EXT command
- WRITE LOG EXT command a command for reading the SMART data structure
- SMART READ DATA command a command for reading the SMART data structure
- the host 11 can access the Log page of the ATA drive through the page A1h.
- the SMART READ LOG command to the page A1h or the SMART WRITE LOG command to the page A1h is passed through as a SMART READ/WRITE LOG command to the page number, which is indicated by the page select register 303 , of the ATA drive that is designated by the ATA drive number indicated by the bit 6 - 0 of the drive select register 301 .
- the SMART READ LOG command to the page number j or the SMART WRITE LOG command to the page number j is sent to the drive of the drive number k.
- the READ LOG EXT command to the page A1h or the WRITE LOG EXT command to the page A1h is passed through as a READ/WRITE LOG EXT command to the page number, which is indicated by the page select register 303 , of the ATA drive that is designated by the ATA drive number indicated by the bit 6 - 0 of the drive select register 301 .
- the ATA drive number indicated by the bit 6 - 0 of the drive select register 301 is k and the page number indicated by the page select register 303 is j
- the READ LOG EXT command to the page number j or the WRITE LOG EXT command to the page number j is sent to the drive of the drive number k.
- the host 11 can access the SMART data structure of the ATA drive through the page A1h.
- the SMART READ LOG command to the page A1h or the READ LOG EXT command to the page A1h is passed through as a SMART READ DATA command to the ATA drive that is designated by the ATA drive number indicated by the bit 6 - 0 of the drive select register 301 .
- the SMART READ LOG command to the page A1h or the READ LOG EXT command to the page A1h is converted to the SMART READ DATA command by the RAID controller 201 . If the ATA drive number indicated by the bit 6 - 0 of the drive select register 301 is k, the SMART READ DATA command is sent to the drive of the drive number k.
- the control module 400 receives a command which is sent from the host 11 (block S 21 ).
- the control module 400 determines whether the received command is a SMART command which designates write of log data to the page A0h (block 522 ). If the received command is the SMART command which designates write of log data to the page A0h, the control module 400 write-accesses the pass-through control register 300 , and writes the log data from the host 11 to the pass-through control register 300 (block S 23 ). If the received command is not the SMART command which designates write of log data to the page A0h, the control module 400 executes some other process (command process) (block S 24 ).
- command process command process
- the control module 400 determines whether the value of the PTM register 302 is FFh or not (block S 31 ). If the value of the PTM register 302 is FFh, that is, if the operation mode of the RAID controller 201 is the pass-through mode, the control module 400 passes all commands from the host 11 through to the ATA drive which is indicated by the bit 6 - 0 of the drive select register 301 (block S 32 ).
- the control module 400 determines, each time the control module 400 receives a command from the host 11 , whether the received command is a DLMC command or not (block S 33 , S 34 ). If the received command is the DLMC command, the control module 400 passes the received command through to the ATA drive which is designated by the ATA drive number indicated by the bit 6 - 0 of the drive select register 301 (block S 35 ). On the other hand, if the received command is a command other than the DLMC command, the control module 400 executes some other process (block S 36 ).
- the control module 400 determines whether the value of the PTM register 302 is FFh or not (block S 41 ). If the value of the PTM register 302 is FFh, that is, if the operation mode of the RAID controller 201 is the pass-through mode, the control module 400 passes all commands from the host 11 through to the ATA drive which is designated by the ATA drive number indicated by the bit 6 - 0 of the drive select register 301 (block S 42 ).
- the control module 400 determines, each time the control module 400 receives a command from the host 11 , whether the received command is a SMART command to the page A1h (the SMART READ LOG command to the page A1h, the SMART WRITE LOG command to the page A1h, the READ LOG EXT command to the page A1h, or the WRITE LOG EXT command to the page A1h) (block S 44 , S 45 ).
- the control module 400 passes the SMART command for accessing the log page structure or the SMART data structure through to the ATA drive which is designated by the ATA drive number indicated by the bit 6 - 0 of the drive select register 301 (blocks S 47 to S 49 ). Specifically, in blocks S 47 to S 49 , for example, the control module 400 determines whether the operation mode is the log page mode or the SMART READ DATA mode (block S 47 ).
- the control module 400 sends the SMART command to the page number j that is indicated by the page select register 303 (the SMART READ LOG command to the page j, the SMART WRITE LOG command to the page j, the READ LOG EXT command to the page j, or the WRITE LOG EXT command to the page j) to the drive of the drive number k that is indicated by the bit 6 - 0 of the drive select register 301 (block S 48 ).
- the control module 400 executes a process of converting the SMART READ LOG command to the page A1h or the READ LOG EXT command to the page A1h to the SMART READ DATA command (block 549 ). Specifically, in the case where the received command is the SMART READ LOG command to the page A1h or the READ LOG EXT command to the page A1h and the operation mode is the SMART DATA READ mode, the control module 400 sends the SMART READ DATA command to the drive of the drive number k that is indicated by the bit 6 - 0 of the drive select register 301 .
- FIG. 10 shows an example of implementation of the storage device 12 .
- FIG. 10 assumes the case in which the storage device 12 is realized as a semiconductor disk drive incorporating a plurality of SSDs, e.g. two SSDs.
- the storage device 12 has a housing 500 with the same outside dimensions as, e.g. a 2.5-inch HDD.
- the housing 500 includes a circuit board 503 on which the RAID controller 201 is mounted, and two circuit boards 501 and 502 on which two SSDs 210 are mounted, respectively.
- the RAID controller 201 controls the two SSDs 210 as a disk array of, e.g. RAID level 0.
- the memory capacity of each SSD 210 is 128 GB
- the RAID controller 201 can handle the two SSDs 210 as a single SSD having a memory capacity of 256 GB.
- the host 11 recognizes the storage device 12 as a single SSD (ATA drive) with a memory capacity of 256 GB.
- Each SSD 210 comprises a controller 601 , a DRAM 602 and a plurality of nonvolatile semiconductor memories 607 .
- Each of the nonvolatile semiconductor memories 607 is composed of, e.g. a NAND flash EEPROM. It is possible that the RAID controller 201 and the two SSDs 210 are mounted on a single circuit board.
- the pass-through control function of the present embodiment can execute the pass-through process for only the command relating to the drive maintenance, such as a DLMC command or a SMART command, it is possible to perform a process for the maintenance of an arbitrary SSD 210 (collection of SMART information, update of firmware), without removing each SSD 210 from the housing 500 or affecting user data that is distributively recorded in the two SSDs 210 , even in the state in which the operating system is running.
- FIG. 11 a description is given of a structure example of the information processing apparatus 1 which includes the storage device 12 .
- the information processing apparatus 1 can be realized, for example, as a notebook portable computer
- FIG. 11 is a perspective view showing the external appearance of the information processing apparatus 1 that is realized as a portable computer.
- the information processing apparatus 1 comprises an information processing apparatus main body 2 and a display unit 3 .
- a display device that is composed of an LCD (Liquid Crystal Display) 4 is built in the display unit 3 .
- the display unit 3 is attached to the information processing apparatus main body 2 such that the display unit 3 is freely rotatable between an open position where a top surface of the main body 2 is exposed, and a closed position where the top surface of the main body 2 is covered.
- the main body 2 has a thin box-shaped housing.
- a power switch 5 , a keyboard 6 and a touch pad 7 are disposed on the top surface of the main body 2 .
- An LED (Light Emitting Diode) 8 is disposed on a front surface of the main body 2 .
- an optical disc drive (ODD) 9 which can write/read data in/from optical disc media such as a DVD (Digital Versatile Disc), and a PC card slot 10 which detachably accommodates a PC card.
- the storage device 12 according to the present embodiment is accommodated in the main body 2 as an external storage device which functions as a boot drive.
- the storage device 12 is realized, for example, as a semiconductor disk drive having the structure as described with reference to FIG. 10 .
- the information processing apparatus main body 2 functions as the above-described host 11 .
- FIG. 12 is a block diagram showing the system configuration of the information processing apparatus 1 shown in FIG. 11 .
- the information processing apparatus 1 includes, in addition to the above-described LCD 4 , power switch 5 , keyboard 6 , touch pad 7 , LED 8 , ODD 9 , PC card slot 10 and storage device 12 , a CPU 100 , a north bridge 102 , a main memory 103 , a GPU (Graphic Processing Unit) 104 , a south bridge 105 , a flash memory 106 , an EC/KBC (Embedded Controller/Keyboard Controller) 107 , and a fan 108 .
- a CPU 100 a north bridge 102 , a main memory 103 , a GPU (Graphic Processing Unit) 104 , a south bridge 105 , a flash memory 106 , an EC/KBC (Embedded Controller/Keyboard Controller) 107 , and a fan 108 .
- a CPU 100 a north bridge 102 , a main memory 103 , a GPU (Graphic Processing Unit) 104 , a south bridge 105 ,
- the CPU 100 is a processor which controls the operation of the information processing apparatus 1 .
- the CPU 100 executes an operating system and various application programs including utilities, which are loaded from the storage device 12 into the main memory 103 .
- the CPU 100 also executes a BIOS (Basic Input/Output System) that is stored in the flash memory 106 .
- BIOS is a program for hardware control.
- the north bridge 102 is a bridge device that connects a local bus of the CPU 100 and the south bridge 105 .
- the north bridge 102 has a function of executing communication with the CPU 104 via a bus, and includes a memory controller that access-controls the main memory 103 .
- the GPU 104 controls the LCD 4 that is used as a display device of the information processing apparatus 1 .
- the south bridge 105 is a controller that controls various devices such as the storage device 12 , ODD 9 , a PC card which is loaded in the PC card slot 10 , and flash memory 106 .
- the EC/KBC 107 is a 1-chip microcomputer in which an embedded controller for power management and a keyboard controller for controlling the keyboard 6 and touch pad 7 are integrated.
- the EC/KBC 107 also executes control of the LED 8 and the fan 108 for cooling.
- each individual drive cannot directly be accessed.
- maintenance functions such as the update of firmware and collection of SMART information
- the storage device 12 may also be realized as a storage device such as a NAS (network-attached storage) device.
- NAS network-attached storage
- the various modules of the systems described herein can be implemented as software applications, hardware and/or software modules, or components on one or more computers, such as servers. While the various modules are illustrated separately, they may share some or all of the same underlying logic or code.
Abstract
According to one embodiment, a disk array control device manages a plurality of drives as a single logical drive. The disk array control device includes a first register configured to store a to-he-accessed drive number which is designated by a host, and a control module. The control module is configured to receive a command from the host, determine whether the received command is a predetermined command which is used for maintenance of each of the drives, and execute, in a case where the received command is the predetermined command, a pass-through process of sending the received command to the drive which is designated by the to-be-accessed drive number in the first register.
Description
- This application is based upon and claims the benefit of priority from Japanese Patent Application No. 2008-278646, filed Oct. 29, 2008, the entire contents of which are incorporated herein by reference.
- 1. Field
- One embodiment of the present invention relates to a disk array control device which manages a plurality of drives as a single logical drive, and a storage device including the disk array control device.
- 2. Description of the Related Art
- In recent years, in an information processing apparatus such as a server or a personal computer, use is made of a disk array control system such as a redundant array of inexpensive disks (RAID).
- The disk array control system is a system which handles a plurality of drives, such as hard disk drives, as a single logical drive. In the disk array control system, data is distributively written in a plurality of drives in units of a data block. Accordingly, the performance of data write and read can be improved.
- Jpn. Pat. Appln. KOKAI Publication No. 2007-188372 discloses a disk array controller which controls an array disk that comprises a plurality of disk drives. In order to make it possible to update the firmware of each disk drive, the disk array controller includes a memory module which stores a flag designating whether the plural disk drives are used as an array disk or are used as unit disk drives. In the case where the flag is “1”, the disk array controller executes a process for array-controlling the plural disk drives. On the other hand, in the case where the flag is “0”, the disk array controller enables a system apparatus to access each disk drive as a unit disk drive.
- In the disk array controller of Jpn. Pat. Appln. KOKAI Publication No. 2007-188372, however, in the case where the flag is “0”, no process for array control is executed, and all commands from the system, which include data read/write commands, are directly sent to a certain disk drive. Thus, if the flag is set to “0” during the operation of the system in which the plural disk drives are array-controlled, the data structure, which is constructed on the array disk, may possibly be destroyed. Consequently, it is practically difficult to update the firmware during the operation of the system.
- Therefore, it is necessary to realize a novel function which can execute a process relating to the maintenance of each of the drives even in the state in which the operating system is running.
- A general architecture that implements the various feature of the invention will now be described with reference to the drawings. The drawings and the associated descriptions are provided to illustrate embodiments of the invention and not to limit the scope of the invention.
-
FIG. 1 is an exemplary block diagram showing a structure example of a storage device according to an embodiment of the invention; -
FIG. 2 is an exemplary flow chart illustrating an example of the procedure of a command pass-through control process which is executed by a disk array controller provided in the storage device according to the embodiment; -
FIG. 3 shows an example of a log page structure which is stored in each of a plurality of drives provided in the storage device according to the embodiment; -
FIG. 4 shows a structure example of a pass-through control register provided in the storage device according to the embodiment; -
FIG. 5 is an exemplary view for explaining a pass-through control operation for a DOWNLOAD MICROCODE command, which is executed by the disk array controller provided in the storage device according to the embodiment; -
FIG. 6 is an exemplary view for explaining a pass-through control operation for a SMART command, which is executed by the disk array controller provided in the storage device according to the embodiment; -
FIG. 7 is an exemplary flow chart for describing an example of the procedure of an access process for a pass-through control register in the storage device, which is executed by the disk array controller provided in the storage device according to the embodiment; -
FIG. 8 is an exemplary flow chart for describing an example of the procedure of a pass-through control process for a DOWNLOAD MICROCODE command, which is executed by the disk array controller provided in the storage device according to the embodiment; -
FIG. 9 is an exemplary flow chart for describing an example of the procedure of a pass-through control process for a SMART command, which is executed by the disk array controller provided in the storage device according to the embodiment; -
FIG. 10 shows an example of implementation of the storage device according to the embodiment; -
FIG. 11 is an exemplary perspective view showing the external appearance of an information processing apparatus including a main body in which the storage device according to the embodiment is accommodated; and -
FIG. 12 is an exemplary block diagram showing the structure of the information processing apparatus shown inFIG. 11 . - Various embodiments according to the invention will be described hereinafter with reference to the accompanying drawings. In general, according to one embodiment of the invention, a disk array control device manages a plurality of drives as a single logical drive. The disk array control device comprises a first register configured to store a to-be-accessed drive number which is designated by a host, and a control module. The control module is configured to receive a command from the host, determine whether the received command is a predetermined command which is used for maintenance of each of the drives, and execute, in a case where the received command is the predetermined command, a pass-through process of sending the received command to the drive which is designated by the to-be-accessed drive number in the first register.
- To begin with, referring to
FIG. 1 , a structure example of a storage device according to an embodiment of the invention is described. The storage device is realized as a storage device which supports, e.g. the AT attachment (ATA) standard. Thisstorage device 12 is a drive device which functions as an external storage device of aninformation processing apparatus 1 such as a server or a personal computer. Ahost 11 and thestorage device 12 are provided in the information processing apparatus main body of theinformation processing apparatus 1. Thehost 11 is a core unit of theinformation processing apparatus 1 and is composed of a CPU which executes various programs, a memory, etc. Thestorage device 12 is connected to thehost 11 via an ATA interface such as a serial ATA interface. - The
storage device 12 comprises aRAID controller 201 and a plurality ofdrives 210. TheRAID controller 201 is a disk array controller for handling theplural drives 210 as a single logical drive. In the present embodiment, theRAID controller 201 and an n-number ofdrives 210 are provided in the housing of thestorage device 12. In this case, the number “n” is an integer of 2 or more. - The
RAID controller 201 is interposed between thehost 11 and the n-number ofdrives 210. TheRAID controller 201 includes a host-side ATA interface 101 and an n-number of drive-side ATA interfaces 111. TheRAID controller 201 is connected to thehost 11 via the host-side ATA interface 101. In addition, the n-number ofdrives 210 are connected to the n-number of drive-side ATA interfaces 11 of theRAID controller 201. - Each
drive 210 functions as an ATA device that is a drive supporting the ATA standard. Eachdrive 210 is composed of, for instance, a hard disk drive (HDD) or a solid state drive (SSD). The SSD is a semiconductor disk drive which stores data in a nonvolatile semiconductor memory such as a NAND flash memory. - The
RAID controller 201 is a controller for causing the n-number ofdrives 210 to appear as a single drive to thehost 11. Since theRAID controller 201 and the n-number ofdrives 210 are built in the housing of thestorage device 12, thestorage device 12 is accessed as a single ATA device from thehost 11. In order to improve the data read/write performance, theRAID controller 201 distributes data among the n-number ofdrives 210. Various RAID levels, such as RAID0, RAID3 and RAID5, are applicable to theRAID controller 210. In the present embodiment, it is assumed that theRAID controller 201 is realized, for instance, as a disk array controller corresponding to RAID0. - The
RAID controller 201 has a command pass-through control function for enabling the n-number ofdrives 210, which are under the control of theRAID controller 201, to be directly accessed from thehost 11. For example, the command pass-through control function can directly send (pass-through) only a predetermined command relating to the maintenance of drives from thehost 11 to an arbitrary one of the n-number ofdrives 210. In order to realize this command pass-through control function, theRAID controller 201 includes a pass-throughcontrol register 300. The pass-throughcontrol register 300 is a register which can be accessed by thehost 11 with use of a command that is stipulated in the ATA standard. The pass-throughcontrol register 300 is used, for example, in order to store a to-be-accessed drive number which is designated by thehost 11. - A
control module 400 in theRAID controller 201 is a processor which controls the operation of theRAID controller 201. As illustrated in a flow chart ofFIG. 2 , thecontrol module 400 receives a command that is sent from the host 11 (block S11). Thecontrol module 400 determines whether the received command is a predetermined command which is used for the maintenance of drives (block S12). In the case where the received command is the predetermined command, thecontrol module 400 executes a pass-through process for sending the received command to the drive which is designated by the to-be-accessed drive number that is set in the pass-through control register 300 by the host 11 (block S13). For example, if thehost 11 has sent the above-described predetermined command to thestorage device 12 in the state in which the to-be-accessed drive number that designates thedrive number 0 is set in the pass-throughcontrol register 300, thecontrol module 400 of theRAID controller 201 sends the command, which has been received by thehost 11, to the drive 210 (ATA drive 0) corresponding to thedrive number 0. On the other hand, if the received command is not the predetermined command, for example, if the received command is a data read/write command, thecontrol module 400 executes a RAID control process for executing data read/write among the n-number of drives 210 (block S14). - As the above-described predetermined command, use may be made of a DOWNLOAD MICROCODE command. The DOWNLOAD MICROCODE command is an ATA command which is used in order for the
host 11 to alter a microcode (firmware) of the drive. - As the above-described predetermined command, use may also be made of a SMART command. The SMART command is an ATA command for reading or writing a log page structure (SMART information) which is stored in the
drive 210. - As has been described above, the command pass-through control function of the present embodiment affects only the operation corresponding to a limited predetermined command, such as a DOWNLOAD MICROCODE command or a SMART command, in the commands from the
host 11. Thus, even during the period in which the operating system is being executed in thehost 11, the command pass-through control function can be utilized. In other words, even in the state in which the operating system is running, the process (e.g. alteration of the microcode, read/write of log data) relating to the maintenance of each drove can be executed, without affecting the data structure recorded distributively among the n-number ofdrives 210. - Further, the command pass-through control function of this embodiment has a pass-through mode which sends each of all kinds of commands from the
host 11 to the drive which is designated by the to-be-accessed drive number that is set in the pass-throughcontrol register 300. This pass-through mode can be used, for example, in order to evaluate the operation of each drive 210 at a time of shipment of thestorage device 12. - The pass-through
control register 300 includes a driveselect register 301, a pass-through mode (PTM)register 302 and a pageselect register 303. For the access to the driveselect register 301, pass-through mode (PTM)register 302 and pageselect register 303, use may be made of a SMART command for designating write of log data to a first vender-specific log address which belongs to a log address range allocated to a log page structure (SMART log page structure). The log page structure (SMART log page structure) is used for storing various log information such as a self-test result. As the SMART command for designating write of log data to the first vender-specific log address, use may be made of, for instance, a SMART WRITE LOG command to the first vender-specific log address, or a WRITE LOG EXT command to the first vender-specific log address. Specifically, as shown inFIG. 3 , in the log page structure stored in each drive, a log address range (00h to FFh) is allocated, and the log page structure comprises 256 pages. Of the log address range (0h to FFh), A0h to BFh are vender specific addresses (pages). The vender specific address is an address which is reserved for the specific purpose of the manufacturer (vender) of thestorage device 12. In the present embodiment, for example, a log address A0h (also referred to as “page A0h”) is used as the first vender-specific log address, and a SMART write command to the log address A0h is used for access to the pass-throughcontrol register 300. - The access to the pass-through control register 300 can also be realized by using a vender specific command. However, some kind of driver software, which is executed by the
host 11, or some kind of bridge device in thehost 11, fails to support a vender specific command in which a command protocol is not defined. In the present embodiment, since a SMART command in which the protocol is defined is used for the access to the pass-throughcontrol register 300, high compatibility can be obtained. - The drive
select register 301 is a register for storing the to-be-accessed drive number which is designated by thehost 11. - The pass-through mode (PTM) register 302 is a register for storing an operation mode which is designated by the
host 11. An example of the operation mode is the above-described pass-through mode for sending all kinds of commands from thehost 11 to the drive that is designated by the to-be-accessed drive number. Other examples of the operation mode are a log page mode and a SMART READ DATA mode. In accordance with the value that is set in the pass-through mode (PTM) register 302 by thehost 11, the operation mode of theRAID controller 201 is set to the pass-through mode, the log page mode or the SMART READ DATA mode. - The log page mode is a mode for reading/writing the log page structure (SMART information) by using a SMART command to a second vender-specific log address belonging to the log address range allocated to the log page structure (e.g. a SMART READ LOG command to the second vender-specific log address, or a SMART WRITS LOG command to the second vender-specific log address). In this case, a to-be-accessed page (log address) in the log page structure is designated by the to-be-accessed log address which is stored in the page
select register 303. - For example, a log address A1h (also referred to as “page A1h”) is used as the second vender-specific log address. Specifically, the page A1h is used as a window for the
host 11 to access the log page structure of each drive. - The SMART READ DATA mode is a mode for reading the SMART data structure, which is the SMART information different from the above-described log page structure, by using a SMART command to the second vender-specific log address belonging to the log address range allocated to the log page structure (e.g. a SMART READ LOG command to the second vender-specific log address, or a SMART WRITE LOG command to the second vender-specific log address). In the SMART READ DATA mode, the page
select register 303 is not used, and the entire SMART data structure is returned to thehost 11. -
FIG. 4 shows a structure example of the pass-through control register 300 which is allocated to the page A0h. - Of the data memory area of 512 bytes corresponding to page A0h, a data memory area corresponding to
byte 0 is used as the driveselect register 301. InByte 0, bit7=0 indicates theRAID controller 201, and bit7=1 indicates the ATA drive. InByte 0, bit6-0 indicates the to-be-accessed drive number (to-be-accessed ATA drive number). When bit7=1, thedrive 210, which is designated by the ATA drive number indicated by bit6-0, is the object of access. - Of the data area of 512 bytes corresponding to the page A0h, the data area of
byte 1 is used as the pageselect register 303. The value of 1-byte data, which is set in the data area ofbyte 1, indicates the to-be-accessed log address (to-be-accessed log page). - The data area of
byte 2 in the data area of 512 bytes corresponding to the page A0h is used as thePTM register 302. In the data area ofbyte 2, 1-byte data=00h indicates the log page mode. In the data area ofbyte 2, 1-byte data=01h indicates the SMART READ DATA mode. In the data area ofbyte 2, 1-byte data=FFh indicates the pass-through mode. - The
control module 400 receives a command from thehost 11. If the received command is a SMART command which designates write of log data to the log page A0h, thecontrol module 400 writes the data (512-byte log data) from thehost 11 in the pass-throughcontrol register 300, thereby to set the to-be-accessed drive number, to-be-accessed log address or operation mode (log page mode, SMART READ DATA mode, pass-through mode) in the pass-throughcontrol register 300. - In the operation modes other than the pass-through mode, the DOWNLOAD MICROCODE command, and the SMART command to the log page A1h become the predetermined commands that are passed through to the
drive 210. In other words, in the operation modes other than the pass-through mode, the commands that are passed through are only the DOWNLOAD MICROCODE command and the SMART command to the log page A1h. - Thus, the
RAID controller 201 of the present embodiment can provide three kinds of direct access methods, namely, the direct access by the DOWNLOAD MICROCODE command (hereinafter referred to as “DLMC command”), the direct access by the SMART command and the direct access by the pass-through mode. - The
RAID controller 201 is provided with the driveselect register 301, pageselect register 303 and pass-through mode register (PTM register) 302, and the operation of theRAID controller 201 can be varied by the combination of values of these registers. - The pass-through control register 300 (drive
select register 301, pageselect register 303 and PTM register 302) is cleared by power-on of thestorage device 12 or software reset of thestorage device 12. The default values of the pass-throughcontrol register 300 are all zeros. - The values of the pass-through control register 300 can be varied by the SMART WRITE LOG command to the page A0h from the
host 11, or the WRITE LOG EXT command to the page A0h from thehost 11. - Next, the pass-through control operation, which is executed by the
RAID controller 201, is specifically described. - <Pass-Through Control to DLMC Command>
- As shown in
FIG. 5 , when the value of thePTM register 302 is not FFh, the pass-through control operation to the DLMC command is varied in accordance with the value of the driveselect register 301. - In the case where the value of the
PTM register 302 is not FFh, when the bit7 of the driveselect register 301 is 0, the pass-through destination (access destination) of the DLMC command is theRAID controller 201 itself. Specifically, the microcode of theRAID controller 201 is varied. When the bit7 of the driveselect register 301 is 1, the pass-through destination of the DLMC command is the ATA drive 210 which is designated by the ATA drive number that is indicated by the bit6-0 of the driveselect register 301. For example, if the ATA drive number that is indicated by bit6-0 is k, the DLMC command is passed through to thedrive 210 of the drive number k. - In the case where the value of the
PTM register 302 is FFn, the value of the bit7 of the driveselect register 301 is not used, and all commands from thehost 11 are passed through to the ATA drive 210 which is designated by the ATA drive number that is indicated by bit6-0 of the driveselect register 301. - <Pass-Though Control to SMART Command>
- As shown in
FIG. 6 , when the value of thePTM register 302 is not FFh, the SMART command to the page A1h is passed through to the ATA drive 210 which is designated by the ATA drive number that is indicated by the bit6-0 of the driveselect register 301. On the other hand, the SMART command to the pages other than the page A1h is passed through to theRAID controller 201 itself. - SMART commands include commands for executing read/write access to the log of a certain page in the log page structure (SMART READ LOG command, SMART WRITE LOG command, READ LOG EXT command, WRITE LOG EXT command), and a command for reading the SMART data structure (SMART READ DATA command). In the present embodiment, in each of the case of accessing the log page structure and the case of accessing the SMART data structure, the
host 11 uses the SMART command to the page A1h. - To begin with, the access to the log page is described.
- When the value of the
PTM register 302 is 00h (log page mode), thehost 11 can access the Log page of the ATA drive through the page A1h. The SMART READ LOG command to the page A1h or the SMART WRITE LOG command to the page A1h is passed through as a SMART READ/WRITE LOG command to the page number, which is indicated by the pageselect register 303, of the ATA drive that is designated by the ATA drive number indicated by the bit6-0 of the driveselect register 301. For example, if the ATA drive number indicated by the bit6-0 of the driveselect register 301 is k and the page number indicated by the pageselect register 303 is j, the SMART READ LOG command to the page number j or the SMART WRITE LOG command to the page number j is sent to the drive of the drive number k. - The READ LOG EXT command to the page A1h or the WRITE LOG EXT command to the page A1h is passed through as a READ/WRITE LOG EXT command to the page number, which is indicated by the page
select register 303, of the ATA drive that is designated by the ATA drive number indicated by the bit6-0 of the driveselect register 301. For example, if the ATA drive number indicated by the bit6-0 of the driveselect register 301 is k and the page number indicated by the pageselect register 303 is j, the READ LOG EXT command to the page number j or the WRITE LOG EXT command to the page number j is sent to the drive of the drive number k. - Next, the access to the SMART data is described.
- When the value of the
PTM register 302 is 01h (SMART READ DATA mode), thehost 11 can access the SMART data structure of the ATA drive through the page A1h. - The SMART READ LOG command to the page A1h or the READ LOG EXT command to the page A1h is passed through as a SMART READ DATA command to the ATA drive that is designated by the ATA drive number indicated by the bit6-0 of the drive
select register 301. Specifically, the SMART READ LOG command to the page A1h or the READ LOG EXT command to the page A1h is converted to the SMART READ DATA command by theRAID controller 201. If the ATA drive number indicated by the bit6-0 of the driveselect register 301 is k, the SMART READ DATA command is sent to the drive of the drive number k. - <Pass-Through Control in the Pass-Through Mode>
- When the value of the
PTM register 302 is FFn (pass-through mode), all commands are passed through to the ATA drive which is designated by the ATA drive number that is indicated by bit6-0 of the driveselect register 301. - In order to cancel the pass-through mode, software reset is used. The reason for this is that after the operation mode is once set to the pass-through mode, all commands including the SMART command to the page A0h are passed through, and thus the content of the pass-through control register 300 cannot be updated by the command from the
host 11. - Next, referring to a flow chart of
FIG. 7 , a description is given of the access process to the pass-throughcontrol register 300, which is executed by thecontrol module 400. - The
control module 400 receives a command which is sent from the host 11 (block S21). Thecontrol module 400 determines whether the received command is a SMART command which designates write of log data to the page A0h (block 522). If the received command is the SMART command which designates write of log data to the page A0h, thecontrol module 400 write-accesses the pass-throughcontrol register 300, and writes the log data from thehost 11 to the pass-through control register 300 (block S23). If the received command is not the SMART command which designates write of log data to the page A0h, thecontrol module 400 executes some other process (command process) (block S24). - Next, referring to a flow chart of
FIG. 8 , a description is given of the pass-through control process to the DLMC command, which is executed by thecontrol module 400. - The
control module 400 determines whether the value of thePTM register 302 is FFh or not (block S31). If the value of thePTM register 302 is FFh, that is, if the operation mode of theRAID controller 201 is the pass-through mode, thecontrol module 400 passes all commands from thehost 11 through to the ATA drive which is indicated by the bit6-0 of the drive select register 301 (block S32). - On the other hand, if the value of the
PTM register 302 is not FFh, thecontrol module 400 determines, each time thecontrol module 400 receives a command from thehost 11, whether the received command is a DLMC command or not (block S33, S34). If the received command is the DLMC command, thecontrol module 400 passes the received command through to the ATA drive which is designated by the ATA drive number indicated by the bit6-0 of the drive select register 301 (block S35). On the other hand, if the received command is a command other than the DLMC command, thecontrol module 400 executes some other process (block S36). - Next, referring to a flow chart of
FIG. 9 , a description is given of the pass-through control process to the SMART command, which is executed by thecontrol module 400. - The
control module 400 determines whether the value of thePTM register 302 is FFh or not (block S41). If the value of thePTM register 302 is FFh, that is, if the operation mode of theRAID controller 201 is the pass-through mode, thecontrol module 400 passes all commands from thehost 11 through to the ATA drive which is designated by the ATA drive number indicated by the bit6-0 of the drive select register 301 (block S42). - On the other hand, if the value of the
PTM register 302 is not FFh, thecontrol module 400 determines, each time thecontrol module 400 receives a command from thehost 11, whether the received command is a SMART command to the page A1h (the SMART READ LOG command to the page A1h, the SMART WRITE LOG command to the page A1h, the READ LOG EXT command to the page A1h, or the WRITE LOG EXT command to the page A1h) (block S44, S45). - If the received command is the SMART command to the page A1h, the
control module 400 passes the SMART command for accessing the log page structure or the SMART data structure through to the ATA drive which is designated by the ATA drive number indicated by the bit6-0 of the drive select register 301 (blocks S47 to S49). Specifically, in blocks S47 to S49, for example, thecontrol module 400 determines whether the operation mode is the log page mode or the SMART READ DATA mode (block S47). If the operation mode is the log page mode, thecontrol module 400 sends the SMART command to the page number j that is indicated by the page select register 303 (the SMART READ LOG command to the page j, the SMART WRITE LOG command to the page j, the READ LOG EXT command to the page j, or the WRITE LOG EXT command to the page j) to the drive of the drive number k that is indicated by the bit6-0 of the drive select register 301 (block S48). In the case where the operation mode is the SMART DATA READ mode, thecontrol module 400 executes a process of converting the SMART READ LOG command to the page A1h or the READ LOG EXT command to the page A1h to the SMART READ DATA command (block 549). Specifically, in the case where the received command is the SMART READ LOG command to the page A1h or the READ LOG EXT command to the page A1h and the operation mode is the SMART DATA READ mode, thecontrol module 400 sends the SMART READ DATA command to the drive of the drive number k that is indicated by the bit6-0 of the driveselect register 301. -
FIG. 10 shows an example of implementation of thestorage device 12. -
FIG. 10 assumes the case in which thestorage device 12 is realized as a semiconductor disk drive incorporating a plurality of SSDs, e.g. two SSDs. Thestorage device 12 has ahousing 500 with the same outside dimensions as, e.g. a 2.5-inch HDD. Thehousing 500 includes acircuit board 503 on which theRAID controller 201 is mounted, and twocircuit boards SSDs 210 are mounted, respectively. TheRAID controller 201 controls the twoSSDs 210 as a disk array of,e.g. RAID level 0. In the case where the memory capacity of eachSSD 210 is 128 GB, theRAID controller 201 can handle the twoSSDs 210 as a single SSD having a memory capacity of 256 GB. Thehost 11 recognizes thestorage device 12 as a single SSD (ATA drive) with a memory capacity of 256 GB. - Each
SSD 210 comprises acontroller 601, aDRAM 602 and a plurality ofnonvolatile semiconductor memories 607. Each of thenonvolatile semiconductor memories 607 is composed of, e.g. a NAND flash EEPROM. It is possible that theRAID controller 201 and the twoSSDs 210 are mounted on a single circuit board. - In the
storage device 12 with the structure as shown inFIG. 10 , it is practically difficult to remove eachSSD 210 from thehousing 500. Since the pass-through control function of the present embodiment can execute the pass-through process for only the command relating to the drive maintenance, such as a DLMC command or a SMART command, it is possible to perform a process for the maintenance of an arbitrary SSD 210 (collection of SMART information, update of firmware), without removing eachSSD 210 from thehousing 500 or affecting user data that is distributively recorded in the twoSSDs 210, even in the state in which the operating system is running. - Next, referring to
FIG. 11 , a description is given of a structure example of theinformation processing apparatus 1 which includes thestorage device 12. - The
information processing apparatus 1 can be realized, for example, as a notebook portable computerFIG. 11 is a perspective view showing the external appearance of theinformation processing apparatus 1 that is realized as a portable computer. - The
information processing apparatus 1 comprises an information processing apparatusmain body 2 and adisplay unit 3. A display device that is composed of an LCD (Liquid Crystal Display) 4 is built in thedisplay unit 3. - The
display unit 3 is attached to the information processing apparatusmain body 2 such that thedisplay unit 3 is freely rotatable between an open position where a top surface of themain body 2 is exposed, and a closed position where the top surface of themain body 2 is covered. Themain body 2 has a thin box-shaped housing. Apower switch 5, akeyboard 6 and atouch pad 7 are disposed on the top surface of themain body 2. - An LED (Light Emitting Diode) 8 is disposed on a front surface of the
main body 2. On the right side surface of themain body 2, there are disposed an optical disc drive (ODD) 9 which can write/read data in/from optical disc media such as a DVD (Digital Versatile Disc), and aPC card slot 10 which detachably accommodates a PC card. In theinformation processing apparatus 1, thestorage device 12 according to the present embodiment is accommodated in themain body 2 as an external storage device which functions as a boot drive. Thestorage device 12 is realized, for example, as a semiconductor disk drive having the structure as described with reference toFIG. 10 . The information processing apparatusmain body 2 functions as the above-describedhost 11. -
FIG. 12 is a block diagram showing the system configuration of theinformation processing apparatus 1 shown inFIG. 11 . - As shown in
FIG. 12 , theinformation processing apparatus 1 includes, in addition to the above-describedLCD 4,power switch 5,keyboard 6,touch pad 7,LED 8,ODD 9,PC card slot 10 andstorage device 12, aCPU 100, anorth bridge 102, amain memory 103, a GPU (Graphic Processing Unit) 104, asouth bridge 105, aflash memory 106, an EC/KBC (Embedded Controller/Keyboard Controller) 107, and afan 108. - The
CPU 100 is a processor which controls the operation of theinformation processing apparatus 1. TheCPU 100 executes an operating system and various application programs including utilities, which are loaded from thestorage device 12 into themain memory 103. TheCPU 100 also executes a BIOS (Basic Input/Output System) that is stored in theflash memory 106. The BIOS is a program for hardware control. - The
north bridge 102 is a bridge device that connects a local bus of theCPU 100 and thesouth bridge 105. Thenorth bridge 102 has a function of executing communication with theCPU 104 via a bus, and includes a memory controller that access-controls themain memory 103. TheGPU 104 controls theLCD 4 that is used as a display device of theinformation processing apparatus 1. - The
south bridge 105 is a controller that controls various devices such as thestorage device 12,ODD 9, a PC card which is loaded in thePC card slot 10, andflash memory 106. - The EC/
KBC 107 is a 1-chip microcomputer in which an embedded controller for power management and a keyboard controller for controlling thekeyboard 6 andtouch pad 7 are integrated. The EC/KBC 107 also executes control of theLED 8 and thefan 108 for cooling. - As has been described above, according to the command pass-through control function of the present embodiment, the following advantageous effects can be obtained.
- Specifically, in a general RAID system, each individual drive cannot directly be accessed. In the present embodiment, however, maintenance functions, such as the update of firmware and collection of SMART information, can be realized in fields in each individual drive. In this case, in the modes other than the pass-through mode (PTM register=FFh), the command pass-through control function of the present embodiment affects only the operations of the DLMC command, the SMART READ/WRITE LOG command to the page A1h, and the READ/WRITE LOG EXT command to the page A1h. Therefore, even during the period in which the operating system is running, the maintenance process, such as the update of firmware and collection of SMART information, can easily be executed for each individual drive.
- In addition, since the SMART command in which the protocol is defined is used for the access to the pass-through
control register 300, high compatibility with various hosts can be realized. - The implementation of the pass-through mode (PTM register=FFh) may optionally be adopted.
- The page number, the arrangement of data and the meanings of values in the present embodiment are mere examples, and other definitions may be adopted within the scope of the present invention.
- The
storage device 12 may also be realized as a storage device such as a NAS (network-attached storage) device. - The various modules of the systems described herein can be implemented as software applications, hardware and/or software modules, or components on one or more computers, such as servers. While the various modules are illustrated separately, they may share some or all of the same underlying logic or code.
- While certain embodiments of the inventions have been described, these embodiments have been presented by way of example only, and are not intended to limit the scope of the inventions. Indeed, the novel methods and systems described herein may be embodied in a variety of other forms; furthermore, various omissions, substitutions and changes in the form of the methods and systems described herein may be made without departing from the spirit of the inventions. The accompanying claims and their equivalents are intended to cover such forms or modifications as would fall within the scope and spirit of the inventions.
Claims (10)
1. A disk array control device which manages a plurality of drives as a single logical drive, comprising:
a first register configured to store a to-be-accessed drive number which is designated by a host; and
a control module configured to determine whether a command received from the host is a predetermined command which is used for maintenance of each of the drives, and execute, in a case where the received command is the predetermined command, a pass-through process of sending the received command to the drive which is designated by the to-be-accessed drive number in the first register.
2. The disk array control device according to claim 1 , wherein the predetermined command is a DOWNLOAD MICROCODE command which enables the host to vary a microcode of a drive.
3. The disk array control device according to claim 2 , wherein each of the drives stores a log page structure, and
in a case where the command received from the host is a SMART command which designates write of log data to a first predetermined vender-specific log address belonging to a log address range which is allocated to the log page structure, the control module writes data from the host to the first register, thereby to set the to-be-accessed drive number in the first register.
4. The disk array control device according to claim 3 , further comprising a second register configured to store a to-be-accessed log address which is designated by the host,
wherein in a case where the command received from the host is a SMART command which designates read or write of log data to a second predetermined log address in the log address range which is allocated to the log page structure, the control module sends the SMART command, which designates read or write of log data to the to-be-accessed log address of the second register, to the drive which is designated by the to-be-accessed drive number in the first register.
5. The disk array control device according to claim 1 , further comprising a register configured to store an operation mode which is designated by the host,
wherein in a case where the operation mode is a pass-through mode for sending all kinds of commands from the host to the drive that is designated by the to-be-accessed drive number in the first register, the control module sends each of the commands, which are received from the host, to the drive which is designated by the to-be-accessed drive number in the first register.
6. A storage device comprising:
a housing;
a plurality of drives provided in the housing; and
a disk array control device provided in the housing, configured to manage the plurality of drives as a single logical drive, the disk array control device including a first register configured to store a to-be-accessed drive number which is designated by a host, and a control module configured to determine whether a command received from the host is a predetermined command which is used for maintenance of each of the drives, and execute, in a case where the received command is the predetermined command, a pass-through process of sending the received command to the drive which is designated by the to-be-accessed drive number in the first register.
7. The storage device according to claim 6 , wherein the predetermined command is a DOWNLOAD MICROCODE command which is used by the host in order to vary a microcode of the drive.
8. The storage device according to claim 7 , wherein each of the drives stores a log page structure, and
in a case where the command received from the host is a SMART command which designates write of log data to a first predetermined log address in a log address range which is allocated to the log page structure, the control module writes data from the host to the first register, thereby to set the to-be-accessed drive number in the first register.
9. The storage device according to claim 6 , wherein each of the drives is a semiconductor disk drive including a nonvolatile memory and a controller which controls access to the nonvolatile memory in accordance with a command from the disk array control device.
10. An information processing apparatus comprising:
an information processing apparatus main body; and
a storage device which is provided in the information processing apparatus main body and includes a housing, a plurality of drives provided in the housing, and a disk array control device which is provided in the housing and manages the plurality of drives as a single logical drive, the disk array control device including a first register which stores a to-be-accessed drive number which is designated by the information processing apparatus main body, and a control module which determines whether a command received from the information processing apparatus main body is a predetermined command which is used for maintenance of each of the drives, and executes, in a case where the received command is the predetermined command, a pass-through process of sending the received command to the drive which is designated by the to-be-accessed drive number in the first register.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/157,011 US8433882B2 (en) | 2008-10-29 | 2011-06-09 | Disk array control device and storage device |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008278646A JP4399021B1 (en) | 2008-10-29 | 2008-10-29 | Disk array control device and storage device |
JP2008-278646 | 2008-10-29 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/157,011 Continuation US8433882B2 (en) | 2008-10-29 | 2011-06-09 | Disk array control device and storage device |
Publications (1)
Publication Number | Publication Date |
---|---|
US20100106905A1 true US20100106905A1 (en) | 2010-04-29 |
Family
ID=41591584
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/485,686 Abandoned US20100106905A1 (en) | 2008-10-29 | 2009-06-16 | Disk array control device and storage device |
US13/157,011 Expired - Fee Related US8433882B2 (en) | 2008-10-29 | 2011-06-09 | Disk array control device and storage device |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/157,011 Expired - Fee Related US8433882B2 (en) | 2008-10-29 | 2011-06-09 | Disk array control device and storage device |
Country Status (2)
Country | Link |
---|---|
US (2) | US20100106905A1 (en) |
JP (1) | JP4399021B1 (en) |
Cited By (130)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110016233A1 (en) * | 2009-07-17 | 2011-01-20 | Ross John Stenfort | System, method, and computer program product for inserting a gap in information sent from a drive to a host device |
US20110083047A1 (en) * | 2009-10-05 | 2011-04-07 | Ross John Stenfort | System, method, and computer program product for sending failure information from a serial ata (sata) solid state drive (ssd) to a host device |
US20110238913A1 (en) * | 2008-10-29 | 2011-09-29 | Takehiko Kurashige | Disk array control device and storage device |
US8516166B2 (en) | 2009-07-20 | 2013-08-20 | Lsi Corporation | System, method, and computer program product for reducing a rate of data transfer to at least a portion of memory |
US20140204526A1 (en) * | 2013-01-22 | 2014-07-24 | Hon Hai Precision Industry Co., Ltd. | Portable computer with data storage device |
US8984225B2 (en) | 2011-06-22 | 2015-03-17 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Method to improve the performance of a read ahead cache process in a storage array |
US9684460B1 (en) * | 2010-09-15 | 2017-06-20 | Pure Storage, Inc. | Proactively correcting behavior that may affect I/O performance in a non-volatile semiconductor storage device |
US9710165B1 (en) | 2015-02-18 | 2017-07-18 | Pure Storage, Inc. | Identifying volume candidates for space reclamation |
US9727485B1 (en) | 2014-11-24 | 2017-08-08 | Pure Storage, Inc. | Metadata rewrite and flatten optimization |
US9779268B1 (en) | 2014-06-03 | 2017-10-03 | Pure Storage, Inc. | Utilizing a non-repeating identifier to encrypt data |
US9792045B1 (en) | 2012-03-15 | 2017-10-17 | Pure Storage, Inc. | Distributing data blocks across a plurality of storage devices |
US9804973B1 (en) | 2014-01-09 | 2017-10-31 | Pure Storage, Inc. | Using frequency domain to prioritize storage of metadata in a cache |
US9811551B1 (en) | 2011-10-14 | 2017-11-07 | Pure Storage, Inc. | Utilizing multiple fingerprint tables in a deduplicating storage system |
US9817608B1 (en) | 2014-06-25 | 2017-11-14 | Pure Storage, Inc. | Replication and intermediate read-write state for mediums |
US9864761B1 (en) | 2014-08-08 | 2018-01-09 | Pure Storage, Inc. | Read optimization operations in a storage system |
US9864769B2 (en) | 2014-12-12 | 2018-01-09 | Pure Storage, Inc. | Storing data utilizing repeating pattern detection |
US9880779B1 (en) | 2013-01-10 | 2018-01-30 | Pure Storage, Inc. | Processing copy offload requests in a storage system |
US10114574B1 (en) | 2014-10-07 | 2018-10-30 | Pure Storage, Inc. | Optimizing storage allocation in a storage system |
US10126982B1 (en) | 2010-09-15 | 2018-11-13 | Pure Storage, Inc. | Adjusting a number of storage devices in a storage system that may be utilized to simultaneously service high latency operations |
CN108804117A (en) * | 2017-05-02 | 2018-11-13 | 广达电脑股份有限公司 | The method and system of hard disk is updated by Management Controller |
US10156998B1 (en) | 2010-09-15 | 2018-12-18 | Pure Storage, Inc. | Reducing a number of storage devices in a storage system that are exhibiting variable I/O response times |
US10162523B2 (en) | 2016-10-04 | 2018-12-25 | Pure Storage, Inc. | Migrating data between volumes using virtual copy operation |
US10164841B2 (en) | 2014-10-02 | 2018-12-25 | Pure Storage, Inc. | Cloud assist for storage systems |
US10180879B1 (en) | 2010-09-28 | 2019-01-15 | Pure Storage, Inc. | Inter-device and intra-device protection data |
US10185505B1 (en) | 2016-10-28 | 2019-01-22 | Pure Storage, Inc. | Reading a portion of data to replicate a volume based on sequence numbers |
US10191662B2 (en) | 2016-10-04 | 2019-01-29 | Pure Storage, Inc. | Dynamic allocation of segments in a flash storage system |
WO2019046128A1 (en) * | 2017-08-30 | 2019-03-07 | Micron Technology, Inc. | Log data storage for flash memory |
US10235065B1 (en) | 2014-12-11 | 2019-03-19 | Pure Storage, Inc. | Datasheet replication in a cloud computing environment |
US10248516B1 (en) | 2014-12-11 | 2019-04-02 | Pure Storage, Inc. | Processing read and write requests during reconstruction in a storage system |
US10263770B2 (en) | 2013-11-06 | 2019-04-16 | Pure Storage, Inc. | Data protection in a storage system using external secrets |
US10284367B1 (en) | 2012-09-26 | 2019-05-07 | Pure Storage, Inc. | Encrypting data in a storage system using a plurality of encryption keys |
US10296469B1 (en) | 2014-07-24 | 2019-05-21 | Pure Storage, Inc. | Access control in a flash storage system |
US10296354B1 (en) | 2015-01-21 | 2019-05-21 | Pure Storage, Inc. | Optimized boot operations within a flash storage array |
US10310740B2 (en) | 2015-06-23 | 2019-06-04 | Pure Storage, Inc. | Aligning memory access operations to a geometry of a storage device |
US10359942B2 (en) | 2016-10-31 | 2019-07-23 | Pure Storage, Inc. | Deduplication aware scalable content placement |
US10365858B2 (en) | 2013-11-06 | 2019-07-30 | Pure Storage, Inc. | Thin provisioning in a storage device |
US10402266B1 (en) | 2017-07-31 | 2019-09-03 | Pure Storage, Inc. | Redundant array of independent disks in a direct-mapped flash storage system |
US10430079B2 (en) | 2014-09-08 | 2019-10-01 | Pure Storage, Inc. | Adjusting storage capacity in a computing system |
US10430282B2 (en) | 2014-10-07 | 2019-10-01 | Pure Storage, Inc. | Optimizing replication by distinguishing user and system write activity |
US10452297B1 (en) | 2016-05-02 | 2019-10-22 | Pure Storage, Inc. | Generating and optimizing summary index levels in a deduplication storage system |
US10452290B2 (en) | 2016-12-19 | 2019-10-22 | Pure Storage, Inc. | Block consolidation in a direct-mapped flash storage system |
US10452289B1 (en) | 2010-09-28 | 2019-10-22 | Pure Storage, Inc. | Dynamically adjusting an amount of protection data stored in a storage system |
US10482061B1 (en) | 2014-12-01 | 2019-11-19 | Pure Storage, Inc. | Removing invalid data from a dataset in advance of copying the dataset |
US10496556B1 (en) | 2014-06-25 | 2019-12-03 | Pure Storage, Inc. | Dynamic data protection within a flash storage system |
US10545861B2 (en) | 2016-10-04 | 2020-01-28 | Pure Storage, Inc. | Distributed integrated high-speed solid-state non-volatile random-access memory |
US10545987B2 (en) | 2014-12-19 | 2020-01-28 | Pure Storage, Inc. | Replication to the cloud |
US10564882B2 (en) | 2015-06-23 | 2020-02-18 | Pure Storage, Inc. | Writing data to storage device based on information about memory in the storage device |
US10623386B1 (en) | 2012-09-26 | 2020-04-14 | Pure Storage, Inc. | Secret sharing data protection in a storage system |
US10656864B2 (en) | 2014-03-20 | 2020-05-19 | Pure Storage, Inc. | Data replication within a flash storage array |
US10678436B1 (en) | 2018-05-29 | 2020-06-09 | Pure Storage, Inc. | Using a PID controller to opportunistically compress more data during garbage collection |
US10678433B1 (en) | 2018-04-27 | 2020-06-09 | Pure Storage, Inc. | Resource-preserving system upgrade |
US10693964B2 (en) | 2015-04-09 | 2020-06-23 | Pure Storage, Inc. | Storage unit communication within a storage system |
US10756816B1 (en) | 2016-10-04 | 2020-08-25 | Pure Storage, Inc. | Optimized fibre channel and non-volatile memory express access |
US10776034B2 (en) | 2016-07-26 | 2020-09-15 | Pure Storage, Inc. | Adaptive data migration |
US10776202B1 (en) | 2017-09-22 | 2020-09-15 | Pure Storage, Inc. | Drive, blade, or data shard decommission via RAID geometry shrinkage |
US10776046B1 (en) | 2018-06-08 | 2020-09-15 | Pure Storage, Inc. | Optimized non-uniform memory access |
US10789211B1 (en) | 2017-10-04 | 2020-09-29 | Pure Storage, Inc. | Feature-based deduplication |
US10831935B2 (en) | 2017-08-31 | 2020-11-10 | Pure Storage, Inc. | Encryption management with host-side data reduction |
US10846216B2 (en) | 2018-10-25 | 2020-11-24 | Pure Storage, Inc. | Scalable garbage collection |
US10860475B1 (en) | 2017-11-17 | 2020-12-08 | Pure Storage, Inc. | Hybrid flash translation layer |
US10884919B2 (en) | 2017-10-31 | 2021-01-05 | Pure Storage, Inc. | Memory management in a storage system |
US10908835B1 (en) | 2013-01-10 | 2021-02-02 | Pure Storage, Inc. | Reversing deletion of a virtual machine |
US10915813B2 (en) | 2018-01-31 | 2021-02-09 | Pure Storage, Inc. | Search acceleration for artificial intelligence |
US10929046B2 (en) | 2019-07-09 | 2021-02-23 | Pure Storage, Inc. | Identifying and relocating hot data to a cache determined with read velocity based on a threshold stored at a storage device |
US10944671B2 (en) | 2017-04-27 | 2021-03-09 | Pure Storage, Inc. | Efficient data forwarding in a networked device |
US10970395B1 (en) | 2018-01-18 | 2021-04-06 | Pure Storage, Inc | Security threat monitoring for a storage system |
US10983866B2 (en) | 2014-08-07 | 2021-04-20 | Pure Storage, Inc. | Mapping defective memory in a storage system |
US10990480B1 (en) | 2019-04-05 | 2021-04-27 | Pure Storage, Inc. | Performance of RAID rebuild operations by a storage group controller of a storage system |
US11010233B1 (en) | 2018-01-18 | 2021-05-18 | Pure Storage, Inc | Hardware-based system monitoring |
US11032259B1 (en) | 2012-09-26 | 2021-06-08 | Pure Storage, Inc. | Data protection in a storage system |
US11036583B2 (en) | 2014-06-04 | 2021-06-15 | Pure Storage, Inc. | Rebuilding data across storage nodes |
US11036596B1 (en) | 2018-02-18 | 2021-06-15 | Pure Storage, Inc. | System for delaying acknowledgements on open NAND locations until durability has been confirmed |
US11070382B2 (en) | 2015-10-23 | 2021-07-20 | Pure Storage, Inc. | Communication in a distributed architecture |
US11080154B2 (en) | 2014-08-07 | 2021-08-03 | Pure Storage, Inc. | Recovering error corrected data |
US11086713B1 (en) | 2019-07-23 | 2021-08-10 | Pure Storage, Inc. | Optimized end-to-end integrity storage system |
US11093146B2 (en) | 2017-01-12 | 2021-08-17 | Pure Storage, Inc. | Automatic load rebalancing of a write group |
US11099986B2 (en) | 2019-04-12 | 2021-08-24 | Pure Storage, Inc. | Efficient transfer of memory contents |
US11113409B2 (en) | 2018-10-26 | 2021-09-07 | Pure Storage, Inc. | Efficient rekey in a transparent decrypting storage array |
US11119657B2 (en) | 2016-10-28 | 2021-09-14 | Pure Storage, Inc. | Dynamic access in flash system |
US11128448B1 (en) | 2013-11-06 | 2021-09-21 | Pure Storage, Inc. | Quorum-aware secret sharing |
US11133076B2 (en) | 2018-09-06 | 2021-09-28 | Pure Storage, Inc. | Efficient relocation of data between storage devices of a storage system |
US11144638B1 (en) | 2018-01-18 | 2021-10-12 | Pure Storage, Inc. | Method for storage system detection and alerting on potential malicious action |
US11188269B2 (en) | 2015-03-27 | 2021-11-30 | Pure Storage, Inc. | Configuration for multiple logical storage arrays |
US11194759B2 (en) | 2018-09-06 | 2021-12-07 | Pure Storage, Inc. | Optimizing local data relocation operations of a storage device of a storage system |
US11194473B1 (en) | 2019-01-23 | 2021-12-07 | Pure Storage, Inc. | Programming frequently read data to low latency portions of a solid-state storage array |
US11231956B2 (en) | 2015-05-19 | 2022-01-25 | Pure Storage, Inc. | Committed transactions in a storage system |
US11249999B2 (en) | 2015-09-04 | 2022-02-15 | Pure Storage, Inc. | Memory efficient searching |
US11269884B2 (en) | 2015-09-04 | 2022-03-08 | Pure Storage, Inc. | Dynamically resizable structures for approximate membership queries |
US11275509B1 (en) | 2010-09-15 | 2022-03-15 | Pure Storage, Inc. | Intelligently sizing high latency I/O requests in a storage environment |
US11281394B2 (en) | 2019-06-24 | 2022-03-22 | Pure Storage, Inc. | Replication across partitioning schemes in a distributed storage system |
US11281577B1 (en) | 2018-06-19 | 2022-03-22 | Pure Storage, Inc. | Garbage collection tuning for low drive wear |
US11307772B1 (en) | 2010-09-15 | 2022-04-19 | Pure Storage, Inc. | Responding to variable response time behavior in a storage environment |
US11334254B2 (en) | 2019-03-29 | 2022-05-17 | Pure Storage, Inc. | Reliability based flash page sizing |
US11341136B2 (en) | 2015-09-04 | 2022-05-24 | Pure Storage, Inc. | Dynamically resizable structures for approximate membership queries |
US11341236B2 (en) | 2019-11-22 | 2022-05-24 | Pure Storage, Inc. | Traffic-based detection of a security threat to a storage system |
US11385792B2 (en) | 2018-04-27 | 2022-07-12 | Pure Storage, Inc. | High availability controller pair transitioning |
US11397674B1 (en) | 2019-04-03 | 2022-07-26 | Pure Storage, Inc. | Optimizing garbage collection across heterogeneous flash devices |
US11399063B2 (en) | 2014-06-04 | 2022-07-26 | Pure Storage, Inc. | Network authentication for a storage system |
US11403043B2 (en) | 2019-10-15 | 2022-08-02 | Pure Storage, Inc. | Efficient data compression by grouping similar data within a data segment |
US11403019B2 (en) | 2017-04-21 | 2022-08-02 | Pure Storage, Inc. | Deduplication-aware per-tenant encryption |
US11422751B2 (en) | 2019-07-18 | 2022-08-23 | Pure Storage, Inc. | Creating a virtual storage system |
US11436023B2 (en) | 2018-05-31 | 2022-09-06 | Pure Storage, Inc. | Mechanism for updating host file system and flash translation layer based on underlying NAND technology |
US11449485B1 (en) | 2017-03-30 | 2022-09-20 | Pure Storage, Inc. | Sequence invalidation consolidation in a storage system |
US11487665B2 (en) | 2019-06-05 | 2022-11-01 | Pure Storage, Inc. | Tiered caching of data in a storage system |
US11494109B1 (en) | 2018-02-22 | 2022-11-08 | Pure Storage, Inc. | Erase block trimming for heterogenous flash memory storage devices |
US11500788B2 (en) | 2019-11-22 | 2022-11-15 | Pure Storage, Inc. | Logical address based authorization of operations with respect to a storage system |
US11520907B1 (en) | 2019-11-22 | 2022-12-06 | Pure Storage, Inc. | Storage system snapshot retention based on encrypted data |
US11550481B2 (en) | 2016-12-19 | 2023-01-10 | Pure Storage, Inc. | Efficiently writing data in a zoned drive storage system |
US11588633B1 (en) | 2019-03-15 | 2023-02-21 | Pure Storage, Inc. | Decommissioning keys in a decryption storage system |
US11614893B2 (en) | 2010-09-15 | 2023-03-28 | Pure Storage, Inc. | Optimizing storage device access based on latency |
US11615185B2 (en) | 2019-11-22 | 2023-03-28 | Pure Storage, Inc. | Multi-layer security threat detection for a storage system |
US11625481B2 (en) | 2019-11-22 | 2023-04-11 | Pure Storage, Inc. | Selective throttling of operations potentially related to a security threat to a storage system |
US11636031B2 (en) | 2011-08-11 | 2023-04-25 | Pure Storage, Inc. | Optimized inline deduplication |
US11645162B2 (en) | 2019-11-22 | 2023-05-09 | Pure Storage, Inc. | Recovery point determination for data restoration in a storage system |
US11651075B2 (en) | 2019-11-22 | 2023-05-16 | Pure Storage, Inc. | Extensible attack monitoring by a storage system |
US11657155B2 (en) | 2019-11-22 | 2023-05-23 | Pure Storage, Inc | Snapshot delta metric based determination of a possible ransomware attack against data maintained by a storage system |
US11675898B2 (en) | 2019-11-22 | 2023-06-13 | Pure Storage, Inc. | Recovery dataset management for security threat monitoring |
US11687418B2 (en) | 2019-11-22 | 2023-06-27 | Pure Storage, Inc. | Automatic generation of recovery plans specific to individual storage elements |
US11704036B2 (en) | 2016-05-02 | 2023-07-18 | Pure Storage, Inc. | Deduplication decision based on metrics |
US11720714B2 (en) | 2019-11-22 | 2023-08-08 | Pure Storage, Inc. | Inter-I/O relationship based detection of a security threat to a storage system |
US11720692B2 (en) | 2019-11-22 | 2023-08-08 | Pure Storage, Inc. | Hardware token based management of recovery datasets for a storage system |
US11733908B2 (en) | 2013-01-10 | 2023-08-22 | Pure Storage, Inc. | Delaying deletion of a dataset |
US11755751B2 (en) | 2019-11-22 | 2023-09-12 | Pure Storage, Inc. | Modify access restrictions in response to a possible attack against data stored by a storage system |
US11768623B2 (en) | 2013-01-10 | 2023-09-26 | Pure Storage, Inc. | Optimizing generalized transfers between storage systems |
US11775189B2 (en) | 2019-04-03 | 2023-10-03 | Pure Storage, Inc. | Segment level heterogeneity |
US11869586B2 (en) | 2018-07-11 | 2024-01-09 | Pure Storage, Inc. | Increased data protection by recovering data from partially-failed solid-state devices |
US11934322B1 (en) | 2018-04-05 | 2024-03-19 | Pure Storage, Inc. | Multiple encryption keys on storage drives |
US11941116B2 (en) | 2019-11-22 | 2024-03-26 | Pure Storage, Inc. | Ransomware-based data protection parameter modification |
US11947968B2 (en) | 2015-01-21 | 2024-04-02 | Pure Storage, Inc. | Efficient use of zone in a storage device |
US11963321B2 (en) | 2019-09-11 | 2024-04-16 | Pure Storage, Inc. | Low profile latching mechanism |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101658479B1 (en) | 2010-02-09 | 2016-09-21 | 삼성전자주식회사 | Nonvolatile memory device, operating method thereof and memory system including the same |
KR101691092B1 (en) | 2010-08-26 | 2016-12-30 | 삼성전자주식회사 | Nonvolatile memory device, operating method thereof and memory system including the same |
KR101691088B1 (en) | 2010-02-17 | 2016-12-29 | 삼성전자주식회사 | Nonvolatile memory device, operating method thereof and memory system including the same |
US9378831B2 (en) | 2010-02-09 | 2016-06-28 | Samsung Electronics Co., Ltd. | Nonvolatile memory devices, operating methods thereof and memory systems including the same |
US9324440B2 (en) | 2010-02-09 | 2016-04-26 | Samsung Electronics Co., Ltd. | Nonvolatile memory devices, operating methods thereof and memory systems including the same |
JP5788183B2 (en) | 2010-02-17 | 2015-09-30 | 三星電子株式会社Samsung Electronics Co.,Ltd. | Nonvolatile memory device, method of operating the same, and memory system including the same |
US8908431B2 (en) | 2010-02-17 | 2014-12-09 | Samsung Electronics Co., Ltd. | Control method of nonvolatile memory device |
US8923060B2 (en) | 2010-02-17 | 2014-12-30 | Samsung Electronics Co., Ltd. | Nonvolatile memory devices and operating methods thereof |
JP2011170956A (en) * | 2010-02-18 | 2011-09-01 | Samsung Electronics Co Ltd | Nonvolatile memory device, programming method thereof and memory system including the same |
US8553466B2 (en) * | 2010-03-04 | 2013-10-08 | Samsung Electronics Co., Ltd. | Non-volatile memory device, erasing method thereof, and memory system including the same |
US8792282B2 (en) | 2010-03-04 | 2014-07-29 | Samsung Electronics Co., Ltd. | Nonvolatile memory devices, memory systems and computing systems |
KR101762828B1 (en) | 2011-04-05 | 2017-07-31 | 삼성전자주식회사 | Nonvolatile memory device and operating method of nonvolatile memory device |
JP5775367B2 (en) * | 2011-06-06 | 2015-09-09 | キヤノン株式会社 | Information processing apparatus and control method thereof, mirroring system and RAID control apparatus |
US9009375B2 (en) | 2013-06-11 | 2015-04-14 | Lsi Corporation | Sharing of bypassed I/O transaction information |
US9058267B2 (en) | 2013-06-11 | 2015-06-16 | Avago Technologies General IP Singapore) Pte Ltd | I/O path selection |
KR102242022B1 (en) | 2013-09-16 | 2021-04-21 | 삼성전자주식회사 | Nonvolatile memory device and program method using thereof |
KR102272238B1 (en) * | 2014-09-02 | 2021-07-06 | 삼성전자주식회사 | Nonvolatile memory device and programming method thereof |
JP2017078958A (en) | 2015-10-20 | 2017-04-27 | 株式会社東芝 | Semiconductor device |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5802264A (en) * | 1991-11-15 | 1998-09-01 | Fujitsu Limited | Background data reconstruction in a storage device array system |
US5812814A (en) * | 1993-02-26 | 1998-09-22 | Kabushiki Kaisha Toshiba | Alternative flash EEPROM semiconductor memory system |
US6065096A (en) * | 1997-09-30 | 2000-05-16 | Lsi Logic Corporation | Integrated single chip dual mode raid controller |
US6233108B1 (en) * | 1996-04-08 | 2001-05-15 | Canon Kabushiki Kaisha | Storage device with the ability to check for defects in same |
US20030105922A1 (en) * | 2001-11-30 | 2003-06-05 | Kabushiki Kaisha Toshiba | Disk array apparatus and parity processing method therein |
US20040230698A1 (en) * | 1992-03-16 | 2004-11-18 | Takashi Oeda | Computer system including a device with a plurality of identifiers |
US20050086577A1 (en) * | 2001-12-17 | 2005-04-21 | Sipilae Teemu | Method and arrangement for enhancing search through trellis |
US7042664B2 (en) * | 2004-01-26 | 2006-05-09 | Seagate Technology Llc | Method and system for host programmable data storage device self-testing |
US7383380B2 (en) * | 2003-09-26 | 2008-06-03 | Hitachi, Ltd. | Array-type disk apparatus preventing lost data and providing improved failure tolerance |
US7558915B2 (en) * | 2005-06-06 | 2009-07-07 | Dell Products L.P. | System and method for updating the firmware of a device in a storage network |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3681766B2 (en) | 1994-01-10 | 2005-08-10 | 富士通株式会社 | Disk array device |
JP2541780B2 (en) | 1994-04-20 | 1996-10-09 | 茨城日本電気株式会社 | Mirror ring magnetic disk unit |
JP3090182B2 (en) | 1995-07-27 | 2000-09-18 | エヌイーシーソフト株式会社 | Alternative sector registration method |
JP3120753B2 (en) | 1997-05-28 | 2000-12-25 | 日本電気株式会社 | Disk array unit failure recovery device |
US5887164A (en) * | 1997-06-06 | 1999-03-23 | National Instruments Corporation | System and method for enabling a target computer to use storage resources of a host computer |
JPH11184643A (en) | 1997-12-22 | 1999-07-09 | Nec Corp | Managing method for disk array device and mechanically readable recording medium recording program |
JPH11306644A (en) | 1998-04-17 | 1999-11-05 | Nec Eng Ltd | Disk arraying device |
JP3601982B2 (en) | 1998-08-11 | 2004-12-15 | 日本電気株式会社 | Disk array device control method and disk array device |
US6772108B1 (en) * | 1999-09-22 | 2004-08-03 | Netcell Corp. | Raid controller system and method with ATA emulation host interface |
US6728833B2 (en) * | 2002-02-28 | 2004-04-27 | International Business Machines Corporation | Upgrading firmware on disks of the raid storage system without deactivating the server |
JP2003316525A (en) | 2002-04-26 | 2003-11-07 | Seiko Epson Corp | Disk array controller |
JP2004185477A (en) | 2002-12-05 | 2004-07-02 | Hitachi Ltd | Optical storage medium array device and data transfer method |
US7167929B2 (en) | 2003-01-13 | 2007-01-23 | Sierra Logic | Integrated-circuit implementation of a storage-shelf router and a path controller card for combined use in high-availability mass-storage-device shelves that may be incorporated within disk arrays, and a storage-shelf-interface tunneling method and system |
JP3960257B2 (en) | 2003-04-25 | 2007-08-15 | セイコーエプソン株式会社 | Optical communication module, optical communication device, and manufacturing method thereof |
JP2005122338A (en) | 2003-10-15 | 2005-05-12 | Hitachi Ltd | Disk array device having spare disk drive, and data sparing method |
EP1566797B1 (en) | 2004-02-19 | 2008-04-23 | Samsung Electronics Co., Ltd. | Method of controlling the idle mode of hard disc drives and apparatus therefor |
CN101356506B (en) | 2005-08-25 | 2014-01-08 | 晶像股份有限公司 | Smart scalable storage switch architecture |
US20070067563A1 (en) * | 2005-09-19 | 2007-03-22 | Lsi Logic Corporation | Updating disk drive firmware behind RAID controllers |
JP2007188372A (en) | 2006-01-16 | 2007-07-26 | Hitachi Ltd | Disk array controller |
JP2009075716A (en) * | 2007-09-19 | 2009-04-09 | Nec Corp | Disk array device |
JP4399021B1 (en) | 2008-10-29 | 2010-01-13 | 株式会社東芝 | Disk array control device and storage device |
-
2008
- 2008-10-29 JP JP2008278646A patent/JP4399021B1/en not_active Expired - Fee Related
-
2009
- 2009-06-16 US US12/485,686 patent/US20100106905A1/en not_active Abandoned
-
2011
- 2011-06-09 US US13/157,011 patent/US8433882B2/en not_active Expired - Fee Related
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5802264A (en) * | 1991-11-15 | 1998-09-01 | Fujitsu Limited | Background data reconstruction in a storage device array system |
US20040230698A1 (en) * | 1992-03-16 | 2004-11-18 | Takashi Oeda | Computer system including a device with a plurality of identifiers |
US5812814A (en) * | 1993-02-26 | 1998-09-22 | Kabushiki Kaisha Toshiba | Alternative flash EEPROM semiconductor memory system |
US6233108B1 (en) * | 1996-04-08 | 2001-05-15 | Canon Kabushiki Kaisha | Storage device with the ability to check for defects in same |
US6065096A (en) * | 1997-09-30 | 2000-05-16 | Lsi Logic Corporation | Integrated single chip dual mode raid controller |
US20030105922A1 (en) * | 2001-11-30 | 2003-06-05 | Kabushiki Kaisha Toshiba | Disk array apparatus and parity processing method therein |
US20050086577A1 (en) * | 2001-12-17 | 2005-04-21 | Sipilae Teemu | Method and arrangement for enhancing search through trellis |
US7383380B2 (en) * | 2003-09-26 | 2008-06-03 | Hitachi, Ltd. | Array-type disk apparatus preventing lost data and providing improved failure tolerance |
US7042664B2 (en) * | 2004-01-26 | 2006-05-09 | Seagate Technology Llc | Method and system for host programmable data storage device self-testing |
US7558915B2 (en) * | 2005-06-06 | 2009-07-07 | Dell Products L.P. | System and method for updating the firmware of a device in a storage network |
Cited By (220)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110238913A1 (en) * | 2008-10-29 | 2011-09-29 | Takehiko Kurashige | Disk array control device and storage device |
US8433882B2 (en) | 2008-10-29 | 2013-04-30 | Kabushiki Kaisha Toshiba | Disk array control device and storage device |
US8140712B2 (en) | 2009-07-17 | 2012-03-20 | Sandforce, Inc. | System, method, and computer program product for inserting a gap in information sent from a drive to a host device |
US20110016233A1 (en) * | 2009-07-17 | 2011-01-20 | Ross John Stenfort | System, method, and computer program product for inserting a gap in information sent from a drive to a host device |
US8516166B2 (en) | 2009-07-20 | 2013-08-20 | Lsi Corporation | System, method, and computer program product for reducing a rate of data transfer to at least a portion of memory |
US20150113335A1 (en) * | 2009-10-05 | 2015-04-23 | Lsi Corporation | Sending failure information from a solid state drive (ssd) to a host device |
US20110083047A1 (en) * | 2009-10-05 | 2011-04-07 | Ross John Stenfort | System, method, and computer program product for sending failure information from a serial ata (sata) solid state drive (ssd) to a host device |
US8108737B2 (en) * | 2009-10-05 | 2012-01-31 | Sandforce, Inc. | System, method, and computer program product for sending failure information from a serial ATA (SATA) solid state drive (SSD) to a host device |
US8453018B2 (en) * | 2009-10-05 | 2013-05-28 | Lsi Corporation | Sending failure information from a solid state drive (SSD) to a host device |
US20130254597A1 (en) * | 2009-10-05 | 2013-09-26 | Lsi Corporation | Sending failure information from a solid state drive (ssd) to a host device |
US8782473B2 (en) * | 2009-10-05 | 2014-07-15 | Lsi Corporation | Sending failure information from a solid state drive (SSD) to a host device |
US9489249B2 (en) * | 2009-10-05 | 2016-11-08 | Seagate Technology Llc | Sending failure information from a solid state drive (SSD) to a host drive |
US10353630B1 (en) | 2010-09-15 | 2019-07-16 | Pure Storage, Inc. | Simultaneously servicing high latency operations in a storage system |
US11614893B2 (en) | 2010-09-15 | 2023-03-28 | Pure Storage, Inc. | Optimizing storage device access based on latency |
US9684460B1 (en) * | 2010-09-15 | 2017-06-20 | Pure Storage, Inc. | Proactively correcting behavior that may affect I/O performance in a non-volatile semiconductor storage device |
US10228865B1 (en) | 2010-09-15 | 2019-03-12 | Pure Storage, Inc. | Maintaining a target number of storage devices for variable I/O response times in a storage system |
US10156998B1 (en) | 2010-09-15 | 2018-12-18 | Pure Storage, Inc. | Reducing a number of storage devices in a storage system that are exhibiting variable I/O response times |
US11307772B1 (en) | 2010-09-15 | 2022-04-19 | Pure Storage, Inc. | Responding to variable response time behavior in a storage environment |
US10126982B1 (en) | 2010-09-15 | 2018-11-13 | Pure Storage, Inc. | Adjusting a number of storage devices in a storage system that may be utilized to simultaneously service high latency operations |
US11275509B1 (en) | 2010-09-15 | 2022-03-15 | Pure Storage, Inc. | Intelligently sizing high latency I/O requests in a storage environment |
US11579974B1 (en) | 2010-09-28 | 2023-02-14 | Pure Storage, Inc. | Data protection using intra-device parity and intra-device parity |
US10180879B1 (en) | 2010-09-28 | 2019-01-15 | Pure Storage, Inc. | Inter-device and intra-device protection data |
US11797386B2 (en) | 2010-09-28 | 2023-10-24 | Pure Storage, Inc. | Flexible RAID layouts in a storage system |
US10452289B1 (en) | 2010-09-28 | 2019-10-22 | Pure Storage, Inc. | Dynamically adjusting an amount of protection data stored in a storage system |
US10810083B1 (en) | 2010-09-28 | 2020-10-20 | Pure Storage, Inc. | Decreasing parity overhead in a storage system |
US10817375B2 (en) | 2010-09-28 | 2020-10-27 | Pure Storage, Inc. | Generating protection data in a storage system |
US11435904B1 (en) | 2010-09-28 | 2022-09-06 | Pure Storage, Inc. | Dynamic protection data in a storage system |
US8984225B2 (en) | 2011-06-22 | 2015-03-17 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Method to improve the performance of a read ahead cache process in a storage array |
US11636031B2 (en) | 2011-08-11 | 2023-04-25 | Pure Storage, Inc. | Optimized inline deduplication |
US10540343B2 (en) | 2011-10-14 | 2020-01-21 | Pure Storage, Inc. | Data object attribute based event detection in a storage system |
US9811551B1 (en) | 2011-10-14 | 2017-11-07 | Pure Storage, Inc. | Utilizing multiple fingerprint tables in a deduplicating storage system |
US11341117B2 (en) | 2011-10-14 | 2022-05-24 | Pure Storage, Inc. | Deduplication table management |
US10061798B2 (en) | 2011-10-14 | 2018-08-28 | Pure Storage, Inc. | Method for maintaining multiple fingerprint tables in a deduplicating storage system |
US10089010B1 (en) | 2012-03-15 | 2018-10-02 | Pure Storage, Inc. | Identifying fractal regions across multiple storage devices |
US9792045B1 (en) | 2012-03-15 | 2017-10-17 | Pure Storage, Inc. | Distributing data blocks across a plurality of storage devices |
US10521120B1 (en) | 2012-03-15 | 2019-12-31 | Pure Storage, Inc. | Intelligently mapping virtual blocks to physical blocks in a storage system |
US11032259B1 (en) | 2012-09-26 | 2021-06-08 | Pure Storage, Inc. | Data protection in a storage system |
US10284367B1 (en) | 2012-09-26 | 2019-05-07 | Pure Storage, Inc. | Encrypting data in a storage system using a plurality of encryption keys |
US11924183B2 (en) | 2012-09-26 | 2024-03-05 | Pure Storage, Inc. | Encrypting data in a non-volatile memory express (‘NVMe’) storage device |
US10623386B1 (en) | 2012-09-26 | 2020-04-14 | Pure Storage, Inc. | Secret sharing data protection in a storage system |
US11733908B2 (en) | 2013-01-10 | 2023-08-22 | Pure Storage, Inc. | Delaying deletion of a dataset |
US9880779B1 (en) | 2013-01-10 | 2018-01-30 | Pure Storage, Inc. | Processing copy offload requests in a storage system |
US11099769B1 (en) | 2013-01-10 | 2021-08-24 | Pure Storage, Inc. | Copying data without accessing the data |
US11662936B2 (en) | 2013-01-10 | 2023-05-30 | Pure Storage, Inc. | Writing data using references to previously stored data |
US10013317B1 (en) | 2013-01-10 | 2018-07-03 | Pure Storage, Inc. | Restoring a volume in a storage system |
US10908835B1 (en) | 2013-01-10 | 2021-02-02 | Pure Storage, Inc. | Reversing deletion of a virtual machine |
US11768623B2 (en) | 2013-01-10 | 2023-09-26 | Pure Storage, Inc. | Optimizing generalized transfers between storage systems |
US9891858B1 (en) | 2013-01-10 | 2018-02-13 | Pure Storage, Inc. | Deduplication of regions with a storage system |
US11573727B1 (en) | 2013-01-10 | 2023-02-07 | Pure Storage, Inc. | Virtual machine backup and restoration |
US11853584B1 (en) | 2013-01-10 | 2023-12-26 | Pure Storage, Inc. | Generating volume snapshots |
US10585617B1 (en) | 2013-01-10 | 2020-03-10 | Pure Storage, Inc. | Buffering copy requests in a storage system |
US20140204526A1 (en) * | 2013-01-22 | 2014-07-24 | Hon Hai Precision Industry Co., Ltd. | Portable computer with data storage device |
US11706024B2 (en) | 2013-11-06 | 2023-07-18 | Pure Storage, Inc. | Secret distribution among storage devices |
US11128448B1 (en) | 2013-11-06 | 2021-09-21 | Pure Storage, Inc. | Quorum-aware secret sharing |
US10365858B2 (en) | 2013-11-06 | 2019-07-30 | Pure Storage, Inc. | Thin provisioning in a storage device |
US11169745B1 (en) | 2013-11-06 | 2021-11-09 | Pure Storage, Inc. | Exporting an address space in a thin-provisioned storage device |
US10887086B1 (en) | 2013-11-06 | 2021-01-05 | Pure Storage, Inc. | Protecting data in a storage system |
US10263770B2 (en) | 2013-11-06 | 2019-04-16 | Pure Storage, Inc. | Data protection in a storage system using external secrets |
US11899986B2 (en) | 2013-11-06 | 2024-02-13 | Pure Storage, Inc. | Expanding an address space supported by a storage system |
US9804973B1 (en) | 2014-01-09 | 2017-10-31 | Pure Storage, Inc. | Using frequency domain to prioritize storage of metadata in a cache |
US10191857B1 (en) | 2014-01-09 | 2019-01-29 | Pure Storage, Inc. | Machine learning for metadata cache management |
US11847336B1 (en) | 2014-03-20 | 2023-12-19 | Pure Storage, Inc. | Efficient replication using metadata |
US10656864B2 (en) | 2014-03-20 | 2020-05-19 | Pure Storage, Inc. | Data replication within a flash storage array |
US9779268B1 (en) | 2014-06-03 | 2017-10-03 | Pure Storage, Inc. | Utilizing a non-repeating identifier to encrypt data |
US10037440B1 (en) | 2014-06-03 | 2018-07-31 | Pure Storage, Inc. | Generating a unique encryption key |
US11841984B1 (en) | 2014-06-03 | 2023-12-12 | Pure Storage, Inc. | Encrypting data with a unique key |
US10607034B1 (en) | 2014-06-03 | 2020-03-31 | Pure Storage, Inc. | Utilizing an address-independent, non-repeating encryption key to encrypt data |
US11399063B2 (en) | 2014-06-04 | 2022-07-26 | Pure Storage, Inc. | Network authentication for a storage system |
US11036583B2 (en) | 2014-06-04 | 2021-06-15 | Pure Storage, Inc. | Rebuilding data across storage nodes |
US11561720B2 (en) | 2014-06-25 | 2023-01-24 | Pure Storage, Inc. | Enabling access to a partially migrated dataset |
US10346084B1 (en) | 2014-06-25 | 2019-07-09 | Pure Storage, Inc. | Replication and snapshots for flash storage systems |
US9817608B1 (en) | 2014-06-25 | 2017-11-14 | Pure Storage, Inc. | Replication and intermediate read-write state for mediums |
US10496556B1 (en) | 2014-06-25 | 2019-12-03 | Pure Storage, Inc. | Dynamic data protection within a flash storage system |
US11003380B1 (en) | 2014-06-25 | 2021-05-11 | Pure Storage, Inc. | Minimizing data transfer during snapshot-based replication |
US11221970B1 (en) | 2014-06-25 | 2022-01-11 | Pure Storage, Inc. | Consistent application of protection group management policies across multiple storage systems |
US10348675B1 (en) | 2014-07-24 | 2019-07-09 | Pure Storage, Inc. | Distributed management of a storage system |
US10296469B1 (en) | 2014-07-24 | 2019-05-21 | Pure Storage, Inc. | Access control in a flash storage system |
US11080154B2 (en) | 2014-08-07 | 2021-08-03 | Pure Storage, Inc. | Recovering error corrected data |
US10983866B2 (en) | 2014-08-07 | 2021-04-20 | Pure Storage, Inc. | Mapping defective memory in a storage system |
US9864761B1 (en) | 2014-08-08 | 2018-01-09 | Pure Storage, Inc. | Read optimization operations in a storage system |
US11163448B1 (en) | 2014-09-08 | 2021-11-02 | Pure Storage, Inc. | Indicating total storage capacity for a storage device |
US10430079B2 (en) | 2014-09-08 | 2019-10-01 | Pure Storage, Inc. | Adjusting storage capacity in a computing system |
US11914861B2 (en) | 2014-09-08 | 2024-02-27 | Pure Storage, Inc. | Projecting capacity in a storage system based on data reduction levels |
US10999157B1 (en) | 2014-10-02 | 2021-05-04 | Pure Storage, Inc. | Remote cloud-based monitoring of storage systems |
US11444849B2 (en) | 2014-10-02 | 2022-09-13 | Pure Storage, Inc. | Remote emulation of a storage system |
US11811619B2 (en) | 2014-10-02 | 2023-11-07 | Pure Storage, Inc. | Emulating a local interface to a remotely managed storage system |
US10164841B2 (en) | 2014-10-02 | 2018-12-25 | Pure Storage, Inc. | Cloud assist for storage systems |
US11442640B1 (en) | 2014-10-07 | 2022-09-13 | Pure Storage, Inc. | Utilizing unmapped and unknown states in a replicated storage system |
US10430282B2 (en) | 2014-10-07 | 2019-10-01 | Pure Storage, Inc. | Optimizing replication by distinguishing user and system write activity |
US10838640B1 (en) | 2014-10-07 | 2020-11-17 | Pure Storage, Inc. | Multi-source data replication |
US10114574B1 (en) | 2014-10-07 | 2018-10-30 | Pure Storage, Inc. | Optimizing storage allocation in a storage system |
US9727485B1 (en) | 2014-11-24 | 2017-08-08 | Pure Storage, Inc. | Metadata rewrite and flatten optimization |
US10254964B1 (en) | 2014-11-24 | 2019-04-09 | Pure Storage, Inc. | Managing mapping information in a storage system |
US9977600B1 (en) | 2014-11-24 | 2018-05-22 | Pure Storage, Inc. | Optimizing flattening in a multi-level data structure |
US11662909B2 (en) | 2014-11-24 | 2023-05-30 | Pure Storage, Inc | Metadata management in a storage system |
US10482061B1 (en) | 2014-12-01 | 2019-11-19 | Pure Storage, Inc. | Removing invalid data from a dataset in advance of copying the dataset |
US10235065B1 (en) | 2014-12-11 | 2019-03-19 | Pure Storage, Inc. | Datasheet replication in a cloud computing environment |
US11775392B2 (en) | 2014-12-11 | 2023-10-03 | Pure Storage, Inc. | Indirect replication of a dataset |
US10248516B1 (en) | 2014-12-11 | 2019-04-02 | Pure Storage, Inc. | Processing read and write requests during reconstruction in a storage system |
US11061786B1 (en) | 2014-12-11 | 2021-07-13 | Pure Storage, Inc. | Cloud-based disaster recovery of a storage system |
US10838834B1 (en) | 2014-12-11 | 2020-11-17 | Pure Storage, Inc. | Managing read and write requests targeting a failed storage region in a storage system |
US11561949B1 (en) | 2014-12-12 | 2023-01-24 | Pure Storage, Inc. | Reconstructing deduplicated data |
US9864769B2 (en) | 2014-12-12 | 2018-01-09 | Pure Storage, Inc. | Storing data utilizing repeating pattern detection |
US10783131B1 (en) | 2014-12-12 | 2020-09-22 | Pure Storage, Inc. | Deduplicating patterned data in a storage system |
US10545987B2 (en) | 2014-12-19 | 2020-01-28 | Pure Storage, Inc. | Replication to the cloud |
US11803567B1 (en) | 2014-12-19 | 2023-10-31 | Pure Storage, Inc. | Restoration of a dataset from a cloud |
US11947968B2 (en) | 2015-01-21 | 2024-04-02 | Pure Storage, Inc. | Efficient use of zone in a storage device |
US11169817B1 (en) | 2015-01-21 | 2021-11-09 | Pure Storage, Inc. | Optimizing a boot sequence in a storage system |
US10296354B1 (en) | 2015-01-21 | 2019-05-21 | Pure Storage, Inc. | Optimized boot operations within a flash storage array |
US10782892B1 (en) | 2015-02-18 | 2020-09-22 | Pure Storage, Inc. | Reclaiming storage space in a storage subsystem |
US11886707B2 (en) | 2015-02-18 | 2024-01-30 | Pure Storage, Inc. | Dataset space reclamation |
US11487438B1 (en) | 2015-02-18 | 2022-11-01 | Pure Storage, Inc. | Recovering allocated storage space in a storage system |
US10809921B1 (en) | 2015-02-18 | 2020-10-20 | Pure Storage, Inc. | Optimizing space reclamation in a storage system |
US9710165B1 (en) | 2015-02-18 | 2017-07-18 | Pure Storage, Inc. | Identifying volume candidates for space reclamation |
US11188269B2 (en) | 2015-03-27 | 2021-11-30 | Pure Storage, Inc. | Configuration for multiple logical storage arrays |
US10693964B2 (en) | 2015-04-09 | 2020-06-23 | Pure Storage, Inc. | Storage unit communication within a storage system |
US11231956B2 (en) | 2015-05-19 | 2022-01-25 | Pure Storage, Inc. | Committed transactions in a storage system |
US11010080B2 (en) | 2015-06-23 | 2021-05-18 | Pure Storage, Inc. | Layout based memory writes |
US10310740B2 (en) | 2015-06-23 | 2019-06-04 | Pure Storage, Inc. | Aligning memory access operations to a geometry of a storage device |
US10564882B2 (en) | 2015-06-23 | 2020-02-18 | Pure Storage, Inc. | Writing data to storage device based on information about memory in the storage device |
US11341136B2 (en) | 2015-09-04 | 2022-05-24 | Pure Storage, Inc. | Dynamically resizable structures for approximate membership queries |
US11269884B2 (en) | 2015-09-04 | 2022-03-08 | Pure Storage, Inc. | Dynamically resizable structures for approximate membership queries |
US11249999B2 (en) | 2015-09-04 | 2022-02-15 | Pure Storage, Inc. | Memory efficient searching |
US11070382B2 (en) | 2015-10-23 | 2021-07-20 | Pure Storage, Inc. | Communication in a distributed architecture |
US11704036B2 (en) | 2016-05-02 | 2023-07-18 | Pure Storage, Inc. | Deduplication decision based on metrics |
US10452297B1 (en) | 2016-05-02 | 2019-10-22 | Pure Storage, Inc. | Generating and optimizing summary index levels in a deduplication storage system |
US10776034B2 (en) | 2016-07-26 | 2020-09-15 | Pure Storage, Inc. | Adaptive data migration |
US10191662B2 (en) | 2016-10-04 | 2019-01-29 | Pure Storage, Inc. | Dynamic allocation of segments in a flash storage system |
US11385999B2 (en) | 2016-10-04 | 2022-07-12 | Pure Storage, Inc. | Efficient scaling and improved bandwidth of storage system |
US10613974B2 (en) | 2016-10-04 | 2020-04-07 | Pure Storage, Inc. | Peer-to-peer non-volatile random-access memory |
US10162523B2 (en) | 2016-10-04 | 2018-12-25 | Pure Storage, Inc. | Migrating data between volumes using virtual copy operation |
US10756816B1 (en) | 2016-10-04 | 2020-08-25 | Pure Storage, Inc. | Optimized fibre channel and non-volatile memory express access |
US11029853B2 (en) | 2016-10-04 | 2021-06-08 | Pure Storage, Inc. | Dynamic segment allocation for write requests by a storage system |
US11036393B2 (en) | 2016-10-04 | 2021-06-15 | Pure Storage, Inc. | Migrating data between volumes using virtual copy operation |
US10545861B2 (en) | 2016-10-04 | 2020-01-28 | Pure Storage, Inc. | Distributed integrated high-speed solid-state non-volatile random-access memory |
US10656850B2 (en) | 2016-10-28 | 2020-05-19 | Pure Storage, Inc. | Efficient volume replication in a storage system |
US11640244B2 (en) | 2016-10-28 | 2023-05-02 | Pure Storage, Inc. | Intelligent block deallocation verification |
US11119657B2 (en) | 2016-10-28 | 2021-09-14 | Pure Storage, Inc. | Dynamic access in flash system |
US10185505B1 (en) | 2016-10-28 | 2019-01-22 | Pure Storage, Inc. | Reading a portion of data to replicate a volume based on sequence numbers |
US11119656B2 (en) | 2016-10-31 | 2021-09-14 | Pure Storage, Inc. | Reducing data distribution inefficiencies |
US10359942B2 (en) | 2016-10-31 | 2019-07-23 | Pure Storage, Inc. | Deduplication aware scalable content placement |
US10452290B2 (en) | 2016-12-19 | 2019-10-22 | Pure Storage, Inc. | Block consolidation in a direct-mapped flash storage system |
US11054996B2 (en) | 2016-12-19 | 2021-07-06 | Pure Storage, Inc. | Efficient writing in a flash storage system |
US11550481B2 (en) | 2016-12-19 | 2023-01-10 | Pure Storage, Inc. | Efficiently writing data in a zoned drive storage system |
US11093146B2 (en) | 2017-01-12 | 2021-08-17 | Pure Storage, Inc. | Automatic load rebalancing of a write group |
US11449485B1 (en) | 2017-03-30 | 2022-09-20 | Pure Storage, Inc. | Sequence invalidation consolidation in a storage system |
US11403019B2 (en) | 2017-04-21 | 2022-08-02 | Pure Storage, Inc. | Deduplication-aware per-tenant encryption |
US10944671B2 (en) | 2017-04-27 | 2021-03-09 | Pure Storage, Inc. | Efficient data forwarding in a networked device |
US10747437B2 (en) | 2017-05-02 | 2020-08-18 | Quanta Computer Inc. | SAS hard disk drive update via management controller |
US10884624B2 (en) | 2017-05-02 | 2021-01-05 | Quanta Computer Inc. | SAS/SATA hard disk drive update via management controller |
CN108804117A (en) * | 2017-05-02 | 2018-11-13 | 广达电脑股份有限公司 | The method and system of hard disk is updated by Management Controller |
US11093324B2 (en) | 2017-07-31 | 2021-08-17 | Pure Storage, Inc. | Dynamic data verification and recovery in a storage system |
US10402266B1 (en) | 2017-07-31 | 2019-09-03 | Pure Storage, Inc. | Redundant array of independent disks in a direct-mapped flash storage system |
US11705201B2 (en) | 2017-08-30 | 2023-07-18 | Micron Technology, Inc. | Log data storage for flash memory |
WO2019046128A1 (en) * | 2017-08-30 | 2019-03-07 | Micron Technology, Inc. | Log data storage for flash memory |
CN111133410A (en) * | 2017-08-30 | 2020-05-08 | 美光科技公司 | Log data storage for flash memory |
US11100996B2 (en) | 2017-08-30 | 2021-08-24 | Micron Technology, Inc. | Log data storage for flash memory |
US11921908B2 (en) | 2017-08-31 | 2024-03-05 | Pure Storage, Inc. | Writing data to compressed and encrypted volumes |
US10901660B1 (en) | 2017-08-31 | 2021-01-26 | Pure Storage, Inc. | Volume compressed header identification |
US10831935B2 (en) | 2017-08-31 | 2020-11-10 | Pure Storage, Inc. | Encryption management with host-side data reduction |
US11436378B2 (en) | 2017-08-31 | 2022-09-06 | Pure Storage, Inc. | Block-based compression |
US11520936B1 (en) | 2017-08-31 | 2022-12-06 | Pure Storage, Inc. | Reducing metadata for volumes |
US10776202B1 (en) | 2017-09-22 | 2020-09-15 | Pure Storage, Inc. | Drive, blade, or data shard decommission via RAID geometry shrinkage |
US10789211B1 (en) | 2017-10-04 | 2020-09-29 | Pure Storage, Inc. | Feature-based deduplication |
US11537563B2 (en) | 2017-10-04 | 2022-12-27 | Pure Storage, Inc. | Determining content-dependent deltas between data sectors |
US10884919B2 (en) | 2017-10-31 | 2021-01-05 | Pure Storage, Inc. | Memory management in a storage system |
US11275681B1 (en) | 2017-11-17 | 2022-03-15 | Pure Storage, Inc. | Segmented write requests |
US10860475B1 (en) | 2017-11-17 | 2020-12-08 | Pure Storage, Inc. | Hybrid flash translation layer |
US11010233B1 (en) | 2018-01-18 | 2021-05-18 | Pure Storage, Inc | Hardware-based system monitoring |
US10970395B1 (en) | 2018-01-18 | 2021-04-06 | Pure Storage, Inc | Security threat monitoring for a storage system |
US11144638B1 (en) | 2018-01-18 | 2021-10-12 | Pure Storage, Inc. | Method for storage system detection and alerting on potential malicious action |
US11734097B1 (en) | 2018-01-18 | 2023-08-22 | Pure Storage, Inc. | Machine learning-based hardware component monitoring |
US10915813B2 (en) | 2018-01-31 | 2021-02-09 | Pure Storage, Inc. | Search acceleration for artificial intelligence |
US11036596B1 (en) | 2018-02-18 | 2021-06-15 | Pure Storage, Inc. | System for delaying acknowledgements on open NAND locations until durability has been confirmed |
US11249831B2 (en) | 2018-02-18 | 2022-02-15 | Pure Storage, Inc. | Intelligent durability acknowledgment in a storage system |
US11494109B1 (en) | 2018-02-22 | 2022-11-08 | Pure Storage, Inc. | Erase block trimming for heterogenous flash memory storage devices |
US11934322B1 (en) | 2018-04-05 | 2024-03-19 | Pure Storage, Inc. | Multiple encryption keys on storage drives |
US10678433B1 (en) | 2018-04-27 | 2020-06-09 | Pure Storage, Inc. | Resource-preserving system upgrade |
US11327655B2 (en) | 2018-04-27 | 2022-05-10 | Pure Storage, Inc. | Efficient resource upgrade |
US11385792B2 (en) | 2018-04-27 | 2022-07-12 | Pure Storage, Inc. | High availability controller pair transitioning |
US10678436B1 (en) | 2018-05-29 | 2020-06-09 | Pure Storage, Inc. | Using a PID controller to opportunistically compress more data during garbage collection |
US11436023B2 (en) | 2018-05-31 | 2022-09-06 | Pure Storage, Inc. | Mechanism for updating host file system and flash translation layer based on underlying NAND technology |
US10776046B1 (en) | 2018-06-08 | 2020-09-15 | Pure Storage, Inc. | Optimized non-uniform memory access |
US11281577B1 (en) | 2018-06-19 | 2022-03-22 | Pure Storage, Inc. | Garbage collection tuning for low drive wear |
US11869586B2 (en) | 2018-07-11 | 2024-01-09 | Pure Storage, Inc. | Increased data protection by recovering data from partially-failed solid-state devices |
US11194759B2 (en) | 2018-09-06 | 2021-12-07 | Pure Storage, Inc. | Optimizing local data relocation operations of a storage device of a storage system |
US11133076B2 (en) | 2018-09-06 | 2021-09-28 | Pure Storage, Inc. | Efficient relocation of data between storage devices of a storage system |
US11216369B2 (en) | 2018-10-25 | 2022-01-04 | Pure Storage, Inc. | Optimizing garbage collection using check pointed data sets |
US10846216B2 (en) | 2018-10-25 | 2020-11-24 | Pure Storage, Inc. | Scalable garbage collection |
US11113409B2 (en) | 2018-10-26 | 2021-09-07 | Pure Storage, Inc. | Efficient rekey in a transparent decrypting storage array |
US11194473B1 (en) | 2019-01-23 | 2021-12-07 | Pure Storage, Inc. | Programming frequently read data to low latency portions of a solid-state storage array |
US11588633B1 (en) | 2019-03-15 | 2023-02-21 | Pure Storage, Inc. | Decommissioning keys in a decryption storage system |
US11334254B2 (en) | 2019-03-29 | 2022-05-17 | Pure Storage, Inc. | Reliability based flash page sizing |
US11397674B1 (en) | 2019-04-03 | 2022-07-26 | Pure Storage, Inc. | Optimizing garbage collection across heterogeneous flash devices |
US11775189B2 (en) | 2019-04-03 | 2023-10-03 | Pure Storage, Inc. | Segment level heterogeneity |
US10990480B1 (en) | 2019-04-05 | 2021-04-27 | Pure Storage, Inc. | Performance of RAID rebuild operations by a storage group controller of a storage system |
US11099986B2 (en) | 2019-04-12 | 2021-08-24 | Pure Storage, Inc. | Efficient transfer of memory contents |
US11487665B2 (en) | 2019-06-05 | 2022-11-01 | Pure Storage, Inc. | Tiered caching of data in a storage system |
US11281394B2 (en) | 2019-06-24 | 2022-03-22 | Pure Storage, Inc. | Replication across partitioning schemes in a distributed storage system |
US10929046B2 (en) | 2019-07-09 | 2021-02-23 | Pure Storage, Inc. | Identifying and relocating hot data to a cache determined with read velocity based on a threshold stored at a storage device |
US11422751B2 (en) | 2019-07-18 | 2022-08-23 | Pure Storage, Inc. | Creating a virtual storage system |
US11086713B1 (en) | 2019-07-23 | 2021-08-10 | Pure Storage, Inc. | Optimized end-to-end integrity storage system |
US11963321B2 (en) | 2019-09-11 | 2024-04-16 | Pure Storage, Inc. | Low profile latching mechanism |
US11403043B2 (en) | 2019-10-15 | 2022-08-02 | Pure Storage, Inc. | Efficient data compression by grouping similar data within a data segment |
US11720692B2 (en) | 2019-11-22 | 2023-08-08 | Pure Storage, Inc. | Hardware token based management of recovery datasets for a storage system |
US11615185B2 (en) | 2019-11-22 | 2023-03-28 | Pure Storage, Inc. | Multi-layer security threat detection for a storage system |
US11625481B2 (en) | 2019-11-22 | 2023-04-11 | Pure Storage, Inc. | Selective throttling of operations potentially related to a security threat to a storage system |
US11755751B2 (en) | 2019-11-22 | 2023-09-12 | Pure Storage, Inc. | Modify access restrictions in response to a possible attack against data stored by a storage system |
US11341236B2 (en) | 2019-11-22 | 2022-05-24 | Pure Storage, Inc. | Traffic-based detection of a security threat to a storage system |
US11720691B2 (en) | 2019-11-22 | 2023-08-08 | Pure Storage, Inc. | Encryption indicator-based retention of recovery datasets for a storage system |
US11657146B2 (en) | 2019-11-22 | 2023-05-23 | Pure Storage, Inc. | Compressibility metric-based detection of a ransomware threat to a storage system |
US11720714B2 (en) | 2019-11-22 | 2023-08-08 | Pure Storage, Inc. | Inter-I/O relationship based detection of a security threat to a storage system |
US11645162B2 (en) | 2019-11-22 | 2023-05-09 | Pure Storage, Inc. | Recovery point determination for data restoration in a storage system |
US11520907B1 (en) | 2019-11-22 | 2022-12-06 | Pure Storage, Inc. | Storage system snapshot retention based on encrypted data |
US11651075B2 (en) | 2019-11-22 | 2023-05-16 | Pure Storage, Inc. | Extensible attack monitoring by a storage system |
US11687418B2 (en) | 2019-11-22 | 2023-06-27 | Pure Storage, Inc. | Automatic generation of recovery plans specific to individual storage elements |
US11500788B2 (en) | 2019-11-22 | 2022-11-15 | Pure Storage, Inc. | Logical address based authorization of operations with respect to a storage system |
US11941116B2 (en) | 2019-11-22 | 2024-03-26 | Pure Storage, Inc. | Ransomware-based data protection parameter modification |
US11675898B2 (en) | 2019-11-22 | 2023-06-13 | Pure Storage, Inc. | Recovery dataset management for security threat monitoring |
US11657155B2 (en) | 2019-11-22 | 2023-05-23 | Pure Storage, Inc | Snapshot delta metric based determination of a possible ransomware attack against data maintained by a storage system |
Also Published As
Publication number | Publication date |
---|---|
JP4399021B1 (en) | 2010-01-13 |
JP2010108174A (en) | 2010-05-13 |
US20110238913A1 (en) | 2011-09-29 |
US8433882B2 (en) | 2013-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8433882B2 (en) | Disk array control device and storage device | |
US8135902B2 (en) | Nonvolatile semiconductor memory drive, information processing apparatus and management method of storage area in nonvolatile semiconductor memory drive | |
US10055147B2 (en) | Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage | |
US8054686B2 (en) | Flash memory storage apparatus, flash memory controller, and switching method thereof | |
US8296467B2 (en) | Single-chip flash device with boot code transfer capability | |
TWI507869B (en) | System,apparatus,and method for virtualizing storage devices | |
US7302534B2 (en) | Dual media storage device | |
KR101395778B1 (en) | Memory card and memory system including the same and operating method thereof | |
US20110296084A1 (en) | Data storage apparatus and method of writing data | |
US20100161883A1 (en) | Nonvolatile Semiconductor Memory Drive and Data Management Method of Nonvolatile Semiconductor Memory Drive | |
US20080229046A1 (en) | Unified support for solid state storage | |
US20050097263A1 (en) | Flash-memory card-reader to IDE bridge | |
US8433847B2 (en) | Memory drive that can be operated like optical disk drive and method for virtualizing memory drive as optical disk drive | |
US9235501B2 (en) | Memory storage device, memory controller thereof, and method for programming data thereof | |
JP2008040948A (en) | Disk device and electronic equipment | |
US20090222613A1 (en) | Information processing apparatus and nonvolatile semiconductor memory drive | |
US20130173855A1 (en) | Method of operating storage device including volatile memory and nonvolatile memory | |
US8521946B2 (en) | Semiconductor disk devices and related methods of randomly accessing data | |
US8364930B2 (en) | Information processing apparatus and storage drive adapted to perform fault analysis by maintenance of tracing information | |
US8099544B2 (en) | Information processing apparatus and nonvolatile semiconductor memory drive | |
US20090222615A1 (en) | Information Processing Apparatus and Nonvolatile Semiconductor Memory Drive | |
US20100325348A1 (en) | Device of flash modules array | |
US20090222614A1 (en) | Information processing apparatus and nonvolatile semiconductor memory drive | |
US20090307389A1 (en) | Switchable access states for non-volatile storage devices | |
US20100082903A1 (en) | Non-volatile semiconductor memory drive, information processing apparatus and data access control method of the non-volatile semiconductor memory drive |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: KABUSHIKI KAISHA TOSHIBA,JAPAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:KURASHIGE, TAKEHIKO;YANO, JUNJI;SIGNING DATES FROM 20090528 TO 20090604;REEL/FRAME:022833/0367 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |