Apparatus and method for distributed program stack

G - Physics – 06 – F

Patent

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

G06F 15/16 (2006.01) G06F 9/46 (2006.01)

Patent

CA 2061117

A multi-processor computer system executes a single-thread program having a plurality of callable procedures in program modules. The local memory of each processor contains a program stack, the object code of each module that executes on that processor, and an agent object and data structures containing linkage information. In addition, the local memory contains a c-stub module for each procedure executable on a different processor, and a s-stub module for each procedure in local memory that can be called by a procedure executing on another processor. When a procedure P1 executing on processor A wishes to call a procedure P2 which executes in processor B, it issues a local call to P2's c-stub in processor A's local memory. The P2 c-stub then invokes the agent process in processor A, which communicates with a corresponding agent process in processor B. The agent process in processor B causes a P2's s-stub in processor B to issue a local call to procedure P2. The return from a procedure follows the same path in reverse. Each processor independently maintains its own version of the program stack, with stack entries referencing the locally executable procedures, local stubs, or local agents. With each local call or return, the program stack for that processor is updated appropriately. Because each processor independently maintains its own stack, remote procedure calls are not constrained by the past calling history of a process. A procedure P1 in processor A may call a procedure P2 in processor B, which may in turn call another procedure P3 in processor A. It is therefore possible for a conventional single-thread program to be converted to operation on a multi-processor system without any significant modification to the source code.

Un système informatique multiprocesseur exécute un programme à une seule unité d'exécution qui comporte plusieurs procédures qui peuvent être appelées dans des modules de programme. La mémoire locale de chaque processeur contient une pile de programme, le code objet de chaque module qui s'exécute sur ce processeur, ainsi qu'un objet agent et des structures de données contenant des liens. En outre, la mémoire locale contient un module de remplacement c pour chaque procédure exécutable sur un processeur différent, et un module de remplacement s pour chaque procédure dans la mémoire locale qui peut être appelée par une procédure qui s'exécute sur un autre processeur. Lorsqu'une procédure P1 qui s'exécute sur le processeur A désire appeler une procédure P2 qui s'exécute sur le processeur B, elle envoie un appel local au module de remplacement c de P2 dans la mémoire locale du processeur A. Le module de remplacement c de P2 appelle ensuite le processus agent dans le processeur A, qui communique avec un processus agent correspondant dans le processeur B. Le processus agent dans le processeur B demande au module de remplacement s de P2 dans le processeur B d'envoyer un appel local à la procédure P2. Le retour à partir d'une procédure s'effectue de la même façon, mais à l'inverse. Chaque processeur tient à jour de façon indépendante sa propre version de la pile de programme, les entrées dans cette pile référençant les procédures exécutables localement, les modules de remplacement locaux ou les agents locaux. Lors de chaque appel local ou d'un retour, la pile de programme correspondant à ce processeur est mise à jour en conséquence. Comme chaque processeur tient à jour de façon indépendante sa propre pile, les appels à une procédure distante ne sont pas limités par l'historique des appels passés d'un processus. Une procédure P1 dans le processeur A peut appeler une procédure P2 dans le processeur B, qui peut à son tour appeler une autre procédure P3 dans le processeur A. Il est par conséquent possible de faire fonctionner un programme classique à une seule unité d'exécution sur un système multiprocesseur, sans avoir à apporter de modifications importantes au code source.

LandOfFree

Say what you really think

Search LandOfFree.com for Canadian inventors and patents. Rate them and share your experience with other people.

Rating

Apparatus and method for distributed program stack does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Apparatus and method for distributed program stack, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Apparatus and method for distributed program stack will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFCA-PAI-O-1398870

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.