Described embodiments provide a transceiver for transferring data between a media controller and a host device through a communication link. The transceiver includes a first interrupt generator configured to i) generate a first interrupt when a command is received from the host device and ii) provide the received command to a receive buffer. A command processing module i) retrieves the received command from the receive buffer, ii) processes the received command, and iii) provides data request data in response to the received command to a transmit buffer. A datagram generator is configured to provide datagram data to the transmit buffer and a second interrupt generator is configured to generate a second interrupt when data in the transmit buffer is ready for transmission. The transmit buffer interleaves i) the data request data in response to the received command and ii) the datagram data, when provided to the communication link.
Legal claims defining the scope of protection. Each claim is shown in both the original legal language and a plain English translation.
1. A method of processing, by a media controller, a command received from a host device coupled to the media controller by a communication link, the method comprising: normalizing, by a first command processing module, the received command from a host specific protocol to a common command format: generating, by a first interrupt generator, a first interrupt when the command is received; providing, by a host command processing and scheduler module, the received normalized command to a common command processing module; transmitting an acknowledge signal to the host device; if the received command includes a data transfer from the host device: allocating, by the common command processing module, memory in a receive buffer for the command; transferring data from the host device to the receive buffer; processing, by the common command processing module of the media controller, the received command including the transferred data, if present; transferring, by an application programming interface, data from the receive buffer to a processing module of the media controller corresponding to received command: processing, by the corresponding processing module of the media controller, the transferred data; if the received command includes a data transfer to the host device: receiving a data request from the host device; providing, by the corresponding processing module of the media controller, data corresponding to the data request to the common command processing module by the application programming interface; providing, by the common command processing module, data corresponding to the data request to the transmit buffer; and generating, by a second interrupt generator, a second interrupt when the data corresponding to the data request in the transmit buffer is ready for transmission; providing, by a datagram generator of the media controller, datagram data to the transmit buffer, wherein the datagram data comprises logging data of the media controller and wherein the datagram data is generated substantially independently of processing commands received from the host device, wherein the datagram data is of variable length and the datagram data comprises one or more of a timestamp, a sequence number of a process operating on the media controller, and log data documenting statistics of the media controller, the statistics comprising at least one of error codes and operating statistics; and interleaving, by the transmit buffer, transmission of i) the data corresponding to the data request and ii) the datagram data on the communication link, wherein the data corresponding to the data request is transmitted to the host device by a synchronous protocol and the interleaving of datagram data is performed asynchronously with respect to the transmission of the data corresponding to the data request, wherein the host command processor and scheduler module validates the received command, schedules the command processing, completes the received command, and performs a command error handling.
A media controller processes commands from a host device via a communication link. The controller converts the received command from a host-specific format to a common format. Upon receiving a command, an interrupt is generated. The normalized command is passed to a common command processing module. An acknowledgement is sent back to the host. If the command contains data from the host, memory is allocated in a receive buffer, and the data is transferred. The controller processes the received command and its data, if any. Data is transferred from the receive buffer to a media controller processing module through an API. If the command requires data to be sent to the host, a data request is received. The media controller processing module provides the data to the common processing module via the API, which then transfers it to the transmit buffer. Another interrupt signals data readiness in the transmit buffer. Separately, a datagram generator places logging data into the transmit buffer independently of command processing; this data includes timestamps, process sequence numbers, and controller statistics. The transmit buffer interleaves both the requested data and the logging data for transmission, sending requested data synchronously and logging data asynchronously. Command validation, scheduling, completion and error handling are performed.
2. The method recited in claim 1 , further comprising: arbitrating access to the transmit buffer between the command processing module and the datagram generator.
The method described previously involving a media controller processing commands and datagrams, includes arbitrating access to the transmit buffer. This arbitration manages contention between the command processing module (handling host device requests) and the datagram generator (handling independent logging data) to ensure orderly and non-conflicting use of the transmit buffer.
3. The method recited in claim 1 , wherein the received command is one of i) a write transfer command, ii) a read transfer command, and iii) a no transfer command, wherein the write transfer command comprises one of i) writing one or more registers of the media controller, ii) writing one or more memory addresses of a buffer of the media controller, and iii) writing one or more addresses of a storage media coupled to the media controller; and the read transfer command comprises one of i) reading one or more registers of the media controller, ii) reading one or more memory addresses of the buffer of the media controller, and iii) reading one or more addresses of the storage media coupled to the media controller.
In the method described previously, the received command from the host device is classified as either a write transfer, a read transfer, or a no-transfer command. A write transfer command encompasses writing to the media controller's registers, its buffer's memory addresses, or addresses on a storage media connected to it. A read transfer command encompasses reading from the media controller's registers, its buffer's memory addresses, or addresses on a storage media connected to it.
4. The method of claim 3 , wherein the storage media is a Redundant Array of independent Disks (RAID) system comprising a plurality of storage devices and at least one media controller coupled to at least one corresponding storage device.
The method of handling read/write commands to the media controller, where the storage media is a Redundant Array of Independent Disks (RAID) system that has multiple storage devices controlled by one or more media controllers, each connected to a corresponding storage device.
5. A non-transitory machine-readable storage medium, having encoded thereon program code, wherein, when the program code is executed by a machine, the machine implements a method of processing, by a media controller, a command received from a host device coupled to the media controller by a communication link, the method comprising: normalizing, by a first command processing module, the received command from a host-specific protocol to a common command format; generating, by a first interrupt generator, a first interrupt when the command is received; providing, by a host command processing and scheduler module, the normalized command to a common command processing module; transmitting an acknowledge signal to the host device; if the received command includes a data transfer from the host device: allocating, by the common command processing module, memory in a receive buffer for the command; transferring data from the host device to the receive buffer; processing, by the common command processing module of the media controller, the received command including the transferred data, if present; transferring, by an application programming interface, data from the receive buffer to a processing module of the media controller corresponding to the received command; processing, by the corresponding processing module of the media controller, the transferred data; if the received command includes a data transfer to the host device: receiving a data request from the host device; providing, by the corresponding processing module of the media controller, data corresponding to the data request to the common command processing module by an application programming interface; providing, by the common command processing module, data corresponding to the data request to the transmit buffer; and generating, by a second interrupt generator, a second interrupt when the data corresponding to the data request in the transmit buffer is ready for transmission; providing, by a datagram generator of the media controller, datagram data to the transmit buffer, wherein the datagram data comprises logging data of the media controller and wherein the datagram data is generated substantially independently of processing commands received from the host device, wherein the datagram data is of variable length and the datagram data comprises one or more of a timestamp, a sequence number of a process operating on the media controller, and log data documenting statistics of the media controller, the statistics comprising at least one of error codes and operating statistics; and interleaving, by the transmit buffer, transmission of i) the data corresponding to the data request and ii) the datagram data on the communication link, wherein the data corresponding to the data request is transmitted to the host device by a synchronous protocol and the interleaving of datagram data is performed asynchronously with respect to the transmission of the data corresponding to the data request, wherein the host command processor and scheduler module validates the received command, schedules the command processing, completes the received command, and performs a command error handling.
A non-transitory storage medium contains program code that, when executed by a machine, causes a media controller to process commands from a host device via a communication link. The controller converts the received command from a host-specific format to a common format. Upon receiving a command, an interrupt is generated. The normalized command is passed to a common command processing module. An acknowledgement is sent back to the host. If the command contains data from the host, memory is allocated in a receive buffer, and the data is transferred. The controller processes the received command and its data, if any. Data is transferred from the receive buffer to a media controller processing module through an API. If the command requires data to be sent to the host, a data request is received. The media controller processing module provides the data to the common processing module via the API, which then transfers it to the transmit buffer. Another interrupt signals data readiness in the transmit buffer. Separately, a datagram generator places logging data into the transmit buffer independently of command processing; this data includes timestamps, process sequence numbers, and controller statistics. The transmit buffer interleaves both the requested data and the logging data for transmission, sending requested data synchronously and logging data asynchronously. Command validation, scheduling, completion and error handling are performed.
6. The non-transitory machine-readable storage medium recited in claim 5 , further comprising: arbitrating access to the transmit buffer between the command processing module and the datagram generator.
The non-transitory storage medium described previously containing program code for media controller operations, further includes code that arbitrates access to the transmit buffer. This arbitration manages contention between the command processing module (handling host device requests) and the datagram generator (handling independent logging data) to ensure orderly and non-conflicting use of the transmit buffer.
7. The non-transitory machine-readable storage medium recited in claim 5 , wherein the received command is one of i) a write transfer command, ii) a read transfer command, and iii) a no transfer command, wherein the write transfer command comprises one of i) writing one or more registers of the media controller, ii) writing one or more memory addresses of a buffer of the media controller, and iii) writing one or more addresses of a storage media coupled to the media controller; and the read transfer command comprises one of i) reading one or more registers of the media controller, ii) reading one or more memory addresses of the buffer of the media controller, and iii) reading one or more addresses of the storage media coupled to the media controller.
The non-transitory storage medium described previously containing program code for media controller operations, where the received command from the host device is classified as either a write transfer, a read transfer, or a no-transfer command. A write transfer command encompasses writing to the media controller's registers, its buffer's memory addresses, or addresses on a storage media connected to it. A read transfer command encompasses reading from the media controller's registers, its buffer's memory addresses, or addresses on a storage media connected to it.
8. A transceiver for transferring data between a media controller and a host device through a communication link, the transceiver comprising: a first command processing module configured to (i) normalize the received command from a host-specific protocol to a common command format and (ii) transmit an acknowledge signal to the host device; a first interrupt generator configured to (i) generate a first interrupt when a command is received from the host device, (ii) provide the normalized command to a common command processing module, and (iii) provide the normalized received command to a receive buffer; the common command processing module configured to (i) allocate memory in the receive buffer for the normalized command: (ii) retrieve the normalized command from the receive buffer, (iii) process the normalized command, and iii) provide data request data in response to the received command to a transmit buffer; an application programming interface configured to i) transfer data from the receive buffer to a processing module of the media controller corresponding to received command, the corresponding processing module of the media controller configured to process the transferred data and (ii) transfer data from the corresponding processing module of the media controller to the transmit buffer, the data corresponding to the data request; a datagram generator configured to provide datagram data to the transmit buffer, wherein the datagram data comprises logging data of the media controller and wherein the datagram data is provided substantially independently of processing commands received from the host device, wherein the datagram data is of variable length and the datagram data comprises one or more of a timestamp, a sequence number of a process operating on the media controller, and log data documenting statistics of the media controller, the statistics comprising at least one of error codes and operating statistics; a second interrupt generator configured to generate a second interrupt when data request data in the transmit buffer is ready for transmission; wherein the transmit buffer is further configured to interleave i) the data request data in response to the received command and ii) the datagram data, when provided to the communication link, wherein the data corresponding to the data request is transmitted to the host device by a synchronous protocol and the interleaving of datagram data is performed asynchronously with respect to the transmission of the data corresponding to the data request, wherein a host command processor and scheduler module validates the received command, schedules the command processing, completes the received command, and performs a command error handling.
A transceiver manages data transfer between a media controller and a host device. It includes a command processing module to normalize commands to a common format and send acknowledgements. An interrupt generator signals command arrival and provides the command to both a receive buffer and a common command processing module. This module allocates memory in the receive buffer, retrieves and processes the command, and sends data requests to a transmit buffer. An API transfers data between the receive buffer and a media controller processing module, and data corresponding to the request from the processing module to the transmit buffer. A datagram generator sends logging data (timestamps, process IDs, statistics) to the transmit buffer independently of command processing. A second interrupt generator signals data readiness in the transmit buffer. The transmit buffer interleaves the requested data and logging data, transmitting the requested data synchronously and the logging data asynchronously. Host command validation, scheduling, completion and error handling are performed.
9. The transceiver recited in claim 8 , further comprising a multiplexer adapted to control access to the transmit buffer by the command processing module and the datagram generator.
The transceiver that handles data transfer and interleaves requested data and logging data, further comprises a multiplexer. The multiplexer controls access to the transmit buffer, preventing conflicts between the command processing module (handling host requests) and the datagram generator (handling independent logging).
10. The transceiver recited in claim 8 , wherein the transceiver is a universal asynchronous receiver/transmitter (UART).
The transceiver that manages data transfer between a host device and a media controller is a universal asynchronous receiver/transmitter (UART).
11. The transceiver recited in claim 8 , wherein the communication link is an RS-232 serial link.
The transceiver that manages data transfer between a host device and a media controller uses an RS-232 serial link for communication.
12. The transceiver recited in claim 8 , wherein the communication link operates in accordance with the serial line internet protocol (SLIP).
The transceiver that manages data transfer between a host device and a media controller uses the serial line internet protocol (SLIP) for communication.
13. The transceiver recited in claim 8 , wherein the received command is one of i) a write transfer command, ii) a read transfer command, and iii) a no transfer command, wherein the write transfer command receives data from the host device and the read transfer command transmits data to the host device.
In the transceiver that manages data transfer between a host device and a media controller, the received command is classified as either a write transfer, a read transfer, or a no-transfer command. The write transfer receives data from the host, and the read transfer transmits data to the host.
14. The transceiver recited in claim 13 , wherein the write transfer command comprises one of i) a command to write one or more registers of the media controller, ii) a command to write one or more memory addresses of a buffer of the media controller, and iii) a command to write one or more addresses of a storage media coupled to the media controller; the read transfer command comprises one of i) a command to read one or more registers of the media controller, ii) a command to read one or more memory addresses of the buffer of the media controller, and iii) a command to read one or more addresses of the storage media coupled to the media controller.
The transceiver classifies host commands as write, read or no-transfer. Write commands include writing to the media controller's registers, its buffer's memory addresses, or addresses on connected storage. Read commands include reading from the media controller's registers, its buffer's memory addresses, or addresses on connected storage.
15. The transceiver recited in claim 8 , wherein the apparatus is implemented in a monolithic integrated circuit chip.
The transceiver that manages data transfer between a host device and a media controller is implemented as a monolithic integrated circuit chip.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
September 1, 2010
August 6, 2013
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.