I've "passed the baton" to a new generation of talented software wizards, and MMIX 's future is now in their capable hands. See the MMIX home pages for further information. Most of the early developments took place in ; click here if you're interested in such historical stuff. Most interesting, perhaps, are three videos of lectures given during that year:.
|Published (Last):||9 April 2007|
|PDF File Size:||1.9 Mb|
|ePub File Size:||2.36 Mb|
|Price:||Free* [*Free Regsitration Required]|
Thirty years have passed since the MIX computer was designed, and computer architecture has been converging during those years towards a rather different style of machine. Therefore it is time to replace MIX with a new computer that contains even less saturated fat than its predecessor. Exercise 1. But MixMaster itself is hopelessly obsolete; although it allows for several gigabytes of memory, we can't even use it with ASCII code to get lowercase letters.
And ouch, the standard subroutine calling convention of MIX is irrevocably based on self-modifying instructions! Decimal arithmetic and self-modifying code were popular in , but they sure have disappeared quickly as machines have gotten bigger and faster. A completely new design is called for, based on the principles of RISC architecture as expounded for example in Computer Architecture by Hennessy and Patterson.
For the next ten years or so, I plan to be working on Volume 4 and issuing it in fascicles of about pages each; I will also be putting out a few fascicles of updates to Vols. On this webpage I will mention only the bare bones of the design, so that people can decide if they want to dig deeper.
MMIX is a machine that operates primarily on bit words. It has general-purpose bit registers that each can hold either fixed-point or floating-point numbers. The designers of important real-world processor chips e. So I'm excited about the prospects. The original MIX computer ran fine without an operating system. You could bootstrap it with punched cards or paper tape and do everything yourself.
But nowadays such power is no longer in the hands of ordinary users. Life is too short. It would be wonderful if some expert in operating system design became inspired to write a book that explains exactly how to construct a nice, clean NNIX kernel for an MMIX chip.
Hardly anybody uses assemblers these days. Such people are entitled to their opinions, and they need not bother reading the machine-language parts of my books. But the reasons for machine language that I gave in the preface to Volume 1, written in the early s, remain valid today:.
Moreover, if I did use a high-level language, what language should it be? In the s, yet another language will no doubt be de rigueur. I cannot afford the time to rewrite my books as languages go in and out of fashion; languages aren't the point of my books, the point is rather what you can do in your favorite language. My books focus on timeless truths. Therefore I will continue to use English as the high-level language in TAOCP, and I will continue to use a low-level language to indicate how machines actually compute.
Readers who only want to see algorithms that are already packaged in a plug-in way, using a trendy language, should buy other people's books. So I need not dwell on arcane, fiddly little details that distract from the main points.
The current target date for the ultimate volumes is the year , so there is plenty of time to do the conversion. But I think it will be an instructive undertaking if different groups of students from around the world try to do the necessary translations first, perhaps in friendly competitions, long before I get into the act. The video recording of that lecture, once archived by Dr Dobbs Journal, seems to have disappeared.
But the following audio file does survive thanks to Udo Wermuth :.
Subscribe to RSS
MMIX Home Page
Knuth is writing a grand monography The Art of Computer Programming , and presents example subroutines and programs in this architecture. MMIX consists of a CPU architecture and instruction set, a simple but complete operating system interface, an executable file format, and an assembly language. The CPU is specified enough that it would be possible to use for operating system programming, but there is no hardware-level specification of the motherboard and peripherials. The operating system interface NNIX tells how a program is started, how it can use virtual memory, and issue system calls to open, read and write files.
During the s I spent considerable time designing a computer that would be representative of modern machines, yet easy to learn. Several of the leading experts in the field gave me considerable help with the design. In I completed the preliminary software to support basic MMIX programming and the simulation of many versions of the architecture. During the subsequent twelve years, Version 1 is permanently frozen, and "bug-free by definition.