Функционирование ЭВМ с шинной и канальной организацией
Функционирование ЭВМ с шинной организацией
Шинная организация является простейшей формой организации ЭВМ. В соответствии с приведенными выше принципами фон Неймана подобная ЭВМ имеет в своем составе следующие функциональные блоки (рис. 13).
Рис. 13. Упрощенная схема ЭВМ с шинной организацией
Центральный процессор (ЦП) – функциональная часть ЭВМ, выполняющая основные операции по обработке данных и управлению работой других блоков. Это наиболее сложный компонент ЭВМ как с точки зрения электроники, так и с точки зрения функциональных возможностей. Центральный процессор состоит из следующих взаимосвязанных составных элементов: арифметико-логического устройства, устройства управления и регистров.
Арифметико-логическое устройство (АЛУ) выполняет основную работу по переработке информации, хранимой в оперативной памяти. В нем выполняются арифметические и логические операции. Кроме того, АЛУ вырабатывает управляющие сигналы, позволяющие ЭВМ автоматически выбирать путь вычислительного процесса в зависимости от получаемых результатов. Операции выполняются с помощью электронных схем, каждая из которых состоит из нескольких тысяч элементов. Микросхемы имеют высокую плотность и быстродействие. На современном технологическом уровне все АЛУ можно разместить на одном кристалле полупроводникового элемента размером с конторскую скрепку.
Арифметико-логическое устройство формирует по двум входным переменным одну – выходную, выполняя заданную функцию (сложение, вычитание, сдвиг и т.д.). Выполняемая функция определяется микрокомандой, получаемой от устройства управления. АЛУ содержит в своем составе устройство, хранящее характеристику результата выполнения операции над данными и называемое флаговым регистром. Отдельные разряды этого регистра указывают на равенство результата операции нулю, знак результата операции (+ или –), правильность выполнения операции (наличие переноса за пределы разрядной сетки или переполнения). Программный анализ флагов позволяет производить операции ветвления программы в зависимости от конкретных значений данных.
Кроме того, в АЛУ имеется набор программно-доступных быстродействующих ячеек памяти, которые называются регистрами процессора.
Регистры составляют основу архитектуры процессора. Среди обязательного набора регистров можно отметить следующие. Регистр данных – служит для временного хранения промежуточных результатов при выполнении операций. Регистр-аккумулятор – регистр временного хранения, который используется в процессе вычислений (например, в нем формируется результат выполнения команды умножения). Регистр-указатель стека – используется при операциях со стеком, т.е. такой структурой данных, которая работает по принципу: последним вошел – первым вышел, т.е. последнее записанное в него значение извлекается из него первым. Стеки применяются для организации подпрограмм. Индексные, указательные и базовые регистры используются для хранения и вычисления адресов операндов в памяти. Регистры-счетчики служат для организации циклических участков в программах. Регистры общего назначения, имеющиеся во многих ЭВМ, могут использоваться для любых целей. Точное назначение такого регистра определяет программист при написании программы. Они могут применяться для временного хранения данных, в качестве аккумуляторов, а также в качестве индексных, базовых, указательных регистров. Количество регистров и связей между ними оказывает существенное влияние на сложность и стоимость процессора. Однако, с другой стороны, наличие большого количества регистров с богатым набором возможностей упрощает программирование и повышает гибкость программного обеспечения. Кроме перечисленных регистров, в состав АЛУ могут входить внутренние системные регистры, не доступные программно и используемые во время внутренних пересылок информации при выполнении команд.
Устройство управления (УУ) – часть центрального процессора. Оно вырабатывает распределенную во времени и пространстве последовательность внутренних и внешних управляющих сигналов, обеспечивающих выборку и выполнение команд. На этапе цикла выборки команды УУ интерпретирует команду, выбранную из программной памяти. На этапе выполнения команды в соответствии с типом реализуемой операции УУ формирует требуемый набор команд низкого уровня для арифметико-логического устройства и других устройств. Эти команды задают последовательность простейших низкоуровневых операций, таких, как пересылка данных, сдвиг данных, установка и анализ признаков, запоминание результатов и др. Такие элементарные низкоуровневые операции называют микрооперациями, а команды, формируемые устройством управления, – микрокомандами. Последовательность микрокоманд, соответствующая одной команде, называется микропрограммой.
В простейшем случае УУ имеет в своем составе три устройства – регистр команды, который содержит код команды во время ее выполнения; программный счетчик, содержащий адрес очередной подлежащей выполнению команды; регистр адреса, в котором вычисляются адреса операндов, находящихся в памяти. Для связи пользователя с ЭВМ предусмотрен пульт управления, который позволяет выполнять такие действия, как сброс ЭВМ в начальное состояние, просмотр регистра или ячейки памяти, запись адреса в программный счетчик, пошаговое выполнение программы при ее отладке и т.д.
Память – устройство, предназначенное для запоминания, хранения и выборки программ и данных. Память состоит из конечного числа ячеек, каждая из которых имеет свой уникальный номер или адрес. Доступ к ячейке осуществляется указанием ее адреса. Память способна выполнять два вида операций над данными – чтение с сохранением содержимого и запись нового значения со стиранием предыдущего. Как уже говорилось выше, каждая ячейка памяти может использоваться для хранения либо порции данных, либо команды. В большинстве современных ЭВМ минимально адресуемым элементом памяти является байт – поле из 8 бит. Совокупность битов, которые арифметико-логическое устройство может одновременно поместить в регистр или обработать, называют обычно машинным словом.
Оперативная память (ОП) – функциональный блок, хранящий информацию для УУ (команды) и АЛУ (данные). Задачи, решаемые с помощью ЭВМ, требуют хранения в памяти различного количества информации, зависящего от сложности реализуемого алгоритма, количества исходных данных и т.п. Поэтому память должна вмещать достаточно большое количество информации, т.е. должна иметь большую емкость. С другой стороны, память должна обладать достаточным быстродействием, соответствующим быстродействию других устройств ЭВМ. Чем больше емкость памяти, тем медленнее к ней доступ, так как время доступа (т.е. быстродействие) определяется временем, необходимым для выборки из памяти или записи в нее информации. Поэтому в ЭВМ существует несколько запоминающих устройств, различающихся емкостью и быстродействием.
Периферийные устройства (ПУ). В их число входят устройства двух типов: устройства внешней памяти, предназначенные для долговременного хранения данных большого объема и программ, и коммуникационные устройства, предназначенные для связи ЭВМ с внешним миром (с пользователем, другими ЭВМ и т.д.). Обмен данными с внешним устройством осуществляется через порты ввода-вывода. Порт (в переводе с англ. port – ворота, дверь, отверстие) – это абстрактное понятие, на самом деле несуществующее. По аналогии с ячейками памяти порты можно рассматривать как ячейки, через которые можно записать в ПУ, или, наоборот – прочитать из него. Так же как и ячейки памяти, порты имеют уникальные номера – адреса портов ввода-вывода.
Система шин. Объединение функциональных блоков в ЭВМ осуществляется посредством следующей системы шин: шины данных, по которой осуществляется обмен информацией между блоками ЭВМ; шины адреса, используемой для передачи адресов (номеров ячеек памяти или портов ввода-вывода, к которым производится обращение); и шины управления для передачи управляющих сигналов. Совокупность этих трех шин называют системной шиной, системной магистралью или системным интерфейсом. Состав и назначение шины, правила использования, виды передаваемых по шине сигналов и другие характеристики шины могут существенно различаться у разных видов ЭВМ. Однако есть принципиально общие закономерности в организации шин. Шина состоит из отдельных проводников (линий). Сигналы по линиям шины могут передаваться либо импульсами (наличие импульса соответствует логической 1, а отсутствие импульса – 0), либо уровнем напряжения (например, высокий уровень – логическая 1 , низкий – 0). Шириной шины называется количество линий (проводников), входящих в состав шины. Ширина шины адреса определяет размер адресного пространства ЭВМ. Если, например, количество линий адреса, используемых для адресации памяти, равно 20, то общее количество адресуемых ячеек памяти составит 220, т.е. примерно один миллион ячеек (точнее, 1 048 576 ячеек).
Обычно на шине в любой момент можно выделить два активных устройства. Одно из них инициирует операцию обмена данными (формирует адреса и управляющие сигналы), в большинстве случаев это ЦП, другое выполняет операцию (дешифрирует адреса и управляющие сигналы и принимает или передает данные), т.е. является исполнителем. Память всегда выступает только в качестве исполнителя.
Функционирование ЭВМ с шинной структурой можно описать обобщенным алгоритмом (рис. 14):
Рис. 14. Обобщенный алгоритм функционирования фон-неймановской ЭВМ
1. Инициализация. После включения ЭВМ или операции сброса в регистры центрального процессора заносятся некоторые начальные значения. Обычно в процессе инициализации в память ЭВМ помещается программа, называемая первичным загрузчиком. Основное назначение первичного загрузчика – загрузить в память с устройства внешней памяти операционную систему. Эта программа может быть размещена в энергонезависимом устройстве памяти или автоматически считываться с некоторого устройства внешней памяти. Программному счетчику присваивается начальное значение, равное адресу первой команды загруженной программы.
2. Центральный процессор производит операцию считывания команды из памяти. В качестве адреса ячейки памяти используется содержимое программного счетчика.
3. Содержимое считанной ячейки памяти интерпретируется процессором как команда и помещается в регистр команды. Устройство управления приступает к интерпретации прочитанной команды. По полю кода операции из первого слова команды устройство управления определяет ее длину и, если это необходимо, организует дополнительные операции считывания, пока вся команда полностью не будет прочитана процессором. Вычисленная длина команды прибавляется к исходному содержимому программного счетчика, и когда команда полностью прочитана, программный счетчик будет хранить адрес следующей команды.
4. По адресным полям команды устройство управления определяет, имеет ли команда операнды в памяти. Если это так, то на основе указанных в адресных полях режимов адресации вычисляются адреса операндов и производятся операции чтения памяти для считывания операндов.
5. Устройство управления и арифметико-логическое устройство выполняют операцию, указанную в поле кода операции команды. Во флаговом регистре процессора запоминаются признаки результата операции (равно нулю или нет, знак результата, наличие переполнения и т.д.).
6. Если это необходимо, устройство управления выполняет операцию записи для того, чтобы поместить результат выполнения команды в память.
7. Если последняя команда не была командой ОСТАНОВИТЬ ПРОЦЕССОР, то описанная последовательность действий повторяется, начиная с шага 1. Описанная последовательность действий центрального процессора с шага 1 до шага 6 называется циклом процессора.
Большинство ЭВМ имеют шинную организацию и их поведение описывается приведенным выше алгоритмом. В различных конкретных ЭВМ реализация этого алгоритма может несколько отличаться. Так, например, процессор может считывать из памяти не одну команду, а сразу несколько и хранить их в специальной очереди команд. Часто используемые программой команды и данные могут храниться не в основной памяти ЭВМ, а в быстродействующей буферной памяти и т.д. Таким образом, функционирование любой фон-неймановской ЭВМ описывается алгоритмом, близким к приведенному выше, и представляет собой последовательность достаточно простых действий.