Abstract:
A processor of an aspect includes a decode unit to decode a persistent store fence instruction. The processor also includes a memory subsystem module coupled with the decode unit. The memory subsystem module, in response to the persistent store fence instruction, is to ensure that a given data corresponding to the persistent store fence instruction is stored persistently in a persistent storage before data of all subsequent store instructions is stored persistently in the persistent storage. The subsequent store instructions occur after the persistent store fence instruction in original program order. Other processors, methods, systems, and articles of manufacture are also disclosed.
Abstract:
In an embodiment, a system includes a processor including one or more cores and a plurality of alias registers to store memory range information associated with a plurality of operations of a loop. The memory range information references one or more memory locations within a memory. The system also includes register assignment means for assigning each of the alias registers to a corresponding operation of the loop, where the assignments are made according to a rotation schedule, and one of the alias registers is assigned to a first operation in a first iteration of the loop and to a second operation in a subsequent iteration of the loop. The system also includes the memory coupled to the processor. Other embodiments are described and claimed.
Abstract:
Technologies for performing flexible code acceleration on a computing device includes initializing an accelerator virtual device on the computing device. The computing device allocates memory-mapped input and output (I/O) for the accelerator virtual device and also allocates an accelerator virtual device context for a code to be accelerated. The computing device accesses a bytecode of the code to be accelerated and determines whether the bytecode is an operating system-dependent bytecode. If not, the computing device performs hardware acceleration of the bytecode via the memory-mapped I/O using an internal binary translation module. However, if the bytecode is operating system-dependent, the computing device performs software acceleration of the bytecode.
Abstract:
Methods and apparatus are disclosed to cache code in non-volatile memory. A disclosed example method includes identifying an instance of a code request for first code, identifying whether the first code is stored on non-volatile (NV) random access memory (RAM) cache, and when the first code is absent from the NV RAM cache, adding the first code to the NV RAM cache when a first condition associated with the first code is met and preventing storage of the first code to the NV RAM cache when the first condition is not met.
Abstract:
In one embodiment vector conflict detection instructions are disclosed to perform dynamic memory conflict detection within a vectorized iterative scalar operation. The instructions may be performed by a vector processor to generate a partition vector identifying groups of conflict free iterations. The partition vector may be used to generate a write mask for subsequent vector operations.
Abstract:
Dynamically switching cores on a heterogeneous multi-core processing system may be performed by executing program code on a first processing core. Power up of a second processing core may be signaled. A first performance metric of the first processing core executing the program code may be collected. When the first performance metric is better than a previously determined core performance metric, power down of the second processing core may be signaled and execution of the program code may be continued on the first processing core. When the first performance metric is not better than the previously determined core performance metric, execution of the program code may be switched from the first processing core to the second processing core.
Abstract:
Un procedimiento para proporcionar mecanismos para una atomicidad fuerte en un sistema de memoriatransaccionalcaracterizado por:detectar una operación de carga no transaccional en una función, siendo la operación de carga notransaccional, cuando se ejecuta, para cargar desde una ubicación de memoria;insertar en la función una pluralidad de operaciones de atomicidad fuerte en respuesta a la detección de laoperación de carga no transaccional en la función, siendo las operaciones de atomicidad fuerte paragarantizar la validez entre accesos a memoria transaccionales y no transaccionales;en el que las operaciones de atomicidad fuerte, cuando son ejecutadas, garantizan la validez determinando(415) si la ubicación (215) de memoria o las ubicaciones (205) de memoria han sido actualizadas por unatransacción, habiendo tenido lugar dicha actualización desde el inicio de la función, en el que dicha insercióncomprende:insertar una primera operación de atomicidad fuerte en la función que, cuando es ejecutada, actualiza unregistro con una copia (301b, 302b) de valor de transacción local LTV de un valor de transacción global(305), siendo dicho valor de transacción global un valor incrementado en respuesta a la finalización de unatransacción y ocurriendo dicha actualización del registro al inicio de dicha función;insertar una segunda operación de atomicidad fuerte que, cuando es ejecutada, obtiene un valor de versiónasociado con la ubicación (215) de memoria; einsertar una tercera operación de atomicidad fuerte que, cuando es ejecutada, compara el valor de versióncon la copia (301b, 302b) de LTV para determinar si la ubicación (215) de memoria ha sido actualizadadesde el inicio de la función;y en el que el procedimiento comprende, además, insertar (420) una pluralidad de operaciones de vía lenta quehan de ser ejecutadas en respuesta a la determinación (415) de que la ubicación (215) de memoria o lasubicaciones (205) de memoria han sido actualizadas desde el inicio de la función, para resolver el conflictoentre la transacción y la operación de carga no transaccional, en el que dichas operaciones de vía lentaincluyen:entrar en bucle o esperar en un bloqueo asociado con el valor de versión,adquirir la propiedad de los bloqueos y/ovolver a llevar a cabo la operación de carga no transaccional.