Если же содержимое указанных регистров одинаково, то машина на этом этапе поместит в счетчик адреса значение 58. Те-
перь на этапе выборки следующего машинного цикла блок управления обнаружит в счетчике адреса значение 58, поэтому
следующей будет выполнена команда, расположенная по этому адресу.
Для координации действий, выполняемых на протяжении машинного цикла, необходимо обеспечить синхронизацию
работы различных схем машины. С этой целью на соответствующие электронные схемы подается импульсный сигнал, кото-
рый называется сигналом синхронизации. Амплитуда этого сигнала изменяется между уровнями 0 и 1, а различные элек-
тронные схемы машины разрабатываются таким образом, чтобы они приводились в действие тем или иным фронтом им-
пульса синхронизирующего сигнала. В результате тактовая частота этот сигнала фактически определяет ту скорость, с кото-
рой центральный процессор выполняет свой машинный цикл.
Пример выполнения программы. Давайте проследим за выполнением всех машинных циклов, предусматриваемых
программой, текст которой представлен в конце раздела 2.2. Вначале необходимо разместить программу в какой-либо облас-
ти памяти машины. Например, будем считать, что текст нашей программы занесен в последовательные ячейки памяти, на-
чиная с адреса А0 (шестнадцатеричное представление). На рис. 2.7 представлена таблица, отра-
жающая содержимое этой области памяти. Если записать программу таким способом, можно за-
ставить машину выполнить нашу программу, поместив адрес ее первой команды (А0) в счетчик
адреса и запустив машину в работу.
Блок управления начинает с извлечения из основной памяти команды, записанной по адресу
А0, и помещает ее (156С) в регистр команды, выполнив тем самым этап выборки первого машин-
ного цикла. Обратите внимание, что длина команды составляет шестнадцать разрядов (2 байта).
Поэтому выбираемая команда должна занимать две ячейки памяти с адресами А0 и А1. Конст-
рукция блока управления разработана с учетом этой особенности, поэтому он выбирает содержи-
мое обеих ячеек и помещает данные в регистр команды, размер которого составляет 16 бит. Затем
блок управления добавляет число 2 к значению в счетчике адреса, чтобы содержимое этого реги-
стра представляло собой адрес следующей команды. По завершении этапа выборки первого ма-
шинного цикла в счетчике адреса и регистре команд будут содержаться следующие данные.
Счетчик адреса: А2
Регистр команд: 156С
На следующем этапе блок управления анализирует команду, помещенную в регистр команд,
и приходит к заключению, что это команда загрузки в регистр 5 содержимого ячейки памяти с
адресом 6С. Загрузка осуществляется на этапе выполнения данного машинного цикла, после чего блок управления начнет
новый машинный цикл.
Новый цикл начинается с выборки команды 166D из ячеек памяти с адресами А2 и A3. Блок управления помещает эту
команду в регистр команд и увеличивает значение счетчика адреса, после чего оно становится равным А4. После завершения
очередного этапа выборки в счетчике адреса и регистре команд будут следующие данные.
Счетчик адреса: А4
Регистр команд: 166D
Блок управления декодирует команду 166D и определяет, что в регистр 6 необходимо загрузить содержимое ячейки па-
мяти с адресом 6D, после чего выполняет команду, и в регистр 6 действительно загружается требуемое значение.
Поскольку в данный момент счетчик адреса имеет значение А4, блок управления считывает следующую команду, кото-
рая начинается с указанного адреса. В результате в регистр команд помещается значение 5056, а счетчик адреса получает
новое значение А6. Блок управления декодирует содержимое очередной команды и выполняет ее посредством активизации
электронной схемы сложения чисел в дополнительном двоичном коде, указав этой схеме использовать как входные регистры
5 и 6.
На этапе выполнения данной команды арифметико-логический блок выполняет сложение и записывает результат в ре-
гистр 0 (как было указано блоком управления), после чего сообщает блоку управления о том, что требуемые действия вы-
полнены. После этого блок управления начинает следующий машинный цикл. И вновь, используя текущее значение в счет-
чике адреса, он выбирает следующую команду из двух смежных ячеек памяти с адресами А6 и А7 (теперь это команда 306Е) и
модифицирует значение счетчика адреса, установив его равным А8. Затем считанная из памяти команда декодируется и выполня-
ется. В результате сумма двух чисел помещается в ячейку памяти с адресом 6Е.
Следующая выбираемая команда расположена в памяти, начиная с адреса А8. После ее извлечения значение счетчика
адреса увеличивается до АА. Содержимое регистра команд равно С000 и расшифровывается как команда останова. В ре-
зультате работа машины останавливается на этапе выполнения, и это означает, что выполнение нашей программы заверше-
но.
В заключение скажем, что выполнение хранимой в памяти программы не отличается от того процесса, к которому мог
бы прибегнуть любой человек, перед которым поставлена задача четко следовать определенному списку инструкций. Обыч-
но человек отмечает в списке выполненные им инструкции галочками – машина же для этого использует счетчик адреса.
Определив, какая из инструкций должна выполняться следующей, человек знакомится с ней и принимает решение, что
именно нужно сделать. Затем он выполняет требуемые действия и переходит к следующей инструкции. Аналогичным обра-
зом поступает и машина – она выполняет очередную команду, помещенную в регистре команд, и запускает следующий цикл
выборки.
Особенности совместного хранения данных и программ. В основной памяти компьютера можно разместить множе-
ство программ одновременно, выделив для каждой различные области памяти. Тем, какая из этих программ начнет выпол-
няться при запуске машины, можно легко управлять, просто соответствующим образом установив исходное значение счет-
чика адреса.
Однако не следует забывать, что данные также содержатся в основной памяти и кодируются с помощью нулей и еди-
ниц, поэтому машина сама по себе не может установить, что именно является данными, что – программой. Если в счетчике
Рис. 2.7. Программа
сложения чисел,
записанная в памяти
машины, начиная
с адреса А0
Адрес
Содержимое
А0
А1
А2
А3
А4
А5
А6
А7
А8
А9
15
6C
16
6D
50
56
30
6E
С0
00