Abstract:
An information processing apparatus includes: a processor configured to run an operating system; a plurality of storage devices connected to the processor; a detection module configured to detect a boot process for installing the operating system; a determination module configured to acquire device information from each of the storage devices and determine priority rank of the storage devices based on the device information when the detection module detects the boot process being originated from a device other than the storage devices; and a control module configured to install the operating system in a target storage device that is selected from among the storage devices, the target storage device having the highest priority rank determined by the determination module.

Description:
CROSS REFERENCE TO RELATED APPLICATION(S) 
       [0001]    The present disclosure relates to the subject matters contained in Japanese Patent Application No. 2009-051210 filed on Mar. 4, 2009, which are incorporated herein by reference in its entirety. 
       FIELD 
       [0002]    The present invention relates to an information processing apparatus and a method for controlling a storage device connected to the information processing apparatus for installing an operating system in an optimum storage device from among a plurality of storage devices. 
       BACKGROUND 
       [0003]    In information processing apparatus such as personal computers having plural storage devices, a user is required to select a target device to which an operating system is to be installed from among the storage devices. And a technique is disclosed in which boot settings of respective storage devices are configured by the user by changing BIOS settings. For example, a related-art document JP-A-5-100827 discloses a technique allowing the user to set boot priority order of storage devices or to make a boot prohibition setting of a storage device by changing BIOS settings. 
         [0004]    However, in the technique disclosed in JP-A-5-100827, in an information processing apparatus having plural storage devices, an operating system cannot be installed in an optimum storage device that is automatically selected from among a plurality of storage devices. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0005]    A general configuration that implements the various feature of the invention will be described with reference to the drawings. The drawings and the associated descriptions are provided to illustrate embodiments of the invention and not to limit the scope of the invention. 
           [0006]      FIG. 1  is a perspective view showing an appearance of an information processing apparatus according to an embodiment of the present invention. 
           [0007]      FIG. 2  is a block diagram outlining the configuration of the information processing apparatus according to the embodiment of the invention. 
           [0008]      FIG. 3  is a block diagram showing, in detail, the configuration of the information processing apparatus according to the embodiment of the invention. 
           [0009]      FIG. 4  is a block diagram showing the functional configuration of a port control application of the information processing apparatus according to the embodiment of the invention. 
           [0010]      FIG. 5  is a flowchart of a storage device control method of the information processing apparatus according to the embodiment of the invention. 
           [0011]      FIG. 6  schematically shows an example table used in the storage device control method of  FIG. 5 . 
           [0012]      FIG. 7  schematically shows an example BIOS setting screen used in the storage device control method of  FIG. 5 . 
       
    
    
     DETAILED DESCRIPTION OF THE EMBODIMENTS 
       [0013]    An embodiment of the present invention will be hereinafter described with reference to the drawings. 
         [0014]    A configuration of a notebook PC  10  (information processing apparatus) according to the embodiment of the invention will be described with reference to  FIGS. 1-3 . The notebook PC  10  is equipped with plural storage devices, which are an SSD (solid-state drive) and an HDD (hard disk drive), for example. The SSD may be considered as a most suitable storage device for installing an operating system therein because it is higher in data access rate and lower in power consumption than the HDD. The embodiment is intended to automatically determine such a storage device (i.e., a storage device that is most suitable for installation of an operating system) and install the operating system therein. 
         [0015]      FIG. 1  is a perspective view of the notebook PC  10  in a state that a display unit  12  is opened. The notebook PC  10  is composed of a main unit  11  and the display unit  12 . The display unit  12  incorporates a display device which is an LCD (liquid crystal display)  17 . The display screen of the LCD  17  is disposed approximately at the center of the display unit  12 . 
         [0016]    The display unit  12  is attached the main unit  11  so as to be rotatable between an opened position and a closed position. The main unit  11  has a thin, box-shaped body, and a keyboard  13 , a power button  14  for powering on/off the computer  10 , an operation panel  15 , and a touch pad  16  are provided on the top surface of the body. An optical disc drive (ODD; a drive for a CD and a DVD (digital versatile disc))  122  is provided in the main unit  11  so as to be accessible through its right side surface. The optical disc drive  122  is used for installation of software or an operating system, reproduction of a DVD, and other purposes. A LAN cable connection terminal  300  is provided in the right side surface of the main unit  11  at a back face. Software or an operating system can also be installed over a LAN network via the LAN cable connection terminal  300 . USB terminals (not shown) are provided in the back face of the main unit  11 . As with the LAN cable connection terminal  300 , each USB terminal enables installation of software or an operating system when a storage device is connected to it. 
         [0017]    The operation panel  15 , which is an input device through which to input an event corresponding to a pressed button to the computer  10 , is provided with plural buttons for activating respective functions. The plural buttons include a TV activation button  15 A, a DVD activation button  15 B, etc. 
         [0018]    Next, the system configuration of the computer  10  will be outlined with reference to  FIG. 2 . 
         [0019]    As shown in  FIG. 2 , the computer  10  is equipped with a CPU (which serves as a detection module, a determination module, and a control module)  111 , a northbridge  112 , a memory (main memory)  113 , a southbridge  119 , a SATA (serial advanced technology attachment) controller  126 , a BIOS-ROM  120 , an HDD  121 , an SSD  123 , the optical disc drive (ODD)  122 , etc. 
         [0020]    If a start of installation of an operating system from the ODD  122 , for example, is detected, pre-stored pieces of device information of the plural storage devices which are provided in or connected to the main body  11 , that is, the HDD  121  and the SSD  123 , are acquired from the HDD  121  etc. and it is determined which storage device the operating system should be installed in to attain better performance of the computer  10  (i.e., priority order is determined). Then, the operating system is installed in the storage device having the highest priority rank. 
         [0021]    Next, the system configuration of the computer  10  will be described in detail with reference to  FIG. 3 . 
         [0022]    As shown in  FIG. 3 , the computer  10  is equipped with the CPU  111 , the northbridge  112 , the memory (main memory)  113 , a graphics controller  114 , the southbridge  119 , the BIOS-ROM  120 , the HDD  121 , the SSD  123 , the ODD  122 , an embedded controller/keyboard controller IC (EC/KBC)  124 , the LCD  17 , the SATA controller  126 , a network controller  125 , etc. 
         [0023]    The CPU  111 , which is a processor provided to control the operations of the computer  10 , runs an operating system (OS) to be loaded onto the memory  113  from the HDD  121 , for example, and various application programs such as a port control application program (hereinafter also called a port control application; detection module, determination module, and control module)  201 . 
         [0024]    The SATA controller  126  controls port numbers of the plural storage devices which are provided in or connected to the main body  11 , that is, the HDD  121  and the SSD  123 , according to an instruction from the BIOS-ROM  120 . More specifically, the SATA controller  126  performs processing of setting the ports of the storage devices other than a storage device having the highest priority rank unselectable by (invisible to) an operating system installed, processing of installing the operating system after performing the above selection-disabling processing, and other processing. 
         [0025]    The SATA controller  126  also performs processing of detecting boot process for installation of an operating system, processing of acquiring pieces of device information from the plural respective storage devices and determining priority order according to the acquired pieces of device information if the detected boot process is originated from a device other than the plural storage devices, processing of installing the operating system in a storage device that is the first in the determined priority order, processing of determining priority order according to ascending order of the port numbers of ports to which the plural respective storage devices are connected if priority order cannot be determined on the basis of the acquired pieces of device information, and other processing. The term “device information” is rotation speed information of a storage device (flag information; stored in a BIOS-ROM of the storage device), device model name information that is stored in the HDD  121 , for example, in advance, or the like. 
         [0026]    The CPU  111  also runs a system BIOS (basic input/output system) which is stored in the BIOS-ROM  120 . The system BIOS is a program for hardware control. 
         [0027]    The northbridge  112  is abridge device for connecting a local bus of the CPU  111  to the southbridge  119 . The northbridge  112  incorporates a memory controller for access-controlling the memory  113 . The northbridge  112  also has a function of communicating with the graphics controller  114  via an AGP (accelerated graphics port) bus or the like. 
         [0028]    The graphics controller  114  is a display controller for controlling the LCD  17  which is used as a display monitor of the computer  10 . The graphics controller  114  generates a display signal to be sent to the LCD  17  on the basis of image data that is written to a video memory (VRAM)  114 A. 
         [0029]    The southbridge  119  controls individual devices on an LPC (low pin count) bus and individual devices on a PCI (peripheral component interconnect) bus. The southbridge  119  incorporates the SATA controller  126  for controlling the HDD  121 , the ODD  122 , and the SSD  123 . 
         [0030]    The HDD  121  and the SSD  123  are storage devices for storing various kinds of software and data. The SSD is a most suitable storage device to install an operating system in because it is higher in data access rate and lower in power consumption than the HDD. The SATA controller  126  can automatically determine such a storage device (i.e., a storage device that is most suitable for installation of an operating system) and install the operating system therein. Each of the HDD  121  and the SSD  123  is equipped with a BIOS-ROM (not shown) which is stored with various kinds of information, such as device (flag) information, of the HDD  121  or the SSD  123 . Examples of the device information are rotation speed information of the HDD  121  and a model name. 
         [0031]    The ODD  122  is a drive unit for installing an operating system from an optical disc medium and driving a storage medium such as a DVD in which a video content is stored. 
         [0032]    The embedded controller/keyboard controller IC (EC/KBC)  124  is a one-chip microcomputer in which an embedded controller for power control and a keyboard controller for controlling the keyboard (KB)  13  and the touch pad  16  are integrated together. The EC/KBC  124  has a function of powering on/off the computer  10  in response to a manipulation on the power button  14  by the user. The EC/KBC  124  can also power on/off the computer  10  in response to a manipulation on the TV activation button  15 A or the DVD activation button  15 B by the user. 
         [0033]    The network controller  125  is a communication device for communicating with an external network such as the Internet. The network controller  125  can also install an operating system over an external network. 
         [0034]    The port control application  201  issues various instructions relating to controls that are performed by the SATA controller  126 . The BIOS-ROM  120  performs controls relating to the port numbers of the HDD  121  and the SSD  123  which are the plural storage devices provided in or connected to the main body  11 . More specifically, the BIOS-ROM  120  performs processing of setting the ports of the storage devices other than a storage device having the highest priority rank unselectable by (invisible to) an operating system installed, processing of installing the operating system after performing the above selection-disabling processing, and other processing. The port control application  201  also performs processing of detecting boot process for installing an operating system, processing of acquiring pieces of device information from the plural respective storage devices and determining priority order according to the acquired pieces of device information if the detected boot process is of a device other than the plural storage devices, processing of installing the operating system in a storage device that is the first in the determined priority order, processing of determining priority order according to ascending order of the port numbers of ports to which the plural respective storage devices are connected if priority order cannot be determined on the basis of the acquired pieces of device information, and other processing. 
         [0035]      FIG. 4  is a block diagram showing the functional configuration of the port control application  201 . The port control application  201  is provided with a control module  202  and a memory module  203 . The control module  202  is provided with a detection module  202   a  and a determination module  202   b.    
         [0036]    Under the control of the CPU  111 , the control module  202  installs an operating system in a storage device which is the first in priority order that has been determined by the determination module  202   b.  Processing of installing the operating system and other processing are performed after selection-disabling processing is performed. The detection module  202   a  detects boot process for installation of the operating system. The determination module  202   b  acquires pieces of device information from the plural respective storage devices if the detection module  202   a  has detected the boot process of a device other than the plural storage devices, and determines priority order on the basis of the acquired pieces of device information. If priority order cannot be determined on the basis of the acquired pieces of device information, the determination module  202   b  determines priority order according to ascending order of the port numbers of ports to which the plural respective storage devices are connected. Furthermore, the determination module  202   b  sets a higher priority rank to a storage device having a higher data transfer rate. The memory module  203  stores model names or the like as the pieces of device information of the storage devices. 
         [0037]    Next, a storage device control method of the information processing apparatus according to the embodiment will be described with reference to a flowchart of  FIG. 5 . 
         [0038]    At step S 101 , the CPU  111  activates the port control application program  201  which is stored in the HDD  121 , for example, and loads it into the memory  113 . At step S 102 , the CPU  111  determines whether a start of installation of an operating program has been detected. Example installation sources of the operation system are the ODD  122 , a USB memory that is connected to a USB terminal, and an arbitrary server (via the network controller  125 ) . If determined at step S 102  that a start of installation of an operating program has been detected (S 102 : yes), then the CPU  11  determines at step S 103  whether the booted device is a storage device. The term “storage device” means each of the storage devices provided in (or connected to) the computer  10 , that is, the HDD  121  and the SSD  123 . If determined at step S 103  that the booted device is not a storage device (S 103 : no), at step S 104  the CPU  111  acquires pieces of device information of the plural respective storage devices provided in the computer  10 . On the other hand, if determined at step S 103  that the booted device is a storage device (S 103 : yes), the CPU  111  stops the operating system installation processing by way of precaution because this is the case that an installation file of the operating system has already been stored in the HDD  121  or the SSD  123 . By making a proper setting, it is possible to continue the operating system installation processing even if the booted device is a storage device. 
         [0039]    The CPU  111  determines priority order according to the pieces of device information that were acquired at step S 104 . If the acquired pieces of device information indicate that the plural storage devices provided in the computer  10  are the HDD  121  and the SSD  123 , the SSD  123  which is higher in data transfer rate and lower in power consumption is given a higher priority rank. Whether the plural storage devices provided in the computer  10  are the HDD  121  and the SSD  123  is determined in the following manner. The BIOS-ROM that is provided in each of the HDD  121  and the SSD  123  is accessed. If the BIOS-ROM is stored with a rotation speed flag (information), the storage device is determined to be the HDD  121 . If the BIOS-ROM is not stored with a rotation speed flag, the storage device is determined to be the SSD  123 . 
         [0040]    In acquiring pieces of device information from the plural respective storage devices provided in the computer  10 , if the storage device is the HDD  121 , the device information of the HDD  121  is acquired from the BIOS-ROM (not shown) provided in the HDD  121 . In this case, the device information is, for example, a rotation speed of the HDD  121 . Where plural HDDs are provided in the computer  10 , an HDD having a higher rotation speed is given a higher priority rank. If two HDDs have the same rotation speed, an HDD for which the port number of a port to which the HDD is connected is smaller is given a higher priority rank. For example, if two HDDs have port numbers “0” and “1,” respectively, the HDD having the port number “0” is given a higher priority rank. Port number information is acquired from the SATA controller  126 , for example. 
         [0041]    If the storage device is the SSD  123 , device information of the SSD  123  is read out by searching pieces of device model name information that are stored in advance in the HDD  121 , for example. Example device model name information that is stored in advance in the HDD  121 , for example, is a model name of the SSD  123  and a corresponding specification which are stored as table data in advance (see  FIG. 6 ). The corresponding specification is data transfer rates, for example. The corresponding specification is a data transfer rate, for example. Where plural SSDs are provided in the computer  10 , an SSD having a higher data transfer rate is given a higher priority rank. In the example of  FIG. 6 , the model “SSD-TSB001245” is higher in both of the read transfer rate and the write transfer rate than the model “SSD-TSB987654,” the former is given a highest priority rank. 
         [0042]    Then, the process proceeds to step S 105 , where the CPU  111  determines whether priority order has been determined. If it is determined that priority order of the plural storage devices provided in the computer  10  has been determined (S 105 : yes), at step S 106  the CPU  111  sets unselectable the ports of the storage devices other than a storage device having the highest priority rank (e.g., SSD  123 ). For example, if the port numbers of the SSD  123  and the HDD  121  are “0” and “1,” respectively, the port of the storage device other than the SSD  123  having the port number “0” is set unselectable. The SATA controller  126  performs a register control so that the operating system cannot select the ports of the storage devices other than the storage device having the highest priority rank (i.e., those ports are set invisible to the operating system) when the operating system is installed. 
         [0043]    If determined that the installation target storage device exists (S 107 : yes), at step S 108  the CPU  111  selects the storage device having the highest priority rank (e.g., SSD  123 ) and installs the operating system therein. As shown in  FIG. 7 , setting of each of the plural storage devices provided in the computer  10  may be made in BIOS setup processing. For example, “access enable” or “access disable” is set for each storage device as an access setting to be employed at the time of installation of an operating system. 
         [0044]    The embodiment makes it possible to automatically select a storage device that is most suitable (highest in performance) for installation of an operating system. Since the storage devices other than the optimum storage device are set unselectable, the operating system is prevented from being installed erroneously in a storage device in which the operating system should not be installed. 
         [0045]    The information processing apparatus according to the invention is not limited to a computer and may be any of various consumer information processing apparatus such as a PDA. Furthermore, the functions of the port control application  201  may be implemented by hardware such as a DSP or a microcomputer. 
         [0046]    Although the embodiment according to the present invention has been described above, the present invention is not limited to the above-mentioned embodiment but can be variously modified. 
         [0047]    Additional advantages and modifications will readily occur to those skilled in the art. Therefore, the invention in its broader aspects is not limited to the specific details and representative embodiments shown and described herein. Accordingly, various modifications maybe made without departing from the spirit or scope of the general inventive concept as defined by the appended claims and their equivalents.