Millicode

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 may require a special processor mode called millimode that provides its own set of registers, and possibly its own special instructions invisible to the user.[1]

The term millicode was introduced to literature by Klingman in 1981,[2] although terms like nanocode had been in use since the early 1970's when describing computer architectures with hierarchical implementations of instructions.[3][4] Various computers have used millicode in their designs, such as the System/390 9672-G4 processor.[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.[5]

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. ^ Klingman, Edwin (February 1981). "Hierarchical Coding of Microcomputers for High-Level Architecture". IEEE Micro. 1 (1): 53–56. doi:10.1109/MM.1981.290826.
  3. ^ Smotherman, Mark. "A Brief History of Microprogramming". Retrieved 16 September 2024.
  4. ^ Nanodata Corporation (March 21, 1973). QM-1 Hardware Level User's Manual (PDF) (2nd ed.). Williamsville, New York. p. 18. Retrieved 16 September 2024.{{cite book}}: CS1 maint: location missing publisher (link)
  5. ^ 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.

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.