US7689765B2 - Control apparatus of storage unit, and method of controlling the control apparatus of storage unit - Google Patents

Control apparatus of storage unit, and method of controlling the control apparatus of storage unit Download PDF

Info

Publication number
US7689765B2
US7689765B2 US11/737,713 US73771307A US7689765B2 US 7689765 B2 US7689765 B2 US 7689765B2 US 73771307 A US73771307 A US 73771307A US 7689765 B2 US7689765 B2 US 7689765B2
Authority
US
United States
Prior art keywords
processor
communication
queue
communication port
computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related, expires
Application number
US11/737,713
Other versions
US20070192546A1 (en
Inventor
Katsuhiro Uchiumi
Hiroshi Kuwabara
Yoshio Mitsuoka
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to US11/737,713 priority Critical patent/US7689765B2/en
Publication of US20070192546A1 publication Critical patent/US20070192546A1/en
Application granted granted Critical
Publication of US7689765B2 publication Critical patent/US7689765B2/en
Adjusted expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • 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
    • 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/0689Disk arrays, e.g. RAID, JBOD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Definitions

  • the present invention relates to a control apparatus of a storage unit and to a method of controlling the control apparatus of the storage unit.
  • a computer system can add new functions by changing a control program even after initiating operation. Ordinarily, the device is restarted in order to install a new control program in the device.
  • the present invention was conceived on the basis of the above and other standpoints, and it is an object thereof to provide a control apparatus of a storage unit and a method of controlling the control apparatus of the storage unit.
  • control program replacement while using the same I/F controller before and after replacement of the control program.
  • the microprocessor of another control section having the same function has the function of taking over the processing of the microprocessor whose control program is being replaced.
  • each microprocessor The local memories of each microprocessor are fixedly separated between a region to be initialized and a region that is not to be initialized at the time of control program replacement.
  • the microprocessor whose control program is to be replaced uses the region that is not to be initialized as a region for controlling a host computer interface controller and stores, in the region to be initialized, a microprocessor replacement control program received from the host computer.
  • the region that is not to be initialized is used as an LM takeover region portion.
  • a control apparatus of a storage unit having a first communication port for conducting communication with a computer, a first processor that controls the first communication port, a first storage device that stores a first queue for storing a command for conducting the communication sent from the computer to the first communication port, a first memory that the first processor accesses, a second communication port for conducting communication with the computer, a second processor that controls the second communication port, and a second storage device that stores a second queue for storing a command for conducting communication sent from the computer to the second communication port, the first processor executing the command stored in the first queue to thereby control the communication with the computer, the second processor executing the command stored in the second queue to thereby control the communication with the computer, the control apparatus comprising a unit causing the second processor to implement execution of the command stored in the first queue; and a unit changing data stored in the first memory while the second processor is being caused to implement execution of the command stored in the first
  • a method of controlling a control apparatus of a storage unit having a first communication port for conducting communication with a computer, a first processor that controls the first communication port, a first storage device that stores a first queue for storing a command for conducting communication sent from the computer to the first communication port, a first nonvolatile memory that the first processor accesses, a second communication port for conducting communication with the computer, a second processor that controls the second communication port, and a second storage device that stores a second queue for storing a command for conducting communication sent from the computer to the second communication port, the first processor executing the command stored in the first queue to thereby control the communication with the computer, the second processor executing the command stored in the second queue to thereby control the communication with the computer, the method comprising the steps of:
  • FIG. 1 is a block diagram showing an example configuration of a storage system according to an embodiment of the invention
  • FIG. 2A is a block diagram showing an example configuration of a disk control apparatus according to the embodiment of the invention.
  • FIG. 2B is a block diagram showing, in detail, the disk control apparatus shown in FIG. 2A ;
  • FIG. 3 is a flow chart showing the flow of change processing of a microprogram according to the embodiment of the invention.
  • FIG. 4 is a block diagram showing another example configuration of the disk control apparatus according to the embodiment of the invention.
  • FIG. 5 is a block diagram showing the hardware configuration of a channel control section according to the embodiment of the invention.
  • FIG. 6 is a block diagram showing the configuration of a bus controller according to the embodiment of the invention.
  • An aspect of this invention provides a control apparatus of a storage unit, the control apparatus having a first communication port for conducting communication with a computer, a first processor that controls the first communication port, a first storage device that stores a first queue for storing a command for conducting the communication sent from the computer to the first communication port, a first memory that the first processor accesses, a second communication port for conducting communication with the computer, a second processor that controls the second communication port, and a second storage device that stores a second queue for storing a command for conducting communication sent from the computer to the second communication port, the first processor executing the command stored in the first queue to thereby control the communication with the computer, the second processor executing the command stored in the second queue to thereby control the communication with the computer, the control apparatus comprising a unit causing the second processor to implement execution of the command stored in the first queue; and a unit changing data stored in the first memory while the second processor is being caused to implement execution of the command stored in the first queue.
  • data stored in a nonvolatile memory e.g., a control program of a processor
  • a control program of a processor can be changed without stopping data transfer between the computer and the control apparatus of the storage unit.
  • the system specifications can be changed without stopping data access to the storage unit.
  • it becomes unnecessary to change the data transfer bus from the computer it becomes possible to change the control program without having to change the computer.
  • changing the control program also becomes possible without stopping data access to the storage unit even in a control apparatus of a storage unit connected to an open computer that adopts a communications protocol where dynamic switching of the data transfer bus is difficult, such as a fiber channel or an SCSI (Small Computer System Interface). For this reason, even if the connected computer is open or a mainframe, the control program can be changed without stopping data access to the storage unit.
  • a control apparatus of a storage unit connected to an open computer that adopts a communications protocol where dynamic switching of the data transfer bus is difficult, such as a fiber channel or an SCSI (Small Computer System Interface).
  • SCSI Small Computer System Interface
  • the unit causing the second processor to manage execution of the command stored in the first queue is a unit allowing the first processor to transfer the command stored in the first queue to the second queue and that allows the second processor to read the command for execution from the second queue.
  • the second processor can read and execute, from the second queue, the command for data transfer with the computer via both of the first and second communication ports.
  • the control program of the first processor without stopping data transfer via the first communication port.
  • the unit causing the second processor to manage execution of the command stored in the first queue may be a unit allowing the second processor to read the command for execution from the first queue.
  • the second processor can execute the command for data transfer with the computer via both of the first and second communication ports.
  • the control program of the first processor without stopping data transfer via the first communication port.
  • the unit changing data stored in the first memory may be a unit allowing the first processor to write data inputted from the outside over data stored in the first memory.
  • Another aspect of the present invention provides a method of controlling a control apparatus of a storage unit, the control apparatus having a first communication port for conducting communication with a computer, a first processor that controls the first communication port, a first storage device that stores a first queue for storing a command for conducting communication sent from the computer to the first communication port, a first nonvolatile memory that the first processor accesses, a second communication port for conducting communication with the computer, a second processor that controls the second communication port, and a second storage device that stores a second queue for storing a command for conducting communication sent from the computer to the second communication port, the first processor executing the command stored in the first queue to thereby control the communication with the computer, the second processor executing the command stored in the second queue to thereby control the communication with the computer, the method comprising the steps of causing the second processor to implement execution of the command stored in the first queue; and changing data stored in the first nonvolatile memory while the second processor is being caused to implement the execution of the command stored in the first queue.
  • FIG. 1 A block diagram showing an example configuration of a storage system 1000 according to an embodiment of the invention is shown in FIG. 1 .
  • the storage system 1000 is disposed with a disk control apparatus (control apparatus of storage unit) 200 and a storage unit 300 .
  • the disk control apparatus 200 is disposed with channel control sections 400 , disk control sections 800 , a service processor (SVP: Service Processor) 500 , a shared memory (SM: Shared Memory) 600 , a cache memory 700 and an internal network 900 .
  • SVP Service Processor
  • SM shared Memory
  • Computers 100 store data in the storage unit 300 via the disk control apparatus 200 .
  • the computers 100 can be mainframe computers or open computers.
  • the computers 100 and the disk control apparatus 200 can be connected via a network or be directly connected to each other.
  • various networks can be adopted for the network, such as a SAN (Storage Area Network), the Internet or a dedicated LAN (Local Area Network).
  • Various protocols can be adopted for the communications protocol, such as a Fibre Channel, a SCSI, an ESCON or a FICON.
  • the channel control sections 400 are connected to the computers 100 and send data to and receive data from the computers 100 .
  • Data that the channel control sections 400 receive from the computers 100 is written in the storage unit 300 via the disk control sections 800 .
  • data for which there is a read request from the computers 100 is read from the storage unit 300 via the disk control sections 800 and sent to the computers 100 .
  • the channel control sections 400 , the disk control sections 800 and the computers 100 are not limited to two each, and that an optional number of each can be disposed.
  • the cache memory 700 is used to temporarily store data sent and received between the channel control sections 400 and the disk control sections 800 and reduce the frequency with which the storage unit 300 is accessed, whereby data access from the computers 100 is sped up.
  • the shared memory 600 is a memory that is accessible from both of the channel control sections 400 and used to store control information.
  • the channel control sections 400 , the disk control sections 800 , the cache memory 700 and the shared memory 600 are interconnected by the internal network 900 .
  • a network of any kind of topology can be adopted as the internal network 900 , such as a cross path connection or a bus connection. It should be noted that an aspect can also be adopted where the channel control sections 400 , the disk control sections 800 and the like are directly connected.
  • the service processor 500 is a computer for maintaining and managing the disk control apparatus 200 and the storage unit 300 . For example, changing of a control program executed in the channel control sections 400 is implemented by an instruction from the service processor 500 .
  • the service processor 500 can be configured so that it is internally housed in the disk control apparatus 200 or separately disposed. Also, the service processor 500 can be configured so that maintenance and management functions are given to a general-purpose computer.
  • the storage unit 300 is disposed with storage resources 301 for provision to the computers 100 .
  • Various resources can be adopted as the storage resources 301 , such as a hard disk device, a flexible disk device, magnetic tape or a semiconductor storage unit.
  • FIG. 2A An example configuration of the disk control apparatus 200 according to the present embodiment is shown in FIG. 2A .
  • the channel control sections 400 are connected to the computers 100 . Also, the channel control sections 400 , the shared memory 600 , the cache memory 700 and the service processor 500 are interconnected. The disk control sections 800 and the internal network 900 are omitted for the purpose of simplifying the drawing.
  • two channel control sections 400 i.e., a channel control section A 400 a and a channel control section B 400 b , are disposed.
  • Each of the channel control sections 400 a and 400 b is disposed with an I/F (Interface) controller (communication port) 401 , a bus controller 402 , a processor 403 , a local memory 404 and a DMA (Direct Memory Access) transfer circuit 407 .
  • I/F Interface
  • bus controller 402 bus controller
  • processor 403 processor 403
  • local memory 404 a local memory 404
  • DMA Direct Memory Access
  • the bus controllers 402 control data transfer inside the channel control sections 400 and interconnect the channel control sections 400 .
  • the I/F controllers 401 function as communication ports for sending and receiving data with the computers 100 .
  • Data that the I/F controllers 401 receive from the computers 100 is transferred to the cache memory 700 via the DMA transfer circuits 407 .
  • data stored in the cache memory 700 is imported to the I/F controllers 401 via the DMA transfer circuits 407 and transferred to the computers 100 .
  • Buffers 408 for data transfer conducted between the I/F controllers 401 and the cache memory 700 are disposed in the DMA transfer circuits 407 .
  • Data transfer is conducted in accordance with a command (read command, write command, etc.) for data transfer sent from the computers 100 .
  • the I/F controllers 401 write the commands sent from the computers 100 in job queues 406 of the local memories 404 .
  • the processors 403 read the commands written in the job queues 406 and control the I/F controllers 401 and the DMA transfer circuits 407 in accordance with the commands, whereby data transfer with the computers 100 is controlled.
  • Microprograms (control programs) 405 are stored in the local memories 404 .
  • the microprograms 405 are programs (data) for controlling the operation of the processors 403 .
  • the local memories 404 may be nonvolatile memories such as a flash memory where the rewriting of data is possible, and can store storage data even without power being supplied thereto.
  • the local memories 404 may be configured by volatile memories and power supply to the local memories 404 may be backed up with a battery, whereby the storage data can be maintained even if the power of the disk control apparatus 200 is cut off.
  • Changing of the microprograms 405 is conducted by the service processor 500 writing a new microprogram 414 to a predetermined address of the shared memory 600 .
  • the processors 403 compare the version of the microprograms 405 stored at predetermined addresses of the local memories 404 with the version of the new microprogram 414 stored at the predetermined address of the shared memory 600 .
  • the reason the processors 403 conduct this operation at every startup is because the operation is described in that manner in the microprograms 405 or in the new microprogram 414 .
  • the processors 403 operate in accordance with the microprograms 405 stored in the local memories 404 .
  • the new microprogram 414 stored in the shared memory 600 is copied to the predetermined addresses of the local memories 404 .
  • the microprocessors 403 operate in accordance with the new microprogram 414 . It should be noted that causing the processors 403 to copy the new microprogram 414 to the local memories 404 from the shared memory 600 can be done with the old microprograms 405 or the new microprogram 414 . In the case of the former, it becomes necessary to restart (reboot) the processors 403 at the stage where the new microprogram 414 has been copied to the local memories 404 to allow the processors 403 to identify the new microprogram 414 . In the case of the latter, the processors 403 identify the new microprogram 414 while the new microprogram 414 is being copied to the local memories 404 . In this case, restarting is unnecessary.
  • FIG. 2B shows a case where the I/F controller A 401 a and the processor A 403 a are connected by a PCI-X 430 a via the bus controller 431 .
  • FIG. 5 is a diagram showing the hardware configuration of a printed circuit board of the channel control sections shown in FIGS. 2A and 2B .
  • Plural protocol I/F sections 502 a and 502 b are connected via PCI-X 503 a and 503 b to PCI controllers 501 a and 501 b called bus controllers.
  • FIG. 6 is a diagram describing the bus controller in detail.
  • a bus controller 601 is configured so as to be functionally separated into the bus controller A 402 a and the bus controller B 402 b .
  • Each bus controller is connected to an external PCI-X bus 603 via PCI_X I/FCTL.
  • Control between the PCI-X buses is conducted by bridge controllers 604 a and 604 b inside the bus controller 402 a and the bus controller 402 b .
  • bridge controllers 604 a and 604 b inside the bus controller 402 a and the bus controller 402 b .
  • cross paths 605 for delivering, to the processor Y 0 , commands received from T 2 and T 3 are included when the control program of Y 1 is to be replaced.
  • the present invention defines cross paths 605 , and the self access paths and the other access paths are mapped to addresses that are different on the PCI.
  • the microprogram of each processor manages the addresses of the self access paths and the other access paths by offsetting, whereby it can take care of and conduct processing that another processor is to conduct while the microprogram of that processor is being replaced.
  • FIG. 3 A flow chart showing the flow of change processing of the microprograms according to the present embodiment is shown in FIG. 3 .
  • a case will be described as an example where the microprogram 405 of the processor A 403 a in FIG. 2A is changed.
  • the processor A 403 a controls data input/output of the channel control section A 400 a via the I/F controller A 401 a
  • the processor B 403 b controls data input/output of the channel control section B 400 b via the I/F controller B 401 b (S 1001 , S 1002 ).
  • the service processor 500 writes the new microprogram 414 in the shared memory 600 . Then, a microprogram replacement instruction is sent to the processor A 403 a (S 1000 , S 1003 ).
  • the processor A 403 a that has received the replacement instruction continues to execute jobs (input/output processing) currently running but does not execute new jobs from the computer 100 .
  • New jobs are stored in a new job queue A 413 a separate from the job queue A 406 a disposed in the local memory 404 a (S 1004 ).
  • unprocessed jobs stored in the job queue A 406 a can be moved to the new job queue A 413 a or processed as currently running jobs.
  • the processor A 403 a sends an instruction to the processor B 403 b to conduct input/output processing of the channel control section A 400 a . Then, jobs (input/output commands) stored in the new job queue A 413 a are transferred to the job queue B 406 b of the local memory B 404 b (S 1006 ). Thus, the processor B 403 b becomes able to conduct input/output processing of the channel control section A 400 a .
  • an aspect may be configured so that jobs stored in the new job queue A 413 a are not transferred to the job queue B 406 b of the local memory B 404 b .
  • the processor B 403 b conducts input/output processing of the channel control section A 400 a by referencing the new job queue A 413 a of the local memory A 404 a .
  • the processor B 403 b receives the instruction and jobs from the processor A 403 a , it sends a report to the service processor 500 that it will conduct input/output processing of the channel control section A 400 a (S 1007 ).
  • the service processor 500 that has received the report issues a restart (reboot) command to the processor A 403 a (S 1009 ).
  • the processor A 403 a compares the version of the microprogram 405 stored at the predetermined address of the local memory 404 a with the version of the new microprogram 414 stored at the predetermined address of the shared memory 600 .
  • the new microprogram 414 stored in the shared memory 600 is copied to the predetermined address of the local memory 404 a (S 1010 ).
  • the processor A 403 a restarts (S 1011 , S 1012 ).
  • the microprogram 405 that controls the operation of the processor A 403 a can be changed to the new microprogram 414 .
  • the processor A 403 a can be configured to immediately restart at the stage where it has received the restart instruction from the service processor 500 .
  • installation of the new microprogram 414 is conducted simultaneously while the new microprogram 414 stored in the shared memory 600 is being copied to the local memory 404 .
  • the processor A 403 a cannot control the I/F controller A 401 a while the processor A 403 a is changing the microprogram.
  • an I/F controller e.g., the I/F controller B 401 b
  • the processor B 403 b conducts control of the I/F controller A 401 a . That is, this is because the processor B 403 b also conducts data transfer processing between the computer 100 and the I/F controller A 401 a in addition to data transfer processing between the computer 100 and the I/F controller B 401 b while the processor A 403 a changes the microprogram (S 1008 ).
  • the processor B 403 b conducts data transfer processing between the I/F controller A 401 a and the computer 100 by processing the jobs moved from the local memory A 404 a to the local memory B 404 b . Also, the processor B 403 b periodically references the new job queue A 413 a of the local memory A 404 a to check whether or not there are new jobs in the new job queue A 413 a . Thus, the processor B 403 b processes new jobs continuously sent to the channel control section A 400 a from the computer 100 .
  • the processor B 403 b moves that job from the local memory A 404 a to the local memory B 404 b and conducts data transfer processing (S 1008 ).
  • S 1008 data transfer processing
  • an aspect can also be configured where a new job stored in the new job queue A 413 a is not moved to the local memory B 404 b.
  • the invention can also be configured so that data sent to and received from the computer 100 via the I/F controller A 401 a is sent and received via the DMA transfer circuit A 407 a or via the DMA transfer circuit B 407 b.
  • the processor A 403 a When changing of the microprogram of the processor A 403 a ends (S 1012 ), the processor A 403 a sends an instruction to the processor B 403 b to return the input/output processing of the channel control section A 400 a via the I/F controller A 401 a to the processor A 403 a (S 1014 ).
  • the processor B 403 b that has received the instruction continues to execute currently running jobs of the channel control section A 400 a but does not execute new jobs that the channel control section A 400 a has received from the computer 100 . That is, the processor B 403 b does not send the jobs to the local memory B 404 b even if there is a new job in the new job queue A 413 a of the local memory A 404 a . Thereafter, jobs that the channel control section A 400 a has received from the computer 100 are stored in the job queue A 406 a of the local memory A 404 a (S 1014 ).
  • the processor B 403 b When processing of the currently running jobs of the channel control section A 400 a ends (S 1015 ), the processor B 403 b sends an instruction to the processor A 403 a to return input/output processing of the channel control section A 400 a (S 1016 ). Next, the processor A 403 a sends a report to the service processor 500 that it has finished changing the microprogram (S 1017 ).
  • the processor A 403 a controls data input/output of the channel control section A 400 a via the I/F controller A 401 a
  • the processor B 403 b controls data input/output of the channel control section B 400 b via the I/F controller B 401 b (S 1018 , S 1019 ).
  • FIG. 4 A block diagram showing another example configuration of the disk control apparatus 200 according to the present embodiment is shown in FIG. 4 .
  • each of the channel control section A 400 a and the channel control section B 400 b is disposed with four I/F controllers 401 , four processors 403 and four local memories (LM) 404 . Additionally, a PCI-X (Peripheral Components Interconnect) is adopted as the specification of the buses connecting the respective components.
  • PCI-X Peripheral Components Interconnect
  • a first aspect is an aspect where, similar to what is shown in FIGS. 2A and 3 , the processors B 403 b belonging to the channel control section B 400 b are made to conduct control of data transfer between the computer 100 that the processors A 403 a had conducted until then while changing the microprogram of the processors A 403 a belonging to the channel control section A 400 a .
  • the microprogram of the disk control apparatus 200 can be changed without stopping data transfer between the computer 100 and the disk control apparatus 200 and without the need for changes to the data transfer bus between the computer 100 and the disk control apparatus 200 .
  • a second aspect is an aspect where changing of the microprogram is conducted using the processors within the same control section. According to this aspect, even in a disk control apparatus 200 disposed with only one channel control section 400 , the microprogram of the disk control apparatus 200 can be changed without stopping data transfer between the computer 100 and the disk control apparatus 200 and without the need for changes to the data transfer bus between the computer 100 and the disk control apparatus 200 .
  • the microprograms of a plurality of processors can be simultaneously changed without stopping data transfer between the computer 100 and the disk control apparatus 200 and without the need for changes to the data transfer bus between the computer 100 and the disk control apparatus 200 .

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multi Processors (AREA)
  • Stored Programmes (AREA)

Abstract

A control apparatus of a storage unit having a first and a second communication ports for conducting communication with a computer, a first and a second processors that control respectively the first and the second communication ports, first and second storage devices that store respectively a first and a second queues for storing commands sent from the computer respectively to the first and the second communication ports, and a first nonvolatile memory that the first processor accesses, the first and the second processors executing the commands stored respectively in the first and the second queues to thereby control the communications with the computer, comprising a unit causing the second processor to implement execution of the command stored in the first queue; and a unit changing data stored in the first memory while the second processor is being caused to implement execution of the command stored in the first queue.

Description

CROSS-REFERENCE TO RELATED APPLICATIONS
This application claims the benefit of priority to Japanese Patent Application No. 2002-313027 filed on Oct. 28, 2002, the full disclosure of which is incorporated herein by reference.
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to a control apparatus of a storage unit and to a method of controlling the control apparatus of the storage unit.
2. Description of the Related Art
A computer system can add new functions by changing a control program even after initiating operation. Ordinarily, the device is restarted in order to install a new control program in the device.
However, the system cannot be stopped in a computer system where continuous operation is demanded 24 hours a day 365 days a year.
For this reason, in a case where a control program of a control apparatus of a storage unit in a computer system is to be changed, technology has conventionally been proposed for changing the control program without stopping the input/output of data (e.g., see Japanese Patent Application Laid-Open Publication No. Hei7-306844).
To cite an example of another specific method, there is a method where software for managing a bus is installed in a server and the inflow of commands to a control section in which is installed a microprocessor that replaces the control program is temporarily prohibited. Because a plurality of buses are managed by this application, a storage control apparatus can receive commands through the bus connected to the control section whose control program is not being in the middle of being replaced. In other words, the input/output of data from the server is not completely stopped.
Moreover, another method is known where, even if a command is received from the server, the control section whose control program is in the middle of being replaced issues a retry request to the server and causes the server to wait until the replacement of the control program ends.
In this conventional technology, the fact that there are a plurality of buses that transfer data from the computer to the control apparatus of the storage unit is used to change the control program without stopping the overall input/output of data from the computer. However, the input/output of data from the computer is stopped with respect to the data transfer bus relating to the changing of the control program. For this reason, it has been necessary for the computer to conduct data input/output by bypassing this data transfer bus.
SUMMARY OF THE INVENTION
The present invention was conceived on the basis of the above and other standpoints, and it is an object thereof to provide a control apparatus of a storage unit and a method of controlling the control apparatus of the storage unit.
According to one aspect of the invention for achieving the above and other objects, it is possible to implement control program replacement while using the same I/F controller before and after replacement of the control program. Specifically, the microprocessor of another control section having the same function has the function of taking over the processing of the microprocessor whose control program is being replaced.
The local memories of each microprocessor are fixedly separated between a region to be initialized and a region that is not to be initialized at the time of control program replacement.
The microprocessor whose control program is to be replaced uses the region that is not to be initialized as a region for controlling a host computer interface controller and stores, in the region to be initialized, a microprocessor replacement control program received from the host computer.
Moreover, the region that is not to be initialized is used as an LM takeover region portion.
In order to achieve the above and other objects, according to a first aspect of the present invention there is provided a control apparatus of a storage unit, the control apparatus having a first communication port for conducting communication with a computer, a first processor that controls the first communication port, a first storage device that stores a first queue for storing a command for conducting the communication sent from the computer to the first communication port, a first memory that the first processor accesses, a second communication port for conducting communication with the computer, a second processor that controls the second communication port, and a second storage device that stores a second queue for storing a command for conducting communication sent from the computer to the second communication port, the first processor executing the command stored in the first queue to thereby control the communication with the computer, the second processor executing the command stored in the second queue to thereby control the communication with the computer, the control apparatus comprising a unit causing the second processor to implement execution of the command stored in the first queue; and a unit changing data stored in the first memory while the second processor is being caused to implement execution of the command stored in the first queue.
In order to attain the above and other objects, according to another aspect of the present invention, there is provided a method of controlling a control apparatus of a storage unit, the control apparatus having a first communication port for conducting communication with a computer, a first processor that controls the first communication port, a first storage device that stores a first queue for storing a command for conducting communication sent from the computer to the first communication port, a first nonvolatile memory that the first processor accesses, a second communication port for conducting communication with the computer, a second processor that controls the second communication port, and a second storage device that stores a second queue for storing a command for conducting communication sent from the computer to the second communication port, the first processor executing the command stored in the first queue to thereby control the communication with the computer, the second processor executing the command stored in the second queue to thereby control the communication with the computer, the method comprising the steps of:
causing the second processor to implement execution of the command stored in the first queue; and
changing data stored in the first nonvolatile memory while the second processor is being caused to implement the execution of the command stored in the first queue.
Other features and objects than the above of the invention will become clear upon referring to the attached drawings and reading the description of the specification.
BRIEF DESCRIPTION OF THE DRAWINGS
For the full understanding of the invention and advantages thereof, the following description is to be read in conjunction with the accompanying drawings, in which:
FIG. 1 is a block diagram showing an example configuration of a storage system according to an embodiment of the invention;
FIG. 2A is a block diagram showing an example configuration of a disk control apparatus according to the embodiment of the invention;
FIG. 2B is a block diagram showing, in detail, the disk control apparatus shown in FIG. 2A;
FIG. 3 is a flow chart showing the flow of change processing of a microprogram according to the embodiment of the invention;
FIG. 4 is a block diagram showing another example configuration of the disk control apparatus according to the embodiment of the invention;
FIG. 5 is a block diagram showing the hardware configuration of a channel control section according to the embodiment of the invention; and
FIG. 6 is a block diagram showing the configuration of a bus controller according to the embodiment of the invention.
DETAILED DESCRIPTION OF THE INVENTION Summary of the Disclosure
From the description of the specification, at least the following is made clear.
An aspect of this invention provides a control apparatus of a storage unit, the control apparatus having a first communication port for conducting communication with a computer, a first processor that controls the first communication port, a first storage device that stores a first queue for storing a command for conducting the communication sent from the computer to the first communication port, a first memory that the first processor accesses, a second communication port for conducting communication with the computer, a second processor that controls the second communication port, and a second storage device that stores a second queue for storing a command for conducting communication sent from the computer to the second communication port, the first processor executing the command stored in the first queue to thereby control the communication with the computer, the second processor executing the command stored in the second queue to thereby control the communication with the computer, the control apparatus comprising a unit causing the second processor to implement execution of the command stored in the first queue; and a unit changing data stored in the first memory while the second processor is being caused to implement execution of the command stored in the first queue.
According to this aspect, data stored in a nonvolatile memory, e.g., a control program of a processor, can be changed without stopping data transfer between the computer and the control apparatus of the storage unit. Thus, in a computer system where continuous operation is demanded 24 hours a day 365 days a year, the system specifications can be changed without stopping data access to the storage unit. Also, because it is unnecessary to change the data transfer bus from the computer, it becomes possible to change the control program without having to change the computer. Thus, it also becomes possible to change the control program via a network by, for example, operation from a remote place.
Moreover, according to this aspect, changing the control program also becomes possible without stopping data access to the storage unit even in a control apparatus of a storage unit connected to an open computer that adopts a communications protocol where dynamic switching of the data transfer bus is difficult, such as a fiber channel or an SCSI (Small Computer System Interface). For this reason, even if the connected computer is open or a mainframe, the control program can be changed without stopping data access to the storage unit.
Preferably, the unit causing the second processor to manage execution of the command stored in the first queue is a unit allowing the first processor to transfer the command stored in the first queue to the second queue and that allows the second processor to read the command for execution from the second queue.
By virtue of this, the second processor can read and execute, from the second queue, the command for data transfer with the computer via both of the first and second communication ports. Thus, it becomes possible to change the control program of the first processor without stopping data transfer via the first communication port.
The unit causing the second processor to manage execution of the command stored in the first queue may be a unit allowing the second processor to read the command for execution from the first queue.
By virtue of this, the second processor can execute the command for data transfer with the computer via both of the first and second communication ports. Thus, it becomes possible to change the control program of the first processor without stopping data transfer via the first communication port.
The unit changing data stored in the first memory may be a unit allowing the first processor to write data inputted from the outside over data stored in the first memory.
Another aspect of the present invention provides a method of controlling a control apparatus of a storage unit, the control apparatus having a first communication port for conducting communication with a computer, a first processor that controls the first communication port, a first storage device that stores a first queue for storing a command for conducting communication sent from the computer to the first communication port, a first nonvolatile memory that the first processor accesses, a second communication port for conducting communication with the computer, a second processor that controls the second communication port, and a second storage device that stores a second queue for storing a command for conducting communication sent from the computer to the second communication port, the first processor executing the command stored in the first queue to thereby control the communication with the computer, the second processor executing the command stored in the second queue to thereby control the communication with the computer, the method comprising the steps of causing the second processor to implement execution of the command stored in the first queue; and changing data stored in the first nonvolatile memory while the second processor is being caused to implement the execution of the command stored in the first queue.
Example of Overall Configuration
A block diagram showing an example configuration of a storage system 1000 according to an embodiment of the invention is shown in FIG. 1.
The storage system 1000 according to the present embodiment is disposed with a disk control apparatus (control apparatus of storage unit) 200 and a storage unit 300. The disk control apparatus 200 is disposed with channel control sections 400, disk control sections 800, a service processor (SVP: Service Processor) 500, a shared memory (SM: Shared Memory) 600, a cache memory 700 and an internal network 900.
Computers 100 store data in the storage unit 300 via the disk control apparatus 200. The computers 100 can be mainframe computers or open computers. Also, the computers 100 and the disk control apparatus 200 can be connected via a network or be directly connected to each other. In this case, various networks can be adopted for the network, such as a SAN (Storage Area Network), the Internet or a dedicated LAN (Local Area Network). Various protocols can be adopted for the communications protocol, such as a Fibre Channel, a SCSI, an ESCON or a FICON.
The channel control sections 400 are connected to the computers 100 and send data to and receive data from the computers 100. Data that the channel control sections 400 receive from the computers 100 is written in the storage unit 300 via the disk control sections 800. Also, data for which there is a read request from the computers 100 is read from the storage unit 300 via the disk control sections 800 and sent to the computers 100. It should be noted that the channel control sections 400, the disk control sections 800 and the computers 100 are not limited to two each, and that an optional number of each can be disposed.
The cache memory 700 is used to temporarily store data sent and received between the channel control sections 400 and the disk control sections 800 and reduce the frequency with which the storage unit 300 is accessed, whereby data access from the computers 100 is sped up. The shared memory 600 is a memory that is accessible from both of the channel control sections 400 and used to store control information.
The channel control sections 400, the disk control sections 800, the cache memory 700 and the shared memory 600 are interconnected by the internal network 900. A network of any kind of topology can be adopted as the internal network 900, such as a cross path connection or a bus connection. It should be noted that an aspect can also be adopted where the channel control sections 400, the disk control sections 800 and the like are directly connected.
The service processor 500 is a computer for maintaining and managing the disk control apparatus 200 and the storage unit 300. For example, changing of a control program executed in the channel control sections 400 is implemented by an instruction from the service processor 500. The service processor 500 can be configured so that it is internally housed in the disk control apparatus 200 or separately disposed. Also, the service processor 500 can be configured so that maintenance and management functions are given to a general-purpose computer.
The storage unit 300 is disposed with storage resources 301 for provision to the computers 100. Various resources can be adopted as the storage resources 301, such as a hard disk device, a flexible disk device, magnetic tape or a semiconductor storage unit.
Example Configuration of Disk Control Apparatus
An example configuration of the disk control apparatus 200 according to the present embodiment is shown in FIG. 2A.
The channel control sections 400 are connected to the computers 100. Also, the channel control sections 400, the shared memory 600, the cache memory 700 and the service processor 500 are interconnected. The disk control sections 800 and the internal network 900 are omitted for the purpose of simplifying the drawing.
In the disk control apparatus 200 according to the present embodiment, two channel control sections 400, i.e., a channel control section A 400 a and a channel control section B 400 b, are disposed. Each of the channel control sections 400 a and 400 b is disposed with an I/F (Interface) controller (communication port) 401, a bus controller 402, a processor 403, a local memory 404 and a DMA (Direct Memory Access) transfer circuit 407.
The bus controllers 402 control data transfer inside the channel control sections 400 and interconnect the channel control sections 400.
The I/F controllers 401 function as communication ports for sending and receiving data with the computers 100. Data that the I/F controllers 401 receive from the computers 100 is transferred to the cache memory 700 via the DMA transfer circuits 407. Also, data stored in the cache memory 700 is imported to the I/F controllers 401 via the DMA transfer circuits 407 and transferred to the computers 100. Buffers 408 for data transfer conducted between the I/F controllers 401 and the cache memory 700 are disposed in the DMA transfer circuits 407.
Data transfer is conducted in accordance with a command (read command, write command, etc.) for data transfer sent from the computers 100. The I/F controllers 401 write the commands sent from the computers 100 in job queues 406 of the local memories 404. The processors 403 read the commands written in the job queues 406 and control the I/F controllers 401 and the DMA transfer circuits 407 in accordance with the commands, whereby data transfer with the computers 100 is controlled.
Microprograms (control programs) 405 are stored in the local memories 404. The microprograms 405 are programs (data) for controlling the operation of the processors 403. Thus, by changing the microprograms 405, the operation of the processors 403 can be changed. It should be noted that the local memories 404 may be nonvolatile memories such as a flash memory where the rewriting of data is possible, and can store storage data even without power being supplied thereto. Of course, the local memories 404 may be configured by volatile memories and power supply to the local memories 404 may be backed up with a battery, whereby the storage data can be maintained even if the power of the disk control apparatus 200 is cut off.
Changing of the microprograms 405 is conducted by the service processor 500 writing a new microprogram 414 to a predetermined address of the shared memory 600. At the time of startup, the processors 403 compare the version of the microprograms 405 stored at predetermined addresses of the local memories 404 with the version of the new microprogram 414 stored at the predetermined address of the shared memory 600. The reason the processors 403 conduct this operation at every startup is because the operation is described in that manner in the microprograms 405 or in the new microprogram 414. In a case where the version is not stored at the predetermined address of the shared memory 600 or where the versions of both programs are the same, the processors 403 operate in accordance with the microprograms 405 stored in the local memories 404.
Conversely, in a case where the versions of both programs are different, the new microprogram 414 stored in the shared memory 600 is copied to the predetermined addresses of the local memories 404. Thus, the microprocessors 403 operate in accordance with the new microprogram 414. It should be noted that causing the processors 403 to copy the new microprogram 414 to the local memories 404 from the shared memory 600 can be done with the old microprograms 405 or the new microprogram 414. In the case of the former, it becomes necessary to restart (reboot) the processors 403 at the stage where the new microprogram 414 has been copied to the local memories 404 to allow the processors 403 to identify the new microprogram 414. In the case of the latter, the processors 403 identify the new microprogram 414 while the new microprogram 414 is being copied to the local memories 404. In this case, restarting is unnecessary.
FIG. 2B shows a case where the I/F controller A 401 a and the processor A 403 a are connected by a PCI-X 430 a via the bus controller 431.
FIG. 5 is a diagram showing the hardware configuration of a printed circuit board of the channel control sections shown in FIGS. 2A and 2B. Plural protocol I/ F sections 502 a and 502 b are connected via PCI- X 503 a and 503 b to PCI controllers 501 a and 501 b called bus controllers.
FIG. 6 is a diagram describing the bus controller in detail. A bus controller 601 is configured so as to be functionally separated into the bus controller A 402 a and the bus controller B 402 b. Each bus controller is connected to an external PCI-X bus 603 via PCI_X I/FCTL. Control between the PCI-X buses is conducted by bridge controllers 604 a and 604 b inside the bus controller 402 a and the bus controller 402 b. By connecting processors Y0 and Y1, which had conventionally been connected by a local bus, with a PCI bus, it becomes possible for the processors Y0 and Y1 to access their mutual local memories.
Now, in a case where the access paths to the processor Y1 are T0 and T1 of FIG. 6 and the access paths to the processor Y1 are T2 and T3, cross paths 605 for delivering, to the processor Y0, commands received from T2 and T3 are included when the control program of Y1 is to be replaced.
For example, in a case where access with respect to Y0 from T0 and T1 is set as ordinary access paths, these access paths become self access paths and the access paths to Y1 from T0 and T1 become other access paths.
The present invention defines cross paths 605, and the self access paths and the other access paths are mapped to addresses that are different on the PCI.
The microprogram of each processor manages the addresses of the self access paths and the other access paths by offsetting, whereby it can take care of and conduct processing that another processor is to conduct while the microprogram of that processor is being replaced.
Change Processing of the Microprograms
A flow chart showing the flow of change processing of the microprograms according to the present embodiment is shown in FIG. 3. Here, a case will be described as an example where the microprogram 405 of the processor A 403 a in FIG. 2A is changed.
Before the microprogram 405 of the processor A 403 a is changed, the processor A 403 a controls data input/output of the channel control section A 400 a via the I/F controller A 401 a, and the processor B 403 b controls data input/output of the channel control section B 400 b via the I/F controller B 401 b (S1001, S1002).
In a case where the microprogram 405 of the processor A 403 a is to be changed, first, the service processor 500 writes the new microprogram 414 in the shared memory 600. Then, a microprogram replacement instruction is sent to the processor A 403 a (S1000, S1003).
The processor A 403 a that has received the replacement instruction continues to execute jobs (input/output processing) currently running but does not execute new jobs from the computer 100. New jobs are stored in a new job queue A 413 a separate from the job queue A 406 a disposed in the local memory 404 a (S1004). Here, at the point in time when the processor 403 a has received the replacement instruction from the service processor 500, unprocessed jobs stored in the job queue A 406 a can be moved to the new job queue A 413 a or processed as currently running jobs.
When processing of the currently running jobs ends (S1005), the processor A 403 a sends an instruction to the processor B 403 b to conduct input/output processing of the channel control section A 400 a. Then, jobs (input/output commands) stored in the new job queue A 413 a are transferred to the job queue B 406 b of the local memory B 404 b (S1006). Thus, the processor B 403 b becomes able to conduct input/output processing of the channel control section A 400 a. Here, an aspect may be configured so that jobs stored in the new job queue A 413 a are not transferred to the job queue B 406 b of the local memory B 404 b. In this case, the processor B 403 b conducts input/output processing of the channel control section A 400 a by referencing the new job queue A 413 a of the local memory A 404 a. When the processor B 403 b receives the instruction and jobs from the processor A 403 a, it sends a report to the service processor 500 that it will conduct input/output processing of the channel control section A 400 a (S1007).
The service processor 500 that has received the report issues a restart (reboot) command to the processor A 403 a (S1009).
When this happens, the processor A 403 a compares the version of the microprogram 405 stored at the predetermined address of the local memory 404 a with the version of the new microprogram 414 stored at the predetermined address of the shared memory 600. Here, if both programs are different, the new microprogram 414 stored in the shared memory 600 is copied to the predetermined address of the local memory 404 a (S1010). When the new microprogram 414 has been copied to the local memory 404 a, the processor A 403 a restarts (S1011, S1012). Thus, the microprogram 405 that controls the operation of the processor A 403 a can be changed to the new microprogram 414.
It should be noted that, as described above, the processor A 403 a can be configured to immediately restart at the stage where it has received the restart instruction from the service processor 500. In this case, installation of the new microprogram 414 is conducted simultaneously while the new microprogram 414 stored in the shared memory 600 is being copied to the local memory 404.
The processor A 403 a cannot control the I/F controller A 401 a while the processor A 403 a is changing the microprogram. Thus, in conventional technology, it has been necessary to change the data transfer path from the computer 100 to an I/F controller (e.g., the I/F controller B 401 b) separate from the I/F controller A 401 a in order to continue data input/output control between the computer 100.
However, in the microprogram changing according to the present embodiment, it is unnecessary to change the data transfer path. This is because the processor B 403 b conducts control of the I/F controller A 401 a. That is, this is because the processor B 403 b also conducts data transfer processing between the computer 100 and the I/F controller A 401 a in addition to data transfer processing between the computer 100 and the I/F controller B 401 b while the processor A 403 a changes the microprogram (S1008).
The processor B 403 b conducts data transfer processing between the I/F controller A 401 a and the computer 100 by processing the jobs moved from the local memory A 404 a to the local memory B 404 b. Also, the processor B 403 b periodically references the new job queue A 413 a of the local memory A 404 a to check whether or not there are new jobs in the new job queue A 413 a. Thus, the processor B 403 b processes new jobs continuously sent to the channel control section A 400 a from the computer 100. In a case where a new job is stored in the new job queue A 413 a, the processor B 403 b moves that job from the local memory A 404 a to the local memory B 404 b and conducts data transfer processing (S1008). Of course, an aspect can also be configured where a new job stored in the new job queue A 413 a is not moved to the local memory B 404 b.
The invention can also be configured so that data sent to and received from the computer 100 via the I/F controller A 401 a is sent and received via the DMA transfer circuit A 407 a or via the DMA transfer circuit B 407 b.
When changing of the microprogram of the processor A 403 a ends (S1012), the processor A 403 a sends an instruction to the processor B 403 b to return the input/output processing of the channel control section A 400 a via the I/F controller A 401 a to the processor A 403 a (S1014).
When this happens, the processor B 403 b that has received the instruction continues to execute currently running jobs of the channel control section A 400 a but does not execute new jobs that the channel control section A 400 a has received from the computer 100. That is, the processor B 403 b does not send the jobs to the local memory B 404 b even if there is a new job in the new job queue A 413 a of the local memory A 404 a. Thereafter, jobs that the channel control section A 400 a has received from the computer 100 are stored in the job queue A 406 a of the local memory A 404 a (S1014).
When processing of the currently running jobs of the channel control section A 400 a ends (S1015), the processor B 403 b sends an instruction to the processor A 403 a to return input/output processing of the channel control section A 400 a (S1016). Next, the processor A 403 a sends a report to the service processor 500 that it has finished changing the microprogram (S1017).
Thus, changing of the microprogram of the processor A 403 a ends. Thereafter, the processor A 403 a controls data input/output of the channel control section A 400 a via the I/F controller A 401 a, and the processor B 403 b controls data input/output of the channel control section B 400 b via the I/F controller B 401 b (S1018, S1019).
The same is true of the case where the microprogram 405 of the processor B 403 b is changed.
Another Example Configuration of the Disk Control Apparatus
A block diagram showing another example configuration of the disk control apparatus 200 according to the present embodiment is shown in FIG. 4.
In the example configuration of FIG. 4, each of the channel control section A 400 a and the channel control section B 400 b is disposed with four I/F controllers 401, four processors 403 and four local memories (LM) 404. Additionally, a PCI-X (Peripheral Components Interconnect) is adopted as the specification of the buses connecting the respective components.
Changing of the microprograms in the case of this configuration can be conducted by the aspects described below.
That is, a first aspect is an aspect where, similar to what is shown in FIGS. 2A and 3, the processors B 403 b belonging to the channel control section B 400 b are made to conduct control of data transfer between the computer 100 that the processors A 403 a had conducted until then while changing the microprogram of the processors A 403 a belonging to the channel control section A 400 a. According to this aspect, the microprogram of the disk control apparatus 200 can be changed without stopping data transfer between the computer 100 and the disk control apparatus 200 and without the need for changes to the data transfer bus between the computer 100 and the disk control apparatus 200.
Also, a second aspect is an aspect where changing of the microprogram is conducted using the processors within the same control section. According to this aspect, even in a disk control apparatus 200 disposed with only one channel control section 400, the microprogram of the disk control apparatus 200 can be changed without stopping data transfer between the computer 100 and the disk control apparatus 200 and without the need for changes to the data transfer bus between the computer 100 and the disk control apparatus 200.
Moreover, according to the example configuration shown in FIG. 4, the microprograms of a plurality of processors can be simultaneously changed without stopping data transfer between the computer 100 and the disk control apparatus 200 and without the need for changes to the data transfer bus between the computer 100 and the disk control apparatus 200.
Although the present invention has been set forth hereinabove based on the embodiments, the above examples are meant to facilitate understanding of the invention and should not be construed as limiting the invention. The invention can be changed and improved without deviating from the gist thereof, and equivalents thereof are also included in the invention.
Although the preferred embodiments of the present invention have been described in detail, it will be understood to those skilled in the art that they are variously be changed, permutated and altered without departing from the spirit and scope of the invention as defined in the appended claims.

Claims (8)

1. A control apparatus of a storage unit comprising:
a first communication port for conducting communication with a computer;
a first processor that controls the first communication port;
a first PCI-X bus disposed between the first communication port and the first processor for communication between the first communication port and the first processor;
a first memory in data communication with the first processor;
a second communication port for conducting communication with the computer;
a second processor that controls the second communication port;
a second PCI-X bus disposed between the second communication port and the second processor for communication between the second communication port and the second processor; and
a unit configured to change at least a portion of a microprogram stored in the first memory while the second processor is being caused to implement execution of a command for data input or data output with the computer.
2. A control apparatus of a storage unit according to claim 1, further comprising:
a first queue to store commands for communication between the computer and the first communication port; and
a second queue to store commands for communication between the computer and the second communication port,
wherein the command is initially stored in the first queue,
wherein the unit is further configured to allow the first processor to transfer the command from the first queue to a second queue and to allow the second processor to read the command for execution from the second queue.
3. A control apparatus of a storage unit according to claim 1, further comprising:
a first queue to store commands for communication between the computer and the first communication port; and
a second queue to store commands for communication between the computer and the second communication port,
wherein the unit is further configured to allow the second processor to read the command for execution from the first queue.
4. A control apparatus of a storage unit according to claim 1, wherein the unit is further configured to allow the first processor to overwrite at least a portion of the microprogram with data received from a source external to the storage unit in order to change said at least a portion of the microprogram.
5. A method of controlling a control apparatus of a storage unit, a first communication port for communication with an external computer, a first processor that controls the first communication port, a first PCI-X bus disposed between the first communication port and the first processor for communication between the first communication port and the first processor, a first nonvolatile memory in data communication with the first processor accesses, a second communication port for communication with the external computer, a second processor that controls the second communication port, and a second PCI-X bus disposed between the second communication port and the second processor for communication between the second communication port and the second processor, the first processor executing a command stored in the first queue to control communication with the external computer, the second processor executing the command stored in the second queue to control communication with the external computer, the method comprising:
causing the first processor to access and execute first commands stored in a first queue relating to communication between the external computer and the first communication port;
causing the second processor to access and execute second commands stored in a second queue relating to communication between the external computer and the second communication port;
causing the second processor to access and execute one of the first commands stored in the first queue; and
changing at least a portion of a microprogram stored in the first nonvolatile memory while the second processor is being caused to implement the execution of said one of the first commands.
6. A method according to claim 5, wherein causing the second processor to access and execute one of the first commands stored in the first queue comprises allowing the first processor to transfer said one of the first commands to the second queue and allowing the second processor to read the transferred command from the second queue for execution thereof.
7. A method according to claim 5, wherein causing the second processor to access and execute one of the first commands stored in the first queue comprises allowing the second processor to read said one of the first commands from the first queue for execution thereof.
8. A method according to claim 5, wherein changing at least a portion of a microprogram stored in the first nonvolatile memory comprises allowing the first processor to overwrite data stored therein with data received from a source external to the storage unit.
US11/737,713 2002-10-28 2007-04-19 Control apparatus of storage unit, and method of controlling the control apparatus of storage unit Expired - Fee Related US7689765B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US11/737,713 US7689765B2 (en) 2002-10-28 2007-04-19 Control apparatus of storage unit, and method of controlling the control apparatus of storage unit

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP2002313027A JP4190859B2 (en) 2002-10-28 2002-10-28 Storage device control device and storage device control device control method
JP2002-313027 2002-10-28
US10/696,663 US7111131B2 (en) 2002-10-28 2003-10-28 Control apparatus of storage unit, and method of controlling the control apparatus of storage unit
US11/508,594 US7216206B2 (en) 2002-10-28 2006-08-22 Control apparatus of storage unit, and method of controlling the control apparatus of storage unit
US11/737,713 US7689765B2 (en) 2002-10-28 2007-04-19 Control apparatus of storage unit, and method of controlling the control apparatus of storage unit

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US11/508,594 Continuation US7216206B2 (en) 2002-10-28 2006-08-22 Control apparatus of storage unit, and method of controlling the control apparatus of storage unit

Publications (2)

Publication Number Publication Date
US20070192546A1 US20070192546A1 (en) 2007-08-16
US7689765B2 true US7689765B2 (en) 2010-03-30

Family

ID=32457755

Family Applications (3)

Application Number Title Priority Date Filing Date
US10/696,663 Expired - Fee Related US7111131B2 (en) 2002-10-28 2003-10-28 Control apparatus of storage unit, and method of controlling the control apparatus of storage unit
US11/508,594 Expired - Fee Related US7216206B2 (en) 2002-10-28 2006-08-22 Control apparatus of storage unit, and method of controlling the control apparatus of storage unit
US11/737,713 Expired - Fee Related US7689765B2 (en) 2002-10-28 2007-04-19 Control apparatus of storage unit, and method of controlling the control apparatus of storage unit

Family Applications Before (2)

Application Number Title Priority Date Filing Date
US10/696,663 Expired - Fee Related US7111131B2 (en) 2002-10-28 2003-10-28 Control apparatus of storage unit, and method of controlling the control apparatus of storage unit
US11/508,594 Expired - Fee Related US7216206B2 (en) 2002-10-28 2006-08-22 Control apparatus of storage unit, and method of controlling the control apparatus of storage unit

Country Status (2)

Country Link
US (3) US7111131B2 (en)
JP (1) JP4190859B2 (en)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003316522A (en) 2002-04-26 2003-11-07 Hitachi Ltd Computer system and method for controlling the same system
JP4190859B2 (en) * 2002-10-28 2008-12-03 株式会社日立製作所 Storage device control device and storage device control device control method
JP4386694B2 (en) 2003-09-16 2009-12-16 株式会社日立製作所 Storage system and storage control device
JP4536361B2 (en) * 2003-11-28 2010-09-01 株式会社日立製作所 Data transfer apparatus, storage device control apparatus, and storage device control apparatus control method
JP4824345B2 (en) * 2005-06-01 2011-11-30 富士通株式会社 Active firmware exchange device
JP2007219571A (en) * 2006-02-14 2007-08-30 Hitachi Ltd Storage controller and storage system
JP5223612B2 (en) * 2008-11-14 2013-06-26 日本電気株式会社 Disk controller and firmware update method
KR101600951B1 (en) 2009-05-18 2016-03-08 삼성전자주식회사 Solid state drive device
US8285943B2 (en) * 2009-06-18 2012-10-09 Hitachi, Ltd. Storage control apparatus and method of controlling storage control apparatus
EP3348022A1 (en) 2015-09-11 2018-07-18 Barco N.V. Method and system for connecting electronic devices

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4747047A (en) 1985-12-06 1988-05-24 Unisys Corporation Data transfer system using two peripheral controllers to access dual-ported data storage units
JPH07306844A (en) 1994-05-13 1995-11-21 Hitachi Ltd Multiprocessor system and its nonstop program modifying method, and disk controller and its nonstop program modifying method
US6289398B1 (en) 1993-03-11 2001-09-11 Emc Corporation Distributed storage array system having plurality of storage devices which each of devices including a modular control unit for exchanging configuration information over a communication link
US20030158998A1 (en) * 2002-02-19 2003-08-21 Hubbert Smith Network data storage-related operations
US6643750B2 (en) 2001-02-28 2003-11-04 Hitachi, Ltd. Storage apparatus system and method of data backup
US20030229764A1 (en) 2002-06-05 2003-12-11 Hitachi, Ltd. Data storage subsystem
US20040123028A1 (en) 2002-09-19 2004-06-24 Hitachi, Ltd. Storage control apparatus, storage system, control method of storage control apparatus, channel control unit and program
US20050010735A1 (en) 2001-07-13 2005-01-13 Ryuske Ito Security for logical unit in storage system
US7111131B2 (en) 2002-10-28 2006-09-19 Hitachi, Ltd. Control apparatus of storage unit, and method of controlling the control apparatus of storage unit
US7146448B2 (en) * 2001-09-28 2006-12-05 Dot Hill Systems Corporation Apparatus and method for adopting an orphan I/O port in a redundant storage controller
US7380060B2 (en) * 2002-09-03 2008-05-27 Copan Systems, Inc. Background processing of data in a storage system

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4747047A (en) 1985-12-06 1988-05-24 Unisys Corporation Data transfer system using two peripheral controllers to access dual-ported data storage units
US6289398B1 (en) 1993-03-11 2001-09-11 Emc Corporation Distributed storage array system having plurality of storage devices which each of devices including a modular control unit for exchanging configuration information over a communication link
JPH07306844A (en) 1994-05-13 1995-11-21 Hitachi Ltd Multiprocessor system and its nonstop program modifying method, and disk controller and its nonstop program modifying method
US6643750B2 (en) 2001-02-28 2003-11-04 Hitachi, Ltd. Storage apparatus system and method of data backup
US20050010735A1 (en) 2001-07-13 2005-01-13 Ryuske Ito Security for logical unit in storage system
US7146448B2 (en) * 2001-09-28 2006-12-05 Dot Hill Systems Corporation Apparatus and method for adopting an orphan I/O port in a redundant storage controller
US20030158998A1 (en) * 2002-02-19 2003-08-21 Hubbert Smith Network data storage-related operations
US20030229764A1 (en) 2002-06-05 2003-12-11 Hitachi, Ltd. Data storage subsystem
US7380060B2 (en) * 2002-09-03 2008-05-27 Copan Systems, Inc. Background processing of data in a storage system
US20040123028A1 (en) 2002-09-19 2004-06-24 Hitachi, Ltd. Storage control apparatus, storage system, control method of storage control apparatus, channel control unit and program
US7111131B2 (en) 2002-10-28 2006-09-19 Hitachi, Ltd. Control apparatus of storage unit, and method of controlling the control apparatus of storage unit

Also Published As

Publication number Publication date
US7216206B2 (en) 2007-05-08
US20040143829A1 (en) 2004-07-22
JP4190859B2 (en) 2008-12-03
JP2004151761A (en) 2004-05-27
US7111131B2 (en) 2006-09-19
US20070192546A1 (en) 2007-08-16
US20060282625A1 (en) 2006-12-14

Similar Documents

Publication Publication Date Title
US7689765B2 (en) Control apparatus of storage unit, and method of controlling the control apparatus of storage unit
US7353355B1 (en) System and method for rapid restoration of server from backup
US7689796B2 (en) Computer system, storage system and method for saving storage area by integrating same data
US7904906B2 (en) Tracking modified pages on a computer system
US9092426B1 (en) Zero-copy direct memory access (DMA) network-attached storage (NAS) file system block writing
US7631156B2 (en) Storage system issuing optimum I/O command to allocation-on-use enabled volume and controlling method therefor
US7870405B2 (en) Method of controlling power consumption of a memory according to mapping
US9047016B2 (en) Storage system for controlling assignment of storage area to virtual volume storing specific pattern data
JP2010097533A (en) Application migration and power consumption optimization in partitioned computer system
US8650339B2 (en) Control of data transfer
US8196034B2 (en) Computer system and method for reducing power consumption of storage system
US20110202790A1 (en) Storage Configuration
US9811404B2 (en) Information processing system and method
US11507307B2 (en) Storage system including a memory controller that enables each storage controller of a plurality of storage controllers to exclusively read and write control information of the memory
JPH0830398A (en) Optical disk system
US8601100B2 (en) System and method for booting multiple servers from a single operating system image
JP5355603B2 (en) Disk array device and logical volume access method
US9836359B2 (en) Storage and control method of the same
JPH09319653A (en) Information processor, information processing system and control method for the same
JP2002082833A (en) High speed data writing system using nonvolatile cache memory
US20140208023A1 (en) Storage system and control method for storage system

Legal Events

Date Code Title Description
FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STCF Information on status: patent grant

Free format text: PATENTED CASE

FPAY Fee payment

Year of fee payment: 4

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552)

Year of fee payment: 8

FEPP Fee payment procedure

Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

LAPS Lapse for failure to pay maintenance fees

Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20220330