WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Input/output connection arrangement for microprogrammable computer    
United States Patent3938098   
Link to this pagehttp://www.wikipatents.com/3938098.html
Inventor(s)Garlic; Richard A. (Irvine, CA)
AbstractA microprogrammable data processor comprising a generalized three-bus archictecture wherein the functional processing elements are connected between the busses by means of tri-state logic elements which allow the elements to selectively drive, receive from, or present a high impedance to the busses under control of a microprogram. The device includes an input-output system in which the input/output device may have access to all three busses, two for data and for address inputs and the third for receiving output data. The busses may be multifunction busses for carrying either data or address signals. The device utilizes a single phase clock and performs operations in a highly parallel manner. TABLE OF CONTENTS Abstract of the Disclosure Background of the Invention Field of the Invention Description of the Prior Art Summary of the Invention Brief Description of the Drawings Detailed Description of a Preferred Embodiment System Organization Instruction Flow Data Flow Arithmetic and Logic Unit (ALU) General Registers Status Input/Output Scratch Pads/Main Memory Translator Maintenance Control Panel Information Flow: Summary Interrupt Flow Microinstruction Repertoire Single Purpose Micro Fields Multiple Purpose Fields Word/Byte Operation Set/Reset/Test A Bit Addressing and Branching Sample Microprogram System Input/Output I/o interrupt
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 3938098
Input/output connection arrangement for microprogrammable computer - US Patent 3938098 Drawing
Input/output connection arrangement for microprogrammable computer
Inventor     Garlic; Richard A. (Irvine, CA)
Owner/Assignee     Xerox Corporation (Stamford, CT)
Patent assignment
All assignments
Publication Date     February 10, 1976
Application Number     05/428,597
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     December 16, 1973
US Classification     710/48
Int'l Classification     G06F 003/00 G06F 009/06
Examiner     Shaw; Gareth D.
Assistant Examiner     Thomas; James D.
Attorney/Law Firm     Ralabate; James J. Weiss; Franklyn C. , Sarli; Anthony J. ,
Address
Parent Case    
Priority Data    
USPTO Field of Search     340/172.5
Patent Tags     input/output connection arrangement microprogrammable computer
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
3462744



[0 after 0 votes]
3517171



[0 after 0 votes]
3698007



[0 after 0 votes]
3815104
Goldman
710/45
Jun,1974

[0 after 0 votes]
3815099
Cohen
713/401
Jun,1974

[0 after 0 votes]
3813651
Yamada
710/107
May,1974

[0 after 0 votes]
3761893
Morley
711/151
Sep,1973

[0 after 0 votes]
3757306
Boone
712/32
Sep,1973

[0 after 0 votes]
3753236
Flynn
712/204
Aug,1973

[0 after 0 votes]
3748649
McEowen
711/2
Jul,1973

[0 after 0 votes]
3745532
Erwin
710/316
Jul,1973

[0 after 0 votes]
3737861
O'Neill
710/36
Jun,1973

[0 after 0 votes]
3702988
Haney
712/32
Nov,1972

[0 after 0 votes]
3689895
Takuo Kitamura (Tokyo, JP)
712/230
Sep,1972

[0 after 0 votes]
3646522
Furman
712/211
Feb,1972

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


What is claimed is:

1. In a microprocessor comprising: a control memory for storing control words at addressable locations, means for addressing said control memory, a first bus, a second bus and a third bus;

a. an input/output device external to said microprocessor and connected to said first, second and third buses, said input/output device having an address,

b. means for interrupting the means for addressing said control memory,

c. means responsive to said means for interrupting for modifying the address of said control memory to a desired address,

d. means associated with said input/output device for placing said address of said input/output device on said first bus,

e. means associated with said input/output device for placing input signals on said second bus,

f. means responsive to a control word at said desired address for utilizing said first bus input signals for identifying said input/output device, and

g. means for executing said control word at said desired address to operate upon said second bus input signals.

2. A microprocessor as set forth in claim 1 further comprising an arithmetic unit connected between said first and second buses and said third bus, wherein said arithmetic unit performs an arithmetic operation on said data of said second bus and places the result thereof on said third bus.

3. A microprocessor as set forth in claim 2 wherein said data is received from said third bus by said input/output device.

4. A microprocessor as set forth in claim 1 further comprising a logic unit connected between said first and second buses and said third bus, wherein said logic unit performs a logical operation on said data of said second bus and places the result thereof on said third bus.

5. A microprocessor as set forth in claim 2 wherein said data is received from said third bus by said input/output device.

6. A microprocessor comprising: a control memory for storing control words at addressable locations, means for addressing said control memory, a clock for generating a clock signal, a first bus, and a second bus, an addressable element connected to said first and second buses;

a. an input device external to said microprocessor,

b. means in said input device for providing an interrupt signal to interrupt said means for addressing said control memory, to initiate operation of an input/output routine,

c. means in said microprocessor for producing a response to said interrupt signal,

d. means in said input device for, in response to said interrupt response, placing data on said first bus and for placing an address of said addressable element on said second bus, and

e. means responsive to said clock signal for storing said data in said addressable element.

7. A microprocessor as set forth in claim 6 wherein said addressable element is a register block.

8. A microprocessor as set forth in claim 6 wherein said addressable element is a random access memory.

9. A microprocessor as set forth in claim 6 further comprising a third bus, means in said microprocessor for generating output signals on said third bus, an output device external to said microprocessor and connected thereto by said third bus and means within said output device for providing a destination for signals on said third bus.

10. A microprocessor as set forth in claim 9 further comprising:

a. means responsive to a clock signal for placing an address of said addressable element on said second bus, and

b. further means responsive to said clock signal for placing the contents of said addressable element at said address on said third bus.
 Description Submit all comments and votes
 


BACKGROUND OF THE INVENTION

1. Field of the Invention

This invention relates to microprocessors and particularly to input/output devices for providing data and/or address information to and receiving output information from a digital data processing device.

2. Description of the Prior Art

Input/Output devices generally communicate with processing units over an input/output bus over which is carried data and control signals for utilization and operation of the respective devices Ordinarily, data and control information is carried upon separate buses or connecting lines and such control and data signals are usually terminated in a fixed control element or data register within the central processor.

SUMMARY OF THE INVENTION

According to instant invention, an input/output device is connected to a central processor by means of three buses. One is primarily used to transmit input data to the processor, a second is primarily used to transmit an address of an addressable element within the central processor, and the third to receive output data from the central processor. The instant invention provides a structure which is extremely flexible in that the bus normally used for addressing an addressable element within the processor may also be used to carry data, and neither of the input buses is terminated at a specified location. For example, data can be applied over both of the input buses, be operated upon in an arithmetic and logic unit, and then outputted to the input/output device on the third bus. Alternatively, the first bus may carry an address of a memory or register element which is addressable, and the second bus may carry data to be placed in the addressable element. Further, the address bus may provide an address of an addressable element within the processor from which information may be extracted and placed on the output bus.

An object of the invention is to provide a processor in which memory operations are performed in a parallel mode.

A further object of the invention is to provide a processor in which Read Only Memory operations are performed in a parallel mode.

A still further object of the invention is to provide a processor with a single-phase fixed clock system.

A further object of the invention is to provide a processor with a double interrupt system for both multiplexed and high speed data transfer for real time operation.

A further object is to provide a microprocessor in which the control memory can branch from one program segment to another without losing a machine cycle time of the single phase clock.

Another object of the invention is to provide a processor capable of extended or relative addressing of control or main memory in a single machine cycle time.

A still further object of the invention is to provide a processor in which the clock is single phase and controllable by the user to allow connection of peripheral devices of varying speeds.

These and other objects, features, and advantages of the invention will become more apparent when the following description is read in conjunction with the drawings, in which:

FIG. 1 is an overall block diagram of the processor of the instant invention.

FIG. 2 is a block diagram of the Micro Address Generator portion of the processor.

FIG. 3 is a block diagram of the Microinstruction Processing portion of the processor of the instant invention.

FIG. 4 is a block diagram of the Arithmetic and Logic Unit and General Register Portion of the processor.

FIG. 5 is a diagram showing the information flow of the processor from a general register through a function block and back to a general register.

FIG. 6 is a diagram of an alternate information flow path.

FIG. 7 is a diagram of a third information flow path wherein an IO register is a source and either an IO or general register is the destination.

FIG. 8 is a block diagram of the Interrupt flow of the processor.

FIG. 9 is a diagram showing the locations of the micro fields in a microinstruction used by the device of the instant invention.

FIG. 10 is a timing diagram showing the interrupt timing of the processor.

FIG. 11 is a table describing the functions of the ALU Select field of a microinstruction.

FIG. 12 is a table showing bit position assignments of the B Bus.

FIG. 13 is a table describing the Microprogramming of Bus sources.

FIG. 14 is a table showing Word/Byte operation of the device.

FIG. 15 is a table showing the relative addressing feature of the device as represented in a microinstruction.

FIG. 16 is a Timing diagram of the basic single phase clock and system clock.

FIG. 17 is a logic block diagram of the address decoding logic for the processor's IO and interrupt system.

FIG. 18 is a timing diagram of A Bus and B Bus timing.

FIG. 19 is a timing diagram of the C Bus timing.

FIG. 20 is a timing diagram of a typical multiplexed IO interrupt.

FIG. 21 is a block diagram of IO modules in a multiplexed IO interrupt priority string.

FIG. 22 is a logic block diagram of the IO interrupt request logic of the device of the invention.

FIG. 23 is a logic block diagram of the IO device address to A Bus logic.

FIG. 24 is a block diagram of an External Condition Logic Circuit.

FIG. 25 is a timing diagram of External Condition timing.

FIG. 26 is a block diagram of the Fast Interrupt Request and Response to/from the processor.

FIG. 27 is the Fast Interrupt timing diagram for a Single Data Transfer.

FIG. 28 is a Fast Interrupt timing diagram for a Multiple Data transfer.

FIG. 29 is a block diagram showing essential elements of DMA.

FIG. 30 is a block diagram of a Multidevice Mode arrangement of processors according to the invention.

FIG. 31 is a block diagram of Priority Control Logic of the device.

FIG. 32 is a block diagram of Request Control Logic.

FIG. 33 is a logic block diagram of the B Bus Control Logic.

FIG. 34 is a timing diagram of the Fast Interrupt Priority Control of the device.

FIG. 35 is a block diagram of the IO Bus of the processor according to the invention.

FIG. 36 is a block diagram showing the IO Enable Control logic.

FIG. 37 is a timing diagram of the IO Active signal.

FIG. 38 is a block diagram of the Multiplexer IO Interrupt.

FIG. 39 is a timing diagram of a Multiplexed IO Interrupt.

DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT

In a preferred embodiment, a microprogrammed data processor may consist of a device organized in a generalized three-bus structure where the functional processing units are interconnected between operative buses by means of tri-state logic.

Tri-state logic allows each unit to either drive, receive from, or present a high impedance to the buses under control of a microcontrol register.

FIG. 1 shows such an arrangement wherein the A bus, B bus and C bus are shown at 1, 2 and 3 respectively. Connecting the A bus 1 and the C bus 3 are a set of input/output registers 4 which are additionally connected to an input/output bus 6 by means of a register bus selection multiplexer 8. A set of general registers 10 is connected by means of their input to the C bus and by means of their output to the A and B buses. As shown in FIG. 1, the general registers may be 16 bits wide, with the most significant 8 bit appearing on the left side of the diagram and the least significant 8 bit appearing on the right side thereof. It is possible to utilize a block of 8 bit registers (using only the least significant 8 bits) by means of a two to one multiplexer 12 which would divide the C bus' 16 bits into two 8 bit segments. Likewise, although the diagram indicates only the least significant 8 bit segment connected to the A bus and B bus, with the optional most significant 8 bit register block the resulting 16 bit words may be directly placed on the A bus or B bus. Also shown associated with the general register block is an adder 14 connected between the B bus and the two to one multiplexer 12. The adder 14 allows an arithmetic operation to be performed upon data as it is being passed through the general register block from, for example, the B bus to the A bus. A translator 15 allows the storage of microinstruction sets corresponding to the macroinstruction instruction set of a computer to be emulated.

A main memory and scratch pad memory 16 and 18, respectively, are shown connected such as to receive data from the A bus and an address from the B bus. The memory output is directed to the C bus 3. The scratch pad memory 18 may be used for intermediate storage beyond the limits of the 8 general registers or for other purposes to be described later. The main memory can be used to store data, results, microinstructions awaiting transfer to a variable control memory, or microinstructions if the device is being used in an emulation mode to emulate the macroinstruction set of another data processing machine.

The microcontrol elements of the device include the micro-address register 20, the control memory 22 which may comprise a read-only memory and/or a random access memory, and the microcontrol register 24 which holds the current microinstruction while it is being executed. Also associated with the microcontrol elements are a series of multiplexers 26, 28, 30, 32, 34 and 36. The multiplexers are used primarily for translating between various address/data information bit widths. A push stack 38 and a stack pointer counter 40 also associated with the microcontrol elements and their functions will be described later. Similarly, decoder 42 will be described in conjunction with the description of the microcontrol register contents.

An arithmetic and logic unit 44 with its associated input and output multiplexers 46 and 48, respectively, is capable of performing, in a preferred embodiment, 32 arithmetic or 16 logical operations, taking its two operands from the A bus and B bus and placing the results on the C bus.

In very general terms, the operation of the machine is such that a 32-bit microinstruction is divided into a number of fields which control all the operations of the machine. For example, the microinstruction determines the source of data for the A bus and B bus, whether it is to be an input/output interface or a general register. It determines the function to be performed in the arithmetic and logic unit on data from the A bus and B bus, and it further determines that data from the A bus is to be stored in scratch pad/main memory at an address contained on the B bus. Complete definition of the microinstructions fields will be provided later in this specification.

It is apparent, from a view of FIG. 1, that the microinstructions can direct the flow of data through a variety of paths. Incoming data from the input/output bus, for example, can be routed directly to scratch pads/main memory or can be first operated on in the arithmetic and logic unit 44. Results from the ALU 44 can be transmitted immediately by an input/output register 4 to the input/output bus 6 or can instead be held in a general register 10 pending further manipulation within the machine. Similarly, information from scratch pad/main memory (18, 16) can be routed to the input/output bus 6 or to a general register 10.

The general registers 10 may be used to buffer data between the C bus 3 and the A bus 1 or B bus 2 for further processing or storage within the machine. Similarly, the ALU 44 can be used as a path to move data unchanged from the A bus 1 or B bus 2 to the C bus 3.

Thus, multiple fields enable the microinstruction to control a number of operations and address civil locations simultaneously. A tightly packed microinstruction provides parallel processing and results in efficient machine utilization. It is apparent that, although not specifically shown in FIG. 1 for purposes of clarity of description, a plurality of control paths exist from the microcontrol register 24 to each of the devices which has access to one or more of the buses.

It may also be noted that the generalized three-bus architeture of the device makes it possible to add functions as the needs arise, such as, a high-speed multiply/divide, square root, trigmetric functions, and code conversions. The addition of a translator 15, together with an emulation microprogram in the control memory permits the device to emulate a computer instruction set.

System Organization

Three types of information are existant within the system. The basic element of information is a 16-bit word in which the bit positions are numbered from 0 through 15 as follows:

______________________________________ Byte 0 Byte 1 ______________________________________ 0 1 2 3 .vertline.4 5 6 7 0 1 2 3 .vertline.4 5 6 7 ______________________________________

The binary information in the system is generally expressed in hexidecimal notation because four binary digits of information can be expressed by a single hexidecimal digit. Thus, a byte can be expressed with a string of two hexidecimal digits, a word with a string of four hexidecimal digits, and a double word with a string of eight hexidecimal digits. For purposes of this disclosure, a hexidecimal number is displayed as a string of hexidecimal digits surrounded by single quotation marks and preceeded by the letter X. For example, the binary number 01011010 is expressed in hexidecimal notation as X 5A. Hexidecimal numbers are generally used to denote addresses and data values. There are instances, however, in which decimals numbers are more meaningful or are customary. Also, for purposes of this disclosure, fixed-point data is expressed in two's complement notation consisting of a 15-bit integer and a sign bit in the 0 position. Logical operations assume that a logical data word format consisting of 16 bits without sign, is used.

A second class of information within the system is the micro-address. The micro-address is 12 bits, capable of addressing up to 4,096 control memory locations. The micro-address register (MAR) 20, push stack 38, and related gating operations are on a 12-bit basis when a micro-address is routed over one of the three buses 1, 2, 3, it occupies the least significant 12 positions of the 16 bit positions of each bus.

The third class of information in the system is the microinstruction, 32 bits in length. The control memory 22 and the microcontrol register (MCR) 24 both operate on a 32-bit basis. When a microinstruction is routed over one of the buses, it is handled into 16-bit sections. The flow of information within the device may be described in four categories called a micro-address, microinstructions, data, and interrupt.

The basic microinstruction format is a 32-bit format subdivided into 11 micro-operational fields (micro OP fields) as shown below. This format will be extensively discussed in a later following section of this specification.

__________________________________________________________________________ 0 31 __________________________________________________________________________ A IO RA L RB A Bus B Bus C Bus/ Branch Mult. Mult. Mult. Mode Select U Select Cont. Cont. Regist. Cont. uOP uOP uOP Mode Cont. Fld. 1 Fld. Fld. __________________________________________________________________________ 3

The micro-address information flow is shown generally in FIG. 2. Various elemental blocks are numbered to coincide with the numbers originally given in FIG. 1. Note the addition, however, of a clock control device 50 which is shown as driving the MAR 20. Although the clock control is shown for only the one element 20, the equivalent clock function is assumed to be applied in functional relation to all blocks in which the symbol .phi. appears.

The micro-addresses are normally held in the MAR 20. From here they are applied at .phi. at the 4:1 memory address multiplexer 28 to select the control memory location in which a microinstruction is stored. The micro-address in the MAR 20 can be changed in two ways:

1. Incremented to the next micro-address by the clock.

2. Jumped to another micro-address supplied from the C bus.

It should be noted that, for the purposes of the remainder of this specification, where a slant line with a number immediately thereunder is associated with a line on any of the figures, the number indicates the number of wires connecting the associated elements. For example, between the C bus and the micro-address register 20 a 12-wire cable is the connective element.

The micro-address applied to control memory 22 can be multiplexed from 3 sources in addition to the micro-address register: A bus, B bus, and interrupt logic. The interrupt logic 52 generates micro-address corresponding to each interrupt.

When an immediate address is used and it is desired merely to increment the micro-address register 20, bits 20 through 31 from the microcontrol register 24 are used directly as the next micro-address. At the same time, this immediate address is routed via bus A through the arithmetic and logic unit (ALU) 44 with a one added thereto. The result is presented via the C bus to the input of the MAR 20. The next system clock will cause this value to be put into the MAR 20 allowing continuous simultaneous fetch/execute cycles through the system. Relative micro-addressing will be discussed in some detail later in this specification.

The current micro-address in the MAR 20 can be stored in the push-stack 38 and replaced with a micro-address from the C bus 3. Also, the micro-address from the push stack 38 can be routed by the C bus 3 to the micro-address register 20. At the same time the micro-address is stored in the push stack, 6 status bits are entered into the push stack.

Instruction Flow

The microinstructions are stored in control memory. In the instant embodiment, two types of control memory are shown, a read only memory 22 and a random access memory 23. It is also within the scope of the invention to provide additional types of control memory such as an electrically alterable memory. In addition, a separate memory may be provided to perform such functions as diagnostics and field varification.

Micro-instruction processing is diagrammed in FIG. 3. When addressed by a micro-address, a microinstruction is transferred from control memory 22 or 23 via a 2 to 1 multiplexer 32 to the microcontrol register MCR 24. A microinstruction can also reach the MCR 24 from a maintenance control panel via the C bus 3 and its associated 2 to 1 multiplexer 30 in 2 16-bit increment.

In the case of the random access type control memory 23, a new microinstruction can be written into the location addressed by the micro-address. The new microinstruction is obtained in two 16-bit increments from the A bus 1 over the 16-bit line shown in FIG. 3. A microinstruction can be read out from any type of control memory via a two to one multiplexer 30 in two 16-bit increments to the C bus 3.

From the MCR 24, the microinstruction is decoded to provide control signals that direct the flow of data through the system as well be detailed later. The last 12 bits of the microinstruction, when used as an immediate micro-address are placed on the A bus 1 by means of the 12-bit line shown in FIG. 3. Similarly, the last 8 bits of the microinstruction, when used as an Emit field (to be discussed later) are placed on the B bus 2. The three bits defining the bit switch/position are decoded in decoder 42 and placed on the B bus.

With respect to timing, the first microinstruction is read from the control memory 22, 23. When this microinstruction is clocked into the MCR 24, the incrementor (ALU 44) is activated causing the MAR 24 to be incremented to MAR+1.

Since there are no phases in the clock of the device, this new address is immediately presented to the control memory 22 which reads the next microinstruction to the input of the MCR 24. The next clock will save the datum result input to the MCR 22 to the new microinstruction that was waiting and increment the MAR to MAR+1. This process continues until a micro-address other than a sequential sequence is needed.

Data Flow

Data flows through a number of paths and registers including the arithmetic and logic unit ALU 44, general registers 10, input/output modules of various kinds 4, scratch pad 18, main memory 16, and instruction translator 15 if such a device is used to provide emulation of computer macroinstructions.

Arithmetic and Logic Unit (ALU)

The ALU 44 accepts a byte or word from the A bus and B bus, performs arithmetic or logic operations on the two operands and outputs the results through a rotat/byte select logic 48 to the C bus 3 as shown in FIG. 4. Operand word or byte selection, operations selection, and output shift or byte select are all specified by control signals derived from the microinstruction to be described later.

The input byte select gate 46a, 46b applies both bytes, the left byte, or right byte, from the A bus to the A operand or from the B bus to the B operand.

The arithmetic or logic operations is specified by the mode signal M (shown above as the first of the 11 microoperational fields). One of 16 arithmetical and logic operations is selected by the four select lines (shown as the second and fourth microoperational fields of the diagram). Carry in, Cn, adds "one" the results.

The ALU result can be shifted left or right one bit or transferred direct to the C bus. Also, the right byte of the results can be placed in the left byte of the C bus.

General Registers

The general registers 10 provide a source for the A bus 1 and B bus 2 and the destination for the C bus 3, as shown in FIG. 4. For example, the A and B operands for the ALU 44 can be taken from general registers 10 and the ALU results can be stored in a general register.

Additionally, one can be added to or subtracted from the value on the B bus and the result stored in one of the general registers. This function is performed by the add/subtract one function 14 connected from the B bus through the 2 to 1 multiplexer 12 through a one to eight demultiplexer and ultimately applied to the general register 10.

Status

Four of the six status bit to the ALU 44 are derived from arithmetic operations, as defined below.

Carry: In word operation, the carry-out from the most significant bit of the ALU (Bit 0) or, in byte operation, the carry-out from the most significant bit of the byte (bit 8).

Overflow: An arithmetic operation on A and B operands results in a number greater than the largest number that can be processed in the space specified (word or byte). For example, in addition, overflow occurs if the sum of two positive numbers is negative or the sum of two negative numbers is positive, using two's complement format. Similarly, in subtraction, overflow results if the subtraction of a negative number from a positive number gives a negative number or if the subtraction of a positive from a negative number gives a positive number. The overflow is indicated as a status bit in register 62.

C bus equals 0: All bits of the C bus are 0. This status bit is carried in register 60.

Sign: In word operation, the most significant bit of the word (bit 0) or, in byte operation, the most significant bit of the byte (bit 8). This status is carried in register 58.

Control Mode: A command decoded from the microinstructions sets and resets this bit. It is used for additional control of an optional function such as a macroinstruction translator. This register is not diagramed in FIG. 4.

Input/Output

Input/output modules 4 may be of various types to handle various modules such as a teletype or paper tape. In general, the modules perform functions of the following types:

1. Accept incoming data and place it on the A bus.

2. Transfer outgoing data from the C bus to the output.

3. Accept multiplexed general interrupts and place their identification on the A bus.

The input/output will be extensively discussed in a latter portion of this specification.

Scratch Pads/Main Memory

Referring to FIG. 1, data is written from the A bus into the scratch pad 18, main memory 16, at the location addressed by the B bus. Data is read to the C bus 3 from the scratch pad 18, main memory 16 location addressed by the B bus.

Translator

The translator 15 enables the device to emulate a computer instruction set. This provides the means for translating a macroinstruction, taken from the C bus into a micro-address .phi., placed on the A bus, that accessed the first of a series of microinstructions in control memory 22 to implement the macroinstruction. Moreover, in the case of a macroinstruction containing an argument field, such as the address field used in calculating direct or indirect memory locations, the translator transfers the argument field to the B bus.

Maintenance Control Panel

The maintenance control panel (not shown) provides controls and indicators that display the current status of the machine and make changes in that status. The controls permit 16 data bits to be placed on the C bus, in the microcontrol register, or (12 bits) in the micro-address register. Interrupt and status bits are displayed continuously. Register or bus contents can be displayed one at a time. The maintenance control panel will be further defined in detail in a later section.

Information Flow: Summary

Information flow is the path which data takes from a general register through some function lock back to a general register. A simplified view of this flow is shown in FIG. 5.

The first level of gating (multiplexers 56) selects which register is to be gated to the source buses A and B.

The second level of gating (byte select gates 46a, 46b,) selects which byte on the A and B buses is to be presented to the ALU 44 to have some function performed.

The third level of gating (shift/byte select 48) selects whether the output of the ALU 44 is to be logically shifted left or right one bit position and/or if the right byte should be moved to the left byte of the C bus (destination bus).

Adding to this information flow is an alternate path that data may take instead of through the ALU function logic. This alternate path is shown in FIG. 6.

In FIG. 6, the first level of gating (multiplexers 56) select which register is to be used as the data register (A and C buses) and which register is to be used as the memory address register (B bus).

The second level of gating and the third level of gating are both disabled (disconnected through the used of the tri-state logic previously discussed) so that the output of the main memory can be connected directly to the C bus (register destination bus).

The third information path allowed is shown in FIG. 7. The first level of gating for the A bus (multiplexers 56) select, instead of a general register 10 as its source, an IO register 4 to be gated onto the A bus. The first level of gating for the B bus is free to select a general register to be gated to the B bus.

The data flow can then be routed to the main memory 16 through the ALU 44 back to either the IO register 4 or general register 10 or from the main memory 16 to the IO register 4. The third level of gating 48 is used only when the ALU function is active.

Interrupt Flow

Seven interrupt lines originate in various parts of the system, as shown in FIG. 8, all of which terminate at an interrupt register 70 when one or more of the interrupt flip-flops is set, the micro-address of the interrupt that has the highest priority is applied through the interrupt micro-address and coder 52 to the memory address multiplexer 28 which then addressed the control memory 22. The interrupts are diagramed in FIG. 8 in order of priority from X 4 to X A. Each microaddress points to a microinstruction specified by the system programmer initiating a procedure that responds to that interrupt.

The contents of the interrupt register may be displayed on a maintenance control panel 66.

The interrupts form the following functions:

Power Off: A logic signal from the power supply that indicates loss of input power which in a short period of time after input power has dropped. Power supply may be designed such that there is sufficient storage in the power supply such that the voltage does not go out of regulation until some period of time beyond that which the interrupt is activated.

Power On: A logic signal from the power supply that indicates the power is on.

Fast Interrupt One: A logic signal from the input/output interface 4 directly to the interrupt register and used primarily for high-speed data transfers to/from user logic via the IO interface 4 from/to scratch pad/main memory 16, 18. The interrupt register returns a hardware response to the IO interface.

Fast Interrupt Two: The same as fast interrupt one, except of lower priority. One of the fast interrupts may be used to input data while the other is used to output data. The fast interrupts will be described in details in the later section:

Input/Output: A logic signal that indicates that a multiplexed input/output interrupt is pending on one or more of the input/output interfaces. In response to the signal, the system programmer requests the highest priority I/O module 4 with an interrupt pending to put its address on the A bus.

Error: A log