One embodiment of the present invention provides a system that facilitates multi-dimensional space and time dimensional execution of computer programs. The system includes a head thread that executes program instructions and a series of speculative threads that execute program instructions in advance of the head thread, wherein each speculative thread executes program instructions in advance of preceding speculative threads in the series. The head thread accesses a primary version of the memory element and the series of speculative threads access space-time dimensioned versions of the memory element. The system starts by receiving a memory access to the memory element. If the memory access is a write operation by the head thread or a speculative thread, the system determines if a version of the memory element associated with the head thread or speculative thread exists. If not, the system creates a version of the memory element for the thread. Next, the system performs the write operation to the version of the memory element. After performing the write operation, the system checks status information associated with the memory element to determine if the memory element has been read by a following speculative thread in the series of speculative threads. If so, the system causes the following speculative thread and any successive speculative threads in the series to roll back so that the following speculative thread and any successive speculative threads in the series can read a result of the write operation. If not, the system performs the write operation to all successive space-time dimensioned versions of the memory element.

Un mode de réalisation de la présente invention fournit un système qui facilite l'exécution dimensionnelle multidimensionnelle de l'espace et de temps des programmes machine. Le système inclut un fil principal qui exécute des instructions de programme et des séries de fils spéculatifs qui exécutent des instructions de programme avant le fil principal, où chaque fil spéculatif exécute des instructions de programme avant les fils spéculatifs précédents de la série. Le fil principal accède à une version primaire de l'élément de mémoire et les séries de fils spéculatifs accèdent à des versions dimensionnées partemps de l'élément de mémoire. Le système commence par recevoir un accès mémoire à l'élément de mémoire. Si l'accès mémoire est une opération d'inscription par le fil principal ou un fil spéculatif, le système détermine si une version de l'élément de mémoire s'associait au fil principal ou le fil spéculatif existe. Si pas, le système crée une version de l'élément de mémoire pour le fil. Après, le système effectue l'opération d'inscription à la version de l'élément de mémoire. Après avoir effectué l'opération d'inscription, le système vérifie l'information de statut liée à l'élément de mémoire pour déterminer si l'élément de mémoire a été lu par un fil spéculatif suivant de la série de fils spéculatifs. Si oui, le système cause le fil spéculatif suivant et tous les fils spéculatifs successifs de la série à roulent en arrière de sorte que le fil spéculatif suivant et n'importe quels fils spéculatifs successifs de la série puissent lire un résultat de l'opération d'inscription. Si pas, le système effectue l'opération d'inscription à toutes les versions dimensionnées partemps successif de l'élément de mémoire.

 
Web www.patentalert.com

< (none)

< Method of software protection using a random code generator

> Opcode numbering for meta-data encoding

> (none)

~ 00046