Patent application number | Description | Published |
20090064164 | METHOD OF VIRTUALIZATION AND OS-LEVEL THERMAL MANAGEMENT AND MULTITHREADED PROCESSOR WITH VIRTUALIZATION AND OS-LEVEL THERMAL MANAGEMENT - A program product and method of managing task execution on an integrated circuit chip such as a chip-level multiprocessor (CMP) with Simultaneous MultiThreading (SMT). Multiple chip operating units or cores have chip sensors (temperature sensors or counters) for monitoring temperature in units. Task execution is monitored for hot tasks and especially for hotspots. Task execution is balanced, thermally, to minimize hot spots. Thermal balancing may include Simultaneous MultiThreading (SMT) heat balancing, chip-level multiprocessors (CMP) heat balancing, deferring execution of identified hot tasks, migrating identified hot tasks from a current core to a colder core, User-specified Core-hopping, and SMT hardware threading. | 03-05-2009 |
20090288089 | METHOD FOR PRIORITIZED EVENT PROCESSING IN AN EVENT DISPATCHING SYSTEM - A method for dynamically prioritizing event processing in an event dispatching system includes steps of: organizing input/output requests in a plurality of activity sets ordered from most active to least active, wherein a highest priority level is associated with the most active activity set and the lowest priority level is associated with the least active activity set; organizing event descriptors corresponding to the input/output requests into event descriptor sets; creating an event descriptor cache; duplicating the event descriptor of the input/output request found to be most active into the event descriptor cache; monitoring the event descriptor cache more frequently than the event descriptor set; and invoking an event dispatching routine from the event descriptor cache. | 11-19-2009 |
20100013678 | METHOD AND APPARATUS FOR DATA DECOMPRESSION IN THE PRESENCE OF MEMORY HIERARCHIES - A method for decompressing a stream of a compressed data packet includes determining whether first data of a data-dictionary for a first decompression copy operation is located in a history buffer on a remote memory or a local memory, and when it is determined that the first data is located in the remote memory, stalling the first decompression copy operation, performing a second decompression operation using second data that is located in the history buffer on the local memory and fetching the first data from the remote memory to the history buffer on the local memory. The method further includes performing the first decompression operation using the first data in the history buffer on the local memory. | 01-21-2010 |
20100020825 | Method and Apparatus for Concurrent and Stateful Decompression of Multiple Compressed Data Streams - A method for decompressing multiple data streams includes receiving a packet of data of a compressed data stream, directing the received packet to a selected one of a plurality of decompression functional units within a hardware-based decompression accelerator unit, obtaining decompression state information pertaining to the compressed data stream, and decompressing the received packet using the obtained decompression state information. | 01-28-2010 |
20100042624 | METHOD FOR SORTING DATA - Techniques for sorting a sequence of one or more input objects are provided. The techniques include identifying a property that is exhibited by a sequence of one or more input objects, determining whether each input object from the sequence of one or more input objects exhibits the property, storing each of the one or more input objects into a buffer, wherein an input object is stored in a first buffer if it exhibits the property and an input object is stored in a second buffer if it does not exhibit the property, sorting each of the one or more input objects in each buffer, and merging the one or more input objects in each buffer into a sequence of one or more input objects. | 02-18-2010 |
20100125900 | Network Intrusion Protection - Improved techniques are disclosed for use in an intrusion prevention system or the like. For example, a method comprises the following steps performed by a computing element of a network. A packet of a flow is received, the flow comprising a plurality of packets, wherein the plurality of packets represents data in the network. A network intrusion analysis cost-benefit value is determined representing a benefit for analyzing the received packet for intrusions in relation to a cost for analyzing the received packet for intrusions. The method compares the network intrusion analysis cost-benefit value to a network intrusion analysis cost-benefit threshold to determine whether analyzing the received packet for intrusions before forwarding the received packet is warranted. Responsive to a determination that analyzing the received packet for intrusions before forwarding the received packet is not warranted, the received packet is forwarded, an indication is made that subsequent packets of the flow should be forwarded, and a determination is made whether the received packet indicates an intrusion after forwarding the received packet. | 05-20-2010 |
20100223269 | SYSTEM AND METHOD FOR AN EFFICIENT QUERY SORT OF A DATA STREAM WITH DUPLICATE KEY VALUES - An apparatus and method for efficiently performing a query sort on a data set with duplicate key values is disclosed. The method includes identifying unique key values for a key in a data set after determining that a number of duplicate key values for the key exceed a predefined threshold. The method also includes recording an association of each unique key value with a record in the data set and sorting unique key values. The method further includes storing the unique key values in a sorted order, wherein each unique key value is associated with an appropriate record in the data set. | 09-02-2010 |
20100253556 | METHOD OF CONSTRUCTING AN APPROXIMATED DYNAMIC HUFFMAN TABLE FOR USE IN DATA COMPRESSION - A novel and useful method of constructing a fast approximation of a dynamic Huffman table from a data sample comprising a subset of data to be compressed. The frequency of incidence of each symbol in the sample is calculated, and the symbols are then allocated to predefined bins based on their frequency of incidence. The bins are then transformed into binary sub-trees, where the leaf nodes of the binary sub-trees comprise the symbols of the bin associated with the binary sub-trees. The binary sub-trees are then combined via nesting, thereby creating a coarse grained binary tree, where all leaves are mapped to a specified number of depths. The coarse grained binary tree is then traversed, thereby yielding a canonical code for each symbol, thereby defining the entries for a dynamic Huffman table. | 10-07-2010 |
20100272125 | Canonicalization of Network Protocol Headers - A method for generating network traffic includes receiving packet header information and an optional packet payload. The received packet header information is arranged in accordance with a predetermined format. A packet of data including the packet payload and a packet header is formatted in accordance with the arranged header information. The predetermined format specifies a particular order in which packet headers are to be arranged. | 10-28-2010 |
20110022815 | STORAGE ALLOCATION - Techniques for storage allocation of a data record are provided. The techniques include attempting to identify a first location for storing a data record, wherein the data record comprises one or more data record attributes, if the first location is identified, selecting the first location for storing the data record, and if the first location is not identified, identifying a second location for storing the data record using a cost penalty function and selecting the second location for storing the data record based on the cost penalty function. | 01-27-2011 |
20110158249 | Assignment Constraint Matrix for Assigning Work From Multiple Sources to Multiple Sinks - An assignment constraint matrix method and apparatus used in assigning work, such as data packets, from a plurality of sources, such as data queues in a network processing device, to a plurality of sinks, such as processor threads in the network processing device. The assignment constraint matrix is implemented as a plurality of qualifier matrixes adapted to operate simultaneously in parallel. Each of the plurality of qualifier matrixes is adapted to determine sources in a subset of supported sources that are qualified to provide work to a set of sinks based on assignment constraints. The determination of qualified sources may be based sink availability information that may be provided for a set of sinks on a single chip or distributed on multiple chips. | 06-30-2011 |
20110158250 | Assigning Work From Multiple Sources to Multiple Sinks Given Assignment Constraints - A method and apparatus for assigning work, such as data packets, from a plurality of sources, such as data queues in a network processing device, to a plurality of sinks, such as processor threads in the network processing device. In a given processing period, sinks that are available to receive work are identified and sources qualified to send work to the available sinks are determined taking into account any assignment constraints. A single source is selected from an overlap of the qualified sources and sources having work available. This selection may be made using a hierarchical source scheduler for processing subsets of supported sources simultaneously in parallel. A sink to which work from the selected source may be assigned is selected from available sinks qualified to receive work from the selected source. | 06-30-2011 |
20110158254 | DUAL SCHEDULING OF WORK FROM MULTIPLE SOURCES TO MULTIPLE SINKS USING SOURCE AND SINK ATTRIBUTES TO ACHIEVE FAIRNESS AND PROCESSING EFFICIENCY - A method and apparatus for assigning work, such as data packets, from a plurality of sources, such as data queues in a network processing device, to a plurality of sinks, such as processor threads in the network processing device. In a given processing period, a source is selected in a manner that maintains fairness in the selection process. A corresponding sink is selected for the selected source based on processing efficiency. If, due to assignment constraints, no sink is available for the selected source, the selected source is retained for selection in the next scheduling period, to maintain fairness. In this case, to optimize efficiency, a most efficient currently available sink is identified and a source for providing work to that sink is selected. | 06-30-2011 |
20120005652 | Method and System for Lazy Data Serialization in Computer Communications - A method of transmitting information to a receiving computer systems includes determining in a processing unit of a computer whether a receiving computer system can receive the information without converting a local format of the information into a canonical format of the information, if it is determined that the receiving computer system cannot receive the information without converting the local format into the canonical format, then converting the local format to the canonical format and transmitting the information to the receiving computer system, and if it is determined that the receiving computer system can receive the information without converting the local format into the canonical format, then transmitting the information to the receiving computer system. | 01-05-2012 |
20120084278 | SCAN SHARING FOR QUERY PREDICATE EVALUATIONS IN COLUMN-BASED IN-MEMORY DATABASE SYSTEMS - A plurality of queries of an in-memory column-oriented database are obtained. Each of the queries has at least one column predicate. For each of the queries, it is determined which of a plurality of columns in the in-memory column-oriented database need to be scanned. The plurality of queries are grouped into a plurality of scan groups, based at least in part on the determining step. The column predicates are evaluated for those of the queries in a given one of the scan groups in accordance with a scheduling scheme. The grouping step and the scheduling scheme take into account real time scan information. | 04-05-2012 |
20120221430 | INDIVIDUAL ONLINE PRICE ADJUSTMENTS IN REAL TIME - A method, system and computer program product for adjusting prices for goods and services offered using a computer network. In one embodiment, data relating to goods and services offered over the computer network by a number of entities using the computer network are stored in a database, communications are monitored, using the computer network, to identify an interest of a user, and this interest of the user and the data in the database are used to identify one of the entities to offer a specified product or service to the user. Information is obtained relating to a price for the specified product or service, and this information and the data in the database are used to determine an adjusted price for the specified product or service. In one embodiment, the information the user has about a price for the specified product or service is used to determine the adjusted price. | 08-30-2012 |
20120284720 | HARDWARE ASSISTED SCHEDULING IN COMPUTER SYSTEM - Apparatus and methods for hardware assisted scheduling of software tasks in a computer system are disclosed. For example, a computer system comprises a first pool for maintaining a set of executable software threads, a first scheduler, a second pool for maintaining a set of active software threads, and a second scheduler. The first scheduler assigns a subset of the set of executable software threads to the set of active software threads and the second scheduler dispatches one or more threads from the set of active software threads to a set of hardware threads for execution. In one embodiment, the first scheduler is implemented as part of the operating system of the computer system, and the second scheduler is implemented in hardware. | 11-08-2012 |
20120331233 | False Sharing Detection Logic for Performance Monitoring - A mechanism is provided for detecting false sharing misses. Responsive to performing either an eviction or an invalidation of a cache line in a cache memory of the data processing system, a determination is made as to whether there is an entry associated with the cache line in a false sharing detection table. Responsive to the entry associated with the cache line existing in the false sharing detection table, a determination is made as to whether an overlap field associated with the entry is set. Responsive to the overlap field failing to be set, identification is made that a false sharing coherence miss has occurred. A first signal is then sent to a performance monitoring unit indicating the false sharing coherence miss. | 12-27-2012 |
20130132535 | Network Data Processsing System - A method and apparatus for processing of data packets by a data processing component comprising a plurality of processing resources. A metric value for a current configuration of the processing resources that are processing the data packets is identified. A new configuration of the processing resources is selected using the metric value. The current configuration of the processing resources is changed to the new configuration and data packets are distributed to the new configuration for processing as the data packets are received. | 05-23-2013 |
20130138867 | Storing Multi-Stream Non-Linear Access Patterns in a Flash Based File-System - Accesses to logical pages of memory are monitored. Each logical page corresponds to a logical memory address and the accesses defining an access pattern. The logical memory addresses are logged in ordered pairs of consecutive logical pages in the access pattern. Upon receipt of a request to write data to a given logical page, a given ordered pair of consecutive logical pages containing the logical memory address of the given logical page as a first logical memory address in the ordered pair of logical memory addresses associated with that consecutive pair is obtained. A first physical memory address mapping to the first logical memory address is identified, and a second logical memory address from that identified consecutive pair. A second physical memory address mapping to the second logical memory address is identified, and the data and the second physical memory address are written to the first physical memory address. | 05-30-2013 |
20130174159 | FACILITATING PROCESSING WITHIN COMPUTING ENVIRONMENTS SUPPORTING PAGEABLE GUESTS - Processing within a computing environment that supports pageable guests is facilitated. Processing is facilitated in many ways, including, but not limited to, associating guest and host state information with guest blocks of storage; maintaining the state information in control blocks in host memory; enabling the changing of states; and using the state information in management decisions. In one particular example, the guest state includes an indication of usefulness and importance of memory contents to the guest, and the host state reflects the ease of access to memory contents. The host and guest state information is used in managing memory of the host and/or guests. | 07-04-2013 |
20130263121 | METHOD TO EMBED A LIGHT-WEIGHT KERNEL IN A FULL-WEIGHT KERNEL TO PROVIDE A HETEROGENEOUS EXECUTION ENVIRONMENT - Enabling a Light-Weight Kernel (LWK) to run in a virtualized environment on a Full-Weight Kernel (FWK), in one aspect, may include replacing a FWK loader, e.g., FWK's dynamic library loader or linker, with a LWK library on a first computing entity for an application allocated to run on one or more second computing entities. The LWK library may be enabled to initialize the one or more second computing entities and associated memory allocated to run the application under the LWK library. The LWK library may be enabled to manage the one or more second computing entities and said associated memory and resources needed by the application. | 10-03-2013 |
20130311811 | Power Shifting in Multicore Platforms by Varying SMT Levels - Power consumption in a microprocessor platform is managed by setting a peak power level for power consumed by a multi-core microprocessor platform executing multi-threaded applications. The multi-core microprocessor platform contains a plurality of physical cores, and each physical core is configurable into a plurality of logical cores. A simultaneous multithreading level in at least one physical core is adjusted by changing the number of logical cores on that physical core in response to a power consumption level of the multi-core microprocessor platform exceeding the peak power level. Performance and power data based on simultaneous multi-threading levels are used in selecting the physical core to be adjusted. | 11-21-2013 |
20130311812 | Power Shifting in Multicore Platforms by Varying SMT Levels - Power consumption in a microprocessor platform is managed by setting a peak power level for power consumed by a multi-core microprocessor platform executing multi-threaded applications. The multi-core microprocessor platform contains a plurality of physical cores, and each physical core is configurable into a plurality of logical cores. A simultaneous multithreading level in at least one physical core is adjusted by changing the number of logical cores on that physical core in response to a power consumption level of the multi-core microprocessor platform exceeding the peak power level. Performance and power data based on simultaneous multi-threading levels are used in selecting the physical core to be adjusted. | 11-21-2013 |
20130332648 | MAINTAINING VERSIONS OF DATA IN SOLID STATE MEMORY - Various embodiments are directed to maintaining versions of data within a solid state memory. At least one request to write at least one dataset to a logical page of a solid state memory is received from a file system. At least one physical page in a data block of the solid state memory associated with the logical page is identified. A processor stores the dataset in the at least one physical page. At least one data versioning tag is associated with the at least one dataset in a data structure associated with the logical page. The data versioning tag identifies the at least one dataset as a given version of the logical page. The at least one dataset is maintained as accessible from the at least one physical page irrespective of subsequent write operations to the logical page in response to associating the at least one data versioning tag. | 12-12-2013 |
20130332649 | FILE SYSTEM FOR MAINTAINING DATA VERSIONS IN SOLID STATE MEMORY - One or more embodiments are directed to managing data in a solid state memory supporting data versioning. A file system reserves a plurality of logical pages from a solid state memory. Each logical page in the plurality of logical pages is associated with a plurality of physical pages in the solid state memory. Each logical page in the plurality of logical pages is assigned to one group in a plurality of groups. A request is sent to a flash translation layer for an operation to be performed by the flash translation layer on a group in the plurality of groups. | 12-12-2013 |
20130332650 | FLASH TRANSLATION LAYER SYSTEM FOR MAINTAINING DATA VERSIONS IN SOLID STATE MEMORY - One or more embodiments are directed to managing data in a solid state memory supporting data versioning. At least one request to perform an operation on at least one logical page of a solid state memory is received from a file system. A data structure associated with the at least one logical page is identified. The data structure at least identifies one or more physical pages associated with the at least one logical page, and a version of the at least one logical page represented by a dataset stored in each of the one or more physical pages. The operation is performed on the at least one logical page based on the data structure that has been identified. | 12-12-2013 |
20130332654 | DATA VERSIONING IN SOLID STATE MEMORY - One or more embodiments are directed a solid state storage device for maintaining versions of data. The solid state storage device comprises a processor and a solid state memory communicatively coupled to the processor. A flash translation layer is configured to perform a method comprising creating at least one data structure associated with at least one logical page of the solid state memory. The logical page is associated with at least one physical page in a data block of the solid state memory. A first set of information associated with the logical page is stored in the data structure. A second set of information associated with the physical page is stored in the data structure. The second set of information comprises at least versioning information identifying which version of the logical page is represented by a dataset stored within the physical page. | 12-12-2013 |
20130332655 | MAINTAINING VERSIONS OF DATA IN SOLID STATE MEMORY - One or more embodiments are directed a solid state storage device for maintaining versions of data. The solid state storage device comprises a processor and a solid state memory communicatively coupled to the processor. A flash translation layer receives at least one request from a file system to write at least one dataset to a logical page of the solid state memory. At least one physical page in a data block of the solid state memory associated with the logical page is identified. At least one dataset in the physical page is stored. At least one data versioning tag is associated with the dataset in a data structure associated with the logical page. The data versioning tag identifies the dataset as a given version of the logical page. The dataset is maintained as accessible from the physical page irrespective of subsequent write operations to the logical page. | 12-12-2013 |
20130332656 | FILE SYSTEM FOR MAINTAINING DATA VERSIONS IN SOLID STATE MEMORY - One or more embodiments are directed to managing data in a solid state memory supporting data versioning. A file system residing at an information processing system reserves a plurality of logical pages from a solid state memory. Each logical page in the plurality of logical pages is associated with a plurality of physical pages in the solid state memory. Each logical page in the plurality of logical pages is assigned to one group in a plurality of groups. A request is sent to a flash translation layer for an operation to be performed by the flash translation layer on a group in the plurality of groups. | 12-12-2013 |
20130332657 | FLASH TRANSLATION LAYER SYSTEM FOR MAINTAINING DATA VERSIONS IN SOLID STATE MEMORY - One or more embodiments are directed to maintaining versions of data within a solid state memory. At least one request to perform an operation on at least one logical page of a solid state memory is received from a file system. A data structure associated with the at least one logical page is identified. The data structure at least identifies one or more physical pages associated with the at least one logical page, and a version of the at least one logical page represented by a dataset stored in each of the one or more physical page. The operation is performed on the at least one logical page based on the data structure that has been identified. | 12-12-2013 |
20130332684 | DATA VERSIONING IN SOLID STATE MEMORY - Embodiments are directed to maintaining versions of data within a solid state memory. One or more embodiments create at least one data structure associated with at least one logical page of a solid state memory. The logical page is associated with at least one physical page in a data block of the solid state memory. A first set of information associated with the logical page is stored in the data structure. A second set of information associated with the physical page is stored in the data structure. The second set of information includes at least versioning information identifying which version of the logical page is represented by a dataset is stored within the physical page. | 12-12-2013 |
20140019422 | ENCODED DATA PROCESSING - Techniques are provided for encoded data processing which allows for continuous data processing as encoded data changes. Data is decomposed into one or more blocks with each block containing at least one data record. At least one data record within a given block is encoded with a first encoding process selected from one or more encoding processes. The first encoding process is associated with the given data block. Techniques evaluate whether or not to implement an encoding change for a given block when updating a given data record in the given block. Responsive to the evaluation, the given block is re-encoded with a second encoding process. Responsive to the re-encoding, the association of the given block is updated. A map is formed to convert the given data record encoded with the first encoding process to the second encoding process so as to preserve comparative relationships of the given data record. | 01-16-2014 |
20140019472 | ENCODED DATA PROCESSING - Techniques for encoded data processing which allow for continuous data processing as encoded data changes. Data is decomposed into one or more blocks with each block containing at least one data record. At least one data record within a given block is encoded with a first encoding process selected from one or more encoding processes. The first encoding process is associated with the given data block. Techniques evaluate whether or not to implement an encoding change for a given block when updating a given data record in the given block. Responsive to the evaluation, the given block is re-encoded with a second encoding process. Responsive to the re-encoding, the association of the given block is updated. A map is formed to convert the given data record encoded with the first encoding process to the second encoding process so as to preserve comparative relationships of the given data record. | 01-16-2014 |
20140122776 | DYNAMIC TUNING OF INTERNAL PARAMETERS FOR SOLID-STATE DISK BASED ON WORKLOAD ACCESS PATTERNS - A system and method for tuning a solid state disk memory includes computing a metric representing a usage trend of a solid state disk memory. Whether one or more parameters need to be adjusted to provide a change in performance is determined. The parameter is adjusted in accordance with the metric to impact the performance of running workloads. These steps are repeated after an elapsed time interval. | 05-01-2014 |
20140289729 | FACILITATING PROCESSING WITHIN COMPUTING ENVIRONMENTS SUPPORTING PAGEABLE GUESTS - Processing within a computing environment that supports pageable guests is facilitated. Processing is facilitated in many ways, including, but not limited to, associating guest and host state information with guest blocks of storage; maintaining the state information in control blocks in host memory; enabling the changing of states; and using the state information in management decisions. In one particular example, the guest state includes an indication of usefulness and importance of memory contents to the guest, and the host state reflects the ease of access to memory contents. The host and guest state information is used in managing memory of the host and/or guests. | 09-25-2014 |
20140379956 | MANAGING A TRANSLATION LOOKASIDE BUFFER - Method and apparatus for managing a translation lookaside buffer (TLB) at hardware in a virtualization enabled system. According to embodiments of the present invention, a series of operations caused by TLB miss would not need intervening from the hypervisor. On the contrary, when a TLB miss occurs, the hardware directly issues an interrupt to a virtual machine. In this way, the TLB can be efficiently managed by means of a hardware-level auxiliary translation table. Therefore, system overheads can be greatly reduced and system performance can be improved. Methods and apparatuses associated with hardware, hypervisor, and virtual machine in a virtualization enabled system are disclosed, respectively. | 12-25-2014 |