David R. Noeldner - Fort Collins CO, US Michael Bratvold - Fort Collins CO, US Paul H. Smith - Boise ID, US
Assignee:
LSI Corporation - Milpitas CA
International Classification:
G06F 3/00 G06F 5/00 G06F 13/28 G06F 13/00
US Classification:
710 52, 710 22, 710 30, 710 33, 710 40
Abstract:
Described embodiments provide a media controller for processing one or more data transfer requests received from at least one host device. The media controller includes a buffer to receive data of a data transfer request from a communication link and a command parser to generate one or more contexts corresponding to the data transfer request. The one or more contexts are stored in the buffer. At least one queue of the media controller includes a regular context queue for queuing regular-priority contexts, and a high-priority context queue for queuing high-priority contexts. A context manager coordinates processing of regular-priority contexts and high-priority contexts of the at least one queue based on context boundaries, wherein, when a context is processed at a context boundary, data corresponding to the processed context is data is transferred between the communication link and at least one of the buffer and the at least one storage media.
Command Tag Checking In A Multi-Initiator Media Controller Architecture
David R. Noeldner - Fort Collins CO, US Michael Bratvold - Fort Collins CO, US Paul H. Smith - Boise ID, US
Assignee:
LSI Corporation - Milpitas CA
International Classification:
G06F 12/00
US Classification:
711150, 711156
Abstract:
Described embodiments provide a method of allocating resources of a media controller for a data transfer. A data transfer request is received from at least one host device, and includes a host device ID and a data transfer request ID. The media controller generates a Tag ID of the data transfer request based on the host device ID and the data transfer request ID, and generates a starting memory address of a tag table based on the Tag ID of the data transfer request. A tag count value is read from the starting memory address of the tag table. If the tag count value reaches a threshold, an absence of a tag overlap is determined and the Tag ID of the data transfer request is added to the tag table at the starting memory address.
Context Processing For Multiple Active Write Commands In A Media Controller Architecture
David R. Noeldner - Fort Collins CO, US Michael Bratvold - Fort Collins CO, US
Assignee:
LSI Corporation - Milpitas CA
International Classification:
G06F 13/28 G06F 3/00 G06F 12/00
US Classification:
710 22, 710 52, 711114
Abstract:
Described embodiments provide a method of transferring data from host devices to a media controller. The media controller generates a transfer context for each write request received from a host device. Receive-data threads corresponding to data transfer contexts for each transfer context are generated, each receive-data thread corresponding to a data transfer between a host device and the media controller. Buffer threads corresponding to data transfer contexts for each transfer context are generated, each buffer thread corresponding to a data transfer between the receive data path and a buffer subsystem. The receive-data and buffer threads are tracked for each transfer context. For each tracked transfer context, data from the receive datapath is iteratively transferred to the buffer subsystem for a previous data transfer context of the buffer thread while data from the host device is transferred to the receive datapath for a subsequent data transfer context of the receive-data thread.
Coalescing Multiple Contexts Into A Single Data Transfer In A Media Controller Architecture
David R. Noeldner - Fort Collins CO, US Michael Bratvold - Fort Collins CO, US
Assignee:
LSI Corporation - Milpitas CA
International Classification:
G06F 13/00
US Classification:
710 33, 370466
Abstract:
Described embodiments provide for transferring data between a host device and a storage media. A host data transfer request is received and a total size of the data transfer is determined. One or more contexts corresponding to the total size of the requested transfer are generated and are associated with transfers of data. If the data transfer is a write operation, one or more data segments from the host device are transferred into a buffer. The combined size of the data segments corresponds to the total size of the data transfer. In accordance with the contexts, the one or more data segments are transferred from the buffer to the storage media. If the requested data transfer is a read operation, in accordance with the contexts, data from the storage media is retrieved into a buffer and grouped into one or more segments, which are transmitted to the host device.