Abstract:
PROBLEM TO BE SOLVED: To provide a high performance storage subsystem with a plurality of independent paths for communication between a storage controller and a storage device. SOLUTION: This data processing system has a plurality of independent paths 352, 354 for the communication between a host and a plurality of storage devices. Each path has its own queue 413, 415, services a requests generated by the host and accesses the storage devices 345. Each request is assigned a unique sequential ID and after that, stored in all the queues along with the ID, Each storage device has a 'mailbox' register 500 to store the ID and a status of the executed latest ID. Queues are serviced and their status are updated based on the contents of the mailbox. Consequently, the queue in each path is allowed to be completely out of synchronization with each queue in other paths. COPYRIGHT: (C)2003,JPO
Abstract:
A data processing system (300, 800, 1000) having multiple independent paths for communication between a host (310, 810, 1010) and a plurality of storage devices (340, 840, 1040) where each path has its own queue (326, 828) for servicing requests generated by the host for accessing the storage devices. Each request is assigned a unique sequential ID before it is stored, along with its unique ID, in all the queues. Each storage device has a "mailbox" register (500) where the ID and the status (520) of the latest request being carried out is stored. Queues are serviced and their status updated based on the content of the mailbox in each storage device. The combination of assigning a unique task ID to each request and a "mailbox" register in each storage device allows the queue in each path to be completely out of sync with each of the queues in the other paths without causing data integrity problems, duplication of requests at the device level, or a need for complex locking schemes to keep the queues in sync with each other.
Abstract:
A data processing system (300, 800, 1000) having multiple independent paths for communication between a host (310, 810, 1010) and a plurality of storage devices (340, 840, 1040) where each path has its own queue (326, 828) for servicing requests generated by the host for accessing the storage devices. Each request is assigned a unique sequential ID before it is stored, along with its unique ID, in all the queues. Each storage device has a "mailbox" register (500) where the ID and the status (520) of the latest request being carried out is stored. Queues are serviced and their status updated based on the content of the mailbox in each storage device. The combination of assigning a unique task ID to each request and a "mailbox" register in each storage device allows the queue in each path to be completely out of sync with each of the queues in the other paths without causing data integrity problems, duplication of requests at the device level, or a need for complex locking schemes to keep the queues in sync with each other.