Основные принципы построения компьютеров.
В основу построения подавляющего большинства компьютеров положены следующие общие принципы, сформулированные в 1945 г. американским ученым Джоном фон Нейманом.
1. Принцип программного управления. Из него следует, что программа состоит из набора команд, которые выполняются процессором автоматически друг за другом в определенной последовательности.
Выборка программы из памяти осуществляется с помощью счетчика команд. Этот регистр процессора последовательно увеличивает хранимый в нем адрес очередной команды на длину команды.
А так как команды программы расположены в памяти друг за другом, то тем самым организуется выборка цепочки команд из последовательно расположенных ячеек памяти.
Если же нужно после выполнения команды перейти не к следующей, а к какой-то другой, используются команды условного или безусловного переходов, которые заносят в счетчик команд номер ячейки памяти, содержащей следующую команду. Выборка команд из памяти прекращается после достижения и выполнения команды “стоп”.
Таким образом, процессор исполняет программу автоматически, без вмешательства человека.
2. Принцип однородности памяти. Программы и данные хранятся в одной и той же памяти. Поэтому компьютер не различает, что хранится в данной ячейке памяти — число, текст или команда. Над командами можно выполнять такие же действия, как и над данными.
Это открывает целый ряд возможностей. Например, программа в процессе своего выполнения также может подвергаться переработке, что позволяет задавать в самой программе правила получения некоторых ее частей (так в программе организуется выполнение циклов и подпрограмм).
Более того, команды одной программы могут быть получены как результаты исполнения другой программы. На этом принципе основаны методы трансляции — перевода текста программы с языка программирования высокого уровня на язык конкретной машины.
3. Принцип адресности. Структурно основная память состоит из перенумерованных ячеек; процессору в произвольный момент времени доступна любая ячейка.
Отсюда следует возможность давать имена областям памяти, так, чтобы к запомненным в них значениям можно было впоследствии обращаться или менять их в процессе выполнения программ с использованием присвоенных имен.
Компьютеры, построенные на этих принципах, относятся к типу фон-неймановских.
Но существуют компьютеры, принципиально отличающиеся от фон-неймановских. Для них, может не выполнятся принцип программного управления, т.е. они могут работать без «счетчика команд», указывающую текущую выполняемую команду программы. Для обращения к какой-либо переменной, хранящейся в памяти, этим компьютерам не обязательно давать ей имя. Такие компьютеры называются не-фоннеймановскими.
4. ЭЛЕМЕНТАРНЫЕ КОМАНДЫ ЭВМ.
Команда – это описание элементарной операции, которую должен выполнить компьютер.
В общем случае, команда содержит следующую информацию:
§ код выполняемой операции ;
§ указания по определению операндов (или их адресов) ;
§ указания по размещению получаемого результата.
В зависимости от количества операндов, команды бывают:
§ одноадресные;
§ двухадресные;
§ трехадресные;
§ переменоадресные.
Команды хранятся в ячейках памяти в двоичном коде.
В современных компьютерах длина команд переменная (обычно от двух до четырех), а способы указания адресов переменных весьма разнообразные.
В адресной части команды может быть указан, например:
§ сам операнд (число или символ);
§ адрес операнда (номер байта, начиная с которого расположен операнд);
§ адрес адреса операнда (номер байта, начиная с которого расположен адрес операнда), и др.
Рассмотрим несколько возможных вариантов команды сложения (англ. add — сложение), при этом вместо цифровых кодов и адресов будем пользоваться условными обозначениями:
· одноадресная команда add x (содержимое ячейки x сложить с содержимым сумматора, а результат оставить в сумматоре)
add | x |
· двухадресная команда add x, y (сложить содержимое ячеек x и y, а результат поместить в ячейку y)
add | x | y |
· трехадресная команда add x, y, z (содержимое ячейки x сложить с содержимым ячейки y, сумму поместить в ячейку z)
add | x | y | z |
Как пpавило, процесс выполнения команды разбивается на следующие этапы:
· из ячейки памяти, адрес которой хранится в счетчике команд, выбирается очередная команда; содержимое счетчика команд при этом увеличивается на длину команды;
· выбранная команда передается в устройство управления на регистр команд;
· устройство управления расшифровывает адресное поле команды;
· по сигналам УУ операнды считываются из памяти и записываются в АЛУ на специальные регистры операндов;
· УУ расшифровывает код операции и выдает в АЛУ сигнал выполнить соответствующую операцию над данными;
· результат операции либо остается в процессоре, либо отправляется в память, если в команде был указан адрес результата;
· все предыдущие этапы повторяются до достижения команды “стоп”.