§32. Принципы устройства компьютеров | Выполнение программы (курс pol 136 ч.)

Планирование уроков на учебный год (по учебнику К.Ю. Полякова, Е.А. Еремина, полный углубленный курс, 4 часа в неделю)


Уроки 39 - 40
Принципы устройства компьютеров
§32. Принципы устройства компьютеров. §33. Магистрально-модульная организация компьютера



Содержание урока

§32. Принципы устройства компьютеров

Введение

Общие принципы

Принципы организации памяти

Выполнение программы

Что называют архитектурой

Вопросы и задания

Задачи

§33. Магистрально-модульная организация компьютера

§32. Принципы устройства компьютеров


Выполнение программы


Принцип хранимой программы. Первые ЭВМ программировались путём установки перемычек на специальных панелях (рис. 5.9), так что процесс подготовки к решению задачи мог растянуться на несколько дней. Такое положение дел никого не устраивало, и в фон-неймановской архитектуре было предложено представлять команды в виде двоичного кода. Код программы, записанный заранее1 на перфокарты или магнитную ленту, можно было ввести в машину достаточно быстро.


1 До появления персональных компьютеров для этого использовались специальные устройства подготовки данных. Такая схема ускоряла процесс ввода и исключала простои ЭВМ, связанные с длительным набором программ.



Рис. 5.9

Рис. 5.9. Фрагмент коммутационной панели устройства IBM-557;
требуемая операция получается соединением (коммутацией) соответствующих отверстий

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


2 Известна также так называемая гарвардская архитектура, в которой программы и данные хранятся в разных областях памяти. Несмотря на повышение надёжности, она не получила широкого распространения.



Код программы может сохраняться во внешней памяти (например, на дисках) и затем загружаться в оперативную память для повторных вычислений. Благодаря простоте замены программ, ЭВМ стали универсальными устройствами, способными решать самые разнообразные задачи в произвольном порядке и даже одновременно.

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

Важным элементом устройства управления в машине фоннеймановской архитектуры является специальный регистр — счётчик адреса команд3. В нём в любой момент хранится адрес команды программы, которая будет выполнена следующей.


3 В различных процессорах этот регистр может называться по-разному: например, в семействе Intel он обозначается IP — Instruction Pointer (указатель на инструкцию).



Используя значение из счётчика, процессор считывает из памяти очередную команду программы, расшифровывает её и выполняет. Затем те же действия повторяются для следующей команды и т. д. Процессор выполняет команды по следующему алгоритму (его часто называют основным алгоритмом работы процессора):

1) из ячейки памяти, адрес которой записан в счётчике адреса команд, выбирается очередная команда программы; на время выполнения она сохраняется в специальном регистре команд;
2) значение счётчика адреса команд увеличивается так, чтобы он указывал на следующую команду;
3) выбранная команда выполняется (например, при сложении двух чисел оба слагаемых считываются в АЛУ, складываются и результат операции сохраняется в регистре или ячейке памяти);
4) далее весь цикл повторяется.

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

Легко понять, что для запуска основного алгоритма работы процессора в счётчик адреса команд должно быть предварительно занесено начальное значение — адрес первой выполняемой команды. В первых ЭВМ оператор вводил этот адрес вручную. В современных компьютерах при включении питания в счётчик аппаратно заносится некоторое значение, которое указывает на начало программы, хранящейся в ПЗУ. Эта программа тестирует устройства компьютера и приводит их в рабочее состояние, а затем загружает в ОЗУ начальный загрузчик операционной системы (как правило, с диска). Ему и передаётся дальнейшее управление, а стартовая программа из ПЗУ завершает свою работу. Начиная с этого момента, поведение компьютера уже определяется установленным на нём программным обеспечением.

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

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

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

Следующая страница Что называют архитектурой



Cкачать материалы урока







Наверх