Transcript
Page 1: Burroughs’ Stack Machines

Burroughs’ Stack Machines

Adeel Bhutta

Page 2: Burroughs’ Stack Machines

Organization• Computing Era – History (60’s)• A few words about Burroughs’ Family• Stack and Tree, Relationship• A peek inside ( i.e., Subroutines,

Instruction Format, Tag Bits, Arrays)• Operating System• I/O Control• Summary (Pro and Cons, Improvements)

Page 3: Burroughs’ Stack Machines

Computing Era - History

• Time Sharing and Multiprogramming• B5000 (announced in 1962)

– One of the 1st to separate programming from implementation

– 1st Computer to be designed specifically for High level Programming (ALGOL, COBOL, FORTRAN)

– One of the 1st to include significant features to assist with implementation of OS

– 1st commercial computer with “unlimited” virtual memory

Page 4: Burroughs’ Stack Machines

“There have been few computers about which we can say that their uses were clearly analyzed before they were developed” – Doran

• B5500 (1964 – 1970) B5700– Obsolete in Mid 60’s– Sold because of Software which provided reliable OS with Very Good time sharing

• B6500 (1965) B6700 (1970)• B7700/B7500 (High Speed Versions)• B8500 (Rumored to hold the title of largest computer in the world)

Page 5: Burroughs’ Stack Machines

Burroughs’ 6700 System• Used in database management, transaction processing• One large B6700 system includes:

– 3 central processors– 3 I/O processors– 8 Data Communication processors– 60 disk pack drives– 35 fixed head disk memories– 2 card readers– 10 line printers– 48 magnetic tape drives– 2000 enquiry terminals– 6 million bytes of main memory

Page 6: Burroughs’ Stack Machines

Burroughs’ System

Page 7: Burroughs’ Stack Machines

Stack and Tree, Relationship

• Traversal Example• Whenever our

compute is using a tree structure, we can make use of a stack and vise versa.

• Sometimes we need multiple stacks

Page 8: Burroughs’ Stack Machines

Arithmetic Stack

• X + ( Z + 6 / T ) * Y

• Problem: Computer must remember operands

• Solution: Operators built in hardware with push / pop instructions can readily evaluate expressions

Page 9: Burroughs’ Stack Machines

Arithmetic Stack - Example

B6700 Instructions• Push instructions

– VALC address– LT8, LT16, LT48– ZERO, ONE

• Arithmetic instructions– ADD, SUBT, DIVD, MULT

• Relational instructions– GRTR, EQUL, LESS

• Logical Operators– LAND, LOR, LNOT

B6700 Program:VALC XVALC ZLT8 6VALC TDIVDADDVALC YMULTADD

Page 10: Burroughs’ Stack Machines

Stack Implementation• Maintained in main

memory of computer• Problem: Too many

memory accesses• Solution: Maintain

High Speed Registers• 2 registers B6700• 32 registers B7700• BOS (base of stack)• SL (stack Limit)

Page 11: Burroughs’ Stack Machines

Simplified stack mechanism

• Stack stores:– Program Parameters– Local Variables– Reference to Program

procedures– Data arrays

Page 12: Burroughs’ Stack Machines

Subroutine Structure

• Structured Programming

• Problem: Need to store return address

• Solution: Use Stacks• B6700

– Place address in stack– ENTR– RETN/EXIT

Page 13: Burroughs’ Stack Machines

Instruction Formats

• Basic machine instruction is called syllable• Syllable – 8 bit• NAMC and VALC are 2 syllables long• A subroutine is an array of syllables• Data Word: 51-bit long (B6500/7500)

– 3 bits are tag bits– 48 bits are data

Page 14: Burroughs’ Stack Machines

Tag BitsTag Bits• 000 – Single Precision op.• 001 – Indirect Reference word• 010 – Double Precision op.• 011 – Program Segment Descr.• 100 – Step Index word • 101 – Data / Array Descriptor• 110 – used by software• 111 – Program Control word

“To distinguish between data and instructions”

Features:• Data may be referenced as

operand, with processor worrying about length of operand

• Memory Protection : Attempt to modify code or execute data as program, system interrupted

Page 15: Burroughs’ Stack Machines

Arrays• Descriptors - can be thought of having base

address, length of array and other information about array

• e.g.,– Segment Descriptor (Code)– String Descriptor (4-bit, 6-bit, 8-bit)– Data Descriptor (single/double precision)

Page 16: Burroughs’ Stack Machines

Array - Example

• A [t]– NAMC A (gets address of array descriptor)– LOAD (places address on stack)– VALC t (place value of t on stack)– INDX (gets address of element:

address = base + value)

Page 17: Burroughs’ Stack Machines

Operating System• 1st OS Executive Program, Master Control Program

– Resident on computer memory, capable of interpreting simple commands, sequences jobs or steps of a job.

• Concept of Time-Sharing– Processor is switched between jobs so quickly that user get

impression it is solely serving his job.

• Concept of Multi-Processing– Central Processor does actual work, “channels” do I/O

operations.

• MULTIPROGRAMMING– Make use of channels to have a number of programs available

for execution at same time so that when one program was waiting for I/O other would still be able to process.

Page 18: Burroughs’ Stack Machines

OS – contd.• Concept of Task ( Process)

– Coupling of a program possibly shared with execution record and a processor

• Eventually OS was thought as something that allocates resources to everybody (including processors). So an operating system dominates the processors.

• Nowadays, OS is thought of as a cooperating set of parallel tasks rather than a program. They deal with hardware directly in particular interrupt system.

Page 19: Burroughs’ Stack Machines

Task Stacks

Page 20: Burroughs’ Stack Machines

B6700 I/O Control• 3 types of processors

– IOP ( Main I/O processor)– DCP ( Data Communication

processor)– DFO ( Disk File Optimizer)

• Communication between Processors– Scan Bus ( Control Signals)

• SCNI, SCNO • Processor #, instruction

– Interrupts

Page 21: Burroughs’ Stack Machines

I/O Control• IOP

– Controls, monitors I/O hierarchy– Receives OS commands– Directs interrupts to OS– Tasks for transfer of data between main memory and I/O

devices

• DCP– Data Comm. Controller moved a request in queue for DCP– Result placed in Result Queue– Controlled by central processor (Initialize, Halt, Set attention

needed)

• DFO– To optimize algorithms involved in controlling peripheral devices

Page 22: Burroughs’ Stack Machines

B6700 I/O Processor

Page 23: Burroughs’ Stack Machines

Stack Machines - Pros and Cons

• Good code density ( reduces code size by implicit address of top elements of the stack).

• Designed with compilers and OS in mind.• Fortran Programs run faster on other machines while

Algol-like programs run faster on B6700.• Shorter instruction fetch cycles (always top of stack),

more cycles for data (load descriptor address, get value of address)

• Protection because of use of descriptors• Difficult to handle multi-dimensional arrays

Page 24: Burroughs’ Stack Machines

Stack Machines - Today• Trade-offs have changed

– Code density not very important– Doesn’t fit the needs of high-performance Floating

point code so stack proves to be bottleneck for high performance implementations

• Improvements– Enriching Tags (Hardware recognition)– Add operators to work on queue data structures– Changing interrupts to give OS control in order to

recognize interrupt by type / by source.

• No active development of stack machines.

Page 25: Burroughs’ Stack Machines

References• ‘Computer Architecture – A Structured

Approach’, R. W. Doran, 1979• ‘Computer System Organization – The

B5700/6700 Series’, Elliott I. Organick, 1973• ‘Burroughs’ B6500/B7500 Stack Mechanism’,

E.A.Hauck / B.A.Dent• ‘Burroughs 5000 Descriptor – Manual’,

Burroughs Corporation, 1963