ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 31.03.2021
Просмотров: 6838
Скачиваний: 51
401
же, как это происходит в телевизоре (к некоторым дешевым домашним моделям компьютеров
просто подключается обычный телевизор). Очевидно, что дисплей, не имея механически движу-
щихся частей, является «очень быстрым» устройством отображения информации. Поэтому для
ЭВМ третьего и четвертого поколений он является неотъемлемой частью (хотя впервые дисплей
был реализован на некоторых ЭВМ второго поколения, например, на «МИР-2» - очень интересной
во многих отношениях отечественной разработке).
Рис. 4.11.
Шинная архитектура ЭВМ
Для получения на экране монитора стабильной картинки ее надо где-то хранить. Для этого
и существует видеопамять. Сначала содержимое видеопамяти формируется компьютером, а затем
контроллер дисплея выводит изображение на экран. Объем видеопамяти существенно зависит от
характера информации (текстовая или графическая) и от числа цветов изображения. Конструктив-
но она может быть выполнена как обычное ОЗУ или содержаться непосредственно в контроллере
дисплея (именно поэтому на рис. 4.11 она показана пунктиром).
Остановимся еще на одной важной особенности структуры современных ЭВМ. Поскольку
процессор теперь перестал быть центром конструкции, стало возможным реализовывать прямые
связи между устройствами ЭВМ. На практике чаще всего используют передачу данных из внеш-
них устройств в ОЗУ и наоборот. Режим, при котором внешнее устройство обменивается непо-
средственно с ОЗУ без участия центрального процессора, называется прямым доступом к памяти
(ПДП). Для его реализации необходим специальный контроллер. Подчеркнем, что режим ПДП в
машинах первого и второго поколений не существовал. Поэтому встречающаяся иногда схема
ЭВМ, на которой данные из устройств ввода напрямую поступают в ОЗУ, не соответствует дейст-
вительности: данные при отсутствии контроллера ПДП всегда сначала принимаются во внутрен-
ние регистры процессора и лишь затем в память.
При описании магистральной структуры мы упрощенно предполагали, что все устройства
взаимодействуют через общую шину. С точки зрения архитектуры этого вполне достаточно. Упо-
мянем все же, что на практике такая структура применяется только для ЭВМ с небольшим числом
внешних устройств. При увеличении потоков информации между устройствами ЭВМ единствен-
ная магистраль перегружается, что существенно тормозит работу компьютера. Поэтому в состав
ЭВМ могут вводиться одна или несколько дополнительных шин. Например, одна шина может ис-
пользоваться для обмена с памятью, вторая -для связи с «быстрыми», а третья - с «медленными»
внешними устройствами. Отметим, что высокоскоростная шина данных ОЗУ обязательно требует-
ся при наличии режима ПДП.
Завершая обсуждение особенностей внутренней структуры современных ЭВМ, укажем не-
сколько характерных тенденций в ее развитии. Во-первых, постоянно расширяется и совершенст-
вуется набор внешних устройств, что приводит, как описывалось выше, к усложнению системы
связей между узлами ЭВМ. Во-вторых, вычислительные машины перестают быть однопроцессор-
ными. Помимо центрального, в компьютере могут быть специализированные процессоры для вы-
числения с плавающей запятой (так называемые математические сопроцессоры), видеопроцессоры
402
для ускорения вывода информации на экран дисплея и т.п. Развитие методов параллельных вы-
числений также вызывает к жизни вычислительные системы достаточно сложной структуры, в ко-
торых одна операция выполняется сразу несколькими процессорами. В-третьих, наметившееся
стремление иметь быстродействующие машины не только для вычислений, но и для логического
анализа информации, также может привести в ближайшие
годы к серьезному пересмотру тради-
ционной фон-неймановской архитектуры.
Еще одной особенностью развития современных ЭВМ является все ускоряющееся возрас-
тание роли межкомпьютерных коммуникаций. Все большее количество компьютеров объединя-
ются в сети и обрабатывают имеющуюся информацию совместно.
Таким образом, внутренняя структура вычислительной техники постоянно совершенство-
валась и будет совершенствоваться. Вместе с тем, на данный момент подавляющее большинство
существующих ЭВМ, несмотря на имеющиеся различия, по-прежнему состоит из одинаковых уз-
лов и основано на общих принципах фон-неймановской архитектуры.
2.4. ОСНОВНОЙ ЦИКЛ РАБОТЫ ЭВМ
В данном разделе коротко рассмотрена последовательность действий при выполнении ко-
манды в ЭВМ. Можно утверждать, что рабочий цикл в общем виде одинаков для всех фон-
неймановских машин.
Как уже отмечалось в
п.2.2,
важной составной частью фон-неймановской архитектуры яв-
ляется счетчик адреса команд. Этот специальный внутренний регистр процессора всегда указыва-
ет на ячейку памяти, в которой хранится следующая команда программы. При включении питания
или при нажатии на кнопку сброса (начальной установки) в счетчик аппаратно заносится старто-
вый адрес находящейся в ПЗУ программы инициализации всех устройств и начальной загрузки.
Дальнейшее функционирование компьютера определяется программой. Таким образом, вся дея-
тельность ЭВМ - это непрерывное выполнение тех или иных программ, причем программы эти
могут в свою очередь загружать новые программы и т.д.
Каждая программа состоит из отдельных машинных команд. Каждая машинная команда, в
свою очередь, делится на ряд элементарных унифицированных составных частей, которые приня-
то называть тактами. В зависимости от сложности команды она может быть реализована за разное
число тактов. Например, пересылка информации из одного внутреннего регистра процессора в
другой выполняется за несколько тактов, а для перемножения двух целых чисел их требуется на
порядок больше. Существенное удлинение команды происходит, если обрабатываемые данные
еще не находятся внутри процессора и их приходится считывать из ОЗУ.
При выполнении каждой команды ЭВМ проделывает определенные стандартные действия:
1) согласно содержимому счетчика адреса команд, считывается очередная команда про-
граммы (ее код обычно заносится на хранение в специальный регистр УУ, который носит название
регистра команд);
2) счетчик команд автоматически изменяется так, чтобы в нем содержался адрес следую-
щей команды (в простейшем случае для этой цели достаточно к текущему значению счетчика
прибавить некоторую константу, определяющуюся длиной команды);
3) считанная в регистр команд операция расшифровывается, извлекаются необходимые
данные и над ними выполняются требуемые действия.
Затем во всех случаях, за исключением команды останова или наступления прерывания (см.
ниже в п. 3.5), все описанные действия циклически повторяются.
После выборки команды останова ЭВМ прекращает обработку программы. Для выхода из
этого состояния требуется либо запрос от внешних устройств, либо перезапуск машины.
Рассмотренный основной алгоритм работы ЭВМ позволяет шаг за шагом выполнить хра-
нящуюся в ОЗУ линейную программу. Если же требуется изменить порядок вычислений для реа-
лизации развилки или цикла, достаточно в счетчик команд занести требуемый адрес (именно так
происходит условный или безусловный переход).
В компьютерах на базе микропроцессоров INTEL 80286 и более поздних моделей для уско-
рения основного цикла выполнения команды используется метод конвейеризации (иногда приме-
няется термин «опережающая выборка»). Идея состоит в том, что несколько внутренних уст-
ройств процессора работают параллельно: одно считывает команду, другое дешифрует операцию,
403
третье вычисляет адреса используемых операндов и т.д. В результате по окончании команды чаще
всего оказывается, что следующая уже выбрана из ОЗУ, дешифрована и подготовлена к исполне-
нию. Отметим, что в случае нарушения естественного порядка выполнения команд в программе
(например, при безусловном переходе) опережающая выборка оказывается напрасной и конвейер
очищается. Следующая за переходом команда выполняется дольше, так как, чтобы конвейер «за-
работал на полную мощность», необходимо его предварительно заполнить. Иными словами, в
конвейерной машине время выполнения программы может зависеть не только от составляющих ее
команд, но и от их взаимного расположения.
2.5. СИСТЕМА КОМАНД ЭВМ И СПОСОБЫ ОБРАЩЕНИЯ К ДАННЫМ
Важной составной частью архитектуры ЭВМ является система команд. Несмотря на боль-
шое число разновидностей ЭВМ, на самом низком («машинном») уровне они имеют много обще-
го. Система команд любой ЭВМ обязательно содержит следующие группы команд обработки ин-
формации.
1. Команды передачи данных (перепись), копирующие информацию
из одного места в дру-
гое.
2. Арифметические операции, которым фактически обязана своим названием вычислитель-
ная техника. Конечно, доля вычислительных действий в современном компьютере заметно
уменьшилась, но они по-прежнему играют в программах важную роль. Отметим, что к основным
арифметическим действиям обычно относятся сложение и вычитание (последнее в конечном счете
чаще всего тем или иным способом также сводится к сложению). Что касается умножения и деле-
ния, то они во многих ЭВМ выполняются по специальным программам.
3. Логические операции, позволяющие компьютеру анализировать обрабатываемую ин-
формацию. Простейшими примерами могут служить сравнение, а также известные логические
операции И, ИЛИ, НЕ (инверсия). Кроме того к ним часто добавляются анализ отдельных битов
кода, их сброс и установка.
4. Сдвиги двоичного кода влево и вправо. Для доказательства важности этой группы ко-
манд достаточно вспомнить правило умножения столбиком: каждое последующее произведение
записывается в такой схеме со сдвигом на одну цифру влево. В некоторых частных случаях умно-
жение и деление вообще может быть заменено сдвигом (вспомните, что дописав или убрав ноль
справа, т.е. фактически осуществляя сдвиг десятичного числа, можно увеличить или уменьшить
его в 10 раз).
5. Команды ввода и вывода информации для обмена с внешними устройствами. В некото-
рых ЭВМ внешние устройства являются специальными служебными адресами памяти, поэтому
ввод и вывод осуществляется с помощью команд переписи.
6. Команды управления, реализующие нелинейные алгоритмы. Сюда прежде всего следует
отнести условный и безусловный переход, а также команды обращения к подпрограмме (переход с
возвратом). Некоторые ЭВМ имеют специальные команды для организации циклов, но это не обя-
зательно: цикл может быть сведен к той или иной комбинации условного и безусловного перехо-
дов. Часто к этой же группе команд относят немногочисленные операции по управлению процес-
сором -типа «останов» или НОП («нет операции»). Иногда их выделяют в особую группу.
С ростом сложности устройства процессора увеличивается и число команд, анализирую-
щих состояние управляющих битов и воздействующих на них. Здесь для примера можно назвать
биты режима работы процессора и биты управления механизмами прерываний от внешних уст-
ройств.
В последнее время все большую роль в наборе команд играют команды для преобразования
из одного формата данных в другой (например, из 8-битного в 16-битный и т.п.), которые заметно
упрощают обработку данных разного типа, но в принципе могут быть заменены последовательно-
стью из нескольких более простых команд.
Рассматривая
систему команд, нельзя не упомянуть о двух современных взаимно конкури-
рующих направлениях в ее построении: компьютер с полным набором команд CISC (Complex In-
struction Set Computer) и с ограниченным набором - RISC (Reduced Instruction Set Computer). Раз-
деление возникло из-за того, что основную часть времени компьютеру приходится выполнять не-
большую часть из своего набора команд, остальные же используются эпизодически (в одной из
404
популярных статей это в шутку сформулировано в виде следующей наглядной аналогии: «20% на-
селения выпивают 80% пива»). Таким образом, если существенно ограничить набор операций до
наиболее простых и коротких, зато тщательно оптимизировать их, получится достаточно эффек-
тивная и быстродействующая RISC-машина. Правда за скорость придется платить необходимо-
стью программной реализации «отброшенных» команд, но часто эта плата бывает оправданной:
например, для научных расчетов или машинной графики быстродействие существенно важнее
проблем программирования. Подробнее вопросы, связанные с системой команд современных
микропроцессоров, будут рассмотрены ниже в этой главе.
Подводя итог, еще раз подчеркнем, что основной набор команд довольно слабо изменился в
ходе бурной эволюции ЭВМ. В то же время способы указания адреса расположения информации в
памяти претерпели значительное изменение и заслуживают особого рассмотрения.
Команда ЭВМ обычно состоит из двух частей - операционной и адресной. Операционная
часть (иначе она еще называется кодом операции - КОП) указывает, какое действие необходимо
выполнить с информацией. Адресная часть описывает, где используемая информация хранится. У
нескольких немногочисленных команд управления работой машины адресная часть может отсут-
ствовать, например, в команде останова; операционная часть имеется, всегда.
Код операции можно представить себе как некоторый условный номер в общем списке сис-
темы команд. В основном этот список построен в соответствии с определенными внутренними за-
кономерностями, хотя они не всегда очевидны.
Адресная часть обладает значительно большим разнообразием и ее следует рассмотреть
подробнее.
Прежде всего отметим, что команды могут быть одно-, двух- и трехадресные в зависимости
от числа участвующих в них операндов.
Первые ЭВМ имели наиболее простую и наглядную трехадресную систему команд. Напри-
мер: взять числа из адресов памяти А1 и А2, сложить их и сумму поместить в адрес A3. Если для
операции требовалось меньшее число адресов, то лишние просто не использовались. Скажем, в
операции переписи указывались лишь ячейки источника и приемника информации А1 и A3, а со-
держимое А2 не имело никакого значения.
Трехадресная команда легко расшифровывалась и была удобна в использовании, но с рос-
том объемов ОЗУ ее длина становилась непомерно большой. Действительно, длина команды скла-
дывается из длины трех адресов и кода операции. Отсюда следует, например, что для скромного
ОЗУ из 1024 ячеек только для записи адресной части одной команды требуется 3*10 = 30 двоич-
ных разрядов, что для технической реализации не очень удобно. Поэтому появились двухадресные
машины, длина команды в которых сокращалась за счет исключения адреса записи результата. В
таких ЭВМ результат операции оставался в специальном регистре (сумматоре) и был пригоден для
использования в последующих вычислениях. В некоторых машинах результат записывался вместо
одного из операндов.
Дальнейшее упрощение команды привело к созданию одноадресных машин. Рассмотрим
систему команд такой ЭВМ на конкретном простом примере. Пусть надо сложить числа, храня-
щиеся в ячейках с адресами ОЗУ А1 и А2, а сумму поместить в ячейку с адресом A3. Для решения
этой задачи одноадресной машине потребуется выполнить три команды:
• извлечь содержимое ячейки А1 в сумматор;
• сложить сумматор с числом из А2;
• записать результат из сумматора в A3.
Может показаться, что одноадресной машине для решения задачи потребуется втрое боль-
ше команд, чем трехадресной. На самом деле это не всегда так. Попробуйте самостоятельно спла-
нировать программу вычисления выражения А5 = (А1 + А2)*АЗ/А4 и вы обнаружите, что потре-
буется три трехадресных команды и всего пять одноадресных. Таким образом, одноадресная ма-
шина в чем-то даже эффективнее, так как она не производит ненужной записи в память промежу-
точных результатов.
Ради полноты изложения следует сказать о возможности реализации безадресной (нуль-
адресной) машины, использующей особый способ организации памяти -стек. Понимание принци-
пов устройства такой машины потребовало бы некоторых достаточно подробных разъяснений.
Сейчас безадресные ЭВМ практически не применяются. Поэтому ограничимся лишь упоминанием
того факта, что устроенная подобным образом система команд лежала в основе некоторых про-
405
граммируемых микрокалькуляторов (например, типа «БЗ-21» и «БЗ-34» и им подобных).
До сих пор в описании структуры машинной команды мы пользовались интуитивным поня-
тием об адресе информации. Рассмотрим теперь вопрос об адресации элементов ОЗУ более под-
робно и строго. Наиболее просто была организована память в ЭВМ первых двух поколений. Она
состояла из отдельных ячеек, содержимое каждой из которых считывалось или записывалось как
единое целое. Каждая ячейка памяти имела свой номер, который и получил название адреса. Оче-
видно, что адреса соседних ячеек ОЗУ являются последовательными целыми числами, т.е. отли-
чаются на единицу. В рассматриваемых ЭВМ использовались данные только одного типа (вещест-
венные числа), причем их длина равнялась длине машинной команды и совпадала с разрядностью
памяти и всех остальных устройств машины. Для примера укажем, что ячейка типичной ЭВМ вто-
рого поколения состояла из 36 двоичных разрядов.
Очень часто программа предназначалась для обработки по одним и тем же формулам опре-
деленного количества содержимого последовательно расположенных ячеек (в языках высокого
уровня такого рода структуры получили впоследствии название массивов). В ЭВМ первых двух
поколении были предусмотрены особые механизмы циклической обработки массивов информа-
ции. С этой целью в машинных командах помимо обычных адресов можно было использовать мо-
дифицируемые, у которых специальный управляющий бит был установлен в единицу. К помечен-
ным таким образом модифицируемым адресам при выполнении команды прибавлялось значение
из специальных индексных ячеек. Меняя содержимое индексных ячеек, можно было получать
доступ к различным элементам массива. Особо подчеркнем, что формирование результирующего
адреса осуществлялось в УУ в момент исполнения команды, поэтому исходная команда в ОЗУ со-
хранялась без изменений.
Описанный механизм модификации адресов существенно упрощал написание циклических
программ, таких как нахождение суммы последовательных ячеек ОЗУ, копирование отдельных
участков памяти и т.п.
В ЭВМ третьего поколения идеология построения памяти существенно изменилась: мини-
мальная порция информации для обмена с ОЗУ была установлена равной 8 двоичных разрядов,
т.е. один байт. Стало возможным обрабатывать несколько типов данных: символы текста (1 байт),
целые числа (2 байта), вещественные числа обычной или двойной точности (4 или 8 байт соответ-
ственно). В связи с этим была введена новая условная единица измерения информации - машинное
слово. Оно равнялось 4 байтам и соответствовало длине стандартного вещественного числа. Все
объемы информации начали измеряться в единицах, кратных слову: двойное слово, полуслово и
т.п. Естественно, что адрес (номер ячейки ОЗУ) в машинах с байтовой организацией стал относит-
ся к отдельному байту; байты памяти имеют возрастающие на единицу номера. Слово состоит из
нескольких последовательно расположенных байтов. В качестве адреса слова удобно принимать
адрес одного из образующих его байтов (обычно используется младший байт, имеющий наимень-
ший номер). Таким образом, адреса слов меняются уже не через единицу; их приращение зависит
от длины машинного слова в байтах и равняется четырем.
Размер машинного слова был, по-видимому, выбран исходя из форматов обрабатываемой
информации, а не в связи с разрядностью каких-либо устройств. Для подтверждения этого приве-
дем несколько фактов о типичных ЭВМ третьего поколения из семейства ЕС. Арифметико-
логическое устройство модели «ЕС-1022» имело 16 двоичных разрядов, «ЕС-1033» - 32 разряда, а
«ЕС-1050» - 64 разряда. В то же время за одно обращение к оперативной памяти в «ЕС-1022» и
«ЕС-1033» выбиралось 4 байта, в «ЕС-1050» - 8 байт (а в «ЕС-1045» - 16 байт). Таким образом,
разнообразие цифр свидетельствует, что 32 разряда (4 байта) не являлись каким-то технически
выделенным объемом информации.
В машинах третьего поколения появились и
еще несколько особенностей: разная длина ко-
манд в зависимости от способа адресации данных, наличие специальной сверхоперативной реги-
стровой памяти, вычисление эффективного адреса ОЗУ как суммы нескольких регистров и т.п. Все
это получило дальнейшее развитие в компьютерах четвертого поколения, для которых разряд-
ность микропроцессора стала одной из важнейших характеристик. Рассмотрение особенностей
строения памяти ЭВМ четвертого поколения отложим до следующего раздела.
Контрольные вопросы
1. Что такое архитектура ЭВМ? Сформулируйте определение и расшифруйте его.