A portion of the disclosure of this patent document contains material, which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all copyright rights whatsoever. The following notice applies to the software and data as described below and in the drawings hereto: Copyright © 2004, Microsoft Corporation, All Rights Reserved.
This invention generally relates to the field of multimedia devices. In particular, the present invention is directed to a system architecture that enables a host application running on the multimedia device to provide help in order for users to utilize multimedia applications more effectively.
The growing popularity of multimedia devices, such as video game consoles, and their applications has spawned countless websites, chat groups, bulletin boards, printed publications, etc., for the exchange of information on how users may better utilize the applications (e.g., games). However, because of the limited ability of conventional multimedia devices to provide system services, information regarding tips, shortcuts and other features cannot be presented while users are interacting with the multimedia application itself. Thus, if a user requires help with an application, the user must stop their multimedia experience and turn to an external source of information for such help. This providers for a poor overall user experience.
As multimedia devices grow in power, more complex applications will developed, which will create an even greater demand for information on how to better utilize these complex applications. Thus, there is a need for a system and method of providing context sensitive information, such a tips, etc., to users of a multimedia device while they interact with an application running on the multimedia device to further enhance the users' experience. The present invention provides such a solution.
This present invention is directed to a system architecture having a host application that provides information related to an application with which user is currently interacting. In accordance with an aspect of the invention there is provided a multimedia console having a central processing unit, a graphics processing unit, a memory and an input device. A system application residing in the memory and running concurrently with a multimedia application receives a request for help via the input device and retrieves context sensitive information to satisfy the request. The context sensitive information is provided from an external source to the multimedia application.
According to a feature of the invention, the system application receives state information from the multimedia application regarding a current context of the multimedia application. The state information is defined by a schema that may also define a granularity of the context sensitive information. The granularity may define under which states context sensitive information is available.
According to another feature, the system application instructs the multimedia console to retrieve the context sensitive information from the external source. The context sensitive information may be displayed as a graphical overlay on top of the multimedia application.
According to yet another feature, the context sensitive information may be updated in accordance with user inputs regarding a particular state of the multimedia application.
According to another aspect of the invention, there is provided a method of providing help related to a present state of a multimedia application in a multimedia console having a central processing unit, a graphics processing unit, a memory, and an input device. The method includes receiving a request for help, receiving state information indicative of the present state of the multimedia application, retrieving context sensitive information in response to the request and the state information, and providing the context sensitive information to satisfy the request.
Additional features and advantages of the invention will be made apparent from the following detailed description of illustrative embodiments that proceeds with reference to the accompanying drawings.
The foregoing summary, as well as the following detailed description of preferred embodiments, is better understood when read in conjunction with the appended drawings. For the purpose of illustrating the invention, there is shown in the drawings exemplary constructions of the invention; however, the invention is not limited to the specific methods and instrumentalities disclosed. In the drawings:
A graphics processing unit (GPU) 108 and a video encoder/video codec (coder/decoder) 114 form a video processing pipeline for high speed and high resolution graphics processing. Data is carried from the graphics processing unit 108 to the video encoder/video codec 114 via a bus. The video processing pipeline outputs data to an A/V (audio/video) port 140 for transmission to a television or other display. A memory controller 110 is connected to the GPU 108 to facilitates processor access to various types of memory 112, such as, but not limited to, a RAM (Random Access Memory).
The multimedia console 100 includes an 1/controller 120, a system management controller 122, an audio processing unit 123, a network interface controller 124, a first USB host controller 126, a second USB controller 128 and a front panel I/O subassembly 130 that are preferably implemented on a module 118. The USB controllers 126 and 128 serve as hosts for peripheral controllers 142(1)-142(2), a wireless adapter 148, and an external memory device 146 (e.g., flash memory, external CD/DVD ROM drive, removable media, etc.). The network interface 124 and/or wireless adapter 148 provide access to a network (e.g., the Internet, home network, etc.) and may be any of a wide variety of various wired or wireless interface components including an Ethernet card, a modem, a Bluetooth module, a cable modem, and the like.
System memory 143 is provided to store application data that is loaded during the boot process. A media drive 144 is provided and may comprise a DVD/CD drive, hard drive, or other removable media drive, etc. The media drive 144 may be internal or external to the multimedia console 100. Application data may be accessed via the media drive 144 for execution, playback, etc. by the multimedia console 100. The media drive 144 is connected to the I/O controller 120 via a bus, such as a Serial ATA bus or other high speed connection (e.g., IEEE 1394).
The system management controller 122 provides a variety of service functions related to assuring availability of the multimedia console 100. The audio processing unit 123 and an audio codec 136 form a corresponding audio processing pipeline with high fidelity and stereo processing. Audio data is carried between the audio processing unit 123 and the audio codec 126 via a communication link. The audio processing pipeline outputs data to the A/V port 140 for reproduction by an external audio player or device having audio capabilities.
The front panel I/O subassembly 130 supports the functionality of the power button 150 and the eject button 152, as well as any LEDs (light emitting diodes) or other indicators exposed on the outer surface of the multimedia console 100. A system power supply module 136 provides power to the components of the multimedia console 100. A fan 138 cools the circuitry within the multimedia console 100.
The CPU 101, GPU 108, memory controller 110, and various other components within the multimedia console 100 are interconnected via one or more buses, including serial and parallel buses, a memory bus, a peripheral bus, and a processor or local bus using any of a variety of bus architectures. By way of example, such architectures can include a Peripheral Component Interconnects (PCI) bus, PCI-Express bus, also known as a Mezzanine bus.
When the multimedia console 100 is powered ON, application data may be loaded from the system memory 143 into memory 112 and/or caches 102, 104 and executed on the CPU 101. The application may present a graphical user interface that provides a consistent user experience when navigating to different media types available on the multimedia console 100. In operation, applications and/or other media contained within the media drive 144 may be launched or played from the media drive 144 to provide additional functionalities to the multimedia console 100.
The multimedia console 100 may be operated as a standalone system by simply connecting the system to a television or other display. In this standalone mode, the multimedia console 100 allows one or more users to interact with the system, watch movies, or listen to music. However, with the integration of broadband connectivity made available through the network interface 124 or the wireless adapter 148, the multimedia console 100 may further be operated as a participant in a larger network community.
When the multimedia console 100 is powered ON, a set amount of hardware resources are reserved for system use by the multimedia console operating system. These resources may include a reservation of memory (e.g., 16 MB), CPU and GPU cycles (e.g., 5%), networking bandwidth (e.g., 8 kbs), etc. Because these resources are reserved at system boot time, the reserved resources do not exist from the application's view.
In particular, the memory reservation preferably is large enough to contain the launch kernel, concurrent system applications and drivers. The CPU reservation is preferably constant such that if the reserved CPU usage is not used by the system applications, an idle thread will consume any unused cycles.
With regard to the GPU reservation, lightweight messages generated by the system applications (e.g., popups) are displayed by using a GPU interrupt to schedule code to render popup into an overlay. The amount of memory required for an overlay depends on the overlay area size and the overlay preferably scales with screen resolution. Where a full user interface is used by the concurrent system application, it is preferable to use a resolution independent of game resolution. A scaler may be used to set this resolution such that the need to change frequency and cause a TV resynch is eliminated.
After the multimedia console 100 boots and system resources are reserved, concurrent system applications execute to provide system functionalities. The system functionalities are encapsulated in a set of system applications that execute within the reserved system resources described above. The operating system kernel identifies threads that are system application threads versus multimedia application threads. The system applications are preferably scheduled to run on the CPU 101 at predetermined times and intervals in order to provide a consistent system resource view to the application. The scheduling is to minimize cache disruption for the multimedia application running on the console.
When a concurrent system application requires audio, audio processing is scheduled asynchronously to the multimedia application due to time sensitivity. A multimedia console application manager (described below) controls the multimedia application audio level (e.g., mute, attenuate) when system applications are active.
Input devices (e.g., controllers 142(1) and 142(2)) are shared by multimedia applications and system applications. The input devices are not reserved resources, but are to be switched between system applications and the multimedia application such that each will have a focus of the device. The application manager preferably controls the switching of input stream, without knowledge the multimedia application's knowledge and a driver maintains state information regarding focus switches.
Referring to
As noted above, concurrent system applications provide system functionalities as the multimedia application executes, and require little, if any, support from the multimedia application. As will now be described in further detail, an exemplary system functionality provided by a concurrent application is the retrieval and display of tips, shortcuts and other context sensitive help information to enhance the user's experience with respect a particular application running on the multimedia console 100.
Referring to
Next, the console 100 receives the request for information at step 202, via an appropriate input. A concurrent system application running on the console 100 then interprets the request and executes upon it at step 204. It is preferable to provide the user with context sensitive information relative to a present state of the multimedia application. As such, state information related to the present state of the multimedia application is also retrieved by the concurrent system application at step 204. The state information may be retrieved through messaging and the application manager. The multimedia application uses a predefined schema to determine what information is passed to the concurrent system application. The schema may define, e.g., a granularity of information to be provide to an end user, whether help information is available for a current state, etc.
In accordance with the present invention, the context sensitive help information may be gathered and provided in many ways, as will be recognized by one of ordinary skill in the art. Referring to
Alternatively, help information may be provided to consoles via removable media and memory unit 146. Further, the context sensitive help information related to a particular state of a multimedia application may be updated such that more relevant help information may be provided as more users encounter problems and provide solutions. Still further, the context sensitive information may be ranked based on a number of times it has been requested, feedback from other users regarding if the help information solved a particular problem, etc.
Referring again to
Referring to
While the present invention has been described in connection with the preferred embodiments of the various Figs., it is to be understood that other similar embodiments may be used or modifications and additions may be made to the described embodiment for performing the same function of the present invention without deviating therefrom.