Классические основы построения ЭВМ
Основы построения электронных вычислительных машин в их современном понимании были заложены в 30-е - 40-е годы прошлого века видными учеными: английским математиком Аланом Тьюрингом и американцем венгерского происхождения Джоном (Яношем) Нейманом.
Машина Тьюринга
В 1936 году А. Тьюринг сформулировал понятие абстрактной вычислительной машины. Одновременно с ним, хотя и не в столь явной форме, это же сделал Э. Пост (США). Хотя машина Тьюринга (МТ) не стала реально действующим устройством, она до настоящего времени постоянно используется в качестве основной модели для выяснения сущности таких понятий, как "вычислительный процесс", "алгоритм", а также для выяснения связи между алгоритмом и вычислительными машинами [Майоров С.А., Новиков Г.И.
Структура электронных вычислительных машин
Л.: Машиностроение, Ленингр.отд-ие, 1979].
Основные положения машины Тьюринга
-
Машина Тьюринга (рис.10.1) имеет конечное число знаков si, образующих внешний алфавит, в котором кодируются сведения, подаваемыев МТ, а также вырабатываемые в ней. Среди знаков имеется пустой знак (s1), посылка которого в какую-либо ячейку стирает находившийся в ней знак и оставляет ее пустой.
Рис. 10.1.
Структура машины Тьюринга
В зависимости от поданной начальной информации α (содержащихся на ленте внешней памяти знаков) возможны два случая:
- после конечного числа тактов машина останавливается (имея информацию β), подавая сигнал об остановке. В этом случае МТ применима к информации α и перерабатывает ее в информацию β;
- остановка никогда не наступает. В этом случае МТ не применима к начальной информации α.
-
В каждый момент обозревается лишь одна ячейка ленты (памяти). Переход может осуществляться лишь к соседней ячейке ( r - вправо, l-влево, n- нет перехода (остаться)). Переход к произвольной ячейке производится путем последовательного перебора всех ячеек, разделяющих текущую и необходимую ячейки. На каждом отдельном такте t команда предписывает только замену единственного знака si, хранящегося в обозреваемой ячейке, каким-либо другим знаком sj.
-
Логический блок МТ имеет конечное число состояний {qi} i=1..m.
Знаки r, l, n, q1,..,qmобразуют внутренний алфавит машины.
Переработанный знак sj, записываемый в просматриваемую ячейку, состояние, которое примет машина Тьюринга в следующем такте q(t+1) и выполняемая в данном такте операция перехода к следующей ячейке p(t+1) являются функцией анализируемого в данном такте символа и текущего состояния машины si и q(t):
si(t+1)=f1(si,q(t));
q(t+1)=f2(si,q(t));
P(t+1)=f3(si,q(t)).
Программа для МТ определяется тройкой {si, P, q}t.
Пример записи программы вычисления логической функции "неравнозначность" для машины Тьюринга представлен ниже.
Символ (si) | Состояние |
---|
q1 | q1 | q3 | q4 |
---|
0 | 0, r, q1 | 0, n, q4 | 1, n, q4 | 0, n, q4 |
1 | 1, r, q3 | 1, n, q4 | 0, n, q4 | 1, n, q4 |
Перед началом работы машина Тьюринга находится в состоянии q1 считывания первого операнда.
Данная МТ применима к исходной информации. Останов - состояние q4. Значение si в ячейке y не меняется (сохраняется результат).
Если программа для МТ будет определена таблицей переходов
Символ (si) | Состояние |
---|
q1 | q2 | q3 | q4 |
---|
0 | 0, r, q2 | 0, n, q4 | 1, n, q4 | 1, n, q4 |
1 | 1, r, q3 | 1, n, q4 | 0, n, q4 | 0, n, q4 |
то данная МТ будет не применима к исходной информации, поскольку в состоянии q4 значение si в ячейке y постоянно меняется на противоположное.
Автомат Неймана
По принципу обработки информации вычислительное устройство, предложенное Нейманом (автомат Неймана - АН), существенно отличается от машины Тьюринга.
Важная особенность машины Тьюринга - преобразование информации на каждом такте происходит лишь в одной ячейке, остальные дожидаются посещения головки, хотя часто имеется возможность работать параллельно.
Простейшее решение - использование нескольких машин Тьюринга с общей для них внешней памятью (лентой) - не всегда допустимо из-за возможных конфликтов при обращении к одной и той же ячейке памяти.
В автомате Неймана число одновременно обрабатываемых ячеек может неограниченно расти, оставаясь в каждый момент конечным.
Элемент Неймана (ЭН) - это устройство, которое на каждом такте пребывает в одном из конечного числа состояний ri ∈ R, образующих его алфавит. ЭН имеет два входных канала: левый и правый; по каждому из них на такте t также поступает по одному состоянию из r (рис. 2).
Рис. 10.2.
Элемент Неймана
Элемент реализует функцию zt+1=Ψ(ri, rj, rm)t, то есть в такте t+1 переходит в состояние z, определяемое его состоянием в текущий момент времени и значениями, поступившими по входным каналам.
Состояния элементов Неймана в момент времени t определяют конфигурацию автомата Неймана (рис. 3) в момент t: k(t).
Рис. 10.3.
Структура автомата Неймана
Функционирование АН - это переход от состояния К(t) к состояниям k(t+1), k(t+2)...
За один такт свое состояние может менять большое число элементов Неймана, что фактически приводит к параллельной обработке информации.
Архитектура классической ЭВМ
Структура ЭВМ
В 1946 году Джоном Нейманом на летней сессии Пенсильванского университета был распространен отчет, заложивший основы развития вычислительной техники на несколько десятилетий вперед. Последующий опыт разработки ЭВМ показал правильность основных выводов Неймана, которые, естественно, в последующие годы развивались и уточнялись.
Основные рекомендации, предложенные Нейманом для разработчиков ЭВМ [Майоров С.А., Новиков Г.И.
Структура электронных вычислительных машин
Л.: Машиностроение, Ленингр.отд-ие, 1979]:
- Машины на электронных элементах должны работать не в десятичной, а в двоичной системе счисления.
- Программа должна размещаться в одном из блоков машины - в запоминающем устройстве (ЗУ), обладающем достаточной емкостью и соответствующими скоростями
выборки и записи команд программы.
-
Программа так же, как и числа, с которыми оперирует машина, представляется в двоичном коде. Таким образом, по форме представления команды и числа однотипны. Это обстоятельство приводит к следующим важным последствиям:
- промежуточные результаты вычислений, константы и другие числа могут размещаться
в том же ЗУ, что и программа;
- числовая форма записи программы позволяет машине производить операции над
величинами, которыми закодированы команды программы.
- Трудности физической реализации ЗУ, быстродействие которого соответствовало бы скорости работы логических схем, требует иерархической организации памяти.
- Арифметические устройства машины конструируются на основе схем, выполняющих операцию сложения. Создание специальных устройств для вычисления других операций нецелесообразно.
- В машине используется параллельный принцип организации вычислительного процесса (операции над словами производятся одновременно по всем разрядам).
ЭВМ, построенная по принципам, определенным Нейманом, состоит из следующих основных блоков (рис. 4): запоминающего устройства, арифметико-логического устройства и устройства управления.
Рис. 10.4.
Структура классической ЭВМ
Запоминающее устройство, или память - это совокупность ячеек, предназначенных для хранения некоторого кода. Каждой из ячеек присвоен свой номер, называемый адресом . Информацией, записанной в ячейке, могут быть как команды в машинном виде, так и данные.
Машинная команда - это двоичный код, определяющий выполняемую операцию, адреса используемых операндов и адрес ячейки ЗУ, по которому должен быть записан результат выполненной операции.
Операции, определяемые кодом операции команды, выполняются в арифметико-логическом устройстве (АЛУ).
Все действия в ЭВМ выполняются под управлением сигналов, вырабатываемых устройством управления (УУ). Управляющие сигналы формируются на основе информации, содержащейся в выполняемой команде, и признаков результата, сформированных предыдущей командой (если выполняемая команда является, например, командой условного перехода). Устройство управления помимо сигналов, определяющих те или иные действия в различных блоках ЭВМ (например, вид операции в АЛУ или сигнал считывания из ЗУ), формирует также адреса ячеек, по которым производится обращение к памяти для считывания команды и операндов и записи результата выполнения команды.
Устройство управления формирует адрес команды, которая должна быть выполнена в данном цикле, и выдает управляющий сигнал на чтение содержимого соответствующей ячейки запоминающего устройства. Считанная команда передается в УУ. По информации, содержащейся в адресных полях команды, УУ формирует адреса операндов и управляющие сигналы для их чтения из ЗУ и передачи в арифметико-логическое устройство. После считывания операндов устройство управления по коду операции, содержащемуся в команде, выдает в АЛУ сигналы на выполнение операции. Полученный результат записывается в ЗУ по адресу приемника результата под управлением сигналов записи. Признаки результата (знак, наличие переполнения, признак нуля и так далее) поступают в устройство управления, где записываются в специальный регистр признаков. Эта информация может использоваться при выполнении следующих команд программы, например команд условного перехода.