Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

7802

.pdf
Скачиваний:
0
Добавлен:
23.11.2023
Размер:
1.23 Mб
Скачать

61

Инициализация

Выборка команды

Увеличение программного счетчика

Дешифрация и выполнение команды

Нет Остановка процессора

Да

Инициализация

Рис. 5.3. Обобщенный алгоритм функционирования фон- неймановской ЭВМ

Обычно на шине в любой момент можно выделить два активных устройства. Одно из них называется задатчиком и инициирует операцию обмена данными (формирует адреса и управляющие сигналы), другое называется исполнителем и выполняет операцию (дешифрирует адреса и управляющие сигналы и принимает или передает данные). В большинстве случаев задатчиком является ЦП. Память всегда выступает только в качестве исполнителя.

Функционирование ЭВМ с шинной структурой можно описать следующим обобщенным алгоритмом (рис. 5.3):

1.Инициализация. После включения ЭВМ или операции сброса в регистры центрального процессора заносятся некоторые начальные значения. Обычно в процессе инициализации в память ЭВМ помещается программа, называемая первичным загрузчиком. Основное назначение первичного загрузчика загрузить в память с устройства внешней памяти операционную систему. Эта программа может быть размещена в энергонезависимом устройстве памяти или автоматически считываться с некоторого устройства внешней памяти. Мы не будем здесь подробно останавливаться на механизмах загрузки операционной системы, тем более что они могут существенно различаться для разных типов ЭВМ. Пока будем полагать, что в памяти некоторым образом оказалась первая из подлежащих выполнению программ. Программному счетчику присваивается начальное значение, равное адресу первой команды программы, указанной выше.

2.Центральный процессор производит операцию считывания

62

команды из памяти. В качестве адреса ячейки памяти используется содержимое программного счетчика.

3.Содержимое считанной ячейки памяти интерпретируется процессором как команда и помещается в регистр команды. Устройство управления приступает к интерпретации прочитанной команды. По полю кода операции из первого слова команды устройство управления определяет ее длину и, если это необходимо, организует дополнительные операции считывания, пока вся команда полностью не будет прочитана процессором. Вычисленная длина команды прибавляется к исходному содержимому программного счетчика, и когда команда полностью прочитана, программный счетчик будет хранить адрес следующей команды.

4.По адресным полям команды устройство управления определяет, имеет ли команда операнды в памяти. Если это так, то на основе указанных в адресных полях режимов адресации вычисляются адреса операндов и производятся операции чтения памяти для считывания операндов.

5.Устройство управления и арифметико-логическое устройство выполняют операцию, указанную в поле кода операции команды. Во флаговом регистре процессора запоминаются признаки результата операции (равно нулю или нет, знак результата, наличие переполнения и т.д.).

6.Если это необходимо, устройство управления выполняет операцию записи для того, чтобы поместить результат выполнения команды в память.

7.Если последняя команда не была командой ОСТАНОВИТЬ ПРОЦЕССОР, то описанная последовательность действий повторяется, начиная с шага 1. Описанная последовательность действий центрального процессора с шага 1 до шага 6 называется циклом процессора.

Большинство мини- и микроЭВМ имеют шинную организацию и их поведение описывается приведенным выше алгоритмом. В различных конкретных ЭВМ реализация этого алгоритма может несколько отличаться. Так, например, по-разному может осуществляться синхронизация задатчиков и исполнителей, процессор может считывать из памяти не одну команду, а сразу несколько и хранить их в специальной очереди команд. Часто используемые программой команды и данные могут храниться не в основной памяти ЭВМ, а

вбыстродействующей буферной памяти и т.д. Таким образом, функционирование любой фон-неймановской ЭВМ описывается алгоритмом, близким к приведенному выше, и представляет собой последовательность достаточно простых действий.

5.3.Функционирование ЭВМ с канальной организацией

В основе этого типа организации ЭВМ лежит множественность каналов связи между устройствами и функциональная специализация узлов. Упрощенная схема организации ЭВМ с каналами приведена на рис. 5.4.

63

Контроллер ЦП оперативной

Оперативная

памяти

память

 

 

 

 

 

...

 

 

 

 

 

 

 

 

 

 

КАНАЛ 0

КАНАЛ 1

КАНАЛ 7

 

 

ВУ

ВУ

 

ВУ

 

 

ВУ

 

ВУ

 

 

ВУ

Рис. 5.4. Упрощенная схема ЭВМ с канальной организацией: ЦП центральный процессор; ВУ внешние устройства.

Сравним схему ЭВМ с каналами и описанную выше схему ЭВМ с шинной организацией.

Все фон-неймановские ЭВМ очень похожи друг на друга и алгоритм функционирования центрального процессора по сути ничем не отличается от описанного выше.

Помимо уже знакомого набора устройств (центральный процессор, память, устройства ввода-вывода) в состав ЭВМ с канальной организацией входят устройства, называемые каналами. Канал это специализированный процессор, осуществляющий всю работу по управлению контроллерами внешних устройств и обмену данными между основной памятью и внешними устройствами. Устройства группируются по характерной скорости и подключаются к соответствующим каналам. «Быстрые» устройства (например, накопители на магнитных дисках) подсоединяются к селекторным каналам. Такое устройство получает селекторный канал в монопольное использование на все время выполнения операции обмена данными. «Медленные» устройства подключаются к мультиплексным каналам. Мультиплексный канал разделяется (мультиплексируется) между несколькими устройствам, при этом возможен одновременный обмен данными с несколькими устройствами. Доступ к оперативной памяти может получить и центральный процессор, и один из каналов. Для управления очередностью доступа имеется контроллер оперативной памяти. Он определяет приоритетную дисциплину доступа при одновременном обращении нескольких устройств к памяти. Наименьший приоритет имеет центральный процессор. Среди каналов больший приоритет имеют медленные каналы. Таким образом, приоритет обратно пропорционален

64

частоте обращения устройств к памяти.

За счет существенного усложнения организации ЭВМ упрощается архитектура ввода-вывода. Связь между отдельными узлами осуществляется по схеме, напоминающей треугольник. Операции обмена данными становятся более простыми. Канал, по сути, представляет собой специализированный «интеллектуальный» контроллер прямого доступа к памяти. Для ускорения обмена данными реализованы несколько трактов обмена данными (процессор

основная память и каналы основная память). О своем состоянии канал может информировать процессор с помощью прерываний. Все контроллеры внешних устройств подключаются к «своим» каналам с помощью стандартного интерфейса. Свобода подключения внешних устройств сохраняется благодаря стандартному протоколу интерфейса, при этом появляется возможность группировать устройства по характеристикам.

Результатом введения каналов (специализированных процессоров ввода-вывода) является большая стандартизация и упрощение процессов обмена. С другой стороны, вводятся некоторые ограничения. Например, сохраняется только одна схема, напоминающая схему прямого доступа, с обменом информации между процессором и каналом по прерываниям.

Канал, являясь хотя и специализированным, но все-таки процессором, выполняет свою канальную программу. Она состоит из канальных команд и хранится в оперативной памяти. Длина канальной программы произвольна, последняя команда канальной программы содержит признак конца. Подготовку канальной программы и загрузку ее в оперативную память осуществляет операционная система.

Отметим некоторые особенности канальных машин. Несколько подряд идущих канальных команд могут образовывать цепочку данных. В этом случае имеется одна команда обмена, например чтения физической записи из нескольких адресов оперативной памяти со счетчиков. Одна физическая запись распределяется в несколько адресов оперативной памяти.

В ЭВМ с канальной организацией процессор практически полностью освобождается от рутинной работы по организации ввода-вывода. Управление контроллерами внешних устройств и обмен данными берет на себя канал. Наличие нескольких трактов передачи данных снимает трудности, связанные с блокировкой единственного тракта передачи данных (системной шины), что повышает скорость обмена. Все это дает возможность производить обмен данными с внешними устройствами параллельно с основной вычислительной работой центрального процессора. В результате общая производительность системы существенно возрастает. Удорожание схемы окупается.

Одной из первых машин с каналами была ЭВМ второго поколения IBM-704. Ярким примером ЭВМ с каналами являются машины семейства IBM360/370. Появление этих ЭВМ произвело переворот в вычислительной технике, и на долгие годы они стали образцом подражания у создателей ЭВМ. Хотя в настоящее время эти машины ушли в прошлое, они оставили богатое наследие в виде интересных архитектурных решений, программных и алгоритмических разработок. В настоящее время схемы со специализированными процессорами

65

ввода-вывода часто встречаются в ЭВМ различных типов. Несомненно, идея схемы с каналами не умерла, и к ней еще неоднократно будут возвращаться.

5.4. Информационная модель ЭВМ

Обработка чисел, символьной информации, логическая обработка, обработка сигналов это все частные случаи общего понятия под названием «обработка информации». Для ЭВМ характерен признак: информация представляется с помощью двоичных целых чисел. Существует три этапа обработки информации:

хранение двоичной информации;

передача от одного хранилища к другому;

преобразование.

ЭВМ можно представить как совокупность узлов, соединенных каналом связи. Узлы соединяют в себе функции хранения и преобразования. По каналам связи передается информация от узла к узлу. Мы будем говорить о потоках информации в каналах связи (рис. 5.5). Некоторые узлы могут иметь специальную функцию ввода информации в систему и вывода из нее.

У 1

 

 

У

 

 

ввод

 

 

2

 

 

У 3

...

У n

 

 

 

 

вывод

Рис. 5.5 Информационная модель ЭВМ: У узлы

Показанная на рис. 5.5 модель не имеет ограничений на связи между отдельными узлами. Реализовать такую систему весьма сложно. Реально существующие системы имеют ряд ограничений на связи и четкое функциональное назначение отдельных узлов. Функции отдельного узла могут зависеть от его состояния. Состояние узла описывается значениями его внутренних полей (регистров) и может определяться процессом его функционирования или задаваться извне. Состояние узла будем называть его режимом. Физически режим может определяться значением регистра узла. Тогда установить режим узла означает присвоить регистру определенное значение.

По каналам связи узлы могут обмениваться либо значащей

66

информацией (сообщениями), либо управляющей. Под сообщениями будем понимать последовательности двоичных цифр, сохраняемые или обрабатываемые узлом. Управляющая информация определяет режимы узлов и каналов связи.

Информационная модель позволяет определить основные характеристики ЭВМ:

1.Узлы хранения имеют:

вместимость максимальную, среднюю или минимальную;

скорость выборки;

разрядность выборки.

2.Преобразующие узлы имеют скорость преобразования.

3.Каналы определяются:

скоростью передачи информации (пропускная способность);

разрядностью передачи.

А)

У 1

У 2

У N

Б)

ПР

 

ПАМ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

КВВ

В)

 

 

 

 

 

 

 

 

 

 

ПАМ 1 ПАМ 2 ПАМ 3

 

 

Ввод-вывод

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ПР 1

 

 

КМ

 

 

Г)

 

 

 

 

 

 

Исходные данные

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

КВВ 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

У 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ПР 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

КВВ 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

У 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

...

У N

Результат

67

Рис. 5.6. Различные схемы организации ЭВМ:

ЭВМ с шинной организацией (а); канальная ЭВМ (б); ЭВМ с перекрестной коммутацией (в); конвейерная ЭВМ (г); КМ коммутирующая матрица; КВВ канал ввода-вывода

Из множества возможных соединений отбираются несколько типовых схем, обеспечивающих простоту, возможность реконфигурации (расширения), надежность, стандартизацию и т.д. Можно отметить следующие схемы (рис. 5.6):

с шинной организацией;

специализированные процессоры (каналы);

схемы с коммутацией;

архитектуры с распределенными функциями (распределенный интеллект);

с конвейерной организацией.

Рассмотрим некоторые частные модели ЭВМ, имеющие широкое распространение или представляющие теоретический интерес.

Шинная организация. В этой схеме все устройства симметрично подсоединяются к одному каналу, называемому общей шиной. Симметрия подключения гарантирует свободное подключение новых устройств, т.е. система имеет теоретически неограниченное развитие. Некоторые узлы могут иметь специфические свойства, например процессор, оперативная память, внешние накопители данных. Между ними организуется обмен информации. Так как потоки информации ограничены возможностями одного канала, эта схема имеет принципиальные ограничения скорости работ.

Канальная организация. В этой схеме операции обмена данными с внешними устройствами организуются через специализированный узел канал ввода-вывода. Благодаря этому можно организовывать обработку информации параллельно с вводом-выводом.

Организация с перекрестной коммутацией. Идея структурной организации таких ЭВМ заключается в том, что все связи между узлами осуществляются с помощью специального устройства коммутирующей матрицы. Коммутирующая матрица может связывать между собой любую пару узлов, причем таких пар может быть сколько угодно связи не зависят друг от друга. В такой схеме нет конфликтов из-за связей, есть конфликты только из-за ресурсов. Возможность одновременной связи нескольких пар устройств позволяет достичь очень высокой производительности комплекса.

Архитектура с распределенными функциями. Это являлось основной идеей японского проекта ЭВМ пятого поколения. В настоящее время эта идея осталась не реализованной. Суть идеи заключается в том, что обработка информации распределяется по «интеллектуальным» периферийным устройствам. Переход от ЭВМ четвертого поколения к ЭВМ пятого поколения намечалось осуществить не за счет существенного изменения элементной базы (как было ранее), а за счет резкого качественного изменения сложности и

68

интеллектуальности различных компонент ЭВМ.

Конвейерная организация. Здесь обрабатывающее устройство разделяется на последовательно включенные операционные блоки, каждый из которых специализирован на выполнение строго определенной части операции. При этом работа осуществляется следующим образом: когда i-й операционный блок выполняет i-ую часть j-й операции, (i-1)-й операционный блок выполняет (i-1)-ую часть (j+1)-й операции, а (i+1)-й операционный блок выполняет (i+1)-ую часть (j-1)-й операции. В результате образуется своего рода конвейер обработки и за счет этого повышается производительность системы.

5.5. Основные команды ЭВМ

Большое изумление у человека, не знакомого с вычислительной техникой, вызывает тот факт, что все разнообразие решаемых на ЭВМ задач реализуется с помощью небольшого набора очень простых команд. Система команд у типичной ЭВМ включает в себя всего 60 — 150 базовых команд. Все команды в основном служат для выполнения очень простых действий, таких, как прочитать, запомнить, сложить, сдвинуть, сравнить и т.д. Интеллектуальность ЭВМ достигается за счет того, что она способна выполнять программы, состоящие из большого числа таких простых действий с огромной, не достижимой для человека скоростью. В данном разделе кратко рассмотрим набор команд, используемых в типичных ЭВМ, и действия, реализуемые этими командами.

При описании системы команд ЭВМ обычно принято классифицировать команды по функциональному назначению, длине, способу адресации и другим признакам. Классификации команд по различным признакам показаны на рис. 5.7. Рассмотрим основные группы команд, придерживаясь классификации команд на группы по функциональному назначению.

69

Классификация команд ЭВМ

По функцио-

По количеству

По способу

По длине

По способу

нальному

кодирования

адресов

адресации

 

назначению

операции

 

 

 

 

Команды

Нульадрес-

С фиксирован-

Один байт

 

передачи

ные или без-

ной длиной

(слово)

 

данных

адресные

кода

 

 

 

 

операции

 

 

Команды

С одним

 

Два байта

 

обработки

 

 

адресом

С переменной

(слова)

 

данных

 

 

 

 

 

длиной

 

 

 

 

 

 

Команды

 

кода

 

 

С двумя

операции

Три байта

 

передачи

адресами

 

(слова)

 

управления

 

 

 

Дополни-

С тремя

тельные

адресами

(прочие)

 

Рис. 5.7. Классификация команд ЭВМ

Команды передачи данных. Данная группа команд включает в себя подгруппы команд передачи кодов между регистрами внутри процессора, из регистров процессора в память, из памяти в регистры процессора, из одних ячеек памяти в другие и передачи данных между процессором и портами внешних устройств. Отдельную подгруппу составляют команды работы со стеком. Они позволяют включать данные в стек для временного хранения и извлекать данные из стека при необходимости их использования. Подробное назначение и принципы использования стеков в ЭВМ рассмотрим ниже при обсуждении работы с подпрограммами и прерываниями.

Команды обработки данных. Данную группу команд с точки зрения выполняемых над данными операций можно подразделить на арифметические (сложить, вычесть, умножить и т.д.), логические (операции И, ИЛИ, НЕ и т.д.) и команды сдвига. Команды этого типа могут иметь один или два операнда. Операнды могут храниться в регистрах центрального процессора, в памяти или в самой команде. Результат операции формируется в регистре-приемнике или в специализированном регистре-аккумуляторе. Команды данной группы формируют признаки результатов, устанавливаемые в регистре флагов

70

процессора, перенос из старшего разряда, переполнение, нулевой результат и др. К арифметическим командам относят также и команды сравнения. Обычно для сравнения двух чисел процессор выполняет операцию вычитания. По результату вычитания устанавливаются флаги во флаговом регистре процессора. Очевидно, что если сравниваемые величины равны, результат вычитания будет нулевым, и во флаговом регистре установится флаг нулевого результата. Если первая из сравниваемых величин больше результат вычитания будет отрицательным и установится флаг отрицательного результата и т.д. Результат вычитания не сохраняется в памяти, по состоянию флагового регистра можно судить о результатах сравнения двух величин. Многие процессоры имеют команды сравнения операнда с нулем. В некоторых процессорах имеются команды проверки или установки состояния отдельных битов в операнде.

Команды передачи управления. Они имеют важное значение, так как используются для изменения естественного порядка следования команд и организации циклических участков в программах.

Простейшей командой передачи управления является команда безусловного перехода JMP <адрес>, которая загружает адрес перехода, указанный в команде, в программный счетчик. Команды условного перехода проверяют указанное в команде условие и модифицируют программный счетчик, если условие истинно. Обычно команды условного перехода используются после команд, изменяющих состояние флагового регистра (например, команд сравнения). При проверке условия производится сравнение состояния одного или нескольких флагов из флагового регистра с комбинацией, указанной в коде команды условного перехода. Модификация программного счетчика может производиться либо загрузкой в него нового значения, либо сложением его со смещением, указанным в команде.

Команды для работы с подпрограммами. Стеки. В практике программирования широко используется такой прием, как организация подпрограмм. Подпрограмма описывается один раз, а использоваться (вызываться) может из различных мест программы. При этом, после того как подпрограмма закончила свою работу, управление должно быть передано туда, откуда подпрограмма была вызвана на команду, следующую в памяти сразу за командой обращения к подпрограмме. Адрес команды, на которую управление передается после окончания работы подпрограмм, называется адресом возврата. Очевидно, для того, чтобы начать выполнять подпрограмму, в программный счетчик необходимо загрузить адрес первой команды подпрограммы. Для осуществления возврата из подпрограммы необходимо запомнить в каком-то месте адрес возврата. Можно, например, сохранить адрес возврата в одном из регистров процессора. Такой способ сохранения адреса возврата очень прост и легко реализуется. Однако он обладает одним существенным недостатком. Достаточно часто встречаются подпрограммы, которые вызывают другие подпрограммы. Пусть основная программа вызвала подпрограмму А. Она в свою очередь обратилась к подпрограмме В. Если адрес возврата для подпрограммы А хранится в регистре процессора, то куда девать адрес возврата при вызове подпрограммы В?

71

Для организации подпрограмм большинство ЭВМ используют аппаратно поддерживаемую структуру данных, называемую стеком. Стек это структура данных, организованная по принципу: последним вошел первым вышел, т.е. последние записанные в стек данные извлекаются из него первыми. В переводе с англ., stack стопка. Аналогом стека может служить стопка тарелок. Положить тарелку в стопку можно только сверху, извлечь опять-таки только верхнюю тарелку. В ЭВМ для организации стека выделяется область оперативной памяти, а для ее адресации и доступа к стеку используется упоминавшийся выше регистр указатель стека. Указатель стека хранит адрес ячейки памяти, содержащей последнее помещенное в стек значение.

Для возврата из подпрограммы в основную программу служат команды возврата RETURN. Команды возврата из подпрограммы извлекают из стека верхний элемент и помещают его в программный счетчик. Если имели место несколько вложенных вызовов подпрограмм, то возврат произойдет по адресу возврата, сохраненному после последнего вызова, так как для хранения адресов возврата используется стек, и последний сохраненный адрес возврата будет использован первым.

Прочие команды. В ЭВМ могут быть дополнительные (специальные) команды. К их числу можно отнести команды остановки центрального процессора, сброса внешних устройств, установки или сброса отдельных признаков и т.д.

5.6. Поколения вычислительных средств

Первые проекты электронных вычислительных машин (ЭВМ) появились в конце 30-х начале 40-х годов XX в. Технические предпосылки для этого уже были созданы, развивалась электроника и счетно-аналитическая вычислительная техника. В 1904 г. был изобретен первый ламповый диод, а в 1906 г. — первый триод (соответственно двух- и трехэлектродная электронная лампа); в 1918 г. — электронное реле (ламповый триггер). Триггерные схемы стали широко применяться в электронике для переключения и релейной коммутации.

Другой технической предпосылкой создания ЭВМ стало развитие электромеханической счетно-аналитической техники. Благодаря накопленному опыту в области развития вычислительной техники в середине 30-х годов стало возможным создание программно-управляемых вычислительных машин, а построение ВМ на электронных схемах открывало широкие перспективы, связанные с увеличением надежности и быстродействия.

ЭВМ появились, когда возникла острая необходимость в проведении трудоемких и точных расчетов. Уровень прогресса в таких областях науки и техники, как, например, атомная энергетика, аэрокосмические исследования, во многом зависел от возможности выполнения сложных расчетов, которые нельзя было осуществить в рамках электромеханических счетных машин. Требовался переход к вычислительным машинам, работающим с большей производительностью.

72

В истории развития ЭВМ выделяют пять этапов, соответствующих пяти поколениям ЭВМ.

Период машин первого поколения начинается с переходом к серийному производству ЭВМ в начале 50-х годов XX в. В них были реализованы основные принципы, предложенные Джоном фон-Нейманом.

1.Принцип хранимой программы. Машина имеет память, в которой хранятся программа, данные и результаты промежуточных вычислений. Программа вводится в машину, так же как и данные, в виде двоичных кодов (а не штекерным методом, т.е. коммутацией проводов в определенной последовательности).

2.Адресный принцип. В команде указываются не сами числа, над которыми нужно выполнять арифметические действия, а адреса ячеек памяти, где эти числа находятся.

3.Автоматизм. После ввода программы и данных машина работает автоматически, выполняя предписания программы без вмешательства человека. Для этого машина запоминает адрес выполняемой команды, а каждая команда содержит указание об адресе следующей команды. Указание может быть одним из трех типов: неявным (перейти к команде, следующей по адресу за выполняемой), безусловным (перейти к команде по заданному адресу), условным (проверить заданное условие и в зависимости от его выполнения перейти к команде по тому или иному адресу).

4.Переадресация. Адреса ячеек памяти, указанные в команде, можно вычислять и преобразовывать как числа.

Структура ЭВМ, в которой реализованы принципы фон-Неймана, впоследствии получила название структуры «фон-Неймана» (или классической). Все дальнейшее развитие ЭВМ шло двумя путями: совершенствование структуры фон-Неймана и поиск новых структур.

Технической основой элементной базы процессоров первых ЭВМ были электронные вакуумные лампы (ЭВЛ), а в качестве оперативных запоминающих устройств использовались электронно-лучевые трубки (ЭЛТ). Это были громоздкие по габаритам машины, занимающие много места и потребляющие много электроэнергии. Они делали несколько тысяч операций в секунду и обладали памятью в несколько тысяч машинных слов. Эти машины предполагали монопольный режим использования, т.е. в распоряжении пользователя были все ресурсы машины и ее управление. Программист писал свою программу в машинных кодах и отлаживал ее за пультом машины, которая на время отладки была полностью в его распоряжении. При этом 90% времени машина простаивала в ожидании команд, т.е. использование машинных ресурсов было малоэффективным из-за отсутствия развитой операционной системы. Использовались ЭВМ первого поколения в основном для научных расчетов. Первой отечественной ЭВМ была МЭСМ (малая электронная счетная машина), разработанная в 1947 — 1951 гг. под руководством акад. С.А. Лебедева. В 1952 г. была введена в эксплуатацию БЭСМ (большая электронная счетная машина), созданная под руководством С.А. Лебедева. В 1955 г. начался выпуск малой ЭВМ «Урал-1» (руководитель проекта Б.И. Рамеев). Примером зарубежной серийной модели ЭВМ является

73

IBM-701 (США).

Второе поколение ЭВМ (конец 50-х середина 60-х годов) называют транзисторно-ферритовым, так как транзисторы (твердые диоды и триоды) заменили электронные лампы в процессорах, а ферритовые (намагничиваемые) сердечники электронно-лучевые трубки в оперативных запоминающих устройствах.

Применение транзисторов существенно повлияло на характеристики

иструктуру машин. Транзисторные схемы позволили повысить плотность монтажа электронной аппаратуры на порядок и существенно (на несколько порядков) снизить потребляемую электроэнергию. Срок службы транзисторов на два-три порядка превосходил срок службы электронных ламп. Скорость ЭВМ возросла до сотен тысяч операций в секунду, а память до десятков тысяч машинных слов.

Создание долговременной памяти на магнитных дисках и лентах, а также возможность подключения к ЭВМ изменяемого состава внешних устройств существенно расширили функциональные возможности вычислительных машин.

Ворганизации вычислительного процесса крупным достижением было совмещение во времени вычислений и ввода-вывода информации, переход от монопольного режима использования ресурсов машины к пакетной обработке. Задания для ЭВМ (на перфокартах, магнитных лентах или дисках) собирались в пакет, который обрабатывался без перерыва между заданиями. Это позволило более экономно использовать ресурсы машины.

Впрограммировании были разработаны методы программирования в символических обозначениях, созданы первые алгоритмические языки и трансляторы с этих языков, созданы библиотеки стандартных программ.

Наиболее широкое применение нашли отечественные ЭВМ, такие, как БЭСМ-4, М-220, «Минск-32». Типичным представителем зарубежной ЭВМ второго поколения является IBM-7090.

Третье поколение ЭВМ (конец 60-х начало 70-х годов) характеризуется появлением в качестве элементной базы процессора интегральных полупроводниковых схем (вместо отдельных транзисторов), что привело к дальнейшему увеличению скорости до миллиона операций в секунду

ипамяти до сотен тысяч слов.

ЭВМ третьего поколения также характеризуются крупнейшими сдвигами в архитектуре ЭВМ, их программном обеспечении, организации взаимодействия человека с машиной. Это прежде всего наличие развитой конфигурации внешних устройств (алфавитно-цифровые терминалы, графопостроители и т.п.) с использованием стандартных средств сопряжения, развитая операционная система, обеспечивающая работу в мультипрограммном режиме (несколько одновременно размещаемых в оперативной памяти программ совместно используют ресурсы процессора). Метод использования ресурсов ЭВМ режим разделения времени совместно с пакетной обработкой. Высокое быстродействие позволяет время обслуживания пользователей разбить на кванты, обрабатывая в течение кванта задание каждого, возвращаться к пользователю за такое малое время, что у

74

него за дисплеем создается иллюзия, что он один пользуется ресурсами машины.

Решающее значение в развитии вычислительной техники во всем мире сыграло создание семейства вычислительных машин на интегральных схемах с широким диапазоном вычислительной мощности и совместимых снизу вверх на уровне машинных языков, внешних устройств, модулей конструкции и системы элементов. Программная совместимость снизу вверх машин одного и того же семейства предполагает, что любая программа, выполнявшаяся на младшей машине, должна без всяких переделок выполняться на старшей.

Широкое распространение получили также семейства мини-ЭВМ. Сущность их конструкторского решения состояла в такой минимизации аппаратуры центрального процессора, которая позволяла на уровне технологии того времени создать универсальные ЭВМ, способные осуществлять управление в реальном масштабе времени, при котором темп выдачи управляющих воздействий на объект управления согласован со скоростью протекания процессов в этом объекте.

Внашей стране в период машин третьего поколения была создана Единая Система ЭВМ (ЕС ЭВМ), в основных чертах копирующая IBM-360 и IBM-370, а также серия мини-ЭВМ СМ ЭВМ, ориентированная на зарубежные модели. Вклад отечественной науки в мировое развитие электронной вычислительной техники в этот период связан с промышленным внедрением многопроцессорной ЭВМ М-10.

Впериод машин третьего поколения произошел крупный сдвиг в области применения ЭВМ. Если раньше ЭВМ использовались в основном для научно-технических расчетов, то в 60 — 70-е годы первое место стала занимать обработка символьной информации, в основном экономической.

Машины серии ЕС ЭВМ имеют универсальное назначение, а основной областью применения СМ ЭВМ является автоматизация технологических процессов, научных экспериментов и испытательных установок, проектно-конструкторских работ.

Переход к машинам четвертого поколения ЭВМ на больших интегральных схемах (БИС) — происходил во второй половине 70-х годов и завершился приблизительно к 1980 г. Теперь на одном кристалле размером 1 см2 стали размещаться сотни тысяч электронных элементов. Скорость и объем памяти возросли в десятки тысяч раз по сравнению с машинами первого поколения и составили примерно 109 оп/с и 107 слов соответственно.

Характерными особенностями машин четвертого поколения являются тесная связь аппаратурной и программной реализаций в структуре машины, отход от принципа минимизации аппаратуры и поручение ей функций программы, что стало возможным благодаря относительно низкой стоимости БИС.

Развитие архитектуры ЭВМ в период машин четвертого поколения привело к появлению структур, в которых вычислительный процесс может протекать по нескольким ветвям параллельно, что приводит к увеличению производительности вычислительных машин. Идея параллелизма была

75

технически реализована в многопроцессорных системах, состоящих из двух или более взаимосвязанных процессоров, работающих с общей памятью и управляемых общей операционной системой.

Врезультате возросшего быстродействия ЭВМ стало возможным расширить оперативную память за счет введения виртуальной памяти основанной на страничном обмене информации между внешней и основной памятью.

Наиболее крупным достижением, связанным с применением БИС, стало создание микропроцессоров, а затем на их основе микроЭВМ. Если прежние поколения ЭВМ требовали для своего расположения специальных помещений, системы вентиляции, специального оборудования для электропитания, то требования, предъявляемые к эксплуатации микроЭВМ, ничем не отличаются от условий эксплуатации бытовых электроприборов. При этом они имеют достаточно высокую производительность, экономичны в эксплуатации и дешевы. МикроЭВМ используются в измерительных комплексах, системах числового программного управления, в управляющих системах различного назначения.

Дальнейшее развитие микроЭВМ привело к созданию персональных компьютеров (ПК), широкое распространение которых началось с 1975 г., когда фирма IBM выпустила свой первый персональный компьютер IBM PC. Сейчас такие компьютеры (совместимые с IBM PC) составляют около 90% всех производимых в мире ПК. В ПК реализован принцип открытой архитектуры, который означает, что по мере улучшения характеристик основных блоков ПК возможна легкая замена устаревших частей, а модернизированный блок будет совместим с ранее используемым оборудованием. Другими преимуществами ПК являются развитые средства диалога, высокая надежность, удобство эксплуатации, наличие программного обеспечения, охватывающего практически все сферы человеческой деятельности.

Впериод машин четвертого поколения стали также серийно производиться и суперЭВМ. Рост степени интеграции БИС стал технологической основой производительности ЭВМ. В нескольких серийных моделях была достигнута производительность свыше 1 млрд. операций в секунду. К числу наиболее значительных разработок машин четвертого поколения относится ЭВМ «Крей-3», спроектированная на основе принципиально новой технологии замены кремниевого кристалла арсенидом галлия, имеющая производительность до 16 млрд. операций в секунду. Примером отечественной суперЭВМ является многопроцессорный вычислительный комплекс «Эльбрус» с быстродействием до 1,2-108 оп/с.

С конца 80-х годов в истории развития вычислительной техники наступила пора пятого поколения ЭВМ. Технологические, конструкторские, структурные и архитектурные идеи машин пятого поколения принципиально отличаются от машин предшествующих поколений. Прежде всего их структура

иархитектура отличаются от фон-неймановской (классической). Высокая скорость выполнения арифметических вычислений дополняется высокими скоростями логического вывода. Даже скорость предполагается выражать в

76

единицах логического вывода. Машина состоит из нескольких блоков. Блок общения обеспечивает интерфейс между пользователем и ЭВМ на естественном языке и дисциплина программирования как наука для пользователя перестает в будущем быть актуальной. Важное место в структуре ЭВМ занимает блок, представляющий базу знаний, в котором хранятся знания, накопленные человечеством в различных предметных областях, которые постоянно расширяются и пополняются. Следующий блок, называемый решателем, организует подготовку программы решения задачи на основании знаний, получаемых из базы знаний и исходных данных, полученных из блока общения. Ядро вычислительной системы составляет ЭВМ высокой производительности.

В связи с появлением новой базовой структуры ЭВМ в машинах пятого поколения широко используются модели и средства, разработанные в области искусственного интеллекта.

Контрольные вопросы:

1.Дайте определение ЭВМ.

2.Сформулируйте основные принципы фон-Неймана.

3.Функционирование ЭВМ с шинной организацией.

4.Функционирование ЭВМ с канальной организацией.

5.Приведите различные схемы организации ЭВМ.

6.Основные команды ЭВМ и их классификация.

7.Поколения вычислительных средств.

6. Алгоритмизация и программирование

Наверняка можно утверждать, что каждый, читающий эти строки, знаком с термином «алгоритм». Его применяют весьма широко и не только в области вычислительной техники и программирования. Так же несомненно и то, что у студента сформировалось свое (пусть даже большей частью интуитивное) понимание смысла этого термина.

Термин происходит от имени средневекового математика Абу Джафара ибн Мусы аль-Хорезми. Редакция последней части имени ученого в европейских языках привела к образованию термина «алгорифм» или «алгоритм». Европейцы, начавшие осваивать современную десятичную систему счисления в XII в., знакомились с трудами арабских ученых, и труд упомянутого выше жителя Хорезма, посвященный правилам счета в десятичной системе счисления, был широко известен. Поэтому и наполнение термина «алгоритм» было следующим: операции над числами.

Через века старое, прежнее понимание этого термина стало утрачиваться, и данный термин стали применять по отношению к одному- единственному алгоритму алгоритму Евклида.

6.1. Определение алгоритма

Под алгоритмом всегда (и до возникновения строгой теории)

77

понималась процедура, которая позволяла путем выполнения последовательности элементарных шагов получать однозначный результат (независящий от того, кто именно выполнял эти шаги) или за конечное число шагов прийти к выводу о том, что решения не существует.

Конечно же, это нестрогое определение понятия алгоритма и именно попытки сформулировать такое понятие привели к возникновению теории алгоритмов. Причиной развития этой теории были внутренние проблемы математики, и лишь с возникновением и развитием вычислительной техники и смежных наук выяснилось, что в основе этих наук должна лежать теория алгоритмов. Так стало очевидным прикладное значение новой науки.

В основе формализации понятия «алгоритм» лежит идея построения алгоритмической модели. Составляющими такой модели должны быть конкретный набор элементарных шагов, способы определения следующего шага и т.д. От модели также требуется простота и универсальность. Требование простоты важно для того, чтобы выделить действительно необходимые элементы и свойства алгоритма и облегчить доказательства общих утверждений об этих свойствах. Универсальность необходима для того, чтобы модель позволяла описать любой алгоритм.

Результатами теоретических исследований явились три основных класса арифметических моделей.

Первый класс моделей основан на арифметизации алгоритмов. Предполагается, что любые данные можно закодировать числами, и как следствие всякое их преобразование становится в этом случае арифметическим вычислением, алгоритм в таких моделях есть вычисление значения некоторой числовой функции, а его элементарные шаги арифметические операции. Последовательность шагов определяется двумя способами. Первый способ суперпозиция, т.е. подстановка функции в функцию, а второй рекурсия, т.е. определение значения функции через «ранее» вычисленные значения этой же функции. Функции, которые можно построить из целых чисел и арифметических операций с помощью суперпозиций и рекурсивных определений, называются рекурсивными функциями. Простейшим примером рекурсивной функции является факториал:

0! = 1, (n +1)! = n!( n +1).

Второй класс моделей порожден следующей идеей. Для того чтобы алгоритм понимался однозначно, а его каждый шаг считался элементарным и выполнимым, он должен быть представлен так, чтобы его могла выполнять машина, к которой предъявляются уже упомянутые требования простоты и универсальности. Одной из таких машин явилась абстрактная машина Тьюринга. Машина Тьюринга состоит из трех частей (рис. 6.1): ленты, головки и управляющего устройства (УУ). Лента бесконечна в обе стороны и разбита на ячейки. В каждой ячейке может быть записан только один символ.

78

УУ

qj

1

 

 

2

 

 

 

 

 

aj

“”

ak

am

“”

 

 

 

Рис. 6.1. Основные составные части машины Тьюринга: УУ управляющее устройство; 1 – лента; 2 – головка; А={а1, ,...,am} – алфавит машины; Q={q1,...,qn} – множество состояний машины

Отсутствие символа в ячейке обозначается специальным «пустым» символом « ». Головка всегда располагается над некоторой ячейкой ленты. Она может читать и писать символы, стирать их и перемещаться вдоль ленты. Число возможных символов конечно, и образует алфавит машины А={а1, ,...,am}. Головка в каждый такт работы машины находится в одном из состояний. Множество таких состояний конечно Q={q1,...,qn}, и среди них выделяют начальное q1 и конечное qn состояния.

Элементарный шаг машины Тьюринга состоит из следующих действий:

головка считывает символ, записанный в ячейке, над которой она находится;

считанный символ ak и текущее состояние головки qj

однозначно определяют новое состояние qi, новый записываемый символ а1 и перемещение головки dp (которое может иметь значение на ячейку влево, на ячейку вправо, остаться на месте).

Устройство управления хранит и выполняет команды машины вида qjak qiа1dp.

Конкретную машину Тьюринга (и алгоритм соответственно) можно задать, перечислив элементы А и Q и команды машины.

Третий класс моделей алгоритмов очень близок к предыдущему, но не оперирует конкретными машинными механизмами. Наиболее известная алгоритмическая модель этого типа нормальные алгоритмы Маркова.

Для нормального алгоритма задается алфавит, над которым он работает, конечное множество допустимых подстановок и порядок их применения. Если в качестве алфавита взять алфавит русского языка, а в

качестве множества подстановок

 

 

1) Я→У

3)

С→М

5)Р→Т

7)О→х

2) Л→У

4)

В→б

6)Т→Р

8)Н→а,

то, используя следующие правила 1 — 3:

 

1)

проверить

возможность

подстановок в

порядке возрастания их

79

номеров и, если она возможна (левая часть подстановки обнаружена в исходном слове), произвести подстановку (заменив левую часть на правую)

2)если в примененной подстановке имеется символ «!», то преобразования прекращаются, а если нет, то текущее состояние становится исходным и весь процесс начинается заново

3)если ни одна подстановка не применима, то процесс преобразования завершен можно обнаружить, что по заданному алгоритму исходное слово «слон»

превращается в слово «муха» по следующей цепочке: «слон» «суон» «муон» «мухн» «муха».

Алгоритм точное предписание, которое задает алгоритмический процесс, начинающийся с произвольного исходного данного (из некоторой совокупности возможных для данного алгоритма исходных данных) и направленный на получение полностью определенного этим исходным данным результата.

Алгоритмический процесс процесс последовательного преобразования конструктивных объектов (слов, чисел, пар слов, пар чисел, предложений и т.п.), происходящий дискретными «шагами». Каждый шаг состоит в смене одного конструктивного объекта другим.

Поскольку алгоритмы могут применяться к весьма произвольным объектам (числам, буквам, словам, графам, логическим выражениям и т.д.), в определении алгоритма используется специальный термин — «конструктивный объект», объединяющий в себе все эти возможные случаи.

На практике в программировании очень часто используется задание алгоритмов в виде блок-схем.

Блок-схема это ориентированный граф, вершины которого могут быть одного из трех типов (рис. 6.2).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

B

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S1

 

 

 

 

 

 

 

 

 

 

 

 

 

S1

 

 

S1

 

S2

T

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S2

 

 

 

 

S1

B

 

 

T

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

F

 

 

B

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

F

Композиция

 

 

Выбор

 

 

 

 

Итерация

 

(альтернатива)

 

 

 

 

(повторение)

 

 

 

 

 

 

 

 

 

Рис. 6.2. Структуры управления программы

Структурная блок-схема это блок-схема, которая может быть

80

выражена как композиция из четырех элементарных блок-схем (см. рис. 6.2).

 

 

 

 

 

 

 

 

 

 

 

 

Case i of

 

 

 

 

 

 

 

 

 

 

 

 

 

 

B

 

 

 

 

 

 

 

 

1:

 

 

 

 

 

 

 

 

 

 

2:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

t

 

2

 

 

 

 

m

.

S1

S1

S2

...

Sm

.

.

 

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

...

 

...

 

m:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

end

 

 

 

 

 

 

 

 

Оператор CASE

 

Выполнение одной

 

 

 

 

 

 

 

 

 

альтернативы

 

 

 

 

 

 

 

 

 

 

 

 

 

Вход

 

 

 

 

 

 

 

Досрочный выход из цикла

F

B

Нормальный

T

S1

go to

F

C Преждевременный

T S2

Выход

Рис. 6.3. Дополнительные структуры управления программы

Любая программа для машины может быть представлена структурной блок-схемой. Важной особенностью приведенных структур является то, что они имеют один вход и один выход.

Структурное программирование процесс разработки алгоритмов с помощью структурных блок-схем.

В более широком плане структурное программирование допускает большее разнообразие элементарных структур управления, чем предложенные три (рис. 6.3). Причиной для расширения множества структур является требование удобства и естественности.

Программирование сверху вниз это процесс пошагового разбиения алгоритма на все более мелкие части с целью получения таких элементов, для которых можно написать конкретные команды. Структурное программирование сверху вниз это процесс программирования сверху вниз, ограниченный использованием структурных блок-схем.

6.2. Методы разработки алгоритма

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]