Browse Prior Art Database

Multiprocessor System to Improve Context Switching

IP.com Disclosure Number: IPCOM000043932D
Original Publication Date: 1984-Oct-01
Included in the Prior Art Database: 2005-Feb-05
Document File: 3 page(s) / 54K

Publishing Venue

IBM

Related People

Hailpern, BT: AUTHOR [+2]

Abstract

When small uniprocessors are multiprogrammed, much time can be lost due to context switching between processes. The system organization described herein reduces the time to switch contexts by adding additional processors and memory. Consider a small processor, such as a Z80, that performs a computing task in the context of a larger system, such as the Wire Routing Machine [*]. That processor executes an algorithm, stores and retrieves from memory, and communicates with other processors in the larger system. Under certain applications, that processor must execute more than one instance of an algorithm simultaneously. For example, in the Wire Routing Machine, each processor simulates the actions of many identical virtual processors in a larger virtual machine that has been "folded" into the existing machine.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 52% of the total text.

Page 1 of 3

Multiprocessor System to Improve Context Switching

When small uniprocessors are multiprogrammed, much time can be lost due to context switching between processes. The system organization described herein reduces the time to switch contexts by adding additional processors and memory. Consider a small processor, such as a Z80, that performs a computing task in the context of a larger system, such as the Wire Routing Machine [*]. That processor executes an algorithm, stores and retrieves from memory, and communicates with other processors in the larger system. Under certain applications, that processor must execute more than one instance of an algorithm simultaneously. For example, in the Wire Routing Machine, each processor simulates the actions of many identical virtual processors in a larger virtual machine that has been "folded" into the existing machine. In such cases, a context switch must take place between the execution of each instance of the algorithm. (The instances are called processes.) This context switch requires all registers and storage local to the first process to be stored in memory or on disk and the corresponding registers and local memory of the second process to be brought in. (Since we assume that all processes are executing the same algorithm, we do not have to bring in new code during the switch.) These context switches create considerable overhead; they are tolerated only because building a larger system with a sufficient number of processors to eliminate multiprogramming would be prohibitively expensive. The following system architecture reduces the overhead for context switching with only a marginal increase in hardware costs. In the present architecture, one processor per process being multiprogrammed is provided (if the number of processes changes dynamically, then as many processors as the maximum possible number of processes is used).

Each processor would have its own registers and local memory. All the processors would have access to a common global memory, where global data and the program are stored. Only one processor would be active at a time. One of these processors would be activated in turn by a sequencer. When one processor has completed its actions, it signals the sequencer, which then activates the next processor. This signal could be generated simply by writing to a bit in a distinguished location in global memory. All the registers of a proces...