The invention relates to an apparatus with two processing parts. The invention further relates to a processing assembly with a processing part and a connection to a further processing part.
The last decade the increased power of personal computers (PCs) and the increased availability of digital content, such as audio and video, has led to a convergence between PCs and the traditional Consumer Electronics (CE) devices, such as rendering devices, like a television or surround amplifier, and storage devices, such as a VCR, rewritable optical storage device, or dedicated hard-disk recorders. An example of a software architecture running on a PC is Microsoft's Multi-Media Centre based on a specialized version of Windows XP. The PC is based on the conventional PC architecture, which in modern PCs uses PCI-express as the main input/output (I/O) architecture (interconnect) between end points. An end point may simply be a circuit, such as a graphics IC, Gigabit Ethernet controller, memory ICs, etc., but may also be a bridge to other sub-networks, like USB, the conventional PCI-bus, SATA, etc. Typically, in a multi-media PC devices (hardware units) that can be accessed directly or indirectly via PCI-express include at least a TV tuner, audio tuner, optical storage device, and hard-disk (e.g. via SATA).
Using a multi-media PC based on PCI express in general gives enough bandwidth and functionality (e.g. support of isochronous streams) to effectively support multi-media applications commonly present in PCs (e.g. games) as well as CE applications like viewing HD TV with surround sound. In practice, however, PCs and CE devices (in particular TVs) have a different origin, which is still reflected in current devices. For example, graphics processing is of a different nature. In a PC traditionally it was an application program that provided pixel input for a window whenever there was change. The graphics systems determined for each screen pixel from which window it originated and what its value should be (inverse mapping). In TVs traditionally an entire image changes at fixed rates (e.g. 25 frames per second). The graphics system is designed for this and continuously maps input pixels on to screen pixels, in the mean time performing all sorts of video processing such as scaling. Both types of graphics processing have achieved a high level of sophistication, where traditional PC graphics is superior in dealing with 3D games and high-end TV graphics is superior in dealing with HD Television signals and real-time video conversion/scaling. Many more differences exist between TVs and PCs, for example a PC has always been open and incorporated many applications. This has resulted in relatively heavy-weight operating systems which are inherently slow in booting. The openness and many applications with unpredictable interaction make a PC more prone to crashing. TVs have traditionally been closed, have considerable fewer applications and consequently have a shorter boot time, are more responsive to user input and less prone to crashing.
Some attempts have been made on letting a multi-media PC perform more like a CE device in responsiveness and reliability. For example, multi-media PCs are known that that support a dual-mode boot. In a first mode, very limited functionality is available, typically the device only performs audio functions. The windows operating system is not booted, instead a simple operating system is booted from ROM. This reduces the boot-up time, the responsiveness to user input and the reliability. If the user wants more advanced functions (typically an image is required), the full PC is booted in the second mode. The first mode uses thus a subset of the second mode. The system has one processor that depending on the mode is loaded with software. The modes are mutually exclusive.
It is an object of the invention to provide an improved architecture for supporting two sets of processing requirements.
To meet an object of the invention, an apparatus includes at least a first hardware part and a second hardware part, where each of the first and second part include a respective processing element and a respective signal connection to a respective memory element for providing program code to the processing element of the respective part;
the apparatus further includes a third hardware part including at least one peripheral element acting as a source and/or destination of data; and a fourth hardware part including an I/O network for enabling communication between elements of the first and third part under control of first configuration data and for enabling communication between elements of the second and third part under control of distinct second configuration data. In this way an architecture is made with two processing parts, that may each be targeted at specific functionality, where peripherals can easily be shared. Access to the peripherals by each of the processing part is under control of respective configuration data. It is not required that each part has its own peripherals. For the invention it is irrelevant whether the first or second part include a single processing core, a single processor with multiple cores, or a multi-processor (possibly each with multiple cores). A part is defined by the processing elements and associated program.
This architecture enables, as described in claim 2, that the first and second parts can operate independent of each other and wherein the apparatus is arranged to selectively operate in at least:
a first mode wherein the first part and at least part of the third and fourth parts are used, the fourth part being operated under control of the first configuration data, or
a second mode wherein the second part and at least part of the third and fourth parts are used, the fourth part being operated under control of the second configuration data. For example, in a situation wherein the first part provides PC functionality and the second part provides TV functionality, the user may at power-up of the apparatus decide what he wants to do (e.g. purely watch television or perform other operations, such as browsing the Internet, managing a library of MP3 songs, etc.). The apparatus then activates the processing part associated with the instruction of the user.
The architecture also enables, as described in claim 3, to operate in a shared mode wherein the first part, second part, third part and the fourth part are used. In this mode the powers of both processing parts are joined. Both can perform specialized operations so that a higher quality performance can be achieved that can not easily be achieved with a single processing part, for example since the approach/requirements seem conflicting as is the case for graphics processing and TV signal processing.
In a preferred embodiment as described in claim 4, both the first and second part are arranged to provide audio and/or video functionality, the processing element of the first part being more powerful or more versatile than the processing element of the second part. Powerful is here expressed in processing power on a comparable basis (e.g. recalculated to a suitable expression in mega-instructions or operations per second). Typically, the second part also requires less (energetic) power. This gives the user of the apparatus the choice to let the apparatus work in the second mode (e.g. just watch TV), with the advantage of processing optimized for that purpose (e.g. an optimized image for a TV signal, i.e. higher quality), and less power consumption. Alternatively, the user can let the apparatus operate in the first mode and open up more functionality (e.g. being able to also record the video signal, manage a library of AV content, browse the Internet, etc) using the additional power, usually at the cost of a higher energy consumption.
In a preferred embodiment, the apparatus is arranged to, in response to a first trigger, start operation in the second mode and, in response to a second, sequentially later trigger, switch over to operation in the first mode. In this way, the second, low power part is responsible during starting (“booting”) of the system, e.g. in response to a trigger received via a remote control. In response to a later second trigger (e.g. an explicit request to start the first part; a request for a function not supplied by the second part but only by the first part, e.g. pressing a “browse” button on the remote control; or a signal that the first part has finished booting and is ready to take over) control is handed to the first part. In this way an apparatus with improved responsiveness is achieved.
In an embodiment as described in the dependent claim 6, the apparatus includes computer program instructions for causing the processing element of the second part to act as a co-processor for the processing element of the first part. In this way, in the shared mode responsibility is clear (typically simplifying the programs) whereas still the second processing part's power can be used.
In an embodiment, as described in the dependent claim 7, the computer program instructions are for causing the processing element of the second part to use at least one peripheral element of the third part to assist in providing the co-processing functionality. In this way, not just the processing part is used but also dedicated ICs may be used under control of the second processing part. This has the advantage that drivers that already exits for the second processing part can still be used and do not need to be ported to the first processing part. It also has the advantage that the first part does not need to be loaded further with additional drivers, decreasing performance and reliability of the first part.
In an embodiment, as described in the dependent claim 8, the apparatus includes computer program instructions for causing the processing element of the second part to act as a watch-dog for the processing element of the first part. The second part may take any suitable action if it detects that the first part no longer functions properly (e.g. it has not received signal from the first part for a predetermined period). Such action may, for example, be to switch the apparatus to the second mode permanently, or to switch the apparatus to the second mode, reset the first part and after the first part has been successfully restarted switch back to the original mode (first mode only or shared mode). In this way an apparatus is provided with improved reliability.
In a preferred embodiment, the apparatus includes a first computer program instruction set for execution by the processing element of the first part and for, upon execution, causing the apparatus to perform the function of a general purpose computing device and a second computer program instruction set for execution by the processing element of the second part and for, upon execution, causing the apparatus to perform the function of a specific AV device, in particular a television. In this way, the general purpose PC-type of world, with advantages such as openness, rapid advances in hardware and/or software, wide range of HW/SW modules, etc., can be optimally combined with the advantages specific for AV devices, such as reliability, responsiveness, and high-quality processing of television-type of signals. In this way an improved apparatus is provided that can both act as a general purpose PC as well as a Television.
In a preferred embodiment, as described in the dependent claim 9, the apparatus includes:
a computer graphics peripheral element for generating a video output image to a display; the computer graphics peripheral element being accessible through the I/O network and being controlled by the computing element of the first part;
a video processing peripheral element for processing a television signal; the video processing peripheral element being accessible through the I/O network and being controlled by the computing element of the second part; and
computer program instructions for causing the first or second computing element to assign at least one window on the video output image to be generated by the computer graphics peripheral element and at least one further window to be generated by the video processing peripheral element.
In this way, optimal graphics processing can be applied simultaneously to different parts (windows) of a display screen. Typically, the PC graphics card will generate the actual output signal (e.g. connected via DVI or HDMI to a display) where the graphics card may be responsible for the processing of content of some of the windows and the TV video processor for other windows. For example, if the user browses the Internet or plays a graphics game in one or more windows, these signals for these windows may be processed by the graphics processor. If the user in the mean time has opened a window to monitor the start of the news, this window may be processed by the TV video processor. In this example, overall responsibility may be given to the PC (first part). If on the other hand the user watches a movie in a full-screen window (processed by the TV video processor) with a small pop-up window to retrieve some additional information of the movie from the Internet (processed by the PC graphics processor), total responsibility may be given to the TV video processor. Responsibility may also be simply divided per window, as is possible using certain graphics formats, like Open-GL.
In a preferred embodiment as defined in claim 11, the I/O network is of a hierarchical switched I/O network type; the fourth part including a primary switching element (S0) of the network. Switched networks offer, in general, a higher bandwidth and more scalability. The primary switching element is shared by both processing parts. Preferably, the I/O network is PCI Express. This is the new standard for PC-based I/O networks expected to meet current and future demand for quite some years.
In an embodiment as defined in the dependent claim 12, the first and second architecture part include a respective single first and second root element of the switched I/O network; each root element being directly connected to the respective processing element and to at least the primary switching element. The root element may be chosen specific for the first processing part, e.g. giving the performance required for the processor to access its memory. The root element can also be associated with all the configuration data relevant for its part (e.g. it may retrieve it from a BIOS in its own part). In this way it can be assured that without any problem the first or second part can also perform its functionality without requiring the other part (second part or first part respectively). It can perform its own configuration totally independently. For each root element it can be chosen independently whether or not and to which extent it provides access to elements in its part through the I/O network. Preferably, the first and second configuration data are for configuring the primary switching element and the first or second root element, respectively. In PCI Express, the root element is referred to as root complex.
In a preferred embodiment, the peripheral element on the I/O network is at least one of: an audio tuner, a video tuner, a hard disk unit, optical storage unit, solid state memory card, audio and/or video decoder, a wide or local area network interface, a teletext decoder, a USB bridge. Any combination of these may be used. A user may buy a PC (first part, third part and fourth part) with some of these and then later-on buy a TV module with the second part and optionally also one or more peripheral elements (additionally element for part three). Similarly, the user may buy a TV (part 2, 3 and 4) and later-on buy a plug-in module that gives PC functionality (part 1 and optionally some elements, such as an Internet interface, for part 3).
To meet an object of the invention, a processing assembly includes a first hardware part including a first processing element and a first memory element for providing program code to the first processing element; a third hardware part including at least one peripheral element acting as a source and/or destination of data; and a fourth hardware part including an I/O network coupled to the first and third part for enabling communication between elements of the first and third part under control of first configuration data; the fourth hardware part further including signal connections for connection to a second hardware part including a second processing element and a second memory element for providing program code to the second processing element; the fourth part being operable to receive distinct second configuration data via the signal connections to enable communication between elements of the second and third part under control of the second configuration data. It will be appreciated that in this context the first part may be any of the first or second part of the entire apparatus described above. For example, a user may buy a PC (first part, third part and fourth part) with some of these and then later-on buy an add-on TV module with the second part and optionally also one or more peripheral elements (additionally element for part three). Similarly, the user may first buy a TV (part 2, 3 and 4) and later-on buy a plug-in module that gives PC functionality (part 1 and optionally some elements, such as an Internet interface, for part 3).
These and other aspects of the invention are apparent from and will be elucidated with reference to the embodiments described hereinafter.
In the drawings:
Where in different figures same reference numerals or abbreviations are used, they refer to the same feature unless differences are indicated.
The apparatus further includes a third hardware part AP3 including at least one peripheral element (shown are PE-1, PE-2, PE-3, and PE-4) acting as a source and/or destination of data. Preferably, the apparatus is a multi-media device, in particular capable of processing audio and/or video data (AV). Advantageously, the apparatus can also operate as a general purpose computer and can be loaded with an operating system, such as Windows or Linux, and suitable application programs and drivers to provide the user a wide range of functionality. As such, the peripheral element on the I/O network is preferably at least one of: an audio tuner, a video tuner, a hard disk unit, optical storage unit, solid state memory card, audio and/or video decoder, a wide or local area network interface, a teletext decoder, a USB bridge. Any combination of these may be used.
The apparatus further includes a fourth hardware part AP-4 including an I/O network (not shown separately in
In this way an architecture is made with at least two processing parts AP-1 and AP-2, that may each be targeted at specific functionality, where peripherals can easily be shared. The I/O network AP-4 is shared. Access to the peripherals by each of the processing parts is under control of respective configuration data. It is not required that each part has its own peripherals in its own part AP-1 or AP-2 with the exception of a memory.
In a preferred embodiment both the first and second part are arranged to provide at least audio and/or video functionality, the processing element of the first part being more powerful than the processing element of the second part. Powerful is here expressed in processing power on a comparable basis (e.g. recalculated to a suitable expression in mega-instructions or operations per second). Typically, the second part also requires less energy. For example, the first processing part may include a conventional PC processor, such as a Intel's Pentium 4 or AMD's Athlon, targeted at providing general purpose computer functionality. The second processing part may include a processor that is more suitable for specific AV functionality, such as a MIPS RISC processor, ARM-based embedded processor, or even a DSP (Digital Signal Processor). The second processing part may also be a multi-processor subsystem, e.g. comprising a RISC/embedded processor and a DSP.
In a preferred embodiment, the apparatus includes a first computer program instruction set (not shown) for execution by the processing element CPU-1 and for, upon execution, causing the apparatus to perform the function of a general purpose computing device. The software may include a conventional operating system, such as Windows XP or Linux. Preferably, an optimized operating system with AV application programs is used, such as Windows Media Center or Linux MythTV. The apparatus also includes a second computer program instruction set for execution by the processing element of the second part and for, upon execution, causing the apparatus to perform the function of a specific AV device, in particular a television. In this way, the general purpose PC-type of world, with advantages such as openness, rapid advances in hardware and/or software, wide range of HW/SW modules, etc., can be optimally combined with the advantages of specific AV devices, such as reliability, responsiveness, and high-quality processing of television-type of signals. The computer program instruction set may be loaded from non-volatile storage in its own part, but may also be entirely or partly loaded from a shared storage device, such as a hard disk. Preferably, the software for the second part AP-2 is loaded from a solid state non-volatile memory, such as ROM or Flash, to ensure that the apparatus can still function (partially) even if the hard disk crashes. This will give a user time to replace the faulty hard disc and reinstall the software for the first part.
The architecture according to the invention enables to operate the first and second parts independent of each other. They may also be used in a shared mode. In a first mode, the first part AP-1 and at least part of the third and fourth parts are used. In
The architecture also enables the operation in a shared mode wherein the first part, second part, third part and the fourth part are used. In this mode the powers of both processing parts are joined. Both can perform specialized operations or one can be used for a specialized function whereas the other provides general purpose processing functionality.
In a preferred embodiment, the sharing is achieved by in response to a first trigger, start operation in the second mode and, in response to a second, sequentially later trigger, switch over to operation in the first mode. In this way, the low power part is responsible during the starting (“booting”) of the system. To this end, the first part may, for example, be responsible for dealing with user control input via a control device, such as a remote control. As described before, the remote control or other user input, like activating a key on the apparatus, may also be monitored using a dedicated circuit. The second part can then also decide if it is immediately required to also power-up the first part. The second part may also wait for a second trigger from the user (e.g. a request for a function not supplied by the second part but only by the first part) and then activate the first part. The second trigger may be an explicit trigger from the user, e.g. pressing a “browse” button on the remote control. The second trigger may also occur during the processing triggered by the first trigger. For example, during the processing performed by the second part it is required to download a large file through the Internet and the first part contains the drivers for this. It is then the second part that takes the initiative and generates the second trigger internally; it is responsible for starting (“booting”) of the system, e.g. in response to a trigger received via remote control. It may also be the first part that generates the second trigger. For example, at power-up of the apparatus also the first part is activated immediately. Since this one typically needs to load and initialize substantially more software and typically also uses more peripherals, it will take longer before the first part is fully operational. As soon as the first part determines that it is sufficiently capable of performing the function desired by the user it may issue a trigger to take over from the second part. It may do this in any suitable way, e.g. by changing the I/O network and resetting the second part. It may also issue a signal to the second part so that a more graceful taking-over can take place. For example, the second part can in response to detecting such a signal release control in one go or in steps and inform the first part of which peripherals it now has the main control over.
Particularly advantageous examples of a shared mode lie in where the second part acts as a co-processor and/or watchdog for the first part. To be able to operate as a co-processor CPU-2 needs to be able to control a peripheral on behalf of CPU-1 or supply data to a peripheral on behalf of CPU-1. Such peripheral is then preferably a shared element in AP-3. If so desired, output of CPU-2 may also be used as input of CPU-1. A preferred arrangement for this is where AP-3 includes as a peripheral element a shared memory. Of course also other known communication/sharing schemes between two or more CPUs may be used. To be able to operate as a watchdog, the apparatus includes computer program instructions for causing CPU-2 to act as a co-processor for CPU-1. CPU-2 may on its own perform all co-processing functionality (i.e. without using any other peripherals with the exception of a device that provided the software). Preferably, the computer program instructions are for causing CPU-2 to use at least one peripheral element of AP-3 to assist in providing the co-processing functionality. In this way, not just CPU-2 is used but also dedicated ICs may be used under control of CPU-2.
In an embodiment, the apparatus includes computer program instructions for causing CPU-2 to act as a watch-dog for CPU-1. The watchdog function may be performed in any suitable way. For example, CPU-1 may be programmed to regularly (e.g. every second) provide a trigger to CPU-2. If no such trigger was received for a predetermined period (e.g. 2 to 10 times the regular period), CPU-2 may assume that CPU-1 has crashed. CPU-2 may take any suitable action if it detects that the first part no longer functions properly. Such action may, for example, be to switch the apparatus to the second mode permanently, it may switch the apparatus to the second mode, reset the first part and after the first part has been successfully restarted switch back to the original mode (first mode only or shared mode). The watchdog may thus reconfigure the I/O network. It will be appreciated that in this context the less powerful CPU may be co-processor or watchdog, but it is also possible that the more powerful CPU is the co-processor and/or watchdog. Actually, both CPU-1 and CPU-2 could be watchdog of each other.
In a preferred embodiment as shown in
Preferably, the I/O network is PCI Express. PCI Express in addition to a main switch also has a single root complex. In an embodiment as shown in
In a preferred embodiment it is not the user that directly controls the mode in which the apparatus works, but the apparatus includes a timer device (not shown) that additionally may trigger it. Preferably, the timer is of a low-power type. The user may set the timer in any conventional way. The timer may support any of the following:
It will also be appreciated that instead of building a ‘combination’ apparatus offering a combination of two essentially different functionalities, such as a combination of a PC and TV, it is also possible to build a modular apparatus that keeps on offering similar functionality, albeit at different quality and/or reliability. For example, AP-1 might cover the processing of a basic TV or basic CE apparatus in general. The main module might then include AP-2, and (part of) AP-4 and AP-3. This module might provide a TV-receiver and optionally basic optical storage functionality, such as playback of an audio CD, conventional recording on a hard disk or optical storage. The add-on module might add a more advanced processor in the form of part AP-1 and optionally one or more additional peripherals, such as Internet access or a second tuner. In shared mode, the add-on module might provide additional functions such as double-window TV, PIP (picture in picture), internet browsing in a window while watching the TV, time-slip recording, etc. If so desired, the add-on module might also provide applications typically associated with a PC, such as playing games. Preferably, the add-on module also supports more advanced image processing functions, such as the Philips Pixel Plus and Natural Motion video processing functions.
It will be appreciated that the invention also extends to computer programs, particularly computer programs on or in a carrier, adapted for putting the invention into practice. The program may be in the form of source code, object code, a code intermediate source and object code such as partially compiled form, or in any other form suitable for use in the implementation of the method according to the invention. The carrier may be any entity or device capable of carrying the program. For example, the carrier may include a storage medium, such as a ROM, for example a CD ROM or a semiconductor ROM, or a magnetic recording medium, for example a floppy disc or hard disk. Further the carrier may be a transmissible carrier such as an electrical or optical signal, which may be conveyed via electrical or optical cable or by radio or other means. When the program is embodied in such a signal, the carrier may be constituted by such cable or other device or means. Alternatively, the carrier may be an integrated circuit in which the program is embedded, the integrated circuit being adapted for performing, or for use in the performance of, the relevant method.
It should be noted that the above-mentioned embodiments illustrate rather than limit the invention, and that those skilled in the art will be able to design many alternative embodiments without departing from the scope of the appended claims. In the claims, any reference signs placed between parentheses shall not be construed as limiting the claim. Use of the verb “comprise” and its conjugations does not exclude the presence of elements or steps other than those stated in a claim. The article “a” or “an” preceding an element does not exclude the presence of a plurality of such elements. The invention may be implemented by means of hardware comprising several distinct elements, and by means of a suitably programmed computer. In the device claim enumerating several means, several of these means may be embodied by one and the same item of hardware. The mere fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measures cannot be used to advantage.
Number | Date | Country | Kind |
---|---|---|---|
05111492.4 | Nov 2005 | EP | regional |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/IB06/54361 | 11/21/2006 | WO | 00 | 5/27/2008 |