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

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


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



Модели (software):

"Е14" (parallel !!!)

Модели (hardware):






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

"ANT-8": краткое описание

Модель "ANT-8" создана для изучения вводных курсов Computer Science, таких как "Архитектура ЭВМ" и "Программирование". На ее базе можно также продемонстрировать некоторые идеи о представлении данных в памяти ЭВМ, ассемблере и принципах компиляции с языков высокого уровня.

Архитектура "ANT" полностью соответствует RISC принципам: инструкции фиксированной длины (16 бит) с кодами операции и операндов-регистров на фиксированных позициях (что упрощает их декодирование), выделенные инструкции для чтения/записи в память. Подавляющее большинство команд строится по схеме:

КОП
4 бита
рез
4 бита
оп1
4 бита
оп2
4 бита
где КОП - код операции, а рез = оп1 <операция> оп2.

Для обмена с памятью с помощью инструкций ld1 и st1 (load и store 1 байт) используется особый формат команд, в котором вместо последнего операнда указывается 4-битная константа. Эта константа, складываясь с содержимым регистра, где хранится адрес, образует окончательный адрес ОЗУ. В частном случае константу можно положить равной 0, тогда получится "чистый" метод косвенной адресации через регистр.

"ANT-8" содержит 16 регистров, пронумерованных в шестнадцатеричной системе от 0 до F. Регистры r2 - rF являются регистрами общего назначения, в регистре r0 всегда хранится ноль, а r1 сохраняет некоторые "особенности" результата операции (например, факт переполнения или адрес возврата - подробности см. в таблице команд). Забавно, что в документации разрядность регистров нигде специально не оговаривается, хотя из анализа некоторых команд очевидно, что она составляет 8 бит. Это автоматически ограничивает адресное пространство 256 байтами (у меня есть ощущение, что авторы сознательно оставляли себе возможность для увеличения разрядности регистров и, следовательно, объема памяти и разрядности чисел). В первоначальной версии, описанной в статье 1999 года, "ANT-8" имел 2 блока памяти по 256 байт - отдельно для программы и отдельно для команд (грех в Гарварде не использовать гарвардскую архитектуру). Позднее авторы перешли к более стандартному решению - 256 байт общей памяти для команд и данных (господствующая фон-неймановская или принстонская архитектура).

Вопрос о разрядности в архитектуре "ANT-8" не праздный, поскольку инструкции имеют длину 16 бит, а данные - 8. В документации указано, что в разделяемой (общей для команд и данных) памяти адрес инструкции должен быть всегда четным (необходимо т.наз. выравнивание).

8-разрядные двоичные числа бывают положительными и отрицательными и хранятся в памяти в дополнительном коде. Очевидно, что их диапазон от -128 до +127.

В "ANT-8" 16 инструкций.

"ANT-8" циклически повторяет следующий алгоритм выполнения инструкций (обозначение PC означает Program Counter, т.е. программный счетчик).

  1. Выбрать очередную инструкцию (из двух последовательных байт) по адресу, взятому из PC.
  2. PC := PC + 2.
  3. Выполнить считанную инструкцию:
    • извлечь исходные значения из регистров (если это требуется согласно выполняемой инструкции!);
    • выполнить операцию;
    • поместить результат в регистр (если требуется);
    • установить значение регистра r1 (если требуется);
    • изменить содержимое PC (если требуется - в командах переходов beq, bgt и jmp).


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