1909
Комментарий:
|
3411
|
Удаления помечены так. | Добавления помечены так. |
Строка 7: | Строка 7: |
В машине ''может'' быть (/!\ TODO: выкинуть действительно лишнее): | == Что можно сконструировать == В машине ''может'' быть ( /!\ TODO: выкинуть действительно лишнее, эшелонировать): |
Строка 34: | Строка 35: |
* ПЗУ == Реализация == Никакого GUI, всё программируется (например, на Python) с помощью API конструктора. Причём само объектное планирование API воссоздаёт архитектуру ЭВМ, в этом фишка! Например, могут быть готовые модули, соответствующие подсистемам * Память * Побайтовая (для команд переменной длины и произвольных данных) * Пословная (с указанием структуры слова, например, трёхадресное), для машин с данными отдельно, командами отдельно * Пословная с несколькими вариантами трактовки слова * Регистры (отличаются тем, что их значение может измениться, даже если в команде они явно не заданы) * Стек * АЛУ * Сопроцессор * Внешние устройства * Шина * ПЗУ * терминал Получится что-то вроде такого '''Computer.py''': {{{#!python import CPU import Memory import Terminal import BIOS import FPU … }}} А вот |
Конструктор модельных машин
В курсе «Архитектура ЭВМ» есть такая тема: «модельные машины». Учебная трёхадресная машина на (неофициальном) сайте практикума АЯ.
А на самом деле нужен конструктор, чтобы любые машины проектировать.
Что можно сконструировать
В машине может быть ( TODO: выкинуть действительно лишнее, эшелонировать):
- Память:
- Память с абсолютными адресами
- Аппаратный стек с адресацией относительно вершины
- Регистры:
- Регистры общего назначения
- …в т. ч. привязанные к ABI (акккумулятор и прочее)
- Вычисляемые регистры (SP, PC, Flags)
- Регистры общего назначения
- Инструкции:
- Фиксированной длины с заданным количеством адресов
- Переменной длины
- Автоинкремент/автодекремент
- Обращение к сопроцессору
- Обращение к внешнему устройству
- Прерывания
- Способы адресации:
- прямая абсолютная
- прямая относительная
- косвенная
- двойная косвенная
- Сопроцессор
- ABI по хранению FP
- Внешние устройства
- Печать
- Ввод
- «Медленное» устройство для использования аппаратных прерываний"
- «Быстрое» устройство для использования ПДП
- ПЗУ
Реализация
Никакого GUI, всё программируется (например, на Python) с помощью API конструктора. Причём само объектное планирование API воссоздаёт архитектуру ЭВМ, в этом фишка!
Например, могут быть готовые модули, соответствующие подсистемам
- Память
- Побайтовая (для команд переменной длины и произвольных данных)
- Пословная (с указанием структуры слова, например, трёхадресное), для машин с данными отдельно, командами отдельно
- Пословная с несколькими вариантами трактовки слова
- Регистры (отличаются тем, что их значение может измениться, даже если в команде они явно не заданы)
- Стек
- АЛУ
- Сопроцессор
- Внешние устройства
- Шина
- ПЗУ
- терминал
- Шина
Получится что-то вроде такого Computer.py:
А вот