Abstract:
A method and apparatus for accelerating a software transactional memory (STM) system is described herein. Annotation field are associated with lines of a transactional memory. An annotation field associated with a line of the transaction memory is initialized to a first value upon starting a transaction. In response to encountering a read operation in the transaction, then annotation field is checked. If the annotation field includes a first value, the read is serviced from the line of the transaction memory without having to search an additional write space. A second and third value in the annotation field potentially indicates whether a read operation missed the transactional memory or a tentative value is stored in a write space. Additionally, an additional bit in the annotation field, may be utilized to indicate whether previous read operations have been logged, allowing for subsequent redundant read logging to be reduced.
Abstract:
A method and apparatus for fine-grained filtering in a hardware accelerated software transactional memory system is herein described. A data object, which may have an arbitrary size, is associated with a filter word. The filter word is in a first default state when no access, such as a read, from the data object has occurred during a pendancy of a transaction. Upon encountering a first access, such as a first read, from the data object, access barrier operations including an ephemeral/private store operation to set the filter word to a second state are performed. Upon a subsequent/redundant access, such as a second read, the access barrier operations are elided to accelerate the subsequent access, based on the filter word being set to the second state to indicate a previous access occurred.
Abstract:
An apparatus includes an optical source providing an optical beam; a splitter configured to split the optical beam into a sample beam and a reference beam; a sample path containing a sample material to be analyzed, the sample beam being directed through the sample path so as to interact with the sample material; a reference path containing a reference material, the reference beam being directed through the reference path so as to interact with the reference material; a disperser configured to receive the sample beam after it exits the sample path and to receive the reference beam after it exits the reference path, the disperser outputting a dispersed sample beam and a dispersed reference beam; and a photodetector disposed to receive the dispersed sample beam and the dispersed reference beam and outputting electrical signals comprised of data indicative of a spectra of the sample beam after it exits the sample path and a spectra of the reference beam after it exits the reference path. In one embodiment the apparatus further includes a data processor connected with a memory storing a software program configured to process the data to detect a presence of at least one type of molecular species that includes the sample material; and a transmitter configured to transmit the processed data to a receiver. In another embodiment the apparatus includes a transmitter configured to transmit the data to a remote receiver for processing.
Abstract:
A device for determining when a virtual trip line has been crossed or traversed is provided. The device includes a memory for storing the virtual trip lines which are defined pairs of location descriptors corresponding to a geographic area. The device further includes a processor that is capable of determining the location of the device when it crosses a virtual trip line as well as its speed and direction. The processing element is further capable of sending this information to another electronic device such as a server that may determine a number of vehicles crossing a virtual trip line for a specified amount of time, the average speed of vehicles crossing the virtual trip line and the traffic density in a region near the virtual trip line. The device is capable of receiving the information that was determined by the server.
Abstract:
Provided is an apparatus for determining a charge to an entity associated with informational material disseminated to at least one mobile terminal. The apparatus includes a processing unit that may be configured to obtain respective location data of the mobile terminal during and subsequent to rendering of the informational material at the mobile terminal. A billing unit may be configured to determine a charge to an entity associated with the informational material based at least in part on movement of the at least one mobile terminal subsequent to rendering of the informational material as indicated by the location data. Corresponding methods and computer program products are also provided.
Abstract:
A processor may include an address monitor table and an atomic update table to support speculative threading. The processor may also include one or more registers to maintain state associated with execution of speculative threads. The processor may support one or more of the following primitives: an instruction to write to a register of the state, an instruction to trigger the committing of buffered memory updates, an instruction to read the a status register of the state, and/or an instruction to clear one of the state bits associated with trap/exception/interrupt handling. Other embodiments are also described and claimed.
Abstract:
A system, which includes a processor that includes a plurality of cores, generates an address translation when there is a miss in a translation lookaside buffer (TLB). A hypervisor utilizes a translating load instruction that upon execution on the processor generates a data portion of a TLB entry. Execution of the translating load instruction utilizes information from a real-to-physical address translation table entry and information provided in the call to the translating load instruction to synthesize the data portion of a new virtual-to-physical translation table entry.
Abstract:
Software instructions in a single thread code sequence with a helper subthread are executed on a processor of a computer system. The execution causes the computer system, for example, to (i) determine whether information associated with a long latency instruction is available, and when the data is unavailable, to (ii) snapshot a state of the computer system and maintain a capability to roll back to that snapshot state, (iii) execute the helper instruction in the helper subthread, and (iv) roll back to the snapshot state upon completion of execution of the helper instructions in the helper subthread and continue execution. The helper subthread, for example prefetches data while waiting for the long latency instruction to complete.
Abstract:
A method and apparatus for enabling a Software Transactional Memory (STM) with precompiled binaries is herein described. Upon encountering an access operation in a transaction, an annotation field associated with a memory location referenced by the access is checked. In response to the memory location representing a previous similar access within the transaction, the access is performed without access barriers. However, if the annotation field is in a default state representing no previous access during a pendancy of the transaction, then a mode of the processor is determined. If the processor mode is in implicit mode, an access handler/barrier is asynchronously executed. Conversely, in an explicit mode, a flag is set instead of asynchronously executing the handler. In addition, during compilation convert explicit and convert implicit instructions are inserted to intelligently convert modes for precompiled and newly compiled binaries. Furthermore, new versions of newly compiled functions may be inserted to provide strong atomicity between previously and newly compiled functions.
Abstract:
A method and apparatus for accelerating transactional execution. Barriers associated with shared memory lines referenced by memory accesses within a transaction are only invoked/executed the first time the shared memory lines are accessed within a transaction. Hardware support, such as a transaction field/transaction bits, are provided to determine if an access is the first access to a shared memory line during a pendancy of a transaction. Additionally, in an aggressive operational mode version numbers representing versions of elements stored in shared memory lines are not stored and validated upon commitment to save on validation costs. Moreover, even in a cautious mode, that stores version numbers to enable validation, validation costs may not be incurred, if eviction of accessed shared memory lines do not occur during execution of the transaction.