WO2023032121A1 - ストレージシステム - Google Patents

ストレージシステム Download PDF

Info

Publication number
WO2023032121A1
WO2023032121A1 PCT/JP2021/032273 JP2021032273W WO2023032121A1 WO 2023032121 A1 WO2023032121 A1 WO 2023032121A1 JP 2021032273 W JP2021032273 W JP 2021032273W WO 2023032121 A1 WO2023032121 A1 WO 2023032121A1
Authority
WO
WIPO (PCT)
Prior art keywords
package
tray
semiconductor package
semiconductor
priority
Prior art date
Application number
PCT/JP2021/032273
Other languages
English (en)
French (fr)
Inventor
達郎 人見
康人 吉水
正幸 三浦
己利 宮岡
哲治 小嶋
朋也 佐貫
Original Assignee
キオクシア株式会社
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by キオクシア株式会社 filed Critical キオクシア株式会社
Priority to PCT/JP2021/032273 priority Critical patent/WO2023032121A1/ja
Priority to EP21956010.9A priority patent/EP4383082A1/en
Priority to CN202180098859.9A priority patent/CN117396855A/zh
Priority to JP2023544910A priority patent/JPWO2023032121A1/ja
Priority to TW110143355A priority patent/TWI813076B/zh
Publication of WO2023032121A1 publication Critical patent/WO2023032121A1/ja
Priority to US18/592,235 priority patent/US20240201660A1/en

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4155Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by programme execution, i.e. part programme or machine function execution, e.g. selection of a programme
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40036Transport plates or sheets between two locations without motion inversion

Definitions

  • Embodiments of the present invention relate to technology for controlling nonvolatile memory.
  • SSD solid state drive
  • SSDs are used as storage for various computers. Recently, SSDs are also used as storage in data centers.
  • a problem to be solved by one embodiment of the present invention is to provide a storage system useful for processing large amounts of data.
  • the storage system comprises a package stocker, a drive, a host device, and a package transport device.
  • a package stocker is capable of storing a plurality of semiconductor packages each containing one or more non-volatile memory dies.
  • the drive includes at least one socket configured to removably mount the semiconductor package, and a controller that controls the one or more non-volatile memory dies of the semiconductor package mounted in the socket.
  • a host device is communicatively coupled to the drive and configured to read and write data to the one or more non-volatile memory dies of the semiconductor package via the controller.
  • a package transporter is configured to transport the semiconductor packages between the package stocker and the drive.
  • the host device determines a first semiconductor package including a first nonvolatile memory die to be accessed from among the plurality of semiconductor packages.
  • a host device reads or writes data to the first non-volatile memory die via the controller when the first semiconductor package is attached to the socket of the drive.
  • the host device causes the package transfer device to transfer and attach the first semiconductor package to the socket of the drive.
  • FIG. 1 is a block diagram showing a configuration example of a storage system according to a first embodiment
  • FIG. FIG. 2 is a side view showing an arrangement example of package stockers, package conveying devices, drives, and host devices included in the storage system according to the first embodiment
  • 2 is a plan view showing an arrangement example of package stockers, package conveying devices, drives, and host devices included in the storage system according to the first embodiment
  • FIG. FIG. 2 is a diagram showing a configuration example of a semiconductor package used in the storage system according to the first embodiment
  • FIG. 4A and 4B are diagrams showing respective shapes of the front surface, the rear surface, and the side surface of the semiconductor package used in the storage system according to the first embodiment
  • FIG. 4 is a perspective view showing a plurality of pairs of rails included in the package stocker of the storage system according to the first embodiment
  • FIG. 2 is a block diagram showing a configuration example of a host device included in the storage system according to the first embodiment
  • FIG. FIG. 2 is a diagram showing a package loading/unloading port of a package stocker included in the storage system according to the first embodiment
  • FIG. 4 is a diagram showing an operation of adding a new semiconductor package to a package stocker included in the storage system according to the first embodiment;
  • FIG. 4 is a diagram for explaining an operation of changing the position of a semiconductor package, which is executed in the storage system according to the first embodiment; 4 is another diagram for explaining the operation of changing the position of the semiconductor package, which is executed in the storage system according to the first embodiment;
  • FIG. FIG. 7 is a diagram for explaining another operation of changing the position of the semiconductor package, which is executed in the storage system according to the first embodiment;
  • FIG. 7 is a diagram for explaining still another operation of changing the position of the semiconductor package, which is executed in the storage system according to the first embodiment;
  • FIG. 7 is a diagram for explaining still another operation of changing the position of the semiconductor package, which is executed in the storage system according to the first embodiment;
  • FIG. 7 is a diagram for explaining still another operation of changing the position of the semiconductor package, which is executed in the storage system according to the first embodiment;
  • FIG. 7 is a diagram for explaining still another operation of changing the position of the semiconductor package, which is executed in the storage system according to the first embodiment; 4 is a flowchart showing the procedure of data read or write processing executed by a host device included in the storage system according to the first embodiment; 4 is a flowchart showing the details of the procedure of data read or write processing executed by a host device included in the storage system according to the first embodiment; 4 is a flow chart showing another part of a procedure of data read or write processing executed by a host device included in the storage system according to the first embodiment; 4 is a flow chart showing a continuation of another procedure of data read or write processing executed by a host device included in the storage system according to the first embodiment; FIG.
  • FIG. 2 is a block diagram showing a configuration example of a storage system according to a second embodiment
  • FIG. FIG. 11 is a perspective view showing a configuration example of a tray used in the storage system according to the second embodiment
  • 21 is a cross-sectional view of the tray shown in FIG. 20
  • FIG. FIG. 4 is a perspective view showing another configuration example of a tray used in the storage system according to the second embodiment
  • 23 is a cross-sectional view of the tray shown in FIG. 22
  • FIG. FIG. 23 is a plan view showing the top and bottom shapes of the tray shown in FIG. 22
  • 23 is a side view of the tray shown in FIG. 22
  • FIG. FIG. 8 is a perspective view showing the rail structure of a package stocker included in the storage system according to the second embodiment
  • FIG. 8 is a perspective view showing another example of the rail structure of the package stocker included in the storage system according to the second embodiment; 4 is a block diagram showing a configuration example of a host device included in a storage system according to a second embodiment;
  • FIG. FIG. 8 is a view showing a tray loading/unloading port of a package stocker included in the storage system according to the second embodiment;
  • FIG. 11 is a diagram showing an operation of adding a new tray to a package stocker included in the storage system according to the second embodiment;
  • FIG. 11 is a diagram for explaining alignment of drives and trays included in the storage system according to the second embodiment;
  • FIG. 11 is another diagram for explaining alignment of drives and trays included in the storage system according to the second embodiment;
  • FIG. 10 is a diagram for explaining an operation of changing the position of the tray, which is executed in the storage system according to the second embodiment
  • FIG. 11 is another diagram for explaining the operation of changing the position of the tray, which is executed in the storage system according to the second embodiment
  • FIG. 11 is a diagram for explaining another operation of changing the tray position, which is executed in the storage system according to the second embodiment
  • FIG. 10 is a diagram for explaining still another operation of changing the position of the tray, which is executed in the storage system according to the second embodiment
  • FIG. 10 is a diagram for explaining still another operation of changing the position of the tray, which is executed in the storage system according to the second embodiment
  • FIG. 10 is a diagram for explaining still another operation of changing the position of the tray, which is executed in the storage system according to the second embodiment
  • 10 is a diagram for explaining still another operation of changing the position of the tray, which is executed in the storage system according to the second embodiment; 10 is a flow chart showing the procedure of data read or write processing for a non-volatile memory die executed by a host device included in the storage system according to the second embodiment.
  • FIG. 11 is a flow chart showing the details of the procedure of data read or write processing for the non-volatile memory die, which is executed by the host device included in the storage system according to the second embodiment;
  • FIG. FIG. 11 is a flow chart showing part of another procedure for reading or writing data to or from a non-volatile memory die, executed by a host device included in the storage system according to the second embodiment;
  • FIG. FIG. 11 is a flow chart showing a continuation of another procedure of data read or write processing for the non-volatile memory die executed by the host device included in the storage system according to the second embodiment;
  • FIG. 1 is a diagram showing a configuration example of a storage system 1 according to the first embodiment.
  • the storage system 1 can be used in data centers.
  • the storage system 1 includes a storage read/write (R/W) device 2, a package transfer device 3, and a package stocker 4.
  • R/W storage read/write
  • the storage R/W device 2 includes a host unit 21 and drives 22 .
  • FIG. 1 illustrates a case where the storage R/W device 2 includes two host units 21a and 21b and two drives 22a and 22b.
  • the number of host units 21 and drives 22 included in the storage R/W device 2 may be one, or three or more.
  • Host unit 21 is a host device configured to read and write data to the non-volatile memory die.
  • the host unit 21 is communicatively connected to the corresponding drive 22 .
  • the host unit 21 and the corresponding drive 22 can communicate, for example, according to the PCI Express TM (PCIe TM ) standard.
  • the host unit 21 can communicate with the management server 5 in the data center via a network.
  • the host unit 21 and the management server 5 can communicate according to the Ethernet standard, for example.
  • the drive 22 includes at least one socket and a controller.
  • the socket is configured to detachably mount the semiconductor package 41 .
  • the controller is configured to control one or more non-volatile memory dies contained in a socketed semiconductor package 41 .
  • the host unit 21a is communicably connected to the drive 22a. Also, the host unit 21b is communicably connected to the drive 22b.
  • the host unit 21a is a host device configured to read and write data to and from one or more nonvolatile memory dies of the semiconductor package 41 attached to the socket of the drive 22a through the controller of the drive 22a.
  • host unit 21b is configured to read and write data to one or more non-volatile memory dies of semiconductor package 41 mounted in a socket of drive 22b via the controller of drive 22b. It is a device.
  • the package transport device 3 is a device that transports semiconductor packages 41 between the package stocker 4 and the drive 22 .
  • the package transport device 3 may include, for example, one or more transport units 31 that can move vertically and horizontally.
  • the transport unit 31 transports the semiconductor package 41 stored at one of a plurality of storage positions in the package stocker 4 to an arbitrary drive 22 in the storage R/W device 2 and mounts it in the socket of the drive 22. be able to. Further, the transport unit 31 can remove the semiconductor package 41 from any socket of the drive 22 and transport the removed semiconductor package 41 to any storage position in the package stocker 4 .
  • the package transport device 3 can be realized by one or more transport robots.
  • the package stocker 4 can store a plurality of semiconductor packages 41.
  • Semiconductor package 41 includes one or more non-volatile memory dies. Each of the one or more non-volatile memory dies is, for example, a NAND flash memory.
  • the host unit 21 has a position management function and a transport control function.
  • the position management function is a function of managing the positions where each of the plurality of semiconductor packages 41 exists.
  • the transport control function is a function of controlling transport of the semiconductor packages 41 by controlling the package transport device 3 .
  • a package identifier (also called a semiconductor package identification name) is assigned to each of the plurality of semiconductor packages 41 .
  • the host unit 21 can manage the correspondence between the package identifier and the location where the semiconductor package 41 identified by this package identifier exists.
  • a position where a certain semiconductor package 41 can exist is, for example, any one of one or more sockets included in the drive 22 or any one of a plurality of package storage positions included in the package stocker 4. two package storage locations.
  • the host unit 21 determines the semiconductor package 41 including the nonvolatile memory die to be accessed from among the plurality of semiconductor packages 41 .
  • the host unit 21 identifies the position where the determined semiconductor package 41 exists, and thereby can determine whether or not the determined semiconductor package 41 is attached to any socket of the drive 22. ⁇
  • the host unit 21 reads or writes data to the nonvolatile memory die to be accessed via the controller of the drives 22.
  • the host unit 21 causes the package conveying device 3 to package the determined semiconductor package 41 . It is transported from the stocker 4 to any socket of the drive 22 and mounted. In this case, the host unit 21 can transmit a transport request to the package transport device 3 as follows.
  • This transfer request designates, for example, the determined position in the package stocker 4 where the semiconductor package 41 is stored (also referred to as a package storage position) as the transfer source position, and specifies one of the sockets of the drive 22. Specify as the destination position.
  • the transport unit 31 of the package transport device 3 transports the semiconductor package 41 existing at the specified source position to the specified destination position. Then, the transport unit 31 mounts the semiconductor package 41 to the socket at the destination position.
  • a semiconductor package is fixedly mounted by soldering on a substrate provided in the storage device.
  • each of the plurality of semiconductor packages 41 is separated from the drives 22, and each individual semiconductor package 41 itself is a removable storage device that is detachably attached to the sockets of the drives 22. used as a medium.
  • a drive such as an SSD or hard disk drive (HDD) incorporates a storage medium and a controller.
  • the volume of each individual drive is relatively large. Therefore, if a configuration is adopted in which a plurality of drives each containing a storage medium and a controller are selectively connected to the host unit 21, the size and cost of the entire storage system will increase. Become.
  • a configuration of a storage system that uses an optical disk medium or magnetic tape as a storage medium that does not include a controller is also conceivable.
  • data read and write operations on optical disk media or magnetic tapes require physical movement of the optical or magnetic head. Therefore, in a storage system configuration that uses an optical disk medium or a magnetic tape as a storage medium, compared to a configuration in which data is read from and written to a nonvolatile memory die, the latency until read and write processing can be executed is increased. Also, I/O throughput is degraded.
  • the semiconductor package 41 and the drive 22 are separated. Therefore, only the semiconductor package 41 can be stored in the package stocker 4 as a storage medium. Therefore, the space required to store a large number of storage media can be reduced.
  • the semiconductor package 41 including the non-volatile memory die to be accessed is transported from the package stocker 4 to the socket in the drive 22 by the package transport device 3 and mounted in the socket.
  • the socketed semiconductor package 41 is electrically connected to the controller in the drive 22 .
  • the host unit 21 may also have a function of managing the priority of each of the plurality of semiconductor packages 41.
  • the algorithm for determining the priority of each of the plurality of semiconductor packages 41 is not limited to a specific algorithm, and the priority of each of the plurality of semiconductor packages 41 can be determined based on various conditions.
  • the priority of the semiconductor package 41 including this nonvolatile memory die may be determined.
  • the priority of each semiconductor package 41 may be determined based on the frequency of access to each semiconductor package 41 .
  • the priority of each semiconductor package 41 may be determined based on the elapsed time from the last access time to each semiconductor package 41 .
  • the priority of each semiconductor package 41 may be determined based on the status indicating completion or incompleteness of access processing to each semiconductor package 41 .
  • the priority of each semiconductor package 41 may be determined based on the expected remaining time until the access process for each semiconductor package 41 is completed.
  • the priority of each semiconductor package 41 may be determined based on an application program executed in the host unit 21 .
  • the priority of each semiconductor package 41 may be determined based on the prediction result of the probability that an access request to each semiconductor package 41 will occur.
  • any of the access request, access frequency, elapsed time since the last access time, completion or non-completion of access processing, expected remaining time until completion of access processing, application program to be executed, and access probability prediction result may be used to determine the priority of each semiconductor package 41 .
  • the host unit 21 can also control the position where each of the plurality of semiconductor packages 41 exists based on the priority of each of the plurality of semiconductor packages 41 .
  • the host unit 21 has a semiconductor package 41 having a first level of priority attached to the socket of the drive 22, and a semiconductor package 41 having a second level of priority lower than the first level of priority is attached to the package stocker. 4, the position where each of the plurality of semiconductor packages 41 is located can be controlled based on the priority of each of the plurality of semiconductor packages 41 .
  • some of the transport units 31 included in the package transport device 3 may be used as buffers for temporarily holding the semiconductor packages 41 .
  • the semiconductor packages 41 having a second level of priority lower than the first level of priority are held by the transfer unit 31 included in the package transfer device 3 .
  • a semiconductor package 41 having a third level of priority lower than the second level of priority is stored in the package stocker 4 .
  • the transport unit 31 holding the semiconductor package 41 having the second level of priority may be moved to a specific retracted position so as not to interfere with the transport operation of the other transport units 31 .
  • the transport unit 31 holding the semiconductor package 41 holding the semiconductor package 41 having the second level of priority is hereinafter also referred to as the "buffer of the package carrier 3" or the "buffer of the robot". .
  • Each transport unit 31 included in the package transport device 3 can function as a buffer for the package transport device 3 . Therefore, the number of buffers in the package transport device 3 is equal to the number of transport units 31 included in the package transport device 3 .
  • holding the semiconductor package 41 removed from the socket of the drive 22 in the package conveying device 3 (that is, the conveying unit 31) without storing it in the package stocker 4 means that the semiconductor package 41 is stored in the package conveying device 3. It is also referred to as "transport to the buffer of".
  • FIG. 2 is a side view showing an arrangement example of the package stocker 4, package conveying device 3, drive 22, and host unit 21.
  • FIG. 3 is a plan view showing an arrangement example of the package stocker 4, the package conveying device 3, the drive 22, and the host unit 21. As shown in FIG.
  • FIGS. 2 and 3 illustrate a configuration in which the package stocker 4, the package conveying device 3, the drive 22, and the host unit 21 are arranged in the server rack 11 arranged in the data center.
  • the X-axis, Y-axis and Z-axis are defined respectively.
  • the X-axis, Y-axis and Z-axis are orthogonal to each other.
  • An XY plane defined by the X and Y axes corresponds to, for example, the floor of a data center.
  • the Z-axis corresponds to, for example, the height direction of the data center.
  • the server rack 11 is a rack for housing computers and communication devices.
  • the size and shape of the server rack 11 are defined, for example, by the Electronic Industries Association of America (EIA).
  • the server rack 11 has a front panel (front door) 12, a top panel 13, a back panel 14, a floor panel 15, and side panels 16 and 17.
  • This server rack 11 is realized as a deep 19-inch rack having a depth of 36 inches (914.4 mm), a height of 73.5 inches (1868.9 mm), and a width of 19 inches (482.6 mm), for example. It is
  • the package stocker 4 can be arranged on the front plate (front door) 12 side, and the drives 22 and host units 21 can be arranged on the back plate 14 side. Furthermore, the package conveying device 3 can be arranged near the center between the front plate (front door) 12 and the back plate 14 .
  • the drive 22a and the host unit 21a may be accommodated in the housing 2a.
  • the drive 22b and the host unit 21b may be housed in the housing 2b.
  • Socket 222 , controller 223 and PCIe switch 224 are located on printed circuit board 221 . Assume below that a plurality of sockets 222 are arranged on the printed circuit board 221 .
  • Each of the sockets 222 is a socket configured to detachably mount the semiconductor package 41 .
  • the controller 223 is a memory controller that controls one or more nonvolatile memory dies included in the semiconductor package 41 attached to each socket 222 .
  • Controller 223 may be implemented by a large scale integration (LSI) such as a system-on-a-chip (SoC).
  • LSI large scale integration
  • SoC system-on-a-chip
  • the number of controllers 223 arranged on the printed circuit board 221 may be one, two or more.
  • Each controller 223 on printed circuit board 221 is connected to a PCIe switch 224 .
  • the number of PCIe switches 224 arranged on the printed circuit board 221 may be one, two or more.
  • Each PCIe switch 224 is electrically connected to a corresponding PCIe connector 225 .
  • One or more PCIe connectors 225 are arranged on the back surface of the printed circuit board 221 of the drive 22a.
  • the printed circuit board 221 is connected via one or more PCIe connectors 225 to the system board of the host unit 21a.
  • a system board of the host unit 21a is provided with a processor, a memory, a system controller, a communication interface controller, and the like.
  • Host unit 21 a is communicatively connected to drive 22 a via one or more PCIe connectors 225 .
  • the host unit 21 a reads or writes data to any non-volatile memory die inside the semiconductor package 41 attached to any socket 222 via the controller 223 .
  • the configurations of the drive 22b and the host unit 21b are similar to those of the drive 22a and the host unit 21a, respectively, so detailed descriptions of the configurations of the drive 22b and the host unit 21b are omitted here.
  • the package conveying device 3 may include a column 32 extending in the vertical direction (Z-axis direction) and several conveying units 31 .
  • Each transport unit 31 is vertically movable along the pillar 32 .
  • Each transport unit 31 has an arm (not shown) such as a robot hand, and can grip any semiconductor package 41 using this arm.
  • one transport unit 31 when transporting a semiconductor package 41 stored at a certain storage position in the package stocker 4 to the drive 22a, one transport unit 31 has a height corresponding to the storage position of the semiconductor package 41 to be transported. It moves and grips the semiconductor package 41 to be transferred. Then, the one transport unit 31 moves to a height corresponding to the drive 22a, and attaches the semiconductor package 41 to be transported to one socket 222 of the drive 22a.
  • one transfer unit 31 grips the other semiconductor package 41, and then While holding the other semiconductor package 41, it moves upward or downward. Then, another transport unit 31 grips the semiconductor package 41 to be transported and mounts the semiconductor package 41 to be transported to one socket 222 of the drive 22a. As a result, even if a plurality of semiconductor packages 41 are stored side by side along the direction from the package conveying device 3 toward the front plate 12 (-Y direction shown in FIG. 2), any semiconductor package 41 can be transported.
  • the package stocker 4 includes one or more pairs of rails (rail pair R11, rail pair R12, . . . ) on which a plurality of semiconductor packages 41 can be placed.
  • the drives 22 include, for example, 48 sockets 222 arranged in 12 rows and 4 columns, 12 controllers 223, 3 PCIe switches 224, and 3 sockets connected to the 3 PCIe switches 224, respectively. and PCIe connector 225 .
  • Each of the 12 controllers 223 controls the four semiconductor packages 41 attached to the corresponding four sockets 222 in one row.
  • Each of the three PCIe switches 224 is connected to four corresponding controllers 223 .
  • Each PCIe switch 224 communicates with four corresponding controllers 223 .
  • the package stocker 4 includes multiple pairs of rails (here, 12 rail pairs R11 to R121). Several semiconductor packages 41 can be placed on each of the rail pairs R11 to R121. Each of the rail pairs R11 to R121 includes a pair of rails extending parallel to each other along the Y-axis direction. A semiconductor package 41 arranged on a certain rail pair can slide and move along the rail pair.
  • FIG. 4 is a diagram showing a configuration example of a semiconductor package 41 used in the storage system 1 according to this embodiment.
  • the semiconductor package 41 is implemented as, for example, a ball grid array (BGA) package.
  • the semiconductor package 41 includes a plurality of nonvolatile memory dies 411 , a package substrate 412 , a plurality of ball-shaped metal terminals 413 , a first surface (front surface) 416 , and an opposite side of the first surface 416 .
  • a plurality of nonvolatile memory dies 411 are vertically stacked on the surface of the package substrate 412 .
  • a plurality of non-volatile memory dies 411 are covered and encapsulated, for example, by molding compound 410 .
  • Each nonvolatile memory die 411 includes channel terminals for one channel.
  • the channel terminals include a chip enable signal terminal, a plurality of I/O terminals, a plurality of control signal terminals, and the like.
  • the top surface of the mold resin 410 forms the first surface 416 of the semiconductor package 41 .
  • the bottom surface of package substrate 412 forms second surface 417 of semiconductor package 41 .
  • a plurality of ball-shaped metal terminals 413 are arranged on the second surface 417 .
  • the multiple ball-shaped metal terminals 413 include multiple signal terminals for multiple channels.
  • the ball-type metal terminals 413 are connected to channel terminals of each of the plurality of non-volatile memory dies 411 included in the semiconductor package 41 .
  • a part of the storage area of at least one nonvolatile memory die 411 of the plurality of nonvolatile memory dies 411 included in the semiconductor package 41 is used as an identification information storage area 418 .
  • the identification information storage area 418 stores identification information for identifying this semiconductor package 41 .
  • an identifier (package identifier) that can uniquely identify each semiconductor package 41 can be used.
  • the package identifier may be stored in the identification information storage area 418 along with the check code.
  • the check code is a code for verifying the integrity of the package identifier.
  • the check code is, for example, a cyclic redundancy code (CRC), another type of parity different from CRC, or a hash value calculated from identification information.
  • CRC cyclic redundancy code
  • identification information packet identifier
  • check code the consistency of the value read as the identification information from the identification information storage area 418 can be verified.
  • FIG. 5A and 5B are diagrams showing the shapes of the front surface, back surface, and side surface of the semiconductor package 41.
  • FIG. The left part of FIG. 5 is a plan view of the semiconductor package 41 viewed from above, and the central part of FIG. 5 is a plan view of the semiconductor package 41 viewed from below. 5 is a side view of the semiconductor package 41.
  • FIG. 5 is a side view of the semiconductor package 41.
  • the surface 416 of the semiconductor package 41 (that is, the upper surface of the mold resin 410) is used as a marking surface.
  • a plurality of ball-shaped metal terminals 413 are arranged on the back surface 417 of the semiconductor package 41 (that is, the bottom surface of the package substrate 412). Note that the back surface 417 of the semiconductor package 41 has a region where the ball-shaped metal terminals 413 are not provided. Specifically, none of the ball-shaped metal terminals 413 are arranged in the outermost peripheral region of the back surface 417 .
  • FIG. 6 is a perspective view showing a plurality of pairs of rails included in the package stocker 4.
  • FIG. 6 illustrates a case where the package stocker 4 includes three rail units 401-403.
  • the rail unit 401 includes two side walls 4011 and 4012 facing each other with a spacing, and four rail pairs R11 to R14 arranged inside the two side walls 4011 and 4012.
  • the rail pair R11 includes a pair of rails that are spaced apart and extend parallel to each other.
  • the semiconductor package 41 can be supported without the ball-shaped metal terminals 413 arranged on the back surface of the semiconductor package 41 coming into contact with the rails. . That is, only the outermost peripheral region of the back surface of the semiconductor package 41, where the ball-shaped metal terminal 413 is not provided, contacts the rail pair R11.
  • Each of the other rail pairs R12-R14 also has a configuration similar to that of the rail pair R11.
  • the rail unit 402 includes two side walls 4021 and 4022 facing each other with a spacing, and four rail pairs R21 to R24 arranged inside the two side walls 4021 and 4022.
  • the rail pair R21 includes a pair of rails that face each other with a gap and extend parallel to each other.
  • Each of the other rail pairs R22-R24 has the same configuration as the rail pair R21.
  • the rail unit 403 includes two side walls 4031 and 4032 facing each other with a space therebetween, and four rail pairs R31 to R34 arranged inside the two side walls 4031 and 4032.
  • the rail pair R31 includes a pair of rails that face each other with a gap and extend parallel to each other.
  • Each of the other rail pairs R32 to R34 also has a configuration similar to that of the rail pair R31.
  • FIG. 7 is a block diagram showing a configuration example of the host unit 21.
  • the host unit 21a which is one of the plurality of host units 21 included in the storage system 1, will be described.
  • the host unit 21a includes a processor 201, a main memory 202, a system controller 203, a communication interface controller 204, and the like.
  • the processor 201, main memory 202, system controller 203, and communication interface controller 204 are mounted on the system board of the host unit 21a.
  • the main memory 202 is, for example, dynamic random access memory (DRAM).
  • DRAM dynamic random access memory
  • the communication interface controller 204 communicates with the package conveying device 3 via the communication interface 205 .
  • the communication interface 205 for example, an interface conforming to the Ethernet standard can be used.
  • communication interface controller 204 may be implemented by, for example, a network interface controller (NIC). Note that the communication interface controller 204 can also be used for communication with the management server 5 .
  • NIC network interface controller
  • the processor 201 executes various programs (software) loaded into the main memory 202 . These programs may include, for example, an application program 211, an operating system (OS) 212, a file system 213, a device driver 214 for controlling the drive 22a, a storage management tool 216, and the like.
  • the storage management tool 216 is a program for managing each semiconductor package 41 and controlling transportation of each semiconductor package 41 .
  • the description that these programs execute a certain process means that the process is executed by the host unit 21a (more specifically, the processor 201) executing these programs.
  • the host unit 21a (more specifically, the processor 201) can manage the semiconductor package management table 6 under the control of the storage management tool 216.
  • a semiconductor package management table 6 is management data for a plurality of semiconductor packages 41 .
  • the semiconductor package management table 6 may be stored in the main memory 202. FIG.
  • the host unit 21a is configured to give each semiconductor package 41 a unique semiconductor package identification name.
  • the host unit 21a uses the semiconductor package management table 6 to manage the semiconductor package identification name of each semiconductor package 41, the priority of each semiconductor package 41, the state of each semiconductor package 41, and the position of each semiconductor package. do.
  • the semiconductor package 41 having a certain semiconductor package identification name may be indicated using that semiconductor package identification name.
  • the semiconductor package 41 having the semiconductor package identification name “semiconductor package A” may be referred to as semiconductor package A.
  • the host unit 21a identifies each of the plurality of semiconductor packages 41 used in the storage system 1 using semiconductor package identification names of semiconductor package A, semiconductor package B, . . . , semiconductor package E. An example is shown.
  • the host unit 21a stores the priority of each of the plurality of semiconductor packages 41 in the semiconductor package management table 6. Then, the host unit 21 a instructs the package transfer device 3 to transfer the semiconductor package 41 based on the priority order managed by the semiconductor package management table 6 .
  • each of the plurality of semiconductor packages 41 is connected to the host unit 21a, stored in the package stocker 4, or held in the transport unit 31 of the package transport device 3.
  • Information indicating whether or not is stored in the semiconductor package management table 6 as the state of each semiconductor package 41 .
  • a state in which a certain semiconductor package 41 is connected to the host unit 21a means a state in which this semiconductor package 41 is attached to the socket 222 of the drive 22a. Therefore, when a certain semiconductor package 41 is connected to the host unit 21a, the host unit 21a detects that the semiconductor package 41 is attached to the socket 222 included in the drive 22a connected to the host unit 21a. recognizable. Then, the host unit 21a can recognize that data can be read from and written to the nonvolatile memory die 411 of this semiconductor package 41.
  • a state in which a certain semiconductor package 41 is stored in the package stocker 4 means that this semiconductor package 41 is placed on any pair of rails of the package stocker 4 . Therefore, when a certain semiconductor package 41 is stored in the package stocker 4, the host unit 21a cannot store the nonvolatile memory die 411 of the semiconductor package 41 because the semiconductor package 41 is not attached to the socket 222 included in the drive 22a. It can be recognized that data cannot be read from or written to.
  • the host unit 21a stores the positional information of the semiconductor packages 41 in the semiconductor package management table 6 as information indicating the positions where each of the plurality of semiconductor packages 41 is mounted or stored.
  • the host unit 21a When a certain semiconductor package 41 is connected to the host unit 21a, the host unit 21a stores the socket number indicating the socket 222 in which this semiconductor package 41 is mounted in the semiconductor package management table 6 as the position information of this semiconductor package 41. store in
  • the host unit 21a stores the storage position number indicating the position in the package stocker 4 where this semiconductor package 41 is stored. It is stored in the semiconductor package management table 6 as position information.
  • a semiconductor package 41 having a semiconductor package identification name "semiconductor package A” is attached to socket #1 of the drive 22a.
  • a semiconductor package 41 having a semiconductor package identification name "semiconductor package B" is attached to socket #2 of drive 22a.
  • a semiconductor package 41 having the semiconductor package identification name “semiconductor package C” is stored at the storage position #1 of the package stocker 4 .
  • a semiconductor package 41 having the semiconductor package identification name “semiconductor package D” is stored at the storage position #2 of the package stocker 4 .
  • a semiconductor package 41 having the semiconductor package identification name “semiconductor package E” is stored at the storage position #3 of the package stocker 4 .
  • the distance between the storage position #2 and the package transfer device 3 is longer than the distance between the storage position #1 and the package transfer device 3.
  • the distance between the storage position #3 and the package transfer device 3 is longer than the distance between the storage position #2 and the package transfer device 3 . Therefore, the semiconductor package C stored at the storage position #1 can be taken out more easily than the semiconductor package D stored at the storage position #2.
  • the semiconductor package D stored at the storage position #2 can be taken out more easily by the transfer unit 31 than the semiconductor package E stored at the storage position #3.
  • the host unit 21a instructs the package conveying device 3 to store the semiconductor package 41 having a higher priority at a storage position from which it can be taken out more easily.
  • the host unit 21a may use the transport unit 31 as a buffer. At this time, the host unit 21a instructs the package conveying device 3 to cause the conveying unit 31 to hold the semiconductor package 41 with the highest priority among the plurality of semiconductor packages 41 stored in the package stocker 4. good too.
  • the storage management tool 216 also performs processing for managing data stored in each semiconductor package 41 (also referred to as an offline package) that is not attached to any socket 222 of the drive 22a and the amount of that data. Execute.
  • the storage management tool 216 for example, executes processing for managing data stored in each semiconductor package 41 stored in the package stocker 4 and the amount of that data.
  • Storage management tool 216 can report to OS 212 or file system 213 the data stored in each offline package and the amount of that data. Therefore, the OS 212 or the file system 213 manages not only the data stored in each semiconductor package 41 currently attached to the socket 222 of the drive 22a, but also the data stored in each off-line package and the amount of that data. can do.
  • FIG. 8 is a view showing the package loading/unloading port of the package stocker 4. As shown in FIG.
  • the package stocker 4 has a package loading/unloading port 420 used for adding the semiconductor package 41 to the package stocker 4 from outside the package stocker 4 and discharging the semiconductor package 41 from the package stocker 4 to the outside of the package stocker 4. include.
  • the package loading/unloading port 420 is an opening provided in the front surface 42 of the package stocker 4 .
  • the front surface 42 corresponds to the front surface 12 of the server rack 11 .
  • the semiconductor package 41 is added to the package stocker 4 from the outside of the package stocker 4 through the package loading/unloading port 420 provided in the package stocker 4 .
  • the added semiconductor package 41 is stored in the package stocker 4 together with a plurality of already stored semiconductor packages 41 .
  • the unnecessary semiconductor packages 41 are ejected from the package stocker 4 to the outside of the package stocker 4 through the package loading/unloading port 420 provided in the package stocker 4 .
  • the package stocker 4 also has a package insertion/removal opening 420 provided on the front surface 42 of the package stocker 4, and a package insertion/removal opening 430 provided on the side facing the package conveying device 3.
  • the package loading/unloading port 430 is used for storing the semiconductor packages 41 in the package stocker 4 and taking out the semiconductor packages 41 from the package stocker 4 .
  • the package conveying device 3 performs an operation of storing the semiconductor package 41 in the package stocker 4 through the package loading/unloading port 430 and an operation of taking out the semiconductor package 41 from the package stocker 4 through the package loading/unloading port 430 .
  • the package loading/unloading opening 430 is provided, for example, on the rear surface of the package stocker 4 and is located on the opposite side of the package loading/unloading opening 420 .
  • a plurality of pairs of rails extend from the package loading/unloading opening 420 of the package stocker 4 toward the package conveying device 3, that is, from the package loading/unloading opening 420 toward the package loading/unloading opening 430. ing.
  • FIG. 9 is a diagram showing the operation of adding a new semiconductor package 41 to the package stocker 4 through the package loading/unloading port 420 of the package stocker 4. As shown in FIG.
  • FIG. 9 The upper part of FIG. 9 is a plan view of the server rack 11 before new semiconductor packages are added.
  • the lower part of FIG. 9 is a plan view of server rack 11 after 12 new semiconductor packages have been added.
  • the package conveying device 3 faces the package loading/unloading port 420 provided on the front surface 12 of the server rack 11 .
  • Each of the 12 rail pairs R11 to R121 extends in the direction (Y direction) from the package loading/unloading opening 420 toward the package transporting device 3. As shown in FIG.
  • 96 semiconductor packages 41 are already placed on the 12 rail pairs R11 to R121.
  • Ninety-six semiconductor packages 41 are semiconductor packages already stored in the package stocker 4 .
  • 12 semiconductor packages 41 are added to the package stocker 4 .
  • 12 semiconductor packages 41 are placed on the rail pairs R11 to R121 through the package loading/unloading port 420 by, for example, a robot or an operator. Twelve semiconductor packages 41 are thereby stored in the package stocker 4 .
  • the package stocker 4 is provided with a plurality of rail pairs R11 to R121 each extending in the direction from the package loading/unloading opening 420 toward the package conveying device 3. As shown in FIG. Therefore, it is possible to easily add and remove the semiconductor package 41 through the package loading/unloading port 420 .
  • FIG. 10 shows the operation of changing the position of the semiconductor package 41 between the package stocker 4 and the socket 222 of the drive 22 based on the change in the priority of the semiconductor package 41, which is executed in the storage system 1 according to this embodiment. It is a figure for demonstrating about.
  • the host unit 21 uses the semiconductor package management table 6 to manage the priority of each semiconductor package 41 included in the storage system 1 . Based on the priority of each semiconductor package 41 included in the storage system 1 , the host unit 21 instructs the package transfer device 3 to transfer and attach/detach the semiconductor package 41 .
  • the host unit 21 manages eight semiconductor packages 41, semiconductor package A, semiconductor package B, .
  • the host unit 21 mounts the semiconductor package A with the highest priority among the managed semiconductor packages 41 to, for example, socket #1, and the semiconductor package B with the second highest priority to, for example, socket #2.
  • the package conveying device 3 is instructed to As a result, the semiconductor package management table 6 stores information indicating that the semiconductor package A and the semiconductor package B are attached to the socket #1 and the socket #2, respectively. In this way, when the number of sockets included in the drive 22 is two, two semiconductor packages A to B having the first to second priorities are connected to the two sockets #1 to #2 of the drive 22. are attached to each.
  • the first through second priorities correspond to the first level priorities.
  • the package stocker 4 can include at least two types of storage locations, a first storage location and a second storage location.
  • the distance between the first storage location and the package conveying device 3 is shorter than the distance between the second storage location and the package conveying device 3 .
  • the first storage location includes, for example, storage locations #1-#3.
  • the second storage locations include, for example, storage locations #4-#6.
  • the storage positions #1 to #3 are storage positions from which the package conveying apparatus 3 can more easily take out the semiconductor packages 41 than the storage positions #4 to #6.
  • Priority levels 3 through 5 correspond to second level priorities that are lower than the first level priority.
  • the three semiconductor packages F to H having the sixth to eighth priorities are stored at the storage position #4 included in the second storage location. to #6.
  • the sixth through eighth priorities correspond to third level priorities that are lower than second level priorities.
  • FIG. 11 shows the operation of changing the position of the semiconductor package 41 between the package stocker 4 and the socket 222 of the drive 22 based on the change in the priority of the semiconductor package 41, which is executed in the storage system 1 according to this embodiment. It is another figure for demonstrating about.
  • the host unit 21 removes the semiconductor package B from the socket #2, transfers the semiconductor package C to the drive 22 and mounts it in the socket #2, and stores the removed semiconductor package B in the package stocker 4, for example.
  • the package conveying device 3 is instructed to convey to position #1.
  • the package conveying device 3 removes the semiconductor package B from the socket #2, conveys and mounts the semiconductor package C to the socket #2 from which the semiconductor package B has been removed, and stores the removed semiconductor package B in the package stocker 4. to storage position #1.
  • the host unit 21 updates the semiconductor package management table 6. Specifically, the host unit 21 stores information indicating that the semiconductor package B is stored in the storage position #1 of the package stocker 4 and information indicating that the semiconductor package C is attached to the socket #2. is stored in the semiconductor package management table 6.
  • FIG. 12 is a diagram for explaining the operation of changing the position of the semiconductor package 41 within the package stocker 4 based on the change in the priority of the semiconductor package 41, which is executed in the storage system 1 according to this embodiment. .
  • the priority of the semiconductor package H is raised from 8th to 3rd, and the priority of each of the semiconductor packages C to G is lowered from 3rd to 7th to 4th to 8th.
  • the new priority (3rd) of semiconductor package H belongs to the second level of priority
  • the new priority of semiconductor package E (6th) belongs to the third level of priority. Therefore, the host unit 21 instructs the package conveying device 3 to exchange the storage position of the semiconductor package H and the storage position of the semiconductor package E.
  • the package conveying device 3 takes out the semiconductor package E from the storage position #3 of the package stocker 4 .
  • the package conveying device 3 then takes out the semiconductor package H from the storage position #6 of the package stocker 4 .
  • the package conveying device 3 stores the semiconductor package E at the storage position #6 of the package stocker 4 .
  • the package conveying device 3 stores the semiconductor package H at the storage position #3 of the package stocker 4 .
  • the host unit 21 updates the semiconductor package management table 6. Specifically, the host unit 21 receives information indicating that the semiconductor package E is stored at the storage position #6 of the package stocker 4 and that the semiconductor package H is stored at the storage position #3 of the package stocker 4. information indicating that is stored in the semiconductor package management table 6 .
  • the host unit 21 moves the semiconductor package 41 having the higher priority among the semiconductor packages 41 stored in the package stocker 4 to the storage position (here, the storage position (here, It can be controlled to be stored in storage location #1).
  • the storage position here, It can be controlled to be stored in storage location #1.
  • FIG. 13 shows the position of the semiconductor package 41 between the package stocker 4, the package transfer device 3, and the socket 222 of the drive 22 based on the change of the priority of the semiconductor package 41 executed in the storage system according to this embodiment. It is a figure for demonstrating the operation
  • the host unit 21 manages eight semiconductor packages 41, semiconductor package A, semiconductor package B, .
  • the host unit 21 assigns the semiconductor package A, which has the highest priority, to the socket #1 of the drive 22, and the semiconductor package B, which has the second highest priority, to the socket #1 of the drive 22, among the semiconductor packages 41 being managed.
  • the package conveying device 3 is instructed to mount each.
  • the package conveying device 3 conveys and mounts the semiconductor package A to the socket #1 of the drive 22 .
  • the package conveying device 3 conveys and mounts the semiconductor package B to the socket #2 of the drive 22 .
  • the host unit 21 stores in the semiconductor package management table 6 information indicating that the semiconductor packages A and B are attached to the sockets #1 and #2, respectively.
  • the host unit 21 instructs the package conveying device 3 to hold the two semiconductor packages C to D having the third to fourth priorities.
  • the third through fourth priorities correspond to second level priorities that are lower than the first level priorities.
  • the package transfer device 3 (for example, transfer unit #1) that has received the instruction holds the semiconductor package C.
  • the package conveying device 3 (for example, conveying unit #2) that has received the instruction holds the semiconductor package D.
  • the two semiconductor packages C to D having the third to fourth priorities are held in the package conveying device 3 . That is, the transfer unit #1 holding the semiconductor package C is used as the buffer #1 of the package transfer device 3, and the transfer unit #2 holding the semiconductor package D is used as the buffer #2 of the package transfer device 3.
  • the host unit 21 receives information indicating that the semiconductor package C and the semiconductor package D are held in the transport unit #1 (buffer #1) and the transport unit #2 (buffer #2), respectively. are stored in the semiconductor package management table 6.
  • the four semiconductor packages E to H having the fifth to eighth priorities are stored in the package stocker 4 .
  • the three semiconductor packages E to G having the fifth to seventh priorities are stored at the storage positions #1 to #1 included in the first storage location. Stored in #3.
  • Priority levels 5 through 7 correspond to third level priorities that are lower than second level priorities.
  • the semiconductor package H having the eighth highest priority is located at one of the storage positions #4 to #6 included in the second storage location (for example, stored in storage location #4).
  • FIG. 14 shows that the position of the semiconductor package 41 is changed between the package transfer device 3 and the socket 222 of the drive 22 based on the change of the priority of the semiconductor package 41 executed in the storage system 1 according to this embodiment. It is a figure for demonstrating operation
  • the host unit 21 removes the semiconductor package B from the socket #2, transfers the semiconductor package C to the drive 22 and mounts it in the socket #2, and holds the removed semiconductor package B in the package transfer device 3.
  • the package conveying device 3 is instructed to do so.
  • the package transfer device 3 removes the semiconductor package B from the socket #2.
  • the package conveying device 3 conveys and mounts the semiconductor package C held in the conveying unit #1 to the socket #2 from which the semiconductor package B has been removed.
  • the removed semiconductor package B is held in the package transfer device 3 (for example, transfer unit #1).
  • the host unit 21 updates the semiconductor package management table 6 according to the above operation. Specifically, the host unit 21 receives information indicating that the semiconductor package B is held in the buffer #1 of the package conveying device 3 and information indicating that the semiconductor package C is attached to the socket #2. is stored in the semiconductor package management table 6.
  • FIG. 15 shows the operation of changing the position of the semiconductor package 41 between the package stocker 4 and the package transfer device 3 based on the change in the priority of the semiconductor package 41, which is executed in the storage system 1 according to this embodiment. It is a figure for explaining.
  • the host unit 21 instructs the package transfer device 3 to exchange the position of the semiconductor package E and the position of the semiconductor package D.
  • the package conveying device 3 is instructed to The package conveying device 3 that has received the instruction conveys the semiconductor package D held by the conveying unit #2 to the storage position #1 of the package stocker 4 . Then, the transport unit #2 exchanges the semiconductor package E stored at the storage position #1 of the package stocker 4 with the semiconductor package D it holds. The transport unit #2 holds the semiconductor package E as a buffer #2.
  • the host unit 21 updates the semiconductor package management table 6 according to the above operation. Specifically, the host unit 21 stores information indicating that the semiconductor package D is stored in the storage position #1 of the package stocker 4, ) are stored in the semiconductor package management table 6.
  • the host unit 21 can cause the package conveying device 3 to hold in advance the semiconductor package 41 having a higher priority among the semiconductor packages 41 stored in the package stocker 4 .
  • the package transport device 3 transfers the semiconductor package from the package stocker 4 to the package stocker 4.
  • the time required to retrieve 41 can be eliminated. That is, by using the buffer of the package conveying device 3, the time required for moving the semiconductor packages 41 can be greatly reduced rather than adjusting the storage position in the package stocker 4.
  • FIG. 16 is a flowchart showing the procedure of data read or write processing executed by the host unit 21 of the storage system 1 according to this embodiment.
  • the host unit 21 determines the semiconductor package 41 including the nonvolatile memory die 411 to be accessed (step S11).
  • the nonvolatile memory die 411 to be accessed is determined based on the read request or write request received from the application program 211 .
  • the semiconductor package 41 including the nonvolatile memory die 411 to be accessed is determined in step S11.
  • the host unit 21 determines whether or not the semiconductor package 41 determined in step S11 is attached to the socket 222 of the drive 22 (step S12). In step S ⁇ b>12 , the host unit 21 may refer to the semiconductor package management table 6 to determine whether the determined semiconductor package 41 is attached to the socket 222 of the drive 22 .
  • step S12 If the determined semiconductor package 41 is attached to the socket 222 of the drive 22 (Yes in step S12), the host unit 21, via the controller 223, accesses the non-volatile memory included in the determined semiconductor package 41. Data is read from or written to the memory die 411 (step S13).
  • the host unit 21 causes the package conveying device 3 to transfer the determined semiconductor package 41 from the package stocker 4. It is transported to the drive 22 and attached to the socket 222 (step S14).
  • the host unit 21 When the semiconductor package 41 is attached to the socket 222 by the package conveying device 3, the host unit 21 reads the package identifier stored in the semiconductor package 41 via the controller 223, and the read package identifier is determined. It is confirmed whether or not it matches the package identifier of the semiconductor package 41 received. When the read package identifier matches the package identifier of the determined semiconductor package 41, the host unit 21 transmits data to the nonvolatile memory die 411 to be accessed included in the determined semiconductor package 41 via the controller 223. Read or write is executed (step S13).
  • FIG. 17 is a flowchart showing the details of the procedure of data read or write processing executed by the host unit 21 of the storage system 1 according to this embodiment.
  • the host unit 21 determines the semiconductor package 41 including the nonvolatile memory die 411 to be accessed (step S21).
  • the host unit 21 determines whether or not the semiconductor package 41 determined in step S21 is attached to the socket 222 of the drive 22 (step S22). In step S ⁇ b>22 , the host unit 21 may refer to the semiconductor package management table 6 to confirm whether the determined semiconductor package 41 is attached to the socket 222 of the drive 22 .
  • step S22 If the determined semiconductor package 41 is attached to the socket 222 of the drive 22 (Yes in step S22), the host unit 21, via the controller 223, accesses the non-volatile memory included in the determined semiconductor package 41. Data is read from or written to the memory die 411 (step S23).
  • the host unit 21 checks whether or not there is an empty socket in the drive 22 (step S24). .
  • An empty socket is a socket 222 to which none of the semiconductor packages 41 is attached.
  • the host unit 21 causes the package conveying device 3 to convey the determined semiconductor package 41 from the package stocker 4 to the drive 22 and attach it to the empty socket (step S25). In this case, the host unit 21 instructs the package conveying device 3 to take out the determined semiconductor package 41 from the package stocker 4 and to mount the determined semiconductor package 41 in an empty socket.
  • the host unit 21 reads the package identifier stored in the semiconductor package 41 via the controller 223, and the read package identifier is determined. It is confirmed whether or not it matches the package identifier of the semiconductor package 41 received.
  • the host unit 21 sends information indicating that the determined semiconductor package 41 is mounted in the socket 222 of the drive 22 to semiconductor package management. Store in Table 6.
  • the host unit 21 selects among the semiconductor packages 41 attached to the socket 222 of the drive 22 a priority lower than the determined priority of the semiconductor package 41. It is determined whether or not there is a semiconductor package 41 having an order (step S26).
  • step S26 If there is no semiconductor package 41 having a lower priority than the determined priority of the semiconductor package 41 among the semiconductor packages 41 attached to the socket 222 of the drive 22 (No in step S26), the host unit 21 executes the process of step S24 again. By changing the priority of each semiconductor package 41, the host unit 21 selects a semiconductor package 41 having a lower priority than the determined priority of the semiconductor package 41 among the semiconductor packages 41 attached to the socket 222 of the drive 22. Wait until package 41 is present.
  • the host unit 21 causes the package conveying device 3 to remove the semiconductor package 41 having the lowest priority among the semiconductor packages 41 attached to the socket 222 of the drive 22 from the socket 222, and removes the removed semiconductor package 41 as a package. It is transported to the stocker 4 (step S27). As a result, the socket 222 from which the semiconductor package 41 is removed becomes an empty socket.
  • the host unit 21 causes the package conveying device 3 to convey the determined semiconductor package 41 from the package stocker 4 to the drive 22 and mount it in an empty socket (step S25).
  • the host unit 21 instructs the package conveying device 3 to take out the determined semiconductor package 41 from the package stocker 4 and to mount the determined semiconductor package 41 in the socket 222 .
  • the host unit 21 reads the package identifier stored in the semiconductor package 41 via the controller 223, and the read package identifier is determined. It is confirmed whether or not it matches the package identifier of the semiconductor package 41 received.
  • the host unit 21 sends information indicating that the determined semiconductor package 41 is mounted in the socket 222 of the drive 22 to semiconductor package management. Store in Table 6.
  • the host unit 21 removes from the socket 222 the semiconductor package 41 having a priority lower than that of the determined semiconductor package 41.
  • the semiconductor package 41 thus formed can be attached to the socket 222 .
  • FIGS. 18A and 18B are flowcharts showing another procedure of data reading or writing processing for the nonvolatile memory die 411 executed by the host unit 21 of the storage system 1 according to this embodiment.
  • the host unit 21 determines the semiconductor package 41 including the nonvolatile memory die 411 to be accessed (step S301).
  • the host unit 21 determines whether or not the semiconductor package 41 determined in step S301 is attached to the socket 222 of the drive 22 (step S302).
  • the host unit 21 may refer to the semiconductor package management table 6 to determine whether the determined semiconductor package 41 is attached to the socket 222 of the drive 22 .
  • step S302 If the determined semiconductor package 41 is attached to the socket 222 of the drive 22 (Yes in step S302), the host unit 21, via the controller 223, accesses the non-volatile memory included in the determined semiconductor package 41. Data is read from or written to the memory die 411 (step S303).
  • the host unit 21 checks whether or not there is an empty socket in the drive 22 (step S304). .
  • step S304 If there is an empty socket in the drive 22 (Yes in step S304), the host unit 21 executes the process of step S305 in FIG. 18B.
  • the host unit 21 selects among the semiconductor packages 41 attached to the socket 222 of the drive 22 a priority lower than the determined priority of the semiconductor package 41. It is determined whether or not there is a semiconductor package 41 having an order (step S307).
  • step S304 the process of step S304 is executed again.
  • the host unit 21 selects a semiconductor package 41 having a lower priority than the determined priority of the semiconductor package 41 among the semiconductor packages 41 attached to the socket 222 of the drive 22. Wait until package 41 is present.
  • the host unit 21 causes the package transfer device 3 to remove from the socket 222 a semiconductor package 41 having a lower priority than the determined priority of the semiconductor package 41, and transfers the removed semiconductor package 41 to the buffer of the package transfer device 3. (step S308).
  • the semiconductor package 41 removed from the socket 222 is held by the package conveying device 3 without being stored in the package stocker 4 .
  • the socket 222 from which the semiconductor package 41 is removed becomes an empty socket.
  • the host unit 21 then executes the process of step S305 in FIG. 18B.
  • the host unit 21 determines whether or not the determined semiconductor package 41 exists in the buffer of the package conveying device 3, that is, whether or not the determined semiconductor package 41 is held by the package conveying device 3 (step S305).
  • the host unit 21 can refer to the semiconductor package management table 6 to determine whether or not the determined semiconductor package 41 is held by the package conveying device 3 .
  • the host unit 21 causes the package conveying device 3 to convey the determined semiconductor package 41 from the buffer of the package conveying device 3 to the drive 22 and mount it in an empty socket (step S306). In this case, the host unit 21 instructs the transfer unit 31 holding the determined semiconductor package 41 to mount the determined semiconductor package 41 in the socket 222 .
  • the host unit 21 When the semiconductor package 41 is attached to the socket 222 by the transfer unit 31, the host unit 21 reads the package identifier stored in the semiconductor package 41 via the controller 223, and the read package identifier is determined. It is checked whether the package identifier of the semiconductor package 41 matches.
  • the host unit 21 sends information indicating that the determined semiconductor package 41 is mounted in the socket 222 of the drive 22 to semiconductor package management. Store in Table 6.
  • the host unit 21 confirms whether or not there is an empty buffer in the package conveying device 3 (step S309).
  • An empty buffer of the package transfer device 3 is a transfer unit 31 that does not hold the semiconductor package 41 .
  • the host unit 21 is sent to the package conveying device 3.
  • the semiconductor package 41 is transferred from the package stocker 4 to an empty buffer of the package transfer device 3, that is, to the transfer unit 31 that does not hold the semiconductor package 41 (step S310).
  • the host unit 21 may instruct the transfer unit 31 not holding the semiconductor package 41 to take out the determined semiconductor package 41 from the package stocker 4 .
  • the determined semiconductor package 41 is held by the transfer unit 31 , so that the determined semiconductor package 41 exists in the buffer of the package transfer device 3 .
  • the host unit 21 causes the package conveying device 3 to convey the determined semiconductor package 41 from the buffer of the package conveying device 3 to the drive 22 and mount it in an empty socket (step S306).
  • the host unit 21 instructs the transfer unit 31 holding the determined semiconductor package 41 to mount the determined semiconductor package 41 in the socket 222 .
  • the host unit 21 When the semiconductor package 41 is attached to the socket 222 by the transfer unit 31, the host unit 21 reads the package identifier stored in the semiconductor package 41 via the controller 223, and the read package identifier is determined. It is checked whether the package identifier of the semiconductor package 41 matches.
  • the host unit 21 sends information indicating that the determined semiconductor package 41 is mounted in the socket 222 of the drive 22 to semiconductor package management. Store in Table 6.
  • the host unit 21 stores the determined priority of the semiconductor package 41 among the semiconductor packages 41 held in the buffer of the package conveying device 3. It is determined whether or not there is a semiconductor package 41 having a lower priority than the order (step S311).
  • step S311 If there is no semiconductor package 41 having a lower priority than the determined priority of the semiconductor package 41 among the semiconductor packages 41 held in the buffer of the package transfer device 3 (No in step S311), the host unit 21 executes the process of step S309 again. By changing the priority of each semiconductor package 41, the host unit 21 has a lower priority than the determined priority of the semiconductor package 41 among the semiconductor packages 41 held in the buffer of the package transfer device 3. Wait until semiconductor package 41 is present.
  • the host unit 21 causes the package transfer device 3 to transfer the semiconductor package 41 having the lowest priority among the semiconductor packages 41 held in the buffer of the package transfer device 3 to the package stocker 4 (step S312).
  • the host unit 21 may instruct the transfer unit 31 holding the semiconductor package 41 with the lowest priority to transfer the semiconductor package 41 to the package stocker 4 .
  • the transport unit 31 becomes an empty buffer that does not hold the semiconductor package 41 .
  • the host unit 21 causes the package conveying device 3 to convey the determined semiconductor package 41 from the package stocker 4 to an empty buffer of the package conveying device 3 (step S310).
  • the host unit 21 may instruct the transfer unit 31 that has become an empty buffer to take out the determined semiconductor package 41 from the package stocker 4 .
  • the determined semiconductor package 41 is held by the transfer unit 31 , so that the determined semiconductor package 41 exists in the buffer of the package transfer device 3 .
  • the host unit 21 causes the package conveying device 3 to convey the determined semiconductor package 41 from the buffer of the package conveying device 3 to the drive 22 and mount it in an empty socket (step S306).
  • the host unit 21 When the semiconductor package 41 is attached to the socket 222 by the transfer unit 31, the host unit 21 reads the package identifier stored in the semiconductor package 41 via the controller 223, and the read package identifier is determined. It is checked whether the package identifier of the semiconductor package 41 matches.
  • the host unit 21 sends information indicating that the determined semiconductor package 41 is mounted in the socket 222 of the drive 22 to semiconductor package management. Store in Table 6.
  • the drive 22 includes at least one socket 222 configured to detachably mount the semiconductor package 41, and the semiconductor package 41 mounted in the socket 222. and a controller 223 that controls the non-volatile memory die 411 of the .
  • the host unit 21 communicatively connected to the drive 22 can read data from or write data to the non-volatile memory die 411 of the semiconductor package 41 connected to the socket 222 via the controller 223 .
  • the host unit 21 determines the semiconductor package 41 including the nonvolatile memory die 411 to be accessed from among the plurality of semiconductor packages 41 managed by the storage system 1 .
  • the host unit 21 When the semiconductor package 41 including the non-volatile memory die 411 to be accessed is attached to the socket 222 of the drive 22, the host unit 21 reads or writes data to the non-volatile memory die 411 to be accessed via the controller 223. to run.
  • the host unit 21 instructs the package conveying device 3 to display the nonvolatile memory die 411 to be accessed.
  • the semiconductor package 41 including the non-volatile memory die 411 is transported to the socket 222 of the drive 22 and mounted.
  • a semiconductor package 41 containing one or more nonvolatile memory dies 411 is attached to the socket 222 of the drive 22 .
  • the semiconductor package 41 attached to the socket 222 of the drive 22 can be used as a storage device accessible by the host unit 21 .
  • the host unit 21 can replace the semiconductor package 41 connected to the socket 222 of the drive 22 with another semiconductor package 41 to replace any one of the plurality of semiconductor packages 41 managed by the storage system 1 .
  • Data can be read from or written to a non-volatile memory die 411 included in the semiconductor package 41 .
  • FIG. 19 is a diagram showing a configuration example of the storage system 1 according to this embodiment.
  • the storage system 1 shown in FIG. 19 differs from the storage system 1 of the first embodiment shown in FIG. The main difference is that they are used as units, and other configurations are the same as those of the storage system 1 of the first embodiment. Differences from the storage system 1 of the first embodiment will be mainly described below.
  • the package stocker 4 is configured to be able to store a plurality of trays 46 each accommodating a predetermined number of semiconductor packages 41 .
  • the shape of the tray 46 may be box-shaped or plate-shaped.
  • the number of semiconductor packages 41 accommodated in one tray 46 is two or more.
  • a predetermined number of semiconductor packages 41 are accommodated in the tray 46 .
  • the placement of the semiconductor packages 41 on the trays 46 is performed at the factory.
  • a tray 46 containing a predetermined number of semiconductor packages 41 is shipped from a factory and used in a data center.
  • the drive 22 includes at least a predetermined number of sockets 222 that can collectively attach and detach a predetermined number of semiconductor packages 41 while being accommodated in the tray 46 .
  • drive 22 includes at least 16 sockets 222 .
  • the 16 sockets 222 form a group of sockets to which the 16 semiconductor packages 41 accommodated in one tray can be attached and detached collectively.
  • the 16 semiconductor packages 41 are collectively attached to the 16 sockets 222 while being accommodated in the tray 46 .
  • the drive 22 includes at least 48 sockets 222 .
  • the 48 sockets 222 form a group of sockets that can collectively attach and detach the 48 semiconductor packages 41 accommodated in one tray.
  • the 48 semiconductor packages 41 are collectively attached to the 48 sockets 222 while being accommodated in the tray 46 .
  • the drive 22 may include a number of sockets 222 corresponding to more than one tray 46 .
  • the package conveying device 3 conveys the tray 46 between the package stocker 4 and the drive 22.
  • the package transfer device 3 transfers the 16 semiconductor packages 41 to the package stocker 4 by transferring the tray 46 . and the drive 22 .
  • the host unit 21 has a position management function and a transport control function.
  • the position management function is a function of managing the positions where each of the plurality of trays 46 exists.
  • the transport control function is a function of controlling the transport of the tray 46 accommodating a predetermined number of semiconductor packages 41 by controlling the package transport device 3 .
  • Each of the plurality of trays 46 is given a tray identifier (also called a tray identification name).
  • each of the plurality of trays 46 may be marked with a barcode such as a two-dimensional barcode, or may be attached with a sticker printed with a barcode such as a two-dimensional barcode. .
  • the barcode contains information representing a tray identifier.
  • the host unit 21 can manage the correspondence between the tray identifier and the location where the tray 46 identified by this tray identifier exists.
  • the host unit 21 can also manage the correspondence between the tray identifier and the predetermined number of semiconductor packages 41 housed in the tray 46 identified by this tray identifier.
  • the position where a certain tray 46 can exist is, for example, a predetermined number of sockets 222 out of the plurality of sockets 222 included in the drive 22, or any one of the plurality of tray storage positions included in the package stocker 4. This is the tray storage position.
  • the host unit 21 determines the semiconductor package 41 including the nonvolatile memory die to be accessed from among the plurality of semiconductor packages 41 .
  • the host unit 21 further determines the tray 46 containing the determined semiconductor package 41 .
  • the host unit 21 identifies the positions where the determined trays 46 are present, and determines whether the predetermined number of semiconductor packages 41 housed in the determined trays 46 are attached to the predetermined number of sockets 222 of the drive 22 . It is possible to determine whether or not
  • the host unit 21 selects the nonvolatile memory die to be accessed via the controller 223 in the drive 22 . 411 to read or write data.
  • the host unit 21 causes the package transport device 3 to transport the determined tray 46 to the drive 22 . Then, a predetermined number of semiconductor packages 41 accommodated in the determined tray 46 are attached to a predetermined number of sockets 222 of the drive 22 . In this case, the host unit 21 can transmit a transport request to the package transport device 3 as follows.
  • This transport request designates, for example, the determined position in the package stocker 4 where the tray 46 is stored (also referred to as the tray storage position) as the transfer source position, and a predetermined number of sockets 222 of the drive 22. Specify as the destination position.
  • the transport unit 31 of the package transport device 3 transports the tray 46 existing at the specified source position to the specified destination position. Then, the transport unit 31 collectively mounts the predetermined number of semiconductor packages 41 accommodated in the tray 46 in the predetermined number of sockets 222 at the destination position.
  • each tray 46 By managing the position of each tray 46 in this manner, the amount of processing required for position management can be reduced compared to the case of managing the position of each semiconductor package 41 . Furthermore, since the predetermined number of semiconductor packages 41 accommodated in the tray 46 are collectively transported, it is possible to reduce the required number of times of transportation as compared with the case where the individual semiconductor packages 41 are transported one by one. .
  • the host unit 21 can also have a function of managing the priority of each of the plurality of trays 46 determined based on the priority of each of the plurality of semiconductor packages 41 .
  • the algorithm for determining the priority of each of the plurality of trays 46 is not limited to a specific algorithm, and the priority of each of the plurality of trays 46 can be determined based on various conditions.
  • the host unit 21 may determine the priority of each of the plurality of trays 46 so that the tray 46 having the highest average priority among the predetermined number of semiconductor packages 41 accommodated has the highest priority. .
  • the host unit 21 may determine the priority of each of the trays 46 based on the highest priority among the priorities of the predetermined number of semiconductor packages 41 accommodated.
  • the host unit 21 can also control the position of each of the plurality of trays 46 based on the priority of each of the plurality of trays 46 .
  • the host unit 21 has a predetermined number of semiconductor packages 41 housed in trays 46 having a first level priority and is mounted in a predetermined number of sockets 222 of the drive 22, and has a priority lower than the first level. Based on the priority of each of the plurality of trays 46, the position at which each of the plurality of trays 46 reside can be controlled such that the trays 46 having two levels of priority are stored in the package stocker 4 .
  • some of the transport units 31 included in the package transport device 3 may be used as buffers for temporarily holding the trays 46 .
  • trays 46 having a second level of priority lower than the first level of priority are held in the transport unit 31 included in the package transport apparatus 3 .
  • a tray 46 having a third level of priority lower than the second level of priority is stored in the package stocker 4 .
  • the transport unit 31 holding the tray 46 having the second level of priority may be moved to a specific retracted position so as not to interfere with transport operations by other transport units 31 .
  • the storage location within the package stocker 4 may be changed according to the priority of the trays 46 .
  • the host unit 21 may be configured such that a predetermined number of semiconductor packages 41 terminated in trays 46 having a first level priority are attached to a predetermined number of sockets 222 of the drive 22, and a first level priority lower than the first level priority. Trays 46 with two levels of priority are held in the package transport device 3 and trays 46 with a third level of priority lower than the second level of priority are held in a first storage location contained in the package stocker 4.
  • the priority of each of the plurality of trays 46 is set such that trays 46 that are stored and have a fourth level of priority lower than the third level of priority are stored in a second storage location included in the package stocker 4 . Based on this, the position in which each of the plurality of trays 46 reside can be controlled.
  • the first storage location is a storage location within the package stocker 4 closer to the package conveying device 3 than the second storage location.
  • FIG. 20 is a perspective view showing a configuration example of a tray 46 capable of accommodating a plurality of semiconductor packages 41.
  • FIG. 21 is a cross-sectional view of tray 46 taken along line 21--21 of FIG.
  • the tray 46 includes a predetermined number of depressions 461 that can accommodate a predetermined number of semiconductor packages 41 .
  • the tray 46 has a structure capable of accommodating 16 semiconductor packages 41 , the tray 46 includes 16 depressions 461 .
  • a support member 462 is provided on the inner periphery near the bottom of each of the predetermined number of recesses 461 .
  • the support member 462 supports the outermost peripheral region of the back surface 417 of the semiconductor package 41 accommodated in the recess 461 .
  • the bottom surface of each of the predetermined number of recesses 461 that is, the bottom surface of the tray 46 , is formed with openings through which the plurality of ball-shaped metal terminals 413 of the semiconductor package 41 are exposed. That is, each of the predetermined number of recesses 461 is a cavity capable of accommodating the semiconductor package 41, and the bottom of this cavity is formed with openings through which the plurality of ball-shaped metal terminals 413 of the semiconductor package 41 are exposed.
  • each semiconductor package 41 can be accommodated in the tray 46 such that the plurality of ball-shaped metal terminals 413 protrude from the bottom surface of the tray 46 through openings provided on the bottom surface of the tray 46 .
  • the tray 46 has a lower surface with openings through which the plurality of ball-shaped metal terminals 413 of each of the predetermined number of semiconductor packages 41 are exposed. Therefore, a predetermined number of semiconductor packages 41 can be attached to a predetermined number of sockets 222 while the semiconductor packages 41 are accommodated in the tray 46 .
  • the lower surface of the tray 46 formed with openings through which the plurality of ball-shaped metal terminals 413 of each of the predetermined number of semiconductor packages 41 are exposed is a flat surface without unevenness. Therefore, the tray 46 can move smoothly along the rail pair of the package stocker 4 .
  • FIG. 22 is a perspective view showing a configuration example of a tray 46 having projections on its upper and lower surfaces.
  • FIG. 23 is a cross-sectional view of tray 46 taken along line 23--23 of FIG.
  • the tray 46 includes a predetermined number of depressions 461 that can accommodate a predetermined number of semiconductor packages 41 .
  • the tray 46 has a structure capable of accommodating 16 semiconductor packages 41 , the tray 46 includes 16 depressions 461 .
  • a support member 462 is provided on the inner periphery near the bottom of each of the predetermined number of recesses 461 .
  • the support member 462 supports the outermost peripheral region of the back surface 417 of the semiconductor package 41 accommodated in the recess 461 .
  • the bottom surface of each of the predetermined number of recesses 461 that is, the bottom surface of the tray 46 , is formed with openings through which the plurality of ball-shaped metal terminals 413 of the semiconductor package 41 are exposed. That is, each of the predetermined number of recesses 461 is a cavity capable of accommodating the semiconductor package 41, and the bottom of this cavity is formed with openings through which the plurality of ball-shaped metal terminals 413 of the semiconductor package 41 are exposed.
  • each semiconductor package 41 can be accommodated in the tray 46 such that the plurality of ball-shaped metal terminals 413 protrude from the bottom surface of the tray 46 through openings provided on the bottom surface of the tray 46 .
  • the bottom surface of the tray 46 has one or more protrusions 463 .
  • Each protrusion 463 can be used as an alignment member between a predetermined number of semiconductor packages 41 housed in the tray 46 and a predetermined number of sockets 222 of the drive 22 .
  • the upper surface of the tray 46 has one or more protrusions 464 .
  • the tray 46 may be covered with a lid member.
  • Each protrusion 464 provided on the upper surface of the tray 46 can be used as an alignment member between the tray 46 and the lid member.
  • FIG. 24 is a plan view showing the top and bottom shapes of the tray 46 described with reference to FIGS. 22 and 23.
  • FIG. The left part of FIG. 24 is a plan view of the tray 46 viewed from above.
  • the right part of FIG. 24 is a plan view of the tray 46 viewed from below.
  • 25 is a side view of the tray 46.
  • the bottom surface of the tray 46 has openings through which the plurality of ball-shaped metal terminals 413 of each semiconductor package 41 are exposed, and has a plurality of protrusions 463.
  • the tip of each projection 463 has a flat surface without irregularities.
  • the tip of each protrusion 463 serves as a contact surface that contacts the pair of rails. Since this contact surface has a flat surface without unevenness, the tray 46 can be smoothly slid along the rail pair.
  • FIG. 26 is a perspective view showing the rail structure of the package stocker 4 on which a plurality of trays 46 can be placed.
  • FIG. 26 illustrates a case where each tray 46 accommodates 48 semiconductor packages 41 which are the same number as the sockets 222 provided in the drive 22 .
  • the package stocker 4 includes two side walls 4011 and 4012 facing each other with a gap, and four rail pairs R11 to R14 arranged inside the two side walls 4011 and 4012.
  • the rail pair R11 includes a pair of rails that are spaced apart and extend parallel to each other. By using such a rail structure with gaps between the rails, the tray 46 can be supported without the ball-shaped metal terminals 413 of each semiconductor package 41 exposed from the bottom surface of the tray 46 coming into contact with the rails. It becomes possible.
  • Each of the other rail pairs R12-R14 also has a configuration similar to that of the rail pair R11.
  • FIG. 27 is a perspective view showing another example of the rail structure of the package stocker 4 on which a plurality of trays 46 can be placed.
  • FIG. 27 illustrates a case where the package stocker 4 includes three rail units 401-403.
  • the number of sockets 222 included in the drive 22 is, for example, 48, and the number of semiconductor packages 41 accommodated in the tray 46 is, for example, 16.
  • the 48 sockets 222 included in the drive 22 are divided into 3 groups of 16 sockets 222 each.
  • 16 semiconductor packages 41 housed in a certain tray 46 are collectively attached to 16 sockets 222 included in a certain group.
  • This tray 46 is then covered with a lid member 226 corresponding to this group.
  • a lid member 226 corresponding to each group may be attached to the printed circuit board 221 of the drive 22 so as to be openable and closable via a hinge mechanism.
  • the rail unit 401 includes two side walls 4011 and 4012 facing each other with a spacing, and four rail pairs R11 to R14 arranged inside the two side walls 4011 and 4012.
  • the rail pair R11 includes a pair of rails that are spaced apart and extend parallel to each other. By using such a rail structure with gaps between the rails, the tray 46 can be supported without the ball-shaped metal terminals 413 of each semiconductor package 41 exposed from the bottom surface of the tray 46 coming into contact with the rails. It becomes possible.
  • Each of the other rail pairs R12-R14 also has a configuration similar to that of the rail pair R11.
  • the rail unit 402 includes two side walls 4021 and 4022 facing each other with a spacing, and four rail pairs R21 to R24 arranged inside the two side walls 4021 and 4022.
  • the rail pair R21 includes a pair of rails that face each other with a gap and extend parallel to each other.
  • Each of the other rail pairs R22-R24 has the same configuration as the rail pair R21.
  • the rail unit 403 includes two side walls 4031 and 4032 facing each other with a space therebetween, and four rail pairs R31 to R34 arranged inside the two side walls 4031 and 4032.
  • the rail pair R31 includes a pair of rails that face each other with a gap and extend parallel to each other.
  • Each of the other rail pairs R32 to R34 also has a configuration similar to that of the rail pair R31.
  • FIG. 28 is a block diagram showing a configuration example of the host unit 21 that controls transportation of the tray 46.
  • the host unit 21a which is one of the plurality of host units 21 included in the storage system 1, will be described.
  • the host unit 21a includes a processor 201, a main memory 202, a system controller 203, a communication interface controller 204, and the like. Of these components, the components other than the management data of the main memory 202 are the same as the components of the host unit 21a described with reference to FIG. 7, so descriptions thereof will be omitted.
  • the host unit 21 a (more specifically, the processor 201 ) that controls transportation of the tray 46 can manage the semiconductor package management table 6 and the tray management table 7 under the control of the storage management tool 216 .
  • a semiconductor package management table 6 is management data for a plurality of semiconductor packages 41 .
  • the tray management table 7 is management data for a plurality of trays 46.
  • FIG. Semiconductor package management table 6 and tray management table 7 may be stored in main memory 202 .
  • the host unit 21a is configured to give each semiconductor package 41 a unique semiconductor package identification name.
  • the host unit 21a uses the semiconductor package management table 6 to manage the semiconductor package identification name of each semiconductor package 41, the priority of each semiconductor package 41, and the identification name of the tray 46 in which each semiconductor package 41 is accommodated. do. 28, the host unit 21a identifies each of the plurality of semiconductor packages 41 used in the storage system 1 by using semiconductor package identification names of semiconductor package A, semiconductor package B, . . . , semiconductor package F. , and tray identifiers tray a, tray b, and tray c are used to identify each of the plurality of trays 46 used in the storage system 1.
  • a tray 46 having a certain tray identification name may be indicated using that tray identification name.
  • the tray 46 having the tray identifier "tray a" may be referred to as tray a.
  • the host unit 21a stores the priority of each of the plurality of semiconductor packages 41 in the semiconductor package management table 6.
  • the host unit 21 a may determine the priority of each semiconductor package 41 based on the frequency of access to the nonvolatile memory die 411 included in each semiconductor package 41 . Further, the host unit 21 a may instruct the package transfer device 3 to transfer the semiconductor package 41 based on the priority order managed by the semiconductor package management table 6 .
  • the host unit 21a stores the tray identification name of each tray 46 in the semiconductor package management table 6 as information indicating in which tray 46 each of the plurality of semiconductor packages 41 is accommodated.
  • the tray a accommodates a semiconductor package A and a semiconductor package B.
  • the tray b accommodates a semiconductor package C and a semiconductor package D.
  • the tray c accommodates the semiconductor package E and the semiconductor package F. As shown in FIG.
  • the host unit 21a uses the tray management table 7 to manage the tray identification name of each tray 46, the priority of each tray 46, the state of each tray 46, and the position of each tray 46.
  • FIG. 28 shows an example in which the host unit 21a identifies each of the plurality of trays 46 used in the storage system 1 using the tray identifiers tray a, tray b, and tray c. .
  • the host unit 21a stores the priority of each of the plurality of trays 46 in the tray management table 7. Then, the host unit 21a instructs the package conveying device 3 to carry out the process of carrying the tray 46 based on the priority order managed by the tray management table 7.
  • each of the plurality of trays 46 is connected to the host unit 21a, stored in the package stocker 4, or held in the transport unit 31 of the package transport device 3.
  • Information indicating whether or not there is is stored in the tray management table 7 as the status of each tray 46 .
  • a state in which a certain tray 46 is connected to the host unit 21a means a state in which a predetermined number of semiconductor packages 41 accommodated in this tray 46 are attached to a predetermined number of sockets 222 of the drive 22a. . Therefore, in the host unit 21a, when a certain tray 46 is connected to the host unit 21a, a predetermined number of semiconductor packages 41 accommodated in this tray 46 are attached to a predetermined number of sockets 222 of the drive 22a. can recognize that Then, the host unit 21a can recognize that data can be read from and written to the nonvolatile memory die 411 of each of the predetermined number of semiconductor packages 41 accommodated in this tray.
  • a semiconductor package A is accommodated in a tray 46 having a tray identifier "tray a".
  • a semiconductor package B is housed in a tray a.
  • a semiconductor package C is accommodated in a tray 46 having a tray identifier "tray b".
  • a semiconductor package D is housed in a tray b.
  • a semiconductor package E is housed in a tray 46 having a tray identifier "tray c”.
  • a semiconductor package F is housed in a tray c.
  • a predetermined number of semiconductor packages 41 (here, semiconductor packages A to B) accommodated in the tray a are attached to the socket group #1 of the drive 22a.
  • Tray b is stored in storage position #1 included in package stocker 4 .
  • Tray c is stored at storage position #2 of package stocker 4 .
  • the distance between the storage position #1 and the package transport device 3 is shorter than the distance between the storage position #2 and the package transport device 3. Therefore, the tray b stored at the storage position #1 can be taken out more easily by the transport unit 31 than the tray c stored at the storage position #2.
  • the host unit 21a may instruct the package conveying device 3 to store the tray 46 with the higher priority in a storage position from which it can be taken out more easily. good.
  • the host unit 21a may use the transport unit 31 as a buffer. At this time, the host unit 21a may instruct the package conveying device 3 so that the conveying unit 31 holds the tray 46 with the highest priority among the plurality of trays 46 stored in the package stocker 4. .
  • FIG. 29 is a view showing the tray ejection port of the package stocker 4.
  • the package stocker 4 includes a tray loading/unloading port 421 used for adding trays 46 from the outside of the package stocker 4 to the package stocker 4 and discharging the trays 46 from the package stocker 4 to the outside of the package stocker 4.
  • the tray loading/unloading port 421 is an opening provided in the front surface 42 of the package stocker 4 .
  • the front surface 42 corresponds to the front surface 12 of the server rack 11 .
  • the tray 46 is added to the package stocker 4 from the outside of the package stocker 4 through a tray loading/unloading port 421 provided in the package stocker 4 .
  • the added tray 46 is stored in the package stocker 4 together with the plurality of trays 46 already stored.
  • the tray 46 that is no longer needed is discharged from the package stocker 4 to the outside of the package stocker 4 through the tray loading/unloading port 421 provided in the package stocker 4 .
  • the package stocker 4 includes a tray loading/unloading opening 421 provided on the front surface 42 of the package stocker 4 and a tray loading/unloading opening 431 provided on the side facing the package conveying device 3 .
  • the tray loading/unloading port 431 is used for storing the tray 46 in the package stocker 4 and taking out the tray 46 from the package stocker 4 .
  • the package conveying device 3 performs an operation of storing the tray 46 in the package stocker 4 through the tray loading/unloading port 431 and an operation of taking out the tray 46 from the package stocker 4 through the tray loading/unloading port 431 .
  • the tray loading/unloading port 431 is provided, for example, on the rear surface of the package stocker 4 and located on the opposite side of the tray loading/unloading port 421 .
  • a plurality of pairs of rails extend from the tray loading/unloading port 421 of the package stocker 4 toward the package conveying device 3, that is, from the tray loading/unloading port 421 toward the tray loading/unloading port 431. ing.
  • FIG. 30 is a diagram showing the operation of adding a new tray 46 to the package stocker 4 through the tray loading/unloading port 421 of the package stocker 4. As shown in FIG.
  • FIG. 30 The upper part of FIG. 30 is a plan view of the server rack 11 before new trays 46 are added.
  • the lower part of FIG. 30 is a plan view of the server rack 11 after new trays 46 containing 48 semiconductor packages 41 have been added.
  • the package transport device 3 faces the tray loading/unloading port 421 provided on the front surface 12 of the server rack 11 .
  • the rail pair R11 extends from the tray loading/unloading port 421 toward the package transport device 3 (Y direction).
  • a tray 46 containing 48 semiconductor packages 41 is added to the package stocker 4 .
  • a tray 46 containing 48 semiconductor packages 41 is placed on the rail pair R11 through the tray loading/unloading opening 421 by, for example, a robot or an operator. The tray 46 is thereby stored in the package stocker 4 .
  • the package stocker 4 is provided with a rail pair R11 extending in the direction from the tray loading/unloading opening 421 toward the package conveying device 3. As shown in FIG. Therefore, it is possible to easily add and eject the tray 46 through the tray loading/unloading port 421 .
  • FIG. 31 shows the relationship between the concave portion provided on the substrate of the drive 22, the convex portion provided on the lower surface of the tray 46, the convex portion provided on the upper surface of the tray 46, and the concave portion provided on the cover member 226. It is a figure which shows.
  • FIG. 32 is a diagram showing a state in which the projections on the lower surface of the tray 46 are fitted into the recesses provided on the substrate of the drive 22, and the recesses of the lid member 226 are fitted into the projections on the upper surface of the tray 46. As shown in FIG. .
  • This board of the drive 22 is, for example, the printed circuit board 221 of the drive 22 .
  • at least a predetermined number of sockets 222 are arranged on the printed circuit board 221 of the drive 22 .
  • Each of sockets 222 includes a plurality of terminals 2215 provided on printed circuit board 221 .
  • Printed circuit board 221 also includes one or more recesses 2210 .
  • the lid member 226 has a lower surface including one or more recesses 2260 .
  • the tray 46 placed on the printed circuit board 221 is placed on the printed circuit board 221 so that each projection 464 on the upper surface fits into the corresponding recess 2260 on the lid member 226 .
  • the removed tray 46 is covered with the lid member 226 .
  • the bottom surface of the lid member 226 comes into contact with the top surfaces of the predetermined number of semiconductor packages 41 accommodated in the tray 46 .
  • the plurality of ball-shaped metal terminals 413 of each of the predetermined number of semiconductor packages 41 accommodated in the tray 46 are pressed against the plurality of terminals 2215 on the printed circuit board 221 .
  • the board including the recess 2210 is a board different from the printed circuit board 221 (also called a socket board).
  • this other substrate includes a predetermined number of sockets each including a plurality of terminals 2215 and one or more recesses 2210 .
  • FIG. 33 explains the operation of changing the position of the tray 46 between the package stocker 4 and the socket 222 of the drive 22 based on the change in priority of the tray 46, which is executed in the storage system 1 according to this embodiment. It is a figure for doing.
  • the total number of sockets 222 included in the drive 22 is equal to the number of semiconductor packages 41 accommodated in the tray 46 .
  • the number of sockets 222 equal to the number of semiconductor packages 41 accommodated in the tray 46 is hereinafter referred to as socket group #1. Also, for the sake of illustration simplification, it is assumed below that the number of semiconductor packages 41 housed in the tray 46 is two.
  • the host unit 21 uses the tray management table 7 to manage the priority of each tray 46 included in the storage system 1 .
  • the priority of each tray 46 included in the storage system 1 can be determined based on the priority of each semiconductor package 41 included in the storage system 1 .
  • the host unit 21 instructs the package transport device 3 to transport and attach/detach the trays 46 based on the priority of each tray 46 included in the storage system 1 .
  • the host unit 21 manages six semiconductor packages 41, semiconductor package A, semiconductor package B, .
  • the host unit 21 also manages three trays 46, tray a, tray b, and tray c.
  • the semiconductor package A is the semiconductor package 41 with the highest priority and is accommodated in the tray a.
  • the semiconductor package B is the semiconductor package 41 with the second highest priority and is accommodated in the tray a.
  • the semiconductor package C is the semiconductor package 41 with the third highest priority and is accommodated in the tray b.
  • the semiconductor package D is the semiconductor package 41 having the fourth highest priority and is accommodated in the tray b.
  • the semiconductor package E is the semiconductor package 41 having the fifth highest priority and is accommodated in the tray c.
  • the semiconductor package F is the semiconductor package 41 with the sixth highest priority and is accommodated in the tray c.
  • the host unit 21 determines the priority of the tray a, which has the highest average priority of the predetermined number of semiconductor packages 41 accommodated, as the first priority.
  • the priority of tray b, which has the second highest average priority, is determined to be second, and the priority of tray c, which has the third highest average priority of the predetermined number of semiconductor packages 41 housed therein, is determined to be 3. shall be determined by the
  • the host unit 21 conveys the tray a having the highest priority to the drive 22, and mounts the semiconductor packages A to B housed in the tray a to the two sockets 222 of the drive 22, ie socket group #1.
  • the package conveying device 3 is instructed to do so.
  • the package conveying device 3 conveys the tray a to the drive 22 and mounts the semiconductor packages A to B housed in the tray a into the socket group #1 of the drive 22 all at once.
  • the host unit 21 stores in the tray management table 7 information indicating that the tray a housing the semiconductor packages A to B is present in the socket group #1.
  • the semiconductor packages A to A which are accommodated in the tray a having the highest priority. B are attached to the two sockets 222 of the socket group #1 of the drive 22, respectively.
  • the first priority corresponds to the first level priority.
  • the package stocker 4 can include at least two types of storage locations, a first storage location and a second storage location.
  • the distance between the first storage location and the package conveying device 3 is shorter than the distance between the second storage location and the package conveying device 3 .
  • the first storage location includes, for example, storage location #1.
  • a second storage location includes, for example, storage location #2.
  • the storage position #1 is a storage position from which the package conveying device 3 can take out the tray 46 more easily than the storage position #2.
  • the tray b which has the second highest priority, is stored in the storage position #1 included in the first storage location.
  • a second priority corresponds to a second level priority that is lower than the first level priority.
  • the tray c which has the third highest priority, is stored in the storage position #2 included in the second storage location.
  • a third priority corresponds to a third level priority that is lower than the second level priority.
  • FIG. 34 explains the operation of changing the position of the tray 46 between the package stocker 4 and the socket 222 of the drive 22 based on the change in priority of the tray 46, which is executed in the storage system 1 according to this embodiment.
  • FIG. 3 is another diagram for
  • the priority of semiconductor package A is lowered from 1st to 3rd
  • the priority of semiconductor package B is lowered from 2nd to 4th
  • the priority of semiconductor package C is raised from 3rd to 1st
  • the priority of semiconductor package D is lowered. is raised from the fourth to the second.
  • the host unit 21 updates the priority of each of the plurality of semiconductor packages 41 using a predetermined algorithm based on the frequency of access requests.
  • the host unit 21 updates the priority of each of the plurality of trays 46 in response to the updating of the priority of each of the plurality of semiconductor packages 41 .
  • the priorities of the semiconductor packages C to D accommodated in the tray b are all higher than the priorities of the semiconductor packages A to B accommodated in the tray a
  • the host unit 21 is higher than that of tray a.
  • the host unit 21 removes the semiconductor packages A and B accommodated in the tray a from the two sockets 222 of the socket group #1, transfers the tray b to the drive 22, and removes the semiconductor packages accommodated in the tray b.
  • the package conveying device 3 is instructed to mount C to D in the two sockets 222 of the socket group #1 and to convey the detached tray a to the storage position #1 of the package stocker 4, for example. By removing the tray a from the socket group #1, the package conveying device 3 collectively removes the semiconductor packages A to B housed in the tray a from the two sockets 222 of the socket group #1.
  • the package conveying device 3 conveys the tray b to the drive 22 and transfers the semiconductor packages C to D housed in the tray b to socket group #1 from which the semiconductor packages A to B housed in the tray a have been removed. , and the removed tray a is transported to the storage position #1 of the package stocker 4 .
  • the host unit 21 updates the tray management table 7. Specifically, the host unit 21 stores information indicating that the tray a is stored in the storage position #1 of the package stocker 4 and information indicating that the tray b exists in the socket group #1 of the drive 22. is stored in the tray management table 7.
  • the host unit 21 can instruct the package conveying device 3 to convey each tray 46 accommodating a plurality of semiconductor packages 41 .
  • a plurality of semiconductor packages 41 can be collectively attached to a plurality of sockets 222. Therefore, the frequency of sending instructions from the host unit 21 to the package transfer device 3 and the transfer and attachment/detachment operations of the package transfer device 3 are can be performed less frequently.
  • FIG. 35 is a diagram for explaining the operation of changing the position of the tray 46 within the package stocker 4 based on the change in the priority of the tray 46, which is executed in the storage system 1 according to this embodiment.
  • the host unit 21 instructs the package conveying device 3 to exchange the storage position of the tray c and the storage position of the tray b.
  • the package conveying device 3 takes out the tray b from the storage position #1 of the package stocker 4 .
  • the package conveying device 3 then takes out the tray c from the storage position #2 of the package stocker 4 .
  • the package conveying device 3 stores the tray b in the storage position #2 of the package stocker 4 .
  • the package conveying device 3 stores the tray c at the storage position #1 of the package stocker 4 .
  • the host unit 21 updates the tray management table 7. Specifically, the host unit 21 receives information indicating that the tray b is stored at the storage position #2 of the package stocker 4 and that the tray c is stored at the storage position #1 of the package stocker 4. and the information to be displayed are stored in the tray management table 7 .
  • the host unit 21 moves the tray 46 having the higher priority among the trays 46 stored in the package stocker 4 to the storage position (here, the storage position) from which it is easier for the package conveying device 3 to take out the tray 46 . It can be controlled to be stored in location #1). As a result, when the priority of the tray 46 stored in the storage location #1 of the package stocker 4 exceeds the priority of the second level, the tray 46 necessary for transporting the tray 46 from the package stocker 4 to the drive 22 is determined. can be shortened.
  • FIG. 36 shows the position of the tray 46 between the package stocker 4, the package transport device 3, and the socket 222 of the drive 22 based on the change of the priority of the tray 46 executed in the storage system 1 according to this embodiment. It is a figure for demonstrating the operation
  • the host unit 21 manages six semiconductor packages 41, semiconductor package A, semiconductor package B, .
  • the host unit 21 also manages three trays 46, tray a, tray b, and tray c.
  • the semiconductor package A is the semiconductor package 41 with the highest priority and is accommodated in the tray a.
  • the semiconductor package B is the semiconductor package 41 with the second highest priority and is accommodated in the tray a.
  • the semiconductor package C is the semiconductor package 41 with the third highest priority and is accommodated in the tray b.
  • the semiconductor package D is the semiconductor package 41 having the fourth highest priority and is accommodated in the tray b.
  • the semiconductor package E is the semiconductor package 41 having the fifth highest priority and is accommodated in the tray c.
  • the semiconductor package F is the semiconductor package 41 with the sixth highest priority and is accommodated in the tray c.
  • the host unit 21 determines the priority of the tray a, which has the highest average priority of the predetermined number of semiconductor packages 41 accommodated, as the first priority.
  • the priority of tray b, which has the second highest average priority, is determined to be second, and the priority of tray c, which has the third highest average priority of the predetermined number of semiconductor packages 41 housed therein, is determined to be 3.
  • the host unit 21 conveys the tray a having the highest priority to the drive 22, and mounts the semiconductor packages A to B housed in the tray a to the two sockets 222 of the drive 22, ie socket group #1.
  • the package conveying device 3 is instructed to do so.
  • the package conveying device 3 conveys the tray a to the drive 22 and mounts the semiconductor packages A to B housed in the tray a into the socket group #1 of the drive 22 all at once.
  • the host unit 21 stores in the tray management table 7 information indicating that the tray a housing the semiconductor packages A to B is present in the socket group #1.
  • the semiconductor packages A to A accommodated in the tray a having the highest priority. B are attached to the two sockets 222 of the socket group #1 of the drive 22, respectively.
  • the first priority corresponds to the first level priority.
  • the host unit 21 instructs the package conveying device 3 to hold tray b, which has the second highest priority.
  • a second priority corresponds to a second level of priority that is lower than the first level of priority.
  • the package conveying device 3 (for example, conveying unit #1) that has received the instruction holds the tray b.
  • the tray 46 having the second priority is held in the package conveying device 3 . That is, the transport unit #1 holding the tray b is used as a buffer (buffer #1) of the package transport device 3.
  • FIG. 1 For example, conveying unit #1
  • the host unit 21 stores in the tray management table 7 information indicating that the tray b is held in the transport unit #1 (buffer #1).
  • FIG. 37 shows the operation of changing the position of the tray 46 between the package conveying device 3 and the socket 222 of the drive 22 based on the change in priority of the tray 46, which is executed in the storage system 1 according to this embodiment. It is a figure for explaining.
  • the priority of semiconductor package A is lowered from 1st to 3rd
  • the priority of semiconductor package B is lowered from 2nd to 4th
  • the priority of semiconductor package C is raised from 3rd to 1st
  • the priority of semiconductor package D is lowered. is raised from the fourth to the second.
  • the host unit 21 updates the priority of each of the plurality of semiconductor packages 41 using a predetermined algorithm based on the frequency of access requests.
  • the host unit 21 updates the priority of each of the plurality of trays 46 in response to the updating of the priority of each of the plurality of semiconductor packages 41 .
  • the priorities of the semiconductor packages C to D accommodated in the tray b are all higher than the priorities of the semiconductor packages A to B accommodated in the tray a
  • the host unit 21 is higher than that of tray a.
  • the host unit 21 removes the semiconductor packages A and B accommodated in the tray a from the two sockets 222 of the socket group #1, transfers the tray b to the drive 22, and removes the semiconductor packages accommodated in the tray b.
  • the package conveying device 3 is instructed to attach C to D to the two sockets 222 of the socket group #1 and to hold the removed tray a in the package conveying device 3 .
  • the package conveying device 3 collectively removes the semiconductor packages A to B accommodated in the tray a from the two sockets 222 of the socket group #1 of the drive 22.
  • the package conveying device 3 conveys the tray b held in the conveying unit #1 to the drive 22, and transfers the semiconductor packages C to D housed in the tray b to the semiconductor packages A to D housed in the tray a.
  • the two sockets 222 of the removed socket group #1 are collectively mounted.
  • the removed tray a is maintained in a state of being held by the package conveying device 3 (for example, conveying unit #1).
  • the host unit 21 updates the tray management table 7 according to the above operation. Specifically, the host unit 21 receives information indicating that the tray a is held in the transport unit #1 (buffer #1) of the package transport device 3 and that the tray b is present in the socket group #1. and the information to be displayed are stored in the tray management table 7 .
  • FIG. 38 explains the operation of changing the position of the tray 46 between the package stocker 4 and the package transport device 3 based on the change in the priority of the tray 46, which is executed in the storage system 1 according to this embodiment. It is a diagram for
  • the host unit 21 instructs the package conveying device 3 to exchange the position of the tray b and the position of the tray c. Specifically, first, the host unit 21 instructs the package conveying device 3 to convey the tray b to the storage position #1 of the package stocker 4, and further instructs the conveying unit #1 to hold the tray c. The package conveying device 3 is instructed.
  • the package conveying device 3 that has received the instruction conveys the tray b held by the conveying unit #1 to the storage position #1 of the package stocker 4 . Then, the transport unit #1 exchanges the tray c stored at the storage position #1 of the package stocker 4 with the tray b it holds. Transport unit #1 holds tray c as buffer #1.
  • the host unit 21 updates the tray management table 7 according to the above operation. Specifically, the host unit 21 receives information indicating that the tray b is stored in the storage position #1 of the package stocker 4 and that the tray c is stored in the transport unit #1 (buffer #1) of the package transport device 3. and information indicating that it is held are stored in the tray management table 7 .
  • the host unit 21 causes the package conveying device 3 to hold in advance the semiconductor packages 41 accommodated in the trays 46 having higher priority among the trays 46 stored in the package stocker 4. be able to.
  • the package conveying device 3 is removed from the package stocker 4. The time required to remove the tray 46 can be eliminated.
  • FIG. 39 shows data reading or writing processing for the non-volatile memory die 411 included in one of the predetermined number of semiconductor packages 41 housed in the tray 46, executed by the host unit 21 of the storage system 1 according to this embodiment. is a flow chart showing the procedure of .
  • the host unit 21 determines the semiconductor package 41 including the nonvolatile memory die 411 to be accessed (step S41).
  • the nonvolatile memory die 411 to be accessed is determined based on the read request or write request received from the application program 211 .
  • the semiconductor package 41 including the nonvolatile memory die 411 to be accessed is determined in step S41.
  • the host unit 21 identifies the tray 46 that accommodates the semiconductor package 41 determined in step S41 (step S42).
  • the host unit 21 refers to the semiconductor package management table 6 to acquire the tray identification name of the tray 46 that accommodates the determined semiconductor package 41. FIG. Thereby, the host unit 21 can specify the tray 46 that accommodates the determined semiconductor package 41 .
  • the host unit 21 determines whether or not the tray 46 specified in step S42 is attached to the socket group of the drive 22. is attached to the socket 222 (step S43). In step S ⁇ b>43 , the host unit 21 obtains information indicating the state of the specified tray 46 by referring to the tray management table 7 . Thereby, the host unit 21 can determine whether or not the specified tray 46 is attached to the socket group of the drive 22 .
  • step S43 If the specified tray 46 is attached to the socket group of the drive 22 (Yes in step S43), the host unit 21, via the controller 223, determines the semiconductor package 41 accommodated in the specified tray 46. data is read from or written to the nonvolatile memory die 411 to be accessed included in the (step S45).
  • the host unit 21 causes the package conveying device 3 to convey the identified tray 46 from the package stocker 4 to the drive 22.
  • a predetermined number of semiconductor packages 41 accommodated in the identified tray 46 are mounted in a predetermined number of sockets 222 of the drive 22 (step S44).
  • the host unit 21 uses the bar code reader in the drive 22 to read the trays 46. Read the tray identifier (tray identifier) from the barcode. Then, the host unit 21 determines whether or not the read tray identification name matches the tray identification name of the specified tray 46 .
  • the host unit 21 further reads the package identifier stored in the determined semiconductor package 41 housed in this tray 46 as It may be determined whether or not the read package identifier matches the determined package identifier of the semiconductor package 41 by reading through the controller 223 . Then, when the read package identifier matches the package identifier of the determined semiconductor package 41, the host unit 21, via the controller 223, is included in the determined semiconductor package 41 accommodated in the identified tray 46. Data is read from or written to the semiconductor memory die 411 to be accessed (step S45).
  • FIG. 40 shows data reading or writing processing for the non-volatile memory die 411 included in one of the predetermined number of semiconductor packages 41 accommodated in the tray 46, executed by the host unit 21 of the storage system 1 according to this embodiment.
  • 3 is a flowchart showing the details of the procedure of .
  • the host unit 21 determines the semiconductor package 41 including the nonvolatile memory die 411 to be accessed (step S51).
  • the host unit 21 identifies the tray 46 containing the semiconductor package 41 determined in step S51 (step S52). In step S ⁇ b>52 , the host unit 21 refers to the semiconductor package management table 6 to acquire the tray identification name of the tray 46 accommodating the determined semiconductor package 41 . Thereby, the host unit 21 can specify the tray 46 that accommodates the determined semiconductor package 41 .
  • the host unit 21 determines whether or not the tray 46 specified in step S52 is attached to the socket group of the drive 22. is attached to the socket 222 (step S53). In step S53, the host unit 21 refers to the tray management table 7 to acquire information indicating the state of the tray 46 identified in step S52. Thereby, the host unit 21 can determine whether or not the specified tray 46 is attached to the socket group of the drive 22 .
  • step S53 If the specified tray 46 is attached to the socket group of the drive 22 (Yes in step S53), the host unit 21, via the controller 223, determines the semiconductor package 41 accommodated in the specified tray 46. data is read from or written to the nonvolatile memory die 411 to be accessed included in the (step S54).
  • the host unit 21 confirms whether or not there is an empty socket group in the drive 22 (step S55).
  • the empty socket group is a predetermined number of sockets 222 to which none of the semiconductor packages 41 are attached.
  • the host unit 21 causes the package conveying device 3 to convey the specified tray 46 from the package stocker 4 to the drive 22 and store it in the specified tray 46.
  • a predetermined number of semiconductor packages 41 are mounted on a predetermined number of sockets 222, which are the group of empty sockets (step S56).
  • the host unit 21 instructs the package conveying device 3 to take out the identified tray 46 from the package stocker 4, convey the identified tray 46 to the drive 22, and mount it in the empty socket group. .
  • the host unit 21 uses the bar code reader in the drive 22 to read these packages.
  • a tray identifier (tray identification name) is read from the barcode of the tray 46 . Then, the host unit 21 determines whether or not the read tray identification name matches the tray identification name of the specified tray 46 .
  • the host unit 21 stores information indicating that the specified tray 46 is attached to the socket group of the drive 22 in the tray management table 7. store in
  • the host unit 21 further reads the package identifier stored in the determined semiconductor package 41 housed in this tray 46 as It may be determined whether or not the read package identifier matches the determined package identifier of the semiconductor package 41 by reading through the controller 223 . Then, when the read package identifier matches the package identifier of the determined semiconductor package 41, the host unit 21, via the controller 223, is included in the determined semiconductor package 41 accommodated in the identified tray 46. Data is read from or written to the semiconductor memory die 411 to be accessed (step S54).
  • step S55 If there is no empty socket group in the drive 22 (No in step S55), the host unit 21 selects a tray 46 attached to the socket group of the drive 22 with a lower priority than the identified tray 46. is present (step S57).
  • step S57 If there is no tray 46 having a lower priority than the specified tray 46 among the trays 46 attached to the socket group of the drive 22 (No in step S57), the host unit 21 performs step The process of S55 is executed again. By changing the priority of each tray 46, the host unit 21 detects that among the trays 46 attached to the socket group of the drive 22, there is a tray 46 having a lower priority than the identified tray 46. wait until it does.
  • the host unit 21 Make the transport device 3 remove the tray 46 having the lowest priority among the trays 46 attached to the socket group of the drive 22 from the socket group, and transport the removed tray 46 to the package stocker 4 (step S58).
  • the socket group from which the tray 46 has been removed becomes an empty socket group containing a predetermined number of sockets.
  • the host unit 21 causes the package conveying device 3 to convey the identified tray 46 from the package stocker 4 to the drive 22, and transfers a predetermined number of semiconductor packages 41 accommodated in the identified tray 46 to an empty socket group. (step 56).
  • the host unit 21 instructs the package conveying device 3 to take out the identified tray 46 from the package stocker 4, convey the identified tray 46 from the drive 22, and mount it in the socket group. .
  • the host unit 21 uses the barcode reader in the drive 22 to read the tray identifier (tray identification name) from the barcode of this tray 46. Then, the host unit 21 determines whether or not the read tray identification name matches the tray identification name of the specified tray 46 .
  • the host unit 21 stores information indicating that the specified tray 46 is attached to the socket group of the drive 22 in the tray management table 7. store in
  • the host unit 21 further reads the package identifier stored in the determined semiconductor package 41 housed in this tray 46 as It may be determined whether or not the read package identifier matches the determined package identifier of the semiconductor package 41 by reading through the controller 223 . Then, when the read package identifier matches the package identifier of the determined semiconductor package 41, the host unit 21, via the controller 223, is included in the determined semiconductor package 41 accommodated in the identified tray 46. Data is read from or written to the semiconductor memory die 411 to be accessed (step S54).
  • the host unit 21 removes from the socket group the tray 46 having a priority lower than that of the identified tray 46.
  • a predetermined number of semiconductor packages 41 accommodated in the tray 46 can be attached to a predetermined number of sockets 222 of the drive 22 .
  • FIGS. 41A and 41B are flowcharts showing another procedure of data reading or writing processing for the nonvolatile memory die 411 executed by the host unit 21 of the storage system 1 according to this embodiment.
  • the host unit 21 determines the semiconductor package 41 including the nonvolatile memory die 411 to be accessed (step S601).
  • the host unit 21 identifies the tray 46 containing the semiconductor package 41 determined in step S601 (step S602).
  • the host unit 21 refers to the semiconductor package management table 6 to acquire the tray identification name of the tray 46 accommodating the determined semiconductor package 41 . Thereby, the host unit 21 can specify the tray 46 that accommodates the determined semiconductor package 41 .
  • the host unit 21 determines whether or not the tray 46 specified in step S602 is attached to the socket group of the drive 22. is attached to the socket 222 (step S603). In step S603, the host unit 21 refers to the tray management table 7 to acquire information indicating the state of the tray 46 identified in step S602. Thereby, the host unit 21 can determine whether or not the specified tray 46 is attached to the socket group of the drive 22 .
  • step S603 If the specified tray 46 is attached to the socket group of the drive 22 (Yes in step S603), the host unit 21, via the controller 223, determines the semiconductor package 41 accommodated in the specified tray 46. data is read from or written to the nonvolatile memory die 411 to be accessed included in the (step S604).
  • the host unit 21 checks whether the drive 22 has an empty socket group (step S605).
  • step S605 If there is an empty socket group in the drive 22 (Yes in step S605), the host unit 21 executes the process of step S606 in FIG. 41B.
  • step S605 If there is no empty socket group in the drive 22 (No in step S605), the host unit 21 selects a tray 46 attached to the socket group of the drive 22 with a lower priority than the identified tray 46. is present (step S608).
  • step S608 If there is no tray 46 having a lower priority than the specified tray 46 among the trays 46 attached to the socket group of the drive 22 (No in step S608), the host unit 21 performs the process of step S605. again. By changing the priority of each tray 46, the host unit 21 detects that among the trays 46 attached to the socket group of the drive 22, there is a tray 46 having a lower priority than the identified tray 46. wait until it does.
  • step S608 If there is a tray 46 having a lower priority than the specified tray 46 among the trays 46 attached to the socket group of the drive 22 (Yes in step S608), the host unit 21 The carrier 3 is caused to remove trays 46 having a lower priority than the identified tray 46 from the socket group, and the removed trays 46 are carried to the buffer of the package carrier 3 (step S609). As a result, the tray 46 removed from the socket group is held in the package conveying device 3 without being stored in the package stocker 4 . Also, the socket group from which the tray 46 has been removed becomes an empty socket group. The host unit 21 then executes the process of step S606 in FIG. 41B.
  • the host unit 21 determines whether the identified tray 46 exists in the buffer of the package conveying device 3, that is, whether the identified tray 46 is held in the package conveying device 3 (step S606). .
  • the host The unit 21 causes the package conveying device 3 to convey the identified tray 46 from the buffer of the package conveying device 3 to the drive 22, and transfers a predetermined number of semiconductor packages 41 accommodated in the identified tray 46 to the empty socket group. (step S607).
  • the host unit 21 causes the transport unit 31 holding the specified tray 46 to transport the specified tray 46 to the drive 22 and insert a predetermined number of semiconductor packages 41 into a predetermined number of sockets 222 of the drive 22 . instruct to wear it.
  • the host unit 21 uses the bar code reader in the drive 22 to read the bars on the tray 46 . Read the tray identifier (tray identifier) from the code. Then, the host unit 21 determines whether or not the read tray identification name matches the tray identification name of the specified tray 46 .
  • the host unit 21 stores information indicating that the specified tray 46 is attached to the socket group of the drive 22 in the tray management table 7. store in
  • the host unit 21 further reads the package identifier stored in the determined semiconductor package 41 housed in this tray 46 as It may be determined whether or not the read package identifier matches the determined package identifier of the semiconductor package 41 by reading through the controller 223 . Then, when the read package identifier matches the package identifier of the determined semiconductor package 41, the host unit 21, via the controller 223, is included in the determined semiconductor package 41 accommodated in the specified tray 46. Data is read from or written to the semiconductor memory die 411 to be accessed (step S604 in FIG. 41A).
  • the host unit 21 confirms whether or not there is an empty buffer in the package conveying device 3 (step S610).
  • An empty buffer in the package transport device 3 is a transport unit 31 that does not hold a tray 46 .
  • the host unit 21 sends the specified tray to the package conveying device 3.
  • 46 is transferred from the package stocker 4 to an empty buffer of the package transfer device 3, that is, to the transfer unit 31 which does not hold the tray 46 (step S611).
  • the host unit 21 may instruct the transport unit 31 not holding the tray 46 to take out the identified tray 46 from the package stocker 4 .
  • the identified tray 46 is held by the conveying unit 31 , so that the identified tray 46 exists in the buffer of the package conveying device 3 .
  • the host unit 21 causes the package conveying device 3 to convey the identified tray 46 from the buffer of the package conveying device 3 to the drive 22 , and a predetermined number of semiconductor packages 41 accommodated in the identified tray 46 are transferred to the drive 22 . are attached to a predetermined number of sockets 222 (step S607).
  • the host unit 21 uses the bar code reader in the drive 22 to read the trays 41 .
  • a tray identifier (tray identification name) is read from the 46 bar code. Then, the host unit 21 determines whether or not the read tray identification name matches the tray identification name of the specified tray 46 .
  • the host unit 21 stores information indicating that the specified tray 46 is attached to the socket group of the drive 22 in the tray management table 7. store in
  • the host unit 21 further transmits the package identifier stored in the semiconductor package 41 accommodated in this tray 46 to the controller 223. It may be determined whether or not the read package identifier matches the determined package identifier of the semiconductor package 41 . Then, when the read package identifier matches the package identifier of the determined semiconductor package 41, the host unit 21, via the controller 223, is included in the determined semiconductor package 41 accommodated in the identified tray 46. Data is read from or written to the semiconductor memory die 411 to be accessed (step S604 in FIG. 41A).
  • the host unit 21 selects the trays 46 held in the buffer of the package conveying device 3 according to the specified priority of the trays 46. It is determined whether or not there is a tray 46 with a lower priority (step S612).
  • step S610 If there is no tray 46 having a lower priority than the identified tray 46 among the trays 46 held in the buffer of the package conveying device 3 (No in step S612), the host unit 21 The process of step S610 is executed again. By changing the priority of each tray 46, the host unit 21 determines that among the trays 46 held in the buffer of the package conveying device 3, there is a tray 46 having a lower priority than the identified tray 46. Wait until it exists.
  • step S612 If there is a tray 46 with a lower priority than the specified tray 46 among the trays 46 held in the buffer of the package transport device 3 (Yes in step S612), the host unit 21 causes the package transport device 3, among the trays 46 held in the buffer of the package conveying device 3, the tray 46 having the lowest priority is conveyed to the package stocker 4 (step S613).
  • step S ⁇ b>613 the host unit 21 may instruct the transport unit 31 holding the tray 46 with the lowest priority to transport the tray 46 to the package stocker 4 . As a result, this transport unit 31 becomes an empty buffer that does not hold the tray 46 .
  • the host unit 21 causes the package conveying device 3 to convey the specified tray 46 from the package stocker 4 to an empty buffer of the package conveying device 3 .
  • the host unit 21 may instruct the transport unit 31 , which has become an empty buffer, to take out the specified tray 46 from the package stocker 4 .
  • the identified tray 46 is held by the conveying unit 31 , so that the identified tray 46 exists in the buffer of the package conveying device 3 .
  • the host unit 21 causes the package conveying device 3 to convey the identified tray 46 from the buffer of the package conveying device 3 to the drive 22 , and a predetermined number of semiconductor packages 41 accommodated in the identified tray 46 are transferred to the drive 22 . are attached to a predetermined number of sockets 222 (step S607).
  • the host unit 21 uses the bar code reader in the drive 22 to read the trays 41 .
  • a tray identifier (tray identification name) is read from the 46 bar code. Then, the host unit 21 determines whether or not the read tray identification name matches the tray identification name of the specified tray 46 .
  • the host unit 21 stores information indicating that the specified tray 46 is attached to the socket group of the drive 22 in the tray management table 7. store in
  • the host unit 21 further transmits the package identifier stored in the semiconductor package 41 accommodated in this tray 46 to the controller 223. It may be determined whether or not the read package identifier matches the determined package identifier of the semiconductor package 41 . Then, when the read package identifier matches the package identifier of the determined semiconductor package 41, the host unit 21, via the controller 223, is included in the determined semiconductor package 41 accommodated in the identified tray 46. Data is read from or written to the semiconductor memory die 411 to be accessed (step S604 in FIG. 41A).
  • the storage system 1 uses the trays 46 that accommodate the predetermined number of semiconductor packages 41 to collectively store, transport, and attach/detach the predetermined number of semiconductor packages 41 . can do.
  • the host unit 21 determines a tray 46 containing the semiconductor package 41 including the nonvolatile memory die 411 to be accessed from among the trays 46 managed by the storage system 1 .
  • the host unit 21 When a predetermined number of semiconductor packages 41 accommodated in the determined tray 46 are attached to a predetermined number of sockets 222 of the drive 22, the host unit 21 reads or reads data from the nonvolatile memory die 411 to be accessed. perform the write.
  • the host unit 21 causes the package transport device 3 to transport the identified tray 46 to the drive 22 , and a predetermined number of semiconductor packages 41 housed in the identified tray 46 to the predetermined number of sockets 222 of the drive 22 . put it on.
  • the host unit 21 separates the semiconductor packages 41 connected to the sockets 222 of the drives 22 in units of the number of semiconductor packages 41 accommodated in the trays 46. can be replaced with the semiconductor package 41 of
  • the plurality of semiconductor packages 41 can be managed, transferred, and attached/detached in units of the number of semiconductor packages 41 accommodated in the tray 46, so that the management and transfer of the plurality of semiconductor packages 41 can be executed more efficiently. can do.
  • Storage System 2 Storage Read/Write Device 3
  • Package Transfer Device 4 Package Stocker 5
  • Management Server 6 Semiconductor Package Management Table 7 Tray Management Table 21 Host Unit (Host Device) 22 drive 31 transport unit 41 semiconductor package 46 tray 222 socket 223 controller 411 non-volatile memory die

Landscapes

  • Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Manufacturing & Machinery (AREA)
  • General Engineering & Computer Science (AREA)
  • Warehouses Or Storage Devices (AREA)
  • Read Only Memory (AREA)
  • Vehicle Body Suspensions (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Valve Device For Special Equipments (AREA)
  • Container, Conveyance, Adherence, Positioning, Of Wafer (AREA)

Abstract

大量のデータの処理に有用なストレージシステムが提供される。 パッケージストッカーは、1以上の不揮発性メモリダイをそれぞれが含む複数の半導体パッケージを保管可能である。ドライブは、半導体パッケージを着脱可能に装着するように構成された少なくとも一つのソケットと、ソケットに装着された半導体パッケージの1以上の不揮発性メモリダイを制御するコントローラと、を含む。ホスト装置は、ドライブに通信可能に接続され、半導体パッケージの1以上の不揮発性メモリダイに対するデータの読み出しおよび書き込みを、コントローラを介して実行するように構成される。第1半導体パッケージがドライブのソケットに装着されていない場合、ホスト装置は、パッケージ搬送装置に、第1半導体パッケージをドライブのソケットに搬送させて装着させる。

Description

ストレージシステム
 本発明の実施形態は、不揮発性メモリを制御する技術に関する。
 近年、不揮発性メモリを備えるストレージデバイスが広く普及している。このようなストレージデバイスの一つとして、NAND型フラッシュメモリを備えるソリッドステートドライブ(SSD)が知られている。
 SSDは、様々なコンピュータのストレージとして使用されている。最近では、データセンタにおいても、SSDがストレージとして使用されている。
 データセンタでは、大量のデータの読み出しおよび書き込みを高速に行うことが必要とされる。
 このため、大量のデータの処理に有用な新たなストレージシステムの実現が求められている。
米国特許出願公開第2019/0387291号明細書 米国特許第10467163号明細書 特開2016-81332号公報 特表2005-517236号公報
 本発明の一実施形態が解決しようとする課題は、大量のデータの処理に有用なストレージシステムを提供することである。
 実施形態によれば、ストレージシステムは、パッケージストッカーと、ドライブと、ホスト装置と、パッケージ搬送装置とを具備する。パッケージストッカーは、1以上の不揮発性メモリダイをそれぞれが含む複数の半導体パッケージを保管可能である。ドライブは、前記半導体パッケージを着脱可能に装着するように構成された少なくとも一つのソケットと、前記ソケットに装着された前記半導体パッケージの前記1以上の不揮発性メモリダイを制御するコントローラと、を含む。ホスト装置は、前記ドライブに通信可能に接続され、前記半導体パッケージの前記1以上の不揮発性メモリダイに対するデータの読み出しおよび書き込みを、前記コントローラを介して実行するように構成される。パッケージ搬送装置は、前記パッケージストッカーと前記ドライブとの間で前記半導体パッケージを搬送するように構成される。ホスト装置は、前記複数の半導体パッケージのうち、アクセス対象である第1不揮発性メモリダイを含む第1半導体パッケージを決定する。ホスト装置は、前記第1半導体パッケージが前記ドライブの前記ソケットに装着されている場合、前記コントローラを介して前記第1不揮発性メモリダイに対するデータの読み出しまたは書き込みを実行する。ホスト装置は、前記第1半導体パッケージが前記ドライブの前記ソケットに装着されていない場合、前記パッケージ搬送装置に、前記第1半導体パッケージを前記ドライブの前記ソケットに搬送させて装着させる。
第1の実施形態に係るストレージシステムの構成例を示すブロック図。 第1の実施形態に係るストレージシステムに含まれるパッケージストッカー、パッケージ搬送装置、ドライブ、およびホスト装置の配置例を示す側面図。 第1の実施形態に係るストレージシステムに含まれるパッケージストッカー、パッケージ搬送装置、ドライブ、およびホスト装置の配置例を示す平面図。 第1の実施形態に係るストレージシステムにおいて使用される半導体パッケージの構成例を示す図。 第1の実施形態に係るストレージシステムにおいて使用される半導体パッケージの表(オモテ)面、裏面、側面それぞれの形状を示す図。 第1の実施形態に係るストレージシステムのパッケージストッカーに含まれる複数対のレールを示す斜視図。 第1の実施形態に係るストレージシステムに含まれるホスト装置の構成例を示すブロック図。 第1の実施形態に係るストレージシステムに含まれるパッケージストッカーのパッケージ出し入れ口を示す図。 第1の実施形態に係るストレージシステムに含まれるパッケージストッカーに新規の半導体パッケージを追加する動作を示す図。 第1の実施形態に係るストレージシステムにおいて実行される、半導体パッケージの位置を変更する動作について説明するための図。 第1の実施形態に係るストレージシステムにおいて実行される、半導体パッケージの位置を変更する動作について説明するための別の図。 第1の実施形態に係るストレージシステムにおいて実行される、半導体パッケージの位置を変更する別の動作について説明するための図。 第1の実施形態に係るストレージシステムにおいて実行される、半導体パッケージの位置を変更するさらに別の動作について説明するための図。 第1の実施形態に係るストレージシステムにおいて実行される、半導体パッケージの位置を変更するさらに別の動作について説明するための図。 第1の実施形態に係るストレージシステムにおいて実行される、半導体パッケージの位置を変更するさらに別の動作について説明するための図。 第1の実施形態に係るストレージシステムに含まれるホスト装置によって実行されるデータの読み出しまたは書き込み処理の手順を示すフローチャート。 第1の実施形態に係るストレージシステムに含まれるホスト装置によって実行されるデータの読み出しまたは書き込み処理の手順の詳細を示すフローチャート。 第1の実施形態に係るストレージシステムに含まれるホスト装置によって実行されるデータの読み出しまたは書き込み処理の別の手順の部分を示すフローチャート。 第1の実施形態に係るストレージシステムに含まれるホスト装置によって実行されるデータの読み出しまたは書き込み処理の別の手順の続き部分を示すフローチャート。 第2の実施形態に係るストレージシステムの構成例を示すブロック図。 第2の実施形態に係るストレージシステムにおいて使用されるトレーの構成例を示す斜視図。 図20に示されたトレーの断面図。 第2の実施形態に係るストレージシステムにおいて使用される別なトレーの構成例を示す斜視図。 図22に示されたトレーの断面図。 図22に示されたトレーの上面および下面の形状を示す平面図。 図22に示されたトレーの側面図。 第2の実施形態に係るストレージシステムに含まれるパッケージストッカーのレール構造を示す斜視図。 第2の実施形態に係るストレージシステムに含まれるパッケージストッカーのレール構造の他の例を示す斜視図。 第2の実施形態に係るストレージシステムに含まれるホスト装置の構成例を示すブロック図。 第2の実施形態に係るストレージシステムに含まれるパッケージストッカーのトレー出し入れ口を示す図。 第2の実施形態に係るストレージシステムに含まれるパッケージストッカーに新規のトレーを追加する動作を示す図。 第2の実施形態に係るストレージシステムに含まれるドライブとトレーの位置合わせについて説明する図。 第2の実施形態に係るストレージシステムに含まれるドライブとトレーの位置合わせについて説明する別な図。 第2の実施形態に係るストレージシステムにおいて実行される、トレーの位置を変更する動作について説明するための図。 第2の実施形態に係るストレージシステムにおいて実行される、トレーの位置を変更する動作について説明するための別の図。 第2の実施形態に係るストレージシステムにおいて実行される、トレーの位置を変更する別の動作について説明するための図。 第2の実施形態に係るストレージシステムにおいて実行される、トレーの位置を変更するさらに別の動作について説明するための図。 第2の実施形態に係るストレージシステムにおいて実行される、トレーの位置を変更するさらに別の動作について説明するための図。 第2の実施形態に係るストレージシステムにおいて実行される、トレーの位置を変更するさらに別の動作について説明するための図。 第2の実施形態に係るストレージシステムに含まれるホスト装置によって実行される、不揮発性メモリダイに対するデータの読み出しまたは書き込み処理の手順を示すフローチャート。 第2の実施形態に係るストレージシステムに含まれるホスト装置によって実行される、不揮発性メモリダイに対するデータの読み出しまたは書き込み処理の手順の詳細を示すフローチャート。 第2の実施形態に係るストレージシステムに含まれるホスト装置によって実行される、不揮発性メモリダイに対するデータの読み出しまたは書き込み処理の別の手順の一部分を示すフローチャート。 第2の実施形態に係るストレージシステムに含まれるホスト装置によって実行される、不揮発性メモリダイに対するデータの読み出しまたは書き込み処理の別の手順の続き部分を示すフローチャート。
 以下、図面を参照して、実施形態を説明する。
(第1の実施形態) 
 まず、第1の実施形態に係るストレージシステムの構成について説明する。図1は、第1の実施形態に係るストレージシステム1の構成例を示す図である。ストレージシステム1は、データセンタにおいて使用され得る。
 ストレージシステム1は、ストレージリードライト(R/W)装置2と、パッケージ搬送装置3と、パッケージストッカー4とを含む。
 ストレージR/W装置2は、ホストユニット21とドライブ22とを含む。図1では、2つのホストユニット21a、21bと2つのドライブ22a、22bとがストレージR/W装置2に含まれている場合が例示されている。しかしながら、ストレージR/W装置2に含まれるホストユニット21とドライブ22の各々の数は、1でもよいし、3以上でもよい。
 ホストユニット21は、不揮発性メモリダイに対するデータの読み出しおよび書き込みを実行するように構成されたホスト装置である。ホストユニット21は、対応するドライブ22に通信可能に接続されている。ホストユニット21と対応するドライブ22とは、例えばPCI ExpressTM(PCIeTM)規格に従って通信可能である。また、ホストユニット21は、ネットワークを介してデータセンタ内の管理サーバ5と通信し得る。ホストユニット21と管理サーバ5とは、例えばEthernet規格に従って通信可能である。
 ドライブ22は、少なくとも1つのソケットと、コントローラとを含む。ソケットは、半導体パッケージ41を着脱可能に装着するように構成されている。コントローラは、ソケットに装着された半導体パッケージ41に含まれる1以上の不揮発性メモリダイを制御するように構成されている。
 図1に示す例では、ホストユニット21aはドライブ22aに通信可能に接続されている。また、ホストユニット21bはドライブ22bに通信可能に接続されている。
 つまり、ホストユニット21aは、ドライブ22aのソケットに装着されている半導体パッケージ41の1以上の不揮発性メモリダイに対するデータの読み出しおよび書き込みを、ドライブ22aのコントローラを介して実行するように構成されたホスト装置である。同様に、ホストユニット21bは、ドライブ22bのソケットに装着されている半導体パッケージ41の1以上の不揮発性メモリダイに対するデータの読み出しおよび書き込みを、ドライブ22bのコントローラを介して実行するように構成されたホスト装置である。
 パッケージ搬送装置3は、パッケージストッカー4とドライブ22との間で半導体パッケージ41を搬送する装置である。パッケージ搬送装置3は、例えば、上下、左右に移動可能な1以上の搬送ユニット31を含んでいてもよい。搬送ユニット31は、パッケージストッカー4内の複数の保管位置のいずれかに保管されている半導体パッケージ41をストレージR/W装置2内の任意のドライブ22に搬送し、そのドライブ22のソケットに装着することができる。また、搬送ユニット31は、任意のドライブ22のソケットから半導体パッケージ41を取り外し、取り外した半導体パッケージ41をパッケージストッカー4内の任意の保管位置に搬送することができる。パッケージ搬送装置3は、1以上の搬送ロボットによって実現され得る。
 パッケージストッカー4は、複数の半導体パッケージ41を保管可能である。半導体パッケージ41は、1以上の不揮発性メモリダイを含む。1以上の不揮発性メモリダイの各々は、例えば、NAND型フラッシュメモリである。
 次に、ストレージシステム1の基本的な動作について説明する。ホストユニット21は、位置管理機能と、搬送制御機能とを有している。位置管理機能は、複数の半導体パッケージ41それぞれが存在している位置を管理する機能である。搬送制御機能は、パッケージ搬送装置3を制御することによって半導体パッケージ41の搬送を制御する機能である。
 複数の半導体パッケージ41の各々にはパッケージ識別子(半導体パッケージ識別名とも称される)が付与されている。ホストユニット21は、パッケージ識別子と、このパッケージ識別子によって識別される半導体パッケージ41が存在している位置との間の対応関係を管理し得る。
 ある半導体パッケージ41が存在し得る位置は、例えば、ドライブ22に含まれる1以上のソケットのうちの任意の一つのソケット、または、パッケージストッカー4に含まれる複数のパッケージ保管位置のうちの任意の一つのパッケージ保管位置である。
 ホストユニット21は、複数の半導体パッケージ41のうち、アクセス対象である不揮発性メモリダイを含む半導体パッケージ41を決定する。ホストユニット21は、決定した半導体パッケージ41が存在している位置を特定し、これによって、決定した半導体パッケージ41がドライブ22のいずれかのソケットに装着されているか否かを判定することができる。
 決定した半導体パッケージ41がドライブ22のいずれかのソケットに装着されている場合、ホストユニット21は、ドライブ22のコントローラを介してアクセス対象の不揮発性メモリダイに対するデータの読み出しまたは書き込みを実行する。
 決定した半導体パッケージ41がドライブ22のいずれのソケットにも装着されておらず、且つ、パッケージストッカー4に保管されている場合、ホストユニット21は、パッケージ搬送装置3に、決定した半導体パッケージ41をパッケージストッカー4からドライブ22のいずれかのソケットに搬送させて装着させる。この場合、ホストユニット21は、パッケージ搬送装置3に次のような搬送要求を送信し得る。
 この搬送要求は、例えば、決定した半導体パッケージ41が保管されているパッケージストッカー4内の位置(パッケージ保管位置とも称される)を移動元位置として指定し、且つ、ドライブ22のいずれかのソケットを移動先位置として指定する。パッケージ搬送装置3の搬送ユニット31は、指定された移動元位置に存在している半導体パッケージ41を、指定された移動先位置に搬送する。そして、搬送ユニット31は、この半導体パッケージ41を、移動先位置のソケットに装着する。
 一般に、ソリッドステートドライブ(SSD)のようなストレージデバイスにおいては、半導体パッケージは、ストレージデバイスに設けられた基板上に半田付けによって固定的に実装される。
 これに対し、本実施形態に係るストレージシステム1では、複数の半導体パッケージ41の各々はドライブ22から分離されており、個々の半導体パッケージ41そのものがドライブ22のソケットに着脱可能に装着されるリムーバブルストレージ媒体として利用される。
 一般には、SSDまたはハードディスクドライブ(HDD)といったドライブは、ストレージ媒体とコントローラとを内蔵する。このため、個々のドライブの体積は比較的大きい。よって、もし、ストレージ媒体とコントローラとをそれぞれが内蔵する複数のドライブをホストユニット21に選択的に接続するという構成が採用された場合には、ストレージシステム全体の大型化およびコストアップを招くことになる。
 光ディスク媒体または磁気テープを、コントローラを含まないストレージ媒体として利用するストレージシステムの構成も考えられる。しかし、光ディスク媒体または磁気テープに対するデータの読み出しおよび書き込み動作においては、光学ヘッドまたは磁気ヘッドを物理的に移動することが必要となる。このため、光ディスク媒体または磁気テープをストレージ媒体として利用するストレージシステムの構成では、不揮発性メモリダイに対するデータの読み出しおよび書き込みを行う構成に比べ、読み出しおよび書き込み処理が実行可能になるまでのレイテンシーが増加されるとともに、I/Oスループットが低下される。
 ストレージシステム1では、半導体パッケージ41とドライブ22とが分離されている。このため、半導体パッケージ41だけをストレージ媒体としてパッケージストッカー4に保管することができる。よって、多数のストレージ媒体を保管するために必要なスペースを削減できる。
 さらに、アクセス対象の不揮発性メモリダイを含む半導体パッケージ41は、パッケージ搬送装置3によって、パッケージストッカー4からドライブ22内のソケットに搬送され、そのソケットに装着される。ソケットに装着された半導体パッケージ41は、ドライブ22内のコントローラに電気的に接続される。このため、光ディスク媒体または磁気テープをストレージ媒体として利用する構成に比し、光学ヘッドまたは磁気ヘッドを物理的に移動させる必要が無いので、アクセス対象の不揮発性メモリダイに対するデータ読み出しおよびデータ書き込みを低レイテンシーで高速に実行することができる。この結果、データセンタにおいて必要とされる大量のデータの処理に好適なストレージシステム1を実現できる。
 さらに、ホストユニット21は、複数の半導体パッケージ41それぞれの優先順位を管理する機能も有し得る。複数の半導体パッケージ41それぞれの優先順位を決定するためのアルゴリズムは特定のアルゴリズムに限定されず、様々な条件に基づいて、複数の半導体パッケージ41それぞれの優先順位を決定することができる。
 例えば、ある不揮発性メモリダイに対するアクセス要求に基づいて、この不揮発性メモリダイを含む半導体パッケージ41の優先順位が決定されてもよい。各半導体パッケージ41に対するアクセス頻度に基づいて、各半導体パッケージ41の優先順位が決定されてもよい。各半導体パッケージ41への最終アクセス時刻からの経過時間に基づいて、各半導体パッケージ41の優先順位が決定されてもよい。各半導体パッケージ41に対するアクセス処理の完了または未完了を示す状態に基づいて、各半導体パッケージ41の優先順位が決定されてもよい。各半導体パッケージ41に対するアクセス処理が完了するまでの見込み残り時間に基づいて、各半導体パッケージ41の優先順位が決定されてもよい。ホストユニット21において実行されるアプリケーションプログラムに基づいて、各半導体パッケージ41の優先順位が決定されてもよい。各半導体パッケージ41に対するアクセス要求が生じる確率の予測結果に基づいて、各半導体パッケージ41の優先順位が決定されてもよい。
 あるいは、アクセス要求、アクセス頻度、最終アクセス時刻からの経過時間、アクセス処理の完了または未完了、アクセス処理完了までの見込み残り時間、実行されるアプリケーションプログラム、およびアクセス確率予測結果、のうちの任意の2つ以上の条件を組み合わせて使用することによって、各半導体パッケージ41の優先順位が決定されてもよい。
 ホストユニット21は、複数の半導体パッケージ41それぞれの優先順位に基づいて、複数の半導体パッケージ41それぞれが存在する位置を制御することもできる。例えば、ホストユニット21は、第1レベルの優先順位を有する半導体パッケージ41がドライブ22のソケットに装着され、第1レベルの優先順位よりも低い第2レベルの優先順位を有する半導体パッケージ41がパッケージストッカー4に保管されるように、複数の半導体パッケージ41それぞれの優先順位に基づいて、複数の半導体パッケージ41それぞれが存在する位置を制御し得る。
 なお、パッケージ搬送装置3に含まれる搬送ユニット31の幾つかを、半導体パッケージ41を一時的に保持するためのバッファとして使用してもよい。この場合、第1レベルの優先順位よりも低い第2レベルの優先順位を有する半導体パッケージ41は、パッケージ搬送装置3に含まれる搬送ユニット31に保持される。そして、第2レベルの優先順位よりも低い第3レベルの優先順位を有する半導体パッケージ41がパッケージストッカー4に保管される。
 第2レベルの優先順位を有する半導体パッケージ41を保持している搬送ユニット31は、他の搬送ユニット31による搬送動作の妨げにならないように、特定の退避位置に移動されてもよい。第2レベルの優先順位を有する半導体パッケージ41を保持している半導体パッケージ41を保持している搬送ユニット31は、以降では、「パッケージ搬送装置3のバッファ」または「ロボットのバッファ」とも称される。パッケージ搬送装置3に含まれる搬送ユニット31の各々は、パッケージ搬送装置3のバッファとして機能し得る。このため、パッケージ搬送装置3のバッファの数は、パッケージ搬送装置3に含まれる搬送ユニット31の数に等しい。
 また、以降では、ドライブ22のソケットから取り外された半導体パッケージ41をパッケージストッカー4に保管せずにパッケージ搬送装置3(つまり搬送ユニット31)に保持することは、「半導体パッケージ41をパッケージ搬送装置3のバッファに搬送する」とも称される。
 次に、パッケージストッカー4、パッケージ搬送装置3、ドライブ22、およびホストユニット21の配置例を説明する。図2は、パッケージストッカー4、パッケージ搬送装置3、ドライブ22、およびホストユニット21の配置例を示す側面図である。図3は、パッケージストッカー4、パッケージ搬送装置3、ドライブ22、およびホストユニット21の配置例を示す平面図である。
 図2および図3では、データセンタに配置されるサーバラック11に、パッケージストッカー4、パッケージ搬送装置3、ドライブ22、およびホストユニット21を配置した構成が例示されている。
 以下の本実施形態の説明において、X軸、Y軸およびZ軸がそれぞれ定義されている。X軸とY軸とZ軸とは、互いに直交する。X軸、Y軸によって規定されるX-Y平面は、例えば、データセンタのフロアに相当する。Z軸は、例えば、データセンタの高さ方向に相当する。
 サーバラック11は、コンピュータおよび通信装置を収容するためのラックである。サーバラック11のサイズおよび形状は、例えばアメリカ電子工業会(EIA)によって規定されている。
 サーバラック11は、前板(前扉)12、天板13、裏板14、床板15、両側板16、17を有している。このサーバラック11は、例えば、36インチ(914.4mm)の奥行き、73.5インチ(1868.9mm)の高さ、19インチ(482.6mm)の幅を有するディープ型の19インチラックとして実現されている。
 サーバラック11においては、パッケージストッカー4は前板(前扉)12側に配置され得、ドライブ22およびホストユニット21は裏板14側に配置され得る。さらに、パッケージ搬送装置3は、前板(前扉)12と裏板14との間の中央部付近に配置され得る。
 図2に示されているように、ドライブ22aとホストユニット21aとは、筐体2aに収容されていてもよい。同様に、ドライブ22bとホストユニット21bとは、筐体2bに収容されていてもよい。
 ドライブ22aは、プリント回路基板221と、1以上のソケット222と、コントローラ223と、PCI ExpressTM(PCIeTM)スイッチ224と、PCIeコネクタ225とを含む。ソケット222、コントローラ223、およびPCIeスイッチ224は、プリント回路基板221上に配置されている。以下では、複数のソケット222がプリント回路基板221上に配置されている場合を想定する。
 ソケット222の各々は、半導体パッケージ41を着脱可能に装着するように構成されたソケットである。
 コントローラ223は、ソケット222の各々に装着された半導体パッケージ41に含まれる1以上の不揮発性メモリダイを制御するメモリコントローラである。コントローラ223は、system-on-a-chip(SoC)のようなlarge scale integration(LSI)によって実現されてもよい。プリント回路基板221上に配置されているコントローラ223の数は、1でもよいし、2以上でもよい。プリント回路基板221上の各コントローラ223は、PCIeスイッチ224に接続されている。プリント回路基板221上に配置されているPCIeスイッチ224の数は、1でもよいし、2以上でもよい。各PCIeスイッチ224は、対応するPCIeコネクタ225に電気的に接続されている。
 ドライブ22aのプリント回路基板221の裏面には1以上のPCIeコネクタ225が配置されている。プリント回路基板221は、1以上のPCIeコネクタ225を介してホストユニット21aのシステム基板に接続されている。
 ホストユニット21aのシステム基板には、プロセッサ、メモリ、システムコントローラ、通信インタフェースコントローラ等が設けられている。ホストユニット21aは、1以上のPCIeコネクタ225を介してドライブ22aに通信可能に接続されている。ホストユニット21aは、コントローラ223を介して、任意のソケット222に装着されている半導体パッケージ41内の任意の不揮発性メモリダイに対するデータの読み出しまたは書き込みを実行する。
 ドライブ22bおよびホストユニット21bそれぞれの構成はドライブ22aおよびホストユニット21aそれぞれの構成と同様であるので、ここではドライブ22bおよびホストユニット21bそれぞれの構成の詳細な説明については省略する。
 図2に示されているように、パッケージ搬送装置3は、縦方向(Z軸方向)に延びる支柱32と、幾つかの搬送ユニット31とを含んでいてもよい。各搬送ユニット31は、支柱32に沿って上下方向に移動可能である。各搬送ユニット31は、ロボットハンドのような図示しないアームを有しており、このアームを使用して任意の半導体パッケージ41を把持することができる。
 例えば、パッケージストッカー4内のある保管位置に保管されている半導体パッケージ41をドライブ22aに搬送する際には、一つの搬送ユニット31は、搬送対象の半導体パッケージ41の保管位置に対応する高さに移動して、搬送対象の半導体パッケージ41を把持する。そして、当該一つの搬送ユニット31は、ドライブ22aに対応する高さに移動し、搬送対象の半導体パッケージ41をドライブ22aの一つのソケット222に装着する。
 なお、搬送対象の半導体パッケージ41とパッケージ搬送装置3との間に別の半導体パッケージ41が存在している場合には、まず、一つの搬送ユニット31が当該別の半導体パッケージ41を把持し、そして当該別の半導体パッケージ41を把持したまま上部または下部に移動する。そして、別の搬送ユニット31が搬送対象の半導体パッケージ41を把持し、搬送対象の半導体パッケージ41をドライブ22aの一つのソケット222に装着する。これにより、たとえパッケージ搬送装置3から前板12に向かう方向(図2に示す-Y方向)に沿って複数の半導体パッケージ41が並んで保管されている場合であっても、任意の半導体パッケージ41を搬送することができる。
 図2に示されているように、パッケージストッカー4は、複数の半導体パッケージ41を載置可能な1対以上のレール(レール対R11、レール対R12、…)を含んでいる。
 次に、図3の平面図を参照して、ドライブ22とパッケージストッカー4の構成例の詳細について説明する。
 ドライブ22は、例えば、12行×4列に並んだ48個のソケット222と、12個のコントローラ223と、3個のPCIeスイッチ224と、3個のPCIeスイッチ224にそれぞれ接続された3個のPCIeコネクタ225とを含む。12個のコントローラ223の各々は、対応する1行の4個のソケット222に装着される4個の半導体パッケージ41の制御を行う。3個のPCIeスイッチ224の各々は、対応する4個のコントローラ223に接続されている。各PCIeスイッチ224は、対応する4個のコントローラ223との通信を行う。
 パッケージストッカー4は、複数対のレール(ここでは、12個のレール対R11~R121)を含む。レール対R11~R121の各々においては、幾つかの半導体パッケージ41が載置可能である。レール対R11~R121の各々は、Y軸方向に沿って互いに平行に延びた1対のレールを含む。あるレール対上に配置された半導体パッケージ41は、このレール対に沿ってスライドして移動可能である。
 次に、半導体パッケージ41の構成について説明する。図4は、本実施形態に係るストレージシステム1において使用される半導体パッケージ41の構成例を示す図である。
 半導体パッケージ41は、例えば、ボールグリッドアレイ(BGA)パッケージとして実現されている。この半導体パッケージ41は、複数の不揮発性メモリダイ411と、パッケージ基板412と、複数のボール型金属端子413と、第1の面(表(オモテ)面)416と、第1の面416の反対側の第2の面(裏面)417とを含む。
 複数の不揮発性メモリダイ411は、パッケージ基板412の表面上に縦方向に積層されている。複数の不揮発性メモリダイ411は、例えば、モールド樹脂410によって覆われ且つ封止されている。各不揮発性メモリダイ411は1チャンネル分のチャンネル端子を含む。チャンネル端子は、チップイネーブル信号端子、複数のI/O端子、複数の制御信号端子、等を含む。
 モールド樹脂410の上面は半導体パッケージ41の第1の面416を形成する。パッケージ基板412の下面は半導体パッケージ41の第2の面417を形成する。
 複数のボール型金属端子413は、第2の面417に配置されている。複数のボール型金属端子413は、複数チャンネル分の複数の信号端子を含む。ボール型金属端子413は、半導体パッケージ41に含まれる複数の不揮発性メモリダイ411それぞれのチャンネル端子に接続される。
 半導体パッケージ41に含まれる複数の不揮発性メモリダイ411の少なくとも一つの不揮発性メモリダイ411の記憶領域の一部は、識別情報記憶領域418として使用される。識別情報記憶領域418は、この半導体パッケージ41を識別するための識別情報を記憶する。識別情報としては、個々の半導体パッケージ41を一意に識別可能な識別子(パッケージ識別子)を使用し得る。パッケージ識別子は、検査符号と共に識別情報記憶領域418に記憶されていてもよい。検査符号は、パッケージ識別子の整合性(integrity)を検証するための符号である。検査符号は、例えば、巡回冗長符号(CRC)、CRCとは異なる別の種類のパリティ、または、識別情報から算出されるハッシュ値である。
 識別情報(パッケージ識別子)と検査符号のペアを識別情報記憶領域418に記憶させることにより、識別情報記憶領域418から識別情報として読み出される値の整合性を検証することができる。
 図5は、半導体パッケージ41の表(オモテ)面、裏面、側面それぞれの形状を示す図である。図5の左部は半導体パッケージ41を上面側から見た平面図であり、図5の中央部は半導体パッケージ41を下面側から見た平面図である。また、図5の右部は、半導体パッケージ41の側面図である。
 半導体パッケージ41の表面416(つまりモールド樹脂410の上面)はマーキング面として使用される。半導体パッケージ41の裏面417(つまりパッケージ基板412の下面)には複数のボール型金属端子413が配置されている。なお、半導体パッケージ41の裏面417においては、ボール型金属端子413が設けられていない領域が存在する。具体的には、裏面417の最外周領域には、どのボール型金属端子413も配置されていない。
 次に、パッケージストッカー4の構成について説明する。図6は、パッケージストッカー4に含まれる複数対のレールを示す斜視図である。
 図6では、パッケージストッカー4に3つのレールユニット401~403が含まれている場合が例示されている。
 レールユニット401は、間隔を置いて互いに対向する2つの側壁4011、4012と、2つの側壁4011、4012の内側に配置された4つのレール対R11~R14とを含む。レール対R11は、間隔を置いて対向し、且つ互いに平行に延びた一対のレールを含む。レール間に隙間を有するこのようなレール構造を使用することにより、半導体パッケージ41の裏面に配置されたボール型金属端子413がレールに接触することなく、半導体パッケージ41を支持することが可能となる。つまり、ボール型金属端子413が設けられていない、半導体パッケージ41の裏面の最外周領域のみが、レール対R11に接触する。他のレール対R12~R14の各々も、レール対R11と同様の構成を有している。
 レールユニット402は、間隔を置いて互いに対向する2つの側壁4021、4022と、2つの側壁4021、4022の内側に配置された4つのレール対R21~R24とを含む。レール対R21は、間隔を置いて対向し、且つ互いに平行に延びた一対のレールを含む。他のレール対R22~R24の各々も、レール対R21と同様の構成を有している。
 レールユニット403は、間隔を置いて互いに対向する2つの側壁4031、4032と、2つの側壁4031、4032の内側に配置された4つのレール対R31~R34とを含む。レール対R31は、間隔を置いて対向し、且つ互いに平行に延びた一対のレールを含む。他のレール対R32~R34の各々も、レール対R31と同様の構成を有している。
 次に、ホストユニット21の構成について説明する。図7は、ホストユニット21の構成例を示すブロック図である。ここでは、ストレージシステム1に含まれる複数のホストユニット21のうちの一つであるホストユニット21aについて説明する。
 ホストユニット21aは、プロセッサ201、メインメモリ202、システムコントローラ203、および通信インタフェースコントローラ204、等を含む。プロセッサ201、メインメモリ202、システムコントローラ203、および通信インタフェースコントローラ204は、ホストユニット21aのシステム基板に実装されている。
 メインメモリ202は、例えば、ダイナミックランダムアクセスメモリ(DRAM)である。
 通信インタフェースコントローラ204は、通信インタフェース205を介して、パッケージ搬送装置3との通信を行う。通信インタフェース205としては、例えば、Ethernet規格に準拠したインタフェースを使用し得る。この場合、通信インタフェースコントローラ204は、例えば、ネットワークインタフェースコントローラ(NIC)によって実現し得る。なお、通信インタフェースコントローラ204は、管理サーバ5との通信にも使用され得る。
 プロセッサ201はメインメモリ202にロードされた様々なプログラム(ソフトウェア)を実行する。これらプログラムには、例えば、アプリケーションプログラム211、オペレーティングシステム(OS)212、ファイルシステム213、ドライブ22aを制御するためのデバイスドライバ214、ストレージ管理ツール216、等が含まれていてもよい。ストレージ管理ツール216は、各半導体パッケージ41を管理し、且つ、各半導体パッケージ41の搬送を制御するためのプログラムである。
 以降の説明においては、これらプログラムがある処理を実行するという記載は、ホストユニット21a(より詳しくはプロセッサ201)がこれらプログラムを実行することによりその処理が実行されることを意味する。
 ホストユニット21a(より詳しくはプロセッサ201)は、ストレージ管理ツール216の制御の下に、半導体パッケージ管理テーブル6を管理することができる。半導体パッケージ管理テーブル6は、複数の半導体パッケージ41のための管理データである。半導体パッケージ管理テーブル6はメインメモリ202に記憶されてもよい。
 ホストユニット21aは、個々の半導体パッケージ41に固有の半導体パッケージ識別名を付与するように構成されている。ホストユニット21aは、半導体パッケージ管理テーブル6を用いて、各半導体パッケージ41の半導体パッケージ識別名と、各半導体パッケージ41の優先順位と、各半導体パッケージ41の状態と、各半導体パッケージの位置とを管理する。以下では、ある半導体パッケージ識別名を有する半導体パッケージ41を、その半導体パッケージ識別名を用いて表記することがある。例えば、半導体パッケージ識別名「半導体パッケージA」をもつ半導体パッケージ41を、半導体パッケージAと表記することがある。
 図7では、ホストユニット21aが、半導体パッケージ識別名である半導体パッケージA、半導体パッケージB、…、半導体パッケージEのそれぞれを用いて、ストレージシステム1において使用される複数の半導体パッケージ41のそれぞれを識別する例が示されている。
 ホストユニット21aは、複数の半導体パッケージ41それぞれの優先順位を半導体パッケージ管理テーブル6に格納する。そして、ホストユニット21aは、半導体パッケージ管理テーブル6によって管理されている優先順位に基づいて、パッケージ搬送装置3に対して、半導体パッケージ41の搬送処理を指示する。
 ホストユニット21aは、複数の半導体パッケージ41それぞれが、ホストユニット21aに接続されている、パッケージストッカー4に保管されている、あるいはパッケージ搬送装置3の搬送ユニット31に保持されている、のいずれの状態であるかを示す情報を、各半導体パッケージ41の状態として、半導体パッケージ管理テーブル6に格納する。
 ここで、ある半導体パッケージ41がホストユニット21aに接続されている状態は、この半導体パッケージ41がドライブ22aのソケット222に装着されている状態を意味する。したがって、ホストユニット21aは、ある半導体パッケージ41がホストユニット21aに接続されている場合、この半導体パッケージ41が、ホストユニット21aに接続されているドライブ22aに含まれるソケット222に装着されていることを認識できる。そして、ホストユニット21aは、この半導体パッケージ41の不揮発性メモリダイ411に対するデータの読み出しおよび書き込みが可能であることを認識できる。
 また、ある半導体パッケージ41がパッケージストッカー4に保管されている状態は、この半導体パッケージ41がパッケージストッカー4のいずれかのレール対に載置されていることを意味する。したがって、ホストユニット21aは、ある半導体パッケージ41がパッケージストッカー4に保管されている場合、この半導体パッケージ41がドライブ22aに含まれるソケット222に装着されていないため、この半導体パッケージ41の不揮発性メモリダイ411に対してデータの読み出しおよび書き込みができないことを認識できる。
 ホストユニット21aは、複数の半導体パッケージ41それぞれが装着あるいは保管されている位置を示す情報として、半導体パッケージ41の位置情報を半導体パッケージ管理テーブル6に格納する。
 ホストユニット21aは、ある半導体パッケージ41がホストユニット21aに接続されている場合、この半導体パッケージ41が装着されているソケット222を示すソケット番号を、この半導体パッケージ41の位置情報として半導体パッケージ管理テーブル6に格納する。
 また、ホストユニット21aは、ある半導体パッケージ41がパッケージストッカー4に保管されている場合、この半導体パッケージ41が保管されているパッケージストッカー4の中の位置を示す保管位置番号を、この半導体パッケージ41の位置情報として半導体パッケージ管理テーブル6に格納する。
 図7に示す例では、半導体パッケージ識別名「半導体パッケージA」をもつ半導体パッケージ41が、最も高い優先順位を有している(優先順位=1)。半導体パッケージ識別名「半導体パッケージA」をもつ半導体パッケージ41は、ドライブ22aのソケット#1に装着されている。半導体パッケージ識別名「半導体パッケージB」をもつ半導体パッケージ41が、二番目に高い優先順位を有している(優先順位=2)。半導体パッケージ識別名「半導体パッケージB」をもつ半導体パッケージ41は、ドライブ22aのソケット#2に装着されている。また、半導体パッケージ識別名「半導体パッケージC」をもつ半導体パッケージ41は、三番目に高い優先順位を有している(優先順位=3)。半導体パッケージ識別名「半導体パッケージC」をもつ半導体パッケージ41は、パッケージストッカー4の保管位置#1に保管されている。半導体パッケージ識別名「半導体パッケージD」をもつ半導体パッケージ41は、四番目に高い優先順位を有している(優先順位=4)。半導体パッケージ識別名「半導体パッケージD」をもつ半導体パッケージ41は、パッケージストッカー4の保管位置#2に保管されている。半導体パッケージ識別名「半導体パッケージE」をもつ半導体パッケージ41は、五番目に高い優先順位を有している(優先順位=5)。半導体パッケージ識別名「半導体パッケージE」をもつ半導体パッケージ41は、パッケージストッカー4の保管位置#3に保管されている。
 また、保管位置#2とパッケージ搬送装置3との間の距離は、保管位置#1とパッケージ搬送装置3との間の距離よりも長い。また、保管位置#3とパッケージ搬送装置3との間の距離は、保管位置#2とパッケージ搬送装置3との間の距離よりも長い。このため、保管位置#1に保管されている半導体パッケージCは、搬送ユニット31にとって、保管位置#2に保管されている半導体パッケージDよりも容易に取り出すことができる。そして、保管位置#2に保管されている半導体パッケージDは、搬送ユニット31にとって、保管位置#3に保管されている半導体パッケージEよりも容易に取り出すことができる。ホストユニット21aは、各半導体パッケージ41の優先順位に応じて、より優先順位の高い半導体パッケージ41が、より容易に取り出すことができる保管位置に保管されるように、パッケージ搬送装置3に指示をしてもよい。
 また、ホストユニット21aは、搬送ユニット31をバッファとして使用してもよい。このとき、ホストユニット21aは、パッケージストッカー4に保管されている複数の半導体パッケージ41のうち、最も優先順位の高い半導体パッケージ41を搬送ユニット31が保持するようにパッケージ搬送装置3に指示をしてもよい。
 なお、ストレージ管理ツール216は、ドライブ22aのどのソケット222にも装着されていない各半導体パッケージ41(オフラインパッケージとも称される)に格納されているデータとそのデータの量を管理するための処理も実行する。ストレージ管理ツール216は、例えば、パッケージストッカー4に保管されている各半導体パッケージ41に格納されているデータとそのデータの量を管理するための処理を実行する。ストレージ管理ツール216は、各オフラインパッケージに格納されているデータとそのデータの量をOS212またはファイルシステム213に報告することができる。よって、OS212またはファイルシステム213は、ドライブ22aのソケット222に現在装着されている各半導体パッケージ41に格納されているデータのみならず、各オフラインパッケージに格納されているデータとそのデータの量を管理することができる。
 次に、パッケージストッカー4に半導体パッケージ41を追加する際、およびパッケージストッカー4から半導体パッケージ41を排出する際に使用されるパッケージ出し入れ口について説明する。図8は、パッケージストッカー4のパッケージ出し入れ口を示す図である。
 パッケージストッカー4は、パッケージストッカー4の外部からパッケージストッカー4への半導体パッケージ41の追加、および、パッケージストッカー4からパッケージストッカー4の外部への半導体パッケージ41の排出、に使用されるパッケージ出し入れ口420を含む。パッケージ出し入れ口420は、パッケージストッカー4の前面42に設けられた開口である。前面42は、サーバラック11の前面12に相当する。
 半導体パッケージ41は、パッケージストッカー4に設けられたパッケージ出し入れ口420を通じて、パッケージストッカー4の外部からパッケージストッカー4に追加される。追加された半導体パッケージ41は、既に保管されている複数の半導体パッケージ41と共にパッケージストッカー4に保管される。
 また、不要になった半導体パッケージ41は、パッケージストッカー4に設けられたパッケージ出し入れ口420を通じて、パッケージストッカー4からパッケージストッカー4の外部に排出される。
 パッケージストッカー4は、パッケージストッカー4の前面42に設けられたパッケージ出し入れ口420に加え、パッケージ搬送装置3と対向する側の面に設けられたパッケージ出し入れ口430も有する。パッケージ出し入れ口430は、パッケージストッカー4への半導体パッケージ41の保管、および、パッケージストッカー4からの半導体パッケージ41の取り出し、に使用される。パッケージ搬送装置3は、パッケージ出し入れ口430を通じてパッケージストッカー4に半導体パッケージ41を保管する動作と、パッケージ出し入れ口430を通じてパッケージストッカー4から半導体パッケージ41を取り出す動作とを実行する。パッケージ出し入れ口430は、例えば、パッケージストッカー4の背面に設けられており、パッケージ出し入れ口420の反対側に位置する。また、ここでは図示されていないが、パッケージストッカー4のパッケージ出し入れ口420からパッケージ搬送装置3に向かう方向に、つまり、パッケージ出し入れ口420からパッケージ出し入れ口430に向かう方向に、複数対のレールが延びている。
 次に、外部からパッケージストッカー4に半導体パッケージ41を追加する動作について説明する。図9は、パッケージストッカー4のパッケージ出し入れ口420から新規の半導体パッケージ41をパッケージストッカー4に追加する動作を示す図である。
 図9の上部は、新規の半導体パッケージが追加される前のサーバラック11の平面図である。図9の下部は、12個の新規の半導体パッケージが追加された後のサーバラック11の平面図である。
 図9から分かるように、パッケージ搬送装置3は、サーバラック11の前面12に設けられたパッケージ出し入れ口420に対向している。12個のレール対R11~R121のそれぞれが、パッケージ出し入れ口420からパッケージ搬送装置3に向かう方向(Y方向)に延びている。
 図9の上部に示すように、12個のレール対R11~R121には、96個の半導体パッケージ41が既に載置されている。96個の半導体パッケージ41は、パッケージストッカー4に既に保管されている半導体パッケージである。
 ここで、パッケージストッカー4に12個の半導体パッケージ41を追加する場合を想定する。この場合、図9の下部に示すように、12個の半導体パッケージ41が、例えば、ロボットまたは操作者によって、パッケージ出し入れ口420を通じてレール対R11~R121にそれぞれ載置される。これによって、12個の半導体パッケージ41が、パッケージストッカー4に保管される。
 このように、パッケージストッカー4においては、パッケージ出し入れ口420からパッケージ搬送装置3に向かう方向にそれぞれが延びた複数のレール対R11~R121が設けられている。したがって、パッケージ出し入れ口420を通じて半導体パッケージ41の追加および排出を容易に行うことが可能となる。
 次に、ホストユニット21によって制御される半導体パッケージ41の搬送および着脱動作について説明する。図10は、本実施形態に係るストレージシステム1において実行される、半導体パッケージ41の優先順位の変更に基づいて半導体パッケージ41の位置をパッケージストッカー4とドライブ22のソケット222との間で変更する動作について説明するための図である。
 ホストユニット21は、半導体パッケージ管理テーブル6を用いて、ストレージシステム1に含まれる半導体パッケージ41それぞれの優先順位を管理する。そして、ホストユニット21は、ストレージシステム1に含まれる半導体パッケージ41それぞれの優先順位に基づいて、半導体パッケージ41の搬送および着脱をパッケージ搬送装置3に指示する。
 図10に示す例では、ホストユニット21は、半導体パッケージA、半導体パッケージB、…、半導体パッケージHまでの8個の半導体パッケージ41を管理している。ホストユニット21は、管理されている半導体パッケージ41のうち、最も優先順位の高い半導体パッケージAを例えばソケット#1に、二番目に優先順位の高い半導体パッケージBを例えばソケット#2に、それぞれ装着させるようにパッケージ搬送装置3に指示する。これにより、半導体パッケージAと半導体パッケージBとがそれぞれソケット#1とソケット#2とに装着されていることを示す情報が半導体パッケージ管理テーブル6に格納される。このように、ドライブ22に含まれるソケットの数が2である場合には、1位から2位までの優先順位を有する2つの半導体パッケージA~Bがドライブ22の2つのソケット#1~#2にそれぞれ装着される。1位から2位までの優先順位は、第1レベル優先順位に対応する。
 また、3位から8位までの優先順位を有する6個の半導体パッケージ41(半導体パッケージC~H)は、パッケージストッカー4に保管された状態にある。パッケージストッカー4は、第1保管場所と第2保管場所との少なくとも2種類の保管場所を含み得る。第1保管場所とパッケージ搬送装置3との距離は、第2保管場所とパッケージ搬送装置3との距離よりも短い。第1保管場所は、例えば、保管位置#1~#3を含む。第2保管場所は、例えば、保管位置#4~#6を含む。保管位置#1~#3は、パッケージ搬送装置3にとって、保管位置#4~#6よりも半導体パッケージ41を取り出すことが容易な保管位置である。
 パッケージストッカー4に保管されている6個の半導体パッケージ41のうち、3位から5位までの優先順位を有する3個の半導体パッケージC~Eは、第1保管場所に含まれる保管位置#1~#3に保管される。3位から5位までの優先順位は、第1レベル優先順位よりも低い第2レベル優先順位に相当する。
 また、パッケージストッカー4に保管されている6個の半導体パッケージ41のうち、6位から8位までの優先順位を有する3つの半導体パッケージF~Hは、第2保管場所に含まれる保管位置#4~#6に保管される。6位から8位までの優先順位は、第2レベル優先順位よりも低い第3レベル優先順位に相当する。
 ここで、パッケージストッカー4に保管されている半導体パッケージCの優先順位が、半導体パッケージBの優先順位を上回ったときのホストユニット21の動作について説明する。図11は、本実施形態に係るストレージシステム1において実行される、半導体パッケージ41の優先順位の変更に基づいて半導体パッケージ41の位置をパッケージストッカー4とドライブ22のソケット222との間で変更する動作について説明するための別の図である。
 例えば、半導体パッケージCの優先順位が3位から2位に上がり、半導体パッケージBの優先順位が2位から3位に下がった場合を想定する。まず、ホストユニット21は、半導体パッケージBをソケット#2から取り外すことと、半導体パッケージCをドライブ22に搬送してソケット#2に装着することと、取り外した半導体パッケージBをパッケージストッカー4の例えば保管位置#1に搬送することとをパッケージ搬送装置3に指示する。パッケージ搬送装置3は、半導体パッケージBをソケット#2から取り外し、半導体パッケージCを、半導体パッケージBが取り外されたソケット#2に搬送して装着し、そして、取り外された半導体パッケージBをパッケージストッカー4の保管位置#1に搬送する。
 そして、ホストユニット21は、半導体パッケージ管理テーブル6を更新する。具体的には、ホストユニット21は、半導体パッケージBがパッケージストッカー4の保管位置#1に保管されていることを示す情報と、半導体パッケージCがソケット#2に装着されていることを示す情報とを半導体パッケージ管理テーブル6に格納する。
 次に、半導体パッケージ41が保管されているパッケージストッカー4内の保管位置を変更する動作について説明する。図12は、本実施形態に係るストレージシステム1において実行される、半導体パッケージ41の優先順位の変更に基づいて半導体パッケージ41の位置をパッケージストッカー4内で変更する動作について説明するための図である。
 ここでは、図10に示す状態において、例えば、半導体パッケージHの優先順位が8位から3位に上がり、半導体パッケージC~Gそれぞれの優先順位が3位~7位から4位~8位に下がった場合を想定する。半導体パッケージHの新優先順位(3位)は第2レベルの優先順位に属し、半導体パッケージEの新優先順位(6位)は第3レベルの優先順位に属する。したがって、ホストユニット21は、半導体パッケージHの保管位置と半導体パッケージEの保管位置とを交換するようにパッケージ搬送装置3に指示する。まず、パッケージ搬送装置3は、パッケージストッカー4の保管位置#3から半導体パッケージEを取り出す。そして、パッケージ搬送装置3は、さらに、パッケージストッカー4の保管位置#6から半導体パッケージHを取り出す。その後、パッケージ搬送装置3は、パッケージストッカー4の保管位置#6に半導体パッケージEを保管する。そして、パッケージ搬送装置3は、パッケージストッカー4の保管位置#3に半導体パッケージHを保管する。
 そして、ホストユニット21は、半導体パッケージ管理テーブル6を更新する。具体的には、ホストユニット21は、半導体パッケージEがパッケージストッカー4の保管位置#6に保管されていることを示す情報と、半導体パッケージHがパッケージストッカー4の保管位置#3に保管されていることを示す情報とを半導体パッケージ管理テーブル6に格納する。
 上記の動作によって、ホストユニット21はパッケージストッカー4に保管されている半導体パッケージ41のうち、より高い優先順位を持つ半導体パッケージ41を、パッケージ搬送装置3にとって、取り出すことが容易な保管位置(ここでは保管場所#1)に保管されるように制御することができる。これにより、パッケージストッカー4の保管場所#1に保管されている半導体パッケージ41が持つ優先順位が第2レベルの優先順位を上回ったとき、この半導体パッケージ41をパッケージストッカー4からドライブ22のソケット222に搬送するために必要とされる時間を短縮することができる。
 次に、パッケージ搬送装置3のバッファが使用な可能な場合における、ホストユニット21によって制御される半導体パッケージ41の搬送および着脱動作について説明する。図13は、本実施形態に係るストレージシステムにおいて実行される、半導体パッケージ41の優先順位の変更に基づいて半導体パッケージ41の位置をパッケージストッカー4とパッケージ搬送装置3とドライブ22のソケット222との間で変更する動作について説明するための図である。
 ホストユニット21は、半導体パッケージA、半導体パッケージB、…、半導体パッケージHまでの8個の半導体パッケージ41を管理している。ホストユニット21は、管理されている半導体パッケージ41のうち、最も優先順位の高い半導体パッケージAをドライブ22の例えばソケット#1に、二番目に優先順位の高い半導体パッケージBをドライブ22の例えばソケット#2に、それぞれ装着させるようにパッケージ搬送装置3に指示する。パッケージ搬送装置3は、半導体パッケージAをドライブ22のソケット#1に搬送して装着する。また、パッケージ搬送装置3は、半導体パッケージBをドライブ22のソケット#2に搬送して装着する。ホストユニット21は、半導体パッケージAと、半導体パッケージBとがそれぞれソケット#1と、ソケット#2とに装着されていることを示す情報を半導体パッケージ管理テーブル6に格納する。
 このように、ドライブ22に含まれるソケットの数が2である場合には、1位から2位までの優先順位を有する2つの半導体パッケージA~Bがドライブ22の2つのソケット#1~#2にそれぞれ装着される。1位から2位までの優先順位は、第1レベル優先順位に対応する。
 また、ホストユニット21は、3位から4位までの優先順位を有する2つの半導体パッケージC~Dを保持するようにパッケージ搬送装置3に指示する。3位から4位までの優先順位は、第1レベルの優先順位よりも低い第2レベルの優先順位に相当する。
 指示を受けたパッケージ搬送装置3(例えば搬送ユニット#1)は、半導体パッケージCを保持する。また、指示を受けたパッケージ搬送装置3(例えば搬送ユニット#2)は、半導体パッケージDを保持する。これにより、3位から4位までの優先順位を有する2つの半導体パッケージC~Dは、パッケージ搬送装置3において保持される。つまり、半導体パッケージCを保持する搬送ユニット#1はパッケージ搬送装置3のバッファ#1として使用され、半導体パッケージDを保持する搬送ユニット#2はパッケージ搬送装置3のバッファ#2として使用される。
 この結果、ホストユニット21は、半導体パッケージCと、半導体パッケージDとが、それぞれ搬送ユニット#1(バッファ#1)と、搬送ユニット#2(バッファ#2)とに保持されていることを示す情報とを半導体パッケージ管理テーブル6に格納する。
 また、5位から8位までの優先順位を有する4個の半導体パッケージE~Hは、パッケージストッカー4に保管された状態にある。パッケージストッカー4に保管されている4個の半導体パッケージ41のうち、5位から7位までの優先順位を有する3個の半導体パッケージE~Gは、第1保管場所に含まれる保管位置#1~#3に保管される。5位から7位までの優先順位は、第2レベル優先順位よりも低い第3レベル優先順位に相当する。
 パッケージストッカー4に保管されている4個の半導体パッケージ41のうち、8位の優先順位を有する半導体パッケージHは、第2保管場所に含まれる保管位置#4~#6のいずれか一つ(例えば保管位置#4)に保管される。
 ここで、パッケージ搬送装置3のバッファ#1に保持されていた半導体パッケージCの優先順位が、半導体パッケージBの優先順位を上回ったときのホストユニット21の動作について説明する。図14は、本実施形態に係るストレージシステム1において実行される、半導体パッケージ41の優先順位の変更に基づいて半導体パッケージ41の位置をパッケージ搬送装置3とドライブ22のソケット222との間で変更する動作について説明するための図である。
 例えば、半導体パッケージCの優先順位が3位から2位に上がり、半導体パッケージBの優先順位が2位から3位に下がった場合を想定する。まず、ホストユニット21は、半導体パッケージBをソケット#2から取り外すことと、半導体パッケージCをドライブ22に搬送してソケット#2に装着することと、取り外した半導体パッケージBをパッケージ搬送装置3に保持することとをパッケージ搬送装置3に指示する。パッケージ搬送装置3は、半導体パッケージBをソケット#2から取り外す。そして、パッケージ搬送装置3は、搬送ユニット#1に保持されている半導体パッケージCを、半導体パッケージBが取り外されたソケット#2に搬送して装着する。取り外された半導体パッケージBは、パッケージ搬送装置3(例えば搬送ユニット#1)において保持された状態に維持される。
 上記の動作に応じて、ホストユニット21は、半導体パッケージ管理テーブル6を更新する。具体的には、ホストユニット21は、半導体パッケージBがパッケージ搬送装置3のバッファ#1に保持されていることを示す情報と、半導体パッケージCがソケット#2に装着されていることを示す情報とを半導体パッケージ管理テーブル6に格納する。
 次に、パッケージストッカー4に保管されている半導体パッケージ41の優先順位がパッケージ搬送装置3のバッファに保持されている半導体パッケージ41の優先順位を上回った場合の交換動作について説明する。図15は、本実施形態に係るストレージシステム1において実行される、半導体パッケージ41の優先順位の変更に基づいて半導体パッケージ41の位置をパッケージストッカー4とパッケージ搬送装置3との間で変更する動作について説明するための図である。
 ここでは、図13に示す状態において、例えば、半導体パッケージEの優先順位が5位から4位に上がり、半導体パッケージDの優先順位が4位から5位に下がった場合を想定する。半導体パッケージEの新優先順位(4位)は第2レベルの優先順位に属し、半導体パッケージDの新優先順位(5位)は第3レベルの優先順位に属する。したがって、ホストユニット21は、半導体パッケージEの位置と半導体パッケージDの位置とを交換するようにパッケージ搬送装置3に指示する。具体的には、まず、ホストユニット21は、半導体パッケージDをパッケージストッカー4の保管位置#1に搬送するようにパッケージ搬送装置3に指示し、さらに、半導体パッケージEを搬送ユニット#2に保持するようにパッケージ搬送装置3に指示する。指示を受けたパッケージ搬送装置3は、搬送ユニット#2が保持していた半導体パッケージDをパッケージストッカー4の保管位置#1に搬送する。そして、搬送ユニット#2は、パッケージストッカー4の保管位置#1に保管されている半導体パッケージEと、保持している半導体パッケージDとを交換する。搬送ユニット#2は、バッファ#2として、半導体パッケージEを保持する。
 上記の動作に応じて、ホストユニット21は、半導体パッケージ管理テーブル6を更新する。具体的には、ホストユニット21は、半導体パッケージDがパッケージストッカー4の保管位置#1に保管されていることを示す情報と、半導体パッケージEがパッケージ搬送装置3の搬送ユニット#2(バッファ#2)に保持されていることを示す情報と、を半導体パッケージ管理テーブル6に格納する。
 上記の動作によって、ホストユニット21はパッケージストッカー4に保管されている半導体パッケージ41のうち、より高い優先順位を持つ半導体パッケージ41を、パッケージ搬送装置3にあらかじめ保持させておくことができる。これにより、搬送ユニット31に保持されている半導体パッケージ41が持つ優先順位が、ソケット222に接続されている半導体パッケージ41が持つ優先順位を上回ったとき、パッケージ搬送装置3がパッケージストッカー4から半導体パッケージ41を取り出すために必要とされる時間を無くすことができる。すなわち、パッケージ搬送装置3のバッファを使用することによって、パッケージストッカー4内の保管位置を調整することよりも、半導体パッケージ41の移動に必要とされる時間を大きく減らすことができる。
 次に、半導体パッケージ41の不揮発性メモリダイ411に対するデータの読み出し、または書き込み処理について説明する。図16は、本実施形態に係るストレージシステム1のホストユニット21によって実行されるデータの読み出しまたは書き込み処理の手順を示すフローチャートである。
 まず、ホストユニット21は、アクセス対象の不揮発性メモリダイ411を含む半導体パッケージ41を決定する(ステップS11)。ここで、アクセス対象の不揮発性メモリダイ411はアプリケーションプログラム211から受信されるリード要求またはライト要求に基づいて決定される。そして、このアクセス対象の不揮発性メモリダイ411を含む半導体パッケージ41がステップS11で決定される。
 ホストユニット21は、ステップS11で決定された半導体パッケージ41がドライブ22のソケット222に装着されているか否かを判定する(ステップS12)。ステップS12では、ホストユニット21は、半導体パッケージ管理テーブル6を参照することによって、決定された半導体パッケージ41がドライブ22のソケット222に装着されているか否かを判定してもよい。
 決定された半導体パッケージ41がドライブ22のソケット222に装着されている場合(ステップS12でYes)、ホストユニット21は、コントローラ223を介して、決定された半導体パッケージ41に含まれるアクセス対象の不揮発性メモリダイ411に対するデータの読み出しまたは書き込みを実行する(ステップS13)。
 決定された半導体パッケージ41がドライブ22のいずれのソケット222にも装着されていない場合(ステップS12でNo)、ホストユニット21は、パッケージ搬送装置3に、決定された半導体パッケージ41をパッケージストッカー4からドライブ22に搬送させ、ソケット222に装着させる(ステップS14)。
 パッケージ搬送装置3によってソケット222に半導体パッケージ41が装着された場合、ホストユニット21は、この半導体パッケージ41に格納されているパッケージ識別子を、コントローラ223を介して読み出し、読み出したパッケージ識別子が、決定された半導体パッケージ41のパッケージ識別子に一致するか否かを確認する。読み出したパッケージ識別子が、決定された半導体パッケージ41のパッケージ識別子に一致した場合、ホストユニット21は、コントローラ223を介して、決定された半導体パッケージ41に含まれるアクセス対象の不揮発性メモリダイ411に対するデータの読み出しまたは書き込みを実行する(ステップS13)。
 図17は、本実施形態に係るストレージシステム1のホストユニット21によって実行されるデータの読み出しまたは書き込み処理の手順の詳細を示すフローチャートである。
 まず、ホストユニット21は、アクセス対象の不揮発性メモリダイ411を含む半導体パッケージ41を決定する(ステップS21)。
 ホストユニット21は、ステップS21で決定された半導体パッケージ41がドライブ22のソケット222に装着されているか否かを判定する(ステップS22)。ステップS22では、ホストユニット21は、半導体パッケージ管理テーブル6を参照することによって、決定された半導体パッケージ41がドライブ22のソケット222に装着されているか否かを確認してもよい。
 決定された半導体パッケージ41がドライブ22のソケット222に装着されている場合(ステップS22でYes)、ホストユニット21は、コントローラ223を介して、決定された半導体パッケージ41に含まれるアクセス対象の不揮発性メモリダイ411に対するデータの読み出しまたは書き込みを実行する(ステップS23)。
 決定された半導体パッケージ41がドライブ22のいずれのソケット222にも装着されていない場合(ステップS22でNo)、ホストユニット21は、ドライブ22に空きソケットがあるか否かを確認する(ステップS24)。空きソケットは、いずれの半導体パッケージ41も装着されていないソケット222である。
 ドライブ22に空きソケットがある場合(ステップS24でYes)、ホストユニット21は、パッケージ搬送装置3に、決定された半導体パッケージ41をパッケージストッカー4からドライブ22に搬送させ、空きソケットに装着させる(ステップS25)。この場合、ホストユニット21は、決定された半導体パッケージ41をパッケージストッカー4から取り出すことと、決定された半導体パッケージ41を空きソケットに装着することとをパッケージ搬送装置3に指示する。
 パッケージ搬送装置3によってソケット222に半導体パッケージ41が装着された場合、ホストユニット21は、この半導体パッケージ41に格納されているパッケージ識別子を、コントローラ223を介して読み出し、読み出したパッケージ識別子が、決定された半導体パッケージ41のパッケージ識別子に一致するか否かを確認する。
 読み出したパッケージ識別子が、決定された半導体パッケージ41のパッケージ識別子に一致した場合、ホストユニット21は、決定された半導体パッケージ41がドライブ22のソケット222に装着されていることを示す情報を半導体パッケージ管理テーブル6に格納する。
 そして、ホストユニット21は、コントローラ223を介して、決定された半導体パッケージ41に含まれるアクセス対象の不揮発性メモリダイ411に対するデータの読み出しまたは書き込みを実行する(ステップS23)。
 ドライブ22に空きソケットがない場合(ステップS24でNo)、ホストユニット21は、ドライブ22のソケット222に装着されている半導体パッケージ41の中に、決定された半導体パッケージ41の優先順位よりも低い優先順位を持つ半導体パッケージ41が存在するか否かを判定する(ステップS26)。
 ドライブ22のソケット222に装着されている半導体パッケージ41の中に、決定された半導体パッケージ41の優先順位よりも低い優先順位を持つ半導体パッケージ41が存在しない場合(ステップS26でNo)、ホストユニット21は、ステップS24の処理を再度実行する。ホストユニット21は、各半導体パッケージ41の優先順位の変更によって、ドライブ22のソケット222に装着されている半導体パッケージ41の中に、決定された半導体パッケージ41の優先順位よりも低い優先順位を持つ半導体パッケージ41が存在するようになるまで待つ。
 ドライブ22のソケット222に装着されている半導体パッケージ41の中に、決定された半導体パッケージ41の優先順位よりも低い優先順位を持つ半導体パッケージ41が存在する場合(ステップS26でYes)、ホストユニット21は、パッケージ搬送装置3に、ドライブ22のソケット222に装着されている半導体パッケージ41のうち、最も低い優先順位を持つ半導体パッケージ41をソケット222から取り外させ、そして、取り外された半導体パッケージ41をパッケージストッカー4へ搬送させる(ステップS27)。これにより、この半導体パッケージ41が取り外されたソケット222は、空きソケットになる。
 そして、ホストユニット21は、パッケージ搬送装置3に、決定された半導体パッケージ41をパッケージストッカー4からドライブ22に搬送させ、空きソケットに装着させる(ステップS25)。この場合、ホストユニット21は、決定された半導体パッケージ41をパッケージストッカー4から取り出すことと、決定された半導体パッケージ41をソケット222に装着することとを、パッケージ搬送装置3に指示する。
 パッケージ搬送装置3によってソケット222に半導体パッケージ41が装着された場合、ホストユニット21は、この半導体パッケージ41に格納されているパッケージ識別子を、コントローラ223を介して読み出し、読み出したパッケージ識別子が、決定された半導体パッケージ41のパッケージ識別子に一致するか否かを確認する。
 読み出したパッケージ識別子が、決定された半導体パッケージ41のパッケージ識別子に一致した場合、ホストユニット21は、決定された半導体パッケージ41がドライブ22のソケット222に装着されていることを示す情報を半導体パッケージ管理テーブル6に格納する。
 そして、ホストユニット21は、コントローラ223を介して、決定された半導体パッケージ41に含まれるアクセス対象の不揮発性メモリダイ411に対するデータの読み出しまたは書き込みを実行する(ステップS23)。
 これにより、ドライブ22に空きソケットがない場合であっても、ホストユニット21は、決定された半導体パッケージ41が持つ優先順位よりも低い優先順位をもつ半導体パッケージ41をソケット222から取り外すことで、決定された半導体パッケージ41をソケット222に装着させることができる。
 次に、パッケージ搬送装置3のバッファを使用可能な場合における、半導体パッケージ41の不揮発性メモリダイ411に対するデータの読み出し、または書き込み処理について説明する。図18A、および図18Bは、本実施形態に係るストレージシステム1のホストユニット21によって実行される不揮発性メモリダイ411に対するデータの読み出しまたは書き込み処理の別の手順を示すフローチャートである。
 まず、ホストユニット21は、アクセス対象の不揮発性メモリダイ411を含む半導体パッケージ41を決定する(ステップS301)。
 ホストユニット21は、ステップS301で決定された半導体パッケージ41がドライブ22のソケット222に装着されているか否かを判定する(ステップS302)。ホストユニット21は、半導体パッケージ管理テーブル6を参照することによって、決定された半導体パッケージ41がドライブ22のソケット222に装着されているか否かを判定してもよい。
 決定された半導体パッケージ41がドライブ22のソケット222に装着されている場合(ステップS302でYes)、ホストユニット21は、コントローラ223を介して、決定された半導体パッケージ41に含まれるアクセス対象の不揮発性メモリダイ411に対するデータの読み出しまたは書き込みを実行する(ステップS303)。
 決定された半導体パッケージ41がドライブ22のいずれのソケット222にも装着されていない場合(ステップS302でNo)、ホストユニット21は、ドライブ22に空きソケットがあるか否かを確認する(ステップS304)。
 ドライブ22に空きソケットがある場合(ステップS304でYes)、ホストユニット21は、図18BのステップS305の処理を実行する。
 ドライブ22に空きソケットがない場合(ステップS304でNo)、ホストユニット21は、ドライブ22のソケット222に装着されている半導体パッケージ41の中に、決定された半導体パッケージ41の優先順位よりも低い優先順位を持つ半導体パッケージ41が存在するか否かを判定する(ステップS307)。
 ドライブ22のソケット222に装着されている半導体パッケージ41の中に決定された半導体パッケージ41の優先順位よりも低い優先順位を持つ半導体パッケージ41が存在しない場合(ステップS307でNo)、ホストユニット21は、ステップS304の処理を再度実行する。ホストユニット21は、各半導体パッケージ41の優先順位の変更によって、ドライブ22のソケット222に装着されている半導体パッケージ41の中に、決定された半導体パッケージ41の優先順位よりも低い優先順位を持つ半導体パッケージ41が存在するようになるまで待つ。
 ドライブ22のソケット222に装着されている半導体パッケージ41の中に、決定された半導体パッケージ41の優先順位よりも低い優先順位を持つ半導体パッケージ41が存在する場合(ステップS307でYes)、ホストユニット21は、パッケージ搬送装置3に、決定された半導体パッケージ41の優先順位よりも低い優先順位を持つ半導体パッケージ41をソケット222から取り外させ、そして取り外された半導体パッケージ41をパッケージ搬送装置3のバッファに搬送させる(ステップS308)。これにより、ソケット222から取り外された半導体パッケージ41は、パッケージストッカー4に保管されずに、パッケージ搬送装置3に保持される。また、半導体パッケージ41が取り外されたソケット222は、空きソケットになる。そして、ホストユニット21は、図18BのステップS305の処理を実行する。
 ホストユニット21は、決定された半導体パッケージ41がパッケージ搬送装置3のバッファに存在するか否か、つまり、決定された半導体パッケージ41がパッケージ搬送装置3において保持されているか否かを判定する(ステップS305)。ホストユニット21は、半導体パッケージ管理テーブル6を参照することによって、決定された半導体パッケージ41がパッケージ搬送装置3に保持されているか否かを判定し得る。
 決定された半導体パッケージ41がパッケージ搬送装置3のバッファに存在する場合、つまり、決定された半導体パッケージ41がパッケージ搬送装置3のいずれかの搬送ユニット31に保持されている場合(ステップS305でYes)、ホストユニット21は、パッケージ搬送装置3に、決定された半導体パッケージ41をパッケージ搬送装置3のバッファからドライブ22に搬送させ、空きソケットに装着させる(ステップS306)。この場合、ホストユニット21は、決定された半導体パッケージ41を保持している搬送ユニット31に、決定された半導体パッケージ41をソケット222に装着するように指示する。
 搬送ユニット31によって半導体パッケージ41がソケット222に装着された場合、ホストユニット21は、この半導体パッケージ41に格納されているパッケージ識別子を、コントローラ223を介して読み出し、読み出したパッケージ識別子が、決定された半導体パッケージ41のパッケージ識別子に一致するか否かを確認する。
 読み出したパッケージ識別子が、決定された半導体パッケージ41のパッケージ識別子に一致した場合、ホストユニット21は、決定された半導体パッケージ41がドライブ22のソケット222に装着されていることを示す情報を半導体パッケージ管理テーブル6に格納する。
 そして、ホストユニット21は、コントローラ223を介して、決定された半導体パッケージ41に含まれるアクセス対象の不揮発性メモリダイ411に対するデータの読み出しまたは書き込みを実行する(図18AのステップS303)。
 決定された半導体パッケージ41がパッケージ搬送装置3のいずれのバッファにも存在しない場合、つまり、決定された半導体パッケージ41がパッケージ搬送装置3のいずれの搬送ユニット31にも保持されていない場合(ステップS305でNo)、ホストユニット21は、パッケージ搬送装置3に空きのバッファがあるか否かを確認する(ステップS309)。パッケージ搬送装置3の空きのバッファは、半導体パッケージ41を保持していない搬送ユニット31である。
 パッケージ搬送装置3に空きのバッファがある場合、つまり、半導体パッケージ41を保持していない搬送ユニット31が存在する場合(ステップS309でYes)、ホストユニット21は、パッケージ搬送装置3に、決定された半導体パッケージ41をパッケージストッカー4からパッケージ搬送装置3の空きのバッファ、つまり、半導体パッケージ41を保持していない搬送ユニット31、に搬送させる(ステップS310)。この場合、ホストユニット21は、半導体パッケージ41を保持していない搬送ユニット31に、決定された半導体パッケージ41をパッケージストッカー4から取り出すように指示してもよい。これにより、決定された半導体パッケージ41はこの搬送ユニット31によって保持されるので、決定された半導体パッケージ41がパッケージ搬送装置3のバッファに存在している状態となる。
 そして、ホストユニット21は、パッケージ搬送装置3に、決定された半導体パッケージ41をパッケージ搬送装置3のバッファからドライブ22に搬送させ、空きソケットに装着させる(ステップS306)。この場合、ホストユニット21は、決定された半導体パッケージ41を保持している搬送ユニット31に、決定された半導体パッケージ41を、ソケット222に装着するように指示する。
 搬送ユニット31によって半導体パッケージ41がソケット222に装着された場合、ホストユニット21は、この半導体パッケージ41に格納されているパッケージ識別子を、コントローラ223を介して読み出し、読み出したパッケージ識別子が、決定された半導体パッケージ41のパッケージ識別子に一致するか否かを確認する。
 読み出したパッケージ識別子が、決定された半導体パッケージ41のパッケージ識別子に一致した場合、ホストユニット21は、決定された半導体パッケージ41がドライブ22のソケット222に装着されていることを示す情報を半導体パッケージ管理テーブル6に格納する。
 そして、ホストユニット21は、コントローラ223を介して、決定された半導体パッケージ41に含まれるアクセス対象の不揮発性メモリダイ411に対するデータの読み出しまたは書き込みを実行する(図18AのステップS303)。
 パッケージ搬送装置3に空きのバッファが存在しない場合(ステップS309でNo)、ホストユニット21は、パッケージ搬送装置3のバッファに保持されている半導体パッケージ41の中に、決定された半導体パッケージ41の優先順位よりも低い優先順位を持つ半導体パッケージ41が存在するか否かを判定する(ステップS311)。
 パッケージ搬送装置3のバッファに保持されている半導体パッケージ41の中に、決定された半導体パッケージ41の優先順位よりも低い優先順位を持つ半導体パッケージ41が存在しない場合(ステップS311でNo)、ホストユニット21は、ステップS309の処理を再度実行する。ホストユニット21は、各半導体パッケージ41の優先順位の変更によって、パッケージ搬送装置3のバッファに保持されている半導体パッケージ41の中に、決定された半導体パッケージ41の優先順位よりも低い優先順位を持つ半導体パッケージ41が存在するようになるまで待つ。
 パッケージ搬送装置3のバッファに保持されている半導体パッケージ41の中に、決定された半導体パッケージ41の優先順位よりも低い優先順位を持つ半導体パッケージ41が存在する場合(ステップS311でYes)、ホストユニット21は、パッケージ搬送装置3に、パッケージ搬送装置3のバッファに保持されている半導体パッケージ41のうち、最も低い優先順位を持つ半導体パッケージ41をパッケージストッカー4に搬送させる(ステップS312)。ステップS312では、ホストユニット21は、最も低い優先順位を持つ半導体パッケージ41を保持している搬送ユニット31に、半導体パッケージ41をパッケージストッカー4に搬送するように指示してもよい。これにより、この搬送ユニット31は、半導体パッケージ41を保持していない空きのバッファになる。
 そして、ホストユニット21は、パッケージ搬送装置3に、決定された半導体パッケージ41をパッケージストッカー4からパッケージ搬送装置3の空きのバッファに搬送させる(ステップS310)。この場合、ホストユニット21は、空きのバッファになった搬送ユニット31に、決定された半導体パッケージ41をパッケージストッカー4から取り出すように指示してもよい。これにより、決定された半導体パッケージ41はこの搬送ユニット31によって保持されるので、決定された半導体パッケージ41がパッケージ搬送装置3のバッファに存在している状態となる。
 そして、ホストユニット21は、パッケージ搬送装置3に、決定された半導体パッケージ41をパッケージ搬送装置3のバッファからドライブ22に搬送させ、空きソケットに装着させる(ステップS306)。
 搬送ユニット31によって半導体パッケージ41がソケット222に装着された場合、ホストユニット21は、この半導体パッケージ41に格納されているパッケージ識別子を、コントローラ223を介して読み出し、読み出したパッケージ識別子が、決定された半導体パッケージ41のパッケージ識別子に一致するか否かを確認する。
 読み出したパッケージ識別子が、決定された半導体パッケージ41のパッケージ識別子に一致した場合、ホストユニット21は、決定された半導体パッケージ41がドライブ22のソケット222に装着されていることを示す情報を半導体パッケージ管理テーブル6に格納する。
 そして、ホストユニット21は、コントローラ223を介して、決定された半導体パッケージ41に含まれるアクセス対象の不揮発性メモリダイ411に対するデータの読み出しまたは書き込みを実行する(図18AのステップS303)。
 以上説明したように、第1の実施形態によれば、ドライブ22は、半導体パッケージ41を着脱可能に装着するように構成された少なくとも1つのソケット222と、このソケット222に装着された半導体パッケージ41の不揮発性メモリダイ411を制御するコントローラ223とを含む。
 ドライブ22に通信可能に接続されたホストユニット21は、コントローラ223を介して、ソケット222に接続された半導体パッケージ41の不揮発性メモリダイ411に対してデータの読み出しまたは書き込みを実行することができる。ホストユニット21は、ストレージシステム1で管理されている複数の半導体パッケージ41の中から、アクセス対象の不揮発性メモリダイ411を含む半導体パッケージ41を決定する。
 アクセス対象の不揮発性メモリダイ411を含む半導体パッケージ41が、ドライブ22のソケット222に装着されている場合、ホストユニット21は、コントローラ223を介して、アクセス対象の不揮発性メモリダイ411に対するデータの読み出しまたは書き込みを実行する。
 アクセス対象の不揮発性メモリダイ411を含む半導体パッケージ41がドライブ22のソケット222に装着されておらず、且つ、パッケージストッカー4に保管されている場合、ホストユニット21は、パッケージ搬送装置3に、アクセス対象の不揮発性メモリダイ411を含む半導体パッケージ41をドライブ22のソケット222に搬送させて装着させる。
 このように、ストレージシステム1においては、1以上の不揮発性メモリダイ411を含む半導体パッケージ41が、ドライブ22のソケット222に装着される。この結果、ドライブ22のソケット222に装着された半導体パッケージ41を、ホストユニット21によってアクセス可能なストレージデバイスとして使用することができる。このため、ホストユニット21は、ドライブ22のソケット222に接続されている半導体パッケージ41を別の半導体パッケージ41に交換するだけで、ストレージシステム1で管理される複数の半導体パッケージ41のうちの任意の半導体パッケージ41に含まれる不揮発性メモリダイ411に対してデータの読み出しまたは書き込みを行うことができる。
(第2の実施形態) 
 次に、複数個の半導体パッケージ41をまとめて搬送および着脱する構成について説明する。図19は、本実施形態に係るストレージシステム1の構成例を示す図である。図19に示すストレージシステム1は、図1に示した第1の実施形態のストレージシステム1と比較し、複数個の半導体パッケージ41を収容するトレー46を、半導体パッケージ41を搬送および着脱するための単位として使用する点が主に相違しており、他の構成は、第1の実施形態のストレージシステム1の構成と同様である。以下では、第1の実施形態のストレージシステム1との相違点を主として説明する。
 パッケージストッカー4は、所定個数の半導体パッケージ41をそれぞれが収容する複数のトレー46を保管可能に構成されている。トレー46の形状は、箱形であってもよいし、板状であってもよい。一つのトレー46に収容さる半導体パッケージ41の個数は、2以上である。トレー46には、所定個数の半導体パッケージ41が収容される。トレー46への半導体パッケージ41の収容は工場で行われる。所定個数の半導体パッケージ41を収容しているトレー46が工場から出荷され、データセンタで使用される。
 ドライブ22は、トレー46に収容されたままの所定個数の半導体パッケージ41を一括して着脱可能な、所定個数のソケット222を少なくとも含む。例えば、トレー46が16個の半導体パッケージ41を収容するように構成されている場合には、ドライブ22は、16個のソケット222を少なくとも含む。16個のソケット222は、一つのトレーに収容されている16個の半導体パッケージ41を一括して着脱可能なソケット群を形成する。16個の半導体パッケージ41は、トレー46に収容された状態で、16個のソケット222に一括して装着される。また、トレー46が48個の半導体パッケージ41を収容するように構成されている場合には、ドライブ22は、48個のソケット222を少なくとも含む。48個のソケット222は、一つのトレーに収容されている48個の半導体パッケージ41を一括して着脱可能なソケット群を形成する。48個の半導体パッケージ41は、トレー46に収容された状態で、48個のソケット222に一括して装着される。なお、ドライブ22は、2つ以上のトレー46に対応する数のソケット222を含んでいてもよい。
 パッケージ搬送装置3は、トレー46をパッケージストッカー4とドライブ22との間で搬送する。例えば、トレー46が16個の半導体パッケージ41を収容するように構成されている場合には、パッケージ搬送装置3は、トレー46を搬送することによって、16個の半導体パッケージ41をまとめてパッケージストッカー4とドライブ22との間で搬送する。
 次に、ストレージシステム1の基本的な動作について説明する。ホストユニット21は、位置管理機能と、搬送制御機能とを有している。位置管理機能は、複数のトレー46それぞれが存在している位置を管理する機能である。搬送制御機能は、パッケージ搬送装置3を制御することによって、所定個数の半導体パッケージ41を収容したトレー46の搬送を制御する機能である。
 複数のトレー46の各々にはトレー識別子(トレー識別名とも称される)が付与されている。例えば、複数のトレー46の各々には、二次元バーコードのようなバーコードがマーキングされていてもよいし、二次元バーコードのようなバーコードが印刷されたシールが添付されていてもよい。バーコードは、トレー識別子を表す情報を含む。
 ホストユニット21は、トレー識別子と、このトレー識別子によって識別されるトレー46が存在している位置との間の対応関係を管理し得る。また、ホストユニット21は、トレー識別子と、このトレー識別子によって識別されるトレー46に収容されている所定個数の半導体パッケージ41との間の対応関係も管理し得る。
 あるトレー46が存在し得る位置は、例えば、ドライブ22に含まれる複数のソケット222のうちの所定個数のソケット222、または、パッケージストッカー4に含まれる複数のトレー保管位置のうちの任意の一つのトレー保管位置である。
 ホストユニット21は、複数の半導体パッケージ41のうち、アクセス対象である不揮発性メモリダイを含む半導体パッケージ41を決定する。ホストユニット21は、決定した半導体パッケージ41を収容しているトレー46をさらに決定する。
 ホストユニット21は、決定したトレー46が存在している位置を特定し、これによって、決定したトレー46に収容された所定個数の半導体パッケージ41がドライブ22の所定個数のソケット222に装着されているか否かを判定することができる。
 決定したトレー46に収容された所定個数の半導体パッケージ41がドライブ22の所定個数のソケット222に装着されている場合、ホストユニット21は、ドライブ22内のコントローラ223を介してアクセス対象の不揮発性メモリダイ411に対するデータの読み出しまたは書き込みを実行する。
 決定したトレー46に収容された所定個数の半導体パッケージ41がドライブ22の所定個数のソケット222に装着されていない場合、ホストユニット21は、パッケージ搬送装置3に、決定したトレー46をドライブ22に搬送させて、決定したトレー46に収容された所定個数の半導体パッケージ41をドライブ22の所定個数のソケット222に装着させる。この場合、ホストユニット21は、パッケージ搬送装置3に次のような搬送要求を送信し得る。
 この搬送要求は、例えば、決定したトレー46が保管されているパッケージストッカー4内の位置(トレー保管位置とも称される)を移動元位置として指定し、且つ、ドライブ22の所定個数のソケット222を移動先位置として指定する。パッケージ搬送装置3の搬送ユニット31は、指定された移動元位置に存在しているトレー46を、指定された移動先位置に搬送する。そして、搬送ユニット31は、このトレー46に収容された所定個数の半導体パッケージ41を、移動先位置の所定個数のソケット222に一括して装着する。
 このように、個々のトレー46毎にその位置を管理することにより、個々の半導体パッケージ41毎にその位置を管理する場合に比し、位置管理に必要とされる処理量を低減できる。さらに、トレー46に収容された所定個数の半導体パッケージ41がまとめて搬送されるので、個々の半導体パッケージ41を一つずつ搬送する場合に比し、必要な搬送回数を低減することが可能となる。
 さらに、ホストユニット21は、複数の半導体パッケージ41それぞれの優先順位に基づいて決定される複数のトレー46それぞれの優先順位を管理する機能も有し得る。複数の複数のトレー46それぞれの優先順位を決定するためのアルゴリズムは特定のアルゴリズムに限定されず、様々な条件に基づいて、複数のトレー46それぞれの優先順位を決定することができる。例えば、ホストユニット21は、収容している所定個数の半導体パッケージ41が有する優先順位の平均が高いトレー46が高い優先順位を有するように、複数のトレー46それぞれの優先順位を決定してもよい。あるいは、ホストユニット21は、収容している所定個数の半導体パッケージ41が有する優先順位の中の最高の優先順位に基づいて、複数のトレー46それぞれの優先順位を決定してもよい。
 ホストユニット21は、複数のトレー46それぞれの優先順位に基づいて、複数のトレー46それぞれが存在する位置を制御することもできる。例えば、ホストユニット21は、第1レベルの優先順位を有するトレー46に収容された所定個数の半導体パッケージ41がドライブ22の所定個数のソケット222に装着され、第1レベルの優先順位よりも低い第2レベルの優先順位を有するトレー46がパッケージストッカー4に保管されるように、複数のトレー46それぞれの優先順位に基づいて、複数のトレー46それぞれが存在する位置を制御し得る。
 なお、パッケージ搬送装置3に含まれる搬送ユニット31の幾つかを、トレー46を一時的に保持するためのバッファとして使用してもよい。この場合、第1レベルの優先順位よりも低い第2レベルの優先順位を有するトレー46は、パッケージ搬送装置3に含まれる搬送ユニット31に保持される。そして、第2レベルの優先順位よりも低い第3レベルの優先順位を有するトレー46がパッケージストッカー4に保管される。
 第2レベルの優先順位を有するトレー46を保持している搬送ユニット31は、他の搬送ユニット31による搬送動作の妨げにならないように、特定の退避位置に移動されてもよい。
 また、トレー46の優先順位に応じて、パッケージストッカー4内の保管場所を変更してもよい。例えば、ホストユニット21は、第1レベルの優先順位を有するトレー46に終了される所定個数の半導体パッケージ41がドライブ22の所定個数のソケット222に装着され、第1レベルの優先順位よりも低い第2レベルの優先順位を有するトレー46がパッケージ搬送装置3において保持され、第2レベルの優先順位よりも低い第3レベルの優先順位を有するトレー46がパッケージストッカー4に含まれる第1の保管場所に保管され、第3レベルの優先順位よりも低い第4レベルの優先順位を有するトレー46がパッケージストッカー4に含まれる第2の保管場所に保管されるように、複数のトレー46それぞれの優先順位に基づいて、複数のトレー46それぞれが存在する位置を制御し得る。ここで、第1の保管場所は、第2の保管場所よりも、パッケージ搬送装置3に近いパッケージストッカー4内の保管場所である。
 次に、トレーの46の構成について説明する。図20は、複数の半導体パッケージ41を収容可能なトレー46の構成例を示す斜視図である。図21は、図20の21-21線に沿ったトレー46の断面図である。
 トレー46は、所定個数の半導体パッケージ41を収容可能な所定個数の窪み461を含む。例えば、トレー46が16個の半導体パッケージ41を収容可能な構造を有する場合には、トレー46は、16個の窪み461を含む。
 図21に示すように、所定個数の窪み461の各々の底面近傍の内周部には、支持部材462が設けられている。支持部材462は、その窪み461に収容された半導体パッケージ41の裏面417の最外周領域を支持する。さらに、所定個数の窪み461の各々の底面、つまりトレー46の下面においては、半導体パッケージ41の複数のボール型金属端子413が露出される開口が形成されている。つまり、所定個数の窪み461の各々は半導体パッケージ41を収容可能な空洞であり、この空洞の底部には、半導体パッケージ41の複数のボール型金属端子413が露出される開口が形成されている。
 したがって、窪み461に収容された半導体パッケージ41の裏面417の最外周領域は支持部材462に当接し、これによって半導体パッケージ41はトレー46内に保持される。さらに、半導体パッケージ41の裏面417に設けられた複数のボール型金属端子413は、支持部材462に接触することなく、トレー46の下面に設けられた開口を通して外部環境に露出される。この場合、各半導体パッケージ41は、トレー46の下面に設けられた開口を通して複数のボール型金属端子413がトレー46の下面から突出されるようにトレー46内に収容され得る。
 このように、トレー46は、所定個数の半導体パッケージ41の各々の複数のボール型金属端子413が露出される開口が形成された下面を有する。したがって、所定個数の半導体パッケージ41を、これら半導体パッケージ41がトレー46に収容されたまま所定個数のソケット222に装着することができる。
 また、所定個数の半導体パッケージ41の各々の複数のボール型金属端子413が露出される開口が形成されたトレー46の下面は、凹凸の無い平坦な面である。したがって、トレー46は、パッケージストッカー4のレール対に沿ってスムーズに移動可能である。
 次に、トレー46に収容された所定個数の半導体パッケージ41とドライブ22の所定個数のソケット222との間の位置合わせを補助可能なトレー46の構成について説明する。図22は、上面と下面にそれぞれ凸部が設けられたトレー46の構成例を示す斜視図である。図23は、図22の23-23線に沿ったトレー46の断面図である。
 トレー46は、所定個数の半導体パッケージ41を収容可能な所定個数の窪み461を含む。例えば、トレー46が16個の半導体パッケージ41を収容可能な構造を有する場合には、トレー46は、16個の窪み461を含む。
 図23に示すように、所定個数の窪み461の各々の底面近傍の内周部には、支持部材462が設けられている。支持部材462は、その窪み461に収容された半導体パッケージ41の裏面417の最外周領域を支持する。さらに、所定個数の窪み461の各々の底面、つまりトレー46の下面においては、半導体パッケージ41の複数のボール型金属端子413が露出される開口が形成されている。つまり、所定個数の窪み461の各々は半導体パッケージ41を収容可能な空洞であり、この空洞の底部には、半導体パッケージ41の複数のボール型金属端子413が露出される開口が形成されている。
 したがって、窪み461に収容された半導体パッケージ41の裏面417の最外周領域は支持部材462に当接し、これによって半導体パッケージ41はトレー46内に保持される。さらに、半導体パッケージ41の裏面417に設けられた複数のボール型金属端子413は、支持部材462に接触することなく、トレー46の下面に設けられた開口を通して外部環境に露出される。この場合、各半導体パッケージ41は、トレー46の下面に設けられた開口を通して複数のボール型金属端子413がトレー46の下面から突出されるようにトレー46内に収容され得る。
 さらに、トレー46の下面は、一つ以上の凸部463を有している。各凸部463は、トレー46に収容された所定個数の半導体パッケージ41とドライブ22の所定個数のソケット222との間の位置合わせ用の部材として使用され得る。
 また、さらに、トレー46の上面は、一つ以上の凸部464を有している。トレー46に収容された所定個数の半導体パッケージ41がドライブ22の所定個数のソケット222に装着された場合、所定個数の半導体パッケージ41と所定個数のソケット222との間の安定した接触状態を維持するために、トレー46は蓋部材で覆われてもよい。トレー46の上面に設けられた各凸部464は、トレー46と蓋部材との間の位置合わせ用の部材として使用され得る。
 図24は、図22および図23を参照して説明したトレー46の上面および下面の形状を示す平面図である。図24の左部はトレー46を上面側から見た平面図である。図24の右部はトレー46を下面側から見た平面図である。また、図25は、トレー46の側面図である。
 図24の右部および図25から分かるように、トレー46の下面は、各半導体パッケージ41の複数のボール型金属端子413が露出される開口を有し、且つ複数の凸部463を有している。
 また図25から分かるように、各凸部463の先端は、凹凸の無い平坦な面を有している。トレー46がパッケージストッカー4のレール対上に載置された場合、各凸部463の先端は、レール対に当接する接触面となる。この接触面は、凹凸の無い平坦な面を有しているので、レール対に沿ってトレー46をスムーズにスライドさせることができる。
 次に、複数のトレー46を保管可能なパッケージストッカー4の構成について説明する。図26は、複数のトレー46を載置可能なパッケージストッカー4のレール構造を示す斜視図である。
 図26では、各トレー46が、ドライブ22に設けられたソケット222の数と同じ48個の半導体パッケージ41を収容している場合が例示されている。
 パッケージストッカー4は、間隔を置いて互いに対向する2つの側壁4011、4012と、2つの側壁4011、4012の内側に配置された4つのレール対R11~R14とを含む。レール対R11は、間隔を置いて対向し、且つ互いに平行に延びた一対のレールを含む。レール間に隙間を有するこのようなレール構造を使用することにより、トレー46の下面から露出された各半導体パッケージ41のボール型金属端子413がレールに接触することなく、トレー46を支持することが可能となる。他のレール対R12~R14の各々も、レール対R11と同様の構成を有している。
 図27は、複数のトレー46が載置可能なパッケージストッカー4のレール構造の他の例を示す斜視図である。
 図27では、パッケージストッカー4に3つのレールユニット401~403が含まれている場合が例示されている。ドライブ22に含まれるソケット222の数は例えば48個であり、トレー46に収容されている半導体パッケージ41の数は例えば16個である。この場合、ドライブ22に含まれる48個のソケット222は、各々が16個のソケット222を含む3つのグループに分けられる。あるトレー46に収容されている16個の半導体パッケージ41が、あるグループに含まれる16個のソケット222に一括して装着される。そして、このトレー46は、このグループに対応する蓋部材226によって覆われる。各グループに対応する蓋部材226は、ヒンジ機構を介し開閉自在にドライブ22のプリント回路基板221に取り付けられていてもよい。
 レールユニット401は、間隔を置いて互いに対向する2つの側壁4011、4012と、2つの側壁4011、4012の内側に配置された4つのレール対R11~R14とを含む。レール対R11は、間隔を置いて対向し、且つ互いに平行に延びた一対のレールを含む。レール間に隙間を有するこのようなレール構造を使用することにより、トレー46の下面から露出された各半導体パッケージ41のボール型金属端子413がレールに接触することなく、トレー46を支持することが可能となる。他のレール対R12~R14の各々も、レール対R11と同様の構成を有している。
 レールユニット402は、間隔を置いて互いに対向する2つの側壁4021、4022と、2つの側壁4021、4022の内側に配置された4つのレール対R21~R24とを含む。レール対R21は、間隔を置いて対向し、且つ互いに平行に延びた一対のレールを含む。他のレール対R22~R24の各々も、レール対R21と同様の構成を有している。
 レールユニット403は、間隔を置いて互いに対向する2つの側壁4031、4032と、2つの側壁4031、4032の内側に配置された4つのレール対R31~R34とを含む。レール対R31は、間隔を置いて対向し、且つ互いに平行に延びた一対のレールを含む。他のレール対R32~R34の各々も、レール対R31と同様の構成を有している。
 次に、トレー46の搬送を制御するホストユニット21の構成について説明する。図28は、トレー46の搬送を制御するホストユニット21の構成例を示すブロック図である。ここでは、ストレージシステム1に含まれる複数のホストユニット21のうちの一つであるホストユニット21aについて説明する。
 ホストユニット21aは、プロセッサ201、メインメモリ202、システムコントローラ203、および通信インタフェースコントローラ204、等を含む。これらの構成要素のうち、メインメモリ202の管理データ以外の構成要素は、図7で説明されたホストユニット21aの構成要素と同じであるため、説明を省略する。
 トレー46の搬送を制御するホストユニット21a(より詳しくはプロセッサ201)は、ストレージ管理ツール216の制御の下に、半導体パッケージ管理テーブル6と、トレー管理テーブル7とを管理することができる。半導体パッケージ管理テーブル6は、複数の半導体パッケージ41のための管理データである。トレー管理テーブル7は、複数のトレー46のための管理データである。半導体パッケージ管理テーブル6およびトレー管理テーブル7はメインメモリ202に記憶されてもよい。
 ホストユニット21aは、個々の半導体パッケージ41に固有の半導体パッケージ識別名を付与するように構成されている。ホストユニット21aは、半導体パッケージ管理テーブル6を用いて、各半導体パッケージ41の半導体パッケージ識別名と、各半導体パッケージ41の優先順位と、各半導体パッケージ41が収容されるトレー46の識別名とを管理する。図28では、ホストユニット21aが、半導体パッケージ識別名である半導体パッケージA、半導体パッケージB、…、半導体パッケージFのそれぞれを用いて、ストレージシステム1において使用される複数の半導体パッケージ41のそれぞれを識別し、そして、トレー識別名である、トレーa、トレーb、トレーcのそれぞれを用いて、ストレージシステム1において使用される複数のトレー46のそれぞれを識別する例が示されている。以下では、あるトレー識別名を有するトレー46を、そのトレー識別名を用いて表記することがある。例えば、トレー識別名「トレーa」をもつトレー46を、トレーaと表記することがある。
 ホストユニット21aは、複数の半導体パッケージ41それぞれの優先順位を半導体パッケージ管理テーブル6に格納する。ホストユニット21aは、各半導体パッケージ41に含まれる不揮発性メモリダイ411に対するアクセス頻度等に基づいて、各半導体パッケージ41の優先順位を決定してもよい。また、ホストユニット21aは、半導体パッケージ管理テーブル6によって管理されている優先順位に基づいて、パッケージ搬送装置3に対して、半導体パッケージ41の搬送処理を指示してもよい。
 ホストユニット21aは、複数の半導体パッケージ41それぞれがいずれのトレー46に収容されているかを示す情報として、各トレー46のトレー識別名を半導体パッケージ管理テーブル6に格納する。ここでは、トレーaは、半導体パッケージAと、半導体パッケージBとを収容する。トレーbは、半導体パッケージCと、半導体パッケージDとを収容する。トレーcは、半導体パッケージEと、半導体パッケージFとを収容する。
 さらに、ホストユニット21aは、トレー管理テーブル7を用いて、各トレー46のトレー識別名と、各トレー46の優先順位と、各トレー46の状態と、各トレー46の位置とを管理する。図28では、ホストユニット21aが、トレー識別名であるトレーa、トレーb、トレーcのそれぞれを用いて、ストレージシステム1において使用される複数のトレー46のそれぞれを識別する例が示されている。
 ホストユニット21aは、複数のトレー46それぞれの優先順位をトレー管理テーブル7に格納する。そして、ホストユニット21aは、トレー管理テーブル7によって管理されている優先順位に基づいて、パッケージ搬送装置3に対して、トレー46の搬送処理を指示する。なお、ホストユニット21aは、各トレー46が収容する半導体パッケージ41それぞれが持つ優先順位に基づいて、各トレー46の優先順位を決定してもよい。
 ホストユニット21aは、複数のトレー46それぞれが、ホストユニット21aに接続されている、パッケージストッカー4に保管されている、あるいはパッケージ搬送装置3の搬送ユニット31に保持されている、のいずれの状態であるかを示す情報を、各トレー46の状態として、トレー管理テーブル7に格納する。
 ここで、あるトレー46がホストユニット21aに接続されている状態は、このトレー46に収容されている所定個数の半導体パッケージ41がドライブ22aの所定個数のソケット222に装着されている状態を意味する。したがって、ホストユニット21aは、あるトレー46がホストユニット21aに接続されている場合、このトレー46に収容されている所定個数の半導体パッケージ41が、ドライブ22aの所定個数のソケット222に装着されていることを認識することができる。そして、ホストユニット21aは、このトレーに収容されている所定個数の半導体パッケージ41の各々の不揮発性メモリダイ411に対するデータの読み出しおよび書き込みが可能であることを認識できる。
 図28に示す例では、半導体パッケージ識別名「半導体パッケージA」をもつ半導体パッケージ41が、最も高い優先順位を有している(優先順位=1)。半導体パッケージAは、トレー識別名「トレーa」をもつトレー46に収容されている。半導体パッケージ識別名「半導体パッケージB」をもつ半導体パッケージ41が、二番目に高い優先順位を有している(優先順位=2)。半導体パッケージBは、トレーaに収容されている。また、半導体パッケージ識別名「半導体パッケージC」をもつ半導体パッケージ41は、三番目に高い優先順位を有している(優先順位=3)。半導体パッケージCは、トレー識別名「トレーb」をもつトレー46に収容されている。半導体パッケージ識別名「半導体パッケージD」をもつ半導体パッケージ41は、四番目に高い優先順位を有している(優先順位=4)。半導体パッケージDは、トレーbに収容されている。半導体パッケージ識別名「半導体パッケージE」をもつ半導体パッケージ41は、五番目に高い優先順位を有している(優先順位=5)。半導体パッケージEは、トレー識別名「トレーc」をもつトレー46に収容されている。半導体パッケージ識別名「半導体パッケージF」をもつ半導体パッケージ41は、六番目に高い優先順位を有している(優先順位=6)。半導体パッケージFは、トレーcに収容されている。
 トレーaが、最も高い優先順位を有している(優先順位=1)。トレーaに収容されている所定個数の半導体パッケージ41(ここでは、半導体パッケージA~B)は、ドライブ22aのソケット群#1に装着されている。トレーbが、二番目に高い優先順位を有している(優先順位=2)。トレーbは、パッケージストッカー4に含まれる保管位置#1に保管されている。トレーcが、三番目に高い優先順位を有している(優先順位=3)。トレーcは、パッケージストッカー4の保管位置#2に保管されている。
 保管位置#1とパッケージ搬送装置3との距離は、保管位置#2とパッケージ搬送装置3との距離よりも短い。したがって、保管位置#1に保管されているトレーbは、搬送ユニット31にとって、保管位置#2に保管されているトレーcよりも容易に取り出すことができる。ホストユニット21aは、各トレー46の優先順位に応じて、より優先順位の高いトレー46が、より容易に取り出すことができる保管位置に保管されるように、パッケージ搬送装置3に指示をしてもよい。
 また、ホストユニット21aは、搬送ユニット31をバッファとして使用してもよい。このとき、ホストユニット21aは、パッケージストッカー4に保管されている複数のトレー46のうち、最も優先順位の高いトレー46を搬送ユニット31が保持するようにパッケージ搬送装置3に指示をしてもよい。
 次に、パッケージストッカー4にトレー46を追加する際、およびパッケージストッカー4からトレー46を排出する際に使用されるトレー出し入れ口について説明する。図29は、パッケージストッカー4のトレー取り出し口を示す図である。
 パッケージストッカー4は、パッケージストッカー4の外部からパッケージストッカー4へのトレー46の追加、および、パッケージストッカー4からパッケージストッカー4の外部へのトレー46の排出、に使用されるトレー出し入れ口421を含む。トレー出し入れ口421は、パッケージストッカー4の前面42に設けられた開口である。前面42は、サーバラック11の前面12に相当する。
 トレー46は、パッケージストッカー4に設けられたトレー出し入れ口421を通じて、パッケージストッカー4の外部からパッケージストッカー4に追加される。追加されたトレー46は、既に保管されている複数のトレー46と共にパッケージストッカー4に保管される。
 また、不要になったトレー46は、パッケージストッカー4に設けられたトレー出し入れ口421を通じて、パッケージストッカー4からパッケージストッカー4の外部に排出される。
 パッケージストッカー4は、パッケージストッカー4の前面42に設けられたトレー出し入れ口421に加え、パッケージ搬送装置3と対向する側の面に設けられたトレー出し入れ口431も含む。トレー出し入れ口431は、パッケージストッカー4へのトレー46の保管、および、パッケージストッカー4からのトレー46の取り出し、に使用される。パッケージ搬送装置3は、トレー出し入れ口431を通じてパッケージストッカー4にトレー46を保管する動作と、トレー出し入れ口431を通じてパッケージストッカー4からトレー46を取り出す動作とを実行する。トレー出し入れ口431は、例えば、パッケージストッカー4の背面に設けられており、トレー出し入れ口421の反対側に位置する。また、ここでは図示されていないが、パッケージストッカー4のトレー出し入れ口421からパッケージ搬送装置3に向かう方向に、つまり、トレー出し入れ口421からトレー出し入れ口431に向かう方向に、複数対のレールが延びている。
 次に、外部からパッケージストッカー4にトレー46を追加する動作について説明する。図30は、パッケージストッカー4のトレー出し入れ口421から新規のトレー46をパッケージストッカー4に追加する動作を示す図である。
 図30の上部は、新規のトレー46が追加される前のサーバラック11の平面図である。図30の下部は、48個の半導体パッケージ41を収容した新規のトレー46が追加された後のサーバラック11の平面図である。
 図30から分かるように、パッケージ搬送装置3は、サーバラック11の前面12に設けられたトレー出し入れ口421に対向している。レール対R11は、トレー出し入れ口421からパッケージ搬送装置3に向かう方向(Y方向)に延びている。
 図30の上部に示すように、レール対R11には、48個の半導体パッケージ41をそれぞれが収容した二つのトレー46が載置されている。
 ここで、パッケージストッカー4に48個の半導体パッケージ41を収容したトレー46を追加する場合を想定する。この場合、図30の下部に示すように、48個の半導体パッケージ41を収容したトレー46が、例えば、ロボットまたは操作者によって、トレー出し入れ口421を通じてレール対R11に載置される。これによって、トレー46が、パッケージストッカー4に保管される。
 このように、パッケージストッカー4においては、トレー出し入れ口421からパッケージ搬送装置3に向かう方向に延びたレール対R11が設けられている。したがって、トレー出し入れ口421を通じてトレー46の追加および排出を容易に行うことが可能となる。
 次に、トレー46に収容された所定個数の半導体パッケージ41とドライブ22の所定個数のソケット222との間の位置合わせについて説明する。図31は、ドライブ22の基板に設けられた凹部と、トレー46の下面に設けられた凸部と、トレー46の上面に設けられた凸部と、蓋部材226に設けられた凹部との関係を示す図である。また、図32は、ドライブ22の基板に設けられた凹部にトレー46の下面の凸部が嵌まり、蓋部材226の凹部がトレー46の上面の凸部に嵌まった状態を示す図である。
 ドライブ22のこの基板は、例えば、ドライブ22のプリント回路基板221である。この場合、ドライブ22のプリント回路基板221においては、少なくとも所定個数のソケット222が配置されている。ソケット222の各々は、プリント回路基板221上に設けられた複数の端子2215を含む。また、プリント回路基板221は、1以上の凹部2210も含む。
 蓋部材226は、1以上の凹部2260を含む下面を有する。
 トレー46に収容された所定個数の半導体パッケージ41を所定個数のソケット222に一括して装着する際には、図32に示すように、トレー46の下面に設けられた各凸部463がプリント回路基板221の対応する凹部2210に嵌められる。これにより、トレー46に収容された所定個数の半導体パッケージ41がドライブ22の所定個数のソケット222と位置合わせされる。これにより、トレー46に収容された各半導体パッケージ41の複数のボール型金属端子413が、プリント回路基板221上の対応するソケット222の複数の端子2215にそれぞれ接触される。
 この後、図32に示すように、プリント回路基板221上に置かれたトレー46の上面の各凸部464が蓋部材226の対応する凹部2260に嵌まるように、プリント回路基板221上に置かれたトレー46が蓋部材226で覆われる。これにより、蓋部材226の下面がトレー46に収容された所定個数の半導体パッケージ41の上面に接触する。これにより、トレー46に収容された所定個数の半導体パッケージ41の各々の複数のボール型金属端子413が、プリント回路基板221上の複数の複数の端子2215にそれぞれ押し付けられる。
 なお、ここでは、凹部2210を含む基板として、ドライブ22のプリント回路基板221を使用する場合を説明したが、凹部2210を含む基板は、プリント回路基板221とは別の基板(ソケット基板とも称される)によって実現されてもよい。この場合、この別の基板は、複数の端子2215を各々が含む所定個数のソケットと、1以上の凹部2210とを含む。
 次に、ホストユニット21によって制御されるトレー46の搬送および着脱動作について説明する。図33は、本実施形態に係るストレージシステム1において実行される、トレー46の優先順位の変更に基づいてトレー46の位置をパッケージストッカー4とドライブ22のソケット222との間で変更する動作について説明するための図である。
 以下では、ドライブ22に含まれるソケット222の総数が、トレー46に収容されている半導体パッケージ41の数と等しい場合を想定する。トレー46に収容されている半導体パッケージ41の数と等しい数のソケット222は、以下では、ソケット群#1と称される。また、図示の簡単化のために、以下では、トレー46に収容されている半導体パッケージ41の数が2である場合を想定する。
 ホストユニット21は、トレー管理テーブル7を用いて、ストレージシステム1に含まれるトレー46それぞれの優先順位を管理する。ストレージシステム1に含まれるトレー46それぞれの優先順位は、ストレージシステム1に含まれる半導体パッケージ41それぞれの優先順位に基づいて決定され得る。ホストユニット21は、ストレージシステム1に含まれるトレー46それぞれの優先順位に基づいて、トレー46の搬送および着脱をパッケージ搬送装置3に指示する。
 図33に示す例では、ホストユニット21は、半導体パッケージA、半導体パッケージB、…、半導体パッケージFまでの6個の半導体パッケージ41を管理している。また、ホストユニット21は、トレーa、トレーb、トレーcの3個のトレー46を管理している。ここで、半導体パッケージAは、最も優先順位が高い半導体パッケージ41であり、トレーaに収容されている。半導体パッケージBは、二番目に優先順位が高い半導体パッケージ41であり、トレーaに収容されている。半導体パッケージCは、三番目に優先順位が高い半導体パッケージ41であり、トレーbに収容されている。半導体パッケージDは、四番目に優先順位が高い半導体パッケージ41であり、トレーbに収容されている。半導体パッケージEは、五番目に優先順位が高い半導体パッケージ41であり、トレーcに収容されている。半導体パッケージFは、六番目に優先順が高い半導体パッケージ41であり、トレーcに収容されている。
 ここでは、ホストユニット21が、収容している所定個数の半導体パッケージ41が有する優先順位の平均が最も高いトレーaの優先順位を1位に決定し、収容している所定個数の半導体パッケージ41が有する優先順位の平均が二番目に高いトレーbの優先順位を2位に決定し、収容している所定個数の半導体パッケージ41が有する優先順位の平均が三番目に高いトレーcの優先順位を3位に決定するものとする。
 ホストユニット21は、最も高い優先順位を有するトレーaをドライブ22に搬送して、トレーaに収容されている半導体パッケージA~Bをドライブ22の2つのソケット222、つまりソケット群#1、に装着するように、パッケージ搬送装置3に指示する。パッケージ搬送装置3は、トレーaをドライブ22に搬送し、トレーaに収容されている半導体パッケージA~Bをドライブ22のソケット群#1一括して装着する。ホストユニット21は、半導体パッケージA~Bを収容したトレーaがソケット群#1に存在することを示す情報をトレー管理テーブル7に格納する。
 このように、ドライブ22に含まれるソケット222の総数が、トレー46に収容されている半導体パッケージ41の数と等しい場合には、1位の優先順位を有するトレーaに収容される半導体パッケージA~Bが、ドライブ22のソケット群#1の2つのソケット222にそれぞれ装着される。この場合、1位の優先順位は、第1レベルの優先順位に対応する。
 また、2位から3位までの優先順位を有する二つのトレー46(トレーb、トレーc)は、パッケージストッカー4に保管された状態にある。パッケージストッカー4は、第1保管場所と第2保管場所との少なくとも2種類の保管場所を含み得る。第1保管場所とパッケージ搬送装置3との距離は、第2保管場所とパッケージ搬送装置3との距離よりも短い。第1保管場所は、例えば、保管位置#1を含む。第2保管場所は、例えば、保管位置#2を含む。保管位置#1は、パッケージ搬送装置3にとって、保管位置#2よりもトレー46を取り出すことが容易な保管位置である。
 パッケージストッカー4に保管されている2個のトレー46のうち、2位の優先順位を有するトレーbは、第1保管場所に含まれる保管位置#1に保管される。2位の優先順位は、第1レベル優先順位よりも低い第2レベル優先順位に相当する。
 また、パッケージストッカー4に保管されている2個のトレー46のうち、3位の優先順位を有するトレーcは、第2保管場所に含まれる保管位置#2に保管される。3位の優先順位は、第2レベル優先順位よりも低い第3レベル優先順位に相当する。
 ここで、パッケージストッカー4に保管されているトレーbの優先順位が、トレーaの優先順位を上回ったときのホストユニット21の動作について説明する。図34は、本実施形態に係るストレージシステム1において実行される、トレー46の優先順位の変更に基づいてトレー46の位置をパッケージストッカー4とドライブ22のソケット222との間で変更する動作について説明するための別の図である。
 例えば、半導体パッケージAの優先順位が1位から3位に下がり、半導体パッケージBの優先順位が2位から4位に下がり、半導体パッケージCの優先順位が3位から1位に上がり、半導体パッケージDの優先順位が4位から2位に上がった場合を想定する。ホストユニット21は、アクセス要求の頻度などに基づいた所定のアルゴリズムを使用して、複数の半導体パッケージ41それぞれが有する優先順位を更新する。
 ホストユニット21は、複数の半導体パッケージ41それぞれが有する優先順位が更新されたことに応じて、複数のトレー46それぞれが有する優先順位を更新する。ここで、トレーbに収容されている半導体パッケージC~Dが有する優先順位がいずれも、トレーaに収容されている半導体パッケージA~Bが有する優先順位を上回ったため、ホストユニット21は、トレーbの優先順位がトレーaの優先順位よりも高くなるように、トレーa~bそれぞれの優先順位を更新する。これにより、トレーbは、最も高い優先順位(優先順位=1)を持ち、トレーaは、二番目に高い優先順位(優先順位=2)を持つ。
 そして、ホストユニット21は、トレーaに収容された半導体パッケージA~Bをソケット群#1の2つのソケット222から取り外すことと、トレーbをドライブ22に搬送してトレーbに収容された半導体パッケージC~Dをソケット群#1の2つのソケット222に装着することと、取り外したトレーaをパッケージストッカー4の例えば保管位置#1に搬送することとをパッケージ搬送装置3に指示する。パッケージ搬送装置3は、トレーaをソケット群#1から取り外すことによって、トレーaに収容された半導体パッケージA~Bをソケット群#1の2つのソケット222から一括して取り外す。そして、パッケージ搬送装置3は、トレーbをドライブ22に搬送して、トレーbに収容された半導体パッケージC~Dを、トレーaに収容された半導体パッケージA~Bが取り外されたソケット群#1の2つのソケット222に一括して装着し、そして、取り外されたトレーaをパッケージストッカー4の保管位置#1に搬送する。
 そして、ホストユニット21は、トレー管理テーブル7を更新する。具体的には、ホストユニット21は、トレーaがパッケージストッカー4の保管位置#1に保管されていることを示す情報と、トレーbがドライブ22のソケット群#1に存在することを示す情報とをトレー管理テーブル7に格納する。
 このように、半導体パッケージ41毎に搬送する場合と異なり、ホストユニット21は、複数の半導体パッケージ41を収容するトレー46毎に搬送することをパッケージ搬送装置3に指示することができる。これにより、複数の半導体パッケージ41を一括して、複数のソケット222に装着させることができるため、ホストユニット21からパッケージ搬送装置3に指示を送信する頻度と、パッケージ搬送装置3が搬送および着脱動作を実行する頻度とを減らすことができる。
 次に、トレー46が保管されているパッケージストッカー4内の保管位置を変更する動作について説明する。図35は、本実施形態に係るストレージシステム1において実行される、トレー46の優先順位の変更に基づいてトレー46の位置をパッケージストッカー4内で変更する動作について説明するための図である。
 ここでは、図33に示す状態において、例えば、トレーcの優先順位が3位から2位に上がり、トレーbの優先順位が2位から3位に下がった場合を想定する。トレーcの新優先順位(2位)は第2レベルの優先順位に属し、トレーbの新優先順位(3位)は第3レベルの優先順位に属する。したがって、ホストユニット21は、トレーcの保管位置と、トレーbの保管位置とを交換するようにパッケージ搬送装置3に指示する。まず、パッケージ搬送装置3は、パッケージストッカー4の保管位置#1からトレーbを取り出す。そして、パッケージ搬送装置3は、さらに、パッケージストッカー4の保管位置#2からトレーcを取り出す。その後、パッケージ搬送装置3は、パッケージストッカー4の保管位置#2にトレーbを保管する。そして、パッケージ搬送装置3は、パッケージストッカー4の保管位置#1にトレーcを保管する。
 そして、ホストユニット21は、トレー管理テーブル7を更新する。具体的には、ホストユニット21は、トレーbがパッケージストッカー4の保管位置#2に保管されていることを示す情報と、トレーcがパッケージストッカー4の保管位置#1に保管されていることを示す情報とをトレー管理テーブル7に格納する。
 上記の動作によって、ホストユニット21はパッケージストッカー4に保管されているトレー46のうち、より高い優先順位を持つトレー46を、パッケージ搬送装置3にとって、取り出すことがより容易な保管位置(ここでは保管場所#1)に保管されるように制御することができる。これにより、パッケージストッカー4の保管場所#1に保管されているトレー46が持つ優先順位が第2レベルの優先順位を上回ったとき、このトレー46をパッケージストッカー4からドライブ22に搬送するために必要とされる時間を短縮することができる。
 次に、パッケージ搬送装置3のバッファが使用な可能な場合における、ホストユニット21によって制御されるトレー46の搬送および着脱動作について説明する。図36は、本実施形態に係るストレージシステム1において実行される、トレー46の優先順位の変更に基づいてトレー46の位置をパッケージストッカー4とパッケージ搬送装置3とドライブ22のソケット222との間で変更する動作について説明するための図である。
 ホストユニット21は、半導体パッケージA、半導体パッケージB、…、半導体パッケージFまでの6個の半導体パッケージ41を管理している。また、ホストユニット21は、トレーa、トレーb、トレーcの3個のトレー46を管理している。ここで、半導体パッケージAは、最も優先順位が高い半導体パッケージ41であり、トレーaに収容されている。半導体パッケージBは、二番目に優先順位が高い半導体パッケージ41であり、トレーaに収容されている。半導体パッケージCは、三番目に優先順位が高い半導体パッケージ41であり、トレーbに収容されている。半導体パッケージDは、四番目に優先順位が高い半導体パッケージ41であり、トレーbに収容されている。半導体パッケージEは、五番目に優先順位が高い半導体パッケージ41であり、トレーcに収容されている。半導体パッケージFは、六番目に優先順が高い半導体パッケージ41であり、トレーcに収容されている。
 ここでは、ホストユニット21が、収容している所定個数の半導体パッケージ41が有する優先順位の平均が最も高いトレーaの優先順位を1位に決定し、収容している所定個数の半導体パッケージ41が有する優先順位の平均が二番目に高いトレーbの優先順位を2位に決定し、収容している所定個数の半導体パッケージ41が有する優先順位の平均が三番目に高いトレーcの優先順位を3に設定するものとする。
 ホストユニット21は、最も高い優先順位を有するトレーaをドライブ22に搬送して、トレーaに収容されている半導体パッケージA~Bをドライブ22の2つのソケット222、つまりソケット群#1、に装着するように、パッケージ搬送装置3に指示する。パッケージ搬送装置3は、トレーaをドライブ22に搬送し、トレーaに収容されている半導体パッケージA~Bをドライブ22のソケット群#1一括して装着する。ホストユニット21は、半導体パッケージA~Bを収容したトレーaがソケット群#1に存在することを示す情報をトレー管理テーブル7に格納する。
 このように、ドライブ22に含まれるソケット222の総数が、トレー46に収容されている半導体パッケージ41の数と等しい場合には、1位の優先順位を有するトレーaに収容された半導体パッケージA~Bが、ドライブ22のソケット群#1の2つのソケット222にそれぞれ装着される。この場合、1位の優先順位は、第1レベル優先順位に対応する。
 また、ホストユニット21は、2位の優先順位を有するトレーbを保持するようにパッケージ搬送装置3に指示する。2位の優先順位は、第1レベルの優先順位よりも低い第2レベルの優先順位に相当する。
 指示を受けたパッケージ搬送装置3(例えば、搬送ユニット#1)は、トレーbを保持する。これにより、2位の優先順位を有するトレー46は、パッケージ搬送装置3において保持される。つまり、トレーbを保持する搬送ユニット#1は、パッケージ搬送装置3のバッファ(バッファ#1)として使用される。
 ホストユニット21は、トレーbが、搬送ユニット#1(バッファ#1)に保持されていることを示す情報をトレー管理テーブル7に格納する。
 また、3位の優先順位を有するトレーcは、パッケージストッカー4に保管された状態にある。ホストユニット21は、パッケージ搬送装置3に、第1の保管場所に含まれる保管位置#1にトレーcを保管させる。ホストユニット21は、トレーcが保管位置#1に保管されていることを示す情報をトレー管理テーブル7に格納する。
 ここで、パッケージ搬送装置3のバッファ#1に保持されていたトレーbの優先順位が、トレーaの優先順位を上回ったときのホストユニット21の動作について説明する。図37は、本実施形態に係るストレージシステム1において実行される、トレー46の優先順位の変更に基づいてトレー46の位置をパッケージ搬送装置3とドライブ22のソケット222との間で変更する動作について説明するための図である。
 例えば、半導体パッケージAの優先順位が1位から3位に下がり、半導体パッケージBの優先順位が2位から4位に下がり、半導体パッケージCの優先順位が3位から1位に上がり、半導体パッケージDの優先順位が4位から2位に上がった場合を想定する。ホストユニット21は、アクセス要求の頻度などに基づいた所定のアルゴリズムを使用して、複数の半導体パッケージ41それぞれが有する優先順位を更新する。
 ホストユニット21は、複数の半導体パッケージ41それぞれが有する優先順位が更新されたことに応じて、複数のトレー46それぞれが有する優先順位を更新する。ここで、トレーbに収容されている半導体パッケージC~Dが有する優先順位がいずれも、トレーaに収容されている半導体パッケージA~Bが有する優先順位を上回ったため、ホストユニット21は、トレーbの優先順位がトレーaの優先順位よりも高くなるように、トレーa~bそれぞれの優先順位を更新する。これにより、トレーbは、最も高い優先順位(優先順位=1)を持ち、トレーaは、二番目に高い優先順位(優先順位=2)を持つ。
 そして、ホストユニット21は、トレーaに収容された半導体パッケージA~Bをソケット群#1の2つのソケット222から取り外すことと、トレーbをドライブ22に搬送してトレーbに収容された半導体パッケージC~Dをソケット群#1の2つのソケット222に装着することと、取り外したトレーaをパッケージ搬送装置3に保持することとを、パッケージ搬送装置3に指示する。パッケージ搬送装置3は、トレーaをソケット群#1から取り外すことによって、トレーaに収容された半導体パッケージA~Bをドライブ22のソケット群#1の2つのソケット222から一括して取り外す。そして、パッケージ搬送装置3は、搬送ユニット#1に保持されているトレーbをドライブ22に搬送して、トレーbに収容された半導体パッケージC~Dを、トレーaに収容された半導体パッケージA~Bが取り外されたソケット群#1の2つのソケット222に一括して装着する。取り外されたトレーaは、パッケージ搬送装置3(例えば搬送ユニット#1)によって保持された状態に維持される。
 上記の動作に応じて、ホストユニット21は、トレー管理テーブル7を更新する。具体的には、ホストユニット21は、トレーaがパッケージ搬送装置3の搬送ユニット#1(バッファ#1)に保持されていることを示す情報と、トレーbがソケット群#1に存在することを示す情報とをトレー管理テーブル7に格納する。
 次に、パッケージストッカー4に保管されているトレー46の優先順位がパッケージ搬送装置3のバッファに保持されているトレー46の優先順位を上回った場合の交換動作について説明する。図38は、本実施形態に係るストレージシステム1において実行される、トレー46の優先順位の変更に基づいてトレー46の位置をパッケージストッカー4とパッケージ搬送装置3との間で変更する動作について説明するための図である。
 ここでは、図36に示す状態において、例えば、トレーcの優先順位が3位から2位に上がり、トレーbの優先順位が2位から3位に下がった場合を想定する。トレーcの新優先順位(2位)は第2レベルの優先順位に属し、トレーbの新優先順位(3位)は第3レベルの優先順位に属する。したがって、ホストユニット21は、トレーbの位置とトレーcの位置とを交換するようにパッケージ搬送装置3に指示する。具体的には、まず、ホストユニット21は、トレーbをパッケージストッカー4の保管位置#1に搬送するようにパッケージ搬送装置3に指示し、さらに、トレーcを搬送ユニット#1に保持するようにパッケージ搬送装置3に指示する。指示を受けたパッケージ搬送装置3は、搬送ユニット#1が保持していたトレーbをパッケージストッカー4の保管位置#1に搬送する。そして、搬送ユニット#1は、パッケージストッカー4の保管位置#1に保管されているトレーcと、保持しているトレーbとを交換する。搬送ユニット#1は、バッファ#1として、トレーcを保持する。
 上記の動作に応じて、ホストユニット21は、トレー管理テーブル7を更新する。具体的には、ホストユニット21は、トレーbがパッケージストッカー4の保管位置#1に保管されていることを示す情報と、トレーcがパッケージ搬送装置3の搬送ユニット#1(バッファ#1)に保持されていることを示す情報と、をトレー管理テーブル7に格納する。
 上記の動作によって、ホストユニット21はパッケージストッカー4に保管されているトレー46のうち、より高い優先順位を持つトレー46に収容されている半導体パッケージ41を、パッケージ搬送装置3にあらかじめ保持させておくことができる。これにより、パッケージ搬送装置3に保持されているトレー46が持つ優先順位が、ドライブ22のソケット群#1に存在するトレー46が持つ優先順位を上回ったとき、パッケージ搬送装置3がパッケージストッカー4からトレー46を取り出すために必要とされる時間を無くすことができる。
 次に、トレー46に収容されている半導体パッケージ41の不揮発性メモリダイ411に対するデータの読み出し、または書き込み処理について説明する。図39は、本実施形態に係るストレージシステム1のホストユニット21によって実行される、トレー46に収容された所定個数の半導体パッケージ41のいずれかに含まれる不揮発性メモリダイ411に対するデータの読み出しまたは書き込み処理の手順を示すフローチャートである。
 まず、ホストユニット21は、アクセス対象の不揮発性メモリダイ411を含む半導体パッケージ41を決定する(ステップS41)。ここで、アクセス対象の不揮発性メモリダイ411は、アプリケーションプログラム211から受信されるリード要求またはライト要求に基づいて決定される。そして、このアクセス対象の不揮発性メモリダイ411を含む半導体パッケージ41がステップS41で決定される。
 そして、ホストユニット21は、は、ステップS41で決定された半導体パッケージ41を収容するトレー46を特定する(ステップS42)。ステップS42では、ホストユニット21は、半導体パッケージ管理テーブル6を参照することによって、決定された半導体パッケージ41を収容するトレー46のトレー識別名を取得する。これにより、ホストユニット21は、決定された半導体パッケージ41を収容するトレー46を特定することができる。
 ホストユニット21は、ステップS42で特定されたトレー46がドライブ22のソケット群に装着されているか否か、つまり、特定されたトレー46に収容された所定個数の半導体パッケージ41がドライブ22の所定個数のソケット222に装着されているか否かを判定する(ステップS43)。ステップS43では、ホストユニット21は、トレー管理テーブル7を参照することによって、特定されたトレー46の状態を示す情報を取得する。これにより、ホストユニット21は、特定されたトレー46がドライブ22のソケット群に装着されているか否かを判定し得る。
 特定されたトレー46がドライブ22のソケット群に装着されている場合(ステップS43でYes)、ホストユニット21は、コントローラ223を介して、特定されたトレー46に収容された決定された半導体パッケージ41に含まれるアクセス対象の不揮発性メモリダイ411に対するデータの読み出しまたは書き込みを実行する(ステップS45)。
 特定されたトレー46がドライブ22のソケット群に装着されていない場合(ステップS43でNo)、ホストユニット21は、パッケージ搬送装置3に、特定されたトレー46をパッケージストッカー4からドライブ22に搬送させ、特定されたトレー46に収容された所定個数の半導体パッケージ41をドライブ22の所定個数のソケット222に装着させる(ステップS44)。
 パッケージ搬送装置3によって所定個数のソケット222にトレー46に収容された所定個数の半導体パッケージ41が装着された場合、ホストユニット21は、ドライブ22内のバーコードリーダを使用して、このトレー46のバーコードからトレー識別子(トレー識別名)を読み取る。そして、ホストユニット21は、読み取ったトレー識別名が、特定されたトレー46のトレー識別名に一致するか否かを判定する。
 読み取ったトレー識別名が特定されたトレー46のトレー識別名に一致した場合、ホストユニット21は、さらに、このトレー46に収容されている決定された半導体パッケージ41に格納されているパッケージ識別子を、コントローラ223を介して読み出し、読み出したパッケージ識別子が、決定された半導体パッケージ41のパッケージ識別子に一致するか否かを判定してもよい。そして、読み出したパッケージ識別子が、決定された半導体パッケージ41のパッケージ識別子に一致した場合、ホストユニット21は、コントローラ223を介して、特定されたトレー46に収容された決定された半導体パッケージ41に含まれるアクセス対象の半導体メモリダイ411に対するデータの読み出しまたは書き込みを実行する(ステップS45)。
 図40は、本実施形態に係るストレージシステム1のホストユニット21によって実行される、トレー46に収容された所定個数の半導体パッケージ41のいずれかに含まれる不揮発性メモリダイ411に対するデータの読み出しまたは書き込み処理の手順の詳細を示すフローチャートである。
 まず、ホストユニット21は、アクセス対象の不揮発性メモリダイ411を含む半導体パッケージ41を決定する(ステップS51)。
 ホストユニット21は、ステップS51で決定された半導体パッケージ41を収容しているトレー46を特定する(ステップS52)。ステップS52では、ホストユニット21は、半導体パッケージ管理テーブル6を参照することによって、決定された半導体パッケージ41を収容するトレー46のトレー識別名を取得する。これにより、ホストユニット21は決定された半導体パッケージ41を収容するトレー46を特定することができる。
 ホストユニット21は、ステップS52で特定されたトレー46がドライブ22のソケット群に装着されているか否か、つまり、特定されたトレー46に収容された所定個数の半導体パッケージ41がドライブ22の所定個数のソケット222に装着されているか否かを判定する(ステップS53)。ステップS53では、ホストユニット21は、トレー管理テーブル7を参照することによって、ステップS52で特定されたトレー46の状態を示す情報を取得する。これにより、ホストユニット21は、特定されたトレー46がドライブ22のソケット群に装着されているか否かを判定し得る。
 特定されたトレー46がドライブ22のソケット群に装着されている場合(ステップS53でYes)、ホストユニット21は、コントローラ223を介して、特定されたトレー46に収容された決定された半導体パッケージ41に含まれるアクセス対象の不揮発性メモリダイ411に対するデータの読み出しまたは書き込みを実行する(ステップS54)。
 特定されたトレー46がドライブ22のソケット群に装着されていない場合(ステップS53でNo)、ホストユニット21は、ドライブ22に空きソケット群があるか否かを確認する(ステップS55)。空きソケット群は、いずれの半導体パッケージ41も装着されていない所定個数のソケット222である。
 ドライブ22に空きソケット群がある場合(ステップS55でYes)、ホストユニット21は、パッケージ搬送装置3に、特定されたトレー46をパッケージストッカー4からドライブ22に搬送させ、特定されたトレー46に収容された所定個数の半導体パッケージ41を空きソケット群である所定個数のソケット222に装着させる(ステップS56)。この場合、ホストユニット21は、特定されたトレー46をパッケージストッカー4から取り出すことと、特定されたトレー46をドライブ22に搬送して空きソケット群に装着することとをパッケージ搬送装置3に指示する。
 パッケージ搬送装置3によってトレー46に収容された所定個数の半導体パッケージ41がドライブ22の所定個数のソケット222に装着された場合、ホストユニット21は、ドライブ22内のバーコードリーダを使用して、このトレー46のバーコードからトレー識別子(トレー識別名)を読み取る。そして、ホストユニット21は、読み取ったトレー識別名が、特定されたトレー46のトレー識別名に一致するか否かを判定する。
 読み取ったトレー識別名が特定されたトレー46のトレー識別名に一致した場合、ホストユニット21は、特定されたトレー46がドライブ22のソケット群に装着されていることを示す情報をトレー管理テーブル7に格納する。
 読み取ったトレー識別名が特定されたトレー46のトレー識別名に一致した場合、ホストユニット21は、さらに、このトレー46に収容されている決定された半導体パッケージ41に格納されているパッケージ識別子を、コントローラ223を介して読み出し、読み出したパッケージ識別子が、決定された半導体パッケージ41のパッケージ識別子と一致するか否かを判定してもよい。そして、読み出したパッケージ識別子が、決定された半導体パッケージ41のパッケージ識別子に一致した場合、ホストユニット21は、コントローラ223を介して、特定されたトレー46に収容された決定された半導体パッケージ41に含まれるアクセス対象の半導体メモリダイ411に対するデータの読み出しまたは書き込みを実行する(ステップS54)。
 ドライブ22に空きソケット群がない場合(ステップS55でNo)、ホストユニット21は、ドライブ22のソケット群に装着されているトレー46の中に、特定されたトレー46の優先順位よりも低い優先順位を持つトレー46が存在するか否かを判定する(ステップS57)。
 ドライブ22のソケット群に装着されているトレー46の中に、特定されたトレー46の優先順位よりも低い優先順位を持つトレー46が存在しない場合(ステップS57でNo)、ホストユニット21は、ステップS55の処理を再度実行する。ホストユニット21は、各トレー46の優先順位の変更によって、ドライブ22のソケット群に装着されているトレー46の中に、特定されたトレー46の優先順位よりも低い優先順位を持つトレー46が存在するようになるまで待つ。
 ドライブ22のソケット群に装着されているトレー46の中に、特定されたトレー46の優先順位よりも低い優先順位を持つトレー46が存在する場合(ステップS57でYes)、ホストユニット21は、パッケージ搬送装置3に、ドライブ22のソケット群に装着されているトレー46のうち、最も低い優先順位を持つトレー46をソケット群から取り外させ、そして、取り外されたトレー46をパッケージストッカー4へ搬送させる(ステップS58)。これにより、このトレー46が取り外されたソケット群は、所定個数のソケットを含む空きソケット群になる。
 そして、ホストユニット21は、パッケージ搬送装置3に、特定されたトレー46をパッケージストッカー4からドライブ22に搬送させ、特定されたトレー46に収容されている所定個数の半導体パッケージ41を、空きソケット群に装着させる(ステップ56)。この場合、ホストユニット21は、特定されたトレー46をパッケージストッカー4から取り出すことと、特定されたトレー46をドライブ22ら搬送してソケット群に装着することとを、パッケージ搬送装置3に指示する。
 パッケージ搬送装置3によってソケット群にトレー46が装着された場合、ホストユニット21は、ドライブ22内のバーコードリーダを使用して、このトレー46のバーコードからトレー識別子(トレー識別名)を読み取る。そして、ホストユニット21は、読み取ったトレー識別名が、特定されたトレー46のトレー識別名に一致するか否かを判定する。
 読み取ったトレー識別名が特定されたトレー46のトレー識別名に一致した場合、ホストユニット21は、特定されたトレー46がドライブ22のソケット群に装着されていることを示す情報をトレー管理テーブル7に格納する。
 読み取ったトレー識別名が特定されたトレー46のトレー識別名に一致した場合、ホストユニット21は、さらに、このトレー46に収容されている決定された半導体パッケージ41に格納されているパッケージ識別子を、コントローラ223を介して読み出し、読み出したパッケージ識別子が、決定された半導体パッケージ41のパッケージ識別子と一致するか否かを判定してもよい。そして、読み出したパッケージ識別子が、決定された半導体パッケージ41のパッケージ識別子に一致した場合、ホストユニット21は、コントローラ223を介して、特定されたトレー46に収容された決定された半導体パッケージ41に含まれるアクセス対象の半導体メモリダイ411に対するデータの読み出しまたは書き込みを実行する(ステップS54)。
 これにより、ドライブ22に空きソケット群がない場合であっても、ホストユニット21は、特定されたトレー46が持つ優先順位よりも低い優先順位をもつトレー46をソケット群から取り外すことで、特定されたトレー46に収容されている所定個数の半導体パッケージ41を、ドライブ22の所定個数のソケット222に装着させることができる。
 次に、パッケージ搬送装置3のバッファを使用可能な場合における、トレー46に収容されている決定された半導体パッケージ41に含まれる不揮発性メモリダイ411に対するデータの読み出し、または書き込み処理について説明する。図41A、および図41Bは、本実施形態に係るストレージシステム1のホストユニット21によって実行される不揮発性メモリダイ411に対するデータの読み出しまたは書き込み処理の別の手順を示すフローチャートである。
 まず、ホストユニット21は、アクセス対象の不揮発性メモリダイ411を含む半導体パッケージ41を決定する(ステップS601)。
 ホストユニット21は、ステップS601で決定された半導体パッケージ41を収容しているトレー46を特定する(ステップS602)。ステップS602では、ホストユニット21は、半導体パッケージ管理テーブル6を参照することによって、決定された半導体パッケージ41を収容するトレー46のトレー識別名を取得する。これにより、ホストユニット21は決定された半導体パッケージ41を収容するトレー46を特定することができる。
 ホストユニット21は、ステップS602で特定されたトレー46がドライブ22のソケット群に装着されているか否か、つまり、特定されたトレー46に収容された所定個数の半導体パッケージ41がドライブ22の所定個数のソケット222に装着されているか否かを判定する(ステップS603)。ステップS603では、ホストユニット21は、トレー管理テーブル7を参照することによって、ステップS602で特定されたトレー46の状態を示す情報を取得する。これにより、ホストユニット21は、特定されたトレー46がドライブ22のソケット群に装着されているか否かを判定し得る。
 特定されたトレー46がドライブ22のソケット群に装着されている場合(ステップS603でYes)、ホストユニット21は、コントローラ223を介して、特定されたトレー46に収容された決定された半導体パッケージ41に含まれるアクセス対象の不揮発性メモリダイ411に対するデータの読み出しまたは書き込みを実行する(ステップS604)。
 特定されたトレー46がドライブ22のソケット群に装着されていない場合(ステップS603でNo)、ホストユニット21は、ドライブ22に空きソケット群があるか否かを確認する(ステップS605)。
 ドライブ22に空きソケット群がある場合(ステップS605でYes)、ホストユニット21は、図41BのステップS606の処理を実行する。
 ドライブ22に空きソケット群がない場合(ステップS605でNo)、ホストユニット21は、ドライブ22のソケット群に装着されているトレー46の中に、特定されたトレー46の優先順位よりも低い優先順位を持つトレー46が存在するか否かを判定する(ステップS608)。
 ドライブ22のソケット群に装着されているトレー46の中に、特定されたトレー46よりも低い優先順位を持つトレー46が存在しない場合(ステップS608でNo)、ホストユニット21は、ステップS605の処理を再度実行する。ホストユニット21は、各トレー46の優先順位の変更によって、ドライブ22のソケット群に装着されているトレー46の中に、特定されたトレー46の優先順位よりも低い優先順位を持つトレー46が存在するようになるまで待つ。
 ドライブ22のソケット群に装着されているトレー46の中に、特定されたトレー46の優先順位よりも低い優先順位を持つトレー46が存在する場合(ステップS608でYes)、ホストユニット21は、パッケージ搬送装置3に、特定されたトレー46の優先順位よりも低い優先順位を持つトレー46をソケット群から取り外させ、そして取り外されたトレー46をパッケージ搬送装置3のバッファに搬送させる(ステップS609)。これにより、ソケット群から取り外されたトレー46は、パッケージストッカー4に保管されずに、パッケージ搬送装置3に保持される。また、トレー46が取り外されたソケット群は、空きソケット群になる。そして、ホストユニット21は、図41BのステップS606の処理を実行する。
 ホストユニット21は、特定されたトレー46がパッケージ搬送装置3のバッファに存在するか否か、つまり、特定されたトレー46がパッケージ搬送装置3において保持されているか否かを判定する(ステップS606)。
 特定されたトレー46がパッケージ搬送装置3のバッファに存在する場合、つまり、特定されたトレー46がパッケージ搬送装置3のいずれかの搬送ユニット31に保持されている場合(ステップS606でYes)、ホストユニット21は、パッケージ搬送装置3に、特定されたトレー46をパッケージ搬送装置3のバッファからドライブ22に搬送させ、特定されたトレー46に収容されている所定個数の半導体パッケージ41を、空きソケット群である所定個数のソケット222に装着させる(ステップS607)。この場合、ホストユニット21は、特定されたトレー46を保持している搬送ユニット31に、特定されたトレー46をドライブ22に搬送して所定個数の半導体パッケージ41をドライブ22の所定個数のソケット222に装着するように指示する。
 搬送ユニット31によってトレー46の所定個数の半導体パッケージ41がドライブ22の所定個数のソケット222に装着された場合、ホストユニット21は、ドライブ22内のバーコードリーダを使用して、このトレー46のバーコードからトレー識別子(トレー識別名)を読み取る。そして、ホストユニット21は、読み取ったトレー識別名が、特定されたトレー46のトレー識別名に一致するか否かを判定する。
 読み取ったトレー識別名が特定されたトレー46のトレー識別名に一致した場合、ホストユニット21は、特定されたトレー46がドライブ22のソケット群に装着されていることを示す情報をトレー管理テーブル7に格納する。
 読み取ったトレー識別名が特定されたトレー46のトレー識別名に一致した場合、ホストユニット21は、さらに、このトレー46に収容されている決定された半導体パッケージ41に格納されているパッケージ識別子を、コントローラ223を介して読み出し、読み出したパッケージ識別子が、決定された半導体パッケージ41のパッケージ識別子と一致するか否かを判定してもよい。そして、読み出したパッケージ識別子が、決定された半導体パッケージ41のパッケージ識別子に一致した場合、ホストユニット21は、コントローラ223を介して、特定されたトレー46に収容された決定された半導体パッケージ41に含まれるアクセス対象の半導体メモリダイ411に対するデータの読み出しまたは書き込みを実行する(図41AのステップS604)。
 特定されたトレー46がパッケージ搬送装置3のいずれのバッファにも存在しない場合、つまり、特定されたトレー46がパッケージ搬送装置3のいずれの搬送ユニット31にも保持されていない場合(ステップS606でNo)、ホストユニット21は、パッケージ搬送装置3に空きのバッファがあるか否かを確認する(ステップS610)。パッケージ搬送装置3の空きのバッファは、トレー46を保持していない搬送ユニット31である。
 パッケージ搬送装置3に空きのバッファがある場合、つまり、トレー46を保持していない搬送ユニット31が存在する場合(ステップS610でYes)、ホストユニット21は、パッケージ搬送装置3に、特定されたトレー46をパッケージストッカー4からパッケージ搬送装置3の空きのバッファ、つまり、トレー46を保持していない搬送ユニット31、に搬送させる(ステップS611)。この場合、ホストユニット21は、トレー46を保持していない搬送ユニット31に、特定されたトレー46をパッケージストッカー4から取り出すように指示してもよい。これにより、特定されたトレー46は、この搬送ユニット31によって保持されるので、特定されたトレー46がパッケージ搬送装置3のバッファに存在している状態となる。
 そして、ホストユニット21は、パッケージ搬送装置3に、特定されたトレー46をパッケージ搬送装置3のバッファからドライブ22に搬送させ、特定されたトレー46に収容された所定個数の半導体パッケージ41をドライブ22の所定個数のソケット222に装着させる(ステップS607)。
 搬送ユニット31によってトレー46に収容された所定個数の半導体パッケージ41がドライブ22の所定個数のソケット222に装着された場合、ホストユニット21は、ドライブ22内のバーコードリーダを使用して、このトレー46のバーコードからトレー識別子(トレー識別名)を読み取る。そして、ホストユニット21は、読み取ったトレー識別名が、特定されたトレー46のトレー識別名に一致するか否かを判定する。
 読み取ったトレー識別名が特定されたトレー46のトレー識別名に一致した場合、ホストユニット21は、特定されたトレー46がドライブ22のソケット群に装着されていることを示す情報をトレー管理テーブル7に格納する。
 読み取ったトレー識別名が特定されたトレー46のトレー識別名に一致した場合、ホストユニット21は、さらに、このトレー46に収容されている半導体パッケージ41に格納されているパッケージ識別子を、コントローラ223を介して読み出し、読み出したパッケージ識別子が、決定された半導体パッケージ41のパッケージ識別子と一致するか否かを判定してもよい。そして、読み出したパッケージ識別子が、決定された半導体パッケージ41のパッケージ識別子に一致した場合、ホストユニット21は、コントローラ223を介して、特定されたトレー46に収容された決定された半導体パッケージ41に含まれるアクセス対象の半導体メモリダイ411に対するデータの読み出しまたは書き込みを実行する(図41AのステップS604)。
 パッケージ搬送装置3に空きのバッファが存在しない場合(ステップS610でNo)、ホストユニット21は、パッケージ搬送装置3のバッファに保持されているトレー46の中に、特定されたトレー46の優先順位よりも低い優先順位を持つトレー46が存在するか否かを判定する(ステップS612)。
 パッケージ搬送装置3のバッファに保持されているトレー46の中に、特定されたトレー46の優先順位よりも低い優先順位を持つトレー46が存在しない場合(ステップS612でNo)、ホストユニット21は、ステップS610の処理を再度実行する。ホストユニット21は、各トレー46の優先順位の変更によって、パッケージ搬送装置3のバッファに保持されているトレー46の中に、特定されたトレー46の優先順位よりも低い優先順位を持つトレー46が存在するようになるまで待つ。
 パッケージ搬送装置3のバッファに保持されているトレー46の中に、特定されたトレー46よりも低い優先順位を持つトレー46が存在する場合(ステップS612でYes)、ホストユニット21は、パッケージ搬送装置3に、パッケージ搬送装置3のバッファに保持されているトレー46のうち、最も低い優先順位を持つトレー46をパッケージストッカー4に搬送させる(ステップS613)。ステップS613では、ホストユニット21は、最も低い優先順位を持つトレー46を保持している搬送ユニット31に、トレー46をパッケージストッカー4に搬送するように指示してもよい。これにより、この搬送ユニット31は、トレー46を保持していない空きのバッファになる。
 そして、ホストユニット21は、パッケージ搬送装置3に、特定されたトレー46をパッケージストッカー4からパッケージ搬送装置3の空きのバッファに搬送させる。この場合、ホストユニット21は、空きのバッファになった搬送ユニット31に、特定されたトレー46をパッケージストッカー4から取り出すように指示してもよい。これにより、特定されたトレー46はこの搬送ユニット31によって保持されるので、特定されたトレー46がパッケージ搬送装置3のバッファに存在している状態となる。
 そして、ホストユニット21は、パッケージ搬送装置3に、特定されたトレー46をパッケージ搬送装置3のバッファからドライブ22に搬送させ、特定されたトレー46に収容された所定個数の半導体パッケージ41をドライブ22の所定個数のソケット222に装着させる(ステップS607)。
 搬送ユニット31によってトレー46に収容された所定個数の半導体パッケージ41がドライブ22の所定個数のソケット222に装着された場合、ホストユニット21は、ドライブ22内のバーコードリーダを使用して、このトレー46のバーコードからトレー識別子(トレー識別名)を読み取る。そして、ホストユニット21は、読み取ったトレー識別名が、特定されたトレー46のトレー識別名に一致するか否かを判定する。
 読み取ったトレー識別名が特定されたトレー46のトレー識別名に一致した場合、ホストユニット21は、特定されたトレー46がドライブ22のソケット群に装着されていることを示す情報をトレー管理テーブル7に格納する。
 読み取ったトレー識別名が特定されたトレー46のトレー識別名に一致した場合、ホストユニット21は、さらに、このトレー46に収容されている半導体パッケージ41に格納されているパッケージ識別子を、コントローラ223を介して読み出し、読み出したパッケージ識別子が、決定された半導体パッケージ41のパッケージ識別子と一致するか否かを判定してもよい。そして、読み出したパッケージ識別子が、決定された半導体パッケージ41のパッケージ識別子に一致した場合、ホストユニット21は、コントローラ223を介して、特定されたトレー46に収容された決定された半導体パッケージ41に含まれるアクセス対象の半導体メモリダイ411に対するデータの読み出しまたは書き込みを実行する(図41AのステップS604)。
 以上説明したように、第2の実施形態に係るストレージシステム1は、所定個数の半導体パッケージ41を収容するトレー46を使用することによって、所定個数の半導体パッケージ41をまとめて保管、搬送、および着脱することができる。ホストユニット21は、ストレージシステム1で管理されているトレー46の中から、アクセス対象の不揮発性メモリダイ411を含む半導体パッケージ41を収容しているトレー46を決定する。
 決定されたトレー46に収容されている所定個数の半導体パッケージ41が、ドライブ22の所定個数のソケット222に装着されている場合、ホストユニット21は、アクセス対象の不揮発性メモリダイ411に対するデータの読み出しまたは書き込みを実行する。
 特定されたトレー46に収容されている所定個数の半導体パッケージ41が、ドライブ22の所定個数のソケット222に装着されておらず、且つ、特定されたトレー46がパッケージストッカー4に保管されている場合、ホストユニット21は、パッケージ搬送装置3に、特定されたトレー46をドライブ22に搬送させ、特定されたトレー46に収容されている所定個数の半導体パッケージ41をドライブ22の所定個数のソケット222に装着させる。
 このように、本実施形態のストレージシステム1においては、ホストユニット21は、トレー46に収容されている半導体パッケージ41の個数の単位で、ドライブ22のソケット222に接続されている半導体パッケージ41を別の半導体パッケージ41に交換することができる。
 これにより、複数の半導体パッケージ41を、トレー46に収容されている半導体パッケージ41の個数の単位で管理、搬送、着脱することができるので、複数の半導体パッケージ41の管理および搬送をより効率良く実行することができる。
 本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
 1 ストレージシステム
 2 ストレージリードライト装置
 3 パッケージ搬送装置
 4 パッケージストッカー
 5 管理サーバ
 6 半導体パッケージ管理テーブル
 7 トレー管理テーブル
 21 ホストユニット(ホスト装置)
 22 ドライブ
 31 搬送ユニット
 41 半導体パッケージ
 46 トレー
 222 ソケット
 223 コントローラ
 411 不揮発性メモリダイ

Claims (17)

  1.  1以上の不揮発性メモリダイをそれぞれが含む複数の半導体パッケージを保管可能なパッケージストッカーと、
     前記半導体パッケージを着脱可能に装着するように構成された少なくとも一つのソケットと、前記ソケットに装着された前記半導体パッケージの前記1以上の不揮発性メモリダイを制御するコントローラと、を含むドライブと、
     前記ドライブに通信可能に接続され、前記半導体パッケージの前記1以上の不揮発性メモリダイに対するデータの読み出しおよび書き込みを、前記コントローラを介して実行するように構成されたホスト装置と、
     前記パッケージストッカーと前記ドライブとの間で前記半導体パッケージを搬送するように構成されたパッケージ搬送装置と、
    を具備し、
     前記ホスト装置は、
      前記複数の半導体パッケージのうち、アクセス対象である第1不揮発性メモリダイを含む第1半導体パッケージを決定し、
      前記第1半導体パッケージが前記ドライブの前記ソケットに装着されている場合、前記コントローラを介して前記第1不揮発性メモリダイに対するデータの読み出しまたは書き込みを実行し、
      前記第1半導体パッケージが前記ドライブの前記ソケットに装着されていない場合、前記パッケージ搬送装置に、前記第1半導体パッケージを前記ドライブの前記ソケットに搬送させて装着させる
    ストレージシステム。
  2.  前記ホスト装置は、
     前記第1半導体パッケージが前記ドライブの前記ソケットに装着されておらず、且つ、前記ドライブに空きソケットがある場合、前記パッケージ搬送装置に、前記第1半導体パッケージを前記ドライブの前記空きソケットに搬送させて装着させ、
     前記第1半導体パッケージが前記ドライブの前記ソケットに装着されておらず、且つ、前記ドライブに空きソケットがない場合、前記パッケージ搬送装置に、前記ソケットに装着されている前記半導体パッケージを前記ソケットから取り外させ、前記パッケージ搬送装置に、前記第1半導体パッケージを、前記半導体パッケージが取り外された前記ドライブの前記ソケットに搬送させて装着させる
    請求項1に記載のストレージシステム。
  3.  前記ホスト装置は、
     前記複数の半導体パッケージそれぞれの優先順位を管理し、
     第1レベルの優先順位を有する前記半導体パッケージが前記ドライブの前記ソケットに装着され、前記第1レベルの優先順位よりも低い第2レベルの優先順位を有する前記半導体パッケージが前記パッケージ搬送装置において保持され、前記第2レベルの優先順位よりも低い第3レベルの優先順位を有する前記半導体パッケージが前記パッケージストッカーに保管されるように、前記複数の半導体パッケージそれぞれの優先順位に基づいて、前記複数の半導体パッケージそれぞれが存在する位置を制御する
    請求項1に記載のストレージシステム。
  4.  前記パッケージストッカーは第1の保管場所と第2の保管場所とを含み、
     前記ホスト装置は、
     前記第3レベルの優先順位を有する前記半導体パッケージが前記パッケージストッカーの前記第1の保管場所に保管され、前記第3レベルの優先順位よりも低い第4レベルの優先順位を有する前記半導体パッケージが前記パッケージストッカーの前記第2の保管場所に保管されるように、前記複数の半導体パッケージそれぞれの優先順位に基づいて、前記複数の半導体パッケージそれぞれが存在する位置を制御する
    請求項3に記載のストレージシステム。
  5.  前記第1の保管場所と前記パッケージ搬送装置との距離は、前記第2の保管場所と前記パッケージ搬送装置との距離よりも短い
    請求項4に記載のストレージシステム。
  6.  前記パッケージストッカーは、第1個数の前記半導体パッケージをそれぞれが収容する複数のトレーを保管可能に構成され、前記第1個数は2以上であり、
     前記ドライブは、前記トレーに収容されたままの前記第1個数の前記半導体パッケージを一括して着脱可能な、前記第1個数の前記ソケットを含み、
     前記ホスト装置は、
      前記複数のトレーのうち、前記第1半導体パッケージを収容する第1トレーを特定し、
      前記第1トレーに収容された前記第1個数の前記半導体パッケージが前記ドライブの前記第1個数の前記ソケットに装着されている場合、前記コントローラを介して前記第1不揮発性メモリダイに対するデータの読み出しまたは書き込みを実行し、
      前記第1トレーに収容された前記第1個数の前記半導体パッケージが前記ドライブの前記第1個数の前記ソケットに接続されていない場合、前記パッケージ搬送装置に、前記第1トレーを前記ドライブに搬送させ、前記第1トレーに収容された前記第1個数の前記半導体パッケージを前記第1個数の前記ソケットに装着させる
    請求項1に記載のストレージシステム。
  7.  前記ホスト装置は、
     前記複数の半導体パッケージそれぞれの優先順位に基づいて決定される前記複数のトレーそれぞれの優先順位を管理し、
     第1レベルの優先順位を有する前記トレーに収容された前記第1個数の前記半導体パッケージが前記ドライブの前記第1個数の前記ソケットに装着され、前記第1レベルの優先順位よりも低い第2レベルの優先順位を有する前記トレーが前記パッケージ搬送装置において保持され、前記第2レベルの優先順位よりも低い第3レベルの優先順位を有する前記トレーが前記パッケージストッカーに含まれる第1の保管場所に保管され、前記第3レベルの優先順位よりも低い第4レベルの優先順位を有する前記トレーが前記パッケージストッカーに含まれる第2の保管場所に保管されるように、前記複数のトレーそれぞれの優先順位に基づいて、前記複数のトレーそれぞれが存在する位置を制御する
    請求項6に記載のストレージシステム。
  8.  前記第1の保管場所と前記パッケージ搬送装置との距離は、前記第2の保管場所と前記パッケージ搬送装置との距離よりも短い
    請求項7に記載のストレージシステム。
  9.  前記パッケージストッカーは、前記パッケージストッカーの外部から前記パッケージストッカーへの前記トレーの追加、および、前記パッケージストッカーから前記パッケージストッカーの外部への前記トレーの排出、に使用されるトレー出し入れ口を含む
    請求項6に記載のストレージシステム。
  10.  前記パッケージストッカーは、前記トレーが載置可能な、互いに平行に延びた少なくとも一対のレールを含み、
     前記一対のレール上に載置された前記トレーは前記一対のレールに沿って移動可能である
    請求項9に記載のストレージシステム。
  11.  前記パッケージ搬送装置は前記トレー出し入れ口に対向し、
     前記パッケージストッカーの前記一対のレールは、前記トレー出し入れ口から前記パッケージ搬送装置へ向かう方向に延びている
    請求項10に記載のストレージシステム。
  12.  前記半導体パッケージは、第1の面と、前記第1の面とは反対側の第2の面と、前記第2の面に配置された複数のボール型金属端子とを含み、
     前記トレーは、前記半導体パッケージの前記複数のボール型金属端子が露出される開口が形成された面を有する
    請求項6に記載のストレージシステム。
  13.  前記半導体パッケージは、第1の面と、前記第1の面とは反対側の第2の面と、前記第2の面に配置された複数のボール型金属端子とを含み、
     前記ドライブは、少なくとも前記第1個数のソケットが配置された基板をさらに含み、
     前記基板は1以上の第1の凹部を含み、
     前記トレーは、前記半導体パッケージの前記複数のボール型金属端子が露出される開口が形成された下面を有し、前記トレーの前記下面は、前記ドライブの前記基板の前記1以上の第1の凹部にそれぞれ嵌まる1以上の第1の凸部を含む
    請求項6に記載のストレージシステム。
  14.  蓋部材をさらに具備し、前記蓋部材は1以上の第2の凹部を含み、
     前記トレーは、前記下面とは反対側の上面を有し、前記トレーの前記上面は1以上の第2の凸部を含み、
     前記基板上に置かれた前記トレーは、前記蓋部材の前記1以上の第2の凹部と、前記トレーの前記上面の前記1以上の第2の凸部とが嵌るように、前記蓋部材によって覆われる
    請求項13に記載のストレージシステム。
  15.  前記半導体パッケージは、複数の不揮発性メモリダイを含む
    請求項1に記載のストレージシステム。
  16.  前記半導体パッケージは、第1の面と、前記第1の面とは反対側の第2の面と、前記第2の面に配置された複数のボール型金属端子と、を含み、前記複数のボール型金属端子は前記複数の不揮発性メモリダイそれぞれのチャンネル端子に接続される
    請求項15に記載のストレージシステム。
  17.  前記ホスト装置は、
     前記パッケージストッカーに保管されている前記半導体パッケージに格納されているデータの量を管理するための第1のプログラムを実行するように構成されたプロセッサを含む
    請求項1に記載のストレージシステム。
PCT/JP2021/032273 2021-09-02 2021-09-02 ストレージシステム WO2023032121A1 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
PCT/JP2021/032273 WO2023032121A1 (ja) 2021-09-02 2021-09-02 ストレージシステム
EP21956010.9A EP4383082A1 (en) 2021-09-02 2021-09-02 Storage system
CN202180098859.9A CN117396855A (zh) 2021-09-02 2021-09-02 储存系统
JP2023544910A JPWO2023032121A1 (ja) 2021-09-02 2021-09-02
TW110143355A TWI813076B (zh) 2021-09-02 2021-11-22 儲存系統
US18/592,235 US20240201660A1 (en) 2021-09-02 2024-02-29 Storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/032273 WO2023032121A1 (ja) 2021-09-02 2021-09-02 ストレージシステム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/592,235 Continuation US20240201660A1 (en) 2021-09-02 2024-02-29 Storage system

Publications (1)

Publication Number Publication Date
WO2023032121A1 true WO2023032121A1 (ja) 2023-03-09

Family

ID=85410830

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/032273 WO2023032121A1 (ja) 2021-09-02 2021-09-02 ストレージシステム

Country Status (6)

Country Link
US (1) US20240201660A1 (ja)
EP (1) EP4383082A1 (ja)
JP (1) JPWO2023032121A1 (ja)
CN (1) CN117396855A (ja)
TW (1) TWI813076B (ja)
WO (1) WO2023032121A1 (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000030433A (ja) * 1998-07-09 2000-01-28 Sony Corp メモリカードとそのチェンジャー装置
JP2005517236A (ja) 2002-02-05 2005-06-09 株式会社アサカ データストレージシステム
JP2016081332A (ja) 2014-10-17 2016-05-16 株式会社日立エルジーデータストレージ 計算機システムおよび装置管理サーバ
US10467163B1 (en) 2015-10-27 2019-11-05 Pavilion Data Systems, Inc. Solid state drive multiplexer
US20190387291A1 (en) 2016-07-22 2019-12-19 Intel Corporation Robotically serviceable computing rack and sleds
JP2020149667A (ja) * 2019-03-13 2020-09-17 廣達電腦股▲ふん▼有限公司Quanta Computer Inc. オフボードフラッシュメモリ

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003197697A (ja) * 2001-12-28 2003-07-11 Hitachi Ltd 半導体装置の製造方法
JP2005181222A (ja) * 2003-12-22 2005-07-07 Renesas Technology Corp 半導体装置の製造方法
US7867791B2 (en) * 2005-07-29 2011-01-11 Semiconductor Energy Laboratory Co., Ltd. Manufacturing method of semiconductor device using multiple mask layers formed through use of an exposure mask that transmits light at a plurality of intensities
JP2014053056A (ja) * 2012-09-06 2014-03-20 Toshiba Corp 半導体記憶装置
TWI716685B (zh) * 2017-05-22 2021-01-21 旺宏電子股份有限公司 電子系統及其操作方法
US11559985B2 (en) * 2019-02-06 2023-01-24 Hewlett-Packard Development Company, L.P. Integrated circuit with address drivers for fluidic die
JP7274350B2 (ja) * 2019-05-28 2023-05-16 東京エレクトロン株式会社 搬送システム、検査システム及び検査方法
US11527425B2 (en) * 2019-12-31 2022-12-13 Taiwan Semiconductor Manufacturing Co., Ltd. Systems and methods for tray cassette warehousing

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000030433A (ja) * 1998-07-09 2000-01-28 Sony Corp メモリカードとそのチェンジャー装置
JP2005517236A (ja) 2002-02-05 2005-06-09 株式会社アサカ データストレージシステム
JP2016081332A (ja) 2014-10-17 2016-05-16 株式会社日立エルジーデータストレージ 計算機システムおよび装置管理サーバ
US10467163B1 (en) 2015-10-27 2019-11-05 Pavilion Data Systems, Inc. Solid state drive multiplexer
US20190387291A1 (en) 2016-07-22 2019-12-19 Intel Corporation Robotically serviceable computing rack and sleds
JP2020149667A (ja) * 2019-03-13 2020-09-17 廣達電腦股▲ふん▼有限公司Quanta Computer Inc. オフボードフラッシュメモリ

Also Published As

Publication number Publication date
US20240201660A1 (en) 2024-06-20
TWI813076B (zh) 2023-08-21
TW202312454A (zh) 2023-03-16
JPWO2023032121A1 (ja) 2023-03-09
CN117396855A (zh) 2024-01-12
EP4383082A1 (en) 2024-06-12

Similar Documents

Publication Publication Date Title
US8456123B2 (en) Conveyance system and automated manufacturing system
US5970030A (en) Automated data storage library component exchange using media accessor
KR20100134123A (ko) 디스크 드라이브 테스트 시스템 내에서의 진동 차단
EP0341038B1 (en) A method of operating a storage and retrieval mechanism
KR20100112569A (ko) 디스크 구동 테스트
KR20120013180A (ko) 저장 장치 시험
US20100118483A1 (en) Storage Control Apparatus
JP2008511142A5 (ja)
JP2012526338A (ja) 光ディスク記憶システム
JPWO2004106945A1 (ja) 電子部品試験装置
JP2006040450A (ja) ライブラリ装置
US10467168B2 (en) Systems and methods for modular expansion in data storage libraries
US20240014062A1 (en) Storage system
WO2023032121A1 (ja) ストレージシステム
KR101094200B1 (ko) 메모리 모듈 테스트를 위한 메모리 모듈 테스터 장치 및 테스트 방법
JP2023160449A (ja) 部品供給装置
US11310933B2 (en) Storage device
KR102024942B1 (ko) 인라인 테스트 핸들러 및 그 제어방법
US20050235076A1 (en) Targeted communications for microcode updates using dedicated LUNs
KR102024943B1 (ko) 인라인 테스트 핸들러 및 인라인 테스트 핸들러에서 테스트 트레이 이송 제어방법
US7861021B2 (en) Device receiving unit that performs a determination based on data exchange which interfacing device takes precedence when a plurality of interfacing devices are simultaneously connected
JP2993816B2 (ja) 集合型ディスク記憶ボード及び集合型ディスク記憶装置
US8599558B2 (en) Controller
KR102024946B1 (ko) 인라인 테스트 핸들러
JP2011150761A (ja) ライブラリ装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21956010

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2023544910

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 202180098859.9

Country of ref document: CN

ENP Entry into the national phase

Ref document number: 2021956010

Country of ref document: EP

Effective date: 20240307

WWE Wipo information: entry into national phase

Ref document number: 112021008171

Country of ref document: DE