Browse Prior Art Database

Low Cost Systems Using Multiple Processors

IP.com Disclosure Number: IPCOM000087270D
Original Publication Date: 1977-Jan-01
Included in the Prior Art Database: 2005-Mar-03
Document File: 5 page(s) / 80K

Publishing Venue

IBM

Related People

Sams, JG: AUTHOR

Abstract

This approach to low-cost systems having a wide range of capabilities, is to use a plurality of macro-assembler language definitions and programs written in those languages. These programs provide a flexible system in which changes to meet new conditions and requirements can be restricted to only a small program portion and do not cause unwanted perturbations in distant programs.

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 30% of the total text.

Page 1 of 5

Low Cost Systems Using Multiple Processors

This approach to low-cost systems having a wide range of capabilities, is to use a plurality of macro-assembler language definitions and programs written in those languages. These programs provide a flexible system in which changes to meet new conditions and requirements can be restricted to only a small program portion and do not cause unwanted perturbations in distant programs.

In the described system, every operating environment has a plurality of different, very simple virtual machines (V/M) with each running exactly one program segment for all of a plurality of requestors of a V/M. Such a V/M may create requests for the services of other V/Ms on either a concurrent or synchronous basis. A varying set of V/Ms and data is used to obtain any one set of results for an application or job. The author of a program needs to know only the limiting characteristics of a V/M. He implicitly defines the V/M that runs his program by the choice of statements used in his source program segment.

Given the existence of a library of segments, a new result can be specified by either static or dynamic means, as an ordered list of V/M names and a list of names of data objects to be used when their execution activity takes place. Conceptually, each result is created by having a variable number of machines operate on one input, rather than by having one machine process many inputs. Combinations of V/Ms can be generated on a demand basis, to operate in single or multilevel hierarchies, concurrently or synchronously, with or without lateral communication. None of these combinations assumes or requires prior consideration in the individual source segments, beyond an understanding of the data expected to enter and leave an individual V/M when it is activated. A source program segment defining a V/M is similar to a closed subroutine, but there are more formal data types. In this approach to systems, a V/M may be passed pseudo-interrupts, queues and work spaces, as well as parameters. Management of a set of V/Ms has to remain transparent to any one segment author above the level of his own explicit authority. When this is true, there is no evident upper bound on the number of combinations of results that can be created by extending the installation's set of source segments (V/Ms).

Physical limits imposed by the capability of any real processor (as long as it can support at least one V/M) can be avoided, if a generalized data path exists to allow V/M-to-V/M communications. This leaves the original view of a V/M set unchanged and allows each source segment to be run on any physical machine, if that machine can present the particular V/M services required. Fig. 1 shows how an arbitrarily complex system can be built up from the primitives originally designed. Fig. 2 shows how an application set may be distributed so that several physical machines are potentially used for each.

Referring to Fig. 1, the step interpreter...