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!
==Tagged architecture== The most defining aspect of the B5000 is that it is a stack machine as treated above. However, two other very important features of the architecture is that it is [[tagged architecture|tag-based]] and descriptor-based. In the original B5000, a flag bit in each control or numeric word<ref group=NB>There was no flag bit in words containing character data or code</ref> was set aside to identify the word as a control word or numeric word. This was partially a security mechanism to stop programs from being able to corrupt control words on the stack. Later, when the B6500 was designed, it was realized that the 1-bit control word/numeric distinction was a powerful idea and this was extended to three bits outside of the 48 bit word into a tag. The data bits are bits 0β47 and the tag is in bits 48β50. Bit 48 was the read-only bit, thus odd tags indicated control words that could not be written by a user-level program. Code words were given tag 3. Here is a list of the tags and their function: {|class="wikitable" |- !Tag!!Word kind!!Description |- |0||Data||All kinds of user and system data (text data and single precision numbers) |- |2||Double||Double Precision data |- |4||SIW||Step Index word (used in loops) |- |6|| ||Uninitialized data |- | ||SCW||Software Control Word (used to cut back the stack) |- |1||IRW||Indirect Reference Word |- | ||SIRW||Stuffed Indirect Reference Word |- |3||Code||Program code word |- | ||MSCW||Mark Stack Control Word |- | ||RCW||Return Control Word |- | ||TOSCW||Top of Stack Control Word |- | ||SD||Segment Descriptor |- |5||Descriptor||Data block descriptors |- |7||PCW||Program Control Word |} Internally, some of the machines had 60 bit words, with the extra bits being used for engineering purposes such as a [[Hamming code]] error-correction field, but these were never seen by programmers. The current incarnation of these machines, the Unisys ClearPath has extended tags further into a four bit tag. The microcode level that specified four bit tags was referred to as level Gamma. Even-tagged words are user data which can be modified by a user program as user state. Odd-tagged words are created and used directly by the hardware and represent a program's execution state. Since these words are created and consumed by specific instructions or the hardware, the exact format of these words can change between hardware implementation and user programs do not need to be recompiled, since the same code stream will produce the same results, even though system word format may have changed. Tag 1 words represent on-stack data addresses. The normal IRW simply stores an address couple to data on the current stack. The SIRW references data on any stack by including a stack number in the address. Amongst other things, SIRW's are used to provide addressing between discrete process stacks such as those generated in response to the '''CALL''' and '''PROCESS''' statements. Tag 5 words are descriptors, which are more fully described in the next section. Tag 5 words represent off-stack data addresses. Tag 7 is the program control word which describes a procedure entry point. When hardware operators hit a PCW, the procedure is entered. The ENTR operator explicitly enters a procedure (non-value-returning routine). Functions (value-returning routines) are implicitly entered by operators such as value call (VALC). Global routines are stored in the D[2] environment as SIRWs that point to a PCW stored in the code segment dictionary in the D[1] environment. The D[1] environment is not stored on the current stack because it can be referenced by all processes sharing this code. Thus code is reentrant and shared. Tag 3 represents code words themselves, which won't occur on the stack. Tag 3 is also used for the stack control words MSCW, RCW, TOSCW. [[File:b6700Word.jpg|thumb|420px|left|Figure 9.2 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)