Patent application number | Description | Published |
20090112949 | COMPRESSED STORAGE MANAGEMENT - In accordance with one or more aspects, compressed storage management in a system includes determining which of multiple data units stored in an uncompressed portion of the storage resource are to be compressed and stored in a compressed portion of the storage resource. The management can further include returning one or more regions of the compressed portion for use in the uncompressed portion in response to storage resource pressure in the system, as well as compacting regions in the compressed portion to fill empty gaps in the compressed portion. | 04-30-2009 |
20090144495 | USING EXTERNAL MEMORY DEVICES TO IMPROVE SYSTEM PERFORMANCE - The invention is directed towards a system and method that utilizes external memory devices to cache sectors from a rotating storage device (e.g., a hard drive) to improve system performance. When an external memory device (EMD) is plugged into the computing device or onto a network in which the computing device is connected, the system recognizes the EMD and populates the EMD with disk sectors. The system routes I/O read requests directed to the disk sector to the EMD cache instead of the actual disk sector. The use of EMDs increases performance and productivity on the computing device systems for a fraction of the cost of adding memory to the computing device. | 06-04-2009 |
20090150611 | MANAGEMENT OF EXTERNAL MEMORY FUNCTIONING AS VIRTUAL CACHE - A method and apparatus for managing the caching of data on an auxiliary memory of a computer. Pages of data may be cached on an auxiliary memory, such as a flash memory, at a virtual level using an identifier that does not involve a physical address of the pages on a memory. Pages may be cached on auxiliary memory that may be removable from the computer, e.g., by unplugging the memory from the computer. Page data may be encrypted and/or compressed on the auxiliary memory. An authentication indicator may be used to verify the accuracy of cached data in the case of an interrupted connection to the auxiliary memory, e.g., as a result of computer power down, hibernation, removal of the memory from the computer, etc. | 06-11-2009 |
20090198883 | DATA COPY MANAGEMENT FOR FASTER READS - Multiple copy sets of data are maintained on one or more storage devices. Each copy set includes at least some of the same data units as other sets. Different sets optionally have data units stored in different orders on the storage device(s). A particular one of the sets of data is selected as the set to be accessed in response to detecting a particular scenario. | 08-06-2009 |
20090235021 | EFFICIENTLY SYNCHRONIZING WITH SEPARATED DISK CACHES - In a method of synchronizing with a separated disk cache, the separated cache is configured to transfer cache data to a staging area of a storage device. An atomic commit operation is utilized to instruct the storage device to atomically commit the cache data to a mapping scheme of the storage device. | 09-17-2009 |
20090235284 | CROSS-PLATFORM COMPATIBILITY FRAMEWORK FOR COMPUTER APPLICATIONS - A computer with a platform that reduces cross-platform compatibility issues associated with executable computer components. A context for a component to be executed on a computer is detected. The context may be detected by searching metadata associated with the component and locating the context therein. If the context is not found in the metadata, then a context may be inferred in other ways, such as from a subsystem major/minor version. Execution of the component invokes one or more components of a computer operating system that provides a platform for executing operations that support execution of the component. Branch components present in the platform are used to select behaviors for the operations based at least in part on the detected context of the component. By providing a context-based selection from any of multiple targeted behaviors for an operation performed by the platform, cross-platform compatibility is improved. | 09-17-2009 |
20100070701 | MANAGING CACHE DATA AND METADATA - Embodiments of the invention provide techniques for ensuring that the contents of a non-volatile memory device may be relied upon as accurately reflecting data stored on disk storage across a power transition such as a reboot. For example, some embodiments of the invention provide techniques for determining whether the cache contents and/or or disk contents are modified during a power transition, causing cache contents to no longer accurately reflect data stored in disk storage. Further, some embodiments provide techniques for managing cache metadata during normal (“steady state”) operations and across power transitions, ensuring that cache metadata may be efficiently accessed and reliably saved and restored across power transitions. | 03-18-2010 |
20100070747 | MANAGING CACHE DATA AND METADATA - Embodiments of the invention provide techniques for managing cache metadata providing a mapping between addresses on a storage medium (e.g., disk storage) and corresponding addresses on a cache device at data items are stored. In some embodiments, cache metadata may be stored in a hierarchical data structure comprising a plurality of hierarchy levels. Only a subset of the plurality of hierarchy levels may be loaded to memory, thereby reducing the memory “footprint” of cache metadata and expediting the process of restoring the cache metadata during startup operations. Startup may be further expedited by using cache metadata to perform operations associated with reboot. Thereafter, as requests to read data items on the storage medium are processed using cache metadata to identify addresses at which the data items are stored in cache, the identified addresses may be stored in memory. When the computer is later shut down, instead of having to transfer the entirety of the cache metadata from memory to storage, only the subset of the plurality of hierarchy levels and/or the identified addresses previously loaded to memory may be transferred (e.g., to the cache device), thereby expediting the shutdown of the computer. | 03-18-2010 |
20100077197 | NON-VOLATILE MEMORY CACHE PERFORMANCE IMPROVEMENT - In order to provide a more efficient persistent storage device, one or more long-term storage media are included along with a non-volatile memory. In one embodiment, one portion of the non-volatile memory is used as a write buffer and a read cache for writes and reads to the long-term storage media. Interfaces are provided for controlling the use of the non-volatile memory as a write buffer and a read cache. Additionally, a portion of the non-volatile memory is used to provide a direct mapping for specified sectors of the long-term storage media. Descriptive data regarding the persistent storage device is stored in another portion of the non-volatile memory. | 03-25-2010 |
20100199043 | METHODS AND MECHANISMS FOR PROACTIVE MEMORY MANAGEMENT - A proactive, resilient and self-tuning memory management system and method that result in actual and perceived performance improvements in memory management, by loading and maintaining data that is likely to be needed into memory, before the data is actually needed. The system includes mechanisms directed towards historical memory usage monitoring, memory usage analysis, refreshing memory with highly-valued (e.g., highly utilized) pages, I/O pre-fetching efficiency, and aggressive disk management. Based on the memory usage information, pages are prioritized with relative values, and mechanisms work to pre-fetch and/or maintain the more valuable pages in memory. Pages are pre-fetched and maintained in a prioritized standby page set that includes a number of subsets, by which more valuable pages remain in memory over less valuable pages. Valuable data that is paged out may be automatically brought back, in a resilient manner. Benefits include significantly reducing or even eliminating disk I/O due to memory page faults. | 08-05-2010 |
20100199063 | METHODS AND MECHANISMS FOR PROACTIVE MEMORY MANAGEMENT - A proactive, resilient and self-tuning memory management system and method that result in actual and perceived performance improvements in memory management, by loading and maintaining data that is likely to be needed into memory, before the data is actually needed. The system includes mechanisms directed towards historical memory usage monitoring, memory usage analysis, refreshing memory with highly-valued (e.g., highly utilized) pages, I/O pre-fetching efficiency, and aggressive disk management. Based on the memory usage information, pages are prioritized with relative values, and mechanisms work to pre-fetch and/or maintain the more valuable pages in memory. Pages are pre-fetched and maintained in a prioritized standby page set that includes a number of subsets, by which more valuable pages remain in memory over less valuable pages. Valuable data that is paged out may be automatically brought back, in a resilient manner. Benefits include significantly reducing or even eliminating disk I/O due to memory page faults. | 08-05-2010 |
20100217929 | Using External Memory Devices to Improve System Performance - The invention is directed towards a system and method that utilizes external memory devices to cache sectors from a rotating storage device (e.g., a hard drive) to improve system performance. When an external memory device (EMD) is plugged into the computing device or onto a network in which the computing device is connected, the system recognizes the EMD and populates the EMD with disk sectors. The system routes I/O read requests directed to the disk sector to the EMD cache instead of the actual disk sector. The use of EMDs increases performance and productivity on the computing device systems for a fraction of the cost of adding memory to the computing device. | 08-26-2010 |
20100229112 | PROBLEM REPORTING SYSTEM BASED ON USER INTERFACE INTERACTIONS - A system for reporting and analyzing problems encountered by computer users. The system includes a recording tool executing on a user computer to capture a sequence of user interactions in the context of a graphical user interface. When a problem or other stop event is encountered, the tool generates a report indicating user interactions leading to the stop event, including information such as the specific sequence of controls for specific programs accessed by the user. The report can be analyzed to identify a sequence of user interactions characteristic of a problem type, which in turn may be used to find a solution for a particular user's problem. The system may also include a server that receives and analyzes reports from multiple computer users to identify patterns of user interactions that characterize problem types. This information may be used for associating specific problems with future reports or to provide information to software developers for improving their products. | 09-09-2010 |
20100229157 | EXTRACTING AND COLLECTING PLATFORM USE DATA - A system for reporting information about how selected components of an operating system are used by applications on a computing device. A manifest of components is provided from a management server to a computing device. The manifest specifies components of the operating system for which usage information is to be collected. The computing device surveys applications for calls to the components specified in the manifest. Surveys may be performed by static scanning and/or dynamic monitoring. In static scanning, application files are scanned for keyword strings specified in the manifest. Keyword string matches are recorded to a log file. In dynamic monitoring, calls from executing applications to components specified by the manifest are identified and logged. A report is generated from the log and sent to the management server. The management server then aggregates and analyzes reports from multiple computing devices to enable developers to assess how the components are being used. | 09-09-2010 |
20110029737 | EFFICIENTLY SYNCHRONIZING WITH SEPARATED DISK CACHES - In a method of synchronizing with a separated disk cache, the separated cache is configured to transfer cache data to a staging area of a storage device. An atomic commit operation is utilized to instruct the storage device to atomically commit the cache data to a mapping scheme of the storage device. | 02-03-2011 |
20110113432 | COMPRESSED STORAGE MANAGEMENT - Compressed storage management includes assigning a selection priority and a priority level to multiple data units stored in an uncompressed portion of a storage resource. The management can further include compressing data units and storing the compressed data units in a compressed portion of the storage resource. The data units in the compressed portion are stored in regions, which each store data units having the same selection priority or the same selection priority level. | 05-12-2011 |
20110276743 | USING EXTERNAL MEMORY DEVICES TO IMPROVE SYSTEM PERFORMANCE - The invention is directed towards a system and method that utilizes external memory devices to cache sectors from a rotating storage device (e.g., a hard drive) to improve system performance. When an external memory device (EMD) is plugged into the computing device or onto a network in which the computing device is connected, the system recognizes the EMD and populates the EMD with disk sectors. The system routes I/O read requests directed to the disk sector to the EMD cache instead of the actual disk sector. The use of EMDs increases performance and productivity on the computing device systems for a fraction of the cost of adding memory to the computing device. | 11-10-2011 |
20110314202 | MANAGING CACHE DATA AND METADATA - Embodiments of the invention provide techniques for managing cache metadata providing a mapping between addresses on a storage medium (e.g., disk storage) and corresponding addresses on a cache device at data items are stored. In some embodiments, cache metadata may be stored in a hierarchical data structure comprising a plurality of hierarchy levels. When a reboot of the computer is initiated, only a subset of the plurality of hierarchy levels may be loaded to memory, thereby expediting the process of restoring the cache metadata and thus startup operations. Startup may be further expedited by using cache metadata to perform operations associated with reboot. Thereafter, as requests to read data items on the storage medium are processed using cache metadata to identify addresses at which the data items are stored in cache, the identified addresses may be stored in memory. When the computer is later shut down, instead of having to transfer the entirety of the cache metadata from memory to storage, only the subset of the plurality of hierarchy levels and/or the identified addresses previously loaded to memory may be transferred (e.g., to the cache device), thereby expediting the shutdown of the computer. | 12-22-2011 |
20120005422 | Non-Volatile Memory Cache Performance Improvement - In order to provide a more efficient persistent storage device, one or more long-term storage media are included along with a non-volatile memory. In one embodiment, one portion of the non-volatile memory is used as a write buffer and a read cache for writes and reads to the long-term storage media. Interfaces are provided for controlling the use of the non-volatile memory as a write buffer and a read cache. Additionally, a portion of the non-volatile memory is used to provide a direct mapping for specified sectors of the long-term storage media. Descriptive data regarding the persistent storage device is stored in another portion of the non-volatile memory. | 01-05-2012 |
20120036326 | EFFICIENTLY SYNCHRONIZING WITH SEPARATED DISK CACHES - In a method of synchronizing with a separated disk cache, the separated cache is configured to transfer cache data to a staging area of a storage device. An atomic commit operation is utilized to instruct the storage device to atomically commit the cache data to a mapping scheme of the storage device. | 02-09-2012 |
20120166719 | DATA COPY MANAGEMENT FOR FASTER READS - Multiple copy sets of data are maintained on one or more storage devices. Each copy set includes at least some of the same data units as other sets. Different sets optionally have data units stored in different orders on the storage device(s). A particular one of the sets of data is selected as the set to be accessed in response to detecting a particular scenario. | 06-28-2012 |
20120173824 | MANAGING CACHE DATA AND METADATA - Embodiments of the invention provide techniques for managing cache metadata providing a mapping between addresses on a storage medium (e.g., disk storage) and corresponding addresses on a cache device at which data items are stored. In some embodiments, cache metadata may be stored in a hierarchical data structure comprising a plurality of hierarchy levels. When a reboot of the computer is initiated, only a subset of the plurality of hierarchy levels may be loaded to memory, thereby expediting the process of restoring the cache metadata and thus startup operations. Startup may be further expedited by using cache metadata to perform operations associated with reboot. | 07-05-2012 |
20120183233 | DELAYED IMAGE DECODING - In one or more embodiments, a framework is provided in which image decoding can be delayed based on heuristics, and later initiated based on a use type associated with the image or the likelihood that the image is going to be used. For example, a use history and priority system can enable images that are currently being rendered and/or are likely to get rendered to be decoded before images that have a history of being downloaded but never used. Accordingly, by decoupling image download from image decoding, CPU resources and memory can be more efficiently utilized. | 07-19-2012 |
20120198149 | EFFICIENTLY SYNCHRONIZING WITH SEPARATED DISK CACHES - In a method of synchronizing with a separated disk cache, the separated cache is configured to transfer cache data to a staging area of a storage device. An atomic commit operation is utilized to instruct the storage device to atomically commit the cache data to a mapping scheme of the storage device. | 08-02-2012 |
20120216217 | INTERFACE FOR DISPLAYING CONTENT SUPPORTING HARDWARE ACCELERATION - One or more application programming interfaces (APIs) are exposed by a host program running on a device to facilitate a control program displaying content in a window in which the host program displays content. As part of an API, a method is exposed that the control program can invoke to pass to the host program a definition of a surface presenter to be created by the host program. Additionally, the control program can store content that the control program desires to have presented in a buffer of the surface presenter, and invoke another method exposed as part of an API to pass to the host program an indication of the content that the control program desires to have displayed in the window in which the host program displays content. | 08-23-2012 |
20120274645 | ALIGNING ANIMATION STATE UPDATE AND FRAME COMPOSITION - An event, such as a vertical blank interrupt or signal, received from a display adapter in a system is identified. Activation of a timer-driven animation routine that updates a state of an animation and activation of a paint controller module that identifies updates to the state of the animation and composes a frame that includes the updates to the state of the animation are aligned, both being activated based on the identified event in the system. | 11-01-2012 |
20120290785 | Non-Volatile Memory Cache Performance Improvement - In order to provide a more efficient persistent storage device, one or more long-term storage media are included along with a non-volatile memory. In one embodiment, one portion of the non-volatile memory is used as a write buffer and a read cache for writes and reads to the long-term storage media. Interfaces are provided for controlling the use of the non-volatile memory as a write buffer and a read cache. Additionally, a portion of the non-volatile memory is used to provide a direct mapping for specified sectors of the long-term storage media. Descriptive data regarding the persistent storage device is stored in another portion of the non-volatile memory. | 11-15-2012 |
20120306900 | Hardware Accelerated Caret Rendering - Techniques for hardware accelerated caret rendering are described in which a system based caret is emulated using hardware acceleration technology. The hardware accelerated caret can be rendered using dedicated graphics processing hardware to look and feel like a system caret. This can involve using pixel shaders to produce the hardware accelerated caret and a employing a back-up texture to remove the caret after it is drawn and cause the caret to blink. In addition, rendering of the caret can be coordinated with other animations and/or other presentations of a frame buffer to piggy back drawing of the caret onto other drawing operations. This can reduce the number of times the frame buffer is presented and therefore improve performance. | 12-06-2012 |
20130063444 | Aligning Script Animations with Display Refresh - Various embodiments align callbacks to a scripting component that enable the scripting component to update animation, with a system's refresh notifications. Specifically, an application program interface (API) is provided and implemented in a manner that generates and issues a callback to the scripting component when the system receives a refresh notification. This provides the scripting component with a desirable amount of time to run before the next refresh notification. | 03-14-2013 |
20130063448 | Aligning Script Animations with Display Refresh - Various embodiments align callbacks to a scripting component that enable the scripting component to update animation, with a system's refresh notifications. Specifically, an application program interface (API) is provided and implemented in a manner that generates and issues a callback to the scripting component when the system receives a refresh notification. This provides the scripting component with a desirable amount of time to run before the next refresh notification. | 03-14-2013 |
20130067489 | Power Efficient Callback Patterns - In one or more embodiments, an application program interface (API) is provided and enables an entity, such as an application, script, or other computing object to register to receive callbacks immediately and, without specifying a time constraint. In this approach, the API does not rely on a timer, such as a system timer. Rather, a non-timer based queue, such as a message queue-type approach is utilized. Specifically, callbacks that are registered through this API can be placed on the message queue and work associated with the registered callback can be performed through the normal course of processing messages and events in the message queue. Over time, such results in a callback pattern that allows an associated web browser and applications such as web applications to remain responsive, while increasing performance and power efficiencies. | 03-14-2013 |
20130121599 | Measuring Web Page Rendering Time - Various embodiments provide approaches for measuring the rendering times of a webpage that can be browser-independent. In at least some embodiments, as a web page is rendered, video data of the webpage is captured and analyzed to ascertain when the webpage, or portions thereof, have likely been completely rendered. In at least some embodiments, image processing can be performed on captured video data to ascertain, from observed pixel changes over time, when the webpage has likely been rendered. | 05-16-2013 |
20130205308 | Interface for Displaying Content Supporting Hardware Acceleration - One or more application programming interfaces (APIs) are exposed by a host program running on a device to facilitate a control program displaying content in a window in which the host program displays content. As part of an API, a method is exposed that the control program can invoke to pass to the host program a definition of a surface presenter to be created by the host program. Additionally, the control program can store content that the control program desires to have presented in a buffer of the surface presenter, and invoke another method exposed as part of an API to pass to the host program an indication of the content that the control program desires to have displayed in the window in which the host program displays content. | 08-08-2013 |
20130208012 | Speculative Render Ahead and Caching in Multiple Passes - Various embodiments are directed to intelligently rendering or pre-rendering content that may likely be brought into an associated viewport during a user's interaction with the content. In at least some embodiments, the process of caching pre-rendered content is separated from a determination of which regions outside of the viewport are to be kept up to date over use and time. Further, at least some embodiments perform rendering activities in multiple passes in an effort to reduce potential delays in the user visible content reaching completion, without interfering with other work that an associated application or system performs during rendering. | 08-15-2013 |
20130249917 | PROFILE DATA VISUALIZATION - Profile data is visualized in a number of ways to visually communicate program performance issues and facilitate analysis thereof. In one instance, a plurality of correlated visualizations can be presented that provide different types of views of program profile data. Further, logically grouped profile data can be presented to enable meaningful analysis of program execution. Visualizations can also reflect the state of profile data with respect to designated performance goals, and mechanisms are provided to enable recording and playback profile data, among other things. | 09-26-2013 |
20130263102 | LOGICAL GROUPING OF PROFILE DATA - Profile data can be ascribed to groups as a function of an organizational scheme that defines groups and relationships between groups. The groups can be abstractions over profile data that are meaningful for computer program analysis. Subsequently, grouped data can be disseminated, queried, and visualized in numerous ways to further aid program analysis. | 10-03-2013 |
20130311734 | DATA COPY MANAGEMENT FOR FASTER READS - Multiple copy sets of data are maintained on one or more storage devices. Each copy set includes at least some of the same data units as other sets. Different sets optionally have data units stored in different orders on the storage device(s). A particular one of the sets of data is selected as the set to be accessed in response to detecting a particular scenario. | 11-21-2013 |
20130321453 | Virtual Surface Allocation - Virtual surface techniques are described. These techniques include support of initialization and batching of updates, use of updates and lookaside lists, use of gutters, blending and BLT operations, surface optimization techniques such as push down as well as enumeration and clumping, mesh usage, and occlusion management techniques. | 12-05-2013 |
20130321454 | Virtual Surface Lookaside Lists and Gutters - Virtual surface techniques are described. These techniques include support of initialization and batching of updates, use of updates and lookaside lists, use of gutters, blending and BLT operations, surface optimization techniques such as push down as well as enumeration and clumping, mesh usage, and occlusion management techniques. | 12-05-2013 |
20130321455 | Virtual Surface Rendering - Virtual surface techniques are described. These techniques include support of initialization and batching of updates, use of updates and lookaside lists, use of gutters, blending and BLT operations, surface optimization techniques such as push down as well as enumeration and clumping, mesh usage, and occlusion management techniques. | 12-05-2013 |
20130321471 | Virtual Surface Compaction - Virtual surface update and composition techniques are described. These techniques include support of initialization and batching of updates, use of updates and lookaside lists, use of gutters, blending and BLT operations, surface optimization techniques such as push down as well as enumeration and clumping, mesh usage, and occlusion management techniques. | 12-05-2013 |
20140029862 | Delayed Image Decoding - In one or more embodiments, a framework is provided in which image decoding can be delayed based on heuristics, and later initiated based on a use type associated with the image or the likelihood that the image is going to be used. For example, a use history and priority system can enable images that are currently being rendered and/or are likely to get rendered to be decoded before images that have a history of being downloaded but never used. Accordingly, by decoupling image download from image decoding, CPU resources and memory can be more efficiently utilized. | 01-30-2014 |
20140075126 | MANAGEMENT OF EXTERNAL MEMORY FUNCTIONING AS VIRTUAL CACHE - A method and apparatus for managing the caching of data on an auxiliary memory of a computer. Pages of data may be cached on an auxiliary memory, such as a flash memory, at a virtual level using an identifier that does not involve a physical address of the pages on a memory. Pages may be cached on auxiliary memory that may be removable from the computer, e.g., by unplugging the memory from the computer. Page data may be encrypted and/or compressed on the auxiliary memory. An authentication indicator may be used to verify the accuracy of cached data in the case of an interrupted connection to the auxiliary memory, e.g., as a result of computer power down, hibernation, removal of the memory from the computer, etc. | 03-13-2014 |
20150043834 | Delayed Image Decoding - In one or more embodiments, a framework is provided in which image decoding can be delayed based on heuristics, and later initiated based on a use type associated with the image or the likelihood that the image is going to be used. For example, a use history and priority system can enable images that are currently being rendered and/or are likely to get rendered to be decoded before images that have a history of being downloaded but never used. Accordingly, by decoupling image download from image decoding, CPU resources and memory can be more efficiently utilized. | 02-12-2015 |
20150058545 | USING EXTERNAL MEMORY DEVICES TO IMPROVE SYSTEM PERFORMANCE - The invention is directed towards a system and method that utilizes external memory devices to cache sectors from a rotating storage device (e.g., a hard drive) to improve system performance. When an external memory device (EMD) is plugged into the computing device or onto a network in which the computing device is connected, the system recognizes the EMD and populates the EMD with disk sectors. The system routes I/O read requests directed to the disk sector to the EMD cache instead of the actual disk sector. The use of EMDs increases performance and productivity on the computing device systems for a fraction of the cost of adding memory to the computing device. | 02-26-2015 |