Chapter_02 (1110554), страница 3
Текст из файла (страница 3)
= +).R1 := ПАМ[x]; R2 := ПАМ[y]; S: = R1R2; ПАМ[z] := S;В дальнейшем конструкция ПАМ[А], как это принято в научной литературе по архитектуре ЭВМ,для краткости будет обозначаться как <А>, тогда наш пример выполнения команды перепишется так:R1: = <x>; R2: = <y>; S: = R1R2; <z> := S;Опишем теперь более формально шаги выполнения одной команды в машине Фон Неймана:1. RK := <RA>; считать из ячейки памяти с адресом RA команду на регистр команд RK;2.
RA := RA+1; увеличить счётчик адреса на единицу;3. Выполнить очередную команду, хранящуюся в регистре RK.Затем по такой же схеме из трёх шагов выполняется следующая команда и т.д. Заметим, что послевыполнения очередной команды ЭВМ "не помнит", какую именно команду она только что выполнила.Напомним, что по такому же принципу выполняли свои "команды" и такие известные абстрактныеисполнители алгоритмов, как машина Тьюринга и Нормальные алгоритмы Маркова.Итак, если машинное слово попадает на регистр команд, то оно интерпретируется УУ как команда, а если слово попадает в АЛУ, то оно по определению считается числом. Это позволяет, например,складывать команды программы как числа, либо выполнить некоторое число как команду.
Разумеется,обычно такая ситуация является семантической ошибкой, если только специально не предусмотрена программистом для каких-то целей (мы иногда будем оперировать с командами, как с числами, в одной изнаших учебных машин).Современные ЭВМ в той или иной степени нарушают практически все принципы Фон Неймана. Исключение, пожалуй, составляют только принцип автоматической работы, он лежит в самой основе определения ЭВМ как устройства для автоматической обработки данных, и принцип хранимой программы.Например, существуют компьютеры, которые различают команды и данные. В них каждая ячейка основной памяти кроме собственно машинного слова хранит ещё специальный признак, называемый тэгом1В схеме на рис. 2.1 от АЛУ к УУ тоже ведёт тонкая стрелка, однако она определяет не управляющийсигнал (так как АЛУ не может "командовать" УУ), а информационный, с помощью таких сигналов АЛУ "рапортует" УУ, что заданное действие выполнено, или при его выполнении возникла ошибка.6(tag), который и определяет, чем является это машинное слово.1 Так нарушается принцип неразличимости команд и чисел.
В такой архитектуре при попытке выполнить число как команду, либо складыватькоманды как числа, центральным процессором будет зафиксирована ошибка. Очевидно, что это позволяет повысить надёжность программирования на языке машины, не допуская, как часто говорят, случайного"выхода программы на константы".Практически все современные ЭВМ нарушают принцип однородности и линейности памяти. Памятьможет, например, состоять из двух частей со своей независимой нумерацией ячеек в каждой такой части(с такой архитектурой мы вскоре познакомимся); или быть двумерной, когда адрес ячейки задаётся неодним, а двумя числами; либо ячейки памяти могут вообще не иметь адресов, такая память называетсяассоциативной2 и т.д.Все современные достаточно мощные компьютеры нарушают и принцип последовательного выполнения команд: они могут одновременно выполнять несколько команд как из одной программы, так, иногда, и из разных программ (такие компьютеры могут иметь несколько центральных процессоров, а такжебыть так называемыми конвейерными ЭВМ, их мы рассмотрим в конце нашего курса).Особо следует отметить, что в архитектуре машины Фон Неймана зафиксированы и другие принципы, которые в работе самого Фон Неймана явно не формулировались, так как, безусловно, считались самоочевидными.
Так, например, предполагается, что во время выполнения программы не меняется числоузлов компьютера и взаимосвязи между ними, не меняется число ячеек в оперативной памяти. Далее, например, считалось, что машинный язык при выполнении программы не изменяется (например, "вдруг" непоявляются новые машинные команде) и т.д.3 В то же время сейчас существуют ЭВМ, которые нарушаюти этот принцип. Во время работы одни устройства могут, как говорят, отбраковываться (например, отключаться для ремонта), другие – автоматически подключаться.
Кроме того, во время работы программымогут, как изменяться, так и появляются новые связи между элементами ЭВМ (например, в так называемых транспьютерах). Существуют и компьютеры, которые могут менять набор своих команд, они называются ЭВМ с микропрограммным управлением, о них немного рассказывается в конце этой книги.В заключение нашего краткого рассмотрения машины Фон Неймана ещё раз обратим внимание наодно важное свойство компьютеров, которое часто ускользает от внимания читателей.
Закончив выполнение текущей команды, машина начисто ''забывает" о том, что это была за команда, где она располагалась в памяти, с какими операндами работала и т.д. И, хотя некоторые команды могут изменять значения специальных флагов (или регистра результата выполнения команды), но это не меняет сути дела,т.к. не сохраняется информации, какая именно команда и когда изменила эти значения. Выполнениекаждой следующей команды практически начинается "с чистого листа".
Это важное свойство позволяет,например, надолго прерывать выполнение программы, запомнив относительно небольшой объём информации (текущее состояние регистров компьютера, сведения об открытых файлах и т.д.). В дальнейшем влюбой момент возможно возобновление счёта этой программы с прерванного места (разумеется, самапрограмма и её данные в памяти компьютера должны сохраниться, или же должны быть восстановлены впрежнем виде).
Как мы узнаем дальше в нашем курсе, это свойство является основой для так называемогомультипрограммного режима работы компьютера.На этом мы закончим краткое описание машины Фон Неймана и принципов её работы. Первая ЭВМ,построенная на основе принципов Фон Неймана, называлась EDVAC (Electronic Delay Storage Automatic Calculator – автоматический вычислитель с электронной памятью на линиях задержки4) [3].Компьютер EDVAC был построен в 1949 году в Англии М.Уилксом (при участии знакомого Вам поего знаменитой машине А.Тьюринга). EDVAC была одноадресной ЭВМ (что это такое мы вскоре узнаем), которая работала в двоичной системе счисления со скоростью примерно 100 операций в се1Для экономии парями современные компьютеры могут приписывать такой тэг не каждой ячейке в отдельности, а сразу целой последовательности ячеек, называемой сегментом.
Таким образом, различают, например, сегменты команд и данных, при этом выполнение данных в виде команды может трактоваться как ошибка.2Поиск нужной ячейки в ассоциативной памяти производится не по её адресу, а по содержимому хранящегося в этой ячейки машинного слова (например, считать из памяти первое машинное слово, хранящее целоечисло, кратное пяти и т.п.).3В теории алгоритмов аналогом такого компьютера, нарушающего эти принципы, является, например, такая экзотическая модификация машины Тьюринга, у которой во время работы могут появляться и исчезатьстроки и столбцы её таблицы и изменяться содержимое клеток этой таблицы.4Динамическая оперативная память этой ЭВМ была построена на так называемых ртутных линиях задержки – это длинные металлические трубки, наполненные парами ртути.
Заметим, что эта память не совсемотвечала принципу однородности памяти фон Неймана, так как одинаковое время доступа к каждой ячейке было только в среднем за большое число обращений.7кунду. Заметим, что именно от этой машины принято отсчитывать первое поколение ЭВМ (всепредшествующие "не совсем настоящие" компьютеры можно условно отнести к нулевому поколению).И в заключение этого раздела мы совсем немного рассмотрим архитектуру ЭВМ на уровне инженера-конструктора.
Это будет сделано исключительно для того, чтобы снять тот покров таинственности сработы центрального процессора, который есть сейчас у некоторых читателей: как же машина может автоматически выполнять различные операции над данными, неужели она такая умная? Такое чувство непонимания является для профессионалов совершенно неприемлемым.Аппаратура современных ЭВМ конструируется из некоторых относительно простых элементов,называемых в русскоязычной литературе вентилями (по-английски – circuits).
Каждый вентиль является достаточно простой (электронной) схемой и реализует одну из логических операций, у негоесть один или два входа (аргументы операции) и один выход (результат). На входах и выходе могутбыть электрические сигналы двух видов: низкое напряжение (трактуется как ноль или логическоезначение false) и высокое (ему соответствует единица или логическое значение true)1. Основные вентили у нас будут следующие.1. Отрицание, этот вентиль имеет один вход и один выход, он реализует хорошо известнуюВам операцию отрицания not (НЕ) языка Паскаль. Другими словами, если на вход такоговентиля подаётся импульс высокого напряжения (значение true), то на выходе получитсянизкое напряжение (значение false) и наоборот. Будем в наших схемах изображать этот вентиль так:not2.
Дизъюнкция или логическое сложение, этот вентиль реализует хорошо известную Вам операцию Паскаля or (ИЛИ), мы будем изображать его какor3. И, наконец, вентиль, реализующий конъюнкцию или логическое умножение, в Паскале этооперация and (И), мы будем изображать его какandЗаметим, что чисто с технической точки зрения инженерам легче создавать вентили, задающиелогические функции not and и not or (для их реализации в электронных схемах требуется наодин транзистор меньше, чем для вентилей and и or ), но здесь это нас интересовать не будет.Далее, можно считать, что каждый вентиль срабатывает (т.е.
преобразует входные сигналы в выходные) не непрерывно, а только тогда, когда на этот вентиль по специальному управляющему проводу приходит так называемый тактовый импульс. Заметим, что по этому принципу работаютЭВМ, которые называются дискретными, в отличие от аналоговых компьютеров, схемы в которыхработают непрерывно (всё время). Подавляющее число современных ЭВМ являются дискретными,только их мы и будем изучать. О принципах работы аналоговых ЭВМ немного рассказывается в последней главе этой книги. Более подробно об этом можно прочесть в книгах [1,3].Из вентилей строятся так называемые интегральные схемы (по-английски chips) – это наборвентилей, соединённых проводами и такими радиотехническими элементами, как сопротивления,конденсаторы и индуктивности, знакомые Вам из курса физики.