Hierarchical multiple bus computer system

Abstract: A modular and hierarchical multiple bus computer system architecture includes a master bus (1) and a slave bus (4) which are substantially identical, communication being effected through a combination of an interface controller (12) and a shared dual port RAM (14) responsive to a shared RAM controller (13). Thus processor engine modules including a bus, a processor, an interface controller, a shared dual port RAM, and a shared RAM controller are horizontally and/or vertically integrated at multiple levels without major restructuring of the composite system control operations by having each slave processor engine module interface as a peripheral upon the bus of its master. The modularity of the architecture allows the use of standard peripherals and platform processor engines to expand memory or increase functionality without burdening the master bus processor engine. Each slave bus processor engine is fully functional as an independent processor with mastery over its own bus. The architecture is particularly efficient in extended data base, fault tolerant data base or multi-communication system adapter interface functions.

Description: The present invention relates to data processing systems. The proliferation of personal computer type data processing systems utilizing a limited class of microprocessor models has created a secondary market involving printed circuit board level products which provide new or extended features at relatively nominal costs. The architecture of such conventional personal computer systems facilitates the usage of secondary market products through the presence of a master or system bus shared not only by the master microprocessor, master memory, and input/output, but also by any peripheral devices connected to the bus, including but not limited to co-processors, communication controllers, and disk controllers. Management of all the devices connected to the master bus is under the control of the microprocessor, which itself is responsive to the operations defined by software whether resident in the microprocessor in the form of microcode or resident in bus addressable memory. The variety of the products directly connectable to the master bus continues to expand both in feature diversity and performance. Unfortunately, even intelligent peripherals attached to the master bus require significant intervals of microprocessor operating time to exercise the additional functions. Though the recent advent of "smart" peripherals has reduced the number and types of operations performed by the master microprocessor, such gains are often offset by increases in the number of peripherals on the master bus. Thus as the peripheral count increases the effective data processing rate of the personal computer system is reduced. One approach to the problem of maintaining processor speed in the face of additional peripherals is disclosed in U.S.Patent No.4,484,273. According to that teaching, the common computer system bus is supplemented by two additional bus systems. The first of the supplemental buses is shared by a multiplicity of processor devices and interfaces to the common system bus. The second supplemental bus is shared by multiple memories and peripheral units, likewise connected to the common system bus through multiple interfaces. Though the data processing capability of such a system is elevated, the unique architecture and software to implement the memory sharing, interface operations and processor executive control functions are incompatible with prevailing personal computers architecture standards. In 'A Hierarchical Multiprozessor System for Object Orientated Languages' by Papazoglou et al (vol. 19, no 2, Feb 87, pages 129-141 of 'Microprocessing and Microprogramming'), a partitioned processing system is disclosed with a slave microprocessor layer in which master microprocessors communicate asynchronously via a duster bus which is linked to the system bus by a peripheral interface adapter, the adapter providing all necessary handshaking and control signals. It is the object of the present invention to provide a data processing system which enables an expandable processing capacity to be achieved, while utilizing standardized products and being compatible with prevailing personal computer architecture standards. Therefore according to the present invention there is provided a data processing system incorporating: a master bus and a slave bus; a master processor connected to control and communicate over the master bus; a slave processor connected to control and communicate over the slave bus; a master RAM connected to communicate over the master bus; an interface controller means connected between the master bus and the slave bus to transmit asynchronous control signals between the master and slave processors; and a shared dual port RAM connected at a first port to communicate over the master bus and connected at a second port to communicate over the slave bus; characterized in that the slave bus is substantially identical to the master bus in line count, functionality by line, and signal content by line; in that the shared dual port RAM is concurrently addressable from both ports; and in that there is provided a shared RAM controller means connected to the master bus, the slave bus, and the shared dual port RAM and adapted to receive shared dual port RAM use requests and to arbitrate control of the shared dual port RAM. A data processing system according to the present invention provides a modular and hierarchical architecture in which the buses at each incremental level are substantially identical. The interconnecting module structures include at each level a processor, an interface controller, a shared RAM controller, and a shared dual port RAM. The presence of dual port shared RAM between successive and substantially identical buses extends the resources of the RAM without restricting substantially autonomous operation of the respective buses. The present modular and hierarchical multiple bus architecture contemplates both serial and parallel arrangements at each bus level, in such a way that any processor engine module which is connected onto the master bus as a slave incorporates its own distinct bus, which distinct slave bus is under the mastery of the module or slave processor. The slave bus is fully capable of having modules connected thereto. Such hierarchically lower levels of slave modules can be similar processor engine modules or more conventional peripheral devices, such as input/output, mass memory or co-processor boards. The master bus is not restricted to the inclusion of a single processor engine module, and as such may be in control of multiple slave function processor engine modules, which, according to the present hierarchical architecture, are themselves further extendable. Each processor engine module within the presently defined Processor Interconnect Architecture (PICA) communicates with its hierarchical master bus through the combination of an interface controller, shared RAM controller, and shared dual port RAM as if the module were a peripheral on the master bus. The presence of a shared dual port RAM within each processor engine module (PEM) permits the master bus to directly access data within the slave situated PEM, in contrast to initiating a communication sequence with the slave PEM. Consequently, the processor in the slave PEM is not distracted from executing its existing program or forced to yield control over its bus and any peripherals connected to such slave bus. One embodiment of the present invention will now be described by way of example, with reference to the accompanying drawings, in which:- Fig. 1 is a schematic representation of a generalized modular and hierarchical multiple bus computer architecture. Fig. 2 is a schematic representation of processor engine modules arranged in a feedback configuration. Fig. 3 is a schematic representation of processor engine modules configured to implement a fault tolerant memory system or an extended data base system. Fig. 4 schematically illustrates the use of a slave processor engine module to provide an intelligent interface between the master bus and a multiplicity of conventional communication adapter cards. Attention is first directed to Fig. 1 of the drawings for an illustration of the modular and hierarchical multiple bus computer architecture in a generalized form. The arrangement is configured around a master bus "0", identified by reference numeral 1, which has attached thereto a master processor engine "0", identified by reference numeral 2, and a master bus RAM 5. For purposes of reference, the addition of input/output (I/O) functional blocks would complete the architecture of a conventional personal computer at the master level. The present modular and hierarchical architecture is distinguished as shown in Fig. 1 by the further presence of slave level modules, such as PICA PEM "1", identified by reference numeral 3. PICA processor engine module "1" is by definition a slave or peripheral on master bus "0". The modularity of the hierarchical configuration in Fig. 1 becomes apparent upon recognizing that slave bus "1", identified by reference numeral 4, is substantially identical to master bus "0", so as to provide at a second hierarchical level a completely new bus 4 with integral processor 10 for further addition of peripherals. Thus the master and slave buses 1, 4 are substantially identical in line count, functionality by line, and in signal content by line. In keeping with the basic architecture, note that slave bus "1" now serves as the master to further PICA PEMs "3" and "4", individually identified by reference in numerals 6 and 7, while accepting more conventional peripherals such as co-processors I/O devices 8. The modular and multiple architecture is not constrained to directly vertical hierarchy in progression from master bus "0" through PICA PEM "1" to PICA PEMs "3" and "4", but inherently includes horizontal modularity such as represented by PICA PEM "2", identified by reference numeral 9, at the master bus "0" level, or by the arrangement of the PICA PEM "3" and "4" on the level of slave bus "1". PICA PEM "2" is a module operated off master bus "0" but with its own bus, slave bus "2", identified by reference numeral 11. Slave buses "1" and "2" are by definition substantially identical to master bus "0". Thereby, the modular architecture provides hierarchical graduation both vertically and horizontally at all levels of the bus system. The internal composition of the PICA processor engine modules make the architecture meaningful by providing, as shown in Fig. 1, a combination of four elements. In the context of PICA PEM "1", the first element is slave bus "1", reference numeral 4, which is substantially identical in size and operational capability to master bus "0". The second element is the interface controller identified by reference numeral 12, which controller is connected between master bus "0" and slave bus "1", and communicates with both. A third necessary element is shared RAM controller 13. Controller 13 is similarly connected between master bus "0" and slave bus "1", but further operatively connected to the fourth element, shared dual port RAM 14. The shared dual port RAM is likewise connected between master bus "0" and slave bus "1", and by virtue of its operational capability can be independently addressed from either master bus "0" or slave bus "1" without contention. The controller 13 receives shared dual port RAM use requests and arbitrates control over the shared dual port RAM 14. Each of the PICA PEMs illustrated in Fig. 1 includes the four basic elements in combination with its own processor. The elements needed to form a PICA PEM are mandated by a variety of factors. One important consideration is the desire to allow the master and various slave processors to operate at individually defined frequencies. As a consequence, the asynchronous communication between the various buses must be coordinated not only from the perspective of control signals moving through the interface controller but also as to the shared dual port RAM read and write signal coordination provided by the shared RAM controller. The master bus processor engine "0", as well as the slave processors in each of the other PICA PEMs would, in keeping with convention, execute instructions in accordance with embedded microcode defined by operating system conventional to the personal computer or work station. With the exception of the shared dual port RAM address allocation function, which would be conventionally generated by the software operating the master bus processor engine "0", the operating systems for each slave processor would be similar to the extent that the peripherals attachable to the buses relate. For example, master processor engine "0" as well as PICA PEM "1" are not concerned with the characteristics of the peripherals which may be connected to the slave bus mastered by PICA PEM "3", to the extent that the interface to slave bus "1" from PICA PEM "3" satisfies the address allocations requirements among the shared dual port RAMs. The master bus and slave processors depicted in Fig. 1 are preferably selected from an identical family of commercially available microprocessors, including but not limited to the Intel 80286 or the Motorola 63000 devices. An exemplary interface controller is the Texas Instruments TMS 9650 device. Though a relatively intelligent shared RAM controller can extract the enumerated capabilities from the shared dual port RAM, products integrating less refined configurations of shared dual port RAM with controller are already commercially available. An example of the latter is the Integrated Device Technology part IDT7130. PICA processor engine modules of the present modular architecture provide a modularity that is not limited to direct vertical and horizontal integration, but, as illustrated in Fig. 2, can be configured in a feedback loop arrangement. The architecture of the PICA processor engine modules in Fig. 2 is unique in its provision that PICA PEM "2" is a peripheral to bus "1" of PICA PEM "1" while at the same time PICA PEM "1" is a peripheral on the bus of PICA PEM "2". This arrangement illustrates the diversity attainable from the present module and bus architecture. Conceptually, the architecture exhibits features of parallel processing, as well as more conventional processing to the extent that other peripherals can be attached to either of the buses. Another potentially useful application for the PICA processor engines of the present modular architecture is illustrated by embodiment in Fig. 3. Here the PICA processor engine modules serve as platforms through which extended mass memory is made available to the master bus processor engine "0". The actual function of the mass memory is not restricted, even in the arrangement shown, but rather is defined by the operating system of the master bus processor. For example, the architecture in Fig. 3 could represent an arrangement in which each PICA PEM is a platform for additional mass memory in an extended data base computer system. For such an arrangement, the individual disks of mass memory would be searched in parallel or time coincidence by associated PICA processor engine modules. The same architecture could be also used in a fault tolerant memory storage system setting, where mass memory "1" and mass memory "2" store the identical data, the reliability of which is confirmed during a readout comparison executed by the master bus processor engine and operating system. Both operational arrangements are readily implemented through revisions in the otherwise convention operating system application software of the master bus processor engine "0". Consequently, mass memories 1 and 2 do not have to be uniquely configured with specialized buses and operating systems. Fig. 4 depicts another embodiment of the invention, here serving as an intelligent interface between multiple "dumb" communication adapters and a busy master bus processor. The PICA PEM "1" in Fig. 4 again illustrates the usefulness of such a standard platform, recognizing its ability to serve both as a master of its own bus, slave bus "1", and as a slave on master bus "0". The various communication adapters do not have to be modified in design from their present convention. In the multiple communication path context of Fig. 4, it is foreseeable that the master bus processor will select one adapter over another for a communications operation based upon processor engine "0" priorities. Clearly it is preferred that the adapter communication software be executed by PICA processor engine module "1". In the context of Fig. 4, PICA PEM "1" engine provides the bridge between the various communication media and the master bus processor without restructuring the whole of the operating system and application software as is required in a multi-tasking system environment. Note that further horizontal integration of functions are available along both the master and the slave buses again without unduly loading the master bus processor operations or mandating a design change of the peripheral adapters. The highly consistent structure of the modular architecture and particularly that within the individual PICA processor engine modules, provides personal computer and workstation systems with expanded functionality at minimum hardware, software and performance expense. Relatively minor changes in the master bus processor engine software allow peripheral equipment software to be independently executed in a slave bus configured processor substantially independent of the activities undertaken by master bus processor. The presence of shared dual port RAM and associated shared RAM controller in each PICA processor engine modules provides a relatively transparent environment for the communication between the master bus processor and the peripheral equipment connected to the slave bus. Substantial migration of the master bus processor software is a further benefit that should not be under estimated, especially in situations where the master bus processor and slave bus processor are from the same microprocessor family. Thus the present system provides an architecture under which a microprocessor based computer, whether it be referred to as a personal computer or workstation, is extended in processing speed or functional capabilities by connecting standardized modules to the master bus, and without materially expanding the operations performed by the master processor engine resident on the master bus. The preferred personal computer or workstation application environment recognizes the cost benefits of using a modular and standardized product to obtain such extensions, and the importance of defining an architecture with migratory upgrades in lieu of replacement system approaches. Furthermore, the presently defined Processor Interconnect Architecture (PICA) as implemented with processor engine modules (PEMs) recognizes the relatively low cost and availability of integrated circuit microprocessors, interface controllers, shared RAM controllers and dual port RAM devices. The architecture utilizes the concept of having each PICA PEM connected to the master processor engine bus to itself create a substantially identical bus for extending without limit the levels of hierarchical configuration, while permitting direct communication between successive master-slave configured buses through levels of shared dual port RAM.

Claims: A data processing system incorporating: a master bus (1) and a slave bus (4); a master processor (2) connected to control and communicate over the master bus (1); a slave processor (10) connected to control and communicate over the slave bus (4); a master RAM (5) connected to communicate over the master bus (1); an interface controller means (12) connected between the master bus (1) and the slave bus (4) to transmit asynchronous control signals between the master and slave processors (2,10); and a shared dual port RAM (14) connected at a first port to communicate over the master bus (1) and connected at a second port to communicate over the slave bus (4); characterized in that the slave bus (4) is substantially identical to the master bus (1) in line count, functionality by line, and signal content by line; in that the shared dual port RAM (14) is concurrently addressable from both ports; and in that there is provided a shared RAM controller means (13) connected to the master bus (1), the slave bus (4), and the shared dual port RAM (14) and adapted to receive shared dual port RAM use requests and to arbitrate control of the shared dual port RAM.

Inventors: CARROLL MICHAEL L, SCHWEIZER PAUL T, CARROLL, MICHAEL L., SCHWEIZER, PAUL T.
Applicants: NCR INT INC, NCR INTERNATIONAL, INC.
Application year: 1989
Main classification: G06F13
IPC codes: G06F15, G06F13