The technology of the disclosure relates generally to managing quality of service fulfillment during bulk memory transfers over a communication bus.
Computing devices are increasingly common throughout every sector of life. The prevalence of such computing devices is driven in part by the ever increasing array of functions and capabilities that such computing devices provide. One area that has seen many advances is the group of computing devices that may be referred to as mobile computing devices including smart phones, laptops, tablets, and the like. Such devices initially were limited to simple telephonic devices, but have evolved into multi-function multimedia platforms. Designers have incorporated multiple speakers and multiple microphones to support such multimedia functionality. To assist in managing such multiple audio components, various audio protocols and communication buses have been proposed. One popular communication bus is the Serial Low-power Inter-chip Media Bus (SLIMbus) and associated protocol promulgated by the MIPI Alliance. While SLIMbus started as a half-duplex audio protocol, it has evolved into a full-duplex protocol capable of not only audio transfers, but also bulk data transfers.
The current version of the SLIMbus specification is version 2.0, published 17 Aug. 2015 and adopted 18 Nov. 2015. This current version of SLIMbus defines the rules and roles of devices associated with the SLIMbus bus. For example, the bus may have a primary owner and a secondary owner. If the primary owner has data to send over the bus, the primary owner asserts an ownership token and sends the data. Only when the primary owner is not asserting its ownership token is the secondary owner allowed to assert an ownership token and send data.
Because the primary owner does not evaluate what the secondary owner is doing when the primary owner asserts ownership, the data transfer from the secondary owner may be pre-empted or interrupted. In many instances such pre-emption or interruption leaves a partial word in the primary owner's intake first in, first out (FIFO) register. The primary owner may drain such partial word to the memory element within the primary owner Elimination of repeated draining of partial words may improve the quality of service (QoS) of the primary owner.
Aspects disclosed in the detailed description include full-duplex memory access systems and methods for improved quality of service (QoS). In particular, a primary bus owner will evaluate an output from a secondary bus owner when the primary bus owner takes control of the bus to determine if the secondary bus owner has data to send to the primary bus owner and/or is in the midst of a bulk data transfer. If the evaluation determines that there is still data to be transferred, the primary bus owner may refrain from draining an internal register unless a full word is present in the register. By reducing memory access for a partial word in the register, QoS may be improved.
In this regard in one aspect, an integrated circuit (IC) is disclosed. The IC includes a communication bus interface configured to be coupled to a communication bus and configured to receive a bulk data transfer from a secondary owner of the communication bus. The IC also includes a register communicatively coupled to the communication bus interface configured to store data associated with the bulk data transfer. The IC also includes a memory element coupled to the register. The IC also includes a control system. The control system is configured to instruct the register to drain full words to the memory element. The control system is also configured to interrupt the bulk data transfer by asserting primary ownership of the communication bus. The control system is also configured to determine when the secondary owner still has data to transfer to a primary owner. When the secondary owner still has data to transfer, the control system is configured to refrain from draining the register to the memory element.
In another aspect, an IC is disclosed. The IC includes a means for coupling to a communication bus and configured to receive a bulk data transfer from a secondary owner of the communication bus. The IC also includes a register communicatively coupled to the means for coupling and configured to store data associated with the bulk data transfer. The IC also includes a means for storing data coupled to the register. The IC also includes a control system. The control system is configured to instruct the register to drain full words to the memory element. The control system is also configured to interrupt the bulk data transfer by asserting primary ownership of the communication bus. The control system is also configured to determine when the secondary owner still has data to transfer to a primary owner. When the secondary owner still has data to transfer, the control system is configured to refrain from draining the register to the memory element.
In another aspect, a method for controlling an IC is disclosed. The method includes beginning to receive a bulk data transfer over a communication bus from a secondary bus owner. The method also includes storing one or more words of the bulk data transfer in a register. The method also includes asserting primary ownership of the communication bus and interrupting the bulk data transfer. The method also includes determining that data remains to be received in the bulk data transfer. The method also includes refraining from draining a partial word from the register while data remains to be received in the bulk data transfer.
In another aspect, a system is disclosed. The system includes a full-duplex communication bus. The system also includes a first IC configured to be a primary owner of the full-duplex communication bus. The system also includes a second IC configured to be a secondary owner of the full-duplex communication bus. The first IC includes a communication bus interface configured to be coupled to the full-duplex communication bus and configured to receive a bulk data transfer from the second IC over the full-duplex communication bus. The first IC also includes a register communicatively coupled to the communication bus interface configured to store data associated with the bulk data transfer. The first IC also includes a memory element coupled to the register. The first IC also includes a control system. The control system is configured to instruct the register to drain full words to the memory element. The control system is also configured to interrupt the bulk data transfer by asserting primary ownership of the communication bus. The control system is also configured to determine when the secondary IC still has data to transfer to the first IC. When the second IC still has data to transfer, the control system is configured to refrain from draining the register to the memory element.
With reference now to the drawing figures, several exemplary aspects of the present disclosure are described. The word “exemplary” is used herein to mean “serving as an example, instance, or illustration.” Any aspect described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects.
Aspects disclosed in the detailed description include full-duplex memory access systems and methods for improved quality of service (QoS). In particular, a primary bus owner will evaluate an output from a secondary bus owner when the primary bus owner takes control of the bus to determine if the secondary bus owner has data to send to the primary bus owner and/or is in the midst of a bulk data transfer. If the evaluation determines that there is still data to be transferred, the primary bus owner may refrain from draining an internal register unless a full word is present in the register. By reducing memory access for a partial word in the register, QoS may be improved.
Before addressing specific details about the ways in which the QoS can be maintained, an overview of a Serial Low-power Inter-chip Media Bus (SLIMbus) system is provided with reference to
In this regard,
In contrast,
The SLIMbus specification contemplates traditional audio stream data transfers as well as bulk data transfers. Typically, there is a channel owner who controls use of a given channel on the bus 104. Other devices coupled to the channel may act as secondary owners, but are not able to take control of the channel until the primary owner relinquishes control. Further, when the primary owner wants to use the channel, the primary owner may reassert control, pre-empting or interrupting the secondary owner.
Bulk transfers across the full-duplex bus 104 are based on ownership of the bus. The ownership of the bus is expressed by an owner token. One of the plurality of devices 102(1)-102(N) associated with the bus 104 is designated as a primary and another device of the devices 102(1)-102(N) is designated as a secondary. The primary is typically an application processor or the like while the secondary is typically an audio device such as a codec or microphone. In use, the primary owner may occasionally write to the secondary owner updates or the like. Similarly, the secondary owner may be an always-on microphone that captures a keyword and records subsequent spoken instructions (e.g., “Alexa [keyword], play music by THE MONKEES. [subsequent spoken instructions]”). The stored instructions are then passed to the application processor for processing and action thereon as part of a bulk transfer.
It is not uncommon for a bulk transfer of such stored instructions to the application processor to be interrupted one or more times by updates from the application processor to the codec. In the abstract, such interruptions are not problematic, but given how memory in the primary owner is accessed, such interruptions may have ramifications for QoS.
A conventional process 500 for a bulk transfer having interruptions is presented with reference to
While this bulk data is being transferred, the primary may have data to send to the secondary. The following optional steps are shown as optional through the use dotted lines in
Exemplary aspects of the present disclosure reduce the number of partial word drains, which in turn improves the QoS. To do this, the primary 102(1) checks whether the secondary 102(N) has more data as evidenced by whether the secondary 120(N) is continuing to assert T2=1 before making a decision to drain the FIFO register 308. An exemplary process 600 is illustrated in
While this bulk data is being transferred, the primary 102(1) may have data to send to the secondary 102(N). The following optional steps are shown as optional through the use dotted lines in
The full-duplex memory access systems and methods for improved quality of service (QoS) according to aspects disclosed herein may be provided in or integrated into any processor-based device. Examples, without limitation, include a set top box, an entertainment unit, a navigation device, a communications device, a fixed location data unit, a mobile location data unit, a global positioning system (GPS) device, a mobile phone, a cellular phone, a smart phone, a session initiation protocol (SIP) phone, a tablet, a phablet, a server, a computer, a portable computer, a mobile computing device, a wearable computing device (e.g., a smart watch, a health or fitness tracker, eyewear, etc.), a desktop computer, a personal digital assistant (PDA), a monitor, a computer monitor, a television, a tuner, a radio, a satellite radio, a music player, a digital music player, a portable music player, a digital video player, a video player, a digital video disc (DVD) player, a portable digital video player, an automobile, a vehicle component, avionics systems, a drone, and a multicopter.
In this regard,
With continued reference to
With continued reference to
With continued reference to
Those of skill in the art will further appreciate that the various illustrative logical blocks, modules, circuits, and algorithms described in connection with the aspects disclosed herein may be implemented as electronic hardware, instructions stored in memory or in another computer readable medium and executed by a processor or other processing device, or combinations of both. The devices described herein may be employed in any circuit, hardware component, IC, or IC chip, as examples. Memory disclosed herein may be any type and size of memory and may be configured to store any type of information desired. To clearly illustrate this interchangeability, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. How such functionality is implemented depends upon the particular application, design choices, and/or design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present disclosure.
The various illustrative logical blocks, modules, and circuits described in connection with the aspects disclosed herein may be implemented or performed with a processor, a Digital Signal Processor (DSP), an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices (e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration).
The aspects disclosed herein may be embodied in hardware and in instructions that are stored in hardware, and may reside, for example, in Random Access Memory (RAM), flash memory, Read Only Memory (ROM), Electrically Programmable ROM (EPROM), Electrically Erasable Programmable ROM (EEPROM), registers, a hard disk, a removable disk, a CD-ROM, or any other form of computer readable medium known in the art. An exemplary storage medium is coupled to the processor such that the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor. The processor and the storage medium may reside in an ASIC. The ASIC may reside in a remote station. In the alternative, the processor and the storage medium may reside as discrete components in a remote station, base station, or server.
It is also noted that the operational steps described in any of the exemplary aspects herein are described to provide examples and discussion. The operations described may be performed in numerous different sequences other than the illustrated sequences. Furthermore, operations described in a single operational step may actually be performed in a number of different steps. Additionally, one or more operational steps discussed in the exemplary aspects may be combined. It is to be understood that the operational steps illustrated in the flowchart diagrams may be subject to numerous different modifications as will be readily apparent to one of skill in the art. Those of skill in the art will also understand that information and signals may be represented using any of a variety of different technologies and techniques. For example, data, instructions, commands, information, signals, bits, symbols, and chips that may be referenced throughout the above description may be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields or particles, or any combination thereof.
The previous description of the disclosure is provided to enable any person skilled in the art to make or use the disclosure. Various modifications to the disclosure will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other variations without departing from the spirit or scope of the disclosure. Thus, the disclosure is not intended to be limited to the examples and designs described herein, but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.