Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Простейшая модель компьютера.docx
Скачиваний:
6
Добавлен:
25.09.2019
Размер:
38.1 Кб
Скачать

Машинный цикл:

  • Процессор выставляет число, хранящееся в регистре счётчика команд, на шину адреса, и отдаёт памяти команду чтения

  • Выставленное число является для памяти адресом; память, получив адрес и команду чтения, выставляет содержимое, хранящееся по этому адресу, на шину данных, и сообщает о готовности

  • Процессор получает число с шины данных, интерпретирует его как команду (машинную инструкцию) из своей системы команд и исполняет её

  • Если последняя команда не является командой перехода, процессор увеличивает на единицу (в предположении, что длина каждой команды равна единице) число, хранящееся в счётчике команд; в результате там образуется адрес следующей команды

  • Снова выполняется п. 1

Данный цикл выполняется неизменно и бесконечно, и именно он называется процессом (откуда и произошло название устройства).

Во время процесса процессор считывает последовательность команд, содержащихся в памяти, и исполняет их. Такая последовательность команд называется программой и представляет алгоритм полезной работы процессора.

Скорость перехода от одного этапа цикла к другому определяется тактовым генератором. Тактовый генератор вырабатывает импульсы, служащие ритмом для центрального процессора. Частота тактовых импульсов называется тактовой частотой.

Машинная команда представляет собой код, определяющий операцию вычислительной машины и данные, участвующие в операции. В общем случае команда должна содержать также в явной или неявной форме информацию об адресе, по которому помещается результат операции, и об адресе следующей команды.

Машинная операция – это действия машины по преобразованию информации, выполняемые под воздействием одной команды.

Рисунок 21.1 - Общая структура

Операционная часть – содержит код, который задает вид операции (сложение, умножение, передача и т.д.).

Адресная часть – содержит информацию об адресах операндов и результата операции, а в некоторых случаях и следующей команды.

Все машинные команды можно разделить на группы по видам выполняемых операций:

  • операции пересылки информации внутри компьютера;

  • арифметические операции над информацией;

  • логические операции над информацией;

  • операции над строками (текстовой информацией);

  • операции обращения к внешним устройствам компьютера;

  • операции передачи управления;

  • обслуживающие и вспомогательные операции.

Адресный код (АК) – это информация об адресе операнда, содержащаяся в команде.

Исполнительный адрес (АИ) – это номер ячейки ОП, к которой производится фактическое обращение.

Подразумеваемый операнд. В команде не содержится явных указаний о самом операнде или его адресе. Операнд подразумевается и фактически задается кодом операции команды. Этот метод используется редко, но иногда бывает очень удобен, например, в командах подсчета, когда к содержимому счетчика необходимо добавить фиксированное приращение. Это касается и других операций, связанных с добавлением (вычитанием) константы.

Подразумеваемый адрес. В команде не содержится явных указаний об адресе участвующего в операции операнда или адресе результата операции. Так, например, при выполнении данной операции результат всегда засылается по адресу второго операнда или в другой, заранее определенный, регистр. В простейших микропроцессорах результат всегда помещается в аккумулятор.

Непосредственная адресация. В команде содержится не адрес операнда, а непосредственно сам операнд.

Относительная адресация, или базирование. Исполнительный адрес (АИ) определяется как сумма адресного кода команды (АК) и некоторого числа АБ, называемого базовым адресом. АИ = АБ + АК.

Регистровая адресация. Это частный случай так называемой укороченной адресации, суть которой сводится к тому, что используется только небольшая группа фиксированных ячеек памяти с начальными (короткими) адресами (0000001, 0000010, 0000011 и т.д.). Такая адресация используется только совместно с другими типами адресации.

Косвенная адресация. Адресный код (АК) команды указывает адрес ячейки ОП, в которой находится исполнительный адрес (АИ) операнда или команды.

Автоинкрементная адресация – сначала (при каждом обращении) содержимое регистра используется как адрес операнда, а затем получает приращение, равное числу байт в элементе массива, т.е. формируется адрес следующего элемента.

Автодекрементная адресация – сначала содержимое соответствующего регистра уменьшается на число, равное числу байт в элементе массива, а затем используется как адрес операнда.

Стековая адресация. При рассмотрении устройств памяти отмечалось, что основной принцип работы стекового ЗУ соответствует правилу: "последний пришел – первый ушел" (имеется в виду стек LIFO). Это правило реализуется автоматически. Поэтому при операциях со стеком возможно безадресное задание операнда – команда не содержит адреса ячейки стека, а содержит только адрес (или он подразумевается) регистра или ячейки ОП, откуда слово загружается в стек или куда выгружается из стека.

При выполнении каждой команды ЭВМ проделывает определенные стандартные действия, описанные ниже.

1. Согласно содержимому счетчика адреса команд, считывается очередная команда программы , код которой обычно заносится на хранение в специальный регистр УУ, который носит название регистра команд.

2. Счетчик команд автоматически изменяется так, чтобы в нем содержался адрес следующей команды. В простейшем случае для этой цели достаточно к текущему значению счетчика прибавить некоторую константу, определяющуюся длиной команды.

3. Считанная в регистр команд операция расшифровывается, извлекаются необходимые данные и над ними выполняются требуемые действия. Затем во всех случаях, за исключением команды останова, все описанные действия циклически повторяются.

После выборки команды останова ЭВМ прекращает обработку программы. Для выхода из этого состояния требуется либо запрос от внешних устройств, либо перезапуск машины.

Дополнительно:

Недостатки и современные перспективы архитектуры фон Неймана

Архитектура фон Неймана неоднократно подвергалась критике (и, учитывая это, вызывает искреннее удивление ее живучесть, тогда как подавляющее большинство поздних альтернатив является теперь или музейными экспонатами, или прототипами, и вообще никак не могут соревноваться с ней в популярности).

Можно выделить два основных вектора такой критики:

«Семантический разрыв»

Хотя это не касается непосредственно принципов фон-Неймана, но часто апеллируют именно к «классической архитектуры фон-Неймана» в критике ее достаточно примитивного и низкоуровневого набора команд, который, по мнению критиков, абсолютно не соответствует современному состоянию дел в индустрии разработки программного обеспечения, в частности в наличии языков высокого уровня, которые намного повышают производительность труда программиста за счет предложения ему более высокоуровневых абстракций, и нужно обычно до нескольких сот машинных команд вместо одной команды языка высокого уровня. Этот дисбаланс в принципе успешно решается на программном уровне с помощью компиляторов , но в 60-70 годы XX века было довольно много попыток реализовать машинные языки высокого уровня аппаратно (см. Архитектура с развитыми средствами интерпретации ). Среди отечественных разработок в этом направлении следует выделить ЭВМ серии «МИР» , а среди серьезных критиков системы фон-Неймана, в том числе и за низкий семантический уровень команд, академика В. М. Глушкова . Определенной степени, попыткой «повысить семантический уровень» можно считать и CISC -архитектуры системы команд, хотя как доказало время, перспективным оказался прямо обратное направление максимальной «примитивизации» набора команд, реализованный в RISC -архитектурах.