The present invention relates to controlling sleep mode in a digital system and in particular to controlling sleep mode in modules coupled to an embedded bus.
Digital systems typically include several different components or modules that may perform particular tasks. When that task is not needed, system power consumption may be reduced by placing a module that is not currently needed in a low power mode. Low power mode is typically referred to as “standby” or “sleep” mode, for example, in which the module stops processing, or processes at a very low rate to conserve power. When the task is again needed, then the module is directed to wakeup and resumes processing at a normal rate. In many mobile systems, such as cell phones or personal digital assistants, the need to keep an overall low average current consumption necessitates the need to transition into low-power (“sleep”) mode while not active.
These transitions may have a relatively high occurrence rate. For example, in a cell phone, transition into sleep mode for a symbol processing module may be done while active communication is being maintained, such as in-between audio frames.
Demand for multimedia functions within mobile terminals is increasing. A key driver for unit growth and product differentiation is digital audio. Commonly used digital audio interfaces in mobile terminals such as I2S (Inter IC Sound) and pulse code modulation (PCM) are generally intended for point-to-point connection between an application processor and a single digital audio device. Typically, these interfaces only support one or two digital audio channels. As such, adding functions and digital audio channels to mobile terminals beyond those for voice communication and simple stereo music applications is very difficult without increasing the number of bus structures in the mobile terminal. Though scalable, just adding bus structures limits design flexibility and is costly in terms of pin count, package size, printed circuit board (PCB) layout area and power consumption. In addition, numerous control bus structures such as I2C (Inter-Integrated Circuit), SP (serial peripheral interface), MicroWire™, UART (universal asynchronous receive-transmit) and GPIOs (general purpose input/output), typically reside in parallel to audio buses not only for audio device control, but handling the countless low bandwidth control tasks required for lighting, haptic feedback, temperature monitoring and power sequencing, for example.
The Serial Low-power Inter-chip Media Bus (SLIMbus) is a bus standard that defines a robust, scalable, low-power, high-speed, cost-effective, two wire multi-drop interface that supports a wide range of digital audio and control solutions for mobile terminals. It may be used as a standard interface between baseband or application processors and peripheral components in mobile terminals. The SLIMbus specification was developed within the MIPI (Mobile industry Processor Interface) Alliance. SLIMbus effectively replaces many other digital audio buses such as PCM and I2S, as well as control buses such as I2C, SPI, microWire, GPIO or UART, in a mobile terminal by providing flexible and dynamic assignment of bus bandwidth between digital audio and non-audio control and data functions.
SLIMbus is implemented by a synchronous 2-wire, flexible TDM (time domain multiplex) frame structure and surrounding bus arbitration mechanisms and message structures, which taken together establish flexible and robust data connections between SLIMbus devices. Although optimized for the transport of constant-rate media streams, SLIMbus can transport various types of asynchronous data as well as control data. The SLIMbus is described in more detail in various articles, such as “An Introduction to the Mobile Industry Processor Interface (MIPI) Alliance Standard Serial Low-power Inter-chip Media Bus (SLIMbus),” Kenneth Boyce, 2009, and is incorporated by reference herein. Access to the standard itself is currently limited to MIPI Alliance members.
SLIMbus is not designed for hot-swap capability since the intended use is completely within a client terminal such as a cellular phone. However, the SLIMbus specification has a defined procedure for graceful disconnect entailing re-doing the entire boot process for the device when re-joining the bus. This implies re-enumeration resulting in assignment of a new logical address. The process may take up to 30 ms.
Particular embodiments in accordance with the invention will now be described, by way of example only, and with reference to the accompanying drawings:
In order to utilize the benefits of placing communication modules to sleep during active call processing in a cellular phone, for example, a method is described herein in which modules may be permitted to rapidly transition into sleep mode and then be rapidly awakened using transactions defined by the SLIMbus. Entering and exiting the sleep mode is made somewhat difficult for SLIMbus based modules due to some of its inherent properties. A procedure that is defined within the SLIMbus standard requires a complete attach/detach from the bus, which is a relatively long process that requires enumeration when the module comes out of sleep mode. In the method described herein, the logical address is maintained and there is no need for re-joining the bus, therefore the time required to enter and leave sleep mode is minimal.
A simple extension to the standard SLIMBus protocol enables graceful and rapid transition in and out of sleep mode, while avoiding the need for additional signaling or bus driver changes. No additional signaling or changes to the standard SLIMbus PHY (physical) layer are required. Existing standard transaction messages (REQUEST/REPLY) are used with the addition of a new “user” defined value-element within each SLIMbus device. This provides a method for controlling sleep mode that provides support for a framer device that sources the clock signal while in sleep mode, provides support for point-to-point and point-to-multipoint cases, and supports transition into and out-of sleep while other bus components remain active. The logical address assigned to the device is maintained, thus no re-enumeration is required which allows a short suspend/resume process. Clock Pause can be employed when all components on a bus are in sleep mode.
In order to better understand embodiments of the current invention, aspects of the SLIMbus will be described herein. As mentioned earlier, the SLIMbus is described in more detail in various articles, such as “An Introduction to the Mobile Industry Processor Interface (MIPI) Alliance Standard Serial Low-power Inter-chip Media Bus (SLIMbus),” Kenneth Boyce, 2009, and is incorporated by reference herein. Access to the standard itself is currently limited to MIPI Alliance members. While embodiments of the invention are described herein as extensions to SLIMbus, it should also be understood that other systems in which multiple devices are interconnected via a common communication bus of some sort may also embody the present invention for controlling sleep mode.
A SLIMbus Device is a logical implementation of a system function. Devices in a Device Class category share certain characteristics and functions. SLIMbus Devices fall into Device Class definitions which specifies the minimum requirements for Device control information, Device behavior, data Transport Protocol support, and data storage necessary to implement a Device of that Device Class. Requirements for all Device Classes are shown in Table 1.
There are four SLIMbus Device Classes defined at the release of Version 1.0 of the SLIMbus specification: Manager, Framer, Interface, and Generic. These Device Classes permit complete SLIMbus systems to be designed and implemented without any additional Device Classes. However, the set of Device Classes is expandable if desired. When additional Device Classes are defined, those Device Class codes will be allocated by the MIPI Alliance.
Referring still to
A Framer Device, such as framer device 117, delivers a clock signal on the CLK line to all SLIMbus Components, and also contains logic to transmit the Guide and Framing Channels (Framing Information) on the DATA line in order to establish the highest level TDM Frame Structure of the bus and communicate that information to other SLIMbus Devices for establishing synchronization. The clock may be a high quality clock useful for audio decoding and DACs, which may eliminate the need for additional clock generation within the system.
In each Component, the Interface Device, such as interface device 116, provides bus management services, controls the Frame Layer 112, monitors Message Protocols 113 implemented by the Component, reports information about the status of the Component, and manages the Component reset so that a Component can properly sequence its Devices.
A Generic Device, or Generic Function, is a Device other than a Manager, Framer, or Interface. A Generic Device, such as function device 122, is generally considered to be the device to provide certain application functionality such as, for example, conversion from digital audio to analog (DAC) and vice versa (ADC). The Generic Device Class is used if no other specific device class for the application functionality exists. As an example, if a Microphone Device Class existed you would not ordinarily use a Generic Device class definition for microphone functionality.
Implementation of a Functional Device also requires the use of an Interface Device, and the associated Enumeration and Logical Addresses (EA and LA), Information and Value Elements (IE and VE), and Ports (P) of each device, which are used to establish bus connections, control and status information flow, and digital audio (or other data) flow. Device Information and Value Elements Information Elements (IE) and Value Elements (VE) are data storage elements used to hold status, configuration or other important information needed by a Device. The data stored may be Boolean in nature, or may have many values, depending upon the type of Device. These IE and VE elements effectively replace registers typically found behind conventional control interfaces such as I2C or SPI.
An Information Element is a specific piece of data that resides in a Device, and is available to other Devices via Messages. Categories of Information Elements are: core, device class specific, user information. Core Information Elements are the same for all Devices of all Device Classes. Device Class-specific Information Elements are the same for all Devices of a particular Device Class, but may be different for all Devices of a different Device Class. User-Information Elements are specific to a particular product or product family.
Value Elements are be located in the appropriate region of the Value Map. Each Value Element occupies no more than sixteen bytes of the Value Map address space. There is no requirement for a Device to use the entire Byte Address range. In addition, there is no required mapping between a Device's Byte Addresses and any internal memory map within a Component. The use of value elements in embodiments of the current invention will be described in more detail below.
SLIMbus uses a 48-bit Enumeration Addresses (EA) to uniquely identify Devices which can announce their presence on the bus. Each Device has an EA, which incorporates Manufacturer ID, Product Code, Device Index, and Instance Value for a Device. The Manufacturer ID code is supplied by the MIPI Alliance and uniquely identifies the manufacturer of the Device, similar to the manufacturer IDs used with PCI bus components. The Device Index code uniquely identifies multiple Devices within a single Component. The Instance Value code is for the case where multiple Devices of the same type or Class are attached to the bus.
After enumeration, the Active Manager assigns an 8-bit Logical Address to Device (LA) which speeds up communication with devices, and is typically used until the bus is powered down. On the next bus power up, or if the Device drops off the bus and re-connects, it is entirely possible that a new Logical Address is assigned.
Referring again to
In the opposite direction, the signals on the CLK and DATA lines are translated by the Physical Layer into a bit stream, which is then split into Data and Control streams by the Frame Layer, which, in turn, are decoded by the corresponding protocols and sent to the appropriate Devices within the Component.
The DATA and CLK lines are typically attached to two or more SLIMbus Devices contained in one or more SLIMbus Components to form a SLIMbus system. All SLIMbus Devices use DATA and CLK to synchronize with the bus configuration in use, to receive or transmit messages and data, and to implement bus arbitration, collision detection, and contention resolution between devices.
For all SLIMbus Components, except one containing a Framer Device, the CLK terminal is input only. If a SLIMbus Component is the Framer Device, or contains a Framer Device, the CLK signal is bidirectional. This is because the Framer Device is the only SLIMbus device allowed to control the CLK line. The CLK line has only two states; driven high or driven low. The Component that contains the active Framer is called the Clock Source Component.
For all SLIMbus Components, the DATA line is bidirectional, and carries all information sent or received on the bus using Non-Return-to-Zero Inverted, or NRZI encoding. The DATA line is driven on the positive edge and read on the negative edge of the CLK line. The DATA line can be driven high, driven low, or held at the high or low level, depending upon the particular operational mode of a SLIMbus Device.
The SLIMbus interface DATA and CLK lines use CMOS-like single-ended, ground referenced, rail-to-rail, voltage mode signals, and signaling voltages are specified with respect to the interface supply voltage. In the SLIMbus specification, interface supply voltages +1.8Vdd or +1.2Vdd are recommended even though other parts of a SLIMbus device may use different supply voltages.
The SLIMbus defines a Message Protocol used by Devices to exchange Messages. The Message Protocol consists of the Message Channel, which carries Messages between Devices, the Guide Byte, which contains the necessary information for Components to synchronize with the Message Channel, the Guide Channel, which carries the Guide Byte, and a set of behaviors that describe the flow of Messages between Devices. A Message is an integer number of bytes in length, ranging from a minimum of six to a maximum of thirty-nine bytes. Fields are provided for channel arbitration, source and destination addresses, Message contents (payload), Message integrity and acknowledgement. The Guide Byte contains fields so that a Device can determine the location of Messages within the Message Channel, and the integrity of the Guide Byte. Since two Slots are required to carry a byte, the Message Channel and the Guide Channel are organized as streams of Slot-pairs. These channels always occupy an even number of Slots in a Frame. Both Slots of a Message Channel Slot-pair are always contained within a single Frame, though they can be in different Subframes. When a Message is put into the Message Channel, the Message is byte justified to a Slot-pair, i.e. the first Cell of the Slot-pair holds the first bit of the Message. The Guide Channel occupies a predetermined set of Slots within a Superframe. These Slots are located so that the Guide Channel Slot-pair never falls between the Slots of a Message Channel Slot-pair.
The SLIMbus defines four types of REQUEST messages: REQUEST_INFORMATION, REQUEST_CLEAR_INFORMATION, REQUEST_VALUE or REQUEST_CHANGE_VALUE. These four Messages are called REQUEST Messages, while the REPLY_VALUE and REPLY_INFORMATION Messages are called REPLY Messages. A Value REQUEST Message may be handled with an abbreviated REPLY Message in which the Message Payload contains only a Transaction ID. The CHANGE_VALUE Message instructs a Device to update the indicated Value Slice.
The source Device of each REQUEST Message shall generate a Transaction ID (TID) for the Message and then wait for the corresponding REPLY Message with the same Transaction ID. Normally, the initiator receives a corresponding REPLY Message. However, in some cases a REPLY Message might not arrive. Therefore, the initiator may expire pending transactions if the request remains pending. This implies that the Transaction ID can be used again and a REPLY Message is not expected anymore by the initiator. For these Messages, the source Device may choose to resend the REQUEST. If a REPLY Message is received without a corresponding pending Transaction ID, the Message should be discarded by the receiving Device.
A destination Device of a REQUEST Message should send a corresponding REPLY Message. The REPLY Message contains the same Transaction ID as the REQUEST Message, and has the Logical Address of the source of the REQUEST Message as its Destination Address.
The REQUEST_CLEAR_INFORMATION and the REQUEST_CHANGE_VALUE Messages request the Target to behave as though it performs three distinct actions: saves the current contents of the indicated Information or Value Slice, clears or updates the indicated Information or Value Slice and replies to the REQUEST Message with the saved contents. In addition, the Target behaves as though the first two actions are a single, atomic operation. In other words, the contents of the indicated Information Slice or Value Slice shall not change between saving the contents and clearing or updating the contents.
Each device is responsible for suspending its own Tx port, which is the remote device's Rx port, when it doesn't have any data to transmit to the remote, as indicated at 404, 406. This is done by sending a SLIMbus (SB) standard CHANGE_VALUE command to deassert the corresponding sleep/wakeup (WU) value-element 212 of the remote device. WU value element 212 is located within the user value element portion 210 of the device's value map. Each device is allowed and may go to sleep once its Rx port has been suspended by a remote device and normally following its own Tx port suspend completion, as indicated at 408. This also allows the remote device to enter sleep mode.
Once the two devices agree to they may enter sleep mode, other devices on the bus may continue to communicate, as indicated at 410. The Active Manager may also optionally pause the bus clock using the SB standard's defined clock pause sequence, using the NEXT_CLOCK_PAUSE command, following the suspension of all the bus' channels when all device's Tx/Rx ports are in suspend state. If the clock is stopped, then the Active Manager must restart the clock when a device needs to wake up before further message traffic can be handled. This is done using the SB standard's defined clock resume sequence.
Referring again to
Correspondingly, each device is responsible for resuming its own Tx port (remote device's Rx port) when it requires data transfer to the remote device, as indicated at 412. This is done by sending a SB standard REQUEST_CHANGE_VALUE command, asserting the corresponding wakeup WU value-element of the remote device, as indicated at 414. Until the remote device is fully awake 416, it may send a NACK 418 status in response to the REQUEST_CHANGE_VALUE command. Once it is fully awake, it sends a REPLY command to complete the REQUEST_CHANGE_VALUE command and normal bus operation resumes between the two devices, as indicated at 420. The wakeup sequence may be initiated by either device.
The RX state machine is totally controlled by the Host, and except for acknowledging the host upon a reception of CTLR_WAKEUP request, the controller stays passive. During normal communication, the RX state machine is in RX enabled state 502. When a CHANGE_VALUE command that changes the controller wakeup value (CTRL_WU) to “0”, the state machine transitions to the RX suspended state 504. It remains in this state until a REQUEST_CHANGE_VALUE command is received that sets the CTRL_WU value to “1”. The controller then acknowledges this command with a REPLY command and transitions to the RX enabled state 502.
Then, when there is a need to send the host something over the SB, the controller issues REQUEST_CHANGE_VALUE(HOST_WU,1) and transitions to state TX_WAIT_FOR_WAKEUP_ACK 606. All packets to send to the host are buffered in a temporary queue, while waiting for the host to acknowledge the wakeup request. Finally, when the host responds with REPLY_VALUE(HOST_WU, 0) the tx state is changed to TX_ENABLED 602, and all buffered TX packets are moved to the “regular” TX queue and transmitted to the host.
SLIMbus messages may be addressed to a device even while it is asleep. When the SB physical layer of the component detects a message that is destined to one of the SB devices of the component, it will assert a wakeup signal that will cause the SB_SP handler to wake up. In the meantime, the SB message (and perhaps retransmissions of it) may be NACKd, if the respective FIFO is not yet operational. Once the needed voltages and clocks are available, the retransmitted message enters the FIFO and the appropriate interrupt request is set into the message handler logic. Once the message handler logic is fully awake, the message will be processed.
The sequence described above does not cause the TX and/or RX state to exit from the Suspended state, unless the message being received is actually REQUEST_CHANGE_VALUE(CTLR_WU, 1). Once the needed message-processing is done, the controller may go back to sleep, providing all the needed conditions are met.
Message transactions are also defined for situation where certain SB Message is expected to be received in the “very near future”. Sending a REQUEST_VALUE, REQUEST_CHANGE_VALUE, REQUEST_INFORMATION and REQUEST_CLEAR_INFORMATION start a transaction, which is ended upon reception of the respective REPLY message, or upon timeout. Receiving BEGIN_RECONFIGURATION starts a transaction, which is ended upon reception of RECONFIGURE_NOW.
A queue is defined for outgoing SB Messages (SB_MSG_TX_QUEUE). A message is deleted from the queue only after it is successfully sent to its destination (i.e. PACKd). A message is retransmitted, unless PACKd, by writing it again into the SB queue FIFO and triggering its transmission.
The controller is allowed to go to sleep (stop the clocks, etc.), only when all of the following conditions are met: both TX and RX are in the Suspended state; and SB_MSG_TX_QUEUE is empty, which means that no SLIMbus message is pending transmission.
At some later period 711, controller 704 determines that it has nothing to transmit to the host and sends 720 a CHANGE_VALUE command that changes the host sleep/wakeup value (HOST_WU) to “0”. The host RX state machine then enters the suspended state, as described with respect to
Note that either the host or the controller may issue the first CHANGE_VALUE command. Once they have both issued the CHANGE_VALUE command, then both may immediately transition to sleep mode.
On the other hand, when the controller, for example, has nothing to send to the host, it can therefore suspend its own Tx port (Hosts Rx port), allowing the host to go to sleep if it wishes to do so. However, if the host still wishes to communicate with the controller, then host would not actually go to sleep and it would therefore not suspend its own Tx port, which is the controller's corresponding Rx port. This is perfectly valid since the Host's Tx port has not been suspended yet and therefore it is not allowing the controller to go to sleep. The result of this scenario is that both the host and the controller would remain active, with the exception that the host is allowed and may go to sleep for short periods, for example between communication bursts to the controller.
Note that if the host's communication to the controller would require a communication response from the controller to the host, which is normally the case, e.g. acknowledgements or other feedback, the controller would have to resume its Tx port first in order to resolve a potential “race” condition where the host has completed its communication and wants to go to sleep before the time the controller starts to communicate back.
As mentioned earlier, if all devices are in sleep mode, the active manager may issue a clock pause command, as illustrated at 713, using the SB defined protocol.
Regardless of whether the clock was stopped, both devices are now assumed to be asleep, and a wakeup sequence is required to resume transport communication, as indicated at 714. However, as discussed above, a device may choose to not go to sleep, even when it has permission to go to sleep. Advantageously, the logical addresses are maintained in the physical layer hardware of each device, as indicated at 715. This allows each device to awaken rapidly without repeating the normal SB enumeration process.
In this example, the host initiates the wakeup sequence 813 after receiving the traffic wake up signal 811. The host issues a REQUEST_CHANGE_VALUE(CTLR_WU,1) as indicated at 820 and transitions to a TX_WAIT_FOR_WAKEUP_ACK state, as described with respect to
In response to receiving the wakeup from the hose, the controller also issues REQUEST_CHANGE_VALUE(HOST_WU,1) 822 and transitions to the TX_WAIT_FOR_WAKEUP_ACK state. When the host responds with REPLY_VALUE(HOST_WU, 0) 8232 the controller tx state is changed to TX_ENABLED and the host RX path is resumed.
With host and device RX paths resumed, the transport layer is resumed and the host and device can exchange data, as indicated at 814. The entire resume process takes less than 10 ms, which is significantly faster than the SB re-join and re-enumeration protocol.
Referring again to
RF transceiver 1006 is a digital radio processor and includes a receiver for receiving a stream of coded data frames from a cellular base station via antenna 1007 and a transmitter for transmitting a stream of coded data frames to the cellular base station via antenna 1007. RF transceiver 1006 is coupled to DBB 1002 which provides processing of the frames of encoded data being received and transmitted by cell phone 1000.
DBB unit 1002 may send or receive data to various devices connected to universal serial bus (USB) port 1026. DBB 1002 can be connected to subscriber identity module (SIM) card 1010 and stores and retrieves information used for making calls via the cellular system. DBB 1002 can also connected to memory 1012 that augments the onboard memory and is used for various processing needs. DBB 1002 can be connected to Bluetooth baseband unit 1030 for wireless connection to a microphone 1032a and headset 1032b for sending and receiving voice data. DBB 1002 can also be connected to display 1020 and can send information to it for interaction with a user of the mobile UE 1000 during a call process. Display 1020 may also display pictures received from the network, from a local camera 1028, or from other sources such as USB 1026. DBB 1002 may also send a video stream to display 1020 that is received from various sources such as the cellular network via RF transceiver 1006 or camera 1028. DBB 1002 may also send a video stream to an external video display unit via encoder 1022 over composite output terminal 1024. Encoder unit 1022 can provide encoding according to PAL/SECAM/NTSC video standards. In some embodiments, audio codec 1009 receives an audio stream from FM Radio tuner 1008 and sends an audio stream to stereo headset 1016 and/or stereo speakers 1018. In other embodiments, there may be other sources of an audio stream, such a compact disc (CD) player, a solid state memory module, etc.
SLIMbus 1050 couples tuner 1008, codec 1009 and stimulus processor 1004 to DBB 1002 and transfers audio streams between those components. The SLIMbus continues via segment 1050a to couple to touch screen 1021 for haptic feedback. The various devices within these components may sense when they have no traffic to transmit and initiate sleep initiation sequences as described above. Similarly, when traffic is detected, then the source component may initiate a wakeup sequence to re-establish transmission in a rapid manner, as described above.
While the invention has been described with reference to illustrative embodiments of a SLIMbus based system, this description is not intended to be construed in a limiting sense. Various other embodiments of the invention will be apparent to persons skilled in the art upon reference to this description. For example, other types of communication buses may be embodied with a sleep protocol as described herein for rapid transition from a sleep state to a wakeup state. Many types of buses that support atomic memory mapped transactions may be configured to embody the permissive sleep protocol described herein.
While a mobile device, such as a cell phone was described in detail herein, other embodiments of the invention can be found in other types of mobile devices, such as any of a variety of devices such a laptop computer, a Personal Digital Assistant (PDA), a smart phone or other electronic devices. Other embodiments may be less mobile devices such as desktop computers, servers, and other systems that may benefit from a simple interconnect scheme with a sleep protocol to support rapid wakeup to allow system power savings.
A system with multiple components that are coupled with a communication bus that supports a sleep protocol as described herein may be embodied by multiple components that are placed on a single substrate and interconnected via signal traces on the substrate, such as a system on a chip (SOC) integrated circuit.
Another embodiment may have components that are packaged in separate packages and connected via a communication bus that is embodied as discrete wires, a flexible cable assembly, signal lines on a circuit board, or other types of physical interconnect structures.
The techniques described in this disclosure may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the software may be executed in one or more processors, such as a microprocessor, application specific integrated circuit (ASIC), field programmable gate array (FPGA), or digital signal processor (DSP). The software that executes the techniques may be initially stored in a computer-readable medium such as compact disc (CD), a diskette, a tape, a file, memory, or any other computer readable storage device and loaded and executed in the processor. In some cases, the software may also be sold in a computer program product, which includes the computer-readable medium and packaging materials for the computer-readable medium. In some cases, the software instructions may be distributed via removable computer readable media (e.g., floppy disk, optical disk, flash memory, USB key), via a transmission path from computer readable media on another digital system, etc.
Certain terms are used throughout the description and the claims to refer to particular system components. As one skilled in the art will appreciate, components in digital systems may be referred to by different names and/or may be combined in ways not shown herein without departing from the described functionality. This document does not intend to distinguish between components that differ in name but not function. In the discussion and in the claims, the terms “including” and “comprising” are used in an open-ended fashion, and thus should be interpreted to mean “including, but not limited to . . . .” Also, the term “couple” and derivatives thereof are intended to mean an indirect, direct, optical, and/or wireless electrical connection. Thus, if a first device couples to a second device, that connection may be through a direct electrical connection, through an indirect electrical connection via other devices and connections, through an optical electrical connection, and/or through a wireless electrical connection.
Although method steps may be presented and described herein in a sequential fashion, one or more of the steps shown and described may be omitted, repeated, performed concurrently, and/or performed in a different order than the order shown in the figures and/or described herein. Accordingly, embodiments of the invention should not be considered limited to the specific ordering of steps shown in the figures and/or described herein.
To the extent that the term “includes” or “including” is employed in the detailed description or the claims, it is intended to be inclusive in a manner similar to the term “comprising” as that term is interpreted when employed as a transitional word in a claim. Furthermore, to the extent that the term “or” is employed in the detailed description or claims (e.g., A or B) it is intended to mean “A or B or both”. The term “and/or” is used in the same manner, meaning “A or B or both”. When the applicants intend to indicate “only A or B but not both” then the term “only A or B but not both” will be employed. Thus, use of the term “or” herein is the inclusive, and not the exclusive use. See, Bryan A. Garner, A Dictionary of Modern Legal Usage 624 (2d. Ed. 1995).
It is therefore contemplated that the appended claims will cover any such modifications of the embodiments as fall within the true scope and spirit of the invention.
The present application claims priority to and incorporates by reference U.S. provisional application No. 61/147,166, (attorney docket TI-67102PS) filed Jan. 26, 2009, entitled “SlimBus Extension: In-Band Sleep Protocol.”
Number | Date | Country | |
---|---|---|---|
61147166 | Jan 2009 | US |