Архитектура ЭВМ
Выбери формат для чтения
Загружаем конспект в формате docx
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Министерство науки и высшего образования Российской Федерации
Федеральное государственное бюджетное образовательное учреждение высшего образования
«Московский авиационный институт
(национальный исследовательский университет)»
_____________________________________________________________________
Кафедра "Моделирование систем и информационные технологии"
КУРС ЛЕКЦИЙ
ПО ДИСЦИПЛИНЕ «АРХИТЕКТУРА ЭВМ»
Москва 20__
ВВедение
Современные ЭВМ характеризуются большим разнообразием режимов функционирования, структур обрабатываемых данных, режимов адресации операндов. Это находит поддержку как на уровне аппаратуры микропроцессорных больших интегральных схем (МП БИС), так и на уровне системного программного обеспечения. Как первая, так и вторая составляющие находятся в непрерывном развитии. Однако некоторые понятия в работе ЭВМ остаются неизменными на протяжении достаточно длительного промежутка времени, составляя так называемую базовую архитектуру.
Для ЭВМ, построенных на основе микропроцессорных БИС серии Intel х86, такая архитектура основывается на возможностях МП БИС I8086. Возможность функционирования в режиме эмуляции этого микропроцессора включена во все модели таких ЭВМ, составляя так называемый реальный режим их работы. В данном пособии мы будем рассматривать этот режим работы как базовый при рассмотрении архитектуры Эвм этого типа.
Подробное рассмотрение функционирования ЭВМ в этом режиме дает возможность изучить основные принципы работы ЭВМ фон-неймановского типа, закладывая основу для последующего более детального изучения различных вопросов, связанных с аппаратной и программной организацией современных ЭВМ.
В пособии представлены общие понятия архитектуры ЭВМ (формат и поля команды, представление данных, режимы адресации операндов), архитектура МП БИС, кодирование и декодирование команд IBM PC, влияние различных факторов на время выполнения программы. На основании этого подробно рассмотрен основной вопрос данного пособия: взаимодействие основных устройств ЭВМ при автоматическом выполнении программы. Отдельная глава посвящена особенностям расширенной архитектуры микропроцессоров семейства Intel x86.
Для лучшего усвоения представленного материала обучаемому может быть предложено выполнить домашнее задание, связанное с кодированием команд в форматах IBM PC. Разбор такого задания также приведен в данном пособии.
История ЭВМ
Начало XIX века – «разностная» машина (машина должна считать автоматически)
Одним из известных людей в истории вычислительной техники стал английский ученый Чарльз Бэббидж. Он занимался разработкой «аналитической» машины – решение произвольных вычислительных задач. Но полностью создать эту машину ему не удалось. Идеи Бэббиджа намного опередили его эпоху. Все современные ЭВМ похожи на машину Бэббиджа.
Машина должна обладать:
1. ЗУ для хранения чисел («склад»)
2. устройство, способное выполнять арифметические операции («мельница»)
3. устройство, управляющее последовательностью действий машины
4. устройство ввода-вывода информации
Ввод информации и управление вычислительным процессом Бэббидж предполагал с помощью перфокарты.
Бэббидж высказал мысль о возможности изменения хода вычислительной взаимозависимости от промежуточного результата. Для того, чтобы заставить машину выполнять необходимые вычисления, нужно было составить для нее программу, т.е. последовательность инструкций для всех ее устройств.
Первые программы были составлены талантливым математиком Адой Лавлейн (дочерью поэта Байрона). Эти программы существуют только на бумаге, т.к. сама машина так и не была построена, и не было возможности выполнять эти программы.
Через 100 лет после Бэббиджа началась новая эпоха.
В 1937 году А. Атанасов приступил к созданию ЭВМ, предназначенной для решения задач математической физики.
Одновременный проект большой релейновской машины предложил сотрудник Гарвардского университета Г. Айкен.
Первым электронно-механическим устройством, примененным в счет машины, было реле (имелось 2 состояния замкнутый и разомкнутый)
Паскаль доказал, что мобильное положение чисел может быть основой сложного счисления.
Лейбниц описал арифметические действия в двоичной системе. Поскольку реле может быть только в 1 из 2 состояний, то это означало Да или Нет
есть импульс – Да
нет импульса – Нет
Т.о. из однотипного реле стало возможно набирать комбинации микросхем, пригодных практически для любой операции.
Первые ЭВМ
Первая ЭВМ была разработана в 1945 году.
Электронный интегратор и вычислитель ENIAC – так назвали первую ЭВМ. ЕЕ создали инженеры Маучли и Эккерт. Она строилась в Пенсильванском университете (США) в обстоятельствах секретности. После войны в 1946 году впервые состоялась публичная демонстрация ЭВМ.
ENIAC был, по существу, первой работающей машиной, в которой весь комплекс вычислительных работ, т.е. запоминание и хранение информации было реализовано в электронных схемах.
Трехмерные ячейки на электронных лампах использовались в машинах практически во всех устройствах и агрегатах, что позволило резко увеличить скорость всех операций. Эта первая машина во многом отличалась от привычных нам современных ЭВМ. В ней имелся ряд специализированных устройств, предназначенных для деления, извлечения квадратного корня, умножения и т.д.
Общее управление ими осуществлялось центральным программным блоком. Но самой программы, которая существует в настоящее время, еще не было.
Программирование осуществлялось путем коммуникации отдельных блоков машины с помощью специальных кабелей штекеров и механических переключателей.
Описание ENIAC
1. Сложное громадное сооружение массой более 30 т занимало зал S=150м
2. 40 отдельных панелей содержали одних ламп и реле 20 тыс
3. Для питания одной такой машины требовалась отдельная электростанция
4. От 1000 ламп создавалась такая t, с которой нелегко было справиться
Но, несмотря на недостатки, ENIAC показал возможности, которая таит в себе новая электронная вычислительная техника. Еще в недрах первой электронной машины стала зарождаться идея принципиально новой ЭВМ, создание которой связано с именем одного из выдающихся математиков и естествоиспытателей XX века Джоном фон Нейманом
Поколения ЭВМ
В основу градации обычно кладут элементную базу, на которой строятся машины, а также их возможности, область применения и т.д.
Основные поколения ЭВМ
1. Машины 1-ого поколения строились на электронных лампах
- их быстродействие достигало 20 тысяч операций в секунду
- программа писалась на языке машины
- программист сам распределял оперативную память, подпрограмму, исходные данные, полученные результаты
- объем памяти был небольшой
2. В ЭВМ 2-ого поколения на смену электрическим лампам пришли полупроводниковые приборы-трансляторы
- несколько сотен тысяч операций в секунду
- увеличение надежности машин
- переход от написания программы на алгоритмические языки
- запись на алгоритмические языки использует некоторые слова стандартные математические символы
- запись проще и нагляднее программы
- переход с алгоритмического языка на машинный осуществляется самой машиной с помощью специальных программ трансляторов
3. В конце 60-х годов появились ЭВМ 3-его поколения их рождения связано с ростом возможности полупроводников
- на одном кремневом кристалле удалось создать электронную схему, содержащую сотни и тысячи простейших элементов; такую схему назвали интегральной
Машина имеет
- повышенную надежность, уменьшенный размер ЭВМ
- миллион операций в секунду
Стал применяться принцип распараллеливания работ
- ЭВМ одновременно обрабатывала несколько программ
- общение с ЭВМ осуществлялось сразу с несколькими терминалами, т.е. удаленных от ЭВМ пультов, снабженных клавиатурой и экраном
- каждый работающий за таким пультом решал свою задачу и не ощущал, что одновременно работают такие же пользователи на этом ЭВМ
4. ЭВМ 4 поколения
Последнее достижение миниатюризации – микроминиатюрные интегральные схемы, когда на крошечной кремневой пластине содержатся 10 тысяч электронных компонентов
Большие интегральные схемы (БИС)
Сверхбольшие интегральные схемы (СБИС), насчитывающие на поверхности кристалла 100 тысяч электронных компонентов
БИС и СБИС стали элементной базой 4 поколения.
Лекция 2. Представление, кодирование и обработка информации в ЭВМ.
Кодирование информации.
Любая информация в ЭВМ представлена в виде двоичных слов, т.е. в последовательности нулей и единиц. Отдельный разряд называют битом, который принимает только 2 значения: 0 и 1. Группа из 8 единичных разрядов называют битом.
Правила кодирования числовой информации.
Для кодирования используется двоичная система счисления, которая позиционная(значение символа зависит от его положения(позиции) в записи числа.
2 1 0 2 1 0
3 3 3 = 3*102 + 3*101 + 3*100 1 0 1 = 1*22 + 0+ 1*20= 5
3*100 1*20
3*101 0*21
3*102 1*22
В общем случае значение символа в позиционной системе определяется по следующей формуле:
, где Pi – основание системы счисления.
Значение всего числа: – для перевода в десятичную систему счисления.
Пример. Перевод дробного числа(101.101) из двоичной системы счисления в десятичную.
2 1 0 -1 -2 -3
1 0 1 . 1 0 1 =
Таблица.
16 и 2 системы с кратным основанием(16=24), т.е. можно переводить через таблицу
AB=10101011
Перевод чисел из 10 в 2. Целая и дробная часть десятичного числа используют разные правила.
Правило перевода целой части десятичного числа: число делится на основание системы счисления, остаток от деления является младшим разрядом искомого числа. Полученный результат снова делится на два и полученный результат является следующим разрядом двоичного числа. Так продолжается до тех пор пока результат не будет ноль.
Правило перевода дробной части десятичного числа: число умножается на основание системы счисления. Целая часть полученного результата является старшим разрядом дробной части двоичного числа. Полученную дробную часть результата мы опять умножаем и определяем следующий разряд.
Перевод числа 0.625
0.625=0.101
Не каждое дробное десятичное число можно точно представить в двоичной системе счисления.
Например 0.1
Тогда запишем его:
Форматы представления чисел
Используется два основных формата:
1) Формат с фиксированной точкой (для представления целых чисел
2) Формат с плавающей точкой
Формат с фиксированной точкой
Служит для представления целых чисел, при этом отрицательные числа представленны в дополнительном коде.
Например: число 13 в двоичном коде: 01101. Чтобы записать обратный код числа надо вместо нулей записать единицы, а вместо единиц – нули: 10010. Чтобы записать дополнительный код нужно к обратном коду прибавить единичку: 10010+1=10011.
Дополнительный код числа 13 – 10011
Число 171: 010101011 - прямой
101010100 – обратный
101010101 – дополнительный
Формат с плавающей точкой (Real Float)
Для представления вещественных чисел. Основан на экспоненциальном представлении числа, которое расчитывается по формуле:
, где m – мантисса числа(), p – основание системы счисления, s – порядок.
Например: , где m=0,10101011, p=2, s=8. (
?смещенный порядок s’=s+64=72=1001000?
m-представляется в прямом виде и знак числа учитывается только в знаковом разряде.
Рассм. 32-х разряд представления чисел.
Число 171
Знак
S’
m
1001000
10101011
Выполнение арифметических операций над двоичными числами.
Сложение
При сложении многоразрядных чисел следует учитывать знак переноса, тогда таблица будет иметь следующий вид:
Например: 1 1 1 0 1 0 0 - А
+0 1 1 1 1 1 0 – В
1 0 1 1 0 0 1 0 - С
Вычитание
Замечание: При вычитании использование правил от десятичной системы счисления привело к сложной схемотехнической реализации таких устройств.
Вычитание реализуется путем сложения с дополнительным кодом вычитаемого числа, т.е. по формуле:
Пример. 01000 – Число А, 00001 – Число В, 11111 - Вдоп
1 1 1
1 1 1
1 0 0 0 сложение через 0 1 0 0 0 сложение через доп. код
0 0 0 1 прямой код. 1 1 1 1 1
0 1 1 1 0 0 1 1 1
Умножение
С=АВ Можно умножать столбиком: 1 1 0
, где 2i – сдвиг. 1 0 1
Умножим 6 на 5 =110*101 1 1 0
С=110*1*22+110*1*20 0 0 0
1 1 0___
Алгоритм уможения 1 1 1 1 0
10 С=0; i=0
20 C=C+A*Pi*2i
30 i=i+1
40 Если i≤n-1 идти на 2.
50 Конец.
Деление
Алгоритм деления сложнее умножения и представляет собой метод проб и ошибок.
Алгоритм
10 n=na-nb ,где na и nb кол-во разрядов в числах a и b
20 A=A-B*2n – сдвиг числа B на кол-во разрядов равной n. Для реализации операции вычитания число переводится в доп. Код
30 Если А>0 то Cn=1
Иначе Cn=0; A=A+B*2n
40 Если n>0 идти на шаг 20
50 Конец.
Лекция 3. Организация памяти ЭВМ.
Память.
Память является важнейшим ресурсом любой вычислительной системы. Логически всю память ВС можно представить в виде последовательности ячеек, каждая из которых имеет свой номер, называемый адресом.
Иерархия памяти, КЭШ-память
Память вычислительной системы представляет собой иерархию запоминающих устройств (внутренние регистры процессора, различные типы сверхоперативной и оперативной памяти, диски, ленты), отличающихся объемом, средним временем доступа и стоимостью хранения данных в расчете на один бит.
Например:
• Регистровая память – емкость 64-256 слов, время доступа – 1такт процессора.
• КЭШ первого уровня или внутренний КЭШ – емкость 8k слов, время доступа – 1-2 такта процессора.
• КЭШ второго уровня или внешний КЭШ – емкость 256k слов, время доступа – 3-5 тактов процессора.
• ОЗУ – емкость до 4Г слов, время доступа – 12-55 тактов процессора,
• Внешняя память – емкость до 200Г, время доступа значительно ниже.
Таким образом, в основе иерархии памяти современных вычислительных систем лежит принцип «стоимость/производительность», т.е. с увеличением производительности возрастает и стоимость памяти, при этом пользователь всегда стремится иметь недорогую и быструю память. Кэш-память представляет некоторое решение этой проблемы.
Кэш-память – это способ организации совместного функционирования двух типов ЗУ, отличающихся временем доступа и стоимостью хранения данных, который позволяет уменьшить среднее время доступа к данным за счет динамического копирования в «быстрое» ЗУ наиболее часто используемой информации из «медленного» ЗУ.
Кэш-памятью часто называют не только способ организации работы двух типов запоминающих устройств, но и одно из устройств – «быстрое» ЗУ. Оно стоит дороже и, как правило, имеет сравнительно небольшой объем. Важно, что механизм кэш-памяти является прозрачным для пользователя, который не должен сообщать никакой информации об интенсивности использования данных и не должен никак участвовать в перемещении данных из ЗУ одного типа в ЗУ другого типа, все это делается автоматически системными средствами.
Таким образом, иерархия памяти вычислительной системы может быть схематично изображена, как это показано на рисунке 2.10.
Рис.3.1 Иерархическая структура памяти.
В системах, оснащенных кэш-памятью, каждый запрос к «медленному» ЗУ выполняется в соответствии со следующим алгоритмом:
1. Просматривается содержимое кэш-памяти с целью определения, не находятся ли нужные данные в ней;
2. Если данные обнаруживаются в кэш-памяти, то они считываются из нее, и результат передается в процессор в более «быстрое» ЗУ
3. Если нужных данных нет, то они копируются из «медленного» ЗУ в кэш-память, и результат выполнения запроса передается в «быстрое» ЗУ. При копировании данных может оказаться, что в кэш-памяти нет свободного места, тогда выбираются данные, к которым в последний период было меньше всего обращений, для вытеснения из кэш-памяти. Если вытесняемые данные были модифицированы за время нахождения в кэш-памяти, то они переписываются в оперативную память. Если же эти данные не были модифицированы, то их место в кэш-памяти объявляется свободным.
На практике в кэш-память считывается не один элемент данных, к которому произошло обращение, а целый блок данных, это увеличивает вероятность так называемого «попадания в кэш», то есть нахождения нужных данных в кэш-памяти.
Принцип действия кэш-памяти основан на наличии у данных объективных свойств: пространственной и временной локальности.
Пространственная локальность состоит в следующем – если произошло обращение по некоторому адресу, то с высокой степенью вероятности в ближайшее время произойдет обращение к соседним адресам.
Временная локальность состоит в следующем – если произошло обращение по некоторому адресу, то следующее обращение по этому же адресу с большой вероятностью произойдет в ближайшее время.
Виртуальная память
Достаточно давно пользователи столкнулись с проблемой размещения в памяти программ, размер которых превышал имеющуюся в наличии свободную память. Решением было разбиение программы на части, называемые оверлеями. 0-ой оверлей начинал выполняться первым. Когда он заканчивал свое выполнение, он вызывал другой оверлей. Все оверлеи хранились на диске и перемещались между памятью и диском средствами операционной системы. Однако разбиение программы на части и планирование их загрузки в оперативную память должен был осуществлять программист.
Развитие методов организации вычислительного процесса в этом направлении привело к появлению метода, известного под названием виртуальная память. Виртуальным называется ресурс, который пользователю или пользовательской программе представляется обладающим свойствами, которыми он в действительности не обладает. Так, например, пользователю может быть предоставлена виртуальная оперативная память, размер которой превосходит всю имеющуюся в системе реальную оперативную память.
Таким образом, виртуальная память – это совокупность программно-аппаратных средств, позволяющих использовать ОП, размер которой превосходит реально имеющуюся в системе ОП. Для организации виртуальной памяти вычислительная система должна решать следующие задачи:
• размещение данных в ЗУ разного типа, например, часть ОП, а часть на диске;
• перемещение по мере необходимости данные между ЗУ разного типа, например, подгрузка нужной части программы с диска в ОП;
• преобразование виртуальных адресов в физические.
Все эти действия выполняются автоматически, без участия программиста, то есть механизм виртуальной памяти является прозрачным по отношению к пользователю.
Физическая организация памяти
Физически память делится на внутреннюю и внешнюю.
Внутренняя память выполняется, чаще всего, в виде микросхем высокой степени интеграции. Внутренняя или основная память может быть двух типов: оперативное запоминающее устройство (ОЗУ или RAM, Random Access Memory) или ЗУ с произвольной выборкой (ЗУПВ) и постоянное ЗУ (ПЗУ или ROM, Read Only Memory). В последнее время широкое распространение получила флэш (Flash)-память, имеющая особенности, как ОЗУ, так и ПЗУ. ОЗУ является энергозависимой памятью, поскольку вся содержащаяся в ней информация теряется при выключении питания и предназначена для временного хранения программ и данных. ПЗУ является энергонезависимой памятью, т.е. информация сохраняется и при выключении питания системы. ПЗУ предназначена для хранения управляющих работой ЭВМ стандартных программ (например, отвечающие за процедуру старта системы), констант, таблицы символов и т.д.
ПЗУ могут быть: масочными - запрограммированными на заводе изготовителе (ROM), однократно-программируемыми пользователем ППЗУ (PROM или OTP), многократно-программируемыми (репрограммируемыми) пользователем РПЗУ с ультрафиолетовым стиранием (EPROM) или с электрическим стиранием (EEPROM, Flash). Широкое распространение нашли также программируемые логические матрицы и устройства (PLM, PML, PLA, PAL, PLD, FPGA и т.д.) с большим выбором логических элементов и устройств на одном кристалле.
ОЗУ подразделяются на статическую память (SRAM), динамическую (DRAM, здесь для хранения информации необходима ее регенерация) и регистровую (RG).
В качестве оперативной памяти современные ЭВМ оснащаются модулями SIMM, DIMM, DDR и RIM, которые является динамической памятью. Указанные модули памяти представляют собой небольшие платы с установленными на ней совместимыми чипами SDRAM (Sychronous DRAM – это новая технология микросхем динамической памяти. Основное отличие данного типа памяти от остальных заключается в том, что все операции синхронизированы с тактовой частотой процессора, то есть память и CPU работают синхронно. Технология SDRAM позволяет сократить время, затрачиваемое на выполнение команд и передачу данных, за счет исключения циклов ожидания).
Модуль SIMM (Single In-line Memory Modyle) – 72-контактные модули, обычно оборудованные микросхемами памяти общей емкостью 8, 16 и 32 Мб.
Модуль DIMM (Dual In-line Memory Modyle) – 168-контактные модули памяти. DIMM обладают внутренней архитектурой, схожей с 72-контактными модулями SIMM, но благодаря более широкой шине обеспечивают повышенную производительность подсистемы «ЦП – ОП».
Модуль DDR – имею аналогичную DIMM архитектуру, а двукратный выигрыш в быстродействии осуществляется за возможности передачи двух порций данных за один такт синхронизации – по фронту и спаду импульса.
Одной из наиболее быстродействующих является память RDRAM (Rambus RAM), разработанная американской компанией Rambus. Память RDRAM является 16-разрядной, тактируется частотой 400 МГц (результирующая частота за счет использования технологии DDR составляет 800 МГц) и достигает пиковой скорости передачи данных 1.6 Гбайт/с. Использование узкой шины данных и сверхвысокой частоты значительно повышают эффективность использования и загрузку канала, максимально освобождая протокол от временных задержек.
Внешняя память
Внешней называют память на магнитных (жесткие и гибкие диски), оптических носителях (CD-ROM) и т.п.
Кроме того существует и накопители на магнитной ленте, которые в настоящее время практически не используются и поэтому в данной главе не рассматриваются.
Дисковые накопители в зависимости от среды носителя и по применяемому методу записи (чтения) данных на (с) поверхность (и) могут подразделяться на магнитные, оптические и магнитооптические.
Тип накопителя
Емкость, Мб
Время доступа, мс
Скорость передачи, Кбайт/с
Режим доступа
НГМД
1,2; 1,44
65 -100
150
Чтение/запись
НЖМД (Винчестер)
1000-18000
8-20
500-3000
Чтение/запись
CD-R
120-800
15-300
150-1500
Чтение/
однократная запись
CD-RW
120-800
15-150
150-1500
Чтение/Запись
НМОД
128-1300
15-150
300-2000
Чтение/запись
Дисковая память
Носителями информации являются поверхности гибких и жестких дисков, в качестве немагнитных основ которых используются соответственно майлар (как и в магнитных лентах) и алюминиевые (в ряде случаев стеклянные) круги (диски). Стеклянные диски являются менее критичными к температурным изменениям и позволяют увеличить плотность записи информации. В настоящее время наиболее широкое распространение получили диски с напыленным магнитным слоем, а точнее, с металлической пленкой (например, кобальт).
Перед осуществлением записи на магнитный диск он должен быть специальным образом инициализирован – отформатирован. В результате форматирования на поверхности образуются концентрические окружности (синхронизирующие метки диска), называемые дорожками (track). Количество дорожек зависит от типа диска. Дорожки разбиваются на участки фиксированной длины, называемые секторами. Количество секторов на дорожке определяется типом и форматом диска, и они в основном одинаковы для всех дорожек. IBM PC-совместимые ПК могут работать с несколькими размерами секторов от 128 до 1024 байт. Стандартным сектором считается сектор из 512 байт. Данные любого размера (разрядности) размещаются в секторах с фиксированным размером, а дисковые операции записи и считывания производятся с целыми секторами.
Дорожки и сектора нумеруются с нуля, начиная с внешнего края диска, при этом сектор с нулевым номером на каждой дорожке резервируется для системных целей. Диски имеют две стороны. Так как накопители на жестких дисках могут состоять из нескольких дисков (стопка), то совокупность всех дорожек, по одной на каждой стороне с одинаковыми номерами, образует цилиндр с номером соответствующей дорожки.
Память на гибких магнитных дисках
Все НГМД, применяемые в PC, независимо от типа и размера имеют одинаковый интерфейс и унифицированные разъемы. Используемый в PC кабель-шлейф имеет перевернутый фрагмент из 7 проводов с номерами 10-16. Этот поворот позволяет подключать к контроллеру одним шлейфом до двух НГМД, причем адрес накопителя определяется его положением на шлейфе: для привода А: фрагмент перевернут, для В: – нет.
Контроллер накопителей на гибких дисках FDC (Floppy Drive Controller) является всегда внешним по отношению к накопителю и обычно располагается на одной плате с контроллером или адаптером жестких дисков.
Контроллер FDC XT поддерживает до четырех накопителей (FDD), хотя многие контроллеры имеют интерфейсные схемы только для одного шлейфа, то есть для двух накопителей. Эти контроллеры обеспечивают скорость передачи данных 250 и 300 Кбит/с.
Контроллер FDC AT поддерживает только два накопителя, но обеспечивает более высокую скорость 500 Кбит/с.
Современные контроллеры обеспечиваю скорость 1000 Кбит/с. В карте ресурсов AT имеется место под два контроллера НГМД.
Контроллеры вырабатывают запрос аппаратного прерывания IRQ6 (BIOS INT OEh) по окончании выполнения внутренних операций. Для обмена данными может использоваться канал DMA2.
Память на жестких магнитных дисках
В отличие от накопителей на гибких дисках и их контроллеров, жестко стандартизованных и поэтому легко конфигурируемых, в PC применяется множество типов накопителей на жестких дисках, их интерфейсов и контроллеров, различающихся и способами конфигурирования.
Накопители на жестких магнитных дисках НЖМД (HDD), появились с машинами PC/XT. Первые накопители имели интерфейс, являющийся расширением интерфейса НГМД, и подключались к специальной плате контроллера с модулем дополнительной BIOS, хранящей всю информацию об установленных жестких дисках. В машинах класса AT поддержку стандартного контроллера включили в системную BIOS, параметры используемых жестких дисков стали хранить в памяти CMOS.
Традиционные версии BIOS поддерживают до двух накопителей на жестких дисках и хранят их параметры в ячейках памяти CMOS. Расширенные версии BIOS для современных двухканальных контроллеров АТА поддерживают 4 жестких диска и хранят их параметры.
Для дисков ATA используются следующие режимы адресации:
• CHS (целиндр-головка-сектор, традиционная трехмерная адресация данных на диске);
• ECHS (расширенная трехмерная адресация);
• LBA (линейная адресация данных на диске через логический адрес блока).
Учитывая, что в соответствии с форматом вызова функций дискового сервиса, одно устройство может иметь 210=1024 цилиндра, 28=256 головок, 26-1=63 сектора. Таким образом, при трехмерной адресации (CHS) и размере сектора в 512 байт максимальный объем диска не может превышать 7.875 Гбайт.
HDDmax(CHS) = [210 * 28 * (26-1)] * 512 = 136 902 082 560 байт = 7.875Gb (~8,4ГБ)
Все современные винчестеры используют LBA-адресацию. В режиме LBA параметры стандартных вызовов транслируются в т.н. линейный адрес, который вычисляется однозначно в «естественном» порядке счета секторов, т.е. сектору с нулевым лог. адресом соответствует первый сектор нулевой головки нулевого цилиндра. В этом случае номер каждого сектора представляет собой 28-битное число и максимальным диском для LBA будет:
HDDmax(LBA) = 228 * 512 = 137.4Gb (128ГБ)
В тоже время большинство ПО использует CHS-адресацию. Поэтому с появлением HDD с LBA адресацией, чтоб не модернизировать имеющееся ПО, поступили следующим образом. BIOS в случае определения LBA-винчестера, переводит его параметры в CHS-версию и ОС работает с ним с CHS-винчестером. Т.е. 28-битное значение адреса LBA «раскладывается» следующим образом: 16 бит – цилиндр, 8 бит – сектор, 4 бита – головка. В результате, при получении запроса на работу с диском, BIOS переводит для контроллера это значение LBA-адрес :
В общем виде формулы вычисления такого адреса имеет вид:
LBA=(CYL*HDS*HD)*SPT+SEC-1
CYL – номер цилиндра
HD – номер головки
HDS – количество головок
SPT – количество секторов на треке
SEC – номер сектора
Для накопителей на жестких дисках используют интерфейсы ST-506/412, ESDI, АТА (неофициальное название IDE), SCSI. Накопители и контроллеры с интерфейсами ST-506/412 и ESDI практически не используются.
В настоящее время широко используются перечисленные ниже интерфейсы.
АТА-2 — расширенная спецификация ATA, включает 2 канала, 4 устройства, PIO Mode 3 (программированный ввод-вывод), DMA mode 1 , Block mode (пакетный обмен), объем диска до 8 Гбайт, поддержка LBA и CHS адресации.
Fast АТА-2 разрешает использовать DMA Mode 2 (13,3 Мбайт/с), PIO Mode 4.
ATA-3 — расширение, направленное на повышение надежности. Включает средства парольной защиты, улучшенного управления питанием, самотестирования с предупреждением приближения отказа — SMART (Self Monitoring Analysis and Report Technology).
Ultra DMA/33 — версия ATA/IDE со скоростью обмена по шине 33 Мбайт/с. Устройства ATA IDE, E-IDE, АТА-2, Fast АТА-2, ATA-3 и Ultra DMA/33 электрически совместимы.
Последние достижения в этой области – интерфейсы Ultra ATA/66, Ultra ATA/100 и Ultra ATA/133 позволяющие осуществлять передачу данных со скоростью 66Мбай/сек, 100 Мбай/сек и 133 Мбай/сек соответственно.
Возможно также подключение дисковых устройств и к параллельному порту, но через устройство, обеспечивающее один из вышеперечисленных интерфейсов. О дисках с интерфейсом USB говорить пока рано, а интерфейс FireWire является родственником SCSI-3.
Кэширование диска
Время доступа к различным блокам информации на HDD является переменной величиной, складывающейся из временами подвода магнитной головки (МГ) к искомой дорожке, времени успокоения вибрации МГ и времени подвода искомого сектора под МГ. Кэш или буфер HDD необходим, чтоб по возможности сократить время доступа к диску за счет, во первых, предварительной выборки данных, и во-вторых, за счет организации поблочного доступа. Для организации буфера используются два вида кэш-памяти аппаратная и программная.
Аппаратная кэш-память представляет собой значительный объем памяти и имеет архитектуру полного ассоциативного отображения. Она строится на плате кэш-контроллера HDD с использованием модулей высокопроизводительной памяти и имеет собственный процессор.
Программная кэш-память — это некоторая область системной памяти, зарезервированная для дискового кэша и управляемая утилитой (например, Windows SmartDrive).Объем программной кэш-памяти рекомендуется ограничивать четвертью объема системной памяти).
В многозадачных системах выгодно иметь HDD с мультисегментной кэш-памятью (для каждой задачи отводится своя часть кэша – сегмент). В адаптивной системной кэш-памяти для повышения производительности размер и количество сегментов могут изменяться.
Лекция 4. Архитектура и принципы работы основных логических блоков вычислительных систем.
Логические элементы и комбинационные схемы.
Логическая функция принимает только два значения: 0 и 1. Аргументами являются логические переменные, которые принимают тоже два значения.
Рассм. Основные логические элементы.
«и» - логическое умножение (конъюнкция) Обозначается: &, /\- реализация конъюнкции
«или» - логическое сложение (дизъюнкция) Обозначается: +,\/- реализация конъюнкции
«Не» - отрицание, инверсия (Ā)
A
Ā
1
1
«Сложение по модулю два» - Обозначение: плюс в кружочке.
– Функция, которая представляет собой сложение по модулю 2 n логических переменных будет принимать значение единицы в том случае, если количество единичных аргументов будет нечетно
– ДНФ
Правило Де-Моргана
– исключение или
– исключение и
Пример. Есть функция. Записать ДНФ. Нарисовать схемы.
ДНФ: а) =000+010+100+101=0+2+4+5
F=0,2,4,5 – единичные номера конъюнкций.
б)
ДНФ выписывается по единицам.
Схема для а)
Схема для б)
Минимизация логических функций.
Ранг элементарной конъюнкции равен количеству переменных в ней.
Задачей минимизации логической функции является поиск эквивалентной функции, состоящей из минимального числа элементарных конъюнкций минимального ранга.
В основе минимизации лежат следующие правила.
1) Правило склеивания:
2) Правило поглощения:
3) Мультипликативность:
Рассм. Минимизацию
=0,2,4,5
Процесс минимизации можно упростить с помощью карт Вейча, которые реализуют процесс минимизации графически.
Цифры в нижнем правом углу в каждой ячейки единичные номера конъюнкций. На месте цифр, входящих в заданную конъюнкцию ставят единицы, в обратном случае ноль.
Четыре смежные клетки, образующие квадрат или строку склеиваются, при этом остаются две переменные.
Карта Карно для 4-х переменных.
После склеивания получили:
Функциональные узлы комбинационного типа.
Функциональным узлом – называется схема ЭВМ, которая реализует широко известную и используемую схему.
Дешифратор – комбинационная схема, которая имеет k-входов и n-выходов. Дешифратор преобразует двоичную функцию, поданную на его вход в сигнал на один из его выходов.
Мультиплекс – имеет k-управляющих и n-информационных входов. Мультиплексор пропускает на выход сигнал с того информационного входа, номер которого подан на управляющий вход.
Комбинационный сумматор
– сигнал перенос
- результат
Данную таблицу можно рассматривать как таблицу истинности.
- здесь ничего
не склеивается.
- здесь склеивается
Комбинационные схемы имеют характерное свойство: сигнал на выходе зависит только от сигнала на входе в данный момент времени
- пример трехразрядного сумматора.
Последовательные схемы или цифровые автоматы.
Особенностью последовательных схем, является то, что сигнал на выходе этих схем зависит не только от сигналов на входе в текущий момент времени, но и от предыдущего состояния данной схемы.
Основными элементами из которых состоят последовательные схемы называются триггерами.
Триггером - называется схема ЭВМ, которая может находиться в 2-х устойчивых состояниях 0 или 1. Перейдя в одно из этих состояний триггер будет находиться в этом состоянии до тех пор, пока определенная комбинация, поступающая на вход не изменит это состояние.
Функционирование триггера описывается с помощью таблицы переходов. Существует несколько типов триггеров(RS, JK, D), у каждого своя таблица переходов.
Рассм RS триггер.
S – set
R – Reset
Qt – состояние триггера в текущий момент времени
Qt+1 – состояние триггера после подачи определенной комбинации.
Рассм синхронный JK триггер.
J
K
Qt+1
Qt
1
1
1
1
1
Большинство схем ЭВМ синхронные, поэтому изменить состояние они могут только при поступлении специального синхро-сигнала на синхровход. Одним из основных для построения подобных схем служит синхронный JK-триггер. Срабатывает когда С меняется с 1 на 0.
В кач-ве примера последовательной схемы рассмотрим счетчик.
Счетчик – схема ЭВМ, состояние которой последовательно изменяется от значения 0÷2k, где k –число разрядов счетчика.
Схема счетчика с последовательным переносом.
0 0 0 0
1 0 0 0
0 1 0 0
1 1 0 0
0 0 1 0
– максимальное время срабатывания, где – время срабатывания одного счетчика, а – кол-во счетчиков.
Счетчик с параллельным переносом.
Методика синтеза последовательных схем
24.02.11
Рассм обобщенную структуру последовательной схемы.
Следующее состояние схемы определяется через предыдущее
Таблица изменений состояний JK триггера
Qt
Qt+1
J
K
J ^ K
1
0 ^ x
1
1
1
1
1 ^ x
1
1
1
1
x^ 1
1
1
1
x ^ 0
Х – означает что не важно какое значение мы подадим на J или К
Пример. 0, 14, 15, 10, 12, 7, 6, 3, 0... Найти Qi=f(ji,ki)
#
Q3
Q 2
Q 1
Q0
Q 3
Q 2
Q 1
Q 0
J3
K3
J2
K2
J1
K1
J0
K0
1
1
1
1
X
1
X
1
X
X
14
1
1
1
1
1
1
1
X
X
X
1
X
15
1
1
1
1
1
1
X
X
1
X
X
1
10
1
1
1
1
X
1
X
X
1
X
12
1
1
1
1
1
X
1
X
1
X
1
X
7
1
1
1
1
1
X
X
X
X
1
6
1
1
1
1
X
X
1
X
1
X
3
1
1
X
X
X
1
X
1
Это таблица истинности для 8-ми логических функций J0K0; J1K1 и тд.
Карта Вейча для J0
Отсюда следует, что J0=Q2;
После того, как карта Вейча получена для минимизации нужно все единичные конъюнкции склеить либо с единицами, либо со значениями которые не определены (х)
K0 = 1 – можно принять тождественно равной единице, т.к. столбец с К0 не содержит нули, а значения х ожно принять равными единице
Для К2
После склеивания:
Микропроцессоры
Архитектура процессора: - типы регистров(разрядность)
- форматы команд
- форматы данных
- процесс функционирования(конвеерный принцип обработки)
Структура ЭВМ (микроконтроллер)
Микроконтроллер – специализированное вычислительное устройство, предназначенное для решения конкретных задач.
Рассм. Основные элементы из которых состоит микроконтроллер.
1) ШД – Шина Данных
2) ША – Шина Адреса
3) ШУ – Шина Управления
ПУ – переферийное устройство(например клавиатура)
Микропроцессор - устройство предназначенное, для выполнения команд, поступающих из ОЗУ. Команды, выполнения команды должны находиться в ОЗУ (при выкл питании вся информация из ОЗУ стирается, поэтому все ПО должно храниться на энерго-независимых носителях. В больших сложных системах это магнитные диски, в простых – ПЗУ.)
ПО можно разделить на две части: программы предназначенные для управления микропроцессором( например ОС), и прикладные – программы для решения конкретных прикладных задач.
ПЗУ – энергонезависимая память, содержащая ОС и прикладные программы, при вкл микроконтроллера из ПЗУ в ОЗУ сначала загружаются управляющие программы, потом прикладные.
В процессе функционирования микроконтроллер взаимодействует с разными устройствами, исопльзуется система ввода/вывода (в современном употреблении - интерфейс ввода/вывода)
Рассм. Структуру 8-ми разрядного процессора:
РОН (регистр общего назначения) – предназначен для хранения операнд и их адресов. Для хранения адресов используется регистровая пара. Также есть еще один регистр – АКК.
АКК (аккумулятор) – т.к. команды данного микропроцессора одноадресные, т.е. адресная часть может содержать только один операнд, то если нам нужно записать два операнда, второй придется записывать в АКК.
АЛУ – извлекает один операнд из АКК, а второй из адресной части команды (в большинстве случаем там адрес, но может быть и сам операнд.)
АЛУ – предназначенно для выполнения арифмитических и логических команд.
Регистр состояния – особоые ситуации, которые могут возникать в процессе выполнения задания.
Выполнение любой команды начинается с извлечения её из ОЗУ и записи в регистр команд.
УУ (устройство управления) – анализирует содержимое регистра команд и формирует последовательность управляющих сигналов, обеспечивающих выполнение этой команды. Эти сигналы могут поступать как на внешние, так и на внутрненние устро-ва через шину управления. В процессе выполнения в УУ могут поступать сигналы обратной связи, как от внешних, так и внутренних, в частности они влияют на процесс формирования управляющих сигналов.
Счетчик команд – в нем формуется адрес следующей команды, которую должен выполнить микропроцессор. На линейных участках программы содержимое счетчик увеличивается на длину исполняемой команды(1,2,3). При выполнении команд переходов счетчик команд загружается адрес перехода. После завершения текущей команды содержимое счетчика команд передается в регистр адреса, после чего осуществляется извлечение следующей команды.
Если п процессе исполнения программы требуется операнд, находящийся в ОЗУ, то адрес этого операнда передается в регистр адреса, после этого данный операнд извлекается из ОЗУ и поступает в АЛУ
В упрощенном виде структура базовой ЭВМ типа IBM PC показана на рис.2.2. Она включает микропроцессор, состоящий из операционного (исполнительного) устройства, устройства сопряжения с системной шиной (шинный интерфейс ШИ) и устройства управления (УУ), оперативную память ОП и устройства ввода-вывода (УВВ), к которым относятся также жесткие и гибкие магнитные диски. Все эти устройства объединены между собой системной шиной. Системная шина состоит из набора проводников, усилителей и других устройств, предназначенных для обмена данными, адресной и управляющей информацией между составными частями ЭВМ.
Наиболее важные составляющие микропроцессора представлены на рис.2.3. Операционное устройство содержит группу регистров общего назначения (РОН), арифметическо-логическое устройство (АЛУ) и регистр флагов, или слово состояния процессора (PSW).
АЛУ состоит из комбинационного сумматора, с помощью которого выполняются арифметические операции, набора комбинационных схем для выполнения логических операций, схем для выполнения операций сдвигов, а также регистров для временного хранения операндов и результата.
Восемь 16-битовых РОН могут выполнять различные функции. Регистры AX, BX, CX, DX, в основном, используются для хранения данных. Все эти регистры допускают раздельное использование их младших байтов AL, BL, CL, DL и старших байтов AH, BH, CH, DH. Тем самым обеспечивается возможность обработки как слов, так и байтов информации.
Кроме основного применения, эти регистры в некоторых операциях выполняют специальные функции. BX может служить базовым регистром при вычислении адреса, CX в ряде команд организации циклов выступает в качестве неявного счетчика, а в DX при операциях ввода-вывода хранится адрес порта ввода-вывода.
Регистры SP, BP, SI, DI предназначены, главным образом, для хранения адресной информации. При этом SP и BP часто используются в качестве указателей стека и базы (в том числе стека), а SI и DI - для хранения индексов и указателей цепочек символов. Поэтому SI и DI могут служить вместе с базовыми регистрами BX и BP для сложной адресации, хотя допускается их самостоятельное применение. Так как эти четыре регистра предназначены, в основном, для хранения адресной информации, их содержимое трактуется только как целое 16‑битовое слово.
16-битовый регистр флагов F (встречается обозначение PSW) предназначен для фиксации признаков выполнения определенных операций и управляющей информации Значения флагов используются микропроцессором при выполнении условных переходов и реализации определенных режимов работы.
Назначение арифметических флагов:
CF - флаг переноса; фиксирует факт переноса (заема) из старшего бита при сложении (вычитании);
PF - флаг паритета; устанавливается в 1, если младшие 8 бит результата операции содержат четное число единиц;
AF - флаг вспомогательного переноса; фиксирует перенос (заем) из младшей тетрады в старшую при сложении (вычитании) в двоично-десятичной системе счисления;
SF - флаг знака; устанавливается равным старшему биту результата;
ZF - флаг нуля; равен 1 при получении нулевого результата;
OF - флаг переполнения; устанавливается в 1 при получении результата вне допустимого диапазона чисел. При сложении такая ситуация возникает, если имеется перенос в старший бит и нет переноса из старшего бита, или наоборот. При вычитании - когда возникает заем из старшего бита, но нет заема в старший бит, или наоборот.
Пример: в команде выполняется сложение
+0101 0100 0011 1001
0100 0101 0110 1010
1001 1001 1010 0011
В результате установятся следующие значения флагов:
SF=1, ZF=0, PF=1, CF=0, AF=1, OF=1.
Назначение флагов управления микропроцессором:
DF - флаг направления; применяется в командах работы с цепочками символов. Если флаг равен 0, цепочка обрабатывается с элемента, имеющего наименьший адрес. Если флаг установлен в 1, цепочка обрабатывается от старшего адреса к младшему;
IF - флаг разрешения прерывания; если флаг установлен в 1, процессор распознает маскируемые прерывания и соответственно реагирует на запрос прерывания. В противном случае эти прерывания игнорируются;
TF - флаг трассировки (прослеживания); если значение флага равно 1, микропроцессор переходит в покомандный (пошаговый) режим работы, применяемый при отладке программ. В этом случае после выполнения каждой команды генерируется внутреннее прерывание, позволяющее перейти к соответствующей подпрограмме.
Для установки значений флагов DF и IF предназначены специальные команды микропроцессора.
Шинный интерфейс содержит блок 16-битовых сегментных регистров CS, SS, DS, ES, указатель команд IP, сумматор адресов, очередь команд IQ и буферы, обеспечивающие связь с системной шиной. Шинный интерфейс выполняет операции обмена информацией между микропроцессором и ОП и портами ввода-вывода по запросам операционного устройства. Когда операционное устройство выполняет команду, ШИ самостоятельно инициирует опережающую выборку кодов очередных команд программы из ОП.
Сегментные регистры хранят базовые (начальные) адреса сегментов ОП: кодового сегмента CS, в котором содержится программа; сегмента данных DS; сегмента стека SS и дополнительного сегмента ES, в котором, как правило, содержатся данные, в частности цепочки символов, обрабатываемые специальными командами.
Очередь команд IQ представляет собой набор регистров размером в один байт и выполняет роль регистра команд, в котором хранятся коды команд, выбранные из ОП. Размер очереди команд определен равным максимально длинному формату команд микропроцессора и составляет 6 байт. Очередь команд непрерывно заполняется, если системная шина не занята в других операциях обмена информацией. Так как вероятность того, что в программе будут только команды максимально длинного формата мала, к моменту завершения текущей команды следующая выполняемая команда с большой вероятностью уже будет находиться в очереди команд, и не потребуется времени на считывание ее из ОП. Тем самым увеличивается пропускная способность процессора, то есть производительность микропроцессора. Опережающая выборка команд обеспечивается благодаря способности операционного устройства и ШИ работать параллельно. Естественно, выигрыш от опережающей выборки команд возможен лишь при естественном порядке выполнения команд программы. При выполнении команд переходов ШИ сбрасывает очередь команд, выбирает команду по новому адресу, а затем уже начинает новое опережающее заполнение очереди.
Указатель команд IP является аналогом обычного программного счетчика, но имеет по сравнению с ним специфику. Во-первых, указатель команд содержит не физический адрес команды, а его основную составляющую - смещение в текущем сегменте кода, базовый адрес которого указывается в регистре CS. Физический адрес команды определяется по содержимому IP и CS (см. рис.2.1). Поэтому полная аналогия с программным счетчиком возможна лишь при нулевом базовом адресе сегмента кода. Во-вторых, в связи с конвейерной выборкой команд, IP хранит смещение не следующей выполняемой команды, а команды, которую будет выбирать ШИ из ОП.
Сумматор адресов осуществляет вычисление 20-битовых физических адресов ОП в соответствии с содержимым сегментных регистров, режимами адресации операндов, содержимым IP.
Шина содержит усилители для обеспечения номинальной нагрузочной способности линий передачи информации.
Устройство управления (УУ) содержит блок микропрограммного управления и дешифрирующие схемы для дешифрации и выполнения команд.
Систему команд микропроцессора составляют шесть функционально различных групп операций: пересылка данных, арифметические операции, логические операции и сдвиги, передачи управления, обработка цепочек символов, управление микропроцессором. Система команд содержит около100 команд и вместе с применением различных способов адресации операндов это составляет более 3800 вариантов машинных кодов команд.
С целью достижения большей эффективности выполнения операций, повышения быстродействия работы ЭВМ, в микропроцессоре используется несколько форматов команд. Размер команды составляет от 1 до 6 байт. Имеются одно-, двухоперандные команды и команды с неявным указанием операндов (укороченный формат). Широко используется регистровая адресация и команды манипуляции с содержимым регистров. Характерным является отсутствие команд типа память-память SS (оба операнда находятся в ОП). Исключение - команды пересылки и сравнения цепочек байт или слов.
В общем случае формат команды содержит поле кода операции (как правило, располагается в первом байте команды, но в ряде команд расширяется на второй байт), до двух полей указания операндов и поля признаков, таких как указатель направления передачи результата операции, признак обработки слова или байта и другие.
Примеры форматов команд микропроцессора рассмотрены ниже.
Режимы адресации и форматы команд
Режимы адресации
Процессор I80x86 имеет все режимы адресации, общая схема которых была рассмотрена выше в разделе 1. Естественно, они имеют определенные особенности, присущие данному процессору. Рассмотрим их более подробно.
Непосредственная адресация предполагает, что операнд занимает одно из полей команды и, следовательно, выбирается из оперативной памяти одновременно с ней. В соответствии с форматами обрабатываемых процессором данных непосредственный операнд может иметь длину 8 или 16 бит, что в дальнейшем будем обозначать data8 и data16 соответственно. Схема считывания операнда при непосредственной адресации представлена на рис.3.1.
Механизмы адресации операндов, находящихся в регистровой памяти и находящихся в оперативной памяти, существенно различны. К регистровой памяти допускается лишь прямая регистровая адресация. При этом в команде указывается номер регистра, содержащего операнд. Схема прямой регистровой адресации представлена на рис.3.2. 16-разрядный операнд может находиться в регистрах AX, BX, CX, DX, DI, SI, SP или BP, а 8-разрядный - в регистрах AL, AH, BL, BH, CL, CH, DL или DH.
Адресация оперативной памяти имеет свои особенности, связанные с ее разбиением на сегменты и использованием сегментной группы регистров для указания начального адреса сегмента. 16-разрядный адрес, получаемый в блоке формирования адреса операнда на основе указанного режима адресации, называется зффективным адресом (ЭА). В литературе эффективный адрес часто обозначается как ЕА (effective adress). 20-разрядный адрес, который получается сложением эффективного адреса и увеличенного в 16 раз значения соответствующего сегментного регистра, называется физическим адресом (ФА).
Именно физический адрес передается из микропроцессора по 20-разрядной адресной шине в оперативную память и используется при обращении к ее ячейке на физическом уровне, то есть для возбуждения определенных контактов реальных микросхем памяти. Понятия эффективного и физического адресов используются только при адресации оперативной памяти. При получении эффективного адреса могут использоваться все основные режимы адресации, рассмотренные в разделе 1, а также некоторые их комбинации. Рассмотрим схемы формирования эффективного адреса в микропроцессорах младших моделей IBM PC.
Прямая адресация предполагает, что эффективный адрес является частью команды. Так как ЭА состоит из 16 разрядов, то и соответствующее поле команды должно иметь такую же длину. Схема этого режима адресации дана на рисунке 3.3. Пунктирная стрелка на схеме показывает, что режим адресации неявно определяет сегментный регистр, используемый при формировании физического адреса.
При регистровой косвенной адресации эффективный адрес операнда находится в базовом регистре BX или одном из индексных регистров DI или SI:
Обозначение имени регистра в круглых скобках указывает на содержимое соответствующего регистра. Фигурные скобки - символ выбора одной из нескольких возможных альтернатив. Схема косвенной регистровой адресации представлена на рис.3.4.
При регистровой относительной адресации (рис.3.5) эффективный адрес равен сумме содержимого базового или индексного регистра и смещения:
Обозначение disp8 и disp16 здесь и далее указывают на 8- или 16-разрядное смещение соответственно.
В некоторой литературе вместо понятия регистровой относительной адресации используются два других: базовая адресация и индексная адресация. Первое применяется при адресации с использованием регистров BX и BP, а второе - с использованием DI и SI. Так как функционирование процессора при формировании эффективного адреса в обоих случаях идентично, а различие этих понятий относится больше к области программирования, а не архитектуры микропроцессора, мы будем использовать лишь понятие регистровой относительной адресации.
Эффективный адрес при базово-индексной адресации равен сумме содержимого базового и индексного регистров, определяемых командой (рис.3.6):
Наиболее сложен механизм относительной базово-индексной адресации (рис.3.7).
Эффективный адрес в этом случае равен сумме 8- или 16-разрядного смещения и базово-индексного адреса:
Рассмотрим несколько примеров вычисления адресов при различных режимах адресации.
Пусть (BX)=2A14, (SI)=1036, (DI)=11F2, (DS)=2233, disp16 = 3114. Вся информация задана в 16-м коде.
Тогда при прямой адресации:
ЭА=disp16=3114
ФА=ЭА+(DS)*16=3114+22330=25444
При регистровой косвенной адресации:
ЭА1=2A14
ЭА2=1036
ЭА3=11F2,
если в команде в качестве используемого регистра указан BX, SI или DI соответственно. Физические адреса, соответствующие этим эффективным адресам, равны:
ФА1=24D44
ФА2=23366
ФА3=23522.
В зависимости от используемого регистра, при регистровой относительной адресации также возможны три различных эффективных и соответствующих им физических адреса:
ЭА1=(BX)+disp16=5B28, ФА1=27E58
ЭА2=(SI)+disp16=414A, ФА2=2647A
ЭА3=(DI)+disp16=4306, ФА3=26636
При базово-индексной адресации возможно получение двух различных эффективных адресов:
ЭА1=(BX)+(SI)=3A4A, ФА1=25D7A
ЭА2=(BX)+(DI)=3C06, ФА2=25F36
Аналогично, при относительной базово-индексной адрсации:
ЭА1=(BX)+(SI)+disp16=6B5E, ФА1=28E8E
ЭА2=(BX)+(DI)+disp16=6D1A, ФА2=2904A
Рассмотрим обратную задачу: определить значение регистра BX, необходимое для получения физического адреса 2836A в сегменте DS при базово-индексной адресации через регистр SI, если (SI)=14B7, (DS)=2334.
Эффективный адрес в этом случае будет равен:
ЭА=(BX)+(SI)=ФА-(DS)*16.
Тогда:
(BX)=ФА-(DS)*16-(SI)=3B73.
Форматы команд
Команда должна содержать всю необходимую информацию о действии, которое должен выполнить процессор, об используемых при зтом операндах и месте размещения результата операции. Действие может требовать одного, двух операндов или не требовать операндов вовсе. Количество и длина полей, необходимых для указания операнда, определяются его режимом адресации.
Исходя из этого, команды имеют несколько форматов. Длина любой команды в IBM PC кратна байту и составляет в базовой архитектуре от 1 до 6 байт. Система команд данного микропроцессора - двухадресная, причем, за исключением некоторых особых случаев, отсутствует возможность использовать в одной команде оба операнда из оперативной памяти. Поэтому в двухоперандной команде возможны следующие сочетания источников операндов:
регистр – регистр;
регистр – память;
регистр или память - непосредственный операнд.
В общем виде формат двухоперандной команды представлен на рис.3.8, где пунктиром обозначены необязательные поля команды. Первый байт команды всегда содержит код операции (КОП) и некоторые признаки, назначение которых будет рассмотрено ниже.
Второй байт, называемый постбайтом, определяет операнды, участвующие в операции. В поле reg постбайта кодируется согласно табл.3.1 номер регистра, участвующего в операции. Два других поля постбайта (md и r/m) определяют режим адресации другого операнда, а также сегментный регистр, используемый по умолчанию при формировании физического адреса в данном режиме (табл.3.2).
Так при md=11 второй операнд также находится в регистровой памяти. Код md=00 при r/m=000,001,010,011 определяет базово-индексный режим адресации. Закодировать режим прямой адресации можно, задав md=00 и r/m=110. Аналогично определяются и другие режимы адресации.
Коды регистров Таблица 3.1.
Режимы адресации Таблица 3.2
reg
регистр
w=1 w=0
000
AX
AL
001
CX
CL
010
DX
DL
011
BX
BL
100
SP
AH
101
BP
CH
110
SI
DH
111
DI
BH
md
00
01
10
11
r/m
w=1
w=0
000
(BX)+(SI)
(DS)
(BX)+(SI)+disp8
(DS)
(BX)+(SI)+disp16
(DS)
AX
AL
001
(BX)+(DI)
(DS)
(BX)+(DI)+disp8
(DS)
(BX)+(DI)+disp16
(DS)
CX
CL
010
(BP)+(SI)
(SS)
(BP)+(SI)+disp8
(SS)
(BP)+(SI)+disp16
(SS)
DX
DL
011
(BP)+(DI)
(SS)
(BP)+(DI)+disp8
(SS)
(BP)+(DI)+disp16
(SS)
BX
BL
100
(SI)
(DS)
(SI)+disp8
(DS)
(SI)+disp16
(DS)
SP
AH
101
(DI)
(DS)
(DI)+disp8
(DS)
(DI)+disp16
(DS)
BP
CH
110
disp16
(DS)
(BP)+disp8
(SS)
(BP)+disp16
(SS)
SI
DH
111
(BX)
(DS)
(BX)+disp8
(DS)
(BX)+disp16
(DS)
DI
BH
В качестве сегментного регистра во всех случаях обращения к оперативной памяти используется DS, за исключением режимов, использующих при формировании эффективного адреса регистр BP. В этих случаях при формировании физического адреса по умолчанию используется сегментный регистр SS.
Если для формирования эффективного адреса в соответствии с указанным режимом адресации требуется смещение, то оно записывается сразу же после постбайта в 3-м (при disp8) или 3-м и 4-м (при disp16) байтах команды. В этом случае сначала записывается младший байт смещения (dispL), а затем старший (dispH). При прямой адресации роль смещения играет сам прямой адрес операнда, который всегда занимает 2 байта.
Указание о том, на место какого из двух операндов должен быть помещен результат операции, кодируется признаком d, размещаемым в первом байте команды. При d=1 результат помещается на место операнда, закодированного в поле reg постбайта. При d=0 результат помещается на место операнда, закодированного в полях r/m и md. Кодируемый также в первом байте команды признак w показывает длину операндов: w=1 означает работу со словом (16-разрядные операнды), а w=0 - обработку однобайтовых операндов.
В случае, когда один из операндов представляет собой непосредственный операнд и, следовательно, кодируется в самой команде, в постбайте необходимо закодировать лишь режим адресации другого операнда. Поэтому часть постбайта, соответствующая полю reg, отводится под расширение кода операции. В этом случае отсутствует необходимость в признаке d, и формат команды приобретает вид, представленный на рис.3.9. Отметим, что если адресация операнда требует указания смещения, то оно размещается сразу же за постбайтом и лишь, затем в команде записывается непосредственный операнд. Для двухбайтового непосредственного операнда, так же как и для двухбайтового смещения, сначала записывается младший байт (data L), а затем старший (data H).
В командах этого типа место признака d занимает признак s, который показывает, как интерпретируется непосредственный операнд при выполнении команды. При s=0 непосредственный операнд имеет длину, определяемую признаком w. При s=1 и w=1 непосредственный операнд в команде занимает 1 байт, а при выполнении операции в АЛУ происходит его расширение до 16 разрядов, причем все разряды старшего байта повторяют старший (знаковый) разряд байта, записанного в команде ("расширение знаком"). Так при sw=11 непосредственный операнд, закодированный в команде как 01100111, при пересылке в АЛУ будет преобразован в 00000000 01100111, а операнд 11100110 преобразуется в 11111111 11100110.
Комбинация sw=10 не используется.
Таким образом, использование признака s при небольших числах позволяет задавать однобайтовый непосредственный операнд в операциях над словами, сокращая длину команды.
Рассмотренная постбайтовая адресация является универсальной и позволяет адресовать как общие регистры, так и ячейки памяти при различных режимах адресации. Однако при адресации только регистров или аккумулятора постбайт оказывается излишним, если 3-разрядное поле reg разместить в первом байте команды или использовать неявную адресацию. Использование таких специальных форматов ведет к сокращению длины команды. Специальные форматы предусмотрены для команд, выполняющих следующие часто используемые операции: пересылка данных между регистром и стеком, загрузка непосредственного операнда в регистр, инкремент (увеличение на 1) и декремент (уменьшение на 1) содержимого регистра, обмен содержимым аккумулятора и регистра, пересылки между аккумулятором и прямоадресуемой ячейкой памяти, ряд арифметических и логических операций между аккумулятором и непосредственным операндом. Напомним, что под аккумулятором понимается регист AX при w=1 и регистр AL при w=0.
Помимо рассмотренных признаков d,w,s, при кодировании некоторых командах используются и другие признаки.
Признак v применяется в командах сдвигов для определения числа сдвигов: при v=0 осуществляется сдвиг на 1 разряд, а при v=1 сдвиг осуществляется на количество разрядов, заданное в регистре CL. Признак z используется в префиксе REP цепочечных команд, увеличивая их логическую мощность. В данном пособии эти возможности детально анализироваться не будут.
Рассмотренные примеры являются типичными случаями кодирования двухоперандных команд. Однако в ряде применений могут использоваться и другие форматы команд. Простейшим с точки зрения кодирования случаем является 1-байтовая команда, состоящая из единственного поля - поля операции (рис.3.10.). Операнд (операнды) таких команд всегда берется из одного и того же места, которое неявным образом определяется самим кодом операции. Например, команда PUSHF всегда пересылает содержимое регистра флагов в стек. Так же кодируются и некоторые команды, вообще не требующие операндов, например, команда ожидания WAIT.
Один байт занимают и некоторые однооперандные команды, использующие содержимое регистра в качестве единственного операнда (рис.3.11). Примером такой команды может служить команда INC R (01000reg), увеличивающая значение регистра reg на 1.
Машинные коды некоторых часто используемых команд представлены в табл. 3.3.
Машинные коды команд Таблица 3.3
Команда
Байты кода команды
Схема операции
байт 1
байт 2
байты 3…6
ADD
000000dw
md reg r/m
(disp8/16)
r(r/m) = r + r/m
100000sw
md 000 r/m
(disp8/16)d8/16
r/m = r/m + d
0000010w
data L
(data H)
ac = ac + d
SUB
001010dw
md reg r/m
(disp8/16)
r(r/m)=r(r/m)-(r/m)r
100000sw
md 101 r/m
(disp8/16)d8/16
r/m = r/m – d
0010110w
data L
(data H)
ac = ac – d
AND
001000dw
md reg r/m
(disp8/16)
r(r/m) = r & r/m
100000sw
md 100 r/m
(disp8/16)d8/16
r/m = r/m & d
0010010w
data L
(data H)
ac = ac & d
OR
000010dw
md reg r/m
(disp8/16)
r(r/m) = r V r/m
100000sw
md 001 r/m
(disp8/16)d8/16
r/m = r/m V d
0000110w
data L
(data H)
ac = ac V d
XOR
001100dw
md reg r/m
(disp8/16)
r(r/m) = r + r/m
100000sw
md 110 r/m
(disp8/16)d8/16
r/m = r/m + d
0011010w
data L
(data H)
ac = ac + d
MOV
100010dw
md reg r/m
(disp8/16)
r = r/m, r/m = r
1100011w
md 000 r/m
(disp8/16)d8/16
r/m = d
1011wreg
data L
(data H)
reg = d
1010000w
disp L
disp H
ac=m;прямой адрес
1010001w
disp L
disp H
m=ac;прямой адрес
CMP
0011101w
md reg r/m
(disp8/16)
r – r/m
0011100w
md reg r/m
(disp8/16)
r/m – r
100000sw
md 111 r/m
(disp8/16)d8/16
r/m – d
0011110w
data L
(data H)
ac – d
INC
1111111w
md 000 r/m
(disp8/16)
r/m = r/m+1
01000reg
reg = reg+1
DEC
1111111w
md 001 r/m
(disp8/16)
r/m = r/m-1
01001reg
reg = reg-1
Продолжение таблицы 3.3
Команда
Байты кода команды
Схема операции
байт 1
байт 2
байты 3…6
TEST
1000010w
md reg r/m
(disp8/16)
r & r/m
1111011w
md 000 r/m
(disp8/16)d8/16
r/m & d
1010100w
data L
(data H)
ac & d
XCHG
10010reg
reg AX
1000011w
md reg r/m
(disp8/16)
reg r/m
JMP short
11101011
disp L
IP=IP+dispL
near ptr
11101001
disp L
disp H
IP=IP+dispH,L
word ptr
11111111
md 100 r/m
(disp8/16)
IP=(EA)
far ptr
11101010
IP-L
IP-H,CS-L,CS-H
IP=IPH,L,CS=CSH,L
dword ptr
11111111
md 101 r/m
(disp8/16)
IP=(EA),CS=(EA+2)
Условный
переход
IP=IP+dispL, если условие выполнено, иначе к след. команде
JZ (JE)
01110100
disp L
ноль (равно)
JNZ (JNE)
01110101
disp L
не ноль (не равно)
JS
01111000
disp L
минус
JNS
01111001
disp L
плюс
JO
01110000
disp L
переполнение
JNO
01110001
disp L
нет переполнения
JL (JNGE)
01111100
disp L
меньше для чисел
JNL (JGE)
01111101
disp L
не меньше для чисел
JG(JNLE)
01111100
disp L
больше для чисел
JNG (JLE)
01111101
disp L
не больше для чисел
JB(JNAE,JC)
01110010
disp L
меньше для кодов
JNB
(JAE,JNC)
01110011
disp L
не меньше для кодов
JA(JNBE)
01110010
disp L
больше для кодов
JNA(JBE)
01110011
disp L
не больше для кодов
JP(JPE)
01111010
disp L
четное число “1”
JNP(JPO)
01111011
disp L
нечетное число “1”
Рассмотрим несколько примеров кодирования команд при различных режимах адресации операндов.
Лекция 5. Параллельные, многомашинные и ассоциативные вычислительные системы и сети ЭВМ.
Способы построения и классификация.
Система обработки данных (СОД) – совокупность технических средств и программного обеспечения, предназначенная для информационного обслуживания пользователей и технических объектов. В состав технических средств входит оборудование для ввода, хранения, преобразования и вывода данных, в том числе ЭВМ, устройства сопряжения ЭВМ с объектами, аппаратура передачи данных, и линии связь. Программное обеспечение (программные средства) – совокупность программ, реализующих возложенные на систему функции. Функции СОД состоят в выполнении требуемых актов обработки данных: ввода, хранения, преобразования и вывода. Примерами СОД являются вычислительные системы для решения научных, инженерно-технических, планово-экономических и учетно-статистических задач, автоматизированные системы управления предприятиями и отраслями народного хозяйства, системы автоматизированного и автоматического управления технологическим оборудованием и техническими объектами, информационно-измерительные системы и др.
Основа СОД – это технические средства, так как их производительностью и надежностью в наибольшей степени определяется эффективность СОД.
Одномашинные СОД. Исторически первыми и до сих пор широко распространенными являются одномашинные СОД, построенные на базе единственной ЭВМ с традиционной однопроцессорной структурой. К настоящему времени накоплен значительный опыт проектирования к эксплуатации таких СОД, и поэтому создание, их, включая разработку программного обеспечения, не вызывает принципиальных трудностей. Однако производительность и надежность существующего парка ЭВМ оказывается удовлетворительной лишь для ограниченного применения, когда требуется относительно невысокая (до нескольких миллионов операций в секунду) производительность и допускается простой системы в течение нескольких часов из-за отказов оборудования. Повышение производительности и надежности ЭВМ обеспечивается в основном за счет совершенствования элементно-технологической базы. Достигнутое к настоящему времени быстродействие электронных схем приближается к физическому пределу, и производительность ЭВМ на уровне десяти миллионов операций в секунду можно рассматривать как максимальную возможную. При любом уровне технологии нельзя обеспечить абсолютную надежность элементной базы, и поэтому нельзя для одномашинных СОД исключить возможность потери работоспособности. Таким образом, одномашинные СОД лишь частично удовлетворяют потребность в автоматизации обработки данных.
а)
б)
Рис. 5.1. Многомашинный вычислительный комплекс с косвенной (а) и прямой (б) связью между ЭВМ
Вычислительные комплексы. Начиная с 60-х годов для повышения надежности и производительности СОД, несколько ЭВМ связывались между собой, образуя многомашинный вычислительный комплекс.
В ранних многомашинных комплексах связь между ЭВМ обеспечивалась через общие внешние запоминающие устройства – накопители на магнитных дисках (НМД) или магнитных лентах (НМЛ) (рис 1,1, а), т.е. за счет доступа к общим наборам данных. Такая связь называется косвенной и оказывается эффективной только в том случае, когда ЭВМ взаимодействуют достаточно редко, например, при отказе одной из ЭВМ или в моменты начала и окончания обработки данных. Более оперативное взаимодействие ЭВМ достигается за счет прямой связи через адаптер, обеспечивающий обмен данными между каналами ввода – вывода ЧКВВ) двух ЭВМ (рис. 1.1, б) и передачу сигналов прерывания. За счет этого создаются хорошие условия для координации процессов обработки данных и повышается оперативность обмена данными, что позволяет вести параллельно процессы обработки и существенно увеличивать производительность СОД. В настоящее время многомашинные вычислительные комплексы широко используются для повышения надежности и производительности СОД.
В многомашинных вычислительных комплексах взаимодействие процессов обработки данных обеспечивается только за счет обмена сигналами прерывания и передачи данных через адаптеры канал – канал или общие внешние запоминающие устройства. Лучшие условия для взаимодействия процессов – когда все процессоры имеют доступ ко всему объему данных, хранимых в оперативных запоминающих устройствах (ОЗУ), и могут взаимодействовать со всеми периферийными устройствами комплекса. Вычислительный комплекс, содержащий несколько процессоров с общей оперативной памятью и периферийными устройствами, называется многопроцессорным. Принцип построения таких комплексов иллюстрируется рис. 1.2. Процессоры, модули оперативной памяти (МП) и каналы ввода–вывода, к которым подключены периферийные устройства (ПУ), объединяются в единый комплекс с помощью средств коммутации, обеспечивающих доступ каждого процессора к любому модулю оперативной памяти и каналу ввода–вывода, а также возможность передачи данных между последними. В многопроцессорном комплексе отказы отдельных устройств влияют на работоспособность СОД в меньшей степени, чем в многомашинном, т.е. многопроцессорные комплексы обладают большей устойчивостью к отказам. Каждый процессор имеет непосредственный доступ ко всем данным, хранимым в общей оперативной памяти, и к периферийным устройствам, что позволяет параллельно обрабатывать не только независимые задачи, на и блоки одной задачи.
Рис. 5.2. Многопроцессорный вычислительный комплекс
Многомашинные и многопроцессорные вычислительные комплексы рассматриваются как базовые средства для создания СОД различного назначения. Поэтому в состав вычислительного комплекса принято включать только технические средства и общесистемное (базовое), но не прикладное программное обеспечение, связанное с конкретной областью применения комплекса. Таким образом, вычислительный комплекс – совокупность технических средств, включающих в себя несколько ЭВМ или процессоров, и общесистемного (базового) программного обеспечении.
Вычислительные системы. СОД, настроенная на решение задач, конкретной области применения, называется вычислительной системой. Вычислительная система включает в себя технические средства и программное обеспечение, ориентированные на решение определенной совокупности задач. Существует два способа ориентации. Во-первых, вычислительная система может строиться на основе ЭВМ или вычислительного комплекса общего применения и ориентация системы обеспечивается за счет программных средств – прикладных программ и, возможно, операционной системы. Во-вторых, ориентация на заданный класс задач может достигаться за счет использования специализированных ЭВМ и вычислительных комплексов. В этом случае удается при умеренных затратах оборудования добиться высокой производительности. Специализированные вычислительные системы наиболее широко используются при решении задач векторной и матричной, алгебры, а также связанных с интегрированием дифференциальных уравнений, обработкой изображений, распознаванием образов и т. д.
Вычислительные системы, построенные на основе специализированных комплексов, начали интенсивно разрабатываться с конца 60-х годов. В таких системах использовалась процессоры со специализированными системами команд, конфигурация комплексов жестко ориентировалась на конкретный класс задач. В последнее десятилетие начались исследования и разработки адаптивных вычислительных систем, гибко приспосабливающихся к решаемым задачам. Адаптация вычислительной системы с целью приспособления ее к структуре реализуемого алгоритма достигается за счет изменения конфигурации системы. При этом соединения между процессорами, а также модулями памяти и периферийными устройствами устанавливаются динамически в соответствии с потребностями задач, обрабатываемых системой в текущий момент времени. В связи с этим адаптивные вычислительные системы иначе называются системами с динамической структурой. За счет адаптации достигается высокая производительность в широком классе задач и обеспечивается устойчивость системы к отказам. Поэтому адаптивные системы рассматриваются как одно из перспективных направлений развития систем обработки данных.
Системы телеобработки. Уже первоначальное применение СОД для управления производством, транспортом и материально-техническим снабжением показало, что эффективность систем можно значительно повысить, если обеспечить ввод данных в систему непосредственно с мест их появления и выдачу результатов обработки к местам их использования. Для этого необходимо связать СОД и рабочие места пользователей с помощью каналов связи. Системы, предназначенные для обработки данных, передаваемых по каналам связи, называются системами телеобработки данных.
Состав технических средств системы телеобработки данных укрупненно представлен на рис. 1.3. Пользователи (абоненты) взаимодействуют с системой посредством терминалов (абонентских пунктов), подключаемых через каналы связи к средствам обработки данных – ЭВМ или вычислительному комплексу. Данные передаются по каналам связи в форме сообщений – блоков данных, несущих в себе кроме собственно данных служебную информацию, необходимую для управления процессами передачи и защиты данных от искажений. Программное обеспечение систем телеобработки содержит специальные средства, необходимые для управления техническими средствами, установления связи между ЭВМ и абонентами, передачи данных между ними и организации взаимодействия пользователей с программами обработки данных.
Телеобработка данных значительно повышает оперативность информационного обслуживания пользователей и наряду с этим позволяет создавать крупномасштабные системы, обеспечивающие доступ широкого круга пользователей к данным и процедурам их обработки.
Вычислительные сети. С ростом масштабов применения электронной вычислительной техники в научных исследованиях, проектно-конструкторских работах, управлении производством и транспортом и прочих областях стала очевидна необходимость объединения СОД, обслуживающих отдельные предприятия и коллективы. Объединение разрозненных СОД обеспечивает доступ к данным и процедурам их обработки для всех пользователей, связанных общей сферой деятельности. Так, экспериментальные данные, полученные группой исследователей, могут использоваться при проектно-конструкторских работах, результаты проектирования – при технологической подготовке производства, результаты испытаний и эксплуатации изделий – для совершенствования конструкций и технологии производства и т. д. Чтобы объединить территориально разрозненные СОД в единый комплекс, необходимо, во-первых, обеспечить возможность обмена данными между СОД, связав соответствующие ЭВМ в вычислительные комплексы каналами передачи данных, и, во-вторых, оснастить системы программными средствами, позволяющими пользователям одной системы обращаться к информационным, программным и техническим ресурсам других систем.
Рис. 5.3. Система телеобработки данных
Рис. 5.4. Вычислительная сеть
В конце 60-х годов был предложен способ построения вычислительных сетей, объединяющих ЭВМ (вычислительные комплексы) с помощью базовой сети передачи данных. Структура вычислительной сети в общих чертах представлена на рис. 1.4. Ядром является базовая сеть передачи данных (СПД), которая состоит из каналов и узлов связи (УС). Узлы связи принимают данные и передают их в направлении, обеспечивающем доставку данных абоненту. ЭВМ подключаются к узлам базовой сети передачи данных, чем обеспечивается возможность обмена данными между любыми парами ЭВМ. Совокупность ЭВМ, объединенных сетью передачи данных, образует сеть ЭВМ. К ЭВМ непосредственно или с помощью каналов связи подключаются терминалы, через которые пользователи взаимодействуют с сетью. Совокупность терминалов и средств связи, используемых для подключения терминалов к ЭВМ, образует терминальную сеть. Таким образом, вычислительная сеть представляет собой композицию базовой сети передачи данных, сети ЭВМ и терминальной сети. Такая вычислительная сеть называется глобальной или распределенной (в дальнейшем – «вычислительная сеть», в отличие от локальной). Вычислительные сети используются для объединения ЭВМ, находящихся на значительном расстоянии друг от друга в пределах региона, страны или континента.
В вычислительной сети все ЭВМ оснащаются специальными программными средствами для сетевой обработки данных. На сетевое программное обеспечение возлагается широкий комплекс функций: управление аппаратурой сопряжения и каналами связи: установление соединений между взаимодействующими процессами и ЭВМ; управление процессами передачи данных; ввод и выполнение заданий от удаленных терминалов; доступ программ к наборам данных, размещенных в удаленных ЭВМ, и др. К сетевому программному обеспечению предъявляются следующие требования: сохранение работоспособности сети при изменении ее структуры вследствие выхода из строя отдельных ЭВМ, каналов и узлов связи, а также возможность работы ЭВМ с терминалами различных типов и взаимодействия разнотипных ЭВМ. Функции, возлагаемые на сетевое программное обеспечение, отличаются высоким уровнем сложности и реализуются с использованием специально разработанных методов управления процессами пере дачи и обработки данных.
Вычислительные сети – наиболее эффективный способ построения крупномасштабных СОД. Использование вычислительных сетей позволяет автоматизировать управление отраслями производства, транспортом и материально-техническим снабжением в масштабе крупных регионов и страны в целом. За счет концентрации в сети больших объемов данных и общедоступности средств обработки значительно улучшается информационное обслуживание научных исследований, повышается производительность труда инженерно-технических работников и качество административно-управленческой деятельности. Кроме того, объединение ЭВМ в вычислительные сети позволяет существенно повысить эффективность их использования. Как показывает практика, стоимость обработки данных в вычислительных сетях, по крайней мере, в полтора раза меньше, чем при использовании автономных ЭВМ.
Локальные вычислительные сети. К концу 70-х годов в сфере обработки данных широкое распространение наряду с ЭВМ общего назначения получили мини и микро-ЭВМ и начали применяться персональные ЭВМ. При этом для обработки данных в рамках одного предприятия или его подразделения использовалось большое число ЭВМ, каждая из которых обслуживала небольшую группу пользователей, а микро-ЭВМ и персональные ЭВМ – отдельных пользователей. В то же время коллективный характер труда требовал оперативного обмена данными между пользователями, т. е. объединения ЭВМ в единый комплекс. В конце 70-х годов разработан эффективный способ объединения ЭВМ, расположенных на незначительном расстоянии друг от друга – в пределах одного здания или группы соседних зданий, с помощью моноканала, (последовательного интерфейса) – локальные вычислительные сети.
Локальная вычислительная сеть (ЛВС) – совокупность близкорасположенных ЭВМ, которые связаны последовательными интерфейсами и оснащены программными средствами, обеспечивающими информационное взаимодействие между процессами в разных ЭВМ. Типичная структура ЛВС изображена на рис. 1.5. Сопрягаются ЭВМ с помощью моноканала – единого для всех ЭВМ сети канала передачи данных. В моноканале наиболее широко используются скрученная пара проводов, коаксиальный кабель или волоконно-оптическая линия. Длина моноканала не превышает обычно нескольких сотен метров. При этом пропускная способность моноканала составляет 105–107 бит/с, что достаточно для обеспечения информационной связи между десятками ЭВМ. ЭВМ сопрягаются с моноканалом с помощью сетевых адаптеров (СА), иначе контроллеров, реализующих операции ввода – вывода данных через моноканал. Наличие в сети единственного канала для обмена данными между ЭВМ существенно упрощает процедуры установления соединений и обмена данными между ЭВМ. Поэтому сетевое программное обеспечение ЭВМ оказывается более простым, чем в вычислительных сетях, содержащих сеть передачи данных, и легко встраивается даже в микро-ЭВМ. Вследствие этого локальные вычислительные сети оказываются эффективным средством построения сложных СОД на основе микро- и мини-ЭВМ.
Рис. 5.5. Локальная вычислительная сеть Терминалы пользователей
Локальные вычислительные сети получают широкое применение в системах автоматизации проектирования и технологической подготовки производства, системах управления производством, транспортом, снабжением и сбытом (учрежденческих системах), а также и системах автоматического управления технологическим оборудованием, создаваемых на основе микро- и мини-ЭВМ, в частности в гибких производственных системах.
Классификация СОД. Классифицируются СОД в зависимости от способа построения (рис. 1.6). СОД, построенные на основе отдельных ЭВМ, вычислительных комплексов и систем, образуют класс сосредоточенных (централизованных) систем, в которых вся обработка реализуется ЭВМ, вычислительным комплексом или специализированной системой. Системы телеобработки и вычислительные сети относятся к классу распределенных систем, в которых процессы обработки данных рассредоточены по многим компонентам. При этом системы телеобработки считаются распре деленными в некоторой степени условно, поскольку основные функции обработки данных здесь реализуются централизованно – в одной ЭВМ или вычислительном комплексе.
Существенное влияние на организацию СОД оказывают технические возможности средств, используемых для сопряжения (комплексирования) ЭВМ. Основным элементом сопряжения является интерфейс, определяющий число линий для передачи сигналов и данных и способ (алгоритм) передачи информации 110 линиям. Все интерфейсы, используемые в вычислительной технике и связи, разделяются на три класса: параллельные, последовательные и связные (рис. 1.7). Параллельный интерфейс состоит из большого числа линий, данные по которым передаются в параллельном коде – обычно в виде 8 – 128-разрядных слов. Параллельные интерфейсы имеют большую пропускную способность, как правило, 106–108 бит/с. Столь большие скорости передачи данных обеспечиваются за счет ограниченной длины интерфейса, которая обычно составляет от нескольких метров до десятков метров и в редких случаях достигает сотни. Последовательный интерфейс состоит, как правило, из одной линия, данные по которой передаются в последовательной ходе. Пропускная способность последовательных интерфейсов обычно составляет 105–107 бит/с при длине линии от десятков метров до километра. Связные интерфейсы содержат каналы связи, работа которых обеспечивается аппаратурой передачи данных, повышающей (в основном с помощью физических методов) достоверность передачи. Связные интерфейсы обеспечивают передачу данных на любые расстояния, однако с небольшой скоростью – в пределах от 103 до 105 бит/с. Применение связных интерфейсов экономически оправдывается на расстояниях, не меньших километра.
Рис. 5.6. Классификация СОД
Рис. 5.7. Характеристики интерфейсов
В сосредоточенных системах применяются в основном параллельные интерфейсы, используемые для сопряжения устройств и построения многомашинных и многопроцессорных комплексов, и только в отдельных случаях, чаще для подключения периферийных устройств, применяются последовательные интерфейсы. Параллельные интерфейсы обеспечивают передачу сигналов прерывания, отдельных слов и блоков данных между сопрягаемыми ЭВМ и устройствами. В распределенных системах из-за значительности расстояний между компонентами применяются последовательные и связные интерфейсы, которые исключают возможность передачи сигналов прерывания между сопрягаемыми устройствами и требуют представления данных в виде сообщений, передаваемых с помощью операций ввода – вывода. Различие способов предъявления данных в параллельных, последовательных и связных интерфейсах и в пропускной способности интерфейсов существенно влияет на организацию обработки данных и, следовательно, программного обеспечения СОД.
Вычислительные системы
Системы с конвейерной обработкой информации
Принцип конвейерной обработки информации нашел широкое применение в вычислительной технике. В первую очередь это относится к конвейеру команд. Практически все современные ЭВМ используют этот принцип. Вместе с тем во многих вычислительных системах наряду с конвейером команд используется и конвейер данных. Сочетание этих двух конвейеров дает возможность достигнуть очень высокой производительности систем на определенных классах задач, особенно если при этом используется несколько конвейерных процессоров, способных работать одновременно и независимо друг от друга. Именно так и построены самые высокопроизводительные системы. Целесообразнее всего рассмотреть принцип конвейерной обработки на примере некоторых, наиболее представительных систем.
К числу ЭВМ, в которых широкое применение нашел конвейер команд, относится одна из лучших отечественных машин БЭСМ-6. Эта ЭВМ, разработанная под руководством академика С. А. Лебедева в 1966 г., была в течение многих лет самой быстродействующей в стране благодаря целому ряду интересных решений, в том числе и конвейеру команд. Последний обеспечивался использованием восьми независимых модулей ОЗУ, работающих в системе чередования адресов, и большого числа быстрых регистров, предназначенных также и для буферизации командной информации. Это позволило получить на БЭСМ-6 производительность 1 млн. операций в секунду.
Определенный интерес представляет построение систем IВМ 360/91, а также более поздней и более современной IВМ 360/195. Пять основных устройств системы: ОЗУ, управления памятью с буферным ОЗУ, процессор команд, операционные устройства для выполнения операций с плавающей запятой, с фиксированной запятой и десятичной арифметики работают одновременно и независимо друг от друга. Оперативное ЗУ построено по многомодульному принципу (до 32 модулей), устройство управления памятью работает по принципу конвейера и обеспечивает 8- или 16-кратное чередование адресов при обращении процессора и каналов ввода – вывода информации к ОЗУ.
Рис. 5.8. Система STAR-100
Кроме конвейера команд в системах IВМ 360/91 и IВМ 370/195 в обоих ОУ используется также и конвейерная обработка данных. Однако в системе 360/195 конвейер получается довольно внушительный: в каждом цикле осуществляется выборка до 8 команд, расшифровка 16 команд, до 3 операций над адресами и до 3 процессорных операций. Всего в системе одновременно может обрабатываться до 50 команд.
Существенно более полно используется принцип магистральной обработки в системе STAR-100, разработанной фирмой СDС в 1973 г. Надо сказать, что фирма СDС в большинстве разрабатываемых и выпускаемых машин и систем использует принцип конвейерном обработки для повышения производительности, однако раньше использовался только командный конвейер, а в системе STAR-100 – оба типа конвейера. Система содержит три конвейерных процессора (рис. 3.1): ППЗ – процессор, содержащий конвейерные устройства сложения и умножения с плавающей запятой; ППФЗ – процессор, содержащий конвейерное устройство сложения с плавающей запятой, конвейерное многоцелевое устройство, выполняющее умножение с фиксированной запятой, деление и извлечение квадратного корня; СП – специальный конвейерный 16-разрядный процессор, выполняющий операции с фиксированной запятой и ряд логических операций.
Конвейерные процессоры оперируют с 64- или 32-разрядными числами и каждые 40 не выдают результаты в блок управления потоками данных и буферами. Оперативное ЗУ построено по модульному принципу (32-модуля памяти) и работает с чередованием адресов под управлением устройства УП (управление памятью). Каждый малый цикл обращения к памяти – 40 нc. (Полный цикл ОЗУ–1,28 мкс, т. е. 40X32 нc.)
Конвейерный сумматор с плавающей запятой состоит из четырех сегментов – специализированных операционных устройств (см. рис. 2.2, а). Продолжительность цикла каждого сегмента составляет 40 нс; таким образом, время выполнения операции сложения с плавающей запятой равно 160 нс.
Рис. 5.9. Конвейер системы АSС
Конвейерный умножитель включает в себя 8 сегментов, поэтому время выполнения операции умножения составляет 320 нс. Но при загрузке конвейерных процессоров длинной последовательностью операндов, над которыми производится одна и та же операция, результат выдается каждые 40 нс. Учитывая, что каждый из двух основных процессоров может выдавать по два 32-разрядных результата, нетрудно подсчитать, что система STAR-100 может в пределе выполнять до 100 млн. операций в секунду.
Устройства конвейерной обработки далеко не всегда выполняют с жесткой настройкой на одну определенную операцию. Чаще их делают многоцелевыми, вводя в конвейер сегменты, необходимые для реализации полного набора операций, в процессе выполнения которых весь тракт настраивается соответствующим образом. На рис. 3.2 представлена структура системы АSС фирмы «Техас Инструменте» и показано, какие сегменты универсальной цепочки работают при различных операциях.
Одной из наиболее высокопроизводительных вычислительных систем в мире общепризнанно считается система СКАУ, созданная в 1976 г. В этой системе конвейерный принцип обработки используется в максимальной степени: имеется и конвейер команд, и конвейер арифметических и логических операций. Кроме того, в системе широко применяется совмещенная обработка информации несколькими устройствами. Все это позволило при решении научных задач достигнуть чрезвычайно высокой производительности – до 250 млн. операций в секунду
Рис. 5.10. Система СRAY
Система CRAY (рис. 3.3) состоит из четырех секций: функциональных устройств, регистров, управления программой, памяти и ввода – вывода. В системе 12 функциональных устройств, работающих в режиме конвейера, разбитых на 4 группы: адресную, скалярную, операций с плавающей запятой и векторную. Число сегментов в каждом функциональном устройстве (указано в скобках на схеме) сравнительно невелико, оно зависит от сложности операций и колеблется в пределах от 1 до 14 (вычисление обратной величины). Такое сравнительно небольшое число сегментов в каждом магистральном устройстве имеет определенные преимущества – они сравнительно быстро заполняются. Длительность цикла каждого сегмента составляет 12,5 нс: это значит, что каждые 12,5 нс любое функциональное устройство может выдавать результаты.
Оперативная память системы, выполненная на интегральных схемах, имеет емкость 1 млн. слов (позже была увеличена до 4 млн.) и организована в виде 16 блоков памяти с независимым управлением емкостью по 64 кслов. Каждый блок включает в себя 72 модуля, причем модуль содержит один разряд всех 64 кслов. Система работает с 64-разрядными словами, 8 разрядов используется для коррекции одиночных и обнаружения двойных ошибок, что обеспечивает высокую надежность хранения информации. Независимые блоки дают возможность организовать 16-кратное чередование адресов. Цикл обращения к памяти – 50 нс.
Существенную роль в достижении столь высокой производительности играют быстрые регистры. Они разделены на 3 группы: адресные – А-регистры, скалярные – S-регистры и векторные – V-регистры. Адресные регистры 24-разрядные, их всего восемь; 64-разрядных 5-регистров также восемь и восемь 64-элементных V-регистров, причем каждый элемент вектора содержит 64-разрядное слово. Время обращения к регистру всего лишь 6 нc. В системе имеется еще две группы промежуточных регистров (между ОЗУ и А-, S- и V-регистрами): 24-разрядные В-регистры и 64-разрядные Т-регистры, на рисунке не показанные. Все эти регистры позволяют конвейерным устройствам работать с максимальной скоростью без непосредственного обращения к ОЗУ: все операнды получаются из регистров и результаты отправляются также в регистры. Благодаря регистрам конвейерные устройства связываются в цепочки, т. е, поток результатов засылаемых в векторный регистр одним устройством, одновременно служит входным потоком операндов для другого устройства; исключаются промежуточные обращения к памяти. Это является еще одной отличительной особенностью системы CRAY, повышающей ее производительность.
Состав операций универсальный, только вместо деления используется операция вычисления обратной величины. Общее число операций 128. Команды двух форматов – 16 и 32 разряда. Арифметические и логические команды имеют 16-разрядный формат 7 разрядов – код операции и по 3 разряда для адресов регистров операндов и результата, причем 6 разрядов адресов регистров операндов в совокупности с дополнительными 16 разрядами используются для обращения к основной памяти и командам перехода.
Ввод – вывод информации осуществляется через 24 канала, сгруппированных в 4 группы, причем в каждой группе имеются либо каналы ввода, либо каналы вывода информации. Обмен осуществляется двухбайтными кодами. Для связи с внешними абонентами используется периферийная ЭВМ.
Высокая производительность системы CRAY обеспечивается и другими факторами.
1. Конструкция ЭВМ весьма компактна, благодаря чему время передачи сигналов между устройствами мало, и это позволяет работать с тактом 12.5 нс.
2. Используется гибкая система адресации выборка из массивов может осуществляться по строкам, столбцам и диагоналям с произвольным постоянным шагом.
3. В состав системы входит подсистема дисковой памяти из четырех контроллеров, каждый из которых управляет четырьмя накопителями общей емкостью 76 854 млрд. бит.
4. Система имеет достаточно современное программное обеспечение, в том числе: операционную систему, рассчитанную на пакетную мультипрограммную обработку 63 задач; оптимизирующий компилятор с фортрана, автоматически распознающий циклы, удобные для реализации векторными командами; макроассемблер, библиотеку стандартных программ, загрузчик и другие средства.
Все это в совокупности и дает основание считать системы CRAY наиболее высокопроизводительными.
Матричные системы
Наиболее распространенными из систем класса ОКМД являются матричные системы, которые лучше всего приспособлены для решения задач, характеризующихся параллелизмом независимых объектов или параллелизмом данных. Организация систем этого типа на первый взгляд достаточно проста: общее управляющее устройство, генерирующее поток команд, и большое число устройств, работающих параллельно и обрабатывающих каждое свой поток данных. Таким образом, производительность системы оказывается равной сумме производительности всех обрабатывающих устройств. Однако на практике, чтобы обеспечить достаточную эффективность системы при решении широкого круга задач, необходимо организовать связи между обрабатывающими устройствами (в дальнейшем будем называть их процессорными элементами – ПЭ). Характер связей может быть различным, так же как и характер взаимодействия ПЭ. Все это и определяет разные свойства систем.
Если не считать машины Унгера (1958 г.), которая была узкоспециализированной и предназначалась только для решения задач распознавания образов, то, по-видимому, первой матричной системой следует считать систему SOLOMON упрощенная структура которой представлена на рис. 3.4. Система содержит 1024 ПЭ, соединенных в виде матрицы 32X32. Каждый ПЭ в матрице соединен с четырьмя соседними и включает в себя процессор, обеспечивающий выполнение последовательных поразрядных арифметических и логических операций, а также оперативное ЗУ емкостью 16 Кбит, разбитое на модули по 4 Кбит каждый. Длина слова переменная – от 1 до 128 разрядов. Разрядность слов устанавливается программно. По каналам связи от УУ передаются команды и общие константы. В ПЭ используется так называемая многомодальная логика, которая позволяет каждому ПЭ выполнять (т. е быть активным) или не выполнять (быть пассивным) общую операцию в зависимости от значений обрабатываемых данных.
Рис. 5.11. Система типа ОКМД
В каждый момент все активные ПЭ выполняют одну и ту же операцию над данными, хранящимися в собственной памяти и имеющими один и тот же адрес. Идея многомодальности заключается в том, что в каждом ПЭ имеется специальный регистр на четыре состояния – регистр моды. Мода (или модальность) заносится в этот регистр от УУ. При выполнении последовательности команд модальность передается в коде операции и сравнивается с содержимым регистра моды. Если есть совпадение, то операция выполняется. В других случаях ПЭ не выполняет операцию, но может в зависимости от кода пересылать свои операнды соседнему ПЭ. Такой механизм позволяет, в частности, выделить строку или столбец ПЭ, что может быть полезным при операциях над матрицами. Взаимодействуют ПЭ с периферийным оборудованием через внешние ПЭ.
Система SOLOMON оказалась нежизнеспособной вследствие громоздкости, недостаточной гибкости и эффективности. Однако идеи, заложенные в ней, получили развитие в системе ILLIAC-IV, разработанной Иллинойсским университетом и изготовленной фирмой «Барроуз».
Рис. 5.12. Система ILLIАС-IV (проект)
По первоначальному проекту система ILLIAC-IV должна была включать в себя 256 ПЭ, разбитых на 4 группы – квадранты (рис 35), каждый из которых должен управляться специальным процессором (УП). Управление всей системой, содержащей кроме ПЭ и УП также внешнюю память и оборудование ввода – вывода, предполагалось от центрального управляющего процессора (ЦУП). Однако реализовать этот замысел не удалось из-за возникших технологических трудностей при создании интегральных схем, ОЗУ и удорожания всего проекта почти в два раза. В результате с опозданием на два года (в 1971 г.) система была создана в составе одного квадранта и одного УП и с начала 1974 г. введена в эксплуатацию. Ранее предполагалось получить на этой системе производительность примерно 1 млрд. операций в секунду, однако реализовано 200 млн. операций в секунду. Тем не менее этого оказалось достаточно, чтобы система в течение ряда лет считалась самой высокопроизводительной в мире.
Рис. 5.13. Квадрант системы ILLIAC-IV
В каждом квадранте 64 ПЭ образуют матрицу размером 8x8. Схема связей между ПЭ (рис. 3.6) похожа на схему системы SOLOMON, но связь с внешней средой имеют все ПЭ без исключения. Реально действующая система ILLIAC-IV состоит, таким образок, из двух частей: центральной с устройством управления и 64 ПЭ, а также подсистемы ввода – вывода, включающей в себя универсальную ЭВМ В-6700, файловые диски и лазерную архивную память большой емкости. Каждый ПЭ состоит из собственно процессора и ОЗУ. Процессор оперирует с 64-разрядными числами и выполняет универсальный набор операций. Быстродействие процессора достаточно высокое, операция сложения 64-разрядных чисел выполняется за 240 нс, а умножения – за 400 нс. Таким образом, процессор выполняет в среднем 3 млн. операций в секунду, а следовательно производительность системы равна 3X64≈200 млн. операций в секунду.
Емкость ОЗУ каждого ПЭ составляет 2048 64-разрядных слов, длительность цикла обращения к памяти 350 нс. Память выполнена на интегральных схемах. Каждый процессор имеет счетчик адресов и индексный регистр, так что конечный адрес в каждом процессоре может формироваться как сумма трех составляющих: адреса, содержащегося в команде для данного ПЭ, кода, содержащегося в центральном индексном регистре УУ, и кода, содержащегося в собственном индексном регистре. Это существенно повышает гибкость системы по сравнению с системой SOLOMON, где все ПЭ выбирают информацию по одному адресу. Каждый процессор кроме индексного регистра имеет в своем составе пять программно-адресуемых регистров: накапливающийся сумматор, регистр для операндов, регистр пересылок, используемый при передачах от одного ПЭ к другому, буферный регистр на одно слово и регистр управления состоянием ПЭ (аналогичный регистру моды в системе SOLOMON). Регистр управления имеет 8 разрядов. В зависимости от содержимого этого регистра ПЭ становится активным или пассивным, а также выполняет ряд пересылочных операций. Если вычисления не требуют полной разрядности, то процессор может быть разбит на два 32-разрядных подпроцессора или даже восемь 8-разрядных. Это позволяет в случае необходимости обрабатывать векторные операнды из 64, 2X64=128 и 8X64=512 элементов.
Как видно из рис. 3.6, каждый i-й ПЭ связан с четырьмя другими: и м. При такой связи передача данных между любыми двумя ПЭ осуществляется не более, чем за 7 шагов, а среднее число шагов равно 4.
По шине состояния ПЭ могут передавать сигналы о состоянии в УУ, которое таким образом всегда определяет состояние системы. Оперативное ЗУ каждого процессорного элемента связано со своим процессором, устройством управления центральной частью и подсистемой ввода – вывода.
Подсистема ввода – вывода включает в себя стандартную ЭВМ В-6700 (первоначально В-6500) и два уровня внешней памяти: на магнитных дисках с фиксированными дорожками и лазерную память. Накопители на дисках имеют магнитные головки для каждой дорожки (128 головою на диск), и обмен данными осуществляется по 256-разрядной шине. Емкость каждого диска – около 1 млрд. бит. Для того чтобы согласовать скорость передачи информации с дисков и работу управляющей ЭВМ, в систему включено буферное ОЗУ, состоящее из четырех модулей памяти.
Лазерная память представляет собой одностороннее ЗУ очень большой емкости (1012 бит). Информация записывается на тонкой металлической пленке путем прожигания микроотверстий лазерным лучом. Емкость ЗУ – 1200 млрд. бит. Время доступа к данным от 0,2 до 5 с.
Машина В-6700 выполняет и различные другие функции: транслирует и компонует программы, управляет запросами на ресурсы, производит предварительную обработку информации и т. д.
Следует подчеркнуть, что сверхвысокая производительность системы достигается только на определенных типах задач, таких, например, как операции над матрицами, быстрое преобразование Фурье, линейное программирование обработка сигналов, где как раз имеет место параллелизм данных или параллелизм независимых объектов. Необходимо отметить также и то, что разработка программ для систем ILLIAC-IV, обеспечивающих высокую производительность, является весьма сложным делом. Для упрощения этой работы были разработаны специальные алгоритмические языки.
Система ILLIAC-IV была включена в состав вычислительной сети ARPA. В результате усовершенствования программного обеспечения производительность системы выросла до 300 млн. операций в секунду.
В начале 80-х годов в Советском Союзе в классе систем ОКМД была создана «Параллельная система 2000» (ПС-2000), которая также может быть отнесена к матричным [5]. Эта система ориентирована на решение задач, характеризующихся параллелизмом данных, независимых ветвей и объектов. Разработчики системы считают, в частности, что ПС-2000 найдет особенно широкое и эффективное применение для обработки геофизической информации, получаемой при поиске нефти и газа, решения задач плазменной кинетики, расчетов устойчивости летательных аппаратов, обработки гидролокационных сигналов и изображений, решения задач в частных производных и др.
Рис. 5.14. Система ПС-2000
Укрупненная структура системы ПС-2000 изображена на рис. 3.7. Центральная часть системы – мультипроцессор ПС-2000, состоящий из решающего поля и устройства управления мультипроцессором. Решающее поле строится из одного, двух, четырех или восьми устройств обработки (УО), в каждом из которых восемь процессорных элементов. Таким образом, мультипроцессор может содержать 8, 16, 32 или 64 процессорных элемента. Процессорный элемент обрабатывает 24-разрядные слова, используемые для представления 12-, 16- и 24- разрядных чисел с фиксированной запятой, в которых 20 разрядов определяют мантиссу и 4 разряда – шестнадцатеричный порядок. Емкость оперативной памяти процессорного элемента – 4096 или 16 384 24-разрядных слова с циклом обращения соответственно 0,64 или 0,94 мкс. Мультипроцессор из 64 процессорных элементов обеспечивает при обработке данных следующую производительность (в миллионах операций в секунду):
Сложение с фиксированной запятой (регистр–регистр) 200
Сложение с плавающей запятой 66,4
Умножение 28,5 – 50,0
Время выполнения основных операций (в микросекундах):
Транспонирование матрицы 64X64 0,45
Умножение матриц 64X64:
с фиксированной запятой 1,0
с плавающей запятой 1,4
Быстрое преобразование Фурье на 1024 комплексные точки:
с фиксированной запятой 1,0 – 2,5
с плавающей запятой 1,4 – 2,8
Устройство управления содержит блок микропрограммного управления емкостью 16384 микрокоманды, ОЗУ емкостью 4096 или 16384 24-разрядных слов и АЛУ. В блок микропрограммного управления загружаются микропрограммы обработки данных, ввода – вывода и управления. В комплект программного обеспечения системы входит набор микропрограмм базовой системы операций, ориентированной, на обработку матриц, реализацию быстрого преобразования Фурье и решение задач математической статистики, спектрального анализа, линейного и динамического программирования. Возможна реализация на микропрограммном уровне любой необходимой системы операции. В ОЗУ загружается программа обработки. Команды программы выполняются в обычном порядке. Выполнение сводится к инициированию соответствующей микропрограммы, микрокоманды которой формируют управляющие сигналы, воздействующие на процессорные элементы.
Ввод – вывод данных в память решающего поля, т. е. в ОЗУ процессорных элементов, производится через канал прямого доступа, состоящий из магистралей ввода и вывода. Операции ввода – вывода инициируются мониторной подсистемой и выполняются под управлением устройства управления мультипроцессора. Обработка, ввод и вывод данных могут выполняться одновременно. Обмен данными может осуществляться до 1,8 Мбайт/с при вводе и до 1,4 Мбайт/с при выводе. Процессорные элементы решающего поля связаны регулярным каналом, по которому передаются данные. Конфигурация регулярного канала перестраивается под управлением программы, образуя одно кольцо из 64 процессорных элементов, как на рисунке, или несколько одинаковых колец: 8 колец по 8 процессорных элементов, 4 по 16 или 2 по 32.
В целом система управляется мониторной подсистемой, состоящей из одной или двух мини-ЭВМ СМ-2 и подключенных к ним периферийных устройств. На ЭВМ реализуется подготовка микропрограмм и программ для мультипроцессора и программ для самой мониторной подсистемы с использованием языков программирования и соответствующих трансляторов. Мониторная подсистема управляет загрузкой микропрограмм в мультипроцессор, контролирует работу мультипроцессора и обеспечивает обмен данными между системой и пользователями.
Для хранения больших объемов данных система ПС-2000 снабжена внешней памятью, состоящей из микропрограммируемого контроллера, четырех накопителей на сменных магнитных дисках и восьми накопителей на магнитных лентах. Накопители подключаются к контроллеру через модули управления (локальные контроллеры).
Вычислительный процесс в системе ПС-2000 слагается из трех составляющих: процесса в мониторной подсистеме, выполнения программы, ввода – вывода данных. Процесс в мониторной подсистеме является основным: он инициирует остальные процессы и синхронизирует их. Под управлением мониторной подсистемы в устройство управления загружается набор микропрограмм и программа. В процессе обработки данных набор микропрограмм и программа могут изменяться. Этапы обработки перемежаются с этапами обмена данными между решающим колем мультипроцессора, его внешней памятью и мониторной подсистемой.
Контроль работоспособности системы обеспечивается схемными средствами, контролирующими корректность хранения и передачи данных, и набором программ для проверки функционирования системы. Для поиска неисправностей используется система диагностических программ.
Программное обеспечение ППС-2000 разработано на базе агрегатной системы программного обеспечения (АСПО) СМ ЭВМ, к которому добавлены модули, организующие работу ППС-2000.
Система ПС-2000 имеет ряд преимуществ перед ранее разработанными матричными системами, в частности системой ILLIAC-IV.
1. Процессорные элементы ППС-2000 имеют существенно большие возможности, что определяется наличием сверхоперативной регистровой памяти, отдельного процессора для операций над адресами, процессора активации, функции которого значительно шире, чем функции регистра моды в системе ILLIAC-IV.
2. Благодаря наличию собственной памяти и индексной арифметики, используемой для организации счетчиков адресов, возможно совмещение обмена информацией между модулями памяти ПЭ, АЛУ и устройствами ввода – вывода.
3 Достаточно большая емкость памяти в каждом ПЭ (16 кслов) в сочетании с многоуровневой системой прерываний делает возможной организацию мультипрограммного режима с выделением независимых ресурсов для каждой задачи.
4. Двухуровневое управление (командное и микрокомандное) обеспечивает более эффективное программирование.
5. Возможно наращивание системы модулями по восемь процессорных элементов, причем и конструкция, и набор команд позволяет это делать без изменения средств управления.
6. Стоимость системы сравнительно невысока.
Опыт использования первых систем ПС-2000 показал, что при решении типичных задач геофизики, ядерной физики, аэродинамики и других система обеспечивает высокую системную производительность – до 200 млн. операций сложения с фиксированной запятой в секунду.
Ассоциативные системы
К числу систем класса ОКМД относятся ассоциативные системы. Эти системы, как и матричные, характеризуются большим числом операционных устройств, способных одновременно, по командам одного управляющего устройства вести обработку нескольких потоков данных. Но эти системы существенно отличаются от матричных способами формирования потоков данных. В матричных системах данные поступают на обработку от общих или раздельных запоминающих устройств с адресной выработкой информации либо непосредственно от устройств – источников данных. В ассоциативных системах информация на обработку поступает от ассоциативных запоминающих устройств (АЗУ), характеризующихся тем, что информация из них выбирается не по определенному адресу, а по ее содержанию.
Рис 5.15 Ассоциативное запоминающее устройство
Принцип работы АЗУ поясняет схема, представленная на рис. 3.8. Запоминающий массив, как и в адресных ЗУ, разделен на m-разрядные ячейки, число которых п. Практически для любого типа АЗУ характерно наличие следующих элементов: запоминающего массива; регистра ассоциативных признаков (РгАП); регистра маски (РгМ); регистра индикаторов адреса со схемами сравнения на входе. В АЗУ могут быть и другие элементы, наличие и функции которых определяются способом использования АЗУ.
Выборка информации из АЗУ происходит следующим образом. В РгАП из устройства управления передается код признака искомой информации (иногда его называют компарандом). Код может иметь произвольное число разрядов – от 1 до m. Если код признаков используется полностью, то он без изменения поступает на схему сравнения, если же необходимо использовать только часть кода, тогда ненужные разряды маскируются с помощью РгМ. Перед началом поиска информации в АЗУ все разряды регистра индикаторов адреса устанавливаются в состояние 1. После этого производится опрос первого разряда всех ячеек ЗМ и содержимое сравнивается с первым разрядом РгАП. Если содержимое первого разряда i-й ячейки не совпадает с содержимым первого разряда РгАП, то соответствующий этой ячейке разряд регистра индикаторов адреса Тi сбрасывается в состояние 0, если совпадает, – на Тi остается 1. Затем эта операция повторяется со вторым, третьим и последующими разрядами до тех пор, пока не будет произведено сравнение со всеми разрядами РгАП. После поразрядного опроса и сравнения в состоянии 1 останутся те разряды регистра индикаторов адреса, которые соответствуют ячейкам, содержащим информацию, совпадающую с записанной в РгАП. Эта информация может быть считана в той последовательности, которая определяется устройством управления.
Заметим, что время поиска информации в ЗМ по ассоциативному признаку зависит только от числа разрядов признака и от скорости опроса разрядов, но совершенно не зависит от числа ячеек ЗМ. Этим и определяется главное преимущество АЗУ перед адресными ЗУ: в адресных ЗУ при операции поиска необходим перебор всех ячеек запоминающего массива.
Запись новой информации в ЗМ производится без указания номера ячейки. Обычно один из разрядов каждой ячейки используется для указания ее занятости, т. е. если ячейка свободна для записи, то в этом разряде записан 0, а если занята, – 1. Тогда при записи в АЗУ новой информации устанавливается признак 0 в соответствующем разряде РгАП и определяются все ячейки ЗМ, которые свободны для записи. В одну из них устройство управления помещает новую информацию.
Нередко АЗУ строятся таким образом, что кроме ассоциативной допускается и прямая адресация данных, что представляет определенные удобства при работе с периферийными устройствами.
Необходимо отметить, что запоминающие элементы АЗУ в отличие от элементов адресуемых ЗУ должны не только хранить информацию, но и выполнять определенные логические функции, поэтому позволяют осуществить поиск не только по равенству содержимого ячейки заданному признаку, но и по другим условиям: содержимое ячейки больше (меньше) признака РгАП, а также больше или равно (меньше или равно).
Отмеченные выше свойства АЗУ характеризуют преимущества АЗУ для обработки информации. Формирование нескольких потоков идентичной информации с помощью АЗУ осуществляется быстро и просто, а с большим числом операционных элементов можно создавать высокопроизводительные системы. Надо учитывать еще и то, что на основе ассоциативной памяти легко реализуется изменение места и порядка расположения информации. Благодаря этому АЗУ является эффективным средством формирования наборов данных.
Исследования показывают, что целый ряд задач, таких, как обработка радиолокационной информации, распознавание образов, обработка различных снимков и других задач с матричной структурой данных, эффективно решается ассоциативными системами. К тому же программирование таких задач для ассоциативных систем гораздо проще, чем для традиционных.
Наиболее характерным представителем группы ассоциативных вычислительных систем является система STARAN, разработанная в США. От матричных систем, описанных выше, она отличается не только наличием ассоциативной памяти, но и другими особенностями, ассоциативная память является памятью с многомерным доступом, т. е. в нее можно обратиться как поразрядно, так и пословно, операционные процессорные элементы предусмотрены для каждого слова памяти; имеется уникальная схема перестановок для перегруппировки данных в памяти.
Основным элементом системы является многомерная ассоциативная матрица – ассоциативный модуль (АМ), который представляет собой квадрат из 256 разрядов на 256 слов, т. е. содержит в общей сложности 65536 бит данных. Для обработки информации имеется 256 процессорных элементов, которые последовательно, разряд за разрядом, обрабатывают слова (рис. 3.9). Все ПЭ работают одновременно, по одной команде, выдаваемой устройством управления. Таким образом, сразу по одной команде обрабатываются все выбранные по определенным признакам из памяти слова.
Схема перестановок позволяет сдвигать и перегруппировывать данные так, чтобы над словами, хранящимися в памяти, можно было выполнять параллельно арифметические и логические операции. Большая часть операций выполняется в отношении каждого из 256-разрядных слов. Операции, в которых участвуют несколько слов, используются достаточно редко. Обычно 250-разрядное слово ассоциативной матрицы разбивается программистом на поля переменной длины, и в процессе обработки именно над этими полями производятся и арифметические и логические действия.
Рис. 5.16. Процессорная обработка в системе STARAN
Базовая конфигурация системы STARAN содержит один AM. Однако число этих модулей можем варьироваться в системе от 1 до 32. Таким образом, при максимальной комплектации в системе может подвергаться acсоциативной обработке 256 кбайт информации. Скорость поиска и обработки информации 256 процессорными элементами высока, и остальные элементы системы спроектированы так, чтобы поддерживать эту скорость.
Устройство управления ассоциативными модулями организует выполнение операций над данными по командам, хранящимся в управляющей памяти. Оно может выбирать несколько рабочих подмножеств из общего множества данных, хранимых в AM, и выполнять над этими подсистемами операции, не затрагивая остальную информацию.
Управляющая память разделена на шесть секций: первая (емкостью 612 слов) – память библиотеки подпрограмм; вторая и третья (512 слов) память команд; четвертая (512 слов) – быстродействующий буфер данных; пятая (16384 слов) – основная память; шестая (10720 слов) – область памяти для прямого доступа. Длина одного слова – 32 разряда. Первые четыре секции выполнены на интегральных схемах и имеют высокое быстродействие с длительностью цикла памяти около 200 нс. Вторая и третья секции (память команд) работают попеременно: одна выдает команды в УУ, а другая в это время загружается oт страничного устройства и наоборот. Пятая и шестая секции выполнены на ферритовых сердечниках, длительность цикла примерно 1 мкс. При необходимости емкость пятой секции может быть удвоена. Страничное устройство загружает первые три секции памяти информацией из быстродействующего буфера, основной памяти или памяти прямого доступа.
Последовательный контроллер ассоциативной системы является обычной однопроцессорной ЭВМ типа РДР-11 и обеспечивает работу в режиме трансляции и отладки программ; первоначальную загрузку управляющей памяти, связь между оператором и системой; управление программами обработки прерываний по ошибкам, а также программами технической диагностики обслуживания. Последовательный контроллер снабжен памятью (емкость 8 кслов), печатающим устройством, перфоленточпым вводом – выводом и имеет интерфейс, обеспечивающий связь с другими элементами системы.
Подсистема ввода – вывода обеспечивает возможность подключения к системе STARAN других вычислительных устройств и разнообразного периферийного оборудования. Имеются четыре вида интерфейсoв: прямой доступ к памяти; буферизованный ввод - вывод; параллельный ввод – вывод;. логическое устройство внешних функций. Прямой доступ к памяти позволяет использовать память внешней (несистемной) ЭВМ как часть управляющей памяти системы. Эта память становится таким образом доступной как для внешней ЭВМ, так и для системы SPARAN. При этом нет необходимости в буферизации передаваемой между ними информации.
Интерфейс прямого доступа может использоваться и для подключения внешней памяти. Буферизованный ввод – вывод используется для связи системы со стандартными периферийными устройствами, обмен производится блоками данных или программ. Этот интерфейс может использоваться и для связи с несистемной ЭВМ, однако прямой доступ там все-таки предпочтителен, так как обмен производится быстрее и нет необходимости формирования информации в блоки перед передачей. Параллельный ввод – вывод, который включает в себя по 256 входов и 256 выходов для каждой матрицы, является важной составной частью подсистемы ввода – вывода. Он позволяет увеличить скорость передачи данных между матрицами, обеспечить связь системы с высокоскоростными средствами ввода – вывода и непосредственную связь любого устройства с ассоциативными модулями. С помощью параллельною ввода – вывода можно, в частности, подключать, к ассоциативным матрицам накопители на магнитных дисках, что позволяет быстро вводить и выводить большие объемы информации.
Совокупность всех перечисленных средств, входящих в систему STARAN, позволяет выполнять одновременно coтни и тысячи одинаковых операций при решении определенных классов задач.