Millicode
In computer architecture, millicode is a higher level of microcode used to implement the instruction set of a computer. Millicode runs on top of the microcoded instructions and uses those instructions 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
- Rogers, Bob (Sep–Oct 2012). "The What and Why of zEnterprise Millicode". IBM Systems Magazine.
- Wilhelm Spruth (ed.). "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.