Serial line protocol for embedded devices
First Claim
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.
9 Assignments
0 Petitions
Accused Products
Abstract
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.
80 Citations
15 Claims
-
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. - View Dependent Claims (2, 3, 4)
-
-
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. - View Dependent Claims (6, 7)
-
-
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. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15)
-
Specification