Данному образовательному сайту пришлось несколько раз менять свое имя. С 2011 года доступ к нему обеспечивается по URL
http://educomp.runnet.ru

emc.km.ru (2001-2007) ==> educomp.org.ru (2007-2011) ==> educomp.runnet.ru (2011-...)
Более подробно об истории сайта можно прочитать здесь.


Учебные модели компьютера



Модели (software):

"Е14" (parallel !!!)

Модели (hardware):






Награды сайта
Награды сайта

MMIX – учебный RISC-процессор нового тысячелетия от Дональда Кнута

Наверное, нет человека, интересующегося компьютерными вычислениями, которому был бы неизвестен фундаментальный многотомный труд Дональда Кнута «Искусство программирования на ЭВМ». В нем проведено всестороннее исследование практически всех наиболее важных вычислительных алгоритмов. В качестве примера достаточно упомянуть, что в одном из разделов книги обсуждается влияние временных характеристик движения магнитной ленты на эффективность сортировки больших массивов информации. Такой детальный подход к исследованию вычислительных задач невозможен без анализа времени исполнения машинных операций, а значит, без рассмотрения конкретной системы команд ЭВМ. Д. Кнут в своей книге предложил условную вычислительную машину собственной конструкции, которую назвал MIX1. MIX является виртуальной машиной, но она очень похожа на наиболее распространенные ЭВМ того времени. С лукавым юмором Кнут заявляет, что MIX есть римская запись числа 1009, получающегося как средний номер моделей всех машин, которые он проанализировал при создании своей модели [1]:

(360+650+709+7070+U3+SS80+1107+1604+G20+B220+S2000+920+601+H800+PDP4+II)/16

Несмотря на то, что модель MIX содержит минимальное количество технических деталей, за четыре десятилетия она все-таки устарела. И вот недавно Кнут решил ее модернизировать и заменить на более современную, которую он назвал MMIX2. Здесь снова есть столь любимый Кнутом шутливый подтекст: если название считать состоящим из римских цифр, то из них образуется число 2009, которое автор предполагает годом выпуска окончательной редакции своего многотомника.

Возможно, у вас на языке вертится недоуменный вопрос: а надо ли на современном этапе развития вычислительной техники знать внутренние основы ее работы. Приведем подробный ответ самого Дональда Кнута (цитируется по тексту официальной домашней страницы MMIX [2]; перевод автора статьи):

«Многие читатели без сомнения думают: "Почему Кнут заменил MIX другой машиной вместо того, чтобы просто перейти к языку программирования высокого уровня? Едва ли кто-то использует сейчас ассемблер."

Эти люди имеют право на свое мнение, и им не стоит утруждать себя чтением частей моей книги, связанных с машинным языком. Тем не менее, причины применения машинного языка, которые я приводил в предисловии к первому тому, написанному в начале 60-х, остаются в силе и сегодня:

  • Одна из принципиальных целей моей книги состоит в том, чтобы показать, как конструкции высокого уровня на самом деле реализуются в машинах, а не просто показать, как они применяются. Я объясняю взаимодействие соподпрограмм, древовидные структуры, генерацию случайных чисел, арифметику повышенной точности, перевод из одной системы счисления в другую, уплотнение информации, комбинаторный поиск, рекурсию и т.д. с учетом мельчайших деталей.

  • Программы, которые требуются в моей книге, как правило, такие короткие, что их главные моменты могут быть легко осознаны.

  • Людям, которые действительно интересуются компьютерами, следует знать по крайней мере некоторые идеи о том, что представляет собой используемое ими оборудование. В противном случае программы, которые они напишут, будут достаточно причудливыми.

  • Машинный язык необходим, во всяком случае, как выходной для многих программ, которые я описываю.

  • Представление основных методов таких, как, например, алгоритмы сортировки и поиска, на машинном языке дает возможность провести всестороннее исследование влияния на них размера кэша и ОЗУ, а также других аппаратных характеристик (быстродействие памяти, конвейеризация, multiple issue, буферы с записью lookaside, размер блоков кэша и т.д.), сравнивая различные схемы.

  • Кроме того, если бы я действительно использовал язык высокого уровня, какой это был бы язык? В 60-х я, вероятно, выбрал бы Algol-W3; затем в 70-х мне пришлось бы переписать мои книги, используя Паскаль; в 80-х я непременно изменил бы все на C; в 90-х я был бы вынужден переключиться на C++ и, вероятно, на Яву. В 2000-х еще один язык, несомненно, будет de rigueur. Я не могу позволить себе тратить время на переписывание моих книг потому, что языки входят в моду и выходят из моды; языки не являются предметом моих книг, их предметом скорее является то, что вы можете делать на своем любимом языке. Мои книги фокусируются на "вечных истинах".

Поэтому я буду продолжать использовать в TAOCP4 английский как язык высокого уровня, и буду продолжать использовать язык низкого уровня, чтобы показывать, как машина на самом деле считает. Читателям, которые хотят видеть только алгоритмы, уже готовые к употреблению и написанные на наиболее часто используемом языке, следует покупать книги других людей. »

Да простят меня читатели за длинную цитату, но она очень хорошо описывает суть дела.

Итак, MMIX – это учебная модель компьютера, созданная Д.Кнутом для изучения эффективности работы различных численных методов. Тем не менее, это не единственно возможное ее применение. Благодаря хорошему соответствию между данной моделью и реальными процессорами (Кнут упоминает, что при разработке он во многом ориентировался на процессоры AMD), MMIX может быть использован для целей обучения, например, для знакомства с основными принципами устройства и функционирования современных компьютеров. Именно поэтому автор считает публикацию данной статьи в педагогическом, а не в техническом издании достаточно актуальной. Возможностям использования модели в учебном процессе посвящен специальный раздел.

Статья имеет еще одну цель: дать некоторую доступную информацию на русском языке об интересной и масштабной разработке Кнута. Дело в том, что пока описание MMIX существует лишь в виде обновляемых авторских материалов, публикуемых на Интернет-сайте Дональда Кнута [2], что, к сожалению, для многих непригодно по причине языковых трудностей. Кроме того, Кнут не принадлежит к числу популяризаторов науки – скорее это серьезный профессор, излагающий свои знания академически строго и сжато в предположении некоторой предварительной подготовки читателей. Напротив, автор данной статьи надеется, что она будет понятна любому, кто интересуется работой компьютера: от школьника до преподавателя вуза.


Основные характеристики MMIX

Архитектура MMIX

Форматы команд MMIX

Форматы данных

Наиболее важные команды MMIX

Примеры простых программ

Чем может быть полезен MMIX нам?

Ссылки

  1. Кнут Д. Искусство программирования на ЭВМ. Том 1. – М.: Мир, 1976. – 736 с.
  2. Официальная страница MMIX (на английском языке)
  3. Бруснецов Н.П. Микрокомпьютеры. – М.: Наука, 1985. – 208 с.
  4. Андреева Е., Фалина И. Информатика: Системы счисления и компьютерная арифметика. – М.: Лаборатория Базовых Знаний, 1999. – 256 с.
  5. MMIX – RISC-компьютер для нового тысячелетия: аудиозапись интервью с Дональдом Кнутом (на английском языке)
  6. Обязательный минимум содержания среднего (полного) общего образования по информатике. /В сб. Программно-методические материалы: Информатика. 7-11 кл. /Сост. Л.Е.Самовольнова . – М.: Дрофа, 2001. – с.6-18
  7. Боеттчер А. Windows-версия имитатора MMIX с видеопамятью (на английском языке)
  8. Основы информатики и вычислительной техники: Проб. учеб. пособие для сред. учеб. заведений. В 2-х ч. Ч.2/ А.П.Ершов, В.М.Монахов, А.А.Кузнецов и др.; Под ред. А.П.Ершова, В.М.Монахова. - М.: Просвещение, 1986. - 143 с.
  9. Основы информатики и вычислительной техники: Проб. учеб. пособие для 10-11 кл. сред. шк./ В.А.Каймин, А.Г.Щеголев, Е.А.Ерохина, Д.П.Федюшкин. - М.: Просвещение, 1989. - 272 с.
  10. Кушниренко А.Г. и др. Информатика. 7-9 кл.: Учеб. для общеобразоват. учеб. заведений / А.Г. Кушниренко, Г.В. Лебедев, Я.Н. Зайдельман. – М.: Дрофа, 2000. – 336 с.
  11. Кузнецов А.А., Угринович Н.Д., Цветкова М.С. Материалы для подготовки и проведения итоговой аттестации выпускников IX классов общеобразовательных учреждений в 2001/2002 учебном году. – Информатика и образование, 2002, N 1, с.10-12
  12. Еремин Е.А. Компилятор? Это очень просто. Компьютер УКНЦ. М.: Компьютика, 1995, N 3, c.25-33.
  13. Еремин Е.А. Компилятор? Это довольно просто! Информатика, 2001, N 40, с.7-17; N 43, с.7-14; N 45 с.21-29; N 46, с.19-25; N 47, с.8-10
  14. Учебные модели компьютера
  15. Проект rEd-MMI

Дополнительный материал

  1. Игорь Гордиенко. Путь без конца
  2. Андрей Зубинский. x86 – у последней черты...


1 mix переводится с английского как "смесь"
2 сам автор рекомендует читать это сокращение как "эм-микс", причем первая буква М "скромно" обозначает millennium – т.е. новое тысячелетие
3 версия Алгола, реализованная Виртом
4 первые буквы слов в английском названии книги "Искусство программирования на ЭВМ"


© Е.А.Еремин, 2002
Статья:
Еремин Е.А. MMIX – учебный RISC-процессор нового тысячелетия от Дональда Кнута. - Газета "Информатика", 2002, N 40, с.18-27


Автор сайта - Евгений Александрович Еремин (Пермский государственный педагогический университет). e_eremin@yahoo.com