Marking memory elements based upon usage of accessed information during speculative execution

   
   

One embodiment of the present invention provides a system that marks memory elements based upon how information retrieved from the memory elements affects speculative program execution. This system operates by allowing a programmer to examine source code that is to be compiled into executable code for a head thread that executes program instructions, and for a speculative thread that executes program instructions in advance of the head thread. During read operations to memory elements by the speculative thread, this executable code generally causes the speculative thread to update status information associated with the memory elements to indicate that the memory elements have been read by the speculative thread. Next, the system allows the programmer to identify a given read operation directed to a given memory element, wherein a given value retrieved from the given memory element during the given read operation does not affect subsequent execution of the speculative thread. The programmer is then allowed to insert a hint into the source code specifying that the speculative thread is not to update status information during the given read operation directed to the given memory element. Next, the system compiles the source code, including the hint, into the executable code, so that during the given read operation, the executable code does not cause the speculative thread to update status information associated with the given memory element to indicate that the given memory element has been read by the speculative thread.

Uma incorporação da invenção atual fornece um sistema que marque os elementos da memória baseados em como a informação recuperada dos elementos da memória afeta a execução de programa speculative. Este sistema opera-se permitindo que um programador examine o código de fonte que deve ser compilado no código executável para uma linha principal que execute instruções de programa, e para uma linha speculative que execute instruções de programa adiantado da linha principal. Durante operações lidas aos elementos da memória pela linha speculative, este código executável faz com geralmente que a linha speculative atualize a informação de status associada com os elementos da memória para indicar que os elementos da memória estiveram lidos pela linha speculative. Em seguida, o sistema permite que o programador identifique uma operação lida dada dirigida a um elemento dado da memória, wherein um valor dado recuperado do elemento dado da memória durante a operação lida dada não afeta a execução subseqüente da linha speculative. O programador é permitido então introduzir uma sugestão no código de fonte que especifica que a linha speculative não deve atualizar a informação de status durante a operação lida dada dirigida ao elemento dado da memória. Em seguida, o sistema compila o código de fonte, including a sugestão, no código executável, de modo que durante a operação lida dada, o código executável não faça com que a linha speculative atualize a informação de status associada com o elemento dado da memória para indicar que o elemento dado da memória estêve lido pela linha speculative.

 
Web www.patentalert.com

< Multi-utility energy control system with internet energy platform having diverse energy-related engines

< Policy notice method and system

> System, method and program for producing a customized response

> Kernel abstraction layer for digital television set-top box firmware

~ 00108