Several Apple patents ranging from theme-based slideshows to device testing have appeared at the US Patent & Trademark Office. Here's a summary of each:
Patent number 20100042926 is for theme-based slideshows. A system and method for providing photographic slideshows with theme elements is provided. Each photograph and each theme element may be associated with different contextual information. The contextual information may include, for example, locations, time and date, calendar events, user preference or history information, or any other suitable information. In response to receiving a selection of contextual information, the electronic device may identify photographs and theme elements associated with contextual information to generate a photographic slideshow. Alternatively, in response to receiving a selection of at least one photograph or theme element, the electronic device may identify contextual information associated with the selected photograph or theme element to identify other photographs and theme elements associated with the identified contextual information for generating a photographic slideshow. The inventors are William Bull, Kourtny Minh Hicks and Eric James Hope.
Patent number 20100042900 involves write failure handling of MLC Nand. In a memory system, content in a defined "risk zone" of non-volatile memory is copied into volatile memory. When a write failure occurs on non-volatile memory, the risk zone is scanned sequentially to determine corrupted content. The corrupted content is restored by writing the corresponding content previously copied to volatile memory to new blocks in non-volatile memory. The inventors are Vadim Khmelnitsky and Nir Jacob Wakrat.
Patent number 20100041382 involves unified settings for multiple account types. Account types that support one or more data classes (e.g., email, contacts, calendar, instant messaging) can be added and configured on a mobile device using a unified settings user interface. The user interface allows the user to easily activate and deactivate one or more data classes for an account type. The user interface can support one or more predefined account types and can allow the user to add and configure new account types. Visual indicators are provided in the user interface to remind the user of the data classes that are active on the mobile device for a particular account. Users can configure settings that effect a particular data class in all accounts on the mobile device. Users can also configure settings that are specific to a particular account. The inventors are Marcel Van Os, Paul Marcos and Evan Doll.
Patent number 20100042922 is for a customizable, dynamic and on-demand database-informer for relational databases. Techniques for displaying information associated with a database are disclosed. A database-informer displays information (or additional information) about various database objects displayed for a user. The database-informer may be presented to user as a tool-tip. However, the database-informer can be customized and dynamically constructed based on various variables that are dynamically determined at runtime. As such, the information can be dynamically determined based on variables stored in different tables and provided on-demand when the database-informer is invoked by the user. As a result, database users can be provided with customized and up-to-date information without having to view different tables. The inventors are Vladimir Bradateanu, Toufic Milan, Lee McIntyre and Geraldine Vahey.
Patent number 20100042789 involves check-hazard instructions for processing vectors. The described embodiments provide a system that determines data dependencies between two vector memory operations or two memory operations that use vectors of memory addresses. During operation, the system receives a first input vector and a second input vector. The first input vector includes a number of elements containing memory addresses for a first memory operation, while the second input vector includes a number of elements containing memory addresses for a second memory operation, wherein the first memory operation occurs before the second memory operation in program order. The system then determines elements in the first and second input vectors where the memory addresses indicate that a dependency exists between the memory operations. The system next generates a result vector, wherein the result vector indicates the elements where dependencies exist between the memory operations. The inventors are Jeffry E. Gonion and Keith E. Diefendorff.
Patent number 20100042907 is for increment-propagate and decrement-propagate instructions for processing vectors. The described embodiments provide a processor for generating a result vector with incremented or decremented values from an input vector. During operation, the processor receives an input vector and a control vector. The processor then copies a value contained in a selected element of the input vector. The processor next generates the result vector, which involves writing an incremented or decremented value to the result vector, depending on the value of the control vector and the embodiment. In addition, a predicate vector can be used to control the values that are written to the result vector. The inventors are Gonion and Diefendorff.
Patent number 20100042815 is for a method and apparatus for executing program code. The described embodiments provide a system that executes program code. While executing program code, the processor encounters at least one vector instruction and at least one vector-control instruction. The vector instruction includes a set of elements, wherein each element is used to perform an operation for a corresponding iteration of a loop in the program code. The vector-control instruction identifies elements in the vector instruction that may be operated on in parallel without causing an error due to a runtime data dependency between the iterations of the loop. The processor then executes the loop by repeatedly executing the vector-control instruction to identify a next group of elements that can be operated on in the vector instruction and selectively executing the vector instruction to perform the operation for the next group of elements in the vector instruction, until the operation has been performed for all elements of the vector instruction. The inventors are Gonion and Diefendorff.
Patent number 20100042816 is for break, pre-break and remaining instructions for processing vectors. The described embodiments provide a system that sets elements in a result vector based on an input vector. During operation, the system determines a location of a key element within the input vector. Next, the system generates a result vector. When generating the result vector, the system sets one or more elements of the result vector based on the location of the key element in the input vector. The inventors are Gonion and Diefendorff.
Patent number 20100042817 is for shift-in-right instructions for processing vectors. The described embodiments provide a processor for generating a result vector with shifted values from an input vector. During operation, the processor receives an input vector and a control vector. Using these vectors, the processor generates the result vector, which can contain shifted values or propagated values from the input vector, depending on the value of the control vector. In addition, a predicate vector can be used to control the values that are written to the result vector. The inventors are Gonion and Diefendorff.
Patent number 20100042818 is for copy-propagate, propagate-post and propagate-prior instructions for processing vectors. The described embodiments provide a processor for generating a result vector with copied or propagated values from an input vector. During operation, the processor receives at least one input vector and a control vector. Using these vectors, the processor generates the result vector, which can contain copied propagated values from the input vector(s), depending on the value of the control vector. In addition, a predicate vector can be used to control the values that are written to the result vector. The inventors are Gonion and Diefendorff.
Patent number 20100042826 involves the dynamic control of a device state based on a detected environment. Techniques for automatically adjusting device preferences (e.g., playback settings of a PMD) based the on the device's environment. The environment may be characterized, for example, by one or more of the location of the device, the accessories connected to the device, and/or the state of wireless signals detected by the device. The device stores different states associated with different environments, and loads the appropriate state variables based on the detected environment. For example, when connecting to a given speaker system resumption of audio playback can be from the last track or playlist being played on that speaker system. The inventors are William Bull, Policarpo Wood, Kourtny Mihn Hicks, Benjamin Andrew Rottler, Eric James Hope and Alan Cannistraro.
Patent number 20100042874 is for a device testing method and architecture. The same testing equipment can be used to test devices operating under different protocols. Where the testing protocol is slower than the native serial protocol of the high-speed serial link connecting the device processor to the component to be tested, the link may be adapted to carry the lower speed testing protocol. This may be accomplished by adding low-speed buffers to the circuits of the serial link, or the serial link may have a native low-speed protocol in addition to its high-speed protocol connections may be made to the pathways for the native low-speed protocol, or the testing protocol may be impressed on top of native low-speed protocol. Where the driver of the device being tested has limited number of pins, the test mode can be controlled by applying power to different power supply input pins. The inventor is Yongman Lee.