Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Burroughs Large Systems
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
===Features=== * Hardware was designed to support software requirements * Hardware designed to exclusively support [[high-level programming language]]s * Simplified [[instruction set]] * No [[Assembly language]] or assembler; all system software written in an extended variety of [[ALGOL 60]] named [[Executive Systems Problem Oriented Language|ESPOL]]. However, ESPOL had statements for each of the syllables in the architecture. * Partially data-driven [[Tagged architecture|tagged]] and [[Burroughs large systems descriptors|descriptor]]-based design * Few programmer accessible registers * [[Stack machine]] where all operations use the stack rather than explicit operands. This approach has by now fallen out of favor. * All interrupts and procedure calls use the stack * Support for other languages such as [[COBOL]] * Powerful string manipulation * All code automatically [[Reentrancy (computing)|reentrant]]: programmers don't have to do anything more to have any code in any language spread across processors than to use just the two shown simple primitives. * Support for an [[operating system]] (MCP, [[Burroughs MCP|Master Control Program]]) * Support for [[Asymmetric multiprocessing|asymmetric]] (master/slave) [[multiprocessing]] * An attempt at a secure architecture prohibiting unauthorized access of data or disruptions to operations<ref group=NB>There were security issues</ref> * Early error-detection supporting development and testing of software * A commercial implementation virtual memory, preceded only by the [[Ferranti]] [[Atlas Computer (Manchester)|Atlas]]. * First segmented memory model ====System design==== The B5000 was unusual at the time in that the architecture and [[instruction set]] were designed with the needs of software taken into consideration. This was a large departure from the computer system design of the time, where a processor and its instruction set would be designed and then handed over to the software people. The B5000, B5500 and B5700 in Word Mode has two different addressing modes, depending on whether it is executing a main program (SALF off) or a [[subroutine]] (SALF on). For a main program, the T field of an Operand Call or Descriptor Call syllable is relative to the Program Reference Table (PRT). For subroutines, the type of addressing is dependent on the high three bits of T and on the Mark Stack [[Flip-flop (electronics)|FlipFlop]] (MSFF), as shown in [[#RelativeAddressing|B5x00 Relative Addressing]]. {| class="wikitable" |+{{Anchor|RelativeAddressing}}B5x00 Relative Addressing<ref>Taken from {{cite book | series = Systems Documentation | title = Burroughs B5500 Information Processing Systems Reference Manual | section = Table 5-1 Relative Addressing Table | publisher = Burroughs Corporation | date = May 1967 | url = http://bitsavers.org/pdf/burroughs/LargeSystems/B5000_5500_5700/1021326_B5500_RefMan_May67.pdf | id = 1021326 | page = 5{{hyphen}}4 }}</ref> |- ! scope="col" style="text-align: left;" | SALF{{efn|name=SALF}} ! scope="col" style="text-align: left;" | T0<br />A38 ! scope="col" style="text-align: left;" | T1<br />A39 ! scope="col" style="text-align: left;" | T2<br />A40 ! scope="col" style="text-align: left;" | MSFF{{efn|name=MSFF}} ! scope="col" style="text-align: left;" | Base ! scope="col" style="text-align: left;" | Contents ! scope="col" style="text-align: left;" | Index<br />Sign ! scope="col" style="text-align: right;" | Index<br />Bits{{efn|name=IxB}} ! scope="col" style="text-align: right;" | Max<br />Index |- | style="text-align: left;" {{na|text=OFF}} | style="text-align: left;" {{sdash}} | style="text-align: left;" {{sdash}} | style="text-align: left;" {{sdash}} | style="text-align: left;" {{sdash}} | style="text-align: left;" | R | style="text-align: left;" | Address of PRT | style="text-align: left;" | + | style="text-align: right;" | T 0-9<br />A 38-47 | style="text-align: right;" | 1023 |- | style="text-align: left;" {{ya|text=ON}} | style="text-align: left;" {{na|text=OFF}} | style="text-align: left;" {{sdash}} | style="text-align: left;" {{sdash}} | style="text-align: left;" {{sdash}} | style="text-align: left;" | R | style="text-align: left;" | Address of PRT | style="text-align: left;" | + | style="text-align: right;" | T 1-9<br />A 39-47 | style="text-align: right;" | 511 |- | style="text-align: left;" {{ya|text=ON}} | style="text-align: left;" {{ya|text=ON}} | style="text-align: left;" {{na|text=OFF}} | style="text-align: left;" {{sdash}} | style="text-align: left;" {{na|text=OFF}} | style="text-align: left;" | F | style="text-align: left;" | Address of last RCW{{efn|name=RCW}} or MSCW{{efn|name=MSCW}} on stack | style="text-align: left;" | + | style="text-align: right;" | T 2-9<br />A 40-47 | style="text-align: right;" | 255 |- | style="text-align: left;" {{ya|text=ON}} | style="text-align: left;" {{ya|text=ON}} | style="text-align: left;" {{na|text=OFF}} | style="text-align: left;" {{sdash}} | style="text-align: left;" {{ya|text=ON}} | style="text-align: left;" | (R+7){{efn|name=Rp7}} | style="text-align: left;" | F register from MSCW{{efn|name=MSCW}} at PRT+7 | style="text-align: left;" | + | style="text-align: right;" | T 2-9<br />A 40-47 | style="text-align: right;" | 255 |- | style="text-align: left;" {{ya|text=ON}} | style="text-align: left;" {{ya|text=ON}} | style="text-align: left;" {{ya|text=ON}} | style="text-align: left;" {{na|text=OFF}} | style="text-align: left;" {{sdash}} | style="text-align: left;" | C{{efn|name=Cf}} | style="text-align: left;" | Address of current instruction word | style="text-align: left;" | + | style="text-align: right;" | T 3-9<br />A 41-47 | style="text-align: right;" | 127 |- | style="text-align: left;" {{ya|text=ON}} | style="text-align: left;" {{ya|text=ON}} | style="text-align: left;" {{ya|text=ON}} | style="text-align: left;" {{ya|text=ON}} | style="text-align: left;" {{na|text=OFF}} | style="text-align: left;" | F | style="text-align: left;" | Address of last RCW{{efn|name=RCW}} or MSCW{{efn|name=MSCW}} on stack | style="text-align: left;" {{sdash}} | style="text-align: right;" | T 3-9<br />A 41-47 | style="text-align: right;" | 127 |- | style="text-align: left;" {{ya|text=ON}} | style="text-align: left;" {{ya|text=ON}} | style="text-align: left;" {{ya|text=ON}} | style="text-align: left;" {{ya|text=ON}} | style="text-align: left;" {{ya|text=ON}} | style="text-align: left;" | (R+7){{efn|name=Rp7}} | style="text-align: left;" | F register from MSCW{{efn|name=MSCW}} at PRT+7 | style="text-align: left;" {{sdash}} | style="text-align: right;" | T 3-9<br />A 41-47 | style="text-align: right;" | 127 |- | scope=row colspan='11' | '''Notes:'''<br />{{Notelist|2|refs= {{efn | name=Cf | '''C''' (current [[instruction word]])-relative forced to R (PRT)-relative for Store, Program and I/O Release operators}} {{efn | name=MSCW | '''MSCW''' Mark Stack Control Word}} {{efn | name=MSFF | '''MSFF''' Mark Stack FlipFlop}} {{efn | name=Rp7 | '''F''' register from MSCW at PRT+7}} {{efn | name=IxB | For Operand Call (OPDC) and Descriptor Call (DESC) syllables, the relative address is bits 0-9 (T register) of the syllable. For Store operators (CID, CND, ISD, ISN, STD, STN), the A register (top of stack) contains an absolute address if the [[Flag bit]] is set and a relative address if the Flag bit is off.}} {{efn | name=RCW | '''RCW''' Return Control Word}} {{efn | name=SALF | '''SALF''' Subroutine Level Flipflop}} }} |} ====Language support==== The B5000 was designed to exclusively support high-level languages. This was at a time when such languages were just coming to prominence with [[FORTRAN]] and then [[COBOL]]. FORTRAN and COBOL were considered weaker languages by some, when it comes to modern software techniques, so a newer, mostly untried language was adopted, [[Algol 60|ALGOL-60]]. The ALGOL dialect chosen for the B5000 was [[Elliott ALGOL]], first designed and implemented by [[C. A. R. Hoare]] on an [[Elliott 503]]. This was a practical extension of ALGOL with I/O instructions (which ALGOL had ignored) and powerful string processing instructions. Hoare's famous [[Turing Award]] lecture was on this subject. Thus the B5000 was based on a very powerful language. [[Donald Knuth]] had previously implemented [[ALGOL 58]] on an earlier Burroughs machine during the three months of his summer break, and he was peripherally involved in the B5000 design as a consultant. Many wrote ALGOL off, mistakenly believing that high-level languages could not have the same power as assembler, and thus not realizing ALGOL's potential as a systems programming language. The Burroughs ALGOL compiler was very fast — this impressed the Dutch scientist [[Edsger Dijkstra]] when he submitted a program to be compiled at the B5000 Pasadena plant. His deck of cards was compiled almost immediately and he immediately wanted several machines for his university, [[Eindhoven University of Technology]] in the Netherlands. The compiler was fast for several reasons, but the primary reason was that it was a [[one-pass compiler]]. Early computers did not have enough memory to store the source code, so compilers (and even assemblers) usually needed to read the source code more than once. The Burroughs ALGOL syntax, unlike the official language, requires that each variable (or other object) be declared before it is used, so it is feasible to write an ALGOL compiler that reads the data only once. This concept has profound theoretical implications, but it also permits very fast compiling. Burroughs large systems could compile as fast as they could read the source code from the [[punched card]]s, and they had the fastest card readers in the industry. The powerful Burroughs COBOL compiler was also a one-pass compiler and equally fast. A 4000-card COBOL program compiled as fast as the 1000-card/minute readers could read the code. The program was ready to use as soon as the cards went through the reader. [[File:b6700.jpg|thumb|420px|right|Figure 4.5 From the ACM Monograph in the References. ''[[Elliot Organick]] 1973.'']]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)