View on GitHub

nCube systems

Documentation on the nCube parallel hypercube supercomputer

Up

PART I. DATA PROCESSOR ARCHITECTURE

1. References and Definition of Terms

For background information see “The Extension of Object-Oriented Languages to a Homogeneous, Concurrent Architecture”, Thesis by Charles Richard Lang, Jr., Computer Science Department Technical Report Number 5014, California Institute of Technology, Pasadena, Calif., May 24, 1982.

The terms, syntax notation, etc., used in this specification conform to IEEE standards.

Information about Ncube™ products referred to in this specification can be obtained by writing to Ncube Corporation, 1815 NW 169th Place, Suite 2030, Beaverton, Or. 97006.

Information about Intel products referred to in this specification can be obtained by writing to Intel Corporation, 3065 Bowers Ave., Santa Clara, Calif. 95051.

2. INTRODUCTION

The architecture of the system in which the present invention is embodied uses up to 1024 identical high speed processors (processing nodes) connected in an array to work on a single problem. Each node is a general purpose processor with 128K bytes of local ECC memory. There are 8 I/O channels providing input to and output from the processing array.

When a processing node fails the system can continue operation on a subset of the array with reduced performance thus providing fault tolerance through graceful degradation in addition to reliability.

The array is interconnected in a recursive topology called a hypercube (see Section 3.2) that can be divided into subarrays of 64, 128, 256, or 512 processors. The software can easily adjust to the number of processors in the system. One job can run on the entire array or several jobs can run at once on subsets of the array. This space sharing avoids the constant swapping overhead that occurs in conventional time sharing systems.

The modularity of this design enhances extensibility. Simply by rewiring the backplane, the architecture can support a larger array. Also by connecting systems together with an interprocessor Link it is possible to use multiple systems in parallel or as a very powerful pipeline.

3. THE SYSTEM

3.1 System Overview

Fig 1

One embodiment of a system in which the principles of the present invention are practiced is described in detail in Part II of this specification. Briefly, it consists of an air cooled enclosure containing a backplane with up to 24 boards, a disk/tape subsystem and power supplies. The backplane (16) shown in FIG. 1 uses 16 slots to support a processor array of up to 1024 processors, each with 128K bytes of local memory. The other 8 slots are used for I/O. Each I/O slot is connected to a different subset of 128 processors in the array.

Each processor node in the processing array has a 1/2 Megaflop (floating point operations) or 2 MIP (integer operations) processor. Thus a fully loaded system with 1024 processors has a potential performance of 500 Megaflops or 2000 MIPS. Each I/O bus into the array consists of two unidirectional data paths (one inbound, one outbound) that operate independently and in parallel. Each path can transfer data at up to 140 Megabytes/sec.

3.2 Hypercube Array Description

The processing array consists of processors with local memory interconnected in a topology called a hypercube. One way to describe a hypercube is graphically. Hypercubes of low order can be illustrated as shown below (circles are nodes and lines are communication links):

ORDER       HYPERCUBE GRAPH
N = 0       O
N = 1       O-O
N = 2       O-O
            | |
            O-O

Another way to describe the hypercube is by a recursive definition. Each processor has a label that is a binary number. Two processors are connected if their labels differ in only one place. The low order hypercubes are listed below:

ORDER       PROCESSOR LABELS
N = 0        0
N = 1        0
             1
N = 2       00
            01
            10
            11

From an order (N-1) hypercube it is very simple to define an order N cube. The (N-1) hypercube will have nodes labeled as shown:

0xx...xx
(N-1)

First another (N-1) hypercube is constructed with nodes labeled:

1xx...xx
(N-1)

And then all (N-1) connections between the two (N-1) hypercubes are made so that every pair of node labels that differ only in their most significant bit are connected (e.g. 010…01 must be connected to 110…01).

This formulation of the hypercube illustrates two of its most important properties:

These advantages are not available in a typical toroidal grid (lattice) type of interconnection scheme. But since two and three dimensional grids are very useful in many applications, it is important to note that a hypercube can be mapped onto either grid simply by ignoring some of the available communication links.

3.2.1 System Control Board

At least one System Clock board (14), shown in FIG. 1, must be installed in the every system and there can be up to 8 per system. Its primary purpose is to run the operating system described in section 5.3, including the cross compilers, assembler and linker and to control a wide range of peripherals. It uses an Intel 80286 with 4 Megabyte of memory for the operating software. There are also four sockets for an EPROM that contains the monitor and diagnostics software described in section 5.2.

Fig 12

In addition to the main Intel 80286 processor running the operating system, the System Control board has eight RS-232 serial ports and one high speed printer port. It has the logic to control up to 4 SMD disk drives and three Intel iSBX multimodule connectors. These multimodule connectors support options such as tape drive controllers, ethernet interfaces and interboard buses (for I/O boards). This bus allows for users attached to different System Control boards to access a common file system that is spread across several disk drives controlled by different controllers. A block diagram of the System Control board is shown in FIG. 12, and is described in detail in section 8.9.

The sections below describe the architecture of the System Control in more detail.

3.2.1.1 Central Processor

The central processor of the System Control is an Intel 80286. This is a high performance 16 bit processor that has a compatibility mode with the Intel 8086. In addition it can address 16 megabytes of memory and has memory management and protection built into the chip. It is the host for a multitasking/multiuser operating system. For more details on programming the Intel 80286 see Intel’s iAPX 286 Programmer’s Reference Manual, which can be obtained from Intel Corporation, 3065 Bowers Ave., Santa Clara, Calif. 95051.

3.2.1.2 System Programmable Read-Only Memory (PROM)

The System Control has 8 sockets for PROM (72) which may be loaded with devices from Intel 2764’s up to Intel 27512’s. The PROM resides at location F80000 to FFFFFF in the Intel 80286 memory space. Since these are byte wide devices they are arranged in 2 banks with the following addresses.

CHIP      BANK 1 (top)   BANK 0
2^64      FFC000-FFFFFF  FF8000-FFBFFF
2^128     FF8000-FFFFFF  FF0000-F7FFFF
2^256     FF0000-FFFFFF  FE0000-FEFFFF
2^512     FE0000-FFFFFF  FC0000-FDFFFF

The PROM’s are programmed by and contain a monitor described in section 5.2, that includes the following functions:

3.2.1.3 Global Random Access Memory (RAM)

There are 2 megabytes of global dual ported memory (214) on the System Control Board shown in FIG. 12. This memory can be directly accessed by both the Intel 80286 (block 222) and the SMD disk controller (216) and resides at location 0 to 1FFFF in the system memory space.

3.2.1.4 Local I/O Array

There is a local array interface (212) of 16 processing nodes on the System Control Board. Each node consists of a processor and 128 Kbytes of RAM. This memory is triple ported since it can be directly accessed by the local processor, the Intel 80286 and the SMD disk controller. All Intel 80286 and disk controller accesses to these local memories are 16 bits only. The main purpose of this array (214) is to provide communication (an I/O bus) with the main Processing Array. Thus, 8 of the 11 channels on each node are dedicated to providing communication between the Processing Array and the System Control. The nodes on the System Control board are numbered 0,1,…,15 and their local memory resides in the Intel 80286 address space according to the table below.

Processor Number           Address
0               200000 to 21FFFF
1               220000 to 23FFFF
2               240000 to 25FFFF
3               260000 to 27FFFF
4               280000 to 29FFFF
5               2A0000 to 2BFFFF
6               2C0000 to 2DFFFF
7               2E0000 to 2FFFFF
8               300000 to 31FFFF
9               320000 to 33FFFF
10              340000 to 35FFFF
11              360000 to 37FFFF
12              380000 to 39FFFF
13              3A0000 to 3BFFFF
14              3C0000 to 3DFFFF
15              3E0000 to 3FFFFF

Since the local processing nodes on the System Control each have 3 communication channels uncommitted to I/O, they are interconnected in the two order-3 hypercubes. That is, nodes numbered 0,1,…,7 form one hypercube and nodes numbered 8,9,…,15 form another hypercube. This allows users to test their programs on the small hypercubes on the system control board before loading them into the main array, thus offloading most debugging tasks. It may appear that since the two hypercubes are not directly interconnected it would be difficult to move data from a node in one cube to a node in the other. However, since all the memory is in the Intel 80286 memory space, it is simple and fast to use the central processor or the DMA processor to move the data.

3.2.1.5 SBX Connectors

There are three Intel iSBX™ connectors (78) on the system control board. Intel and other companies make a wide range of small boards for the SBX I/O bus. There are boards for high speed math, graphics, tape drive controllers, floppy disk controllers, network controllers, etc. If a system contains more than one System Control then one of the SBX connectors on each board is reserved for implementing a local bus so that the operating system, and particularly the file system, can be spread over the disk drives controlled by all the System Controls. Thus a user need not be concerned to which board a terminal is attached.

The devices that are inserted into the SBX connectors appear to a programmer as locations in the 80286 I/O space that can be read from and written into. They can also be controlled by the Intel 82258 ADMA (Advanced Direct Memory Access) chip. The boards can generate interrupts to the Intel 80286 (for details on interrupts see section 3.3.2.1.10). The data that is read or written can be either Byte or Halfword and each SBX connector has 32 reserved I/O addresses (3 bits of address and 2 bits of chip select) as shown below.

SBX Connector  I/O Address             Interrupt Vector
1              A0 to AF and B0 to BF   # 82 at 148
2              80 to 8F and 90 to 9F   # 81 at 144
3              60 to 6F and 70 to 7F   # 80 at 140

There are two types of SBX devices, 8 bit and 16 bit, but both boards have the equivalent of two 8 bit registers that are activated by the chip select bits (MCS0, MCS1). The following table contains the data transfer details. The Device and Data columns refer to the number of bits in the device and in the data to be transferred respectively.

Device      Data   Registers  Addresses
1   16      16     MCS1,MCS0  A0,A2,A4,A6,A8,AA,AC,AE
    8,16    8      MCS0       A0,A2,A4,A6,A8,AA,AC,AE
    16      8      MCS1       A1,A3,A5,A7,A9,AB,AD,AF
     8      8      MCS1       B0,B2,B4,B6,B8,BA,BC,BE
2   16      16     MCS1,MCS0  80,82,84,86,88,8A,8C,8E
    8,16    8      MCS0       80,82,84,86,88,8A,8C,8E
    16      8      MCS1       81,83,85,87,89,8B,8D,8F
     8      8      MCS1       90,92,94,96,98,9A,9C,9E
3   16      16     MCS1,MCS0  60,62,64,66,68,6A,6C,6E
    8,16    8      MCS0       60,62,64,66,68,6A,6C,6E
    16      8      MCS1       61,63,65,67,69,6B,6D,6F
     8      8      MCS1       70,72,74,76,78,7A,7C,7E

3.2.1.6 Printer (Centronics) Port

There is one high speed printer I/O port on the System Control Board. It supports the Centronics protocol with 8 bits of data and 4 bits of status. It is intended for a high speed peripheral such as a printer or plotter. It is in the I/O space of the Intel 80286 at location 14 and also has DMA capability since it can be controlled by the Intel 82258 ADMA device (80). When accessing this address the system performs the following functions. (When Reading, bits 12 to 15 yield general system status, not printer status.)

Write I/O Address 14
bits 0-7:   printer data
bits 8-15:  centronics control signals

Read I/O Address 14
bits 0-7:   printer data
bit 8:      1 = printer select
bit 9:      1 = printer paper error
bit 10:     1 = printer fault
bit 11:     1 = printer busy
bit 12:     1 = diagnostic mode, 0 = normal mode
bit 13:     reserved
bit 14:     reserved
bit 15:     1 = main power (-5) good

3.2.1.7 Direct Memory Access (DMA) Controller

The System Control Board has an Intel 82258 ADMA device (80) that controls the Direct Memory Access in the system. It is specifically intended to control the 3 SBX connectors and the Centronics parallel port. However, it is a very powerful processor and can control other DMA functions in the system including moving blocks of data in memory. Refer to Intel’s 82258 Manual for details.

The Intel 82258 has 4 DMA channels and each channel has a set of registers associated with it. Also there is a set of global registers. All of these registers are in the Intel 80286 I/O address space as shown in the table below.

Global Register    Bits   I/O Addr
----------------------------------
Command (GCR)      16     100
Burst (GBR)         8     106
Status (GSR)       16     102
Delay (GDR)         8     108
Mode (GMR)         16     104
I/O Addresses
Channel Register                Bits   DMA0  DMA1  DMA2  DMA3
-------------------------------------------------------------
Command Pointer (CPR)           24     10A   12E   152   176
Source Pointer (SPR)            24     10E   132   156   17A
Destination Pointer (DPR)       24     112   136   15A   17E
Translate Table Pointer (TTPR)  24     116   13A   15E   182
List Pointer (LPR)              24     11A   13E   162   186
Byte Count (BCR)                24     11E   142   166   18A
Channel Command (CCR)           24     122   146   16A   18E
Mask (MASKR)                    16     126   14A   16E   192
Compare (COMPR)                 16     128   14C   170   194
Assembly (DAR)                  16     12A   14E   172   196
Channel Status (CSR)             8     12C   150   174   198

The Channel Registers can be written by setting the Command Pointer to point to a command block in memory and then giving the Intel 82258 a START CHANNEL command from the Intel 80286. The format of the command block in memory is shown below: ##STR2##

TODO: figure

3.2.1.8 Serial Channels

The System Control Board shown in FIG. 12 has 8 serial channels that are controlled by four Intel 8530 Serial Communications Controllers (82), each device handling 2 channels. Each 953- also has two baud rate generators and interrupt generation logic. There are a set of control (Write) registers and a set of status (Read) registers for each channel. The registers are all 8 bits and all accesses are byte only. A summary of the register functions is listed below (unless noted two copies of each register exist, one for each channel):

READ REGISTER FUNCTIONS

WRITE REGISTER FUNCTIONS

The only registers that can be directly addressed in the I/O space of the Intel 80286 are the two Data registers (RR8 and WR8) and RR0 and WR0. In order to read or write any other register requires two steps: (1) write the appropriate code into WR0 then (2) perform the read or write operation.

After doing this, bits 0 through 4 of WR0 are automatically cleared so that WR0 points to WR0 or RR0 again. The I/O addresses corresponding to the 8530 devices and the I/O channels are listed in the table below. Each channel can generate four interrupts to indicate the conditions: Tx empty, Status Change, Rx Ready and Special Rx. The interrupt vector addresses (assuming the given vector bases are used) are also listed below. (To obtain the interrupt numbers divide the vector address by four.)

Device:              SSC 0      SSC 1     SSC 2     SSC 3
Channels:            0    1     2    3    4    5    6    7
I/O Addresses:
Status: RR0 & WR0    D4   D0    DC   D8   E4   E0   EC   E8
Data: RR8 & WR8      D6   D2    DE   DA   E6   E2   EE   EA
Vector Address:
Vector Base:            28         30        38        40
Tx Empty:            A0   B0    C0   D0   E0   F0   100  110
Status Change:       A4   B4    C4   D4   E4   F4   104  114
Rx Ready:            A8   B8    C8   D8   E8   F8   108  118
Special Rx:          AC   BC    CC   DC   EC   FC   10C  11C

Each Serial Channel Controller (82) has an integrated baud rate generator that depends on the setting of a Time Constant, supplied by real-time clock (84). The equation and a baud rate table are given below.

Clock Rate: 1.8432 Mhz
Equation:   Time Constant = (57600 / baud rate) - 2
Table:      Baud Rate    Time Constant
      19200         1
      9600          4
      4800         10
      3600         14
      2400         22
      2000         27
      1800         30
      1200         46
      600          94
      300          190
      150          382
      134.5        426
      110          522
      75           766
      50           1150

3.2.1.9 SMD Disk Controller

The System Control has an SMD disk controller unit (216). It is capable of controlling up to four standard SMD disks drives. Data is accessed in blocks of 1024 bytes at a rate of 1 Megabyte per second. The disk controller unit consists of 6 registers in the I/O address space which are described below.

I/O Address: 00
Write: Command ##STR3##
Read: Status
  bit 0:  Command bit 0
  bit 1:  Command bit 1
  bit 2:  Command bit 2
  bit 3:  1 = Header Sync Error
  bit 4:  1 = Header Address Error
  bit 5:  1 = Header CRC Error
  bit 6:  1 = Data Sync Error
  bit 7:  1 = Data CRC Error
  bit 8:  1 = Data Overrun/Underrun Error
  bit 9:  1 = Illegal Memory Access
  bit 10: 1 = Controller Ready
  bit 11: 1 = Disk Ready
  bit 12: 1 = Disk Selected
  bit 13: 1 = Seek Error
  bit 14: 1 = Write Error
  bit 15: 1 = Disk Fault

In addition to the registers listed above there are two more I/O addresses and an interrupt associated with the disk controller. Writing to the I/O addresses causes the disk controller to be enabled or disabled. Reading from these addresses yields a system ID (see 3.3.1.10). The interrupt indicates that a disk access has completed. The addresses and interrupt number are given below.

3.2.1.10 System Control

There is a set of I/O addresses associated with various aspects of system control. The controls include power supply monitoring and sequencing, error sensing and signaling, and board resets. All of the addresses and controls are described below:

Array Reset
I/O Address: 10
Read and Write (Write causes reset)
  for k = 0,1,...,15
    bit k: Resets Board k in Connector Jn, n = 20 - k
Control
I/O Address: 12
Read and Write
  bit 0       0 =    Enable system memory error correction
  bit 1:      0 =    System memory check bit write enable
  bit 2:      1 =    Front panel light indicator # 1
  bit 3:      1 =    Front panel light indicator # 2
  bit 4:      0 =    Reset reserved memory error (attempt to access
                     locations between PROM and RAM)--bit must be 1 and
                     NMI enabled to latch error
  bit 5:      0 =    Reset front panel interrupt--bit must be 1 and
                     NMI enabled to latch error
  bit 6:      1 =    Enable Nonmaskable Interrupt (NMI)
  bit 7:      1 =    Turn off +5 power supplies
  bit 8:      1 =    Turn on +24 power supply
  bit 9:      1 =    Turn on +12 disk power supply
  bit 10:     1 =    Turn on +5 disk power supply
  bit 11:     1 =    Turn on +12 power supply
  bit 12:     1 =    Turn on -5 and -12 power supplies
  bit 13:     1 =    Turn on -12 disk power supply
  bit 14:     0 =    Reset local hypercubes
  bit 15:     0 =    Fans on (1 = Fans off)
Reset/Status
I/O Address: 16
Write--Reset
  Reset local array ECC error (data = do not care)
Read--Status
  bit 0:      1 =    #1 +5 power good
  bit 1:      1 =    #2 +5 power good
  bit 2:      1 =    #3 +5 power good
  bit 3:      1 =    #4 +5 power good
  bit 4:      1 =    Main +12 power good
  bit 5:      1 =    Main -12 power good
  bit 6:      1 =    Disk +24 power good
  bit 7:      1 =    Disk +12 power good
  bit 8:      1 =    Disk +5 power good
  bit 9:      1 =    Disk -12 power good
  bits 10-15         Nonmaskable Interrupt (NMI)
  bit 10:     0 =    Illegal memory access interrupt
  bit 11:     0 =    System memory ECC interrupt
  bit 12:     0 =    Local array memory ECC interrupt
  bit 13:     0 =    Front panel interrupt
  bit 14:     0 =    Watch dog timer interrupt
  bit 15:     0 =    Power fail interrupt
Disk Disable/System ID
I/O Address: 18
Write--Disable
  Disable disk controller (data = do not care)
Read--System ID
  bits 0 to 2:   I/O slot number
  bits 3 to 15:  Low order part of system ID
Disk Enable/System ID
I/O Address: 1A
Write--Enable
  Enable disk controller (data = do not care)
Read--System ID
  bits 0 to 7:   High order part of system ID
Reset/ECC
I/O Address: 1C
Write--Reset
  Reset system memory ECC error (data = do not care)
Read--ECC
  ECC syndrome--the table below indicates the interpretation of the syndrome.
    Syndrome Decoding
  1)  bits 7,6 = Memory Bank
  2)  bits 5,4,3,2,1,0 = Table

bits            0   0    1    0    1    0    1   0    1
                1   0    0    1    1    0    0   1    1
5   4     3     2   0    0    0    0    1    1   1    1
0   0     0         N    CB0  CB1  D    CB2  D   D    --
0   0     1         CB3  D    D    0    D    1   2    D
0   1     0         CB4  D    D    5    D    6   7    D
0   1     1         D    3    --   D    4    D   D    --
1   0     0         CB5  D    D    11   D    --  12   D
1   0     1         D    8    9    D    10   D   D    --
1   1     0         D    13   14   D    15   D   D    --
1   1     1         --   D    D    --   D    --  --   D

  N =    No error   CB
  X =  Error in Check Bit X
  X =    Error in bit X
  D =    Double bit error

3.2.1.11 Temperature Sensors

The system contains sixteen temperature sensing devices located throughout the enclosure. They are used to prevent system damage caused by over heating. In order to trigger a sensor and take a measurement, software must perform the following steps:

1) Write to one of I/O addresses 38,3A,3C or 3E

2) Write to the same address with the same data at lest 2 microseconds later (the sensor multiplexor requires a settling time). After the temperature has been sensed an interrupt is generated:

Interrupt #86 (vector at memory address 158)

3) Read from same address

3.2.1.12 Real Time Clock

The System Control board has a real time clock (84) that is controlled and sensed by writing and reading the following I/O addresses.

Control/Status
I/O Address: 40
Write--Control
  bit 0:     0 = Interrupt run; 1 = Interrupt stop
  bit 1:     0 = Select clock set register (see 2)
             1 = Select interrupt register (see 2)
  bit 2:     0 = Clock run; 1 = Clock stop
  bit 3:     0 = Normal mode; 1 = Test mode
  bits 4 to 15: Do not care
Read--Status
  bit 0:     Interrupt flag (same as Write)
  bit 1:     0
  bit 2:     0
  bit 3:     Data changed flag
  bits 4 to 15: Reserved
Set/Interrupt
I/O Address: 5E
Read and Write
  If Control/Status (40) bit 0 = 0
    bit 0:     0 = 12 hour mode; 1 = 24 hour mode
    bit 1:     0 = AM; 1 = PM (0 in 24 hour mode)
    bit 2,3    Leap year counter (00 = Leap year)
  If Control/Status (40) bit 0 = 1
    bit 0  \
    bit 1   }  Interrupt period (see table below)
    bit 2  /
    bit 3: 0 = Single interrupt
           1 = Repeated interrupt
Interrupt Period   bits 2,1,0
No Interrupt       000
0.1 Seconds        001
0.5 Seconds        010
1.0 Seconds        011
5.0 Seconds        100
10.0 Seconds       101
30.0 Seconds       110
60.0 Seconds       111
Time Set/Read
Write (Set) and Read (Sense)
I/O Address  Function
42           Tenths of seconds (Read only)
44           Seconds
46           Tens of seconds
48           Minutes
4A           Tens of minutes
4C           Hours
4E           Tens of hours
50           Days
52           Tens of days
54           Months
56           Tens of months
58           Years
5A           Tens of years
5C           Day of week (Modulo 7 counter)

The interrupt associated with the Real Time Clock is: Interrupt #72 (Vector at memory address 120)

3.2.1.13 Timer

The System Control has two timers in addition to the Real Time Clock. They are provided by an Intel 8254 that has 4 I/O addresses associated with it. The two timers are called the Watchdog timer and the Schedule timer. They both use the same prescaler but the Watchdog generates a Non Maskable interrupt (NMI) while the Schedule timer generates interrupt

  1. Their addresses are listed below. The Timer is set up by writing to the Control register. The time base is also given below.
Unit                  I/O Address   Interrupt
Prescaler             0F0
Watchdog              0F2           NMI(2)    8
Schedule              0F4           32       80
Control (Write Only)  0F6
    Time Base = 5.425 * 10 ** -5

3.2.1.14 Interrupt Controllers

The System Control provides a full range of interrupts for various system control functions. These interrupts are handled by five Intel 8259A Interrupt Controllers. One of these devices is designated the Master Controller and it has two Slave Controllers (Slave 0 and Slave 1) connected to it. The last two 8259As are used to signal error conditions in the main array and are connected to Slave 0. The Main Array Error Controllers must be used in polled mode. The following table lists the controllers, their addresses, and defines the interrupts they handle. Section 3.3.2.1.14 lists the interrupts and vector addresses that are generated by these controllers. Programming details for the 8259A can be found in Intel’s Data Catalogue.

Master Interrupt Controller
Slave Interrupt Controller 0
Slave Interrupt Controller 1
Main Array Interrupt Controller
Level       Low Data Byte High Data Byte
0           Board 0 (J20) Board 8 (J12)
1           Board 1 (J19) Board 9 (J11)
2           Board 2 (J18) Board 10 (J10)
3           Board 3 (J17) Board 11 (J9)
4           Board 4 (J16) Board 12 (J8)
5           Board 5 (J15) Board 13 (J7)
6           Board 6 (J14) Board 14 (J6)
7           Board 7 (J13) Board 15 (J5)

3.2.1.15 Interrupts

The System Control generates and handles a complete set of interrupts for managing the system. The interrupts are defined in the table below.

Vector #  Address  Function
0     00       Divide Error
1     04       Single Step
2     08       Non Maskable Interrupt (NMI)
3     0C       Breakpoint
4     10       Overflow (detected by INTO instruction)
5     14       Range Bound Exceeded
6     18       Invalid Opcode
7     1C       Processor Extension Not Available
8     20       Interrupt Table Too Small
9     24       Processor Extension Segment Overrun
10-12  28-30    Reserved
13     34       Segment Overrun
14-15  38-3C    Reserved
16     40       Processor Extension Error
17-31  44-7C    Reserved
32     80       Schedule Timer (using vector base 20H)
33-39  84-9C    Reserved
40     A0       Serial Channel 0 Tx Empty
41     A4       Serial Channel 0 Status Change
42     A8       Serial Channel 0 Rx Ready
43     AC       Serial Channel 0 Special Rx
44     B0       Serial Channel 1 Tx Empty
45     B4       Serial Channel 1 Status Change
46     B8       Serial Channel 1 Rx Ready
47     BC       Serial Channel 1 Special Rx
48     C0       Serial Channel 2 Tx Empty
49     C4       Serial Channel 2 Status Change
50     C8       Serial Channel 2 Rx Ready
51     CC       Serial Channel 2 Special Rx
52     D0       Serial Channel 3 Tx Empty
53     D4       Serial Channel 3 Status Change
54     D8       Serial Channel 3 Rx Ready
55     DC       Serial Channel 3 Special Rx
56     E0       Serial Channel 4 Tx Empty
57     E4       Serial Channel 4 Status Change
58     E8       Serial Channel 4 Rx Ready
59     EC       Serial Channel 4 Special Rx
60     F0       Serial Channel 5 Tx Empty
61     F4       Serial Channel 5 Status Change
62     F8       Serial Channel 5 Rx Ready
63     FC       Serial Channel 5 Special Rx
64     100      Serial Channel 6 Tx Empty
65     104      Serial Channel 6 Status Change
66     108      Serial Channel 6 Rx Ready
67     10C      Serial Channel 6 Special Rx
68     110      Serial Channel 7 Tx Empty
69     114      Serial Channel 7 Status Change
70     118      Serial Channel 7 Rx Ready
71     11C      Serial Channel 7 Special Rx
72     120      Real Time Clock
73     124      Local Array Error
74     128      Main Array Error
75     12C      DMA Channel 0 (end of DMA)
76     130      DMA Channel 1 (end of DMA)
77     134      DMA Channel 2 (end of DMA)
78     138      DMA Channel 3 (end of DMA)
79     13C      Reserved
80     140      SBX 3 Interrupt
81     144      SBX 2 Interrupt
82     148      SBX 1 Interrupt
83     14C      Disk Controller Interrupt
84     150      Power Down Interrupt
85     154      Printer Interrupt
86     158      Temperature Sense Ready Interrupt
87     15C      Reserved

3.2.1.15 Interrupts

The System Control Board supports the Intel 80287 Math Coprocessor (90) as an option. The I/O addresses listed below are activated by invoking the Intel 80286 Escape opcodes used by the Intel 80287. The details on the 80287 are in Intel’s Microprocessor Manual.

80287 I/O Addresses: F8 to FF

3.2.1.17 Initial State

The System Control Board is initialized on system reset.

3.2.1.18 System Summary

The following tables summarize the memory and I/O address space of the System Control.

Memory Space
---
System Memory (RAM):             000000 to 1FFFFF
Local Array Memory (RAM):        200000 to 3FFFFF
Reserved (80286):                400000 to F7FFFF
Reserved (Disk Controller):      400000 to FFFFFF
Read Only Memory (EPROM):        F80000 to FFFFFF
I/O Space
---
Parallel I/O Section:            000 to 01F
Reserved:                        020 to 037
Temperature Sense:               038 to 03F
Real Time Clock:                 040 to 05F
SBX 3:                           060 to 07F
SBX 2:                           080 to 09F
SBX 1:                           0A0 to 0BF
Interrupt Controllers:           0C0 to 0CF
Serial Channel Controllers:      0D0 to 0EF
Timer:                           0F0 to 0F7
Math Coprocessor:                0F8 to 0FF
DMA Controller:                  ??? to ???

3.2.2 Graphics Processor

A Graphics Processor is used to control a raster scan CRT display. This provides a very effective way for displaying and dealing with the very large amount of data that can be computed and output by the system.

The graphics system consists of up to 2 megabytes of RAM organized as a 768 by 1024 by 8 bit frame buffer, 16 processing nodes to handle local display processing, a color lookup table, and the logic to handle display refresh and panning. The output of the graphics system is standard RS-343 RGB video data that can be connected to any high performance (40 mHz) color CRT monitor.

The I/O channel bandwidth allows the main processor to output a new frame of display data in excess of 60 times a second (faster than the display refresh rate). This makes the system ideal for a wide range of graphics applications.

Two or more systems are interconnected through an I/O channel (an order 7 subcube) in each system. This permits the implementation of arbitrary graphs of systems including pipelining of multiple systems where the outputs of one machine feeds the input of the next and the last system drives the displays.