The present invention relates generally to the field of communications. More specifically, the present invention relates to a system, circuit and method for storing, retrieving and otherwise utilizing received data in digital memory associated with a computing and/or communication device to which a receiver may be connected.
Over the past decade, the prolife ration of handheld computing, entertainment and communication devices has been enormous. Many handheld devices include digital telecommunication and/or multimedia systems and require audio, video and graphics capabilities, and some even include television reception capabilities and wireless modem capabilities. Cellular phones, Palm-PCs, portable media players, digital video cameras and digital still cameras are examples of such systems.
Although each new generation of handheld devices tends to introduce new and innovative functionality, these devices are still required to be relatively small in size and economic considerations require their manufacturing cost to be as low as possible. Furthermore, since handheld devices must usually be battery-operated, there is also at times a strict requirement for the device to consume a small amount of power as possible. Low power consumption may allow for a relatively long operation time without having to replace or re-charge the batteries.
These requirements call for system architectures that are low in IC (integrated circuit) count, and deploy several layers of power saving. Each IC is required to have an architecture which is as small and cheap as possible, and consumes low power.
User interface entities may include a color graphic display, an image sensor, a keypad, a speakerphone, a microphone or any other user input device known today or to be devised in the future. Modems can be cellular modems, wireless-LAN, Bluetooth, Mobile Digital Television (“MDTV”) demodulators or any other modems used today or to be devised in the future.
Digital memories used with a bandheld device may include DRAM, FLASH, EPROM, SIM card and hard disk. The DRAM is the most commonly used memory of host CPus today, and will be abbreviated here as “HDRAM” (Host DRAM) for convenience. The HDRAM is almost always a very large memory. In fact, modern handheld systems have HDRAM of size 256 Mbits to 1024Mbits.
Turning back to
As most systems associated with a handheld device are required to consume as little power as possible, it would be useful to operate any of the device's component or engines only when it is a must and to turn them off when it will not disturb any application requested by a user of the device. For example, it is of interest to put the display in a sleep mode when there is no essential information to be shown to the user, or to shut down the demodulator or portions of it when no data is expected to be received at that particular time instance. During such inactive periods, it might be required, however, to continue background processes such as to execute real time operations (e.g. timers, response to external requests, re-adjust parameters, acquire better quality RF signals and more) and to maintain data or parameter integrity by keeping it inside a RAM.
Thus, there is a need in the field of handheld computing and communication devices to reduce the size, cost and power consumption of various components and sub-systems associated with a handheld device. Furthermore, there is a need in the field for a method and system of optimizing digital memory utilization by various components and sub-systems of a bandheld device so as to provide for reduced sizes and lower power consumption.
The present invention is a system, circuit and method of utilizing digital memory associated with a computing and/or communication device (e.g. mobile or handheld phone or video based communication and presentation device). According to some embodiments of the present invention, a sub-system functionally associated with the computing and/or communication device (e.g. a data receiving circuit, sub-system or module) may store data on a digital memory also functionally associated with the device. According to some embodiments of the present invention, the sub-system may include a receiver and may store data received from outside the device, either in a processed or in an unprocessed state, where the term processed may include functions like demodulated, decoded, error detected and/or error corrected. According to some embodiments of the present invention, preprocessed data stored by the sub-system on the digital memory may be read back by the sub-.system and processed. Processed data stored by the sub-system on the digital memory may be read or transmitted to other sub-systems functionally associated with the device. Once unprocessed data is read back to the sub-system and processed, it may either be transferred back to the digital memory functionally associated with the device or to another sub-system functionally associated with the device.
According to some embodiments of the present invention, the sub-system receiving data from outside the device may include a controller, which controller may communicate with a controller or a processor on the device in order to facilitate the transfer of data to and from the digital memory functionally associated with the device. The sub-system may also include a digital memory buffer, which buffer may store data received from outside the device. The sub-system controller may facilitate data transfers between the sub-system's digital memory buffer and the digital memory associated with the device.
The sub-system controller may facilitate the transfer of data stored by the sub-system in the digital memory functionally associated with the device back to the sub-system. The sub-system controller may facilitate the transfer of received data to the digital memory functionally associated with the device prior to the data being processed or decoded. The sub-system controller may facilitate the transfer of the unprocessed or un-decoded data back to the sub-subsystem for processing or decoding. And, according to some embodiments of the present invention, the controller may facilitate the transfer of processed or decoded data either to the digital memory functionally associated with the device or to another sub-system functionally associated with the device.
According to some embodiments of the present invention, the digital memory functionally associated with the device may be a Random Access Memory (“RAM”), either “S” or “D” type, connected to a controller of the device. The device controller may either be a multifunction or general purpose microprocessor, or the controller may be a dedicated memory access controller (e.g. Dynamic Memory Access unit “DMA”).
The sub-system may include a receiver or a modem, which is wireless, wired, optical, or of any other type known today or to be developed in the future. The sub-system may also include a decoder (e.g. turbo decoder) and/or an encoder. The sub-system and/or the decoder may include error detection and/or error correction functionality and logic circuits. The sub-system may also include data security (e.g. encryption and decryption) functionality and logical circuits.
The subject matter regarded as the invention is particularly pointed out and distinctly claimed in the concluding portion of the specification. The invention, however, both as to organization and method of operation, together with objects, features, and advantages thereof, may best be understood by reference to the following detailed description when read with the accompanying drawings in which:
It will be appreciated that for simplicity and clarity of illustration, elements shown in the figures have not necessarily been drawn to scale. For example, the dimensions of some of the elements may be exaggerated relative to other elements for clarity. Further, where considered appropriate, reference numerals may be repeated among the figures to indicate corresponding or analogous elements.
In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the invention. However, it will be understood by those skilled in the art that the present invention may be practiced without these specific details. In other instances, well-known methods, procedures, components and circuits have not been described in detail so as not to obscure the present invention.
Unless specifically stated otherwise, as apparent from the following discussions, it is appreciated that throughout the specification discussions utilizing terms such as “processing”, “computing”, “calculating”, “determining”, or the like, refer to the action and/or processes of a computer or computing system, or similar electronic computing device, that manipulate and/or transform data represented as physical, such as electronic, quantities within the computing system's registers and/or memories into other data similarly represented as physical quantities within the computing system's memories, registers or other such information storage, transmission or display devices.
Embodiments of the present invention may include apparatuses for performing the operations herein. This apparatus may be specially constructed for the desired purposes, or it may comprise a general purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium, such as, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs) electrically programmable read-only memories (EPROMs), electrically erasable and programmable read only memories (EEPROMs), magnetic or optical cards, or any other type of media suitable for storing electronic instructions, and capable of being coupled to a computer system bus.
The processes and displays presented herein are not inherently related to any particular computer or other apparatus. Various general purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct a more specialized apparatus to perform the desired method. The desired structure for a variety of these systems will appear from the description below. In addition, embodiments of the present invention are not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the inventions as described herein.
The present invention is a system, circuit and method of utilizing digital memory associated with a computing and/or communication device (e.g. mobile or handheld phone or video based communication and presentation device). According to some embodiments of the present invention, a sub-system functionally associated with the computing and/or communication device (e.g. a data receiving circuit, sub-system or module) may store data on a digital memory also functionally associated with the device. According to some embodiments of the present invention, the sub-system may include a receiver and may store data received from outside the device, either in a processed or in an unprocessed state, where the term processed may include functions like demodulated, decoded, error detected and/or error corrected. According to some embodiments of the present invention, preprocessed data stored by the sub-system on the digital memory may be read back by the sub-system and processed. Processed data stored by the sub-system on the digital memory may be read or transmitted to other sub-systems functionally associated with the device. Once unprocessed data is read back to the sub-system and processed, it may either be transferred back to the digital memory functionally associated with the device or to another sub-system functionally associated with the device.
According to some embodiments of the present invention, the sub-system receiving data from outside the device may include a controller, which controller may communicate with a controller or a processor on the device in order to facilitate the transfer of data to and from the digital memory functionally associated with the device. The sub-system may also include a digital memory buffer, which buffer may store data received from outside the device. The sub-system controller may facilitate data transfers between the sub-system's digital memory buffer and the digital memory associated with the device.
The sub-system controller may facilitate the transfer of data stored by the sub-system in the digital memory functionally associated with the device back to the sub-system. The sub-system controller may facilitate the transfer of received data to the digital memory functionally associated with the device prior to the data being processed or decoded. The sub-system controller may facilitate the transfer of the unprocessed or un-decoded data back to the sub-subsystem for processing or decoding. And, according to some embodiments of the present invention, the controller may facilitate the transfer of processed or decoded data either to the digital memory functionally associated with the device or to another sub-system functionally associated with the device.
According to some embodiments of the present invention, the digital memory functionally associated with the device may be a Random Access Memory (“RAM”), either “S” or “D” type, connected to a controller of the device. The device controller may either be a multifunction or general purpose microprocessor, or the controller may be a dedicated memory access controller (e.g. Dynamic Memory Access unit “DMA”).
The sub-system may include a receiver or a modem, which is wireless, wired, optical, or of any other type known today or to be developed in the future. The sub-system may also include a decoder (e.g. turbo decoder) and/or an encoder. The sub-system and/or the decoder may include error detection and/or error correction functionality and logic circuits. The sub-system may also include data security (e.g. encryption and decryption) functionality and logical circuits.
Although various aspects and embodiments of the present invention are applicable to a multitude of components, systems and subsystem associated with a bandheld computing/communication device and/or to components, systems and sub-systems associated with larger computing/communication devices, certain aspect of the present may be described in the context of a handheld or mobile device including a Mobile Digital Television (“MDTV”) receiver and/or demodulator. It will be noted that for purposes of this application, the term video signal may include a video data stream or data, or any other media related data stream or data. The term video signal may also include an analog electromagnetic signal which has been modulated with video, sound and/or image related information.
Block diagrams of implementations of a MDTV receiver/demodulators within a (1) mobile phone 1000A, and a (2) Portable Media Player (“PMP”) system 1000B, are shown in
The Portable Media Player 1000B shown in
Integration of a METV receiver in a handheld device or terminal may result in additional power consumption. The budget for additional power consumption due to the additional MDTV receiver may be limited by specification, sometimes to as little as 10% of the expected power consumption of a standard Digital TV receiver (composed of RP tuner and a baseband demodulator).
Since, services used in mobile handheld devices or terminals require relatively lower bit rates than does for non-mobile devices, it may be possible to reduce energy consumption using various techniques which take advantage of the relatively low bit rate requirement. For example, since the estimated maximum bit rate for streaming video using advanced compression technology like MPEG-4 is on the order of a few hundred kilobits per second (Kbps), and since a popular digital video transmission standard, the Digital Video Broadcasting-Terrestrial (“DVB-T”), commonly used by demodulators for stationary TV reception usually provides a bit rate of up to 32 Mbps, a demodulator on handheld or mobile device or terminal may be able to operate only intermittently, and to remain inoperative more periods of time.
The DVB-H (H stands for handheld device) standard, may be used by a handheld demodulators, usually for mobile TV reception and may significantly reduce the average power consumption of a DVB receiver by introducing a scheme based on time division multiplexing (TDM). This scheme is called Time-Slicing. The concept of time-slicing is to send data in bursts using a significantly higher bit rate compared to the bit rate required if the data was transmitted continuously. Within a burst, the time to the beginning of the next burst (delta-t) may be indicated. This may enable a demodulator to stay active for only a fraction of a second, each second data is being transmitted, while receiving bursts of a requested service. If a constant lower bit rate is required by the mobile handheld terminal, this requirement may be provided by buffering the received bursts. To get a reasonable power saving effect, the burst bit rate may be about 10 times the constant bit rate of a delivered service. In case of a 350 Kbps streaming services, this indicates a requirement of 4 Mbps bit rate for the bursts.
US Patent Application Publication No. 20030152107 teaches: “In a digital broadband broadcasting system, in which information is transmitted and received periodically in bursts to reduce receiver power consumption, time-slice information is provided from the the transmitter to the receiver. The time-slice information can include information from which the receiver can determine when a subsequent transmission burst will be transmitted. The time-slice information can include a burst duration, an amount of time between original bursts, the time between an original burst and a copy of the burst, and numbering of original bursts. This type of time-slice information can be placed into packet headers, such as one or more bytes reserved, but not used, for media access control addressing ” (Publication Abstract).
Specific power consumption or savings depends on the duty cycle of the time-slicing scheme. A 10% duty cycle may lead to a 90% reduction in power consumption, assuming the demodulator can completely shut down during the no-duty period, when data is not being received. Power savings due to low duty cycles, however, also depend on how much of the demodulator can be turned off, during the inactive slot of that duty cycle. In an optimal situation, a receiver may take advantage of the time-slicing mechanism and may shut down as many functions as possible—essentially the entire receiver, and for the longest possible time—essentially the entire “silence” time.
Data received from a burst of data may, according to the DVB-H standard, may be used to produce a data structure called the MPE-FEC (Multi Protocol Encapsulation—Forward Error Correction) table. For a demodulator which is designed to support FEC, the size of this table may be about 2 Mbits, or up to 2.25 Mbits if it may support extended FEC capabilities, i.e. erasures handling. A demodulator which does not require having MPE-FEC capabilities may need a table of up to 1.5 Mbits.
Due to the data processing requirements of data received by a MDTV demodulator, namely the MPE-FEC table processing, even when a demodulator is not receiving data, the data received during a previous data burst may require storage and processing. As a consequence of having to store and process received data, an MDTV demodulator may be required to utilize at least 1.5 Mbits of memory, and also to access the memory and process data in the memory during time slots when the demodulator may otherwise be inactive.
According to some embodiments of the present invention, an MDTV may include embedded dynamic random-access memory (“DRAM”). Embedding logic/processing functions on the same semiconductor die as digital memory is well known. Alternatively, an MDTV demodulator may have its own digital memory, on a different die, but both packaged together. According to a further embodiment of the present invention, the MDTV demodulator may be connected to external and dedicated digital memory. Depending on the fabrication and processing technology used for the digital memory or buffer, the addition of 1.5 to 2.5 Mbits of digital memory to the die of a receiver or to the package within which the deceiver die resides, may lead to substantial size, fabrication complexity, and cost increases for the receiver. For example, a 2 Mbit memory cell array, including its controller, fabricated using 1.3 micrometer technology, may require more than 6.2 mm2 of space on a die.
According to some embodiments of the present invention, such as the ones shown in
An exemplary service protocol, according to some embodiments of the present invention, as the one described below, may be unified for all types of communications (except for configuration, which is done through the I2C-like port). Any data, control or payload, provided by the engine to the host may be structured as a packet with a packet header of 3 bytes. The following is the organization of the bits of a 3 byte, 24-bit, packet header. Note that bit 23 is the first one sent, bit 0 is the last one.
Bits 23-22—Message type
Bits 21-20—Message descriptor
Bits 19-18—Packet type:
Bits 17-16—packet status
Bits 15-0—packet size in Bytes (excluding the three header bytes)
In case the service is of type write request, the payload has three fields:
Field 1: Address of the first data byte in the HDRAM
Continuous payload packet—is a packet whose payload data is continuous. This means that the address space into which the host is expected to write or to read from is continuous for the entire packet.
Sparse payload packet—is a packet whose payload data is not continuous, and can contain multiple addresses into which the host is expected to write or to read from during the same packet.
Two examples are given below:
The engine sends to the host a write request (i.e. he wishes to write data to the HDRAM) for purpose 1. The data is continuous (one chunk of data) and it is the middle packet of the current procedure. The data is of size of 64 Kbytes, and the first data byte is written to address 0×A in the HDRAM.
In the following tables the header and payload fields are shown.
Packet Header Bytes:
Payload Fields:
The engine sends to the host a read request (i.e. he wishes to read data from the HDRAM) for purpose 3. The data is sparse (more than one chunk of data) and it is the first packet of the current procedure. The data is of size of 2 Bytes, and is read from addresses 0×00F2 and 0×FF00.
In the following tables the header and entire payload fields are shown,
Packet Header Bytes:
Payload Fields:
Various service protocols for accessing digital memory associated with one controller or another are well known. Any service or memory access protocol known today or to be devised in the future may be applicable to the present invention.
According to some embodiments of the present invention, data received by a receiver, such as the MDTV receivers in
Turning now to
Portions or received data may be stored in a Buffer 140, either before or after processing. Under certain circumstances, such as when more data is received than can be buffered in Buffer 140, or when the receiver is about to shut down, according to some embodiments of the present invention, a Memory Access Control Unit 130 may facilitate the transfer of all or a portion of the received that to a digital memory 410 functionally associated with a processor 400, or memory controller, of a host device (also see
According to some embodiments of the present invention, the receiver 100 may not be integrally connected to the host, but may be a separate and removable device which may be connected to the host through one of the host's external or peripheral interface ports or connection points, such as a Universal Serial Bus (“USB”), or through any other external/peripheral communication ports Known today or to be devised in the future. In cases where the receiver attaches to an external communication ports, such as a USB port, the receiver's Host Data Bus Interface 160 may be a communication module such as a USB communication module or circuit adapted to interface and communicate with the host device through the host's external communication port.
According to some embodiments of the present invention, the Memory Access Control Unit 130, operating in accordance with a given service protocol, may facilitate retrieval back into the receiver 100 of received data stored on the digital memory 410 associated with a host processor 400. Once retrieved into the receiver, data which has not been sufficiently demodulated or otherwise processed, may be further demodulate or processed by the Data Demodulation & Error Detection/Correction Processing Module 120.
According to some embodiments of the present invention, the writing and reading of data to and from the digital memory facilitate the rearrangement of data. For example, righting received data to the digital memory in a first order and reading it back in a second order may facilitate the interleaving or de-interleaving of the data. Various data manipulations are possible using read and write operations to the digital memory associated with the host device and/or host processor. Although data interleaving and de-interleaving were the two examples of data manipulation given as part of this application, any data manipulation known today or to be devised in the future may be applicable to the present invention.
According to some embodiments of the present invention, data exchange between the receiver (and/or any other data engine) and the digital memory (e.g. HDRAM) may utilize data bufferization in order to accommodate for delays imposed by processing and responses times in the processor or controller with which the digital memory is associated. There are several parameters in a host device or system, which may impact the feasibility of this solution, and which may require a certain minimal size for a buffer. In order to define the buffering parameters, according to some, but not all, examples of the present invention the following assumptions may be made:
The receiver may require an internal buffer to compensate for the latency in the host response. Assuming the policy is for the receiver to request host (memory) service when the buffer is half full (B/2), and deliver half a buffer each time, the following relations shall may exist:
The meaning of these formulas or relations is that the buffer may be sufficiently large such that once the receiver requests a service, there is enough time for the host to respond to the service request, and move data from the buffer to the HDRAM before the buffer is overflows because of fresh incoming data. Thus, the minimum buffer size may be given by:
B>2THR/(1 /RID-1/RHDD)
As an example, with THR=1 ms; RID=32 Mbps; RHDD=160 Mbps fast parallel interface) the buffer size will be B>80 Kbits.
In such a case 40 Kbits will be sent per a single service request, and 2 bits data download to the HDRAM will last 62.5 milliseconds.
For RID=1.5 kbps, B is negligible.
For HDRAM utilized as a data-pump:
(THR+B/(2 RHDD))<B/(2 REP).
The meaning of this requirement is that the buffer is sufficiently large such that once the receiver requests a service. There is enough time for the host to respond to the service request, send data from the HDRAM to the buffer for processing, move processed data back from the buffer to the HDRAM and all of this before the processing unit overflows the buffer with a new processed data. Thus, the minimum buffer size is given by:
B>2 THR/(1/REP−1/RHDD)
If REP<RID the buffer size will be smaller, which is good, however for our example, it would take 0.5 seconds to perform FEC for the entire table, which will be on the expense of the off-time, and hence will not be power efficient.
On the other hand If REP>RID the buffer size will be larger, however, the time for the decoding of the entire table will be approximately inversely proportional.
While certain features of the invention have been illustrated and described herein, many modifications, substitutions, changes, and equivalents will now occur to those skilled in the art. It is, therefore, to be understood that the appended claims are intended to cover all such modifications and changes as fall within the true spirit of the invention.
This Patent Application is a Continuation-in-Part of U.S. Provisional Patent Applications Ser. No. 60/610,201, filed on Sep. 16, 2004, which is hereby incorporated by reference in its entirety.
| Filing Document | Filing Date | Country | Kind |
|---|---|---|---|
| PCT/IL04/01082 | WO |
| Number | Date | Country | |
|---|---|---|---|
| 60610201 | Sep 2004 | US |