System and method for accessing records in a cache slot which are associated with a current owner storage element or at least one previous owner storage element
A digital data storage subsystem comprises a cache memory, a digital data store and a host adapter. The cache memory includes a plurality of cache slots, each of which caches digital data from the digital data store for access by the host adapter. The digital data store includes a disk drive, in which data is stored in the form of variable- or fixed-length records. The storage controller identifies one of said data storage sections as constituting a current owner of respective ones of the cache slot, and is responsive to record staging requests to selectively transfer records from the data storage section identified as the owner of said at least one cache slot to said cache slot for caching. In staging records for the current owner, the storage controller may, but need not, over-write records that were previously staged in the cache slot for previous owners. The host adapter is responsive to access requests requesting access to a record such that, if the record for which access is requested is in a cache slot, it can access the record, whether the record's data storage section is the current owner of the cache slot, or one of a predetermined number of previous owners of the cache slot for which the record was not overwritten for a subsequent owner. On the other hand, if the record is not in a cache slot, which may occur if, for example, it has not been staged in a cache slot or it was staged in a cache slot but has been overwritten while the cache slot was owned by a subsequent owner, the host adapter will generate a record staging request for processing by the storage controller.
A graphics processing system has a cache which is partitionable into two or more slots. Once partitioned, the slots are dynamically allocatable to one or more texture maps. First, number of texture maps needed to render a given scene is determined. Then, available slots of the cache are allocated to the texture maps. Sometimes, more slots are allocated to the largest texture map. At other times, more slots are allocated to the texture map which is likely to be used most often. The slots can also be allocated equally to all of the texture maps needed.
A method and system of controlling the transfer of data arranged in frames between a host and network device, such as an HDLC controller, having a shared system memory is disclosed. A frame is received within frame data buffers of the shared system memory. A single frame can span more than three frame data buffers. A descriptor ring has respective descriptors that describe and point to a respective frame data buffer and ownership by either the host or device. The descriptors for an associated frame data buffer that received a frame are placed together to form a descriptor chain having first and last descriptors. Only the first and last descriptors are updated within the descriptor chain to grant ownership of first and last descriptors and any intermediate descriptors to a desired host or device to enhance bus utilization.
A digital data storage system comprises a storage device, a descriptor memory and a control device. The storage device stores a series of records, the records being organized in a plurality of tracks, each track being associated with one of a plurality of cylinders. The descriptor memory stores a descriptor associated with storage device. The descriptor contains selected information relating to the records stored by the at least one storage device. Each descriptor includes a plurality of cylinder portions each configured to store selected information relating to a respective one of the cylinders in the storage device. Each cylinder portion, in turn, includes a plurality of track descriptors each configured to store selected information relating to a respective one of the tracks in the respective cylinder. The storage device also stores the descriptor associated therewith, the cylinder portions of the descriptor being augmented with additional information relating to the respective ones of the cylinders. The digital data storage system further includes a control device configured to use the at least one descriptor in connection with accesses of records in the at least one storage device. In one embodiment, the additional information includes, for each cylinder, a cylinder identifier and, for each track, information indicating whether one of a plurality of types of access operation in connection with the track is to be performed.
A digital data storage system comprises a storage device, a descriptor memory and a control device. The storage device stores a series of records, the records being organized in a plurality of tracks, each track being associated with one of a plurality of cylinders. The descriptor memory stores a descriptor associated with storage device. The descriptor contains selected information relating to the records stored by the at least one storage device. Each descriptor includes a plurality of cylinder portions each configured to store selected information relating to a respective one of the cylinders in the storage device. Each cylinder portion, in turn, includes a plurality of track descriptors each configured to store selected information relating to a respective one of the tracks in the respective cylinder. The storage device also stores the descriptor associated therewith, the cylinder portions of the descriptor being augmented with additional information relating to the respective ones of the cylinders. The digital data storage system further includes a control device configured to use the at least one descriptor in connection with accesses of records in the at least one storage device. In one embodiment, the additional information includes, for each cylinder, a cylinder identifier and, for each track, information indicating whether one of a plurality of types of access operation in connection with the track is to be performed.
A method for maintaining data access during failure of a controller in a multiple controller storage subsystem (103) is provided. The storage subsystem (103) has an array of data storage devices (109) and more than one controller (104, 105) for managing the data storage. The method comprises a first controller (201) saving its internal state information (212) and, optionally, resetting itself (213). One or more of the other controllers (202, 203) carry out the steps of pausing operation of the controller (221, 231), saving internal state information of the controller at the time of pausing (222, 232), and continuing operation of the controller (223, 233). The one or more other controllers (202, 203) may pause operation and save their internal state information when they receive a message broadcast (220, 230) from the first controller (201) which has detected an error.