Post on 25-Feb-2016
description
Burroughs’ Stack Machines
Adeel Bhutta
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)
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
“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)
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
Burroughs’ System
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
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
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
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)
Simplified stack mechanism
• Stack stores:– Program Parameters– Local Variables– Reference to Program
procedures– Data arrays
Subroutine Structure
• Structured Programming
• Problem: Need to store return address
• Solution: Use Stacks• B6700
– Place address in stack– ENTR– RETN/EXIT
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
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
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)
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)
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.
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.
Task Stacks
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
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
B6700 I/O Processor
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
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.
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