glossary of terms - retrotruestory/M1DEV GitHub Wiki
ABBREVIATIONS AND NOMENCLATURES
Microcode
Microcode only runs on the exact electronic circuitry for which it is designed, as it constitutes an inherent part of the particular processor design itself. Microcode refers to the microinstructions, especially of a microprocessor, that govern the details of operation. Microcoded functions can improve performance but add a layer of complexity. For example, microcode errors appear to software as being hardware failures. Using microcode meant all that changed was the code in the ROM. For instance, one machine might include a floating point unit and thus its microcode for multiplying two numbers might be only a few lines line, whereas on the same machine without the FPU this would be a program that did the same using multiple additions, and all that changed was the ROM.
Horizontal microcode
"Horizontal microcode has several discrete micro-operations that are combined in a single microinstruction for simultaneous operation."[1] Horizontal microcode is typically contained in a fairly wide control store; it is not uncommon for each word to be 108 bits or more. On each tick of a sequencer clock a microcode word is read, decoded, and used to control the functional elements that make up the CPU.
In a typical implementation a horizontal microprogram word comprises fairly tightly defined groups of bits. For example, one simple arrangement might be: Register source A Register source B Destination register Arithmetic and logic unit
Vertical microcode
In vertical microcode, each microinstruction is significantly encoded, that is, the bit fields generally pass through intermediate combinatory logic that, in turn, generates the control and sequencing signals for internal CPU elements (ALU, registers, etc.). This is in contrast with horizontal microcode, in which the bit fields either directly produce the control and sequencing signals or are only minimally encoded. Consequently, vertical microcode requires smaller instruction lengths and less storage, but requires more time to decode, resulting in a slower CPU clock.
Some vertical microcode is just the assembly language of a simple conventional computer that is emulating a more complex computer. Some processors, such as DEC Alpha processors and the CMOS microprocessors on later IBM mainframes System/390 and z/Architecture, use machine code, running in a special mode that gives it access to special instructions, special registers, and other hardware resources unavailable to regular machine code, to implement some instructions and other functions, such as page table walks on Alpha processors. This is called PALcode on Alpha processors and millicode on IBM mainframe processors.
Another form of vertical microcode has two fields: Field select Field value
The field select selects which part of the CPU will be controlled by this word of the control store. The field value controls that part of the CPU. With this type of microcode, a designer explicitly chooses to make a slower CPU to save money by reducing the unused bits in the control store; however, the reduced complexity may increase the CPU's clock frequency, which lessens the effect of an increased number of cycles per instruction.
Opcodes
Opcodes are the the instruction part acting on the operands and specifiers of an instruction of prefixed bit length.
Operands
4-bit constant 8-bit constant
Machine code
Machine code, also known as machine language or native code, is the elemental language of computers. It is read by the computer's central processing unit (CPU), is composed of digital binary numbers and looks like a very long sequence of zeros and ones.
Instruction sets
Microinstruction
Each microinstruction in a microprogram provides the bits that control the functional elements that internally compose a CPU.
Microjump
Microprograms
Microprograms consist of series of microinstructions, which control the CPU at a very fundamental level of hardware circuitry. For example, a single typical horizontal microinstruction might specify the following operations:
Connect register 1 to the A side of the ALU Connect register 7 to the B side of the ALU Set the ALU to perform two's-complement addition Set the ALU's carry input to zero Store the result value in register 8 Update the condition codes from the ALU status flags (negative, zero, overflow, and carry) Microjump to a given μPC address for the next microinstruction
To simultaneously control all processor's features in one cycle, the microinstruction is often wider than 50 bits; e.g., 128 bits on a 360/85 with an emulator feature. Microprograms are carefully designed and optimized for the fastest possible execution, as a slow microprogram would result in a slow machine instruction and degraded performance for related application programs that use such instructions.
An I-unit may decode instructions in hardware and determine the microcode address for processing the instruction in parallel with the E-unit.
A microsequencer picks the next word of the control store. A sequencer is mostly a counter, but usually also has some way to jump to a different part of the control store depending on some data, usually data from the instruction register and always some part of the control store. The simplest sequencer is just a register loaded from a few bits of the control store.
A register set is a fast memory containing the data of the central processing unit. It may include registers visible to application programs, such as general-purpose registers and the program counter, and may also include other registers that are not easily accessible to the application programmer. Often the register set is a triple-ported register file; that is, two registers can be read, and a third written at the same time.
An arithmetic and logic unit performs calculations, usually addition, logical negation, a right shift, and logical AND. It often performs other functions, as well.
- CSA computer system architecture
- UTP Universiti Teknologi Petronas
- TLB translation lookaside buffer
- UART universal asynchronous receiver transmitter
- TTL transistor-transistor logic
- IC integrated circuit
- ROM read only memory
- PROM programmable read only memory
- ALU arithmetic logic unit
- CPU central processing unit
- DMA direct memory access
- RAM random access memory
- SRAM static random access memory
- IR instruction register
- MDR memory data register
- PTB page table base
- MSW machine status word
- PC program counter
- MAR memory address register
- MUX multiplexer