Millicode

Higher level of microcode
Program execution
General concepts
  • Code
  • Translation
    • Compiler
      • Compile time
    • Optimizing compiler
  • Intermediate representation (IR)
  • Execution
    • Runtime system
      • Runtime
    • Executable
    • Interpreter
    • Virtual machine
Types of code
  • Source code
  • Object code
  • Bytecode
  • Machine code
  • Microcode
Compilation strategies
Notable runtimes
Notable compilers & toolchains
  • v
  • t
  • e

In computer architecture, millicode is a higher level of microcode used to implement part of the instruction set of a computer. The instruction set for millicode is a subset of the machine's native instruction set, omitting those instructions that are implemented using millicode, plus instructions that provide access to hardware not accessible using the native instruction set. Millicode routines are used to implement more complex instructions visible to the user of the system. Implementation of millicode requires a special processor mode called millimode that provides its own set of registers, and possibly its own special instructions invisible to the user.[1]

IBM invented both the concept and the term millicode for the System/390 9672-G4 processor in 1997.[1] The following are cited as advantages of millicode:[1]

  • More complex instructions can easily be constructed from several millicode instructions.
  • Construction of a compatible line of computer models with different performance is simplified.
  • Millicode instructions can bypass CPU cache to improve performance.
  • Instructions can update multiple storage locations without concern for being interrupted.
  • Millicode can execute instructions at a higher privilege level without involving the operating system.
  • Millicode can provide a complex instruction as if it were a subroutine, making user code smaller.

The "i370" code for the "Capitol" chipset used in some ES/9370 models was similar to millicode, in that it was written as a combination of System/370 instructions and code that had access to special hardware features.[2]

See also

References

  1. ^ a b c Rogers, Bob (Sep–Oct 2012). "The What and Why of zEnterprise Millicode". IBM Systems Magazine. Archived from the original on October 9, 2012.
  2. ^ Wilhelm Spruth, ed. (6 December 2012). "7.2 High Level Microprogramming in I370". The Design of a Microprocessor. Springer-Verlag. ISBN 978-3-642-74918-6.

External links

  • Rogers, Robert. "The What and Why of System z Millicode" (PDF). SHARE, Summer 2012. Retrieved January 25, 2013.
  • v
  • t
  • e
Processor technologies
Models
Architecture
Instruction set
architectures
Types
Instruction
sets
Execution
Instruction pipelining
Hazards
Out-of-order
Speculative
Parallelism
Level
Multithreading
Flynn's taxonomy
Processor
performance
Types
By application
Systems
on chip
Hardware
accelerators
Word size
Core count
Components
Functional
units
Logic
Registers
Control unit
Datapath
Circuitry
Power
management
Related