At least one embodiment of the present invention pertains to mobile electronic devices for communication, entertainment and/or organization such as advanced mobile phones and other similar devices, and more particularly, to a mobile device with customizable functionality and form factor. At least one embodiment of the resent invention pertains to a time-based intelligence system for storage, access, and processing of information on a mobile device.
Consumer electronic devices such as mobile electronic devices have undergone significant technological advances in recent years. Availability of advanced silicon technology, processing power, memory and advanced input/output (I/O) and display systems as well as an increasing level of communication bandwidth including next generation wireless cellular as well as WiFi/WiMax wireless broadband technologies enable the building of more-sophisticated devices.
Currently the majority of device innovations concentrate around increasing the computing capability of wireless handsets. In some cases, wireless handsets of today are more powerful than supercomputers of decades ago. More memory, processing power and bandwidth are available today, and the end consumer is able to generate and receive orders of magnitude more information compared to just a few short years ago. However, innovations in the areas of customization, organization and advanced services remain behind the computational power increases. In fact, since the first major PDAs were introduced nearly 20 years ago, there has been little done to solve the organizational needs of consumers besides having access to an electronic version of a paper calendar. Despite the many available electric devices, the majority of the population is still relying on paper calendars due to their ease of use, reliability and lower cost and the few additional benefits offered by their electronic counterparts.
The architecture of advanced mobile devices in the prior art is a highly integrated solution which does not allow for modularization and detachability of components. The goal of most advanced mobile phone designs is to maximize the computing power of the device to support as many features as possible and allow for future programmability and application development. This dictates a very high level of integration. At the core of this architecture is a high-powered integrated processor that controls all processes within the mobile device. The integrated processor incorporates multiple micro-processing cores and digital signal processors enabling the device to run as a general purpose machine. The architecture generally utilizes a hybrid approach to control the various components and programs running on the device. Overall it employs a PC-like environment with a general purpose operating system (OS) which is capable of running any number of programs which comply with its OS standards.
On the other hand, it needs to incorporate mechanisms for support of real time applications such as phones. Building a general-purpose engine to accommodate future programming and application capabilities as well as making the device broadly applicable to a large number of usage scenarios by various device manufacturers inherently requires a significant amount of overhead, significant wasted memory and computing resources, both passively as well as during runtime, to accommodate mostly unused features. It also significantly increases the effective number of clock cycles per useful operation, the clock frequency required to run the device in order to obtain a reasonable response time for critical application steps, resulting in significant power consumption and cost.
To accommodate the general-purpose characteristic of the architecture, a significant number of compromises are made, and as a result, the performance of frequently used features can suffer due to interruptions and accommodations made for such general-purpose items. In some cases, this has led to phones that take a long time to boot up, thus jeopardizing the main features of the device. In some cases, they drain the device battery to an unacceptable level, disabling critical functions such as emergency calling as well as increase the turn-on time and device response time to a point of noticeable difference and delay in human interaction, especially upon starting up the device, eliminating the highly desired instant-on feature of the device.
One aspect of the technique introduced here is a mobile device that includes a core engine to control operation of the mobile device, and a plurality of modules coupled to the core engine, where each module is dedicated to perform a different one of a plurality of functionality classes of the mobile device, and each of the plurality of modules contains its own processing element and memory. The mobile device has user-customizable functionality according to a user's needs and/or desires. The mobile device may be in the form of a multi-function mobile electronic system with distributed memory and processing elements. Such system can include functionally distinct and independently operable intelligent sub-systems (e.g., modules) which together form a multi-functional mobile electronic system while sharing information with and/or through a master subsystem (e.g., a core engine). The sub-systems can also share a data exchange block. The sub-systems can further share tag information with and/or through the master subsystem. The system is easily extendable to add additional functionality by adding additional functionally distinct and independently operable sub-systems.
Another aspect of the technique introduced here is a mobile device with a user-customizable physical form factor. The mobile device may be in the form of multi-function mobile electronic system with distributed memory and processing elements, with the ability to attach and detach from the main system chassis (housing) at the manufacturing stage, assembly stage, post-packaging, or post-sale stage. The functionally distinct and independently operable intelligent sub-systems together form a multi-functional mobile electronic system while sharing tag information with and/or through the master subsystem via shared connectors, with applicable control signals to enable such sharing.
Another aspect of the technique introduced here is a mobile device with one or more detachable intelligent displays for communication to, and/or as access to, mobile device and/or other devices. Further, a mobile device can be shared through use of such intelligent detachable displays. Independently operational small module displays can be combined to form a large display for the mobile device. The mobile device may include, or have associated with it, a plurality of independently operable display devices, which are combinable to form a single larger display device for the mobile device.
Another aspect of the technique introduced here is a time-based information system (TIBIS) with event-based storage, access and retrieval functionality, which can be used in a mobile device such as described above and/or other type of processing system. The TIBIS can include information storage and organization (i.e., a file system) that is based on time instead of file locations in a directory. Further, it can include temporary storage and organization of event, information tags, or content in user-specified or machine-defined time intervals in a short-term memory (STM). It further can include long-term or permanent storage and organization of events, information tags, or content in user-specified or machine-defined time intervals in a long-term memory (LTM). Such long-term or permanent storage and organization of event, information tags, or content may be implemented with no ability to rewrite the memory. The STM may be implemented as local non-volatile memory of the mobile device. The LTM may also be implemented as non-volatile memory, which may be local memory of the mobile device, which may be removable, or it may be remote memory on a network.
The TIBIS can include a method for capture, storage and retrieval of information in an information storage device such as a mobile electronic system based on a multi-category tagging mechanism covering temporal, geographical/location, context as well as user-defined concepts. This can involve generation, storage, distribution of multi-modal tagging of events in an electronic apparatus such as a mobile information device. It can also include a method for fast hardware-based search and retrieval of information based on the multi-modal tag system. The TIBIS provides information archiving based on time-based organization without disk fragmentation, the need for multiple backup, or the possibility of tampering with data.
One or more embodiments of the present invention are illustrated by way of example and not limitation in the figures of the accompanying drawings, in which like references indicate similar elements and in which:
References in this specification to “an embodiment”, “one embodiment”, or the like, mean that the particular feature, structure or characteristic being described is included in at least one embodiment of the present invention. Occurrences of such phrases in this specification do not necessarily all refer to the same embodiment.
A “mobile device”, as the term is used herein, means any device that is designed to be worn by a person, carried in an article of clothing or personal accessory (e.g., a purse), or easily carried in one hand by a person. As noted above, the functionality needed by the majority of users of mobile devices does not include an arbitrarily large number of features and applications. Having the technology for massive computation assembled at many places, it is desirable to alleviate the mobile device from area- and power-consuming functionality that is available almost everywhere. In its place, it is desirable to make the mobile device perform the functions that are essential for mobility (e.g. voice, text, video capture, storage and display, etc.) in the most robust fashion.
The present invention provides a robust solution for addressing the organizational needs of mobile consumers by providing, among other things, a new customizable mobile device, optimized for mobile usage, which provides customizability, lower cost, lower power, and better performance. A time-based intelligence system (TIBIS) is also introduced, which allows for robust storage, access, and processing of information on the mobile device.
(1) Customizable Mobile Device
(1A) Mobile Device with User-Customizable Functionality
The present invention offers consumers the ability to choose the functionality and form factor they desire in a mobile device. Each of these modules may be dedicated to perform a specific type of user-level functionality, such as voice communication, text, video capture, storage, display, location determination, games, etc. “User-level” functionality means functionality that is directly perceivable by a human user of the device.
The approach introduced here allows users the flexibility of using the components that they need and none of the ones that they do not need, allowing for customizability and reduction in cost and power dissipation.
The customized mobile platform introduced here allows people to communicate, entertain, and organize their mobile life. The mobile device uses “ultra thin client” architecture with custom-designed dedicated hardware for functions that need to be performed on the handset. The design removes the need for a multitude of programmable multi-function cores. This architecture results in high performance, fast response time, and very low-power consumption. In addition, this architecture allows users access to a rich set of customized applications based on their needs from the network, if needed.
One aspect of customized mobile device is a modularized architecture for a mobile device (“Modularized Mobile Architecture”). The modularized nature of this architecture allows for the ability to choose the functional modules that are combined to make a mobile device. This gives the ability to exchange and upgrade the functional modules over time. For this functionality, customization and flexibility, a level of service is established with the customer (user) making the device of their choice and giving the customer the ability to upgrade easily over time. For example, one functional module may be a communication module, which can be upgraded if a faster communications technology becomes available to the user, without the need to discard the entire mobile device.
The functional modules can include, for example, any one or more of: a communication module (e.g. 3G), audio module, video module, GPS module and game module. By optimizing the PE to the specific functions being performed by its functional module, it is possible to reduce the underlying area and power consumption of each functional module. Performance of each PE is better than the unified processing case with an integrated processor due to function specialization as well as the reduction in area, which facilitates timing requirements, placement and reliability of the PEs within each module. In some cases the performance and area savings are such that they allow for choosing an older generation process technology while still maintaining the performance requirements, which results in reduced manufacturing costs and overall component cost of the device.
By providing separate memory for each functional unit, the majority of issues with memory bottleneck are eliminated. Each functional module has its own dedicated memory and MEs are not shared resources, as is the case in traditional architectures. In other words, instead of separate memories for Instruction and Data for the whole system, this architecture allows for separate memory for each application-specific area for the mobile space.
This approach has many advantages over traditional architectures. It allows for robust information sharing mechanism among functional modules. In addition, it is possible to make significant improvements to the choice of technology used for the memory blocks to properly optimize for the type of data being stored in that specific memory element. Depending on the type of stored data and usage patterns, it is possible to vary the block size and read and write specifications of each memory element. The architecture preserves and enhances the functionality of each individual functional unit while allowing these units to communicate with extremely low overhead.
The core engine is a very efficient hardware-optimized engine that facilitates the communication between the modules and provides the central functionality of the mobile device. The mobile device is designed to accommodate specific functionalities for the mobile environment rather than provide unlimited programmability. The significant manipulations of data that occur in the mobile device are a set of operations designed for the functionality of the device, such as the following:
CAPTURE
STORAGE
RETRIEVAL
SEARCH
DISPLAY
TRANSMIT
Making these operations extremely efficient and not allocating resources for unused functionality greatly reduces cost, increases performance significantly and reduces power utilization. In a simplified manner, the core engine implements a Giant State Machine (GSM) which is designed to control the device functionality in very high speed in hardware. An example of such an operation is capturing an image from the camera module and sending the image out to the wireless communication module, which involves Capture, Compress, Store and Transmit operations. The GSM orchestrates these operations by generating the appropriate control signals.
The Modularized Mobile Architecture allows for robust and intelligent sharing of information among functional modules instead of sharing resources, and it resolves one of the major overheads associated with management of shared resource. A major part of the tasks performed by a traditional operating system (OS) is resource management and interrupt control. This allows the system to manage access to shared resources such as memory. In the Modularized Mobile Architecture introduced here, the significant computational overhead associated with a traditional OS as well as the memory requirements to store active as well as passive components of such OS is eliminated.
The memory architecture is designed so that a small portion of the memory contents in each functional module, namely a set of extracted and stored “tags”, are communicated to the core engine and to other functional modules as needed (the memory architecture is described below in relation to TIBIS). As a result, a very robust interface is developed between the Core Engine and each functional module. This architecture allows for robust and intelligent sharing of information instead of sharing resources.
In one embodiment, programmable elements are included in the exchange interface unit in each module to allow for flexibility in the design. This programmability allows the signaling parameters to be adjusted depending on the requirements for the best available technology. For example, it allows for sufficient buffering of data for proper assembly and disassembly and timing of data to match the best available signaling for the data exchange block.
While the individual memory blocks shown in
(1B) Mobile Device with User Customizable Physical Form Factor
The mobile device architecture introduced above can integrate various electronic modules into a single customized device. The Modularized Mobile Architecture allows for customization of device functionality based on user preferences. This customization can occur at any of several levels:
The customized mobile device allows users the flexibility of using the components that they need and none of the ones that they do not need, by allowing for the integration of a variety of modules that perform communication, computing, and a variety of input and output functions. It results in lower cost and power dissipation. It can provide freedom from the choice of service provider by allowing the user to keep desired electronic components as well as stored information while having the freedom to change service provider (i.e., to change the communication module). It also removes the requirement of building multiple standard radio devices on the same mobile device (e.g. cellular, WiFi, Bluetooth); only radios that the user plans to use are added. It also provides an easy upgrade path for the components that the user desires with new nodes of technology without the need to replace the entire device.
Each module can be a functional module that is operable only within a mobile device, or it can be an independently (individually) operable component. Independently operable components have some level of user interface as needed by that module and can be used on their own. When a module is inserted into the mobile device, it has access to an expanded set of functionality for storage, display, I/O and communication facilities. While some modules can connect together directly (e.g., the audio module can be directly connected to the communication module), the modules are typically connected to the core engine on the mobile device.
All of the functional modules can be powered from the power supply of the mobile device. An independently operable module also has its own on-board battery which is recharged when the module is connected to the main unit.
The module connectors are designed to facilitate the connection between the functional modules and the core engine through the data exchange block. In the modularized architecture of the design, the data is exchanged between modules under the control of the core engine. The size and characteristics of the data buses from different modules may be different. Instead of designing a custom connector for each module, a unified connector is designed to support all available modules in a particular configuration. The choice of connector depends on the form factor and bus speed. One option is a high-speed serial bus with a small footprint. Another option is a parallel bus for ease of signal routing. In one embodiment, a custom low-profile, parallel edge connector is used. This gives the flexibility of supporting a large number of modules with varying bus sizes and facilitates interconnection between the modules and the main core. Data at the I/O interface of each module is assembled or disassembled to match the connector's data bit width and timing. The core engine facilitates the data exchange between the modules through appropriate control signals.
In addition to module choice, the user has the choice of device shape, size, and configuration. The device can have any of a variety of shapes, such as square or rectangular, round, or cylindrical. Modules can be assembled in any of a variety of ways, such as connecting sideways to another module or vertically as stackable disks.
Other arrangements of modules are dictated by the desired industrial design of the mobile device.
The user also has the additional choice of having the assembled mobile device in a wrist-top configuration (worn as a watch), a clip-on configuration where it is worn on a belt or armband, a pendant configuration, as an ear-top device or a handheld device.
In one wrist-top configuration, such as shown in
In addition to modules that support common mobile functionality such as audio/video modules, GPS and games, the platform introduced here also supports other consumer electronics device functionalities that can be added over time, such as biosensors, health monitoring devices, environmental sensors, etc. The Modularized Mobile Architecture allows for the functionality of the modules to be developed and optimized independently and can easily integrate essentially any module by modifying the interface to fit the mobile device interface.
While many detachable modules can be independently operable, that is not a requirement. For example, a single memory or display module may not be operable on its own, and there are modules that are supporting accessory hardware for another module. A “super module” can incorporate a number of module functions that are commonly used together.
In one embodiment, the MEs of each individual functional unit are removable and swappable. This allows for quick and fast transfer and sharing of data among devices, as well as quick personal security and backup feature.
Modules in detached mode which are connected to a communications module can be reconfigured over-the-air to support an array of functions in the stand-alone mode. This can be achieved through the use of field programmable logic as well as registers which can be updated remotely to allow for modified mode of operation of the module in a power efficient manner.
(1C) Detachable Intelligent Display
Mobile devices are faced with a continuous need for larger display sizes for certain applications, such as viewing of photos, videos, surfing the web, etc. The large size of the display adds significantly to the size, power dissipation and cost of the mobile device. However, in most applications there is not a continuous need for a large display, such that the associated additional weight, size, and power dissipation are unnecessary. The technique introduced here overcomes this barrier by separating the requirements of the device from those of the display unit.
In this technique, the mobile device has a very small display or no display at all. This is the normal mode of operation, generally the mobile mode of operation. As a result, the mobile device is small and has low power dissipation. A group of larger displays are designed and made available to the user upon request. These displays vary in features such as size and display resolution. The initial display design can be the size of a business card to be carried in a wallet and used in a similar manner. This display size is adequate for a large number of users in a mobile environment. This detached display can be attachable to the mobile device via direct wire connection or via wireless link.
Another size display is a letter size display, which can be carried in the user's briefcase among other paperwork and file folders. When a need for such a display arises, such as for editing, viewing documents, photos or videos or presenting such material to a larger group, the letter size is the more appropriate usage model. As in the case of the wallet size display, the connection mechanism is established either via wires or wirelessly depending on the customer's selection at the time of ordering.
In the wireless mode, the display is turned on and is held by the user for viewing, totally detached from the unit. The mobile unit stays nearby, for example in a pocket, purse, or worn on the wrist. The user only holds up the display, which is smaller and less bulky, while having access to all the functionality of the mobile device.
The display is powered by its own rechargeable battery which is recharged with the mobile unit. The display is able to draw power from the handheld device through a wired connection. This is also the mode of operation if the display does not have its own battery (e.g., ultra-light model). In cases where the display unit has a charged up battery but the mobile device is low on battery charge, the mobile device can draw power from the display unit.
Since the display unit is totally separate from the mobile device, with appropriate security measures the user has the possibility to use any appropriate display units other than his own. This means that if for any reason the user does not have access to his display unit, the user can borrow, purchase or rent another display unit.
Text entry on the mobile device can be accomplished through any of several methods, such as through a software keyboard on a touch-screen display, or a small physical keyboard that is stored in the wallet, etc. which can also be attached to the display.
In addition to mobile devices, the display can potentially be used with any other electronic equipment, such as a DVD player which is equipped with the proper communication technology. In this scenario, the user can connect to any information/entertainment device such as a PC, a DVD player, etc., and with proper authorization, can view the information/content on the display.
In one embodiment, several small display units stack up or fold and when needed, they can be opened up where the small displays connect together to form a larger display. Alternatively, additional small displays can be attached to an existing smaller display to form a single larger display.
The detached display allows for a new usage model for sharing of information/shared viewing of content. Multiple display units can be provided to users so they can access the information/content on a single device. Security measures can allow for authentication of the display units which can connect to the device. In addition to point-to-point connectivity, multi-cast connectivity can allow users to access the information on the device. The system allows for the individual display units to act as separate application windows on the mobile device (with proper security features which control guest access). As a result, each display unit can allow the user to independently access authorized services, such as web access, etc. This allows multiple users connectivity and content access without the need for individual devices. This technology provides a robust solution to applications such as multiplayer gaming, presentations, classroom/conference settings/on-the spot access to mobile services, etc.
(1D) Time-Based Information System (TIBIS)
Event-Based Storage, Access & Retrieval
The techniques introduced here include TIBIS, a time-based information system of data organization. TIBIS is particularly suited to implementation in a mobile device such as described above, although it is not limited to a mobile environment. The current PC model of entering, saving and organizing files grew out of the transition from typewriters/word processors/calculators. Although the sophistication of file systems and their many different formats have continued to grow, the fundamental design element for these systems remain packing the most amount of information in the least amount of space and facilitate access to the information while providing data integrity based on the underlying memory hierarchy of the system. Available storage systems lack a higher level of awareness and intelligence, which is particularly evident in mobile device usage scenarios.
While “content” and general-purpose programming/flexibility for applications remains of primary concern in a PC environment, in a mobile environment the primary factor is time. People typically use mobile devices to have access to information on-the-go and to save time. Features of TiBIS allow a hardware and software environment to provide robust storage, integration, recognition, recall and display of time-based activities and events in a user-customizable format.
Currently, most data is stored in electronic form in files. These files are organized in various directories or folders based on the type of file or the relationship of the content of files. The files have a time stamp associated with them. Other than looking up the time stamp when one looks at a file, the only other thing one can do with the time stamp is to sort the files based on time in a given folder or directory.
In addition, files are randomly written in different areas of memory. When a file is deleted, an area in memory becomes available where the file was written before. As more and more files are deleted, more area opens up in memory, but the open (free) areas are not contiguous. This results in fragmentation of data in memory, which results in a slow down of data access.
With TIBIS, all files are organized based on time, with the granularity of time determined by the user. The user can have control over periodic storing of specific information, store information through a direct user command, or any other user-defined mechanism. Activities, multimedia files, etc. are organized in a time snap-shot. As new pieces of information are received or generated, they are written sequentially in memory. Since data that is recorded (“the past”) cannot be modified by the user, the stored data is permanently stored in memory. This requires a large amount of memory over time. TIBIS provides a way to ease the requirements on the size of memory and store only information that the user will need in the long-term, while allowing the user to continue to have a snap-shot of all relevant information.
The TIBIS system is organized around two types of memory. One is called the Short-Term Memory (STM) and the other Long-Term Memory (LTM). Initially, information is recorded sequentially in STM. The size of STM is determined by the user and can be very short or very long, depending on the application and user preference (e.g. hours, days, weeks, etc.). During a predetermined amount of “inspection” period, the user has the option of erasing from STM any information deemed unimportant (e.g. an incoming junk email, erroneous file, etc.). In one implementation, the inspection period is chosen to be the amount of time it takes for the STM memory to be filled. At the conclusion of the inspection period, any remaining data is sequentially written to LTM. Any data that is erased from STM memory is not written in LTM. Once data is written in LTM, it can no longer be changed. The option to give the user the ability to erase LTM can be provided by an administrator of the system. If the user exercises the option to erase any part of the time snap-shot in LTM, the memory for that part can not be re-used by other data.
In addition, this memory architecture is designed to allow for user programmability of memory configuration, hybrid time-sector tagging of memory, dynamically varying the time granularity, and finer resolution time snap-shots inside another snap-shot.
In this system, problems with memory fragmentation are therefore resolved, since no rewriting is done in previous segments of memory and data is always written in contiguous sections of memory. In addition, since the memory is written sequentially based on time, one needs to backup any part of memory only once, since contents of past memory cannot be modified (except where the user is given the option of deletion). Therefore, periodic backups of data or changes to the data are not needed.
TIBIS also provides benefits for data security and information audit. Since the system stores time snap-shots, it is straightforward to review past activities and information. The system also makes it easy to audit past information and activities such as financial transactions, etc.
TIBIS also makes it possible to view a snap-shot of user's life, based on what information the user has chosen to include. This then becomes part of a digital journal of the user's life.
TIBIS removes static applications and content from being the central factor in device architecture. Instead the primary design element of the system is capturing and providing “relevant”, “useful” and “timely” event information to the user. Each time snap-shot contains a record of all activities the user chooses to record, store, and/or track for the selected time granularity (e.g., daily, hourly, weekly). A time snap-shot records all relevant information, such as physical location coordinates of the mobile device (or other type device that is implementing TIBIS), any information received, transmitted, captured, created or opened by the device, conversations of the user, etc. The information can include any type of multi-media data such as audio, video, email, text, etc. The system has provisions for a set of information repositories that include all files of the appropriate type (e.g., an audio repository includes all audio files generated, received or stored by the user).
Memory Hierarchy & Time Based Architecture:
In implementing this unique storage and retrieval technology, HM units for each device are provided to match the device's storage and access requirements. This means that individual functions' memory storage can be changed over time, and different or same memory technologies may be used for different types of data storage and access requirements.
In addition to providing distinct and in some cases detachable, removable, expandable HM memory units, each stored item such as data, music, still photo or video is stored with a particular tag structure.
The contents of STM can therefore be used to provide a complete “day view” to the user for multiple days, or similar view for any other selected time period. Upon a request for retrieval of data, a fast search mechanism is then able to retrieve the data element by hardware, and in some cases software, by comparing only the tags of data elements. In case a tag comparison results in multiple hits, the reduced set of data elements (tag hits) is then subjected to a further search in a much reduced complexity and time.
An example of a simplified tag generation scheme is as follows: Upon taking a photograph with the still camera module, the location coordinates are retrieved automatically via the on-board GPS location module. This information is then cross-referenced against the personal address space of the user as well as the calendar information to determine the exact location where the user is likely to be. This can be further clarified by posing a question to the user for a final clarification. The “actual” verified location is then part of the tag associated with the photograph. Further, the time and date is known, which is cross-referenced against the user's calendar and “dates of importance” file in the user preferences directory. This clarifies the exact occasion and can be even further clarified by posing a question to the user. This information also becomes part of the tag. In trying to retrieve or recall the photo, the user only needs to remember a part of the tag to be able to access the desired photo or information in general.
Further features of the tag can include character recognition as well as pattern and voice recognition. Upon storage, a sample of all such available modalities of the file becomes part of the tag. In recalling this information or in trying to organize and archive, over time user preferences can be allowed to change to include something such as presence of a certain person in the photo, rather than using the more simplified versions of the tag.
If a typical storage element (type of file element) for a module is, for example, 256 bits and a memory word is 16 bits, then it takes 16 rows of data to store this element. If the design parameters allow up to 20 bits for the data and tag space, then up to 64 bits can be used for a tag (4 bits*16 words). If the storage element is 1 Kb for the same overall bit width of 16+4, then one needs 64 words to store that element. In this case one can have up to 256 bits for a tag.
In general, the tags are uniformly designed so that for most data types and functional modules, one can go up to a certain maximum size tag. For example, if all one needed is 64 bits, then for the rest of the words, the tag can be either repeated or driven to an agreed upon level. The implementation is design dependent.
In certain embodiments, a tag is proportionally as wide as the ratio of its functional module's typical data element size to the maximum required tag size. In this case the tag and data are proportionally assembled and disassembled. In other embodiments, the tag may get appended to the first or last data word and recognized with an end-of-element flag. In yet another embodiment, the tag always gets stored in its entirety and then the data element begins.
In certain embodiments, the tags are fixed in size and the memory word size and depth is a design element based on each module's typical element size and timing requirements for the control signals. In some cases, the row of data to tag ratio is determined specifically for each functional module and data type. Hence, customization happens at the module level even for memory.
One of the tasks handled by the core engine is assembling the STM blocks and coordinating the transfer of information to the LTM blocks. In addition, once the tags are generated and STM blocks are assembled, the core engine has access to a lot of well-organized information which forms the basis of efficient operations for robust organization and planning. These operations are controlled by the core engine.
Event Reporter: Collects information from stored tags and generates statistics on specific categories.
Event Manager: Monitors all current and short term plans and updates the timing schedule.
Event Scheduler: Monitors all module and machine generated requests for automated actions and places entries in the schedule.
Task Manager: Collects all requests for automated user and machine generated tasks and contacts the communications module for data, voice communication when available to perform automated tasks.
Module Data Manager and Module Tag Manager: Generate control signal to release data to/from the data exchange block and send and receive tag information from specific modules to the core engine to perform TIBIS related tasks.
User Interface (UI) Manager: Interfaces all time/event management functions to the user interface blocks driving this information to the user interface based on user request profiles. The UI Manager block takes the prioritized tasks and events as well as “stats” and “plans” supplied by the elements in the GSM engine and displays the information according to a pre-selected format onto the display.
Store-Well, Retrieve-Well
The current state of the Internet is an excellent example of what happens when all sorts of information is available to users in an unorganized manner; the problem is how does one find what one is looking for. Design of the next level of search algorithms, semantics web, video search, etc. is well under way, and undoubtedly there will be improvements. It remains, however, that information is being added to the Web at a far greater rate than the rate at which the algorithms are improving.
The problem of information retrieval for a mobile user can be addressed by an integrated solution that will now be described. For organization and storage, the solution introduced here provides a mechanism to collect enough information from the user to be able to automatically store the information in an appropriate manner and retrieve it easily without resorting to a complex and computationally intensive search. Even though it is comfortable to talk about “locations” when discussing files and information (something inherited from folders in file drawers days), it is becoming irrelevant and quite limiting to discuss locations when there are millions of files and bits of information generated every hour. It is more appropriate to understand the uniqueness of each multimedia file as it is received/acquired and store it in a way that future retrieval is seamless to the user and archiving, backup, deletions, etc. happen automatically. Such an approach increases productivity while reducing security and accessibility issues.
As described above, based on information type, user selection, activity and usage model the system generates and updates multi-dimensional tags for each piece of information (e.g. audio file, email, etc.) that the system handles. For each search/inquiry, a corresponding search tag is generated. The search tag is compared with the stored information tags by in at least some instances by hardware, resulting in a very fast search. Content addressable memory (CAM) technology can be used to provide high-speed implementation. A combination of hardware and software implementation can be used for the tag and content searches in certain instances, depending on the specific nature of the search.
(2) System-Level View
The techniques introduced above can be implemented in software and/or firmware in conjunction with programmable circuitry, or entirely in special-purpose hardwired circuitry, or in a combination of such embodiments. Special-purpose hardwired circuitry may be in the form of, for example, one or more application-specific integrated circuits (ASICs), programmable logic devices (PLDs), field-programmable gate arrays (FPGAs), etc.
Software or firmware to implement the techniques introduced here may be stored on a machine-readable medium and may be executed by one or more general-purpose or special-purpose programmable microprocessors. A “machine-readable storage medium”, as the term is used herein, includes any mechanism that can store information in a form accessible by a machine (a machine may be, for example, a computer, network device, cellular phone, personal digital assistant (PDA), manufacturing tool, any device with one or more processors, etc.). For example, a machine-accessible medium includes recordable/non-recordable media (e.g., read-only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; flash memory devices; etc.), etc.
The term “logic”, as used herein, can include, for example, special-purpose hardwired circuitry, software and/or firmware in conjunction with programmable circuitry, or a combination thereof.
Although the present invention has been described with reference to specific exemplary embodiments, it will be recognized that the invention is not limited to the embodiments described, but can be practiced with modification and alteration within the spirit and scope of the appended claims. Accordingly, the specification and drawings are to be regarded in an illustrative sense rather than a restrictive sense.
This application claims the benefit of Provisional U.S. Patent Application No. 60/946,618, filed on Jun. 27, 2007, and Provisional U.S. Patent Application No. 60/965,104, filed on Aug. 17, 2007, both of which are incorporated herein by reference.
Number | Name | Date | Kind |
---|---|---|---|
6144358 | Narayanaswamy et al. | Nov 2000 | A |
7657227 | Doan et al. | Feb 2010 | B2 |
7777689 | Fratti et al. | Aug 2010 | B2 |
7831264 | Miegel | Nov 2010 | B2 |
7957401 | Zalenski et al. | Jun 2011 | B2 |
20030125082 | Vanderhelm | Jul 2003 | A1 |
20040041917 | Norcross et al. | Mar 2004 | A1 |
20060068812 | Carro et al. | Mar 2006 | A1 |
20060166715 | Van Engelen et al. | Jul 2006 | A1 |
20060187717 | Hsieh | Aug 2006 | A1 |
20070032240 | Finnegan et al. | Feb 2007 | A1 |
20070050396 | Cheng et al. | Mar 2007 | A1 |
20070142024 | Clayton et al. | Jun 2007 | A1 |
20070300164 | Bhogal et al. | Dec 2007 | A1 |
20080005087 | Sato et al. | Jan 2008 | A1 |
20080068292 | Yuan et al. | Mar 2008 | A1 |
20080117679 | Srinivasan et al. | May 2008 | A1 |
20080153670 | McKirdy et al. | Jun 2008 | A1 |
20080189496 | Raczynski | Aug 2008 | A1 |
20080243696 | LeVine | Oct 2008 | A1 |
20080289032 | Aoki et al. | Nov 2008 | A1 |
20120088481 | Postma et al. | Apr 2012 | A1 |
Number | Date | Country | |
---|---|---|---|
60946618 | Jun 2007 | US | |
60965104 | Aug 2007 | US |