260 likes | 459 Views
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
E N D
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
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) “There have been few computers about which we can say that their uses were clearly analyzed before they were developed” – Doran
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
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
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 X VALC Z LT8 6 VALC T DIVD ADD VALC Y MULT ADD Arithmetic Stack - Example
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 Bits Tag 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.
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
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