FACTOID # 71: 72% of people in Mali earn less than $1 per day.
 
 Home   Encyclopedia   Statistics   Countries A-Z   Flags   Maps   Education   Forum   FAQ   About 
 
WHAT'S NEW
RELATED ARTICLES
People who viewed "MMIX" also viewed:
RECENT ARTICLES
More Recent Articles »
 

FACTS & STATISTICS    Simple view

  1. Select countries to view: (hold down Control key and click to select several)

     

     

    Compare:

     

     

  1. Select fact or statistic: (* = graphable)

     

     

     

  2. (OPTIONAL) Compare to statistic: (both need to be graphable)

     

     

     

  3. View result as:

     

       
(OR) SEARCH ALL encyclopedia, stats & forums:   

Encyclopedia > MMIX

MMIX is a 64-bit RISC virtual machine designed by Donald Knuth, with significant contributions by John Hennessy (who designed the MIPS chip) and Dick Sites (who was the architect of the Alpha chip). Knuth will be using MMIX in all future editions of his epic masterpiece The Art of Computer Programming (TAoCP) to illustrate machine-level aspects of programming, especially in relation to the analysis of algorithms. It is pronounced 'emmix. In computing, a 64-bit component is one in which data are processed or stored in 64-bit units (words). ... Reduced Instruction Set Computing (RISC), is a microprocessor CPU design philosophy that favors a smaller and simpler set of instructions that all take about the same amount of time to execute. ... In general terms, a virtual machine in computer science is software that creates an environment between the computer platform and the end user in which the end user can operate software. ... Donald Knuth Donald Ervin Knuth (born January 10, 1938) (Chinese name: 高德纳, pinyin: Gāo Dénà) is a renowned computer scientist and professor emeritus at Stanford University. ... John L. Hennessy is the founder of MIPS Computer Systems Inc. ... A MIPS R4400 microprocessor made by Toshiba MIPS, for Microprocessor without interlocked pipeline stages, is a RISC microprocessor architecture developed by MIPS Computer Systems Inc. ... Alpha by itself may refer to: The first letter of the Greek alphabet, Α α, which also has some cultural meanings; see alpha (letter). ... The Art of Computer Programming is a comprehensive monograph written by Donald Knuth which covers all kinds of programming algorithms. ... Computer programming (often simply programming) is the craft of implementing one or more interrelated abstract algorithms using a particular programming language to produce a concrete computer program. ... To analyze an algorithm is to determine the amount of resources (such as time and storage) necessary to execute it. ...


MMIX's predecessor, MIX, is used in current and earlier editions of TAoCP. MMIX is a completely new design, conforming to modern ideas about computer design, and is to replace the now thoroughly archaic MIX. Audio_mixing, remix, mix tape Mix Cascade: Mix Server are proxies which can hide your identity during Internet-sessions Dr. Erich Mix, mayor of Wiesbaden, 1954 - 1960 ...

Contents


Architecture

MMIX is a binary computer with a 64-bit virtual address space and 32-bit instructions which uses the big-endian convention. In mathematics and computer science, the binary (base_two) numeral system is a representation for numbers that uses only zeroes and ones as digits. ... The tower of a personal computer (specifically a Power Mac G5). ... An instruction is a form of information which is communicated in order to explain how an action, behavior, method, or task is to be begun, completed, conducted, or executed. ... When integers or any other data are represented with multiple bytes, there is no unique way of ordering of those bytes in memory or in a transmission over some medium, and so the order is subject to arbitrary convention. ...


Instructions

All instructions have an associated mnemonic. For example instruction 32 is associated to ADD. Most instructions have the symbolic form "OP, X, Y, Z", where OP specifies the sort of instruction, X specifies the register used to store the result of the instruction and the rest specify the operands of the instruction. Each of these fields is eight bits wide. For example the instruction "ADD $0, $1, 3", will add the contents of register 1 and the immediate value 3 and store the result in register 0. MMIX programs are typically constructed using the MMIXAL assembly language. For an example see the Hello world page. A hello world program is a computer program that prints out Hello, world! on a display device. ...


Registers

There are 256 general purpose architectural registers in an MMIX chip, designated by $0 through $255 and 32 special physical architectural registers. They are implemented by 256-32 global physical registers and 512 local physical registers. If X is a number from 0 to 255 inclusive, then special registers rL and rG determine whether register $X refers to a local or a global physical register.


Local Register Stack

The local register stack provides each subroutine with its own rL local registers, designated by $0 through $(rL-1). Whenever a subroutine is called, a number of local registers is pushed down the stack. The arguments of the called subroutine are left in the remaining local registers. When a subroutine finishes it pops the previously pushed registers. Because there are only 512 local physical registers, it may be necessary to store a part of the stack in memory. This is implemented with the special registers rO and rS which record which part of the local register stack is in memory and which part is still in local physical registers. The register stack provides for fast subroutine linkage.


Special Registers

The 32 special physical architectural registers are:

  1. rB, the bootstrap register (trip)
    When tripping, rB <- $255 and $255 <- rJ. Thus saving rJ in a general register.
  2. rD, the dividend register
    Unsigned integer divide uses this as the left half of the 128-bit input that is to be divided by the other operand.
  3. rE, the epsilon register
    Used for floating comparisons with respect to epsilon.
  4. rH, the himult register
    Used to store the left half of the 128-bit result of unsigned integer multiplication.
  5. rJ, the return-jump register
    Used to save the address of the next instruction by PUSHes and by POP to return from a PUSH.
  6. rM, the multiplex mask register
    Used by the multiplex instruction.
  7. rR, the remainder register
    Is set to the remainder of integer division.
  8. rBB, the bootstrap register (trap)
    When trapping, rBB <- $255 and $255 <- rJ. Thus saving rJ in a general register
  9. rC, the cycle counter
    Incremented every cycle.
  10. rN, the serial number
    A constant identifying this particular MMIX processor.
  11. rO, the register stack offset
    Used to implement the register stack.
  12. rS, the register stack pointer
    Used to implement the register stack.
  13. rI, the interval counter
    Decremented every cycle. Causes an interrupt when zero.
  14. rT, the trap address register
    Used to store the address of the trip vector.
  15. rTT, the dynamic trap address register
    Used to store the address of the trap vector.
  16. rK, the interrupt mask register
    Used to enable and disable specific interrupts.
  17. rQ, the interrupt request register
    Used to record interrupts as they occur.
  18. rU, the usage counter
    Used to keep a count of executed instructions.
  19. rV, the virtual translation register
    Used to translate virtual addresses to physical addresses. Contains the size and number of segments, the root location of the page table and the address space number.
  20. rG, the global threshold register
    All general registers references with a number greater or equal to rG refer to global registers.
  21. rL, the local threshold register
    All general registers references with a number smaller than rL refer to local registers.
  22. rA, the arithmetic status register
    Used to record, enable and disable arithmetic exception like overflow and divide by zero.
  23. rF, the failure location register
    Used to store the address of the instruction that caused a failure.
  24. rP, the prediction register
    Used by conditional swap (CSWAP).
  25. rW, the where-interrupted register (trip)
    Used, when tripping, to store the address of the instruction after the one that was interrupted.
  26. rX, the execution register (trip)
    Used, when tripping, to store the instruction that was interrupted.
  27. rY, the Y operand (trip)
    Used, when tripping, to store the Y operand of the interrupted instruction.
  28. rZ, the Z operand (trip)
    Used, when tripping, to store the Z operand of the interrupted instruction.
  29. rWW, the where-interrupted register (trap)
    Used, when trapping, to store the address of the instruction after the one that was interrupted.
  30. rXX, the execution register (trap)
    Used, when trapping, to store the instruction that was interrupted.
  31. rYY, the Y operand (trap)
    Used, when trapping, to store the Y operand of the interrupted instruction.
  32. rZZ, the Z operand (trap)
    Used, when trapping, to store the Z operand of the interrupted instruction.

References

  • Donald E. Knuth (1999). MMIXware: A RISC Computer for the Third Millennium. Heidelberg: Springer-Verlag. ISBN 3-540-66938-8 (errata)

External links

  • Donald Knuth's MMIX page — A brief introduction to MMIX, and Knuth's reasons for using a hypothetical assembly language in TAoCP.
  • Donald Knuth's MMIX news page — A simulator written in CWEB, a programmer's manual, and example programs.

  Results from FactBites:
 
MMIX - Wikipedia (671 words)
MMIX ist ein Modellcomputer, der einen 64-Bit-RISC-Prozessor simuliert.
Insbesondere auf dem Gebiet der Algorithmenentwicklung und der Effizienzmessung von Algorithmen ist der MMIX von großem Nutzen.
MMIX ist ein Binärcomputer mit einem 64-Bit großen virtuellem Adressraum und 32-Bit Befehlen, welche die big-endian Konvention benutzen.
MMIX - Wikipedia, the free encyclopedia (812 words)
MMIX is a 64-bit RISC virtual machine designed by Donald Knuth, with significant contributions by John L. Hennessy (who designed the MIPS chip) and Dick Sites (who was the architect of the Alpha chip).
MMIX is a completely new design, conforming to modern ideas about computer design, and is to replace the now thoroughly archaic MIX.
MMIX is a binary computer with a 64-bit virtual address space and 32-bit instructions which uses the big-endian convention.
  More results at FactBites »


 

COMMENTARY     


Share your thoughts, questions and commentary here
Your name
Your comments
Please enter the 5-letter protection code

Want to know more?
Search encyclopedia, statistics and forums:

 


Lesson Plans | Student Area | Student FAQ | Reviews | Press Releases |  Feeds | Contact
The Wikipedia article included on this page is licensed under the GFDL.
Images may be subject to relevant owners' copyright.
All other elements are (c) copyright NationMaster.com 2003-5. All Rights Reserved.
Usage implies agreement with terms.