Архитектура процессоров Интел х(IA-)
Основная особенность архитектуры - наличие трёх режимов работы.
Реальный режим. 16 разрядные операнды и 20 разрядный адрес (до 1Мб физической памяти), однопрограммный режим.
Режим виртуального процессора 8086, но с возможностью использования 32 разрядных адресов (4Гб) и операндов.
Защищённый режим виртуальной адресации (до 4Гб физической памяти) с возможностью отображения посредством страничной адресации до 64Тб.
Основные понятия защищённого режима.
Защищенный (ЗР) режим предназначен для обеспечения мультипрограммной работы, что подразумевает защиту ресурсов одной задачи от другой. Основным защищаемым ресурсом является память и внешние устройства. Система защиты основывается на выделении из системы команд привилегированных операций, то есть таких, которые могут использоваться не во всех программах.
Защита памяти использует такую особенность архитектуры Интел 80х86, разбиение пространства памяти на сегменты: блоки определённого назначения размером до 4Гбайт (до 80386 - до 64Кб). Распределение сегментов между задачами обеспечивается операционной системой.
В реальном режиме для хранения значений сегментов служат специальные регистры. Любая задача может изменять значения сегментных регистров, задающих положение сегмента в пространстве памяти, и попадать в чужую область данных или команд.
В ЗР программа может использовать только разрешённые для неё сегменты. Забегая вперёд, заметим, что в этом режиме в сегментных регистрах размещаются не сами сегменты, а их номера (селекторы). С помощью селекторов сегменты извлекаются из предварительно сформированных таблиц дескрипторов сегментов.
Внешние устройства защищены тем, что команды доступа к ним являются привилегированными.
Управление привилегиями и доступом к выделенным областям памяти обеспечивается четырёхуровневой системой защиты.
4.4. Форматы данных.
Они характеризуются
- разрядностью: байт, слово, двойное слово, учетверённое слово
- способ кодирования чисел (отрицательных величин): прямой, обратный, дополнительный код.
- типы данных: фиксированная запятая и плавающая точка, символьная информация.
Арифметические операции над двоичными числами в дополнительном коде
Основные правила сложения
- в каждом разряде, кроме младшего, суммируются три цифры.
- цифра выползающая за разрядную сетку отбрасывается
- изменение знака при сложении чисел одинакового знака вызывает
переполнение (общее правило переполнения: есть перенос в знаковый разряд, но нет переноса из знакового разряда или нет переноса в знаковый разряд, но есть перенос из знакового разряда).
- вычитание сводится к сложению с дополнительным кодом вычитаемого
Операции умножения и деления.
Основная особенность выполнения операций в двоичной системе счисления заключаются в следующем: сдвиг числа относительно разрядной сетки означает умножение или деление на 2 сводится к последовательности
операций (что, впрочем, справедливо и для 10-тичной системы).
Наиболее просто выполнять умножение как поразрядное действие: анализируются разряды множителя, начиная с младшего (или старшего).
Если разряд множителя = 1, то к частному произведению сдвинутому
вправо (или влево) прибавляется множимое.
Если разряд множителя = 0, то частное произведению просто сдвигается. Но это справедливо только для чисел в прямом коде.
Алгоритм Бута для умножения чисел в дополнительном коде.
1. При умножении чисел в дополнительном коде число разрядов удваивается.
2. Разрядность множимого удваивается за счёт знака.
3. Множитель и сумма частных произведений сдвигаются вправо.
4. Выдвигаемая цифра множителя заносится в дополнительный разряд, значение которого вначале нулевое.
5. Анализируется пара: младший разряд множителя и дополнительный разряд.
6. Если они одинаковые, то сдвиг множителя с суммы вправо на один разряд; если 01, то множимое складывается с суммой; если 10, то множимое вычитается из суммы; затем сдвиг вправо.
В настоящее время умножение выполняется посредством дерева сумматоров.
Деление может выполнятся путём умножения на обратную величину делителя.
Дисковые накопители
В настоящее время наибольшее распространение получили магнитные,
оптические и магнитно-оптические дисковые накопители.
Магнитные дисковые накопители. Несмотря на большое разнообразие физических носителей и принципов записи/считывания основной механизм везде одинаковый:
Слой магнитного носителя информации нанесен на поверхности дисков, диски вращаются с помощью двигателя шпинделя. На дисках имеется
индексный маркер, который, проходя мимо специального датчика, отмечает начало каждого оборота. Информация на диске располагается на концентрических треках (дорожках), нумерация которых начинается с внешнего трека - 00.
Каждый трек разбит на секторы фиксированного размера. Сектор и
является минимальным блоком для обмена информацией. Нумерация секторов начинается от маркера. Каждый сектор имеет служебную область, со-
держащую адресную информацию, контрольные коды и т.д. область данных,
например, 512байт.
Если накопитель состоит из пакета дисков, то совокупность всех
треков с одинаковыми номерами образует цилиндр.
Считывание и запись информации с рабочих поверхностей диска осуществляется с помощью головок (0 и 1), которые во время работы буквально парят над рабочей поверхностью, а в нерабочем состоянии опускаются на определённую зону - паркуются.
Позиционирование головок на нужный цилиндр осуществляется шаговым линейным двигателем. Дискретность перемещения определяется либо
шаговым двигателем, либо задается сервометками на диске. Для линейных
двигателей часто используется специальная головка.
Информация записывается и считывается различными методами частот-
ной и фазовой модуляции, используемыми для представления двоичной ин-
формации. Все процессы управления накопителем и обменом информации
возложены на контроллер, который может иметь и свою буферную память.
Логическая структура диска.
С аппаратной точки зрения любой диск можно представить как совокупность секторов (512байт) адресуемых тем или иным способом и каждый сектор может быть записан и считан (только целиком) независимо от
других. Однако, обычно интересуют не сектора, а файлы, которые могут
занимать произвольное и при этом не целое число секторов. Логическую
структуру диска определяет файловая система, которая является состав-
ной частью любой операционной системы. Обычно принимается, что 1-й
сектор 0-го трека хранит описатель типа диска и может содержать программу загрузки ОС (Boot Sector). Диск с загрузчиком и системным.
Накопители встроенные - жесткие диски (винчестеры).
Это устройство объединяет в одном корпусе накопитель, средства
перемещения и контролер и является условно несъемным, хотя имеются
средства, обеспечивающие его съемность (Моbile Rаcк) и просто ЖД пере-
носимые.
Наиболее распространены накопители 2,2;2,3;3,14;5,25 дюймов.
Работа винчестера.
При включении контроллер накопителя производит самотестирование,
а затем запускает двигатель. При достижении определенной скорости давление потока воздуха отрывает головки от поверхности. Скорость вращения контролируется по частоте появления маркеров. После достижения номинальной скорости включается система стабилизации скорости вращения и
позиционирования головок. В составе котроллера имеется ПЗУ, в котором
хранится набор программ для запуска и управления во время работы, и
ОЗУ, в котором частично перегружаются программы и карта дефектных сек-
торов, обнаруженных при заводской разметки диска. Эти сектора исключены из общей емкости. Если в процессе работы появляются новые дефектные
сектора, то они могут быть заменены на резервные (либо автоматически,
либо с помощью специальных программ).
После выполнения процедуры запуска контроллер переходит в режим
ожидания команд компьютера. Получив команду он выбирает головку, нужный цилиндр и позиционирует головку на требуемый сектор. Затем выполняется операция чтения/записи. Обеспечивается и блочный обмен несколькими секторами. При этом ОЗУ используется в качестве двухпортрвого
буфера. Имеется возможность переводить накопитель в ждущий режим (с
целью энергосбережения), однако злоупотреблять этм не стоит, т.к. во
время разгона износ больше.
Интересно, что при выключении двигатель работает в режиме гене-
ратора, обеспечивая питанием корректное завершение работы (в том чис-
леи парковку головок).
Физический ЖД может содержапть до 4-х разделов (Partition).
Информация о структуре диска (таблица разделов) хранится в глваной
загрузочной записи (MBR - Master Boot Rekord) - сектор 1, цилиндр 0,
головка 0 сразу после кода загрузчика.
Здесь же хранится таблица размещения файлов. (FAT-таблица) В этой таблице хранятся адреса записанных файлов (номер цилиндра, номер сектора). Для надежности таблица дублируется.
Если под адресацию занимается 2Б (FAT-16), то файлов может быть
65536, поскольку, вне зависимости от емкости диска. Количество байт,
отводимое на любой файл называется кластером. При емкости в 6Г на один
кластер (файл) приходится 6000000/64=93750КБ, что нерационально.
Поэтому сейчас под адрес отводится 4Б (FAT-32).
1) LBA – адресация к дискам не физическая (головка – сектор – цилиндр), а логическая (по номеру сектора – до224-1).
Параметры дисковых накопителей:
- ёмкость
- интерфейс: способ подключения накопителя к контроллеру
- быстродействие и производительность определяется в свою очередь
следующими параметрами
1) скорость передачи данных (внутренняя - между накопителем и кон-
роллером, внешняя - между контроллером и памятью компьютера).
2) время доступа - суммарное время, затрачиваемое на установку
головок и ожидание сектора
- параметры организации и конфигурации: количество физических
дисков, количество физических головок
Основные характеристики жестких дисков. Например для W. D.
1) емкость, Гбайт; 20,48
2) скорость вращения шпинделя, об/мин; 7200
3) число дисков, число головок 4/8
4) максимальная плотность на диск Гбайт/кв. дюйм; 4,56
5) кэш, кбайт; 2048
6) скорость чтения внутренняя, МБ/с до 28
(внешняя зависит от протокола)
7) среднее время доступа мс 9; 2,2*
5.4.3. RAID (Redundant Array of Independent Disks) – системы.
RAID – система образуется с помощью RAID–контроллера.
RAID – системы бывают пяти типов (уровней)
Уровень «0» - расслоение данных
|
Данные записываются в диски зонами (64К) последовательно по кругу. Если блок данных состоит из нескольких зон, то они считываются одновременно из всех дисков – повышается быстродействие.
Уровень 1.
PM
SM
PS
SS
.1-й уровень – зона записывается одновременно на два диска. Считывание может происходить одновременно с разных зон – повышается быстродействие и надёжность (дублирование).
Режим 0+1
Расслоение с дублированием
|
|
|
|
|
|
|
|
|
SS
Массив JBOD( Just Brunch Of Disks) формирует из 4-х дисков один большой без потери ёмкости.
Эти три режима – уровня реализованы на чипсете 915
Уровень 2.
Тоже, что и нулевой, но некоторые диски используются для хранения только контрольных разрядов.
Уровень 3.
То же, что и 2, но дополнительные диски используются для хранения кода Хэмминга. При отказе одного из дисков – восстановление.
Режим 4.
4-й уровень – аналогичен первому, но дополнительный диск хранит только зону чётности для остальных дисков.
|
|
Контрольная информация располагается на всех дисках поочерёдно.
5 –уровень – аналогичен четвёртому, но зоны чётности записываются поочерёдно на все диски.
Внешняя память на сменных носителях.
Основная особенность - носитель информации отделен от средств перемещения и контролера.
Память на гибких магнитных дисках.
Накопители на гибких магнитных дисках применялись с первых моде-
лей РС, у которых они были единственным средством хранения и переноса
информации.
Таблица дискет. У всех число треков = 80
Тип. Обозн. Ёмкость Скорость Время Скорость
вращения доступа, мс Мбайт/сек
5" DD 360 КБ 300об/м 100 0,027
5" QD 720 КБ
5" HD 1,2 MБ
3,5" QD 720 КБ 360об/м
3,5" HD 1,44 МБ 100 0,055
3,5" ED 2,88 MБ 100
3,5 LS 120 МБ ГМОД
Защита записи - механическая.
При каждом обращении к дискете включается мотор, который выключается через 2с., если нет других обращений.
Другие устройства внешней памяти.
СD-ROM - Compact Disk Read Only Memory– кодирование впадинами и выступами. (Красный лазер). CD-R – кодирование тёмными (прожжёнными) и светлыми
Оптический диск, используется только для чтения.
В оптических дисках для хранения используется изменение оптических свойств (степени отражения) поверхности носителя. В процессе считывания при освещении трека лучом лазера возникает модуляция отражённого луча, воспринимаемого фотоприёмником. В компьютеры оптический диск пришёл из техники аудио записи.
В нем имеется одна спиральная дорожка, нанесенная на нижнюю поверхность диска. Эта спираль имеет 22188 витков (600в на 1мм) - 5км.
Запись информации на поверхность диска, покрытого тонким слоем
металла, осуществляется путем прожигания дорожки лучом мощного лазера.
В результате образуются впадины (протяженностью порядка 1мкм) и непрожженные выпуклости. Чтение осуществляется лучом полупроводникового лазерного диода, (изобретение Жореса Алферова),который при вращении диска перемещается по спиральной дорожке.
Отражается луч на фотодетектор, который в отсутствии металлизации (впадина) фиксирует "0", в противном случае "1"
Запись дисков может производиться печатью с матрицы или непосредственно записью на носитель.
Минимально адресуемая единица - сектор (2048Б), последовательность секторов (больше300) образует трек (до 99 треков-записей).
Начальный трек хранит информацию об организации диска.(VTOC -
Volume Table Of Contents). Ёмкость - 650Мбайт или 780.
Скорость считывания зависит от скорости вращения диска, который
вращается с переменной угловой скоростью, чтобы обеспечить постоянную
линейную скорость при чтении. При оценке скорости считывания за эталон
принята величина в 150 Кбайт/сек. Дисковод, обеспечивающий такую скорость называется 1-скоростным.
Вслед за первыми моделями, имеющими скорость считывания 150Кб,
появились устройства с 2-х, 4-х, 6-х, 8-х, 10-х, 12-х, 16-х, 20-х, 24
кратным увеличением скорости. Чем выше скорость, тем меньше время доступа.
Однако сверхбыстрые приводы КД не лишены ряда недостатков:
- повышенный шум и вибрация
- большое тепловыделение
- капризность при чтении некачественных дисков
- медленный разгон
Для хранения архивов применяются СД, запись в которые может
производиться пользователем.
СD-R - дозаписывемые (запись 2-6 скоростная, чтение 8-12)
CD-WO - с однократной записью,
CD-RW - перезаписываемые (запись 4-скоростная, чтение 6-8).
DVD - диски для цифровой видеозаписи или многоцелевой
(Versetile). впадины меньшего размера, более плотная спираль, меньшая длина волны лазера.
Ёмкость 4,7Гб (SS/SL ), 8,5Гб (SS/DL), 9,4Гб (DS/DL),
17Гб (DS/DL) SS - односторонний, SL-однослойный, DS - двухсторонний,
DL - двухслойный. У двухсторонних дисков отражающаяя поверхность рабо-
тает в обе стороны. В двухслойных дисках (золотистые)один слой полуп-
розрачен, чтобы лазер смог сфокусироваться сквозь него на следующий
слой. Большая емкость обусловлена уплотнением дорожек и уменьшением
длины, отводимой под бит (пит). Примененный способ исправления ошибок
(RS-PC) позволяет не замечать царапин длиной до 6мм.
Появилиссь диски DVD-R (записывемые однократно), DVD-RW (переза-
писывемые до 1000 раз), DVD-RAM (перезаписывемые до 100000 раз).
Магнитооптические диски используют оптику в процессе магнитной
записи. Конструктивно МОД представляет собой стеклянную поверхность, на которую наносятся три слоя пленки:
- алюминевая (светоотражающая)
- ферромагнитная (носитель информации)
- пластиковая (защитная)
Работа МОД основана на явлении изменения поляризации отраженного
луча лазера в зависимисти от состояния намагниченности чаcтиц ферро-
магнитной пленки.
Диски Бернулли
Iomega ZIP, емкость 100МБ и 250МБ, скорость чтения 0,8-1,4МБ/с
Iomega JAZ, емкость 1ГБ, скорость чтения 3,5-6,6МБ/с
Imation Superdisk (LS-120), емкость 120МБ, скорость чтения
0,6,6МБ/с (может читать 1,44МБ)
ORB Drive емкость 2,2ГБ, скорость чтения до 12МБ/с
НМО от 640МБ до 9ГБ
Накопители на магнитной ленте (стриммеры).
Это - устройства кассетного типа с последовательным доступом,
позволяют хранить от 25ГМб до 50Гб (в сжатом виде), скорость считыва-
ния 1МБ/с и 2МБ/с, соответственно.
Перспективные накопители.
Фирма LaserFan разработала новую технологию: диск неподвижен, а
вращается линейка импульсных лазерных диодов (5400об/мин). Новый привод бесшумен, а среднее время доступа равно времени полуоборота линейки - 5,6мсек. Дальнейшие усовершенствования позволят приблизить потребительские свойства к современным винчестерам.
Фирма Seagate Technologies разработала 3-х дюймовый винчестер ем-
костью 181,6Гбайт (Ultra 160 Scsi Seagate Barracuda 180). Накопитель
состоит из 12 двухсторонних пластин (24 головки). Пакет вращается со
скоростью - 7200об/мин. Внутренняя скорость чтения - 508мбит/сек.
Среднее время поиска - 7,4мсек при чтении и - 8,2мсек при записи
Флюорисцентные многослойные диски FMD (CHIP 06 2001)
Новые диски будут иметь тот же формат, как CD или DVD, но будут
иметь емкость в 140ГБ. Хотя на одном слое 4.7ГБ (как у DVD), но таких
слоев будет до 30. Отражение от каждого слоя идет на разных длинах
волн. Принцип записи основан на явлении фотохромизма - способности
вещества изменять свои свойства по действием света.
DVR-blue (Sony)
Емкость 22,5ГБ, скорость 35МБ/с с использованием голубого лазера.
Накопители на флэш памяти
Энергонезависимость
Большая емкость
Возможность репрограммирования в составе изделия
Секторная организация (8 секторов по 64КБ).
Низкая потребляемая мощность
Высокое быстродействие.
Flash USB, SCASI, ISA, PCI до 128МБ
HandyDrive - USB-накопитель емкостью 1ГБ, скорость чтения
-750КБ/с и скорость записи - 450КБ/с. Вес 20г.
Основным недостатком полупроводниковой памяти при применении ее в качестве массовой памяти является ее низкая фоностойкость. Таким не-
достатком не обладает память на ППМД (ЦМД) Они выполняются на основе
монокристаллических пленок из ферро гранатов. В пленках создаются области спонтанной намагниченности (домены), которые способны перемещаться под действием внешнего магнитного поля. Однако публикации по ним прекратились.
Многослойные диски фирмы Хитачи (до 100 слоёв, включение слоёв через контакты шпинделя) позволяют достичь ёмкости в 1000 Гбайт.
МПС и МКС.
Системы обработки больших объемов информации можно условно разделить на две группы: системы обработки информации по единообразному алгоритму (по одной программе) и системы одновременной переработки разнообразной информации по взаимосвязанным алгоритмам, требующих мультипрограммного режима работы.
Потребность в вычислительной системе возникает в следующих случаях: пользователям требуется общая база данных или производительность одной машины недостаточно для решения задачи в заданное время.
Проблема обеспечения обработки все возрастающих объемов информации разрешается тремя путями: (причем два пути совпадают для обеих групп).
1) разработка более производительных процессоров (в частности спецвычислителй)
2) разработка мультипроцессорных и мультикомпьютерных систем.
Первый путь технически оказывается проще и пригоден для систем обработки обоих классов, но может предъявить такие требования к быстродействию, которые не могут быть удовлетворены исходя из сложности и стоимости.
Второй путь также пригоден для задач обоих классов, но для задач первого класса встает проблема распараллеливания алгоритмов.
Итак, проблема повышения производительности всегда получает разрешение либо путем применения распределенной мультипроцессорной, либо мультикомпьютерной системы.
Одним из достоинств ВС является появление такого качества, как способность к постепенной деградации (живучесть), за счет возможности перераспределения задач путём реконфигурации системы.
Вместе с тем наличие двух и более процессоров, решающих задачу совместно и использующих общие ресурсы порождают проблему организации связей между ними и распределения ресурсов и информации, для чего могут применяться различные системы арбитража.
В случае МКВС о приходится решать проблему взаимодействия отдельных компьютеров.
Мультипроцессор – система с совместно используемой памятью (физически одно адресное пространство). Пример – обработка изображения (картинка отображена на общую память)
Мультикомпьютер – система с распределённой памятью. Отдельные части картинки разложены по памятям разных компьютеров.
Связь между компьютерами осуществляется посредством соединительной сети.
Мультипроцессоры легче программировать, но сложнее реализовывать,
Мультикомпьютер легче реализовать, но сложнее программировать. Все разработки направлены на создание смешанной архитектуры. Тем более что, в микропроцессорах также существует проблема межсоединений памятей и процессоров.
Способов классификации, как МПС, так и МКС имеется великое множество.
Рассмотрим классификации, предложенную Флинном, по способу связи ВЭ с памятью команд (способ организации вычислительного процесса).
Здесь различают 4 типа построения.
ОКОД – традиционный компьютер (SISD).
МКОД - конвейерный мультипроцессор (MISD)- спецвычислитель.
Процесс обработки разделен на несколько процессов, каждый из которых выполняется на отдельном процессоре. Память команд может быть общей, раздельной или смешанной. Структура наиболее приспособлена для обработки векторных данных и не эффективна при обработке скалярных величин.
ОКМД - выполнение одной операции над множеством данных SIMD.
Один поток команд обрабатывает несколько параллельных потоков данных. Архитектура хорошо приспособлена для задач, обладающих естественным параллелизмом (матричные операции). Память данных может быть общей, раздельной или смешанной.
МКМД - параллельная архитектура ( множество процессоров, выполняющих различные операции над разными данными). Несколько параллельных потоков команд обрабатывают несколько параллельных потоков данных.
Программа разбивается на п/п или ветви. Обмен данными обеспечивается коммутатором или посредством главной ЦВМ.
- Топология - расположение процессоров или компьютеров системе.
- Степень связности процессоров в системе определяется числом переключателей, через которые должно пройти сообщение от процессора (компьютера) к процессору (компьютеру).
Основные топологии.
Полно связная (каждый с каждым).
Недостаток - число связей равно п-1, где п – число процессоров. Достоинство - отсутствие конфликтов, высокая живучесть.
Связность - "1".
Звездообразная. Центральный процессор используется в качестве переключателя (коммутатор). Недостаток - надежность и скорость обмена определяются коммутатором. Достоинство низкие требования к периферийным процессорам. Связность - "2".
Иерархическая (или двоичное дерево). Любые два процессора в дереве могут быть связаны друг с другом. Можно устанавливать одновременно множество связей, поскольку для любой связи не требуются все ветви дерева.
0
01 00
011 010 001 000
Кольцевая (или петлевая). Информация либо воспринимается соседом либо пропускается далее. Слабосвязанная система. Надежность определяется линией связи и надежностью одного процессора.
Развитием петли является регулярная сеть (двухмерное кольцо), в которой обеспечивается множество путей между двумя процессорами, а также двойные петли и всевозможные сплетения.
Гиперкуб. N-мерный гиперкуб объединяет Р=2^n процессоров в форме N-мерного двоичного куба. В гиперкубе каждый узел связан с "п" соседями. Гиперкуб размерности "N" может быть получен из гиперкуба размерности "N-1" добавлением к каждому его узлу еще одной связи. Гиперкубы интересны тем, что они на них хорошо реализуются некоторые алгоритмы, например, БПФ. Первый гиперкубический мультипроцессор был разработан неким Калтехом на МП 8086 1883г.
Архитектура с координатным переключателем.
Аналогом такой структуры является телефонная сеть.
Имеется строка из "m" процессоров и столбец из "n" с общим числом m+n процессоров. Каждый процессор в строке подсоединен к вертикальной шине, а каждый процессор в столбце - к горизонтальной. Сеть переключателей соединяет процессоры между собой. Т. о. требуется m*n переключателей для m+n процессоров.
Достоинством координатной матрицы - быстрота соединений. При этом при отказе одного переключателя имеется множество альтернативных путей.
Наличие альтернативных путей позволяет устанавливать большое количество соединений одновременно. Недостаток связан ограничениями на расширение системы: добавление одного процессора требует добавления строки или столбца переключателей.
Отдельную категорию топологий составляют топологии на основе общей шины.
По существу общая шина есть дальнейшее расширение внутри процессорной шины. Основной недостаток - необходимость арбитража для распределения времени занятости шины между пользователями. В общем случае арбитром является тот, кто сейчас на шине главный.
Основное достоинство - экономичность.
1. Шина с опросом.
Контроллер шины опрашивает остальных резидентов (перекличка) и запускает необходимые обмены (прием сначала к себе, затем выдача кому следует; или устанавливая непосредственную связь между резидентами).
ОШ по способу уплотнения можно разделить на шины с временным уплотнением и шины с частотным уплотнением.
Гибридом звездно-шинной топологии обеспечивающей повышенную надежность является гнездовая или кластерная топология.
Группы ВС объединены в гнезда с мажоритарным элементом на выходе. МО подключены к общей шине.
Поскольку МПС представляет особое направление, то рассмотрим их несколько подробнее.
Мультипроцессорные структуры весьма разнообразные и главная классификация проходит по границе: системы с однородными процессорами и системы с разными процессорами.
С теоретической точки зрения наибольший интерес представляют однородные системы.
С этой же точки зрения мы и будем их рассматривать.
Собственно для классической мультипроцессорной системы характерно:
1) она образована двумя или более процессоров одного типа
2) каждый процессор имеет доступ к общей памяти данных и команд
3) каждый процессор имеет доступ к системе в/в
4) вся система находится под управлением единой ОС
Архитектура МПС характеризуется следующими факторами:
- способом связи процессоров с памятью данных
1. С временным разделением шины
УОШ обеспечивает арбитраж шины
2. С перекрёстным переключателем
Основной недостаток - сложность коммутатора
Будуар"
Память каждого процессора доступна для всех процессоров сети (с
виртуальной памятью).
3. Многовходовая память с многими шинами.
Необходимо чтобы число процессоров соответствовало числу входов ПД. На память накладывается требование обеспечения арбитража между обращениями процессоров. Каждый процессор может имеет свою ПД.
При построении систем с общей памятью возникают две проблемы: разрешения конфликтов при одновременном обращении двух процессоров и разрешение конфликтов при использовании процессорами общих массивов.
Первая проблема разрешается двумя способами:
1) Временное разделение обращений к памяти - подразумевает, что период обращения процессора к памяти больше чем цикл обращения к памяти.
2) Временное разделение с включением аппарата ожидания в процессоре.
Вторая проблема решается посредством специальных средств синхронизации. Например, наиболее часто возникает конфликт между "писателями" и "читателями". ( Писатель не должен затирать массив пока его не прочел читатель). С этой целью писатель перед записью массива записывает его номер в одну ячеек, а по завершении записи тот же номер в другую.
Читатель же перед чтением массива сначала считывает номер из второй ячейки, а после чтения - из первой. Если они равны, то чтение произведено правильно. В противном случае читатель должен замедлить работу писателя, например, сбрасывая его таймер.
Uniform Memory Access и Non- Uniform Memory Access
Системы с однородным и неоднородным доступом к памяти.
Кластеры.
Под кластером обычно понимается массив из отдельных компьютеров, соединённых каналом связи с целью реализации параллельных вычислений.
Преимущества кластерных систем.
- управляемая производительность
- наращиваемость
- надёжность
- возможность использования любых компьютеров (дешевизна)
Недостаток – необходимость в специальных операционных системах.
В простейшем случае кластер есть группа из нескольких компьютеров, объединённых сетью. Кластер основан на принципе параллельного
выполнения участка программы.
Примером такой программы может служить пример:
Do i= 1,n
Do j=1,m
…
end
end
В этом случае имея N процессоров мы можем каждому из них дать задание на выполнение внутреннего цикла.
В этом случае фрагмент программы будет выполнен за время
Txn/N+ k, где
T – время выполнения фрагмента программы на одном компьютере; k – коэффициент потерь на обмен данными. Конечно, в общем случае, машины могут решать не одинаковые фрагменты программ.
Путей построения кластеров великое множество, но, как правило, они предполагают, что одна из машин является главной. Она способна замерять скорости других машин, назначать им выполнение соответствующих фрагментов, рассылать необходимые данные и принимать результаты. При этом оказывается, что высокая производительность для неё не обязательна.
Производительность мультипроцессорных систем (закон Амдала).
Пусть
Р - количество процессоров в системе.
F – та часть вычислений, которая может выполняться параллельно
SP - величина ускорения вычислений для Р процессоров.
SP = Р/[Р- F(Р-1)]
Р |
1 |
2 |
2 |
2 |
16 |
64 |
F |
1 |
1 |
0,5 |
0,95 |
0,95 |
0,95 |
SP |
1 |
2 |
1,3 |
1,9 |
9,14 |
15,42 |
2/ 2- 0,95=2/1,05=
16/16-0,95х15= 64/64-0,95х63=
Для контроля хранения и передачи информации используются
Для контроля хранения и передачи информации используются специальные избыточные коды с обнаружением и контролем ошибок.
Способность кода обнаруживать или исправлять ошибки определяется т.н. минимальным кодовым расстоянием. Вообще говоря, кодовое расстояние - это то минимальное количество разрядов, на которое различаются два любых кода одинаковой разрядности. Для двоичных N-разрядных неизбыточных кодов кодовое расстояние - от D мин = 1 до N. В коде Грея =1.
Для избыточных кодов Dмин>1.
Если Dмин=2, то любые два кодовых слова отличаются по крайней мере двумя разрядами. Т.е. одиночная ошибка приведет к появлению недопустимого слова и может быть обнаружена. Если Dмин=3, то одиночная ошибка приведет к недопустимому слову, отличающемуся от правильного одним разрядом, а от любого другого на два разряда. Заменяя ошибочное слово на ближайшее к нему (по кодовому расстоянию), мы исправляем одиночную ошибку.
Код с проверкой четности.
Код с контролем по четности образуется добавлением одного контрольного разряда, дополняющего сумму единиц в слове до четного числа (или нечетного), и может обнаруживать нечетное число ошибок.
Код с исправлением одиночной ошибки
(код Хемминга).
Единичные ошибки в передаче информации исправляет код Хемминга.
Этот код состоит из собственно информационных разрядов и дополнительных разрядов, зависящих от информационной части.
Число контрольных разрядов надо выбирать таким образом, чтобы в них можно было записать в двоичном виде номер любого разряда как информационного, так и контрольного.
Пусть информационная часть занимает М разрядов, число контрольных разрядов - К. Тогда общее число разрядов N = М+К и должно соблюдаться соотношение:
2k-1>= N или 2k>= M + K + 1
Количество кодов в К - разрядном числе равно 2k. Из них не нулевых 2k-1 .
Каждый контрольный разряд есть признак четности группы разрядов. Т.е. таких групп К и необходимо производить К проверок.
В результате всех проверок тоже получим К - разрядный код, в котором правильным группам соответствуют нули, а ошибочным -единицы.
Максимальный номер ошибки в N-разрядном коде тоже N.
Количество кодов К-разрядном числе 2К, из них ненулевых 2К-1
Мы видим, что как код ошибки, так и номер ошибочного разряда является «К» разрядным числом. Чтобы ни совпадали необходимо выполнить два условия:
1) в качестве номеров контрольных разрядов следует выбирать такие номера, значение которых есть степень двойки.
2) группы разбить таким образом: чтобы двоичный номер разряда в группе содержал единицу в том разряде, который является контрольным для этой группы.
Рассмотрим пример.
Пусть число информационных разрядов равно 8-и. Если число контрольных разрядов выбрать К=3, то 23 = 8, а М+К+1= 8 +3 +1 =12 8 < 12, что мало. При К=4 24
= 16, а М+К+1= 8+4+1; 16 > 13; то есть 4-х разрядов достаточно. В качестве контрольных разрядов выбираем 1-й=20 ; 2-й = 21 ; 4-й = 22 ; 8-й = 23 .
N |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
К |
К4 |
К3 |
К2 |
К1 |
||||||||
М |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
1 = 0001; 3 = 0011; 5 = 0101; 7 = 0111; 9 = 1001; 11 = 1011
К1= [1] (+) [3] (+) [5] (+) [7] (+) [9] (+) [11]
к2 - контрольный разряд для разрядов
2 = 0010; 3 = 0011; 6 = 0110; 7 = 0111; 10 = 1010; 11 = 1011
к3 - контрольный разряд для разрядов
4 = 0100; 5 = 0101; 6 = 0110; 7 = 0111; 12 = 1100
к4 - контрольный разряд для разрядов
8 = 1000; 9 = 1001; 10 = 1010; 11 = 1011; 12 = 1100
Т.о., если ошибка была в 7-ом разряде, то
к1 = к2 = к3 = 1, к4 = 0;
если в 8-ом
к1 = к2 = к3 = 0; к4 = 1
Для исправления ошибки нужно изменить значение соответствующего разряда на противоположное.
Если же ошибка будет сразу в двух разрядах (1 и 2), то получим код 0011, который будет свидетельствовать о наличии ошибки в 3-м, что неверно.
Если объединить возможности кода контроля по четности с возможностями кода Хэмминга (добавив еще один разряд контроля по четности всех разрядов), получим код, который будет исправлять одну ошибку и обнаруживать две:
Контрольный разряд |
Разряд Чётности |
Результат |
Нули |
0 |
Ошибок нет |
Нули |
1 |
Ошибка разряда чётности |
Не нули |
0 |
Двойная ошибка |
Не нули |
1 |
Одиночная ошибка |
Для 16-разрядного кода число контрольных разрядов равно = 5.
2^5 >= 16 + 5 + 1; 32 > 21
Т.о. с ростом числа информационных разрядов доля контрольных разрядов сокращается.
4. Принципы функционирования компьютеров
Формат чисел с плавающей точкой
Такая форма представления чисел, когда запятая размещается в определённом месте разрядной сетки, называется естественной (с фиксированной запятой).
Вообще говоря, числа в естественной форме могут быть смешанными
-248,3842
Смешанные числа могут иметь несколько представлений:
-0,2483842*103
\ \
мантисса порядок
или
-2,483842*102 или -0,02483842*104 или -24838,42*10-2
Такая форма представления носит название представления чисел с
Плавающей точкой, а сами числа называются вещественными..
Знак порядка |
Порядок |
Знак мантиссы |
Мантисса |
Обычно числа с плавающей запятой представляют в нормализованном виде. Условие нормализации: 0,1<=¦M¦<1. Таким образом формула представления вещественных чисел N = ±M*2±p
Пример.
Мантисса (дробная часть): три разряда и знак, экспонента (или порядок): два разряда и знак.
1. Отрицательные числа меньше -0,999х1099 - отрицательное переполнение
2. Отрицательные числа от -0,999х1099 до -0,100х10-99 - выражаемые отрицательные числа
3. Отрицательные числа от -0,100х10-99 до нуля - отрицательная потеря значимости.
4. Нуль.
5. Положительные числа от нуля до 0,100х10-99 - положительная потеря значимости.
6. Положительные числа от 0,100х10-99 до 0,999х1099 выражаемые положительные числа
7. Положительные числа больше 0,999х1099 - положительное переполнение.
Действия над числами с плавающей запятой выполняются отдельно для порядков и мантисс. При операциях сложения (вычитания) требуется выравнивание порядков.
Сложение и вычитание.
1. Если порядки равны, выполнить операцию над мантиссами и нормализовать результат.
2. Иначе установить порядок результата равный большему.
3. Из большего порядка вычесть меньший.
4. Мантиссу операнда с меньшим порядком сдвинуть вправо на величину полученной разницы.
5. Сложить (вычесть) мантиссы и нормализовать результат.
Возможно переполнение как порядков так и мантисс.
При выполнении операций умножения (деления) порядки складываются (вычитаются). действия над мантиссами выполняются по правилам операций с фиксированной запятой.
Стандарт IEEE формата с плавающей запятой.
Знак мантиссы |
Смещённый порядок |
Мантисса |
Смещение = 2к-1-1, где к – разрядность поля порядка.
Таким образом, положительные числа (к=8, смещение = 127) от 0 до 255 превращаются в числа со знаком от –127 до +128.
Отр.область |
Пол.область |
||||
Обл. п-п |
Числа |
Потеря значимости |
Потеря значимости |
Числа |
Обл.п-п. |
(1-2-24)х2128 -0,5х2-127 0 0,5х2-127 (1- 2-24)х2128 |
|||||
2. Все единицы в поле порядка и ненулевое поле мантиссы – «не числа» («NaN»).
3. Крайние значения в поле порядка (все нули и все единицы) - особые величины.
4. Прочие значения в поле порядков используются для представления нормализованных чисел.
5. Старший разряд нормализованной мантиссы подразумевается.
6. Нули в поле порядков и в поле мантиссы +0 или - 0, в зависимости от знака мантиссы.
7. Все единицы в поле порядков с нулём в мантиссе + ? или -?.
8. Нулевое поле порядка с ненулевым полем мантиссы – ненормализованные числа: значение порядка минус 126 и неявный разряд мантиссы равен 0.
9. Все единицы в поле порядка и ненулевое поле мантиссы – «не числа» («NaN»).
Операции с плавающей запятой.
Сложение и вычитание было описано выше.
Умножение
1. Сложить порядки и из результата вычесть 127
2. Перемножить мантиссы и нормализовать результат.
Деление.
1. Вычесть порядок делителя из порядка делимого и прибавить 127.
2. Разделить мантиссы и нормализовать результат.
Кроме кодирования собственно числовой информации требуется и кодирование символов (букв различных алфавитов, математических символов и т.д.)Основополагающим является ASCII – стандартный американский код для обмена информацией – 128 символов (7 бит). Расширение обеспечивается с помощью кодовых страниц (с программным отслеживанием) – 256 символов (байт). Наконец, наиболее совершенным является UNICODE – 65536 символов (два байта) разделены на зоны (латынь -336 символов, русский -256 и т.д.).
Из операций сравнения вытекает
Виды переходов: по условию, безусловные, безусловные с запоминанием возврата, собственно возврата,
4. Дополнительные операции: десятичная арифметика, плавающая запятая, обработка символов и т.д.
Некоторые статистические данные.
а) Использование регистров - до 90% команд в программах использует всего 10 регистров
б) Частота использования команд. Если общее число команд = 400.
- 29 команд используются в 75% случаях
- 133 команды - в 99%
в) Частота использования операций:
- 40% - пересылки между регистрами и ОЗУ
- 30% - переходы
- 12% - сложение и вычитание
- 5% - умножение
- 0,3% - деление
- 7% - операции над разрядами
3,5% - с плавающей запятой
2% - управления (кроме переходов)
0,5% - обработка строк
0,03%- десятичная арифметика
Эффективность ЭВМ существенно возрастает, если увеличить аппаратную поддержку наиболее часто встречающихся операций, так обращение к памяти отнимает до 50% времени, переходы - 20%, логические операции - 15%.
4.12. Состав операций IA16/32 (система команд).
Типы операций.
Передачи данных.
– Арифметические и логические операции: целочисленные, с плавающий запятой, строковые (или с цепочками данных), над десятичными числами, групповые операции (ОКМД или SIMD).
– Операции сдвига.
– Операции преобразования формата данных: размера операндов, из десятичной системы счисления в двоичную и обратно.
– Операции ввода-вывода данных.
– Операции управления: порядком следования команд, состоянием процессора и компьютера в целом, взаимодействия процессора с ОС.
Все операции IA16/32 можно классифицировать следующим образом.
1) Операции целочисленного процессора -164.
2) Операции сопроцессора -125.
3) Операции ММХ – расширения -32.
4) Инструкции 3DNow! (AMD) - 21
5) Операции ХММ - расширения
6) Операции SSE - расширения
7) Операции SSE2 – расширения
8.6.2. Алгоритмы целочисленных операций.
Состав целочисленных операций.
1. Пересылки данных
2. Типа сложения
3. Типа счётчик
4. Умножения и деления
5. Логические операции
6. Сдвига
7. Передачи управления
8. Операции над флагами
9. Обработки строк
10. Обработки бит и байт
11. Десятичной арифметики
12. Управления защитой
13. Прочие.
Операции пересылки.
Основная операция пересылки MUV выполняется между регистрами, между памятью и регистрами. Операции пересылки не изменяют флагов.
Перестановка XCHG меняет местами значения своих операндов.
Команды ввода-вывода.
Как и 16 так и 32-разрядные процессоры позволяют адресовать до 64К байтных внешних регистров или 32К словных, а также предусмотрен потоковый ввод-вывод. В ЗР инструкции в/в – привилегированные.
Архитектура предполагает, что вне ПЭВМ может существовать до 216 адресуемых 8 разрядных регистров или 28 16-разрядных регистров.
Пересылка осуществляется между регистром АL или АХ и внешним регистром. Размер субъекта обмена определяется ВУ. Адрес внешнего регистра задается непосредственно или определяется содержимым регистра DX.
Существуют и строковые команды ввода-вывода.
Команды преобразования типа.
Они служат для приведения в соответствие размеров чисел перед выполнением арифметических операций и заключаются в распространении знака числа из одного фиксированного регистра во все разряды другого регистра.
Операции со стеком.
К операциям пересылок можно отнести и операции с использованием стека.
Стек это такая память, из которой чтение производится в порядке, обратном записям. В РС для этой цели выделяется специальная область памяти.
Использование стека обеспечивают три регистра:
SS - регистр сегмента стека
SP(ESP) - регистр указателя стека
BP(ЕBP) - регистр указателя базы стека
Поскольку при формировании адреса сегмент сдвигается в сторону старших разрядов на 4 разряда, то начальный адрес стека должен быть кратен 24=16, а размер его не должен превышать 216=64кб (в защищённом режиме -4Гб).
В каждый момент доступен только один стек, адрес сегмента которого находится в SS. Содержимое SP является смещением относительно значения в SS. По этой причине дно стека SP=FFFF. Заполняется стек снизу вверх и только словами FFFF-2=FFFD....
Вталкивание в стек и выталкивание из стека PUSH и POP.
Операции пересылки адресов в регистры
LEA r16/32,m16/32 ; аналогична МОV, но пересылается не содержимое ячейки памяти, а ее адрес (относительно начала сегмента).
Команды посылки указателей, т. е. полного адреса в регистровую пару.
Операции типа сложения
Сложение и вычитание чисел со знаком и чисел без знака происходит одинаково так, как будто это числа со знаком в дополнительном коде.
Однако фиксируется как переполнение, так и перенос (заём) в (из) старший разряд и программист сам должен следить за этим.
Если числа без знака, то надо следить, был ли перенос, а, если со знаком, то было ли переполнение мантиссы.
Кроме того, флаг ZF = 1 если результат нулевой.
Значение SF совпадает со старшим разрядом результата.
Операции сложения (вычитания) с использованием переноса (заёма), позволяют производить операции над числами любой длины.
Изменение знака.
Операция алгебраического сравнения. Производится как вычитание без сохранения результата, но с установкой флагов.
Операции типа счётчик: инкремент и декремент.
Операции умножения и деления: Целых без знака и целых со знаком (результат всегда в регистре).
К логическим операциям относятся отрицание, конъюнкция (логическое умножение), дизъюнкция (логическое сложение), исключающее "ИЛИ" (сложение по модулю "2"). Операция TEST выполняется как AND, но результат никуда не записывается. Флаги меняются, как после арифметических операций, флаги переполнения и переноса - нулевые.
Операции сдвига классифицируются следующим образом:
- по направлению: вправо и влево.
- по размеру результата: одинарной и двойной точности.
- по принципу действия подразделяются на линейные логические, линейные арифметические и циклические сдвиги.
Алгоритм линейных сдвигов: а) освобождаемый разряд заполняется нулем; б) очередной выдвигаемый разряд заносится во флаг переноса CF; в) значение ранее выдвинутых разрядов теряется.
При арифметическом сдвиге вправо знаковый разряд своего значения не меняет.
Циклические сдвиги подразделяются на сплошные и через флаг переноса.
Одинарные логические сдвиги.
Вправо (SHR) Влево (SHL).
Одинарные арифметические сдвиги.
Вправо (SAR). Влево (SAL)
.
Как мы видим, арифметические и логические сдвиги влево совпадают.
Хотя строго говоря арифметический сдвиг должен вызывать переполнение (или знак не должен меняться).
Одинарные циклические сдвиги сплошные.
ROR ROL
Одинарные циклические сдвиги через флаг переноса.
RCR RCL
Команды двойного сдвига являются логическими
Алгоритм двойных сдвигов:
а) состояние регистра источника не меняется;
б) очередной выдвигаемый из приёмника разряд заносится во флаг переноса ;
в) значение ранее выдвинутых из приемника разрядов теряется.
Сдвиг двойной вправо.
SHRD
Сдвиг двойной влево.
SHLD
Воздействие команд на флаги состояния.
Операция |
OF |
CF |
SF |
ZF |
Типа сложения |
+ |
+ |
+ |
+ |
Типа счётчик |
+ |
Н |
+ |
+ |
Умножения |
+ |
+ |
? |
? |
Деления |
? |
? |
? |
? |
Логические операции |
0 |
0 |
+ |
+ |
Сдвиги (1) |
+ |
+ |
+ |
+ |
Сдвиги (>1) |
? |
+ |
+ |
+ |
SHR |
0 |
+ |
+ |
+ |
Сдвиги циклические (1) |
+ |
+ |
- |
- |
Сдвиги циклические (>1) |
? |
+ |
- |
- |
«+» - Изменяется в соответствии с результатом.
«-» - Не изменяется.
«0» - Сбрасывается в ноль.
«?» - Значение не определено.
Операции обработки строк.
Под строкой понимается блок памяти, состоящий из последовательности байт, слов или двойных слов, располагающихся в соседних ячейках.
Первая особенность этой группы команд - оба операнда (источник и приемник) располагаются в памяти.
Вторая особенность - местонахождение операндов предопределено:
Третья особенность - возможность выполнения операции поочередно над каждым элементом строки. Эта возможность обеспечивается путем предварения каждой команде префикса повторения "REP", который заставляет команду повторяться, пока ECX/CX не станет равным нулю. Другие префиксы повторения кроме этого условия проверяют флаг "ZF":
Четвертая особенность - возможность обработки строки как начиная с первого элемента строки, так и с ее конца. Направление модификации определяется значением флага "DF": 0 - инкрементирование регистров, 1-декрементирование.
В набор строковых команд входят:
- пересылка строки из одной области памяти в другую
- сравнение строк из двух областей памяти
- поиск элемента заданного вида в строке
- загрузка элемента строки в аккумулятор
- пересылка элемента из аккумулятора в строку
- ввод строки из порта в/в
- вывод строки из порта в/в.
Команды работы с битами:
- значение бита источника с заданным номером переписать в "cf"
- установить в ноль бит источника с заданным номером, а его прежнее значение переписать в "cf"
- установить в "1" бит источника с заданным номером, а его прежнее значение переписать в "cf"
- инвертировать бит источника с заданным номером, а его прежнее значение переписать в "cf"
- поиск единичного бита в источнике от 0-го бита к 15/31-му
- поиск единичного бита в источнике от 15/31-го бита к 0-му.
Операции над десятичными числами необходимы для для финансовых расчетов, т. к. при операциях с двоичными числами имеются ограничения на диапазон представления величин (двойное слово - 7 десятичных знаков ). Применение чисел с плавающей запятой задачу не облегчает, т. к. возникает проблема округления.
Цифры десятичных чисел изображаются 4-разрядным двоичными кодами.
Такой вид кодирования называется двоично-десятичным.
Применяются два формата двоично-десятичных чисел:
- неупакованный формат: каждый байт содержит одну десятичную цифру.
- упакованный формат: каждый байт содержит две десятичные цифры.
Т.о. в одном байте могут размещаться числа от 00 до 99.
Отметим еще одно обстоятельство, стимулирующее использование десятичных чисел. Дело в том, что исходная информация зачастую представляется в кодах АSСII, где символы десятичных цифр кодируются числами (0000...1001), что значительно упрощает преобразование символов десятичных цифр в двоично-десятичное представление.
Операции передачи управления используется в тех случаях, когда надо изменить естественный ход программы - перейти к другому участку программы.
Это действие может требоваться как безусловно, так и при выполнении некоторого условия.
Местонахождение команды, которая выполняется, определяется содержимым двух регистров: CS - регистр сегмента команд и IP - регистра адреса команды относительно начала сегмента.
Т.о. передача управления сводится в общем случае к изменению содержимого этой пары.
Условные передачи управления:
- в результате анализа одного флага
- в результате анализа группы флагов
- в результате анализа содержимого регистра СХ
Управления циклом:
- с выходом по счетчику в СХ
- с выходом по счетчику в СХ или по условию
Безусловные передачи управления:
- безусловный переход
- вызов процедуры и возврат из нее
- вход в прерывание и выход из него
Подпрограммы - процедуры.
Группа команд, выполняющая некоторую подзадачу, реализованная таким образом, что ее можно использовать любое число раз и в любом месте, называется подпрограммой. В ЯВУ аналогом п/п служат процедуры.
Однако, там всю работу по их реализации берет на себя транслятор. В ЯА организация п/п возложена на программиста.
Проблема вызова процедуры, вообще говоря, может быть решена посредством обычной команды безусловного перехода, у которой метка перехода - это название процедуры. Необходимо только предварительно запомнить в регистре или в памяти адрес команды, следующий за командой вызова (к которой надо вернуться после выполнения всех команд подпрограммы).
Подпрограмма после завершения извлекает этот адрес и совершает по нему переход в основную программу. В РС передача адреса возврата осуществляется только через стек. Для этой цели служат специальные команды: CALL и RET.
Команда CALL записывает адрес следующей за ней команды в стек и затем осуществляет переход на первую команду процедуры.
Команда RET считывает из вершины стека адрес и осуществляет переход по нему.
Существуют следующие способы передачи аргументов процедуре (да и возврата результатов):
- через регистры
- через общую область памяти
- через стек
Операции вызова прерываний.
Вообще прерывание означает временное прекращение основного процесса вычислений для выполнения действий предусмотренных операционной системой. Т. о. прерывания - это средство передачи управления операционной системе.
В зависимости от источника прерывания подразделяются на следующие типы
- внешние прерывания (маскируемые): вызов ОС внешним асинхронным источником; маскирование осуществляется сбросом в "0" флага IF.
- внутренние (немаскируемые): вызов ОС для анализа возможных нарушений выполнения отдельных команд (исключительных ситуаций или исключений).
- программные прерывания, вызываемые по специальной команде процессора для организации взаимодействия рабочей программы с ОС.
Обработка любых прерываний производится в три этапа:
- прекращение выполнения текущей программы
- переход к выполнению программы обработки прерываний
- возврат управления прерванной программе.
Действия, выполняемые на первом этапе:
- сохранение в стеке регистра флагов
- сохранение в стеке CS
- сохранение в стеке IP
- сброс флага разрешения прерываний
Последнее, чтобы исключить возможность возникновения вложенного прерывания на пока обработчик прерывания не разрешит их командой STI (установка флага разрешения прерываний).
Задача второго этапа - определение источника прерывания и вызов соответствующей программы обработки прерываний. В реальном режиме допускается до 256 источников прерываний. Каждому источнику прерываний соответствует отдельная программа обработки прерываний. Адрес местонахождения этой программы определяется 4-х байтной адресной парой СS:IP.
Располагаются эти адреса в начале памяти, начиная с 0-го адреса, занимая т.о. 1024 байта (таблица векторов прерываний). Каждый вызов прерывания сопровождается передачи в процессор и номера (вектора) прерывания.
Действия, выполняемые на втором этапе
- определение местоположения начального адреса обработчика прерывания путем умножения вектора прерывания на 4
- пересылка первых двух байтов в IP
- пересылка следующих двух байтов в CS, т.о. осуществляется переход к адресу СS:IP
Далее выполняется сама программа обработки прерываний. В процессе ее выполнения блокировка и разрешение вложенных прерываний реализуются посредством сброса CLI и установки STI флага IF.
Действия, выполняемые на третьем этапе, реализуются посредством последовательности следующих команд: «STI» ; разрешение прерываний (IF:=1)после выполнения следующей команды, которая обычно «IRET» ; из стека последовательно извлекаются: IP, CS, FLAGS.
Любые аппаратные прерывания могут быть сымитированы посредством команды:
INT i; где i - номер вектора прерывания
Свободные вектора могут использоваться для связи рабочей программы с ОС, например, для сообщения ОС факта завершения программы.
Посредством подмены векторов прерываний можно заменять обработчики прерываний.
256 векторов - это на самом деле не так уж много. Их количество можно увеличить путём анализа в обработчике прерывания содержимого дополнительного регистра, например, AH.
В защищённом режиме все прерывания классифицируются следующим образом.
1. Ввода-вывода
2. Внешние прерывания
3. Программные
4. Отладочные (пошаговые, по контрольным точкам)
5. Программные ошибки.
6. Аппаратные: сбои и отказы
7. По включению и его имитации.
Причины прерываний называются иногда исключениями.
Виды исключений.
Собственно немаскируемые прерывания (по включению и его имитации).
Ошибка (fault)– исключение, возникшее до выполнения команды, то есть к ней можно вернуться после обработки прерывания.
Ловушка (trap) - исключение, возникшее после выполнения команды, то есть возврат должен происходить к следующей команде. Программные и аппаратные прерывания относятся к ловушкам.
Отказ (abort) – исключение не позволяет продолжить программу.
Век- тор |
Причина |
Тип |
Тип |
0 |
Переполнение при делении |
#DE |
Ошибка |
1 |
Пошаговый режим |
#DB |
Ловушка |
2 |
Немаскируемое прерывание |
NMI |
C-A-D, Reset |
3 |
Контрольная точка |
#BP |
Ловушка |
4 |
Переполнение (INTO) |
#OF |
Ловушка |
5 |
Превышение границы массива |
#BR |
Ошибка |
6 |
Недопустимый код операции |
#UD |
Ошибка |
7 |
Сопроцессор недоступен |
#NM |
Ошибка |
8 |
Двойная ошибка |
#DF |
Отказ |
9 |
- |
|
|
10 |
Недоп. сегмент сост. задачи |
#TS |
Ошибка |
11 |
Отсутствие сегмента |
#NP |
Ошибка |
12 |
Выход за пределы стека |
#SS |
Ошибка |
13 |
Нарушение защиты |
#GP |
Ошибка |
14 |
Отсутствие страницы |
#PF |
Ошибка |
15 |
- |
|
|
16 |
Ошибка сопроцессора |
#MF |
Ошибка |
17 |
Контроль выравнивания |
#AC |
Ошибка |
18 |
Аппаратный контроль |
#MC |
Отказ |
19-31 |
- |
|
|
32-255 |
Ввода-вывода и программные |
|
Ловушка |
Операции сопроцессора.
Можно выделить пять групп команд.
- передачи данных (вещественных, целых, десятичных, констант, обмена)
- сравнения данных
- арифметические (сложение, вычитание, умножение и деление вещественных и целых, извлечение квадратного корня, вычисление модуля).
- трансцендентные (вычисление тригонометрических функций, логарифмов и степеней)
- управления (установки регистров в исходное состояние, загрузки и сохранения вспомогательных регистров, переключение из реального режима в защищённый и обратно и т. д.).
Большинство операций выполняется между памятью и вершиной стека или между ячейкой стека и его вершиной.
Стековая организация регистров сопроцессора предполагает использование обратной польской записи при программировании.
Выражение
a+b×c–d/(e+f)
должно быть преобразовано к виду
abc×+def+/–
а к какому виду должно быть преобразовано выражение?
a+b×c–(e+f)/d
очевидно к abc×+ef+d/–
То есть первым операндом является тот, который находится глубже.
Операции мультимедийных расширений.
Команды ММХ.
Сложение и вычитание .
ор1:= ор1*ор2; ор1 – регистр ММХ ; ор2 – регистр ММХ или ячейка памяти.
Делятся на две группы в зависимости от выбранного способа представления результатов, значение которых выходит за разрядную сетку. Первая группа это обычные операции над целыми ( отдельная операция для каждого формата данных).
Выполнение операций второй группы имеет некоторую особенность. Оно заключается в том, что здесь используется так называемая арифметика с насыщением: в случае выхода результата операции за пределы разрядной сетки непредставимое число заменяется максимальным (или минимальным).
Сложение с насыщением при сложении чисел без знаков.
14+4=18
1110
+
0100 = 1 0010 заменяется на 1111 - 15
Сложение с насыщением при сложении чисел со знаками.
-8+(-4)= - 12
1000
+
1100= 1 0100 заменяется на 1000
Умножение.
ор1:= ор1*ор2; ор1 – регистр ММХ ; ор2 – регистр ММХ или ячейка памяти
Предусмотрены две операции: одна - для получения старших 16 битов; другая - для 16 младших.
ор1,ор2 – 4-е 16 битных слова в регистре ММХ.
Выполняется одновременно четыре умножения.
Умножение со сложением. Полученные 32х битовые произведения дополнительно складываются: пр1+пр2; пр3+пр4 и помещаются в регистр.
Сравнения.
Двух типов: равно /неравно; больше/меньше. Результат операции либо единицы, либо нули.
Логические: «И», «И-НЕ», «ИЛИ», «исключающее ИЛИ»
Арифметические и логические сдвиги.
Команды упаковки и распаковки предназначены для изменения размера операндов.
Упаковка: два двойных слова в четыре одинарных, четыре и четыре слова в 8 байт. При этом сжатие производится с использованием насыщения.
Распаковка: из четыре и четыре старших байта в 8 байт; два и два старших слова в одно; два старших двойных слова в одно. И такие же для распаковки младших половин.
Однако, введение команд ММХ не оправдало возлагаемых надежд.
И в Р3 Были введены, во-первых, 12 дополнительных целочисленных команд и, во-вторых, специальный потоковый процессор SSE (Streaming SIMD Extension) – ХММ-расширение (70 команд).
Среди новых целочисленных команд появились такие, как вычисление среднего из двух значений, извлечение одного слова из четырёх по маске, извлечение минимального (или максимального) значения из двух, извлечение одновременно всех знаков и т.д.
Начиная с Р-4 введена группа команд SSE-2, которая использует 8 новых 128-разряных регистров ( по 4 числа с плавающей запятой в каждом регистре).
5. Организация памяти.
5.1. Принцип действия.
Память есть массив двоичных запоминающих элементов.
Основу построения памяти составляет регулярность, что позволяет
её достаточно просто наращивать в процессе модернизации.
5.2. Основные параметры, характеризующие память
Характеристики ЗУ.
Характеристика |
Параметры |
Тип (размещение) |
Внутренняя память (та, адрес которой указывается в команде), внешняя обращение к которой осуществляется операциями ввода-вывода), сменный носитель1 |
Адресуемая единица (ширина выборки) |
Бит, байт, слово, блок |
Ёмкость |
количество адресуемых единиц2 |
Потребляемая мощность |
мкв/бит |
Метод доступа |
произвольный, прямой, последовательный, ассоциативный3 |
Способ обращения |
с обращением по адресу, стековая память, ассоциативная (адресация по признакам) |
Быстродействие |
время доступа, время цикла, скорость обмена |
Запоминающая среда |
полупроводниковые, магнитные, оптические, смешанные |
Время хранения |
энергозависимые, энергонезависимые, стираемые, постоянные |
1. Внутренняя память: сверхоперативная (регистры, стек) кэш, оперативная, постоянная; внешняя: винчестеры, флеш, съёмная – дисковая. В основном такая классификация почти совпадает с двумя другими. Так, внутренняя память это - полупроводниковая, а внешняя - любая другая (магнитная или оптическая). Внутренняя память, в основном, с произвольной выборкой (адресная), а внешняя с последовательной.
2. Между разрядностью адреса «А» и количеством адресуемых единиц «N» соблюдается соотношение 2А = N.
3. Прямой доступ: произвольный к зоне, последовательный внутри зоны, ассоциативный – доступ по признакам
4. Время доступа: от подачи адреса до получения данных, время цикла: период между подачей адресов, скорость обмена: для ЗУ с произвольным доступом – величина, обратная времени цикла; для ЗУ с последовательным или прямым доступом Т=Тср + N/R, где N – количество слов, R – скорость передачи.
5.3. Внутренняя память.
- сверхоперативная – регистровая
- стековая
- оперативная
- промежуточная (кэш-память, видео память и т.д.)
- постоянная (или с однократным программированием) и полупостоянная (или с многократным программированием)
5.3.1. СОП
Сверхоперативная память предназначена для непосредственного использования без ожидания выборки. Её можно условно подразделить на регистровую и стековую. Обычно регистровая память используется при пря-
мой адресации. Число регистров доходит до 128 (и более)
Стековая память имеет аналогию с магазином винтовки. Стек может
двух типов
- последним вошёл - первым вышел LIFO (опорожнение с вершины стека )
- первым вошёл - первым вышел FIFO (опорожнение со дна стека)
Существует два способа выполнения стека:
- двунаправленных регистрах сдвига
- на ОЗУ с указателем стека на реверсивном счётчике
В первом случае регистры мысленно размещаются не горизонтально, а
вертикально. Причем число их равно разрядности данных, а их длина -
глубине стека.
Во втором случае информация в стеке не перемещается, а с каждым обращением к нему изменяется содержимое некоторого регистра – указателя стека.
Интересным применением стека является его использование для хранения информации при польской (Лукасиевича) инверсной форме записи арифметических выражений.
Например, выражение
(a+b)*(c+d)*f
X:= ------------- в польской записи будет выглядеть так
k
аb+cd+*f*k:
Если занести эту запись в стек справа налево, то получится кусок
программы, для выполнения которого достаточно знать только адрес верши-
ны стека.
Правда данные и команды должны иметь специальные признаки
для их различения.
5.3.2. Оперативная память (ОЗУ).
Предназначаются для хранения текущих массивов данных и команд
и представляет собой матрицу запоминающих ячеек, каждая из которых
имеет свой адрес. В общем случае ОЗУ состоит из дешифратора адреса,
матрицы ячеек, цепей записи, цепей считывания и цепей управления выбора и выходов.
Если оперативную память рассматривать как полупроводниковую, то
прежде всего следует остановиться на двух крайних способах организации:
Словарный
АДРЕС
Матричный.
Адрес столбца B
Адрес строки
A
DI DO
Рассмотренные структуры являются двумя полюсами, между которыми
располагается все разнообразие структур.
Комплексирование м/с памяти осуществляется путем как увеличения
разрядности (горизонтальное наращивание), так и путем увеличения ем-
кости (вертикальное наращивание)
По качеству хранения ОЗУ подразделяются на
- статические (SRAM)
- динамические (DRAM)
Ячейки статической памяти реализуются на триггерах.
Самая экономная память на КМОП (CMOS) имеет время доступа > 100нс и
может использоваться при батарейном питании.
У быстродействующих SRAM время доступа составляет < 10нс, ёмкость - 1 Мбит. Типовой интерфейс: А0-AN, D0-D7, CS, R/W, OE.
Основное использование ПЭВМ - в качестве кэш-памяти.
Ячейки динамической памяти однотранзисторные с запоминающим
конденсатором.
Разрядная
шина
Адрес
Транзистор открывается по шине А. При подаче на разрядную шину
высокого уровня конденсатор заряжается ("1"), при подаче низкого уровня разряжается ("0"). При считывании "1" в разрядной цепи будет течь ток, а "0" - нет.
Для обеспечения сохранности информации необходима подзарядка
конденсатора - регенерация. Она осуществляется посредством периодического считывания с последующей перезаписью.
Обычный период регенерации 8-64мс. Регенерация происходит одновременно по всей строке. Применяют распределенную регенерацию (с периодом 15,6мкс) и пакетную, когда обращение к памяти блокируется на время регенерации. В современных памятях запросы на регенерацию образуют очередь, которая рассасывается в свободное от полезных обращений время.
В системах, где время жизни информации меньше периода регенерации
регенерация не требуется.
VRAM - разновидность памятей с совмещением операций записи и чтения.
Типовой интерфейс DRАM: (матричная структура) мультиплексированный адрес MA, строба адреса строки и столбца RAS, CAS, W/R
D(1,0-3,7,8,15,17,31,35,36). Время доступа - > 45-250нс.
Начиная с 486 процессора введен режим пакетного обмена данными
между процессором и памятью. пакетный режим предполагает соблюдение
одних и тех же правил формирования последовательности адресов как процессором, так и памятью. Пакет состоит из 4-х передач байта, слова,
или двойного слова). В пакетном режиме старшие разряды адреса остаются неизменными в течение передачи пакета.
Начало нового пакета сопровожда ется загрузкой полного адреса, поэтому первая передача занимает время в 2-5 раз большее. Заметим, что длина пакета выбирается равной строке кэша.
Асинхронные памяти - цикл обращения состоит этапов, различных по
длительности (в настоящее время не применяются.
Синхронные памяти - цикл обращения состоит этапов, одинаковых по
длительности, что позволяет привязать его к тактовой частоте процессора.
SDRAM - динамическая память (10нс, 100Мбит доступ по схеме
5-1-1-1 или 7-1-1-1) повышенным быстродействием за счет
* синхронности работы (по тактам) с процессором
* наличием чередования банков
* наличием конвейера
Interleave - чередование - способ ускорения работы памяти основанный на том, что обращение происходит к последовательным адресам,
при этом эти адреса находятся в разных банках.
Банк - группа модулей памяти одинаковой емкости, доступ к которой возможен независимо от другой группы.
Обращение к банкам сдвинуто по времени (на такт). Реализуется аппаратно контроллером памяти.
Буфферизировнные памяти предполагают наличие в своем составе ре-
гистров для хранения данных перед записью, с целью освобождения кон-
троллера от дополнительной нагрузки (требуется меньшая нагрузочная
способность и контроллер меньше занят, но конвейер памяти удлиняется
Все это позволяет повысить быстродействие по сравнению с частотой
шины (100Мгц) в 4 раза.
Память SDRAM работала последовательно на частотах 66 (для Р),
100 (Р-2)для , 133мггц (для Р-3 - 1Ггц)
Память SDRAM не может удовлетворить требованиям мощных про-
цессоров АМД (Атлон) и Интел Р-4 с частотами свыше 1Ггц (скорость Р-4
при передаче данных по шине достигает 3,2Гбайта/сек, что в 3раза выше,
чем скорость шины с частотой 133Мгц.
DDR (Double Data Rate) SDRAM позволяет повысить быстродействие
еще в 2 раза за счет способности передавать данные по обеим фронтам
синхросигнала.
Модуль DDR SDRAM похож на модуль SDRAM, но имеет 184 или 200 кон тактов. Выпускаются две модификации РС1600 - 200мггц (1,6Гб/с) и
РС2100 - 266Мггц (2,1Гб/с) имеет более низкую потребляемую мощность,
питается напряжением 2,5в и выпускается в модулях от 64МБ до 1Гб с
буферизацией и без.
Соотношение быстродействия (частоты) системной шины и быстродействия памяти
Частота системной шины процессора FSB |
66 |
100 |
133 |
200 |
266 |
400 |
800* |
!066* |
Частота модуля DDR SDRAM |
33 |
50 |
66 |
100 |
133 |
200 |
400 |
533** |
Пропускная способность МБ/с |
264 |
400 |
528 |
800 |
1064 |
3200 |
6400 |
8528 |
Двухканальный режим означает параллельное обращение двум стандартным модулям памяти с использованием 128 –разрядной шины по 64 бита
( каждый стандартный модуль памяти имеет 64 –разрядную шину).
Типы модулей памяти
SIPР - модули памяти со штыревыми выводами
SIMM - модули памяти с односторонним расположением контактов (30
контактов для 8-разрядной шины и 72 - для 32-разрядной).
DIMM - модули памяти с двухсторонним расположением контактов от 168 до 200.
Rambus DRAM (RDRAM)
Тактовая частота 400Мгц, с учетом передачи на обеих фронтах -
800Мгц, Что дает пиковую пропускную способность 1,6 Гб/с. Внутреннее
ядро имеет 128 разрядную шину, функционирующую на 100Мггц. кристалл в 64Мбита содержит 8 независимых (16 сдвоенных) банков. Для уменьшения энергопотребления питание уменьшено до 2,5В (у SDRAM - 3,3В). Крометого предусмотрено четыре режима энергопотребления: Active, Standby, NAP и Power Down. От 1-го к 4-му потребление уменьшается, а время перехода в активный режим увеличивается. Есть сведения, что переход к энергосбережению происходит при пике интенсивности.
Фирма Ifineon приступила к разработке памяти RLDRAM (reduced
latency). Кристаллы емкостью 256Мбит будут работать на частоте 300Мгц
с использованием эффекта DDR. Секрет высокой производительности - во
внутренней структуре, предусматривающей организацию 8-банков, обращение к которым осуществляется поочередно.
Модули динамической памяти.
Тип Кол.конт. Емк. Тип Быстрод.
SIPP 30 4Мбх9(8) FRM 120нс
SIMM 30 4Мбх9(8) EDO 60нс
SIMM 72 16Мбх36(32) EDO 60нс
DIMM 168 128МБ - 256МБ 64б SDRAM 100-133MГц
DIMM 184-200 128-256 DDR SDRAM 200-266МГц
RIMM 184 64-256МБ RDRAM 400МГц
SO DIMM 72 х36(32) = 2 - 32М (можно по байтно)
SO DIMM 144 х64(72) = 8 - 64М (можно по байтно)
Для автоматической идентификации наличия и типа установленного
модуля используются методы считывания информации с модуля
(заземлённые контакты).
SPD (Serial Presence Detect) - информация о типе, емкости, быстро-
действии памяти, записанная в специальном ПЗУ. Считывается через
последовательный порт. (Тип памяти , количество строк, столбцов, банков,
быстродействие, информация изготовителя).
Для контроля достоверности хранения и передачи данных в модулях
применяется контроль по четности или схемное исправление ошибок. Для
контроля по четности к байту добавляют специальный разряд. однако в
модулях ЕСС контролируется слово целиком и они не допускают побайтно-
го обращения. С целью экономии выпускались модули с генерацией всегда
верного разряда четности.
5.3.3. Кэширование обращений к памяти.
Память, реализованная на ДОЗУ, не поспевает за быстродействием процессора, реализация же ОЗУ на "статике" технически не оправдано. Оказалось, что наиболее оптимально копировать в него из "динамики" ту часть информации (команд и данных), которая будет использоваться в ближайшее время, т. е.
создавать «заначку» (cash-наличные деньги или клад).
Таким образом, кэш представляет собой быстрый буфер между процессором и медленной памятью. При обращении за данными в основную память они направляются как в процессор, так и в кэш. При повторных обращениях к этим же данным они выбираются из кэш, и время ожидания процессора сокращается.
Если при обращении кэш не содержит требуемой информации осуществляется её подкачка из основной.
Кэш может использоваться как для хранения данных, так и для команд.
Производительность кэш зависит как от её быстродействия, так и от вероятности удачных обращений.
Пусть, например, время доступа к кэш 12нс, время доступа к основной памяти 60нс, вероятность удачных обращений 80%, неудачных 20%.
Тогда среднее время доступа составит
- для удачных обращений 0,8*12=9.6,
- для неудачных обращений 0,2*(60+12)=14.4,
- итого в среднем 24мкс.
-
Адресация кэш осуществляется по тем же адресам, что и основной памяти. Поэтому кэш должен хранить не только блоки данных и/или команд, но и список их текущего соответствия областям основной памяти.
Кэш разбивается на строки. Размер строки равен размеру кэшируемого блока памяти.
В свою очередь каждая строка состоит из фиксированного числа байт (слов) – адресуемых единиц. Обычно размер строки – от 4 до 256 байт.
Информация о том, какой блок занимает строку (старшая часть адреса) называется тегом и располагается в памяти тегов. В ячейке памяти, где расположен тег, хранится также признак соответствия содержимого строки и соответствующего банка данных.
Как правило, строки кэш заполняются при чтении из основной памяти.
Поэтому строка кэш содержит как данные, так и номер области в основной памяти (тег). При обращении по заданному адресу происходит сравнение считанного номера области (тега) с номером области в адресе и решается вопрос о пригодности выбранных данных.
При выборке новых данных из основной памяти старое содержимое строки затирается. При записи зачастую данные заносятся в обе памяти.
Наиболее часто применяются три способа организации кэш: с прямым отображением, ассоциативная и частично ассоциативная.
При прямом отображении адрес данных представляется как совокупность трёх компонент: тэг, номер строки и номер байта (смещение). При этом сам кэш состоит из совокупности строк (в соответствии с разрядностью номера строки в адресе), каждая из которых содержит тег и все ячейки памяти, которые адресуются смещением. То есть в одной и той же строке кэш могут размещаться данные, относящиеся к разным тегам.
Тег |
Номер строки |
Номер байта |
|||||||||||||
Строки |
Тег |
3б |
2б |
1б |
0б |
00 |
0 |
||||
F |
|||||
…. |
… |
… |
… |
… |
… |
FF |
0 |
0
F
Наличие в кэш элемента данных по заданному адресу определяется значением тега. Если в строке кэш значение тега не совпадает со значением его в адресе, то требуется подкачка её из основной памяти.
Недостаток такой организации проявляется, когда требуется обрабатывать: массив с одинаковыми строками, но разными тегами.
Ассоциативный кэш предполагает, что адрес состоит из двух компонент тега и смещения. При этом количество строк в кэш произвольное (но не более чем количество возможных значений тегов). Однако, чем больше строк, чем дольше поиск.
Поэтому применяется не просто перебор, а ассоциативный поиск (сравнение по всем строкам одновременно). При отсутствии необходимой строки происходит её замена на требуемую из основной памяти. Возможные алгоритмы замены: циклический, редко используемой строки и т. д.
Частично ассоциативный кэш состоит из блоков ассоциативных кэш. При этом адрес – трёхкомпонентный: вторая компонента определяет номер блока.
При применении кэш возникает проблема поддержания соответствия содержимого основной памяти и кэш.
Для записи данных из кэш в ОП применяется алгоритм сквозной записи или алгоритм обратной записи.
Метод сквозной записи предполагает, что изменение содержимого кэш памяти в процессе выполнения операции сопровождается записью в основную память. В этом случае любая запись в кэш сопровождается записью в ОП.
Это может приводить простою процессора. Чтобы избежать этого применяется буферизация записей в основную память.
Метод обратной записи предполагает, что запись в основную память производится только при замене строки в кэш.
Запись блока, отсутствующего в кэш производится прямо в основную память.
В современных РС кэш строится по двухуровневой схеме (первичный и вторичный кэш) и зачастую по гарвардской архитектуре.
Согласование данных в кэш памятях обеих уровней с данными в основной памяти обеспечивает кэш-контроллер.
В Р-4 имеется 3 типа кэш
2-й кэш 256 Кбайт (до 1024; в Celeron – 128 Kбайт)
1-й кэш 8 Кбайт (данные)
Выравнивающий кэш 12тыс. микрокоманд
.
Организация кэш во встроенном процессоре ПЛИС АЛЬТЕРА.
Здесь применена простейшая организация прямого отображения.
Это означает, что младшие разряды адреса являются номером строки в кэш. При этом сама строка содержит - старшие разряды адреса, собственно значение данных (или команды) и признак присутствия.
При такой организации слова, у которых адреса различаются на размер кэш, будут находиться в кэш в одной и той же строке.
При выполнении операций чтения из памяти по полному адресу производится чтение из той строки кэш, чей номер совпадает с младшими разрядами адреса.
|
Старшие разряды |
Младшие разряды |
Адрес (тег) |
Признак |
Данные |
|
||
При операциях записи в память используется метод сквозной записи, при котором запись производится всегда как в кэш, так и в основную память. Заметим, что при подключении кэш признак наличия данных команд во всех строках нулевой.
5.3.4. Постоянные или энергонезависимые памяти
ПЗУ (постоянные запоминающие устройства) предназначены для хранения неизменяемой или редко изменяемой информации, которую можно считать так же просто, как из ОЗУ, но нельзя также просто записать.
Запоминающей средой в ПЗУ является матрица "или - и" на диодах
или транзисторах, при этом информация заносится в матрицу "ИЛИ", а
матрица "И" представляет собой дешифратор на 2N выходов от "N" входов
|
">>
. . . .
0 1 2 I
По способу занесения информации ПЗУ делятся на программируемые
изготовителем или масочные (ROM) и программируемые пользователем (ППЗУ или PROM).
Масочные ПЗУ имеют явные преимущества перед остальными: высокое быстродействие (ок. 30нс), высокую плотность ячеек на кристалле, низ-
кую стоимость (в 4-8раз, чем ОЗУ). Они используются для хранения
таблиц (1/Х, \/X, тригонометрических функций, знакогенераторов CGA)
ППЗУ ( PROM программируются на специальных программаторах и
используются в СЦВМ для хранения программ. Информация в них заносится, например, путём прожига плавких перемычек.
Полупостоянные или перепрограммируемые ЗУ (РПЗУ или EPROM) многократного программирования основаны на накоплении заряда при записи ,сохранении его при считывании и при выключении питающего напряжения (энергонезависимые) подразделяются на
- РПЗУ с УФ стиранием (СРПЗУ или EPROM)
- РПЗУ с электрическим стиранием (ЭСРПЗУ или EEPROM),иногда с теневым ОЗУ.
- флэш-память обладает сочетанием высокой плотности упаковки (выше, чем у "динамики"), энергонезависимого хранения, электрического стирания и записи, низкого потребления, высокой надёжности и невысокой
стоимости при времени доступа 35-200нс. Время стирания 1-2сек, время
программирования байта - 10мкс, причём имеется возможность программирования без извлечения. В настоящее время флэш-память используется для BIOS. C этой целью часть флэш-памяти аппаратно защищается от перезаписи и используется в качестве загрузчика остальной части. Главное отличие флэш памяти от РПЗУ с ЭС – запись (стирание) блока, а чтение слова.
Особенности использования флэш-памяти в качестве электронного
диска.
Универсальная память будущего.
Технология |
Приме- нение |
Преимущества |
Недо- статки |
Освоение |
РСМ –эффект фазового перехода от аморфного к кристаллическому состоянию |
Flash, DRAM |
Быстродействие, |
Стоимость |
- |
Молекулярная память (молек. конденсатор) |
DRAM |
Увеличение ёмкости в 4 раза, без увеличения стоимости и потребляемой мощности |
Сложность технологии |
2007-2008 |
РМС - программируемые металлизированные ячейки |
Flash, DRAM |
Снижение потребляемой мощности |
- |
2007- опытные образцы |
Память на улеродных нанотрубках |
Все виды, включая ЖМД |
Снижение потребляемой мощности в 10 раз (DRAM) |
Сложность технологии |
2007-2010 |
MRAM – магнитная оперативная (принцип магнитной поляризации) |
Flash, SRAM |
Быстродействие, |
Малая плотность. Высокая стоимость. |
Опытные партии. |
FRAM – ферро-электричкская память |
Flash, DRAM |
Высокая надёжность и эксплуатационные качества |
Высокая стоимость. Низкая плотность |
Выпускается серийно |
Это есть повышение производительности без изменения организации
ХТ – 5-10мггц;
80286 –16-20мггц;
803386 – 20-40мггц;
80486 – 66-133мггц;
Pentium 100 – 233
P4 1,4ГГц –2,2ГГц.
Другие модификации сопровождались изменением архитектуры и организации.
Кодирование информации в ЦВМ
3.1. Системы счисления.
Для кодирования чисел в цифровых машинах используется позиционная система счисления. Все положительные числа в такой системе могут быть представлены в виде
А= Cn-1Bn-1 + Cn-2Bn-2 +… C1B1 +… + C0B0 + C-1B-1 + C-2B-2 + …, (1)
где А – значение числа, В – основание системы счисления, С – цифровое значение разряда числа (от 0 до В-1).
В качестве основания системы принимается двойка (двоичное кодирование). Мерилом двоичной информации служит разряд или "бит"
«10» |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | |||||||||||||||||
«2» |
0000 |
0001 |
0010 |
0011 |
0100 |
0101 |
0110 |
0111 |
1000 |
1001 |
1010 |
1011 |
1100 |
1101 |
1110 |
1111 | |||||||||||||||||
«16» |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F | |||||||||||||||||
«Грея» |
0000 |
0001 |
0011 |
0010 |
0110 |
0111 |
0101 |
0100 |
1100 |
1101 |
1111 |
1110 |
1010 |
1011 |
1001 |
1000 |
Код Грея является непозиционной системой счисления.
Представление десятичных чисел в виде двоичных обеспечивается путём соответствующего преобразования. Преобразование целой и дробной части производится по различным алгоритмам.
Преобразование целой части десятичного числа в двоичное осуществляется путём его деления на "2". Остатки от деления и будут разрядами двоичного числа, начиная с младшего.
Преобразование дробной части числа - осуществляется умножением егона"2". Отсутствие переполнения даёт "0" в разряде двоичного числа, начиная со старшего после запятой; наличие переполнения - "1".
Преобразование продолжается до исчезновения цифр после запятой или
до получения требуемого количества цифр.
111 : 2 1 0,625 * 2 = 1,25 1
55 : 2 1 0,25 * 2 = 0,5 0
27 : 2 1 0,5 * 2 = 1,0 1
13 : 2 1
6 : 2 0
3 : 2 1
1 : 2 1
2в 2в
6 5 4 3 2 1 0 0 -1 -2 -3
1 1 0 1 1 1 1 0, 1 0 1
16х6 + 15 А/16
Как мы видим, двоичная система требует большего числа разрядов, чем десятичная, для представления числа одной и той же величины (за исключением чисел, являющихся степенью двойки).
Обратное преобразование осуществляется путём суммирования по формуле (1). Вообще говоря, можно в начале преобразовать двоичную систему в 16-ричную.
Теоретически было показано, что наиболее оптимальным для выбора основания системы счисления была бы величина "е"= 2,71.... В МГУ была сконструирована и работала ВМ "Сетунь" в троичной арифметике. Но особых преимуществ выявлено не было, т.к. двоичное представление реализуется технически проще.
Кодирование отрицательных чисел
В ЦВМ, как правило, знак числа помещается в старшем разряде и кодируется в двоичном коде: положительные числа имеют "0" , а отрицательные - "1".
Пусть сетка четырёхразрядная ХХХХ
Минимальное не представимое число 10000
Положит. Отриц. число
числа равное по мод.
мин. 0000 1000
макс. 0111 1111
Такой способ кодирования носит название прямого кода. Недостаток - наличие двух нулей: положительного и отрицательного, трудность операций над числами с разными знаками (вычитание из большего числа меньшего), необходимость кроме суммирующего и вычитающего устройства.
Обратный (инверсный или дополнительный до 1). Отрицательные числа получаются из положительных путём замены единичных разрядов на нулевые и наоборот. Особенность выполнения операций суммирования – необходимость циклического переноса. Недостатком данного вида кодирования является увеличение времени сложения и наличие двух нулей 0000 и 1111.
В настоящее время наиболее употребительным способом представления
отрицательных чисел является представление их в дополнительном коде (до 2-х для чисел меньше «1»).
Это представление основывается на ограниченности разрядной сетки.
При этом отрицательное число, равное по модулю заданному положительному, образуется путём его вычитания из минимального выходящего за данную разрядную сетку положительного числа, например,
10000
- 0101
----
1011
Действительно, движение по оси действительных чисел влево от нуля с
учётом разрядной сетки приводит к появлению максимально представимого числа.
В действительности же мы перемещаемся в область чисел от "1" до"2", точнее "2(n-1)-1".
-1 0 +1 +2
_______________________________________________________ - -1000¦-0111 -0001¦0000 0111¦1000 1111¦10000
0111
|
Правило перехода от положительных чисел к отрицательным: получить обратный код и прибавить "1" к младшему разряду. Операция вычитания заменяется на операцию сложения с дополнительным кодом вычитаемого (с обратным кодом с добавлением "1" в младший разряд).
Основные свойства дополнительного кода.
Диапазон |
-2n-÷2n-1 -1 (смещён в сторону отрицательных чисел) |
Число нулей |
Один |
Изменение знака |
Сумма инверсии всех разрядов с 1 младшего разряда |
Операция вычитания |
Заменяется сложением с вычитаемым противоположного знака |
Переполнение |
Когда оба слагаемых одинакового знака, а знак суммы отличен. |
Изменение разрядности |
Увеличение – размножением знака. Сокращение – округлением. |
1010 = -8+2=-6
Преобразование отрицательного десятичного числа в двоичное в дополнительном коде:- вычесть из десятичного значения числа десятичное значение знака. Остаток будет мантиссой. -3= -3-(-8)=5 = 1101
Методы параллельного выполнения команд
Методы параллельного выполнения команд подразделятся
на скалярные, векторные, суперскалярные и мультискалярные (мультитрейдинговые) методы обработки.
Под скалярным процессором понимается процессор, оперирующий с потоком чисел. Это традиционная архитектура.
Векторный процессор оперирует с массивом чисел (вектором), то есть одна операция выполняется параллельно над массивом данных.
Примером реализации «векторности» в процессоре являются архитектурные расширения IA32, начиная с процессоров Р-ММХ.
ММХ - мультимедийное расширение для работы с целыми числами с использованием регистров сопроцессора. Применяется для обработки текстур или звука, но для нормальных геометрических преобразований не годится. Реализовано в Р-ММХ, Р-11, Р-111, К6 (AMD).
3DNow! - расширение для работы с плавающей запятой в процессорах AMD К6-2, К6-3 совместно командами ММХ. Свыше 20 векторных команд, также используются регистры сопроцессора.
SSE - Streaming SIMD Extention -расширение для процессоров Интел, начиная с РIII. 70 новых команд, использующих 8 новых 128-разрядных регистров. За один такт выполняется команда над 4-мя числами одновременно.
SSE-2 - расширение для процессоров Р4. Предусмотрены 144 новых команды над 128-разрядными целыми и 128-разрядными с плавающей запятой двойной точности.
AltiVec - расширение для процессоров ИБМ PowerPC. 32 128-разрядных универсальных регистра. Наиболее подходит для алгоритмов ЦОС.
Под суперскалярным процессором понимается процессор, который за счёт нескольких устройств обработки выполняет несколько команд одновременно над несвязанными между собой данными.
Основными особенностями суперскалярных процессоров является наличие нескольких независимых конвейеров, отдельных, скажем, для операций арифметики, обмена данными, ветвления. То есть параллелизм реализуется на уровне команд. Главным здесь оказывается наличие аппаратных средств, которые выявляют независимость этих команд по данным и как следствие этого обеспечивают возможность выполнения команд в последовательности отличной от исходной.
Хорошей предпосылкой для реализации таких конвейеров является фиксированная длина команды, характерная для RISC- процессоров.
А как быть в случае CISC – архитектуры, например, Интел х86?
Практически для удовлетворения суперскалярности в Пентиумах пришлось поступить следующим образом.
1. Процессор извлекает команды из памяти (кэш) последовательно в соответствии с программой.
2. Каждая команда преобразуется в последовательность микрокоманд фиксированной длины. ( в Р-4 кэш второго уровня на 12000 микрокоманд).
3. Микрокоманды выполняются на нескольких конвейерах в оптимальном порядке с точки зрения производительности.
4. Процессор фиксирует результаты в порядке, соответствующем исходному.
То есть, Р-2+ состоит из SISC оболочки вокруг RISC ядра.
Технология |
0,18 мкм |
Кол. Транзисторов |
42 млн |
Кэш второго уровня Разрядность Частота Скорость передачи Ёмкость Поддерживает память |
32х8 = 256 бит 1,5 ГГц 48 ГБ 256 КБ 4 ГБ |
Кэш данных 1-го уровня |
8 КБ |
Кэш декодированных команд 1-го уровня |
12000 микроинструкций |
Внешняя память |
до 64 ГБ |
Архитектура |
NetBurst |
Конвейер команд |
до 20 ступеней |
Конвейер ветвлений |
20 |
Системная шина |
100х4=400 МГц |
Два блока целочисленных операций на частоте |
1,5 ГГц, каждый |
Динамическое выполнение команд Просмотр Обработка Выполнение |
До 126 команд 24 команды 48 операций |
SIMD – SSE-2 добавлены 128-разрядные операции (целочисленные и с плавающей запятой), всего |
144 команды |
В основе всех процессоров Pentium 4 (Xeon, Celeron) лежит архитектура NetBurst. (Точнее следует говорить об организации). Теоретически такой процессор способен обрабатывать до четырёх команд за такт (два АЛУ для «быстрых» операций, работающие на удвоенной частоте).
Тактовая частота 2,53-3, 8 ГГц. Однако его прыть сдерживает ряд обстоятельств.
- Пропускная способность блока обработки не более трёх микроопераций за такт
- Ограниченный набор быстрых операций
- Большое число холостых тактов и т. д.
Мультискалярный процессор разбивает последовательный поток команд на задачи. Каждая задача выполняется отдельным процессором - технология HyperTreading. Технология Hyper-Treading это одно ядро Northwood, которое за счёт добавления некоторых служебных регистров фактически работает, как два ядра. Появление этой технологии обязано наличию в структуре нескольких исполнительных устройств, обеспечивающих суперскалярность.
Процессор Intel Pentium 4 3,06 ГГц HyperTreading .
Что же скрывается за этим названием?
С технической стороны - пятипроцентное увеличение площади процессорного ядра за счет дублирования нескольких регистров и логических блоков процессора.
В результате один физический процессор определятся как два логических, при условии использования ОС, 'понимающей' многопроцессорные конфигурации (Windows XP Prof.).
При включении в настройках БИОС опции "HyperTreading" система начинает видеть два процессора. Всё дело в том, что хотя процессоры Intel P4 имеют длинный конвейер (19 стадий), ошибки в предсказании переходов обходятся процессорам P4 'дороже', чем процессорам P3. При выполнении задачи, активно использующей сначала одни логические блоки процессора, а затем другие, может возникнуть (и возникает) ситуация простоя процессорного конвейера - такты процессорного времени тратятся впустую из-за невозможности перейти к следующему этапу выполнения задачи, т.к.
данные для этого этапа еще не рассчитаны.
Новая технология Intel призвана минимизировать вред от таких простоев - во время 'простоя' незанятые процессорные блоки могут заниматься выполнением другой задачи!
Более того, если операционная система умеет распараллеливать инструкции и приложение в процессе своей работы инициирует несколько потоков (одновременно выполняющихся задач) - мы вправе ожидать прироста производительности, ведь с точки зрения приложения в системе установлено два процессора, а не один.
Естественно, что двух кратного прироста производительности не будет - даже на "настоящих" двухпроцессорных конфигурациях его величина редко превышает 70% - но на величину от 5 до 25% мы можем рассчитывать. Следует также учесть, что не все приложения сразу же нормально заработают с новой технологией - корпорация Intel сама предупреждает об этом и призывает оптимизировать программы приложений для полноценного использования возможностей HyperTreading процессоров. В общем, складывается ситуация, чем-то похожая на положение дел с инструкциями SSE2. К моменту их первого появления они мало что давали. Но с накоплением ПО, оптимизированного под этот набор инструкций, процессоры Intel P4 получили "второе дыхание" и смогли показать более высокий результат.
Пока компанией Intel выпущен только один процессор с поддержкой HT - Intel Pentium 4 3,06 ГГц (FSB 533, L2 - 512K).
Сейчас уже выпущены новые процессоры с поддержкой HT с частотами 2.4, 2.8 и 3.2ГГц.
Их отличительной особенностью является поддержка более скоростной системной шины - 800 МГц.
Появление двуядерных процессоров обусловлено следующими обстоятельствами:
- увеличение полезной площади кристалла за счёт совершенствования технологии
- обеспечение требований мультизадачности
- всё возрастающие требования к производительности
Двуядерные процессоры пример симметричного мультипроцессора (SMP – симметричный мультипроцессор с общей памятью).
Основная проблема – подключение процессоров к памяти. Имеется два основных варианта решения этой проблемы.
- Подключение собственной шины каждого процессора (FSB) к чипсет наряду с DMA, контроллером памяти, видеокартой и т. д. через коммутатор. Недостаток - сложность FSB. Отсюда ограничение на количество подключаемых процессоров.
- Объединение процессоров на самой FSB. Недостаток - необходимость арбитра между процессорами на FSB.
Следует заметить, что с ростом числа процессоров производительность каждого процессора снижается. ( Один процессор – 100%; два – 85%; четыре – 55%).
В двуядерном Pentium D (два ядра Prescott в одном кристалле) оба ядра сидят на общей FSB.
Падение производительности одно и двуядерных процессорах при параллельном запуске в WinRAR 3.4 и Doom 3 .
Pentium 4 EE 3,73 ГГц – 11,2%
Pentium D 3,2 ГГц - 41.1
Оценка быстродействия.
Анализ состава операций в системе команд и времени их выполнения позволяет произвести оценку быстродействия и производительности процессоров.
Номинальное быстродействие оценивается по длительности выполнения опервции сложения с фиксированной точкой..
Vн = 1/?сл
оп/сек
Среднее быстродействие (на отдельном алгоритме или классе алгоритмов) учитывает как длительность выполнения отдельных операций, так и частоту появления каждой операции.
Vср = N/Tэкв
, где
N - количество операций в алгоритме;
Tэкв - ?l i=1 ?i ni , где
l – количество типов операций
?i - время выполнения i-ой операции
ni - число i-ых операций
Vср = N/ ?l i=1 ?i ni = 1/ ?l i=1 ?i ni/N = 1/ ?l i=1 ?i qi,
где
ni/N =qi
– частота появления операций i-го типа.
?i … ?l – характеризует систему команд,
qi … ql – характеризует алгоритм.
Можно считать, что
Vн характеризует тактовую частоту, а
Vср характеризует набор операций.
Оценка производительности.
Время (Т), затрачиваемое на решение задачи, зависит от числа команд (N), среднего количества тактов (S), требуемого для выполнения одной команды, и тактовой частоты процессора (F):
T=NxS/F - основная формула вычисления производительности.
N сокращается, когда минимизируется число команд в программе.
S уменьшается, когда сокращается число тактов в команде (за счёт упрощения команды, усложнения аппаратуры или за счёт одновременного выполнения нескольких команд).
Более объективной является оценка производительности компьютера путём сравнения величины Т для испытуемого компьютера и эталонного компьютера при решении тестовой задачи (или набора задач).
Мировой рекорд производительности
- 280 терафлопс\сек достигнут на совместном достижении фирмы IBM и Ливерморской национальной лаборатории Blue Gene/1.
Микроконтроллеры
Однокристальные процессоры, содержащие память и интерфейсы ввода-вывода называют микроконтроллерами.
Основные характеристики МК.
Стоимость.
Потребляемая мощность.
Производительность.
Память
Стоимость как правило впрямую зависит от остальных характеристик.
С точки зрения потребляемой мощности наиболее предпочтительным является использование КМОП технологии. В этом случае потребляемая мощность будет пропорциональна тактовой частоте.
Для RISC архитектур производительность в основном определяется тактовой частотой. СИСК архитектура позволяет получать более компактные программы
Требования к памяти с одной стороны это требования к размеру, а с другой стороны это номенклатура памятей. Обычно исходный размер оперативной памяти не велик (от 64 КБ), но важна возможность внешнего наращивания. Использование ПЗУ или ППЗУ для хранения программ, ЕСПЗУ или флэш для констант встречается достаточно часто.
Остальные характеристики определяются областью использования:
- средства разработки программ и отладки системы с микроконтроллером.
- встроенные средства тестирования.
- устойчивость к сбоям и надёжность, включая жизненный цикл (не менее пяти лет).
Состав программного обеспечения.
Редактор для написания программ.
Ассемблер. Компоновщик связей,.
Компилятор c языка СИ.
Программный симулятор моделирует исполнение программы и работу портов ввод/вывода.
Аппаратный внутрисхемный эмулятор – аппаратное моделирование контроллера.
Основные семейства микроконтроллеров (в порядке возрастания сложности): PIC, MCS-51(С52), Atmel Corp. (АТ90...,АТ91..., ATtiny..., ATmega...), ARM (Advanced RISC Machines), Motorola 68000, МAXQRISC, Nios ПЛИС ALTERA. Архитектура MCS-51 (8хС52 – дальнейшее развитие) фирмы Intel.( Н1830ВЕ31/ВЕ51 - НИИЭТ, г. Воронеж, ОКР «Танк-5»).
Микроконтроллеры PIC.
Область применения – мини АТС, системы контроля, автомобильная электроника.
Основные характеристики.
Тактовая частота |
10 Мгц |
Выполнение операций |
400-800нс |
Данные |
8 бит |
команды |
14 бит |
Флэш или ПЗУ команд |
До 1 Кб |
ОЗУ данных |
36-68 б |
ЕСПЗУ данных |
64 б |
Таймер |
Сторож |
Линии ввода/вывода |
13 |
Прерывания |
4 |
Напряжение питания |
2 – 6 В |
Ток потребления |
4 – 45 мА |
Счётчик команд – один из общих регистров (может участвовать в операциях как операнд).
Сторожевой таймер вызывает прерывание, если не был своевременно обнулён.
Микроконтроллеры фирмы Atmel Corp.
Состоят из нескольких AVR RISC семейств, в частности: АТ90...,
АТ91..., ATtiny..., ATmega...
Основные особенности.
- 32 общих регистра
- 8-разрядные данные (16/32 у серии АТ91)
- 16-разрядные команды (118), большинство выполняется за один
- цикл, 11 типов адресации
- Гарвардская архитектура до 8МБ память программ – флэш (внутренняя до 128КБ) и до 8МБ память данных - ОЗУ и/или EEPROM (внутренняя до 4КБ + 4КБ)
- Частота 0-8МГц (25-40 - у АТ91)
- Таймеры (8б - 2х8+16)
- 8-и канальный 10-и разрядный АЦП
- СОМ порт (1 -2)
- Последовательный порт 2МГц в/в
- Параллельные 8-и битовые порты – 4-6
- Потребляемая мощность - до 25 мвт
- Внутренние и внешние прерывания
- Аппаратный стек возвратов и прерываний
ARM (Advanced RISC Machines) – процессоры.
Условные инструкции ARM (Advanced RISC Machines).
В этой архитектуре вместо обычных условных переходов все команды являются условными, то есть выполняются при наличии (или отсутствии) определённого условия.
Например, конструкция
Если условие истинно, то выполнить действие 1. Если ложно, то – действие 2.
В обычной архитектуре:
1) вычислить условие
2) если условие выполнено то к 5)
3) выполнить действие 2
4) переход к 6)
5) выполнить действие 1
6)
В архитектуре ARM
1) вычислить условие
2) выполнить действие 1, если условие истинно
3) выполнить действие 2, если условие ложно
Сегодня ARM используется более, чем в 75% встроенных процессоров (котроллеры ЖД, игрушки и т. д.)
Применяются в телефонах, модемах, карманных компьютерах.
Форматы данных: байт и двойное слово.
Регистры.
32-разрядные: с 0-го по 14-й - общие 15-й счётчик команд; 16-й – регистр состояния. Имеется ещё 15 регистров для режима ОС и прерываний.
Формат команд.
Все команды 32- разрядные.
Режимы адресации.
- косвенная регистровая со смещением
- косвенная регистровая базово-индексная со сдвигом результата вправо или влево на заданную величину
- относительная со смещением.
Первые две могут быть преиндексные (суммирование до формирования адреса) и постиндексные (суммирование после формирования адреса).
Набор операций стандартный для процессоров РИСК, Почти все команды являются условными (то есть могут либо выполняться, либо нет), кроме того операция сдвига совмещается с основной операцией ( перед выполнением один из операндов сначала сдвигается). С памятью выполняются только операции пересылок (в том числе и групповые). В состав набора входит операция Умножение со сложением.
Процессоры Motorola : 68000
Формат данных 8/16/32
Состав регистров 8 (32) – данных; 7(32) - адресные; 1 + 1 – указатели стека для пользователя и ОС, счётчик команд и регистр состояния.
Режимы адресации.
Все адреса 24-разрядные
Память 16- разрядная; нумерация байтов слева направо; два соседних слова могут интерпретироваться как 32-разрядное.
Память разделена на на страницы размером в 32 КБ
Поддерживаются все виды адресации, но базовым регистром может быть только адресный регистр , а индексным иногда может быть регистр данных.
Система команд ортогональная; то есть все форматы данных и все виды адресации поддерживаются. Все команды с данными устанавливают флаги.
Имеются команды условного перехода (всего 16),в том числе по счётчику циклов без учёта флагов.
Архитектура MAXQ RISC.
Новое микроконтроллерное ядро, сочетающее высокое быстродействие и низкую мощность потребления с многообразием сложных аналоговых функций. Трудность создания смешанных схем в низкой помехоустойчивости аналоговой части. С этой целью используется интеллектуальное управление тактовыми импульсами: они выдаются только на те схемы, которым они требуются.
Все инструкции выполняются за один такт (16 разрядный переход - два такта), хотя конвейер отсутствует.
Все операции одноадресные. Второй операнд находится в одном из 8 (16–и) аккумуляторов (активном).
Все команды имеют один 16 –битовый формат и являются операциями пересылки (совмещаемыми с другими операциями).
Формат |
Получатель |
Источник |
f |
ddd dddd |
ssss ssss |
1 |
Индекс- модуль |
Индекс -модуль |
0 |
Индекс- модуль |
Данные (00h - FFh) |
Гарвардская архитектура дополнена возможностью отображения памяти команд на память данных.
Понятие набора регистров заменено на понятием карты пересылок, которая определяет модификацию пересылок.
Использование ПЛИС позволяет строить системы на кристалле.
Архитектура процессора Nios ПЛИС ALTERA.
Он представляет собой универсальный процессор, который может быть сконфигурирован для широкого круга применений. По архитектуре это конвейерный RISC процессор с 16 разрядной командой и 32 разрядным словом ( с возможностью адресации к байту и полуслову).
Комплект средств отладки включает компилятор, отладчик и компоновщик С/С++/.
1.Форматы данных.
В памяти целые со знаком и без 8/16,32. Все А/Л операции – 32разрядные (умножение 16х16).
2. Набор регистров.
Набор 32-разрядных регистров включает как файл универсальных регистров, так и регистры управления.
Регистровый файл может иметь размер 128, 256 или 512 регистров. Программно доступно всегда только окно из 32 регистров, которое может перемещаться по файлу с шагом в 16 регистров. Регистровое окно разделено на четыре группы:
Группы регистров |
|
Регистры ввода |
%r24-%r31 (%i0-%i7) |
Локальные регистры |
%r16-%r23 (%L0-%L7) |
Регистры вывода |
%r6-%r15 (%i0-%i7) |
Общие регистры |
%r0-%r7 (%g0-%g7) |
Перемещение окна не затрагивает общие регистры. При сдвиге окна на 16 регистры вывода оказываются регистрами ввода.
К регистрам управления относятся:
- Счётчик команд программы содержит адрес первого байта команды.
Поскольку все команды 16 разрядные, младший разряд в нём всегда равен «0».
- Регистр префикса команды (К - регистр) имеет 11 разрядов. После выполнения любой команды (кроме собственно установки префикса) он обнуляется.
- Регистр состояния (%ctl0)
17 |
16 |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
DC |
IC |
IE |
IPRI |
CWP |
N |
V |
Z |
C |
C,Z,V,N – признаки результата ( код условия).
CWP – указатель положения текущего окна в регистровом файле.
При перемещении окна ин- или декрементируется.
IPRI – содержит текущий уровень приоритета (вектор прерывания), который устанавливается при входе в прерывание. Если прерывающая программа хочет установить вектор, значение которого больше, чем значение поля IPRI, то прерывание игнорируется.
IE - признак разрешения прерываний.
IC и DC – признаки разрешения использования кэш команд и данных, соответственно.
- Регистр %ctl1 (ISTATUS) служит для запоминания текущего состояния на момент прерывания. Из него осуществляется восстановление состояния при возврате из прерывания.
- Регистр %ctl2 (WVALID) содержит две величины: верхнюю и нижнюю границы регистрового файла. Если значение CWP выходит за эти границы возникает соответствующее исключение.
- Регистр ICACH (DCACH) хранит адрес строки кэш команд (кэш данных) при записи команды (или данных) в основную память по этому адресу из вне.
- Регистр CPU_ID служит для хранения идентификатора версии процессора.
- Set_IE и CLR_ IE – вовсе не регистры. Просто запись в них устанавливает (сбрасывает) признак разрешения прерывания.
-
3. Форматы команд.
Все команды имеют длину 16 бит. Код операции, как правило, занимает 6 бит. Всего имеется 16 форматов команд.
Разрядность (длина) некоторых команд может быть увеличена за счёт префикса на 11 разрядов. Префикс загружается по специальной команде. А/Л операции двухадресные.
4. Методы адресации.
Память представляется как 32 разрядная, но адресация осуществляется с точностью до байта, поэтому в адресе слова два младших разряда нулевые. Обращение за байтами и словами обеспечивается специальными операциями.
.
- Прямая регистровая
- Сокращённая непосредственная.
- регистровая косвенная.
Сокращённый непосредственный адрес содержит 5 разрядов (из 16-и). К нему может быть приставлен 11- разрядный префикс из регистра К.
Смещение формируется из с [K] и/или непосредственного адреса.
В качестве регистра косвенного адреса может выступать либо любой регистр (из 32), либо некоторые фиксированные регистры.
5. Набор операций.
- Пересылки.
- А/Л регистровые и с непосредственной адресацией.
- Умножения – 16х16.
- БП, вызов процедур, вызов прерывания ветвления (БП относительно счётчика команд). До перехода выполняется следующая за ним.
- Условный пропуск следующей команды (или двух, если следующая команда – установки префикса).
- Сдвиг регистрового окна.
- Вход в прерывание. Местоположение таблицы векторов прерываний в памяти может определяться пользователем.
- предусмотрена возможность введения операций, алгоритм работы которых определяется пользователем.
В состав системы входит программный модуль процессорного ядра на языке VERILOG или VHDL и модули интерфейсов: параллельного, последовательного (UART) и таймера, для которых пользователь может задать параметры по своему усмотрению.
Производительность процессора может достигать 50 MIPS.
Имеется возможность создания мультипроцессорной системы.
Архитектура MCS-51 (8хС52 – дальнейшее развитие) фирмы Intel.
( Н1830ВЕ31/ВЕ51 - НИИЭТ, г. Воронеж, ОКР «Танк-5»).
Архитектурные особенности.
Гарвардская архитектура.
8 – разрядное целочисленное АЛУ с результатом в аккумуляторе и умножителем.
Память программ (4КБ) и ОЗУ (128байт)
Четыре 8-разрядных двунаправленных порта ввода/вывода с альтернативными функциями.
Два программируемых таймера.
Дуплексный порт UART.
Процессор имеет следующие характеристики
1. Тактовая частота – FC = 24 Мгц. Длительность машинного цикла равна 1/ FC/12 = 0,5 мксек. Большинство операций выполняется за 1 цикл (умножение 4 цикла).
2. Формат данных – один байт
3. Ёмкость внутреннего ОЗУ – 256 байт. Адреса с 0 по 31 – четыре банка регистров общего назначения по семь регистров в банке. Адреса с 32 по 47 – прямо адресуемые биты; адреса с 47 по 127 – ОЗУ. Адреса с 128 по 255 – специальные регистры.
4. Память команд – ПЗУ на 8 Кбайт. ПЗУ может быть масочным, что обеспечивает большую устойчивость к спец факторам, или однократно программируемым. Большинство команд имеют длину один или два байта.
5. Три 8-разрядных двунаправленных порта. Имеется ещё и четвёртый порт, но его входы-выходы используются для альтернативных функций.
6. Последовательный дуплексный порт (UART) имеет три режима: синхронный (симплексный) на частоте, FC /12=2 Мгц и три асинхронных с максимальной частотой FC /32=0,75 Мгц.Размер адреса – восемь бит (до 256 адресов). Предусмотрено пять источников прерываний: два внешних и три внутренних (в том числе от последовательного порта). Время реакции – три цикла (1,5 мксек).
7. Условия эксплуатации по ГОСТ В 20.39.304-76 – все климатическое исполнение (спец факторы 3У – 6У).
Микросхемы 1830 ВЕ01У, 1830 ВЕ71У представляют собой 8-разрядные микроконтроллеры с тактовой частотой не менее 33 МГц, встроенным ОЗУ емкостью 256х8, с масочным или программируемым вариантом встроенной памяти программ объемом 8Кх8 и портом последовательного ввода/вывода.
Дополнительные возможности.
Программируемый массив счетчиков, обеспечивающий пять каналов выдачи сигналов с широтно-импульсной модуляцией.
Предусмотрена возможность распознавания портом UART первого байта в качестве адреса.
Наибольшим быстродействием обладает
Однако увеличение числа регистров увеличивает время обращения и длину команды.
Другой путь увеличения быстродействия - повышение частоты работы как оперативной памяти, так и внешней памяти.
Аппаратные способы повышения быстродействия ОП в развивались в направлении от асинхронных методов считывания (EDO , BEDO) к синхронным (SDRAM, DDR, DDR-2). У синхронной ОП цикл обращения состоит этапов, одинаковых по длительности, что позволяет привязать его к тактовой частоте процессора.
Второй путь
сокращения времени обращения - введение режима пакетного обмена данными между процессором и памятью. Пакетный режим предполагает соблюдение одних и тех же правил формирования последовательности адресов как процессором, так и памятью.
В процессорах Интел пакетный режим введён начиная с 486 процессора. Пакет состоит из 4-х передач (байта, слова, или двойного слова). В пакетном режиме старшие разряды адреса остаются неизменными в течение передачи пакета. Начало нового пакета сопровождается загрузкой полного адреса, поэтому первая передача занимает время в 2-5 раз большее, чем последующие. Заметим, что длина пакета выбирается равной строке кэш.
Во всех этих решениях предполагается, что в начале по мультиплексированной шине адреса загружается сначала RAS, а затем CAS, который затем изменяется внутренним счетчиком (в предположении, что обращение производится по последовательным адресам). При этом обеспечивается конвейеризация по схеме 5-2-2-2. Цифры означают длительность в тактах последовательных обращений от начала пакета.
Третьем структурным способом сокращения времени доступа к памяти служат методы расслоения памяти (или чередования адресов – Interleave). Эти методы предполагают, что соседние элементы массива данных или команд располагаются не в соседних ячейках памяти, а в соседних блоках (банках) и поэтому обращение к ним может осуществляться не последовательно, а параллельно.
Банк - группа модулей памяти одинаковой емкости, доступ к которой возможен независимо от другой группы.
Использование банков памяти для сокращения времени доступа осуществляется либо посредством увеличения ширины выборки (при этом обращение к элементам массива по соседним адресам осуществляется одновременно из нескольких банков), либо посредством сдвига обращения во времени на такт или на часть такта.
Собственно говоря, применение RAID массивов тоже один из способов расслоения, но уже внешней памяти.
Наконец, использование многоступенчатой (иерархической) памяти
предполагает такое построение памяти, при котором области памяти, к которым обращение происходит наиболее часто, имеют наибольшее быстродействие. Как правило, для области памяти, к которой обращаются более часто требуется сравнительно небольшой объем и для
этой цели может быть применена более быстродействующая память (кэш).
Отсюда всё расширяющаяся тенденция развития многоступенчатой (иерархической) памяти. Использование памятей нескольких уровней с пересылкой блоков программ и данных между памятями разных уровней позволяет существенно сократить простои процессора в ожидании данных. Особенно, если такая пересылка осуществляется в то время, пока процессор работает с другими блоками. Эффект существенно зависит от характера решаемых задач. В частности, в поисковых системах эффект будет минимальным. Так как области программ и данных зачастую различны, иногда применяют для них отдельные кэш.
Типовая иерархия памяти имеет примерно следующий вид
- Регистры: 64 – 256 слов с временем доступа 1 такт процессора;
- кэш 1 уровня: 8К слов с временем доступа 1-2 такта;
- кэш 2 уровня: 256К слов с временем доступа 3-5 тактов;
- основная память: до 4Г слов с временем доступа 12-60 тактов.
Наличие такого конвейера позволяет повысить производительность в раз (в идеальном случае)
Создание конвейера осложняется следующими обстоятельствами:
длительность этапов может быть различной
- результат предыдущей операции используется в качестве операнда в последующей (например, результат команды «К» должен быть использован в качестве источника в команде «К+3») или команда «К» является передачей управления, то есть после неё должна следовать команда К+М.
- в программе нарушается линейность, т.е. появляются ветвления (переходы): команда «К» является передачей управления, то есть после неё должна следовать команда К+М.
- в некоторых операциях присутствуют не все этапы.
Эти проблемы решаются либо компилятором, который старается выстраивать команды в порядке наиболее удобном для конвейера и при необходимости вставляет команды холостого хода, либо аппаратно.
Предполагается, что все этапы по длительности одинаковы или хотя бы были кратны по длительности. В последнем случае можно организовать перекрытие частей этапов. Такая организация называется суперконвейером.
Тем не менее, введение пятистадийного конвейера в Интел 486 позволило, по сравнению с Интел 386, повысить тактовую частоту в три раза, а время выполнения команд (в тактах) – сократить вдвое.
Дальнейшим развитием конвейеризации является использование нескольких устройств обработки с собственным конвейером, так называемая, разнесенная архитектура. В простейшем случае это введение дополнительных сопроцессоров, каждый из которых управляется собственным потоком команд. Например, адресный процессор и процессор с плавающей запятой. Не вдаваясь в подробности, метод предполагает наличие нескольких конвейеров данных: очередь адресов чтения и записи, очередь данных чтения и записи. Проблема расщепления программы на отдельные ветви для каждого
процессора решается компилятором или посредством специальной аппаратуры расщепления.
Например, начиная с Р2 реализована концепция динамического выполнения команд, которая реализуется тремя концепциями: предсказания переходов, динамическом анализе потока данных и спекулятивном выполнении команд.
Концепция предсказания переходов заключается в том, что при появлении в потоке команд операций ветвления в конвейер загружается наиболее вероятная ветвь.
Стратегии предсказания переходов подразделяют на статическое предсказание и динамическое предсказание.
Статическое предсказание закладывается на стадии компиляции.
- Никогда
- Всегда
- Всегда первый в цикле
- Никогда, если не первый в цикле
- Наиболее вероятные переходы (по статистике тестовых задач).
- По виду перехода (>0, <0, =0 и т.д.)
- По направлению перехода (вперёд - назад)
Динамическое предсказание переходов основывается на запоминании истории событий.
не будет
">
будет
">Например, может описываться конечным автоматом с двумя (или более) состояниями.
1 0 Не был Был
не был
Концепция динамического анализа потока данных заключается в частности в том, что производится выборка тех данных из памяти, которые потребуются позже, пока, например, выполняются предыдущие операции над регистрами.
Концепция спекулятивного выполнения команд – это способность процессора выполнять команды в порядке отличном от входного потока команд (с опережением) в том случае, если отсутствует зависимость по данным.
Реализация концепций динамического выполнения команд обеспечивает более полную загрузку процессора и соответственно позволяет получить большую производительность.
Обмен по аналогии с обращением к памяти
В этом случае отдельные компоненты контроллера трактуются как ячейки памяти и т. о. входят в общее адресное пространство. Для эффективного использования этого метода хорошо иметь двухадресную команду пересылки. В противном случае нужны две операции: сначала пересылка в регистр из памяти (из ВУ), а затем пересылка во ВУ (в память). Кроме того, при работе с медленным КВУ процессор должен уметь ждать завершения пересылки. Обмен по инициативе процессора.
Обмен по прерываниям
Это совокупность программно-аппаратных средств, посредством которых процессор получает способность реагировать на события, происходящие как вне, так и внутри него. При этом процессор переключе6тся на выполнение специальной программы (процедуры обработки прерывания) для анализа события. Затем процессор возобновляет выполнение прерванной программы. В зависимости от вида события различают внешние и внутренние прерывания.
При обмене с внешним устройством возникает проблемы начала и завершения процедуры обмена массивом (блоком) данных. Наиболее естественный способ это, когда процессор сам начинает обмен и сам завершает его. Однако в большинстве случаев это приводит к неоправданным затратам процессорного времени.
Другое решение заключается в периодическом (например, по таймеру) опросе ВУ на предмет его готовности. Но более продуктивным является решение, когда внешнее устройство само сообщает процессору о своей готовности. Два последних решения предполагают, что процессор умеет откликаться на события, происходящие как внутри его (переполнение таймера), так и вовне. Но так, как процессор ничего не умеет делать, кроме как выполнять программу, то это означает, что он должен в качестве реакции на некоторое воздействие (сигнал) прекратить выполнение одной программы и перейти на выполнение другой. Такой процесс называется прерыванием, а сигналы, вызывающие прерывание - запросами.
Совокупность программно-аппаратных средств, посредством которых процессор получает способность реагировать на события, происходящие как вне, так и внутри него носит название системы прерываний.
При возникновении прерывания процессор переключается на выполнение специальной программы (процедуры обработки прерывания) для анализа события. Затем процессор возобновляет выполнение прерванной программы
Таким образом, прерывание есть средство обращения к процедуре по внешним по отношению к выполняемой программе событиям. При этом тип процедуры определяется этим событием. Воздействие события на компьютер называется запросом.
Для удовлетворения запросов в требуемом порядке между ними устанавливают приоритет.
Различают следующие методы обработки приоритетов:
- статический метод: запросы обрабатывается в порядке их поступления.
- циклический метод: запросы обрабатываются по кольцу. Обработанный запросчик получает самый низкий приоритет.
- рекурсивный метод (с абсолютными приоритетами): запросы, имеющие более низкий приоритет, игнорируются.
Для запрещения отдельных запросов используются маски. Некоторые особенно важные запросы могут быть немаскируемыми.
Многие системы прерывания обладают возможностями рекурсии, когда программа, прерванная одним запросом, также может быть прервана другим запросом, имеющим более высокий приоритет.
Последовательность действий программы обработчика прерываний при возникновении запроса
- распознавание запроса (потенциальный и по фронту).
- запоминание текущего состояния процессора
- маскирование прерываний
- подтверждение приёма прерывания (сообщение запросчику, что потенциальный запрос может быть снят)
- обращение к программе-обработчику прерываний и снятие маски (если возможно).
- выход из прерывания
Т.о. вход в прерывание осуществляется аппаратно, а выход по команде программы.
Если запросчик сообщает номер программы обработки, то такое прерывание называется векторным.
Обмен по специальным командам ввода-вывода
Этот метод предполагает наличие специальных команд ввода-вывода, которые также могут требовать ожидания завершения обмена. Обмен по инициативе процессора.
Именно такое решение принято в архитектуре IA-16/32
Общие положения
К внешней памяти относятся устройства, позволяющие автономно сохранять информацию для последующего её использования после выключения питания.
Главная граница разделения ВП с точки зрения потребительских свойств проходит по мобильности: с постоянным носителем и сменным.
Они могут использовать различные физические принципы хранения информации: магнитный. оптический, электронный в любых сочетаниях.
Характерным для ВП является то, что её устройства оперируют не с байтами или словами, а блоками информации.
По методу доступа к информации УВП разделяются на устройства с
произвольным (дисковая память, флеш-диск) и с последовательным (накопители на магнитной ленте).
Организация вычислительного процесса
В основе организации вычислительного процесса лежат принципы построения цифровых вычислительных машин предложенные ещё фон Нейманом.
1. Выполняемая программа слагается из последовательности арифметических и логических операций из фиксированного набора команд.
2. Команды и данные в кодированном виде размещаются в запоминающем устройстве (в памяти). Память разбивается на слова фиксированной длины и имеет линейную адресацию, т.е. местоположение команд или данных в памяти определяется её адресом.
3. При этом различают два подхода: общая память для данных и команд.
- принстонская архитектура или фон-Неймана - открывается возможность модификации команд и раздельная память для данных и команд
- гарвардская архитектура - появляется возможность совмещения выборки из памяти данных и команд, исключается случайное использование данных в качестве команд и наоборот.
4. Память в целом имеет иерархическую структуру: сверхоперативная, оперативная, внешняя.
5. Операции выполняются операционными устройствами - процессором.
6. Результат операции записывается в оперативную память или в регистр
7. Результат операции характеризуются определёнными признаками (флагами) >0; <0; =0; ?0 и т.д.
8. Сверхоперативная память (регистры) для промежуточного хранения данных и часть оперативной памяти (кэш) располагается в процессоре.
9. Связь компьютера с внешними устройствами и человеком осуществляется посредством устройств ввода/вывода.
.
4.2. Общая структура компьютера.
Отсюда вытекает общая структура компьютера, установившаяся в настоящее время:
- устройство обработки данных (процессор)
- система памяти
- система ввода-вывода
- система интерфейсов между ними
Многошинная организация.
Двухшинная организация.
Одношинная организация.
Для сравнительной оценки компьютеров пользуются следующими характеристиками.
- производительность определяется возможностями процессора и оценивается объемом информации, обрабатываемой в единицу времени или количеством операций стандартного набора в единицу времени.
- емкость запоминающих устройств - байты, Кбайты, Мбайтны, Гбайтны и их номенклатура
- набор внешних устройств и их пропускная способность: бит/сек (бод), байт, Кбайт, Мбайт
- надежность функционирования: вероятность безотказной работы в течение заданного интервала; время наработки до первого отказа (в среднем); среднее время восстановления; живучесть - возможность сохранять работоспособность при отказе отдельных элементов, косвенно –
- условия эксплуатации
4.3. Процессор.
4.3.1. Архитектура и организация.
Как процессор, так и компьютер вцелом, характеризуется архитектурой и организацией.
Хотя чёткую границу между этими понятиями провести трудно.
Под архитектурой понимается совокупность свойств и характеристик процессора (компьютера), доступных пользователю (потребителю). Пользователя же в основном интересует производительность на его задачах, простота постановки своих задач (программирование), удобство общения с вычислительным средством.
Те есть, архитектура процессора отражает возможности, предоставляемые пользователю:
- форматы данных
- набор (систему) команд
- режимы адресации
- набор устройств хранения информации
- набор методов ввода-вывода информации
Организация ЭВМ определяет, как эти средства реализованы: Под организацией или структурой понимается совокупность устройств, необходимых для воплощения архитектуры.
- особенности аппаратурной реализации
- степень параллелизма
- быстродействие
- система памяти
- система ввода-вывода
- система интерфейсов между ними.
Исходя из концепции фон-Неймана структурная схема процессора
имеет следующий вид.
Общая (упрощенная) структура процессора.
УВВ
|
Итак. мы будем рассматривать архитектурные возможности процессоров исходя из следующих аспектов:
– Форматы данных
– Набор регистров
– Форматы команд
– Режимы адресации
– Набор операций
Основные пути повышения производительности процессоров
1. Повышение тактовой частоты
2. Конвейеризация обработки команд
3. Сокращение времени обращения к памяти.
4. Сокращение времени переключения процессора.
5. Оптимизация системы команд (архитектурный путь)
6. Переход от чисто последовательного выполнения команд к па- раллельному выполнению (от скалярной к векторной и суперска- лярной обработке).
9.1.
Первые ламповые цифровые устройства
Первые ламповые цифровые устройства: 1957г. – НИР "Счётчик", 1959г. - ламповая ЦВМ с идеями СОП.
Первые транзисторные БЦВМ. 1957г.- макет БЦВМ в ВЦ-3 МО. 1959г.- попытка внедрения на борт УМ-1 (Филипп Старос и Йозеф Берг). 1962г.- БЦВМ "Пламя-ВТ " для крылатой ракеты "Буря". 1964г.- "Пламя - К" для ЗРК С-100, 1965г. - "Пламя Б" для НК самолетов.
1965г. - микромодульный спецвычислитель «Аэлита» для радиолокатора «Чайка» обнаружения корабельных ордеров.
1966г. Попытка создания УСК.
!967г. – НИР «Вектор».
1969г. – разработка первого процессора на микросхемах «Вектор-2».
1970г. Зарождение семейства "Аргон» - НИИЦЭВТ .
1972 БВС-Р комплекса «Рапира» для высотного сверхзвукового разведчика Т-4.
1976г. ЦВМ-П для РЛС обнаружения низколетящих целей ("Перископ").
1982г. М-104 – БВР для комплекса М100 разведчика СУ 24МР.
1983г. – РА-51: ЦВМ завязки трасс для АКРЛДН-50.
1989 Мультипроцессорная система для самолетного комплекса "Квант" фронтового и палубного применения (до 16млн опер/сек).
По функциональному назначению операции подразделяются на следующие типы
– Перемещения данных. Более подходящий термин - дублирования данных.
– Унарные операции: сдвига, тригонометрических функций, возведение в степень, модуль, инверсия.
– Бинарные операции: арифметические, логические, сравнения.
– Переходы.
– Операции ввода-вывода.
Рассмотрим типы операций более подробно.
1.
1) Пересылки операндов:
- между регистрами,
- между памятью и регистром,
- между памятью или регистром и внешним устройством
2.
Обработки данных, которые различаются на операции с одним операндом:
дополнение, модуль, корень, тригонометрические функции; операции сдвига:
вправо и влево; циклического вправо и влево, арифметического и логи
ческого; операции с двумя операндами: арифметические, логические (кроме
инверсии), операции сравнения: логического и арифметического. Операции обработки данных
сопровождаются формированием признаков результата >0; <0; >=0; <=0; =0; /=0; переполнения порядков и мантисс.
3.
Под ЭВМ (компьютером) обычно понимается
Под ЭВМ (компьютером) обычно понимается вычислительное средство, имеющее устройство цифровой обработки информации (процессор), устройства хранения информации (программ и данных) и устройства ввода-вывода информации.
При этом подразумевается, что программа обработки в общем случае определяется пользователем. Если же программа решения задачи определяется структурой вычислительного средства, то такое вычислительное средство называют – спецвычислителем.
Все процессоры можно разделить на три больших класса: универсальные процессоры, сигнальные процессоры и микроконтроллеры.
Различают одно- и многопроцессорные ЭВМ. При этом предполагается, что остальные устройства используются процессорами совместно с разделением времени.
Если же вычислительное средство содержит несколько ЭВМ, связанных между собой для решения общей задачи, то вступает в силу понятие вычислительной системы. Если ВМ связаны сетью - появляется понятие вычислительной сети.
Некоторые авторы применительно к процессору применяют понятие многоуровневой организации.
При этом различают следующие уровни:
- цифровой логический уровень,
- архитектурный,
- уровень системы команд,
- уровень языка ассемблера,
- уровень операционной системы,
- и, наконец, ЯВУ.
Все универсальные процессоры мы будем сравнивать по следующим параметрам.
1. Форматы данных.
2. Набор регистров.
3. Форматы команд.
4. Методы адресации.
5. Набор операций.
6. Организация памяти и состав кэш (не архитектурный параметр).
Под командой понимают совокупность
а) о виде выполняемой операции - код операции
б) о местонахождении операндов - адреса операндов
в) о местонахождении следующей команды
Части команды, имеющие самостоятельное функциональное назначение, называются полями: поле кода операции, поле операнда, поля адресов операндов, поле адреса следующей команды и т.д.
1) Безадресные команды.
Предполагается, что в процессоре имеется, по крайней мере, один
регистр - накопитель (аккумулятор); операция совершается над операндом, находящимся в накопителе, и результат остаётся там же.
|
2) Одноадресные команды.
Операция совершается между накопителем и ячейкой памяти (регистром). Результат помещается в накопитель или в ячейку памяти (регистр).
3) Двухадресные команды.
Операция совершается между двумя ячейками памяти. Результат помещается в накопитель или по адресу одного из операндов.
4) Трёхадресные команды.
Операция совершается между двумя ячейками памяти. Результат помещается в накопитель или по адресу результата.
5) Четырёхадресные команды.
|
Физически команда может размещаться в одной ячейке памяти или в нескольких. В одной ячейке памяти может размещаться несколько команд.
Появление и феномен ПК
Рождение ПК.
Идея персонального компьютера родилась после появления в 1971 году МП INTEL 4004 (2300транз., 4р., ОЗУ -до128 слов, ПЗУ -до 4кб), который быстро внедрился во все сферы деятельности.
Первыми собрали ПК два недоучившихся студента: Прожжённый хиппи Стивен Джобс и математический вундеркинд Стефан Возняк (разработал карманную приставку, которая позволяла делать бесплатные звонки). Расчёты делали в спальне Возняка, сборку в гараже отчима Джобса."Apple 1" представлял собой то, что теперь называется материнской платой с клавиатурой телевизором и магнитофоном. Чтобы организовать поточное производство Джобс продал автомобиль, а Возняк - калькулятор. Так в мае 1977г. возникла фирма "Эппл компьютер". В 1980г. в дело включилась "Майкрософт" с ИБМ ПС, жёстким диском и Питером Нортоном.
Основополагающими особенностями ПЭВМ являются (все одновременно):
- Компактность (винчестер, принтер, сканер).
- Модульность.
- Низкая стоимость
- Универсальность.
- Автономность.
- Удобный пользовательский интерфейс.
- Простота программирования.
- Большой набор готовых программ.
- Надёжность.
- Стандартизация интерфейсов.
- Сочетание аппаратных и программных решений.
Представление информации в компьютерах
Информация в ЦВМ представляется в кодированном виде, а именно в виде последовательности цифр, т.е. чисел. При этом это может быть либо собственно числа со знаком либо символы - числа без знака.
Числа в ЦВМ представляется не в десятичной системе счисления, а в двоичной, т.е. в каждой разрядной позиции может быть не 10 различных символов, а 2: "0" и "1".
Такое представление вызвано техническими соображениями:
двухстабильный элемент создать легче, чем 10-и. Примеры двустабильных элементов: чёрное - белое; высокий - низкий; наличие - отсутствие, истинно - ложно.
2.2. Основы алгебры логики.
Двоичная система оказалась очень удобной для построения элементной базы ЦВМ, поскольку оказалось возможным использовать аппарат математической логики, базирующейся на том, что любое суждение (утверждение) является двоичным: истинное и ложное. Двоичная алгебра была создана Джоном Булем ("Математический анализ логики" 1847г.), которая получила название булевой алгебры.
Для описания функционирования цифровых схем используется математический аппарат булевых функций (части функций алгебры логики). ФАЛ, как и ее переменные, могут принимать только два значения.
Особый интерес представляют булевы функции одной и двух перемен. Функции для большего числа переменных могут быть сведены к функциям от двух переменных.
Количество функций одной переменной равно 22 = 4
Аргумент |
Функция |
Обозначение |
Название | ||||
х |
Значение |
F(x | |||||
0 1 |
0 0 |
F0(х) |
Константа «0» | ||||
0 1 |
0 1 |
F1(x) |
Переменная «х» | ||||
0 1 |
1 0 |
F2(x) |
Отрицание (инверсия) «/х» | ||||
0 1 |
1 1 |
F3(x) |
Константа «1» |
Количество функций двух переменных (22)2 = 16
Аргумент |
Функции |
||||||||||||||||
X |
Y |
F0 |
F1 |
F2 |
F3 |
F4 |
F5 |
F6 |
F7 |
F8 |
F9 |
F10 |
F11 |
F12 |
F13 |
F14 |
F15 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
f0 - константа 0
F1 - x&y конъюнкция (*, , /\)
F2 - хÌ`y запрет по у - отрицание импликации х`y
F3 - х - переменная х
F4 xÌy - запрет по х - отрицание импликации `xy
F5 - у
F6 - x?y - неэквивалентность x`y\/`xy
F7 - x\/y - дизъюнкция (+)
F8 - x|y - стрелка Пирса x\/y -не-или
_ _
F9 - x=y эквивалентность xy\/xy
_
F10- y - не у y
_
F11 - yÌx импликация от у к х y\/x
F12 - x - не х
_
F13 - xÌy импликация от х к у x\/y
___
F14 - x/y - штрих Шеффера хy - не и
F15 - 1
Система булевых функций является функционально полной, если любую булеву функцию можно представить посредством этой системы.
Так можно доказать что любое сложное высказывание может быть выражено в виде формулы, в которой используются только три операции:
конъюнкция, дизъюнкция и отрицание. Будем их обозначать символами: отсутствие символа, «+» и «` »
Аксиомы алгебры логики.
_ _
00 = 0 ; 1+1 = 1; 0 = 1: 1 = 0;
А+0 = А: А1 = А; А+1 = 1 А0 = 0 А+А = А АА = А
___ _ _ _
(А) = А; (А) = А; А+А = 1; АА = 0;
Теорема де Моргана.
___ _ _ __ _ _
А+В = А В; АВ = А + В
Законы алгебры логики.
Для такой алгебры справедливы законы
а) коммутативности: АВ=ВА А+В=В+А
б) ассоциативности: А(ВС)=(АВ)С ; А+(В+С) = (А+В)+С
в) дистрибутивности: А(В+С) = АВ+АС; А+ВС = (А+В)(А+С)
г) поглощения: А(А+В) = А; А + АВ = А ;
Таблицы булевых операций двух переменных
Дизьюнкция Конъюнкция
_ _
Х |
У |
Х+У |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
Х |
У |
ХУ |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
_ _ _ _ ____
F=`ХУ = ХУ = Х+У
_ _ _ _ ___
F=`ХУ+ХУ+ХУ=ХУ
При этом, как мы видим, существует две нормальные формы представления: дизъюнктивная (дизъюнкция конъюнкций) и конъюнктивная (конъюнкция дизъюнкций).
Можно показать, что функционально полной являются системы, состоящие из дизъюнкции и отрицания, из конъюнкции и отрицания, стрелка Пирса и штрих Шеффера.
2.3. Методы физического представления двоичных кодов.
Различают два основных способа представления кодированной информации; параллельный код, (когда все биты предаются одновременно) и последовательный (когда биты передаются поочерёдно).
Поскольку эти способы имеют противоположные требования к быстродействию и затратам оборудования, то применяют параллельно-последовательный способ.
Напомним, что в ЦВТ информация подразделяется на биты, совокупности битов(байты, слова, и т.д.) и массивы (файлы, записи).
Для идентификации отдельных элементов информации применяют специальные синхронизирующие сигналы или стробы. По виду представления различают потенциальный вид и импульсный.
При любых передачах параллельным кодом обычно применяют потенциальный способ представления информации, при этом стробирование осуществляется либо импульсом, либо фронтом, либо спадом.
Передачи последовательным кодом отличаются большим разнообразием способов кодирования: потенциальный, импульсный, кодирование направлением перепада (фазоманипулированный код), без стробирования (на фиксированной частоте).
Синхросигналы
Двоичный код 0 0 1 1 1 0 0 0
(без возврата к нулю
"Манчестер 2" - нули и единицы передаются разными фронтами
При параллельной передаче для идентификации отдельных элементов (байтов, слов) информации применяют специальные синхронизирующие сигналы или стробы. При этом различают синхронную и асинхронную
Синхронная передача
|
|
|
|
|
|
|
|
Отмеченные выше средства кодирования цифровой информации являются средствами амплитудной модуляции (потенциалы, импульсы и фронты импульсов). Хотя средств кодирования существует бесконечное множество, отметим здесь средства кодирования посредством модуляции сигнала.
- частотная: 0 и 1 – разными частотами;
- фазовая: частота постоянная, но при переходе с 0 на 1 меняется фаза сигнала.
.
2.4. Схемная (физическая) реализация логических функций.
Основные параметры логических элементов.
- технология изготовления
- задержка распространения (частота переключения)
- мощность потребления
- нагрузочная способность (количество себе подобных)
Наиболее просто проиллюстрировать реализацию логических функций на основе транзисторной логики.
+ + +
`х
х х
|
|
|
|
|
`
+ +
x
|
y
|
||||||||
Приведенные схемы являются комбинационными, то есть значение выходного сигнала однозначно определяется входными сигналами. Кстати, приведенные схемы реализуют положительную логику, когда логической единице соответствует более высокий уровень, если же принять за логическую единицу более низкий уровень, то операции "и" и "или" поменяются местами.
2.4.3. Комбинационные схемы
Таблица истинности одного разряда двоичного сумматора.
x |
y |
c |
S |
Co |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
Co= xy`c + x`yc +`xyc +xyc
2.6. Элементы с памятью.
Элемент двоичного хранения (триггер) на элементах «или-не». . Это уже не комбинационная схема, а последовательностная (конечный автомат) – схема с памятью.
Работа логических элементов описывается и с помощью временных диаграмм.
S `Qn+1
Qn
_ `Q
Qn
R Qn+1
1 2 3 4 5 6 7 8 9
S
R
_
Q
Q
Таблица переходов асинхронного R-S триггера.
Значение его выходного сигнала зависит не только от значений входных сигналов, но и от его внутреннего состояния.
№ |
R |
S |
Qn |
Q(n+1) |
Состояние |
1 |
0 |
0 |
0 |
0 |
хранение "0" |
2 |
0 |
1 |
0 |
1 |
установка в "1" |
3 |
0 |
0 |
1 |
1 |
хранение "1" |
4 |
0 |
1 |
1 |
1 |
хранение "1" |
5 |
0 |
0 |
1 |
1 |
хранение "1" |
6 |
1 |
0 |
1 |
0 |
установка в "0" |
7 |
0 |
0 |
0 |
0 |
хранение "0" |
8 |
1 |
0 |
0 |
0 |
хранение "0" |
9 |
1 |
1 |
0 |
х |
недопустимо |
10 |
1 |
1 |
1 |
х |
недопустимо |
Синхронный R-S триггер
Синхронный R- S триггер получается из асинхронного триггера путем добавления по И ко входам R и S дополнительного входа С.
|
Q
Q
D –триггер
Мы уже обратили внимание, что одновременная подача сигналов на входы S и R недопустима. Чтобы это исключить можно договориться, чтобы эти сигналы были инверсные друг другу, т.е. заменить их одним сигналом тогда получаем cсинхронный D триггер
Синхронный D триггер
C |
D |
Qn |
Qn+1 |
Функция |
0 |
0 |
0 |
0 |
хранение "0" |
0 |
0 |
1 |
1 |
хранение "1" |
0 |
1 |
0 |
0 |
хранение "0" |
0 |
1 |
1 |
1 |
хранение "1" |
1 |
0 |
0 |
0 |
хранение "0" |
1 |
0 |
1 |
0 |
установка в"0" |
1 |
1 |
0 |
1 |
установка в"1" |
1 |
1 |
1 |
1 |
хранение "1" |
А
А
Различают D триггеры, запись в которые происходит по уровню, т.е.
в момент действия синхроимпульса триггер предcтавляет собой комбина-
ционную схему (триггеры типа защелки) и D-триггеры, запись в которые
происходит по фронту сигнала (переднему или заднему).
Cинхронный T триггер
Если в качестве D-входа использовать инверсный выход самого триггера.
C |
Qn |
Qn+1 |
Функция |
0 |
0 |
0 |
хранение "0" |
1 |
0 |
1 |
установка "1" |
0 |
1 |
1 |
хранение "1" |
1 |
1 |
0 |
установка "0" |
С
Q
- частота на выходе в двое ниже частоты на входе
- элемент является сумматором по модулю 2, т.е. счетным элементом.
Совокупность синхронных триггеров, соединённых последовательно (выходы предшествующих на входы последующих, в том числе последнего с первым ) и общим сигналом на входах «С» образует регистр последовательного хранения (сдвига). Если же имеется соединение по только по входам «С», то получаем регистр параллельного хранения и параллельной передачи. Последовательное соединение Т-триггеров образует счётчик.
Прямой доступ в память
Прямой доступ в память - это способ пересылки данных, при использовании которого устанавливается непосредственная связь между внешним устройством и памятью без участия процессора, т.е. КВУ может само записывать данные в память или считывать их. Цель этого метода - освободить ЦП от необходимости непосредственного управления обменом данными.
Аппаратура ПДП должна обеспечивать
- формирование адреса памяти (пересчёт адресов)
- подсчёт количества сеансов обмена
- управлением направлением обмена
- формирование сигналов завершения обмена (переполнение счетчика слов, достижение заданного адреса, по внешнему сигналу).
Варианты реализации ПДП
1) Посредством специального устройства, которое реализует функции каналов обмена. Обычная последовательность действий в этом случае
- инициализация каналов: загрузка начального адреса, счётчика слов и запуск
- ожидание запроса на обмен
- приостановка процессора после получения запроса
- подтверждение обслуживания
- обмен (чтение/запись, продвижение счётчиков адреса и числа слов)
- завершение приостановки процессора и при необходимости выработка признака переполнения счётчика
2) Функции канала обмена реализуются во ВУ. Основное отличие от предыдущего - формирование адреса, подсчёт числа слов, управление направлением обмена и т.д. возлагаются на само ВУ. Возможные способы взаимодействия с памятью: захват шины и использование двух портовой памяти.
ПДП в виде отдельного устройства целесообразно использовать при относительно низкой частоте обменов.
Захват шины - при обмене большими массивами на максимальной частоте или двух портовая память.
Процессор выполняет следующие действия:
- выборку команды из памяти в соответствии с её номером (естественный или принудительный способ выборки)
- дешифрацию кода операции
- вычисление адресов операндов
- выборку данных из памяти
- обработку данных - выполнение операции
- вычисление адреса результата (опускается, если он совпадет с исходным адресом)
- запись результата в память
- вычисление адреса следующей команды.
Поскольку выполнение команды разбивается на несколько этапов, то можно представить себе конвейер этих этапов.
Этап | Такт1 | Такт 2 | Такт 3 | Такт 4 | Такт 5 | Такт 6 | |||||||
Выборка команды | К | К+1 | К+2 | К+3 | К+4 | К+5 | |||||||
Дешифрация команды | К-1 | К | К+1 | К+2 | К+3 | К+4 | |||||||
Вычисление адреса | К-2 | К-1 | К | К+1 | К+2 | К+3 | |||||||
Выборка данных | К-3 | К-2 | К-1 | К | К+1 | К+2 | |||||||
Выполнение операции | К-4 | К-3 | К-2 | К-1 | К | К+1 | |||||||
Запись результата | К-5 | К-4 | К-3 | К-2 | К-1 | К |
SATA & SAS
Фирмы Adaptec, HP, Seagate, IBM разработали стандарт на Serial Attached SCSI (SAS). В нём предусмотрены два типа протоколов: SCSI и SATA.
Сравнение интерфейсов.
ATA |
SATA |
SCSI |
SAS |
FC-AL | |||||||
Разрядность |
16 |
1 |
16 |
1 | |||||||
Адресация |
2 |
1 |
16 |
128 |
16. 106 | ||||||
Топология |
Шина |
Радиальный |
Шина |
Радиальный |
Кольцо | ||||||
Длина |
0,5м |
1м |
12м |
10м |
10км | ||||||
Скорость МБ/с |
100 |
150 (600) |
160(320) |
300 (1000) |
200 | ||||||
Волоконный FC-AL (Fiber Channel Arbitration Loop).
Шина SCSI
SCSI ( Small Computer System Interface) является шинным интерфейсом: на одном кабеле может висеть несколько абонентов. Шина может использоваться и как внутренняя и как внешняя. Управляет шиной хост адаптер, который подключается к шине расширения компьютера.
Каждый абонент (до 8-и), подключаемый к шине имеет уникальный позиционный идентификатор - SCSI ID.
Типовые идентификаторы: Хост – 7; НМД - 6; CD - 3 ;Сканер – 2.
Приоритет убывает с уменьшением номера.
В абонент может входить до 8-и устройств со своими номерами (LUN – Logical Unit Number). В каждый момент на шине могут вести обмен два устройства: ведущий (Initiator -I) - и исполнитель (Target-Т). Обмен может быть асинхронным или синхронным с согласованием скорости (более быстрый).
Типовые конфигурации.
а)Один ведущий, несколько исполнителей.
б) Несколько ведущих и несколько исполнителей.
Сигнальные линии шины SCSI.
DB# (9/17/36) I,T - шина данных с контрольными разрядами.
ATN# I - Внимание, запрос исполнителю послать сообщение
BSY I,T - Шина занята.
REQ# T - Запрос на пересылку данных.
ACK# I - Ответ на запрос
RST# I,T - Сброс
MSG# T - Передача сообщения
SEL# I/T - выбор исполнителя ведущим или подтверждение выбора исполнителем
C/D# T - Команда/данные на шине
I/O# T - направление передачи или фаза выбора.
Модификации SCSI - интерфейсов.
SCSI-1 - стандартизованы электрические параметры и минимум команд, 8-разрядов, частота шины 5мггц.
Развитие - SCSI-2, 18 обязательных команд.
Быстродействие интерфейсов SCSI-2.
Разрядность Обычный Fast Ultra Число устр.
8 (Narrow) 5MB/c 10MB/c 20MB/c 8
16 (Wide) 10Mb/c 20MB/c 40MB/c 16
32 (Wide) 20MB/c 40MB/c 80MB/c 16
Длина
кабеля 6м 3м 1,5м
SCSI-3 - увеличение подключаемых устройств, обязательных команд и РиР.
Все SCSI-устройства требуют специальных драйверов.
7.2.3. Последовательный порт РС.
Типичным представителем последовательного интерфейса является RS-232C ( СОМ-порт в РС, максимальная длина 1м)
Подразумевается, что биты информации передаются по одной линии друг за другом, начиная с младшего или старшего бита. Чаще, чем для других интерфейсов, для последовательной передачи различают следующие режимы работы:
- симплексный
- полудуплексный (с переключением направления)
- дуплексный.
При последовательной передаче существует два основных способа передачи разрядов синхронный и асинхронный. Синхронный способ предполагает взаимную синхронизацию приёмника с передатчиком либо посредством специальной линии синхронизации либо посредством самосинхронизирующихся кодов.
В СОМ - портах РС применяется асинхронный способ, основанный на протоколе RS-232C (Стык-2). Хотя протокол поддерживает как синхронный, так и асинхронный способы, в СОМ - портах применяется только асинхронный.
При асинхронной передаче передаваемое сообщение разбивается на символы. Каждый символ начинается со СТАРТ - посылки, сигнализирующей приёмнику о начале очередного символа, затем следуют разряды байта данных и бит чётности. Завершает символ СТОП - посылка, определяющая длительность паузы между символами.
Кодировка в RS-232C инверсная: лог. "0" - (+12 ÷ +3)В; лог. "1" -
- (-12 ÷ -3)В. При такой кодировке посылке СТАРТ соответствует - "0", а СТОП - "1". Для восстановления синхронизации приёмник имеет генератор синхросигналов с частотой, равной частоте генератора передатчика. Этот генератор работает в ждущем режиме и запускается от фронта стартового сигнала. Число синхроимпульсов соответствует размеру символа между посылками СТАРТ и СТОП.
Другим способом для распознавания интервалов в приемном устройстве служит специальный тактовый генератор с частотой в 16 раз превышающей частоту передачи.
После обнаружения стартового бита (через 8 периодов частоты генератора), считается, что начат приём символа. Приём завершается после обнаружения стоповых битов (после прима заданного количества информационных битов).
Старт КР 2 стопа
|
Линии интерфейса RS-232C (АПД - контроллер СОМ порта).
Обозначение. |
Назначение. |
PC |
Устр. |
РG (Protect Ground) |
экран |
||
SG (Signal Ground) |
сигнальная земля |
||
TD (Transmit Data) |
передаваемые данные |
O |
I |
RD (Receive Data) |
принимаемые данные |
I |
O |
RTS (Request To Send) |
требование передачи |
O |
I |
CTS (Clear To Send) |
готовность модема к приёму |
I |
O |
DTR (Data Terminal Ready) |
готовность к передаче |
O |
I |
DSR (Data Set Ready) |
Готовность модема |
I |
O |
DCD (Data Carrier Detected) |
несущая обнаружена |
I |
O |
RI (Ring Indicator) |
индикатор вызова |
I |
O |
(полное).
TD ---------> TD TD ---------> RD
RD <--------< RD RD <----------TD
DTR --------> DTR DTR ---+----> DSR
DSR <-------< DSR |
RTS >-------> RTS +----> DCD
CTS <-------< CTS
DCD <-------< DCD DSR <--+------DTR
RI <--------< RI |
SG <--------> SG DCD <--+
RTS >-------> CTS
CTS <-------< RTS
SG <-------> SG
.
Минимальное соединение.
TD >------ ------< TD
X
RD <------ ------> RD
SG <-------------->SG
Перемычки могут быть установлены внутри
Существуют и другие варианта схем на основе UART.
RS-422: 1Mб/с (921,6Кб/с)на расстояние до 1200м. Соединение (10 линий) радиальное дуплексное или магистральное полудуплексное (до 10 прёмников).
RS-485. 1Mб/с на расстояние до 1200м. Соединение (3 линии) магистральное полудуплексное (до 32 прёмников).
Базовые адреса СОМ-портов.
СОМ1 - 3F8...3FF , IRQ4
СОМ2 - 2F8...2FF, IRQ3
СОМ1 BASE = 3F8
СОМ2 BASE = 2F8
BASE+3 - вывод/ввод
Назначение разрядов
1,0 - количество бит данных 00 - 5;01 - 6; 10 -7; 11 -8
2 - количество СТОП - бит 0 -1 ; 1 -2
4,3 - контроль чётности Х0 - нет; 01- на нечётность; 11- на чётность
5 - значение контрольного разряда
6 - 1 - передача нуля; 0 - передача символов
7 - бит управления (БУ)
BASE - вывод/ввод
БУ=0 - байт данных
БУ=1 - младший байт кода делителя частоты (от 110бит/сек до 115200бит/сек)
BASE+1 - вывод
БУ=0 - управление прерываниями: по окончании приёма данных, по окончании передачи данных, по сбою, нарушение протокола
БУ=1 - старший байт кода делителя частоты
BASE+2 - причины (запросы) прерывания (ввод)
BASE+4 - управление модемом (вывод)
BASE+6 - опрос состояния модема (ввод)
BASE+5 - опрос состояния линии (ввод)
0 данные получены и готовы для ввода
1 переполнение буфера ввода
2 ошибка чётности при вводе
3 пропадание посылки СТОП
4 сплошной нуль при вводе
5 готовность буфера для вывода
6 выдача закончена
7 останов
Для инициализации СОМ-порта необходимо
- выдать БУ=1
- установить код делителя частоты
- выдать БУ=0
- установить маски прерывания
7.2.4. USB (Universal Serial Bus).
Последовательная шина подключения внешних устройств среднего быстродействия (клавиатура, мышь, аудио кодеки, видеокамеры). Она обеспечивает двунаправленную передачу данных со скоростью до 12 Мбит/сек (USB-2 - до 480).
Для видео это недостаточно и появился Fire Wire (IEEE
1394) с производительностью до 1,6Гбит/сек.
USB обеспечивает обмен данными между хост компьютером и множеством периферийных устройств.
Распределение пропускной способности шины между подключёнными устройствами реализуется с помощью посылки маркеров. Шина позволяет подключать, конфигурировать, использовать и отключать непосредственно в процессе работы. Устройства подключаются по топологии дерева, используя хабы (разветвители). Корневым хабом на два разветвления - порта является обычно хост. Логически устройство, подключённое к любому хабу, может рассматриваться как подключённое непосредственно к хост-компьютеру. Устройство может иметь встроенный хаб (хаб/средство), а может и не иметь (средство). Порты у хаба подразделяются на один восходящий и несколько нисходящих.
Функции контроллера хоста.
- Обнаружение, конфигурирование, подключение и отключение устройств USB.
- Управление потоками данных
- Формирование потоков управления
- Сбор и анализ состояния устройств.
Программное обеспечение хоста можно разделить на следующие категории:
Поддержка USB ОС, независящая от конфигурации шины USB.
ПО собственно контроллера.
ПО, обеспечивающее работу конкретного средства.
Устройства USB - средства и хабы.
Хаб в USB выполняет функции коммутации сигналов и отслеживает состояние, подключённых к нему устройств, информируя хост о всех изменениях. Хаб взаимодействует с хостом посредством входящих в его состав регистров.
С точки зрения передачи данных каждое средство USB представляет собой набор независимых конечных точек.
Каждая конечная точка описывается следующими параметрами:
- номер точки
- направление обмена и его тип
- максимальный размер пакета при обмене
- требуемая частота доступа к шине и допустимые задержки обслуживания
- требования к контролю передач
Каждое средство обязательно имеет конечную точку с номером "0", которая используется для общего управления средством, опроса его состояния и инициализации. По включению точка "0" всегда доступна и поддерживает передачи типа "управление".
Линии интерфейса.
Всего в интерфейсе 4 линии: (V, -D,+D, 0V).
В двухпроводной линии USB используется как дифференциальные сигналы, так и линейные.
Простейший пример дифференциальной пары передача по одному проводу сигнала А, а по другому инверсии А. Более сложный - передача разностных сигналов.
Дифференциальная пара используется в линейном режиме, когда значения сигналов на линиях не взаимосвязано. -
Если учесть, что все эти ситуации могут иметь ещё и различную длительность, то придём к пониманию понятий состояний (State) интерфейса:
- Data J S. \
значения бита информации
- Data K S./
- Idle S. - пауза
- Resume S. - выход из паузы
- SOP (Start of Packet) -начало пакета
- EOP (End of Packet) - конец пакета
- Connekt - устройство подключено
- Disconnekt - устройство отключено
- Reset сброс
Передача осуществляется в коде NRZI (при передаче нуля меняется фаза).
Типы передачи данных.
Передача осуществляется между хостом и конкретной конечной точкой средства. Предусмотрены четыре основных типа передачи данных.
- Управляющие посылки, используемые для конфигурировния и управления.
- Сплошные передачи пакетов, которые могут приостанавливаться
- Прерывания: короткие передачи, которые могут вклиниваться в сплошные.
- Изохронные - непрерывные передачи в реальном масштабе времени без повтора при ошибке.
.
Порядок обмена.
Все обмены транзакции состоят из трёх пакетов.
- пакет-маркер - от контроллера с описанием адреса средства, номера конечной точки, типа передачи и направления.
- пакет данных и
- пакет подтверждение
Адресуемое маркером средство распознаёт свой адрес и подготавливается к обмену. Источник данных, определённый маркером передаёт пакет данных (или сообщает об отсутствии данных).
Приёмник после успешного приёма посылает пакет-подтверждение. Маркеры отвергнутых транзакций передаются повторно, когда шина освободится.
Байты в пакете передаются последовательно, начиная с младшего бита. Каждый пакет начинается с поля синхронизации (KJKJKJ, следующим сразу после состояния IDLE, затем следует поле начала пакета SOP
(KK), далее следует 4-битное поле идентификатора пакета.
В пакетах-маркерах далее следуют 7-битное поле адреса средства и 4-битный адрес точки (маркеры вывода, ввода и управления); в маркере начала кадра - 11-битное поле номера кадра. Поле данных в пакете данных имеет размер в зависимости от средства до 1023 байт.
Нумерация средств, (подключаемых и отключаемых) осуществляется динамически и отслеживает изменения физической топологии без участия драйверов средств и без вмешательства пользователя.
Кабель четырехпроводный
- Красный +5В.
- Коричневый – корпус
- Синий и жёлтый - сигнал
7.2.5. Шина IEEE 1394 - Fire Wire.
Шина в основном предназначена для обмена аудио/видео информацией.
(Аудио – (0,1 – 1,5) Мб/с; видео – 20 – 250 Мб/с)
Основные особенности шины.
Инициатор разработки фирма Apple.
- более высокая пропускная способность шины: от 100 Мбит до
1Гбит (частоты 100, 200, и 400) за счёт синхронности.
- Диспетчер шины может находиться не только в РС, но и любом устройстве.
- дешевизна компонент, реализующих шину: трансивер физического уровня и мост связи с шиной
Стандарт определяет кабель шину, мост и кросс-шину.
Абонент шины может быть оконечным или промежуточным устройством (тогда, вообще говоря, он является узлом). Сеть может включать до 63 узлов.
Адресация узлов 16-разрядная: 6 разрядов номер абонента, 10 разрядов номер моста (тип кросс шины ?).
Сеть может быть как древовидной, так и линейной. Передатчик с приёмником развязаны гальванически (ёмкостью или трансформатором).Максимальное количество соединённых шин в системе –1023.
В настоящее время наиболее типовым мостом является мост РС! - 1394.
Протокол шины реализует три нижних уровня модели OSI: физический, канальный и сетевой.
Основное отличие от USB в следующем:
USB - призвана обеспечить подключение различных устройств к РС,
но не позволяет связывать РС.
Fire Wire. - главным образом призвана обеспечить обмен между устройствами в том числе и между РС с образованием сети.
В кабеле шесть проводов в общем экране: два питающих ( 8-40В, до 1.5А) и две сигнальные витые пары, каждая во отдельном экране.
Планируется переход на оптоволокно (пластмассовое – до 50м или стеклянное – до 100м).
Быстродействие интерфейсов.
Тип |
Кол. аб. |
Проп. спос.. |
Расстояние |
Реж.подкл. |
|
RS-232C |
1 |
112,5Кб/с |
1м |
Выключено |
|
RS-422 |
10 |
921,6Кб/с |
1200м |
Выключено |
|
RS-485 |
32 |
921,6Кб/с |
120м |
Выключено |
|
ЕРР/ЕСР |
1 |
2 МБ/с |
4м |
Выключено |
|
USB |
127 |
480Мб/с |
5м |
Включено |
|
Fire Wire |
63 |
1 Гб/с |
4,5м |
Включено |
Сигнальные процессоры
Сигнальные процессоры предназначены для цифровой обработки (в реальном масштабе времени) последовательности значений амплитуды или частоты сигнала через равные промежутки времени.
Примеры цифровой обработки сигнала:
- фильтрация сигнала
- свертка (смешение) двух сигналов
- вычисление значения корреляционной функции (связности) двух сигналов
- преобразование (усиление, ограничение, трансформация) сигнала
- прямое/обратное преобразование Фурье
Для эффективной реализации алгоритмов цифровой фильтрации необходима аппаратная поддержка таких операций, как умножения с накоплением, адресной арифметики, нормирования результатов арифметических операций.
При реализации операций преобразования Фурье, кроме арифметических операций, требуются битовые операции и операции инверсии адреса элемента массива.
Отличительной особенностью задач цифровой обработки является поточный характер обработки больших объемов данных в реальном масштабе времени, требующей, как высокой производительности, так и высокой интенсивности обмена с внешними устройствами. Эти требования обеспечиваются специфической архитектурой СП и специализированной системой команд.
Наиболее распространенными являются СП следующих компаний:
Моторола (56002,96002), ТИ (тмs320сх) АД(21хх,210хх).
Выбор того или иного процессора для конкретного использования - задача весьма сложная и противоречивая.
Наиболее обобщающим является следующий подход: для задач, требующих больших объемов вычислений, предпочтительнее использовать процессоры фирмы АД, а для задач, требующих обмена большими потоками данных - процессоры ТИ.
Если же главным является стоимость при малой разрядности (16/24) с фиксированной запятой и низким энергопотреблением, то преимущество выбора за Моторолой.
Микропроцессоры фирмы ТИ.
Фирмой были разработаны ряд семейств: TMS320C1х, …-8x,- (племя) с возрастанием производительности снизу-вверх.
Процессоры одного семейства совместимы снизу-вверх.
Наибольшими возможностями обладают процессоры семейства TMS320C6Х и TMS320C80
TMS320C6Х.
Это семейство включает процессоры с фиксированной и с плавающей запятой.
Особенность новой архитектуры - использования параллелизма на уровне команд за счет длинного командного слова (VLIW). Такая архитектура подразумевает наличие нескольких параллельно работающих устройств, выполняющих за один такт несколько команд. Фирмой разработана специальная архитектура VelosiTI, которая позволяет повысить эффективность за счет ослабления ограничений на порядок и способ выполнения команд.
Ядром процессора TMS320C6201 является процессор, образованный 6-ю АЛУ, 2-я умножителями и двумя 32-разрядными файлами по 16 регистров в каждом. ЦП может выполнять до 8-и команд за такт (256-разрядная шина памяти). Программный параллелизм выявляется на стадии компиляции и аппаратное разрешение конфликтов не предусмотрено.
TMS320C6701 поддерживает операции с плавающей запятой и достигает пиковой производительности до 688 Мфлопс.
TMS320C80
Процессор принципиально новой архитектуры - объединяет на одном кристалле 5 полнофункциональных процессоров.
4-е ADSP, каждый из которых реализует за один такт несколько RISC - операций. Суммарная производительность на регистровых операциях - 2 млрд простых опер/с. Пятый - главный (МР) 32-разрядный RISC процессор с плавающей точкой.(100мфлопс).
Архитектура процессора относится к классу МДМК. Процессоры могут программироваться как для решения разных задач так и одной.
Обмен данными между процессорами осуществляется через одну общую память посредством матричного коммутатора.
Пропускная способность шины - 2,4 Гбайт в потоке данных и 1,7 Гбайт в потоке команд.
На кристалле расположены также контроллер обмена со скоростью 400 Мбайт/с и два видиоконтроллера для независимого вертикального и горизонтального сканирования.
Второе название процессора Мультимедиа видео процессор характеризует его высокую производительность на задачах обработки изображений, 3-мерной графики. Кроме того процессор, благодаря хорошим коммуникационным возможностям, открывает перспективу для построения высоко производительных мультипроцессорных систем.
Сигнальные процессоры фирмы AD.
Ранние модели представлены двумя семействами: ADSP21xx - 16-разрядные с фиксированной запятой и ADSP210xx - 32 разрядные с плавающей точкой.
Основная особенность 16 - разрядных процессоров высокая степень параллелизма, которая позволяет за один такт выбирать команду и два операнда, выполнить операцию и сформировать адреса данных и команд для следующей команды. Кроме того, в этом же такте осуществляется обмен данными с внешними устройствами.
2-е семейство ориентировано на обработку данных с плавающей точкой.
В настоящее время внимание разработчиков приковано процессорам нового поколения ADSP21060 и ADSP21062 с архитектурой SHARC предусматривающей мультипроцессирование.
Двухвходовая
память
¦
¦
¦
Процессорное Порт шины
ядро ----- Шинный ---- мультипроцессорной
коммутатор системы
¦
¦
¦
Процессор в/в
и контроллер ПДП
Общее адресуемое пространство 4 Г слова (16/32/48бит).
Наиболее производительным сигнальным процессором является ADSP21160, процессорное ядро которого содержит два процессора, работающих в режиме ОКМД. Основные характеристики:
- 100Мггц
- две команды за такт
- 600 Мфлопс
Особо следует отметить удачную систему команд.
Это наиболее производительный из современных СМП.
TMS32006701 ADSP21160
Т.ч. мггц 167 100
БПФ 1 0,7
Ц. фильтр. 100 25
(команд)
Tiger SHARC ADSP-TS101S
Основные характеристики
Высоко производительный компьютер со статической (выбор операций, которые могут выполняться одновременно, определяются программистом до компиляции) суперскалярной архитектурой ОКМД с длинным командным словом VLIW. Выполняет четыре операции за такт. (24 16-разрядных операций или шесть операций с плавающей запятой.) 8-ступенчатый конвейер. АЛУ, умножитель и сдвигатель могут выполнять операции (до двух за такт) одновременно над одинаковыми или разными операндами.
Три независимые 128 – разрядные шины, каждая из которых подключена к одному из трёх ОЗУ с производительностью в 12 Гбайт/сек.
Тактовая частота – 250 Мгц
Внутреннее ОЗУ – 3х2 Мбит
Корпус 19х19 (27х27) мм, 484 (625) шариковых выводов.
Два вычислительных блока (АЛУ, умножитель, сдвигатель, регистровый файл 32х32). 32-разрядные вычисления с плавающей точкой; 8/16/32/64 – с фиксированной точкой
Два АЛУ целых чисел (формирование адресов)
Внешний порт (800 МБ/сек для внешних ЗУ), четыре коммутационных порта (250 МБ/сек), контроллер динамической памяти, программируемые признаки, два таймера и таймер для связи с другими процессорами.
Дополнительные средства мультипроцессирования.
Контроллер ПДП (14 каналов).
Простота программирования обеспечивается на уровне ассемблера и ЯВУ.
Сигнальные процессоры фирмы Моторола.
Фирмой предлагаются два семейства 16 и 24 разрядные МП с фиксированной точкой МП с плавающей точкой. Как ни странно сначала появились 24-разрядные DSP5600-01-02...
Основные особенности
- умножение с удвоенной точностью
- аппаратная поддержка языка СИ
- команда 24/48р содержит коп, операнды и поля пересылок, выполняемых одновременно.
- сочетание высокой производительности и низкой стоимости
Применение
* системы коммуникации
* цифровой звук
* робототехника
* медицинская диагностика
* военная техника
DSP561хх - семейство - 16- разрядных, более дешевые. 56156 - специально для сотовых телефонов. 566хх для тех же целей, но с пониженным потреблением: 1,8-3,3В, 0,55 - 0,85мА.
DSP56L11 и DSP56L11 - обладают преимуществами как СП, так и интеллектуального контроллера. ( Радиосвязь, радиомодемы и т.д.).
Особенность - многофункциональное использование выводов (ввод, вывод, прерывания и т. д.).
DSP9600х 32 - разрядные с плавающей точкой.
Особенности - порты для расширения памяти могут использоваться для объединения в мультисистему.
Системы интерфейсов
Проблема взаимодействия центрального процессора с внешними устройствами решается посредством системы интерфейсов (магистралей или шин). Под интерфейсом понимается совокупность унифицированных конструктивных, аппаратурных и программных средств, необходимых для взаимодействия составных частей ЦВМ. Основными характеристиками интерфейса являются:
- разрядность данных
- разрядность адреса (число адресуемых устройств)
- производительность
- средства контроля
- средства арбитража
Наиболее часто интерфейсы классифицируют по следующим признакам:
- по функциональному назначению (внутренние и внешние)
- по типу организации связи (магистральные и радиальные)
- по принципу обмена (параллельные и последовательные)
- по режиму (симплексные, полудуплексные, дуплексные,
мультиплексные)
- по способу обмена ( синхронные и асинхронные)
Сокращение времени обращения к памяти
Сокращение времени обращения к памяти достигается за счёт
- повышения быстродействия памяти
- пакетного обращения
- расслоения памяти
- введения иерархии памяти (по типам, по ёмкости, регистры, стек, несколько уровней кэш)
Быстродействие памяти на прямую зависит от ёмкости памяти: с увеличением емкости памяти её быстродействие падает.
Сокращение времени переключения процессора
Сокращение времени переключения процессора в каком то смысле связано с увеличением числа регистров, поскольку переключение означает не только переход к новой последовательности команд, но и необходимость использования другого набора переменных. Однако, количество переменных меняется незначительно, причём «старые» переменные могут частично использоваться. По этой причине имеет смысл разделить весь набор регистров на несколько перекрывающихся окон. Каждая программа получает т. о. собственный набор регистров. То есть отпадает необходимость сохранять и восстанавливать регистры.
Структура команды (форматы команд) IA-
Команды могут состоять из следующих элементов (полей):
Кол.байт |
Назначение | ||
0-1 |
Префикс | ||
1 |
Код операции | ||
0-1 |
Дополнительны код операции MODR/M | ||
0-1 |
SIB | ||
0,1,2,4 |
Смещение(Dis) | ||
0,1,2,4 |
Непосредственный(Im) операнд |
1.Префикс – (0-1) байт: уточняет или модифицирует выполнение команды. По существу это тоже дополнительный код операции. Типы префиксов:
- префикс размера операнда - переключает разрядность операнда с 16 на 32 (и наоборот); 386+
- префикс размера адреса - переключает разрядность адреса с 16 на 32 (и наоборот); 386+
- префикс замены сегмента - подключает альтернативный, вместо заданного по умолчанию (26-ES;36-SS;2E-CS;3E-DS).
- префикс блокировки локальной шины на время операции. LOCK (F0)
- префикс повторения - используется в командах обработки строк (F2,F3)
2. Код операции – 1 байт.
3. Дополнительны код операции и режим адресации MODR/M (0-1)байт.
4. SIB – масштаб – индекс - база. Его наличие определяется кодом операции. Используется для расширения возможности адресации. 386+
5. Смещение (Dis) – (0,1,2,4) байта. Целое число со знаком.
6. Непосредственный операнд (Im) - (0,1,2,4) байта.
Обязательным является только код операции.
Однобайтовый код операции (без операндов или с одним операндом).
7… 0 |
7… 1 0 |
7…4 3 210 | |||
Коп |
Коп w |
Коп w REG |
Обычно занимает один байт (первичный код операции), но может занимать и последующие байты (вторичный код операции).
Как правило "w" определяет размер операнда
w=0 - 8бит;
w=1 - 16бит (в 80386+ может быть и 32 бита, что определяется полем «Dd» в дескрипторе сегмента), а с помощью префикса размера операнда размер операнда может быть заменён на альтернативный.
Поле "REG" определяет номер регистра
REG(R/M) |
W=0 |
W = 1 | |||||
16 |
32 | ||||||
0 |
AL |
AX |
EAX | ||||
1 |
CL |
CX |
ECX | ||||
2 |
DL |
DX |
EDX | ||||
3 |
BL |
BX |
EBX | ||||
4 |
AH |
SP |
ESP | ||||
5 |
СН |
BР |
EBP | ||||
6 |
DH |
SI |
ESI | ||||
7 |
BH |
DI |
EDI |
Для непосредственной адресации.
7… 2 1 0 |
Коп s w |
В командах в командах типа сложения с непосредственным адресом.
sw = 00 - 8-битные операнды
sw = 01 - 16-и (32-х) битные с 16-и (32-х)битным непосредственным адресом.
sw = 11 - 16 (32-х) битные с 8- и битным непосредственным адресом, который расширяется знаком до 16-и (32).
Двухбайтный код операции.
2-й байт (MODR/M). 1-й байт
7 6 5 4 3 2 1 0 |
7… 1 0 |
MOD ¦ REG/КОП ¦ R/M |
Коп d w |
d = 0 - место результата определяется полем MOD и R/M в следующем байте (описателе регистра); называемом MODR/M.
d = 1 - место результата определяется полем REG описателя регистра.
Таким образом первичный код операции определяет наличие второго поля в следующем байте - описателя регистра.
Поле МOD определяет -
11 - R/M: второй операнд тоже регистр.
Все остальные значения означают, а) что второй операнд берётся из памяти со смещением или без.
01 - смещение занимает 1 байт и модифицируется.
10 - смещение занимает 2 (4)байта и модифицируется.
Поле REG может быть как номером регистра, так и вторичным (дополнительным) кодом операции. Это зависит от значения основного КОП.
Поле R/M определяет правила формирования адреса (при MOD?11).
Замечания.
1)* - по умолчанию регистр сегмента DS.
2)Незаданный адрес считается нулевым.
3)Адрес, заданный байтом (D8), расширяется знаком до слова.
4)D8, D16 - смещение, последующие байты
Байт SIB (Scale-Index-Base) – масштаб – индекс - база следует 3-м байтом - описатель адреса
SIB присутствует, если MOD?11 а R/M=100
Формат SIB
Scale |
Index |
Base |
7 6 |
5 4 3 |
2 1 0 |
Компоненты адреса, определяемые полями SIB.
Значение S/I/B |
Множитель(S) |
Индекс (I) |
База (B) |
0 |
1 |
ЕАХ |
ЕАХ |
1 |
2 |
ЕСХ |
ЕСХ |
2 |
4 |
EDX |
EDX |
3 |
8 |
ЕВХ |
ЕВХ |
4 |
- |
нет,SS=0 |
ESP |
5 |
- |
ЕВР |
D32* |
6 |
- |
ЕSI |
ESI |
7 |
- |
EDI |
EDI |
* если MOD=0,иначе ЕВР. Адресация абсолютная.
Если режим адресации предусматривает использование смещения, то оно занимает последующие байты.
Если режим адресации предусматривает использование непосредственного операнда, то он занимает последующие байты.
Форматы команд с двумя операндами.
1. Формат "регистр-регистр"
1 байт |
1-й байт |
||||
11 |
rеg1 |
reg2 |
Коп |
d |
w |
76 |
5 4 3 |
2 1 0 |
7 6 5 4 3 2 |
1 |
0 |
reg2*reg1> reg2
reg1*reg2 >reg1
w - размер операндов: "1" - слова w=0 - байты
d - регистр результата и первого операнда
2. Формат "регистр-память"
0– 2 байта |
1 байт |
1 байт |
||||
Dis |
MOD |
REG |
R/M |
Коп |
D |
W |
7 6 |
5 3 |
2 1 0 |
7 6 5 4 3 2 |
1 |
0 |
d=0 (REG)*(EA) > REG
d=1 (EA)*REG> (EA)
MOD
0 Dis - 0 байтов
1 Dis - 1 байт
2 Dis - 2 байта
3. Формат "регистр - непосредственный операнд".
1 – 2 байта |
1 байт |
1 байт |
||||
I |
3 |
Коп |
R/M |
Коп |
S |
W |
7 6 5 4 3 2 1 0 |
7 6 |
5 4 3 |
2 1 0 |
7 6 5 4 3 2 |
1 |
0 |
W=0: Im - 1байт; W=1: Im - 2байта.
S – признак расширения байта знаком до слова.
4. Формат "память - непосредственный операнд".
1 – 2 байта |
0 – 2 байта |
1 байт |
1 байт |
||||
Im |
Dis |
3 |
Код |
R/M |
Коп |
S |
W |
7 6 |
5 4 3 |
2 1 0 |
765432 |
1 |
0 |
(EA)*Im > EA
4.9. Методы формирования адреса.
Цель различных методов адресации заключается в том, чтобы с помощью ограниченного объёма информации получить доступ к большим массивам информации: данных, констант, команд. Различают следующие виды адресации:
а) прямая
б) непосредственная
г) сокращенная
д) косвенная
е) индексированная
ж) относительная
1) При прямой адресации адрес операнда записывается в адресном полекоманды. Число адресуемых ячеек памяти определяется разрядностью адресного поля (полей) команды. Способ мало экономичен, поскольку в каждом участке программы используется ограниченное число обычно рядом расположенных операндов или команд. Эффективен для одноадресных команд или для команд с операциями над регистрами.
2) При непосредственной адресации в значение операнда является одним из полей команды. Этот метод очень удобен для адресации констант.
Недостатком его - трудность хранения операндов большой длины. Частный случай - операнд располагается в памяти вслед за командой. При использовании многословных команд этот недостаток можно считать преодолимым.
3) При косвенной адресации адресное поле содержит адрес ячейки, в которой хранится адрес операнда. Частный случай регистровая косвенная адресация.
|
4) Адресация с индексированием заключается в том, что адрес указанный в команде может модифицироваться, что позволяет одну и ту же операцию использовать многократно для обработки массива чисел.
|
РИ±1 в РИ
5) При относительной или базовой адресации в команде вместо собственно адреса указывается его смещение относительно некоторого базового адреса (или индекса). При этом базовый адрес определяет местонахождение начала массива, а индекс местонахождение ячейки внутри массива. Относительная адресация имеет много общего с адресацией с индексированием, но, как правило, смещение складывается с содержимым разных регистров и, в частности с содержимым счётчика команд, что позволяет создавать относительные (перемещаемые) программы, т.е. программы, не зависящие от местоположения в памяти.
6) Страничная адресация (метод контактенации) подразумевает, что в адресном поле команды помещаются только младшие разряды адреса операнда. Остальные разряды находятся в специальном регистре. Вообще говоря, их может быть несколько; тогда в команде должен быть указатель (номер, адрес) регистра, в котором хранятся старшие разряды адреса. В этом случае память как бы разбивается на куски (страницы). Т.о. в этом регистре хранится номер страницы. Частным случаем регистра страницы являются старшие разряды регистра, в котором хранится адрес команды (счётчика команд).
Один из вариантов сокращенной адресации - метод банков, когда каждой задаче выделяется свой банк.
Обобщающим методом сокращённой адресации является метод виртуальной памяти, делающий доступной всю имеющуюся память. В этом случае в ОЗУ хранится произвольный набор страниц, который аппаратно обновляется за счёт обмена с внешней памятью. Перечень действующих страниц обычно хранится в АЗУ.
Если размер страницы - переменный и для каждой страницы указывается её размер, то такая организация называется сегментной.
г) частота использования различных видов адресации в компьютерах типа СИСК.
- регистровая - 41%
- с индексацией - 25%
- непосредственная - 16%
- прямая - 2,5%
- косвенная - 9%
- косвенная с индексацией - 3%
4.10. Режимы адресации IA-32 при обращении к памяти.
Адресация может быть 32-х или 16-разрядной.
Размер адреса по умолчанию определяется полем Dd в дескрипторе сегмента в таблице дескрипторов. Префикс замены размерности адреса позволяет изменить размер адреса на альтернативный.
При 16-разрядной адресации в качестве компонентов адреса используются младшие разряды соответствующих регистров.
16- разрядный режим.
LА(20)= ЕА +RS*16 , где
LA - линейный адрес
ЕA = (B)+(I)+D.
ЕА – эффективный (исполнительный) адрес
(B) – содержимое базового регистра: ВХ или ВР
(I) – содержимое индексного регистра: SI или DI
D – смещение (8 или 16 разрядов)
RS – регистр сегмента: CS, DS, SS, ЕS, FS или GS.
Отдельные компоненты могут отсутствовать.
32-разрядный защищённый режим
В общем случае эффективный адрес вычисляется по формуле:
ЕА = (B) + (I) * SС + D
(B)- Base: содержимое базового регистра (начало массива)- любой РОН.
(I)- Index: содержимое индексного регистра (указание элемента массива)
SC – Scale: размер элемента массива (1,2,4,8), указывается в команде.
D –Displacement: смещение (0,8,16 или 32 разряда), указывается в команде.
Масштабирование индекса возможно только при 32-битной адресации.
Различия видов адресации для 16-и и 32-х разрядных режимах.
Компонент адреса |
«16» |
«32» |
Регистр базы |
ВХ или ВР |
любой РОН |
Регистр индекса |
SI или DI |
любой, кроме ESP. |
Масштаб (шаг) |
1 |
1/2/4/8 |
Смещение |
0/8/16 бит |
0/8/32 бит |
Использование сегментных регистров при обращении к памяти.
Тип обращения (назначение адреса) |
По умолчанию |
Альтернативный. (по префиксу) |
Выборка команд |
CS |
- |
Операции со стеком |
SS |
- |
Строка-приёмник |
ES |
- |
Обмен данными (регистр базы BP, SP, EBP, ESP) |
DS |
CS, ES, SS, FS, GS |
Прочие ссылки |
SS |
CS, DS, ES, FS, GS |
Таким образом при обращении к памяти имеется семь режимов адресации.
Хотя основных режимов два: прямая и косвенная (регистровая).
1. EA = D - прямая адресация. Имеет две разновидности: прямая, относительная (смещение относительно указателя команд IP – для передач управления) и прямая абсолютная.
2. EA = (B) - косвенная базовая адресация; где (В) – содержимое любого регистра, кроме SP/ESP или БР/ЕВР.
3. EA = (B) + D – косвенная базовая со смещением.
4. EA = (I)*S – косвенная индексная масштабированная адресация, где I – SI или DI, S – множитель, определяемый SIB.
5. EA = (I)*S + D – косвенная индексная масштабированная адресация со смещением.
6. EA = (B) + (I)*S - базово индексная масштабированная адресация.
7. EA = (B) + (I)*S + D - базово индексная масштабированная адресация со смещением.
Во всех случаях линейный адрес формируется с учётом значения сегмента.
Типы данных процессоров IA-
1. Бит - задаётся адресом слова и смещением (номером бита в слове).
2. Битовое поле - группа до 32-х смежных бит.
3. Байт - 8бит.
4.Целые числа без знака: = 8/16/32/64/бит (байт/слово/двойное слово/учетверённое слово). Диапазон:0 – 2N-1
5. Целые числа со знаком N = 8/16/32/64/бит (байт/слово/двойное слово/учетверённое слово). Знак - значение самого старшего бита. Диапазон: от -2N-1 до +2N-1-1}.
6. Строки (или цепочки) из байт, слов и двойных слов (до 4ГБ).
7. Указатели:
- короткий (ближний): смещение – 32(16)
- длинный (дальний): смещение – 32(16); селектор (сегмент)-16
8. Неупакованный двоично-десятичный тип (по одной цифре в каждом байте)
9. Упакованный двоично-десятичный тип (по две цифры в байте).
10. Вещественные числа с плавающей точкой(для сопроцессора):
- одиночной точности - 32 разряда
- двойной точности - 64 разряда
- повышенной точности - 80 разрядов (64/16).
Числа состоят из трёх полей (знак мантиссы, характеристика, мантисса) и могут бать представлены в одном из трёх форматов: коротком (1+8+23=32) - dd, длинном (1+11+52=64) – dq и расширенном (1+15+64=80) - dt.
Поскольку вещественные числа являются нормализованными, то есть, старший разряд мантиссы всегда равен 1, то в коротком и длинном форматах он не присутствует, а подразумевается. То есть в мантиссе на самом деле не 23 (52) бита, а 24(53). В процессоре они всегда представляются в расширенном формате (по этой причине другими форматами лучше не пользоваться).
11. Типы данных расширений: ММХ, SSE, SSE-2.
– 8 упакованных байт
– 4 упакованных слова
– 2 упакованных двойных слова
– учетверённое слово
Замечание. Данные – байты в словах - размещаются справа налево начиная с младшего адреса (little-endian в отличие от big- endian)
Представление вещественных чисел в IA16/32.
Вещественные числа состоят из трёх полей (знак мантиссы, характеристика, мантисса) и могут быть представлены в одном из трёх форматов: коротком (1+8+23=32) - dd, длинном (1+11+52=64) – dq и расширенном (1+15+64=80) - dt.
Поскольку вещественные числа являются нормализованными, то есть, старший разряд мантиссы всегда равен 1, то в коротком и длинном форматах он не присутствует, а подразумевается. То есть в мантиссе на самом деле не 23
(52) бита, а 24(53). В процессоре они всегда представляются в расширенном формате (по этой причине другими форматами лучше не пользоваться).
Характеристика связана с порядком посредством соотношения
q=p+смещение
Т.о. характеристика есть смещённый порядок.
Имеется три формата.
s |
q |
M |
Формат |
Фиксированное смещение |
|
31 |
30÷23 |
22÷0 |
dd |
короткий |
+127 |
63 |
62÷52 |
51÷0 |
dq |
длинный |
+1023 |
79 |
78÷64 |
63÷0 |
dt |
расширенный |
+16383 |
где s - знак мантиссы, q -харктеристика M - мантисса
q = p + смещение(ФС)
Диапазон вещественных чисел
Формат |
Короткий |
Длинный |
Расширенный |
Размер |
32 |
64 |
80 |
М |
24 |
53 |
80 |
Q |
8 |
11 |
15 |
Ф.С. |
+127 |
+1023 |
+16383 |
Диапазон q |
0...255 |
...2047 |
...32767 |
Диапазон р |
-126...+127 |
-1022...+1023 |
-16382...+16383 |
Диапазон Представимых чисел |
10-38...10+38 |
10-308...10308 |
10-4932...104932 |
Все отрицательные значения порядка смещаются по числовой оси в область с нулём в старшем разряде, а положительные – в область с единицей в старшем разряде.
Специальные числа.
Денормализовнные вещественные числа. Это числа с нулевой характеристикой (с минимальным порядком равным - минус (214 - 1)) и ненулевой мантиссой.
Нули. Это числа с нулевой характеристикой (с минимальным порядком равным - минус (214 - 1)) и нулевой мантиссой. В зависимости от знака мантиссы различают положительный и отрицательный нуль..
Бесконечность имеет максимальное значение характеристики (а, значит, и порядка) и минимальную нормализованную ненулевую мантиссу (с единственной единицей в старшем разряде). В зависимости от знака мантиссы различают плюс и минус бесконечность.
Нечисла имеют максимальное значение характеристики и любую неминимальную нормализованную мантиссу.
4.5. Набор регистров.
Они подразделяются на арифметические (логические), адресные и служебные.
В группе арифметических, по крайней мере, д. б. хотя б один регистр – накопитель или аккумулятор, но их м. б. и несколько.
В группе адресных д.б. регистр модификации (индексации) адреса.
Если арифметические (логические) регистры совмещаются с адресными они носят название универсальных (general) или общих.
В качестве примера рассмотрим набор регистров ИА-32.
Процессор имеет широкий набор регистров.
РОН - общие регистры данных и адресов с разрядностью 8-16-32
31…16 |
15…8 |
7…0 |
|
AX |
|
|
AH |
AL |
|
BX |
|
|
BH |
BL |
|
CX |
|
|
CH |
CL |
|
DX |
|
|
DH |
DL |
EАX
ЕВХ
ECX
EDX
AX – умножение, деление, ввод/вывод слова
АL - умножение, деление, ввод/вывод байта
АН - умножение, деление байта
BX - регистр базы
СХ - счётчик циклов и указатель длины строковых операций
DX - умножение, деление слова, ввод/вывод с косвенной адресацией
Регистры указателей и индексов.
31 16 |
15 0 |
|
SP |
|
BP |
|
SI |
|
DI |
ESP
EBP
ESI
EDI
SP - Указатель стека (адрес вершины)
BP - Регистр базы
SI - Индекс адреса источника операнда
DI- Индекс адреса результата
Вышеперечисленные регистры адресуются явно и могут использоваться в любых арифметических и логических операциях
ССП включает указатель инструкций (ЕIP - смещение следующей исполняемой команды относительно базового адреса из сегмента кода) и регистр флагов (ЕFLAGS, расширенного до 32 разрядов).
Указатель инструкций и регистр флагов.
31...16 |
15 …0 |
|
IP |
ЕIP
IP - Адрес следующей команды, относительно базы сегмента кода (СS*16)
FLAGS
15…12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
OF |
DF |
IF |
TF |
SF |
ZF |
0 |
AF |
0 |
PF |
1 |
CF |
|
S |
c |
x |
X |
s |
s |
|
S |
|
s |
|
s |
|
|
|
|
|
|
|
|
|
|
|
|
|
CF – перенос (заем) из старшего разряда в арифметических операциях.
PF = 1 - чётное число единиц результата (в командах ввода-вывода).
AF - перенос из (заём) старшего разряда тетрады в операциях
десятичной арифметики
SF =1 - результат отрицательный
ZF = 1 - нулевой результат
TF = 1 - режим трассировки ( прерывание разрешено после выполнения каждой команды).
IF = 1 - аппаратные прерывания разрешены.
DF = 1 - декремент индексных регистров (0 – инкремент)
OF = 1 - переполнение результата арифметической операции.
В защищённом режиме регистр флагов также расширен до 32 разрядов.
EFLAGS
32…22 |
221 |
220 |
119 |
118 |
117 |
116 |
115 |
114 |
13…12 |
111 |
…10…0 |
|
IID |
VVIP |
VVIF |
AAC |
VVM |
RRF |
00 |
NNT |
IOPL |
OOF |
|
IOPL - уровень привилегий в/в
NT - флаг вложенной задачи
RF - флаг возобновления после отладочного останова
VM - включение режима виртуального 8086
AC - контроль выравнивания операнда по соответствующей границе
VIF - виртуальная маска прерываний для Р5+
VIP - виртуальный запрос прерываний Р5+
ID - флаг доступности команды идентификации СРUID
Регистры сегментов.
Они содержат 16 разрядные указатели сегментов (в реальном режиме) или селекторы дескрипторов (в защищенном режиме).
15 0
Регистр сегмента |
CS - сегмент команд
SS - сегмент стека
DS - сегмент данных
ES - сегмент данных
GS - сегмент данных
FS - сегмент данных
Формат селектора.
15 3 |
2 |
1 0 |
Индекс |
TI |
RPL |
TI определят тип таблицы дескрипторов: 0 - глобальная; 1 - локальная (GDT и LDT).
RPL - определяет уровень привилегий
Неиспользуемые регистры сегментов определяют нулевой селектор сегмента - выбирается нулевой дескриптор глобальной таблицы.
Кроме этих двух таблиц имеется таблица дескрипторов прерываний.
Ссылка на IDT происходит по командам вызова прерываний и по самим прерываниям и исключениям.
Формат дескриптора сегмента в таблице.
31 16 15 0
Базовый адрес сегмента (15…0) |
Размер сегмента (15…0) |
БАС (31…24) |
GDOU |РС(19…16) |
Байт AR |
БАС (23…16) |
G – размерность размера сегмента (байты/страницы).
Байт AR – байт управления доступом
7 |
6 5 |
4 |
321 |
0 |
Р |
D P L |
S |
Тип сегмента |
А |
DPL – уровень привилегированности сегмента
S = 1 - признак сегмента памяти;
Тип сегмента:
- данных (только чтение);
- данных (чтение и запись);
- стека (чтение и запись);
- команд (только выполнение);
- команд (чтение и выполнение).
Программно недоступные регистры дескрипторов автоматически загружаются при загрузке соответствующих селекторов в сегментные регистры.
Наконец, системные регистры: 1) 4 регистра системных адресов;
2) 4 регистров управления; 3) 8 регистров отладки;
Регистры системных адресов:
- регистр таблицы глобальных дескрипторов GDTR для задания базового адреса (32р) таблицы (в пространстве линейных адресов, то есть в той же памяти) и размера (16р.) таблицы (от 8байт до 64Кб).
- 16 разрядный селектор дескриптора LDTR, определяющий местонахождение локальной дескрипторной таблицы в глобальной (аналогичен обычному сегменту)
- регистр таблицы дескрипторов прерываний GDTR (по формату совпадает с ТГД);
- 16 разрядный селектор задачи указывает в ТГД местонахождение сегмента состояния текущей задачи, где запоминается состояние текущей задачи при переключении задач.
Эти регистры загружаются по специальным командам, тогда как к собственно дескрипторам программного доступа нет.
Программно недоступные регистры дескрипторов автоматически загружаются при загрузке соответствующих селекторов в сегментные регистры.
Регистры управления СR0 - CR4 (CR1 не используется)хранят признаки состояния процессора, общие для всех задач (ССП и ССС). CR0 - регистр системных флагов:
- разрешение защищенного режима
- запрещение кэширования
- страничного преобразования
- режим 36 разрядной адресации
- страниц размера страниц (4КБ/4МБ)
CR2 – служит для хранения линейного адреса которого не оказалось среди страниц.
CR3 - регистр физического базового адреса каталога страниц.
Регистры отладки предназначены для задания и управления контрольными точками (впервые появились в 80486).
Регистры тестирования TR6 и TR7 используются при проверке преобразования линейных адресов в физические.
Регистры дополнительных устройств обработки.
Стек из восьми 80 разрядных регистров для сопроцессора с плавающей запятой. Эти же регистры (но с ограничением до 64 разрядов) в режиме произвольной выборки используются в качестве регистров целочисленного расширения ММХ.
Восемь 128 разрядных регистров используются в ММХ расширении с плавающей запятой (ХММ или SSE).
4.7. Форматы команд.
Типы процессоров
Условно современные процессоры (компьютеры) можно подразделить на следующие типы:
– универсальные
– сигнальные
– микроконтроллеры
– мультипроцессоры (мульитикомпьютеры)
Универсальные процессоры
Наиболее часто под архитектурой универсальных процессоров (микропрцессоров) понимают совокупность следующих характеристик.
7. Форматы данных.
8. Набор регистров.
9. Форматы команд.
10. Методы адресации.
11. Набор операций.
12. Организация памяти и состав кэш (не архитектурный параметр).
В настоящее время наиболее известны следующие архитектуры универсальных микропроцессоров:
- архитектура х86 (Intel, AMD, Cyrix)
- архитектура Power PC (Motorola)
- архитектура MIPS (Silicon Graphics)
- архитектура SPARC (SAN)
- архитектура IA-64 (Merced) Itanium(Intel & Hewlett-Packard).
PowerРС.
Архитектура PowerРС является промежуточной между СИСК и РИСК.
(Она реализована в компьютерах Apple –Macintosh: 601,603,604 – 32 разрядные; 620, G3, G4 – 64-х)
1. Типы данных: числа без знака и числа со знаком 8/16/32/64. При загрузке в регистр разрядность расширяется до размера регистра. Особенность процессора – возможность нумерации байтов в слове как слева направо, так и справа налево.
2. Состав регистров:
а) 32 64- разрядных УР для целых чисел (в R0 всегда «0») и 32 64- разрядных УР для чисел с ПЗ и, соответственно, два регистра состояния.
б) регистр условий, по состоянию которого происходит условная передача управления.
в) регистр-счётчик циклов
г) регистр связи (возврата)
3. Все команды имеют одинаковую длину – 32 разряда. Первые 6 разрядов – код операции, далее, как правило, два 5-разрядных адреса РОН, далее может следовать ДКОП. В командах БП смещение 24-разрядное и имеется признаки: типа адреса (прямой или относительный) признак запоминания возврата в регистре связи. (Отсутствует команда CALL).
4. Методы адресации. В командах чтения/записи – косвенная со смещением {(BR)+D}, косвенная базово-индкесная {(BR)+(IR)}. В командах передачи управления – прямая, относительно счётчика команд, косвенная по регистру возврата или счётчику. Особенность адресации в том, что сформированный адрес может заноситься в базовый регистр.
5. Особенности набора операций;
а) при работе с памятью – только операции чтения/записи;
б) А/Л операции над регистрами – трёхадресные;
в) присутствуют команды умножения со сложением или вычитанием;
г) имеются ЛО над битами условий;
д) команды арифметических и логических операций снабжены признаком, должен ли результат операции изменять признаки результата в регистре состояния;
е) в командах перехода (с возвратом) имеется признак того, что в следующем (после команды) слове находится адрес возврата, который заносится в регистр связи.
ж) имеются команды выгрузки блока данных из кэш в ОЗУ и обновление блока в кэш команд.
Обеспечение суперскалярности в PowerPC.
Ядром процессора являются три конвейерных узла обработки: целых чисел, вещественных чисел и операций ветвления.
Особенно интересно работает узел ветвления, который выбирает одно из трёх решений: а) ветвление выполняется: признаки результата уже выработаны и указывают на необходимость ветвления; б) ветвление отвергается: признаки результата уже выработаны и указывают на отсутствие ветвления; в) выполняется алгоритм прогнозирования (признаки результата ещё не выработаны): ветвление выполняется, если переход вперёд и наоборот.
В PowerPC 620 число узлов целых чисел утроено и применены регистры временного хранения, дублирующих основные регистры пока не будут известны результаты прогноза.
Архитектура MIPS (R3000, R4000, R6000, R10000).
MIPS архитектура (Microprocessor without Interlocked Pipeline Stages)- процессор без блокировки в конвейере
Предполагалось, используя классическую RISC архитектуру (без многотактных операций типа умножения и деления) с длинным конвейером, получить процессор с высокой тактовой частотой.
История развития от R3000 (50Мгц) до R1000 (200 Мгц) и R16000 (800 Мгц).
Форматы данных.
В памяти 8/16/32/(64) целые в дополнительном коде. Операции над словом в регистре. Формат данных с плавающей точкой.
Набор регистров
– 32 РОН, регистр состояния…
Формат команд – три варианта 32-разрядных команд.
Im - тип
Jump- тип
Reg- тип
Виды адресации.
Регистровая, непосредственная и в командах чтения/записи – косвенная с смещением.
Набор операций.
- чтения/ записи
- А/Л с непосредственным адресом
- А/Л трёхадресные
- Сдвига
- Переходов
- Сопроцессора с ПТ
В R4000 появилась группа команд прерываний по условию
В MIPS реализован суперконвейер: каждый этап разбит на две фазы и перекрываются фазы. В R4000 конвейер состоит из 8-и этапов.
SPARC (Scalable Processor ARChitecture) –Sun Microsystems
Форматы данных.
32- целые числа в АЛУ, байт, полуслово, слово, двойное слово при операциях чтения-записи с памятью. Числа с плавающей точкой.
Набор регистров.
Одной из особенностей архитектуры SPARC является наличие файла из 128 регистров.
Причём одномоментно пользователю доступны восемь глобальных регистров и 24 локальных – окно в регистровом файле. При переходе к подпрограмме окно смещается по файлу таким образом, что те регистры, которые необходимо было бы сохранить оказываются вне нового окна. Расположение и размер окон можно менять программно. Отсюда и название процессора (масштабируемая процессорная архитектура). Хотя это направление не выдержало «гонки мегагерц», такой подход использован в IA-64 (Itanium).
Перекрывающиеся регистровые окна. Размер окна –24 регистра. Количество окон – от 2-х до 32-х. Регистры с 0-7 – глобальные. Т.о. программно доступно 32 регистра. Регистры 24-31- входные, 8-15 – выходные; они перекрываются в соседних окнах. 16-23 – локальные. Указатель положения окна хранится в регистре состояния, там же хранится номер ближайшего свободного окна, там же признаки результата (флаги условий). В нулевом регистре всегда – 0.
Форматы команд.
Все – 32-разрядные. Основной код операции 2 разряда. Дополнительные коды операций – трёхразрядные.
Виды адресации.
Регистровая, косвенная регистровая со смещением, непосредственная, прямая, косвенная регистровая базово- индексная.
Смещение может быть 32-разрядным (младшие два разряда – нулевые). Ряд команд – трёхадресные.
Набор операций
Загрузки/сохранения байта, полуслова, слова, двойного слова. Сложения/вычитания (с учётом переноса и без); и, или, неэквивалентность, эквивалентность – все с установкой флагов и без. Такт умножения, вызов и возврат из процедур и прерываний; изменения регистрового окна. Условное прерывание; сброс кэш команд.
Команды условного перехода имеют четырёхразрядное поле условий (смещение 24-х разрядное). В командах условного перехода имеется бит аннулирования «а». Команда, следующая за командой перехода, в которой установлен бит «а», выполняется только, если условие выполняется. В противном случае она аннулируется. Тем самым повышается производительность конвейера..
UltraSPARC-II
Буфер команд рассчитан на 12 команд. Он формирует группу из 4-х команд: две для блока целых чисел и две – для чисел с ПТ.
Блоки обработки содержат по два АЛУ и восемь регистровых окон. Блоки обработки чисел с ПТ дополнены схемой для выполнения графических команд.
Конвейер команд состоит из 9-и этапов и имеет разветвление для двух блоков обработки.
Однако, последнее достижения фирмы Sun Microsystems Niagara предполагает конкурировать с IA-64, будет потреблять в 1.5 раза меньше (70Вт).
Альтернативой суперскалярным процессорам являются процессоры с длинным командным словом (так называемые VLIW – системы), состоящем, по существу, из нескольких команд в соответствии с количеством устройств обработки.
В первом 64 разрядном процессоре фирмы Интел ( IA-64- Титаниум) применена технология вычислений с явно параллельными инструкциями EPIC (Explicitly Parallel Instruction Computing), что позволяет выполнять инструкции пачками по три (причём несколько пачек за такт). Задача распараллеливания возлагается на компилятор.
Формат команд 128 бит (по три команды по 40 бит в пакете и байт шаблона). В шаблоне содержится информация, какие команды можно выполнять параллельно.
Машинная программа формируется таким образом, что команды обеих ветвей после ветвления, выполняются до того, как будет известен результат сравнения. Интересной особенностью является наличие предикации, то есть возможность выполнять или не выполнять инструкцию в зависимости от значения бита предиката. После выполнения команды сравнения одна из ветвей будет аннулирована. Все возможные возникающие ситуации фиксируются посредством признаков в регистре одноразрядных предикатов. Такая архитектура позволяет избежать задержек, связанных с необходимостью очистки и наполнения конвейера.
Вторая особенность новой архитектуры в реализации предварительной чтения данных из памяти также с использованием аппарата предикативности. Чтение осуществляется до операции ветвления, но данные не попадают в приёмник до тех пор, пока не будет сформировано значение соответствующего предиката.
Таким образом, ветвление по условию может заменяться выполнением инструкции в зависимости от данных.
Третья новая особенность - спекулятивное выполнение инструкций:
а) выполнение одновременно двух альтернативных пересылок, не дожидаясь результата команды ветвления;
б) выполнение операций чтения до операции записи при обращении к одной ячейке памяти.
Четвёртая особенность наличие стека регистров, что обеспечивает контекстное переключение регистров при работе с процедурами и при прерываниях.
Новые возможности позволяют достигнуть производительности 6 гигафлоп на частоте 1ГГц.
Сравнение архитектур традиционных суперскалярных процессоров
и IA-64
Традиционные |
IA-64 |
Однословные РИСК-команды |
Три РИСК-команды в пакете |
Несколько параллельно работающих исполнительных устройств |
Несколько параллельно работающих исполнительных устройств |
Оптимизация потока команд в ходе выполнения |
Оптимизация потока команд на этапе компиляции |
Спекулятивное выполнение команд одной ветви |
Спекулятивное выполнение команд в обеих ветвях после перехода |
Выборка данных из памяти по мере необходимости (если их нет в кэш) |
Выборка данных из памяти до появления необходимости (если их нет в кэш) |
Cell - ячейка.
Организация: 9 процессорных ядер, одно из которых главное (PPE – Power Processing Element). На РРЕ работает ОС, управляющая объединением процессоров в сеть. Процессоры связаны высокоскоростными интерфейсами с общей оперативной памятью Rumbus.
Архитектура: ячейки бывают аппаратными и программными. Аппаратная ячейка – это процессор для выполнения программных ячеек. Программная ячейка - это либо данные, либо apulet – особая программа, описывающая какими процедурами из библиотеки следует обрабатывать данные.
Уровни взаимодействия процессора с внешними устройствами
Под системой ввода-вывода информации понимают иерархию средств взаимодействия процессора с внешними устройствами (ВУ).
интерфейс
">
интерфейс
">
Эта система может быть одно, двух, или многоуровневой.
Средства взаимодействия подразделятся следующим образом:
- методы обмена внешних устройств или их контроллеров с процессором.
- средства связи процессора с внешними устройствами или их контролерами (внутренние интерфейсы)
- средства связи контроллеров ВУ с ВУ (внешние интерфейсы).
В целом архитектура процессоров
В целом архитектура процессоров универсального типа развивается в направлении обеспечения наивысшей производительности при минимуме аппаратурных затрат. Прежде всего это достигалось оптимизацией системы команд, во-первых, с точки зрения соответствия частоты используемых команд и длительности их исполнения, а во вторых минимизации числа команд для типовой прог
раммы.
Оптимальная система команд - та, которая обеспечивает прямую пропорциональность между объёмом, затрачиваемого оборудования и частотой используемого оборудования.
Существует две противостоящие друг другу тенденции: расширенного набора команд и сокращённого (RISС –архитектуры). Первая тенденция приводит к аппаратной реализации как можно большего числа команд - до 400 (в том
числе и сложных) с различной длительностью выполнения (СISС –архитектуры).
Максимально возможный набор не ограничен (вплоть до аппаратной реализации ЯВУ).
Однако реализация сложных команд приводит к увеличению оборудования, что требует снижения быстродействия выполнения простых операций.
Эффективность ЭВМ существенно возрастает, если увеличить аппаратную поддержку наиболее часто встречающихся операций, так обращение к памяти отнимает до 50% времени, переходы - 20%, логические операции - 15%.
Во втором случае аппаратно реализуются только очень простые команды, но очень быстро (за один такт) - 30-50операций. (Минимально возможный набор, позволяющий запрограммировать алгоритм любой сложности, состоит из двух команд: вычитания и условного перехода.)
При этом более широко используются регистры (вплоть до введения трёхадресных операций).
То обстоятельство, что наиболее употребительными являются простые команды (регистр-регистр, регистр–память) и эти команды аппаратно выполняются быстрее, привело к формированию концепции процессоров с сокращённым набором команд (RISC – процессоров).
Основные особенности RISC – архитектуры.
1. Доступ к памяти только посредством операций чтения – записи.
2. В АЛУ - большое число регистров.
3. Все арифметические операции выполняются между регистрами.
4. Все команды имеют стандартную длину.
5. Все команды выполняются за один такт.
6. Ограниченное число операций.
7. Мало типов форматов команд.
8. Ограничен набор видов адресации.
Для RISC архитектур производительность в основном определяется тактовой частотой. CISC архитектура позволяет получать более компактные программы.
Однако решение проблемы, как всегда нашлось посередине: реализация набора CISC-команд осуществляется процессором с RISC-архитектурой.
Компромиссом является частично микропрограммный принцип выполнения команд.
Способы реализации управления.
1. Аппаратный принцип управления (схемный).
При таком способе организации управления каждый код операции дешифрируется. Выход дешифратора используется для формирования последовательности сигналов, необходимых для выполнения той или иной операции. Сигналы от разных кодов операции, выполняющие одинаковые функции, объединяются в сборки (по схеме «ИЛИ»). При таком подходе изменение алгоритма выполнения операции или добавление новой протекают весьма болезненно.
2. Принципы микропрограммного управления.
Микропрограммный принцип организации управления заключается в том, что каждой машинной операции ставится в соответствие подпрограмма из более простых операций.
Идея микропрограммирования была предложена в 1951г Уилксом, но всегда сдерживалась быстродействием памяти.
Микропрограммное управление - метод реализации управления цифровыми устройствами, при котором последовательность управляющих сигналов хранится в памяти. Поскольку длительность отдельных управляющих сигналов различна, то за единицу длительности принимается длительность самого короткого сигнала. Совокупность всех управляющих сигналов может быть представлена в виде матрицы, в которой число столбцов есть совокупность всех управляющих сигналов, а строки – многообразие их состояний. Если такую матрицу хранить в памяти в виде последовательности строк, то переход от одного состояния к другому может осуществляться путём смены адреса.
Содержимое такой памяти представляет микропрограмму управления состояниями цифрового устройства.
Как и в обычной программе в микропрограмме может выполняться последовательная выборка, переходы, ветвления, циклы.
Интересно, что сущность МП различными специалистами понимается по-разному.
С точки зрения программиста МП искусство кодирования управляющих воздействий с целью минимизации алгоритма инструкции (операции, команды), основного набора машинных команд.
С точки зрения схемотехника МП – средство формального описания алгоритма выполнения машинной команды.
С точки зрения системотехника МП средство, позволяющее обеспечить оптимальны набор состава машинных команд.
Фирмой Transmeta разработан процессор Crousoe.
Основная его особенность заключается в том, что набор операций реализуется посредством программного слоя, называемого Сode morphing software (CMS). Передача части функций от железа микропрограмме позволила свести к минимуму аппаратные средства. CMS позволила оптимизировать работу пользователя по сравнению с возможностями, предоставляемыми 80Х86. В целом аппаратные затраты уменьшены в 4 раза, что позволило соответственно снизить энергопотребление и стоимость, повысить частоту.CMS. мало зависит от структуры ядра и может развиваться самостоятельно, позволяя проводить модернизацию не меняя ядра и более того - эмулировать любые архитектуры. См. www.transmeta.com
Внешние интерфейсы
Они подразделяются на две категории: параллельные и последовательные.
Параллельные интерфейсы характеризуются тем, что имеется группа линий связи, по которым одновременно периодически передаётся байт или другая единица информации.
7.2.1. Параллельный порт РС.
Исторически старейшим параллельный порт РС является асинхронный радиальный порт LPT. Он был применён для подключения печатающего устройства - принтера и получил название Line PrinTer - построчный принтер (LPT). В свою очередь в принтерах был применён однонаправленный интерфейс - Сentronics.n Максимальная длина - 4м .Пропускная способность 0,6 – 1,5 Мбит/с
Однако в дальнейшем после введения стандарта IЕЕЕ 1284 (1994г) возможности порта были значительно расширены. Режимы задаются в BIOS, в котором можно задать следующие режимы работы: SPP, ЕРР и ЕСР.
SPP - режим совместимости: стандартный однонаправленный программно-управляемый режим (Сentronics).
Сигнальные линии Сentronics разделяются на три группы:
1. Линии передачи данных от контроллера к устройству
2. Линии управления от контроллера к принтеру (устройству
3. Линии состояния от устройства к контроллеру
Программное управление LPT.
Стандартный LPT поддерживается тремя байтными регистрами, адресуемыми относительно трёх базовых адресов (BASE)
LPT1: BASE=2BCh; LPT2: BASE=378h; LPT3: BASE=278h;
BASE - регистр данных - запись
BASE+1 - регистр состояния - чтение
BASE+2 - регистр управления - запись
Физически регистры расположены в контроллере
Линии интерфейса отображаются в регистрах след. образом
Регистр данных (Data Register - DR) "Data": DR(7:0) - сигналы данных
Регистр управления (Control Register - CR)
"Strobe": (СR0)- сигнал строба данных (данные действительны)
"Auto Feed": (CR1) - признак для автоматического перевода строки
"Init": (CR2)- сигнал сброса в исходное состояние (в том числе возврат каретки)
"Select In": (CR3) - признак выбора устройства (только при нали чии этого сигнала устройство реагирует на остальные)
Регистр состояния (Status Register - SR) "Selekt": SR4 - признак "устройство выбрано"
"Busy": SR7 - сигнал "устройство занято" (устанавливается после получения строба данных, сброс является сигналом контроллеру для посылки следующего байта)
"Ack": SR6 - сигнал подтверждения данных (завершение приёма байта, запрос следующего)
"Paper End": SR5 - признак отсутствия бумаги
"Error": SR3 - признак любой ошибки (в том числе отсутствие бумаги)
ЕРР - (Enhenced - улучшенный PP): двунаправленный полудуплексный байтный режим с аппаратным формированием протокола интерфейса.
ЕСР - (Extended Cahability Port)- с расширенными возможностями). Протокол предусматривает как использования режима SPP, так и полубайтного режима (с использованием для чтения линий состояния), двунаправленного байтного режима с программным формированием протокола интерфейса (ЕРР) и собственно ЕСР: с использованием стека (FIFO), ПДП и с возможностью аппаратного сжатия данных методом RLE (Ran Length Encoding).
ЕСР+ЕРР - тоже, что и ЕСР, но с возможностью установки и режима ЕРР.
Рассмотрим работу в режиме ЕРР.
Предусмотрены четыре операции
- запись данных
- чтение данных
- запись адреса
- чтение адреса
Выходные линии от контроллера к внешнему устройству.
- признак запись/чтение
- сигнал строба данных
- сигнал строба адреса
- сигнал сброса
Двунаправленная шина адреса/данных (подключена как регистру данных, так и к регистру адреса).
Входные линии от ВУ
- сигнал ожидания данных/адреса ( при наличии этого сигнала строб может воспринимается , а в отсутствии блокируется).
- сигнал запроса прерывания (состояние SR6 ).
Операция записи данных состоит из следующих шагов
1. Программная запись в порт BASE+4.
2. Аппаратно формируется сигнал записи
3. После появления сигнала ожидания формируется фронт строба данных.
4. После снятия сигнала ожидания формируется спад строба данных
Согласование режимов ЕСР.
Для определения режимов и методов управления конкретным устройством протокол предусматривает последовательность согласования режима работы контроллера со способностями ВУ.
Последовательность выполняется таким образом, что устройства, не поддерживающие стандарт, на неё не ответят и контроллер будет работать в режиме интерфейса Сentronics, а устройства не поддерживающие предложенный режим, его отвергнут.
Предполагается, что исходным (дежурным) режимом работы является режим интерфейса ЕСР. В этом режиме контроллер (хост) выставляет на линии данных "байт расширяемости", запрашивая подтверждение на перевод ВУ в требуемый режим или на приём идентификатора ВУ.
Последовательность согласования состоит из программного формирования определённых сигналов управления из состава операций Сentronics и анализа реакции на них ВУ.
Внутренние шины ПК
Внутренние шины или шины расширения служат мостом между шиной процессора и входами различных устройств, расширяющих возможности компьютера - плат расширения. Связь между процессором и ШР обеспечивается посредством чипсета - набора микросхем.
В настоящее время сложилась довольно сложная иерархия шин. Поэтому, мы рассмотрим наиболее раннюю и новейшую организацию
|
ЖД ГД Дж Мышь Принтер Монитор
7.2.1. Шина ISA.
ISA (Industry Standard Architecture). Шина - асинхронная, но длительность операций в шине кратна периоду с/с.
D(0:15) - 8/16-разрядная шина данных
A(0:23) - 24/10(16)-разрядная шина адреса памяти/порта
SBHE - признак передачи байта в старших разрядах
SMWR - строб записи в 1-ый Мб
SMRD - строб чтения в 1-ый Мб
MWR - строб записи в 16 Мб
MRD - строб чтения в 16 Мб
Refr - признак регенерации памяти
MCS16 - признак 16-разрядного обращения к памяти
BALE - строб адреса
IOWR - строб записи в порт (в ВУ)
IORD - строб чтения из порта (из ВУ)
AEN - признак адресации к портам
IOCS16 - признак 16-разрядного обращения к портам
IRQ(0:15) - запросы прерываний
DRQ(0:7) - запросы каналов ПДП
DACK(0:7) - подтверждения каналов ПДП
TC - переполнение счётчика слов ПДП
MASTER - запрос на захват шины
IOCHK - признак нарушения чётности в/в
BClock - с/с шины - 8мггц
IOCHRDY - признак удлинения цикла потактно менее 15мкс
OWS - признак исключения ожиданий.
OSC - частота которая использовалась в часах
Reset - сброс
Пространство ввода -вывода.
Из анализа структуры шины следует, что всю совокупность адресов можно быть использовать следующим образом:
а) для адресации ячеек памяти (поговорим позже) и
б) для адресации внешних регистров, абонентов - портов
Забегая вперёд, заметим, что в системе команд 80Х86 имеется всего 4-е команды ввод в регистр, вывод из регистра, ввод элемента в строку памяти, и вывод элемента из строки памяти. Обмен с использованием строковых команд получил название РIО (программный ввод-вывод). Обмен может выполняться байтам, словами и двойными словами. Дешифрируется не более 16 разрядов.
Стандартно распределёнными считаются адреса с 000 до 3FF.
При программном вводе для пересылки массива N данных выполняются следующие действия:
а) данные пересылаются из порта во внутренний регистр
б) данные из регистра записываются в память
в) индекс адреса памяти модифицируется
г) шаги а,б,в повторяются N раз
Прямой доступ в память
В режиме прямого доступа к памяти процессор должен только инициализировать КПДП: записать в него начальный адрес памяти, число слов и режим. после чего освобождается. Собственно обмен производит контроллер. который имеет 7 каналов (4-байтных и 3 пословных).
Для управления отводится три 40 8р-ных порта.
В каждом канале независимо могут происходить следующие действия:
а) ВУ выдаёт запрос ...
б) КПДП отвечает и ВУ открывает шину
в) КПДП производит обмен с памятью
г) КПДП модифицирует адрес
д) шаги а) - г) повторяются пока ВУ не прекратит выдачу запросов или пока не исчерпается счётчик слов в КПДП.
Максимальная производительность ПДП в два раза ниже, чем у РIО.
Функции канала ПДП может быть реализованы и в самом ВУ. Для это-
го после подтверждения КПДП оно должно выставить запрос главного.
В этом случае оно само формирует адрес памяти и сигналы записи-чтения.
Аппаратные прерывания
Предусмотрено 15 сигналов запроса прерываний: одно немаскируемое (ошибка чётности ввода-вывода), остальные маскируемые (0 - таймер, 1 -
клавиатура, 2 - каскадирование 3,4 - СОМ,6 - КГМД, 5,7 - КПП, 8 - часы ?, 14 - КЖМД. Приоритеты убывают в следующем порядке 0,1, 8-15, 3-7.
Прерывания обслуживают два контроллера (0-7 и 8-15), каждый контроллер обслуживается двумя байтными портами: 020,021 и 0А0,0А1.
Контроллер имеет два режима работы: инициализации и операционный.
Режим инициализации включается после сброса и заключается в посылке командных слов: одного ICW1 по адресу 020(0А0) и трёх ICW(2-4) по адресу 021(0А1). В том числе засылается вектор прерываний.
В операционном режиме контроллер воспринимает команды управления:
OCW1 и OCW(2-3)-аналогично. В числе прочих операций имеется возможность управлять маскированием запросов.
7.1.2. Интерфейс АТА (Advanced Technology Attachment).
Он возник в 80 годах в качестве IDE (Integrated Drive Electronics) и применяется до сих пор.
Для подключения устройств IDE могут применяться различные интерфейсы. но наиболее распространённым является АТА (АТ Attachment) - интерфейс РС АТ.
Интерфейс АТА появился в результате переноса контроллера жёстко-
го диска непосредственно в накопитель и т.о. появления устройств IDE (Integrated Device Electronics).
Такое решение позволило повысить быстродействие и унифицировать интерфейсы различных по физической сущности накопителей.
Первоначальный интерфейс позволял подключать два ЖД (ведущий и ведомый). Сначала скорость передачи составляла 3,3Мб/сек, но потом с использованием режимов PIO и DMA была увеличена до 8,3Мб/сек. Но емкость дисков до 512Мб.
В 1993 году появился новый интерфейс EIDE (E - enhanced) или Fast ATA-2 с расширенными возможностями ( 2 канала по 2 устройства в каждом, скорость до 16.6Мб/сек, емкость дисков до 8,4Мб).
Далее последовали Ultra DMA/33 (Ultra ATA) - 33Мб/сек, Ultra DMA/66.
Для связи с контроллером из шины ISA выбрали минимальный набор
сигналов: шина данных, шина адреса и несколько сигналов управления,
часть из которых буферизуется на специальной плате - адаптере (или
входит в чипсет), старшие разряды адреса дешифрируются.
Совокупность средств сопряжения называют хост - адаптером. Компьютер - просто хост. Непременный атрибут контроллера - буферная память, позволяющая согласовать скорости: процессор - адаптер и адаптер - накопитель.
Каждый адаптер может быть подключён к двум устройствам, но обмен
может вести только с одним (поэтому устройства, между которыми должен
вестись обмен должны подключаться к разным адаптерам).
Каждое устройство имеет набор регистров:
- регистр данных
- регистр управления
- регистр состояния
- регистр команд
- регистр ошибок
- регистр номера устройства и головки
- регистр счётчика секторов
- регистр номера сектора
- регистры старшего и младшего байта номера цилиндра
///Стандарт АТА определяет и систему команд - 43 команды.
Интерфейс АТА поддерживает следующие режимы обмена
Режим PIO |
Мб/сек |
Режим DMA |
Мб/сек |
|
0 |
3,3 |
SW DMA M0 |
2,08 |
|
1 |
5,2 |
SW DMA M1 |
4,16 |
|
2 |
8,3 |
SW DMA M2 |
8,33 |
|
3 |
11.1 |
MW DMA M0 |
4,12 |
|
4 |
16 |
SW DMA M1 |
13,3 |
|
5 |
22,2 |
Ultra DMA/33* |
33 |
Режим PIO рекомендуется для однозадачных ОС, а DMA - для многозадачных.
Не рекомендуется подключать к одному адаптеру устройства с разны-
ми режимами.
Имеется несколько электрически совместимых разновидностей использования интерфейсов АТА:
- САМ АТА - обеспечивает совместимость сигналов и команд (2 уст).
- АТА-2 - с расширенными возможностями (2 канала, 4 устройства.). Режимы обмена с хостом: РIO M3, MWDMA M1 объём диска до 8Мгб.)
- Fast ATA-2 - c повышенным быстродействием ( PIO M4, MVDMA M2).
- АТА-3 с повышенной надёжностью.
- ATAPI- поддерживает минимальный набор команд АТА, а для его
расширения использует пакет команд, посылаемых хостом в устройство. Применяется для подключения накопителей компакт-дисков, стримеров и других устройств, которым недостаточно системы команд АТА.
-ATASPI- программно управляемый (Windows)
- E-IDE - расширение для шины PCI (PIO M3, MW DMA M1).
Ограничения - длина шлейфа до 45см, и его объем (31 сигнальный
провод).
Новый интерфейс Sserial ATA обеспечивает теоретическую пропускную способность 1,5Гбит/сек (150Мбайт/сек) с перспективой до 6Гбит/сек.
Топология подключения "звезда"
Он заменит параллельный АТА и позволит передавать данные со скоростью 1,5ГБ/с (затем 3 и 6) и совместим с существующими драйверами.
Необходимость SATA.
1. Малая длина кабеля IDE-ATA (до 45см), что ограничивает создание RAID массивов.
2. Высокий уровень (5в) сигнала, что создаёт проблемы с помехозащищенностью.
3. Ограничения по скорости передачи.
4. Не позволяет замены на ходу.
Сравнение быстродействия интерфейсов АТА.
Тип |
МБ/сек |
IDE - ATAPI |
3,3 – 8,3 |
EIDE ( ATA-2) |
11,1 – 16,7 |
Ultra ATA (Ultra DMA/33) |
33,3 |
Ultra ATA/66 |
66,6 |
Ultra ATA/100 |
100 |
SATA/1500 |
150 |
SATA/3000 |
200 |
SATA/6000 |
400 |
1. Сохранён протокол (заменены только приёмо-передатчики). И более того разработаны дешёвые переходники.
2. Последовательная передача на частоте 1,5ГГц. (до 150Мб/с). У АТА 100МБ/с на частоте 25МГц (с удвоением).
3. Уровни сигнала – 0,5В.
4. Пропускная способность
7.1.3. Шина PCI.
PCI (Peripheral Component Interconnect) - шина подсоединения периферийных компонентов. Частота 20-66мггц, скорость до 528Мб/с. Шина -синхронная (по фронту с/с). Адрес и данные мультиплексированы, тип операции представлен в кодированном виде.
Шина предусматривает пакетный режим обмена: в каждой транзакции за фазой адреса следуют фазы данных. В каждой транзакции участвует ведущий (Master - Initiator) и ведомый (Slave-Target).
Сигналы шины.
CLK - тактовая частота - до 133мггц
AD(63:0) - мультиплексированная шина (данные следом за адресом); адресация с точностью двойного слова АД(1:0) - 00 линейное наращивание адреса, 01 - кратно длине строки кэш
PAR - признак чётности (общий для линий АД и команд).
PERR - ошибка чётности (формирует приёмник)
SERR - системная ошибка (формируется любым устройством на шине и вызывает немаскируемое прерывание)
FRAME - кадр; начало адрес; конец предпоследний цикл данных
DEVSEL - ответ ведомого
IRDI - готовность
TRDI - готовность ведомого
* Обмен возможен при наличии обоих сигналов, любой может делать пропуски.
REQ64 - запрос обмена двойным словом
ACK64 - подтверждение ведомым обмена двойным словом
STOP - требование останова ведомым
линии арбитража
REQ(3:0) - требования на захват шины от 4-х разъёмов (слотов)
GNT(3:0) - предоставление шины одному из разъёмов
INTR(A,B,C,D) - линии запросов прерывания; линии в слотах циклически сдвигаются и независимо коммутируются на доступные IRQn с помощью конфигурационных регистров чипсет.
C/BE(3:0) - операция (в фазе адреса); номер байта (в фазе данных):
операции
- подтверждение прерывания (на шине - вектор прерывания),
- чтение памяти,
- запись в память,
- чтение порта в/в,
- запись в порт,
- множественное чтение памяти (основной памяти без кэширования),
- признак двухсловного адреса,
- чтение строки памяти,
- запись строк в основную память и освобождение кэш,
- признак останова.
- чтение и запись конфигурации,
IDSEL - сигнала выбора устройства в операциях конфигурирования.
Авто конфигурирование устройств ( выбор адресов, запросов прерываний ориентированно на технологию Plug & Play (P&P).
Стандарт PCI определяет для каждого слота конфигурационное пространство размером до 256 байтных регистров, не приписанных ни к пространству памяти, ни к пространству ввода-вывода. Доступ к ним осуществляется по конфигурационным операциям после включения или аппаратного сброса. В этих операциях устройства выбираются по индивидуальным сигналам выбора устройства для конфигурирования, они сообщают о потребностях в ресурсах. После распределения ресурсов, выполняемых программой конфигурирования, в устройства записываются параметры конфигурирования и становится возможным выполнение остальных операций.
Пять сигналов обслуживания встроенного тестового контроля.
7.1.4. Магистральный интерфейс AGP.
Наибольшие требования к быстродействию шины является графический адаптер. Рост функциональных возможностей графических ускорителей приводит к необходимости реализации графических построений, что в свою
очередь повышает требования к быстродействию шины.
Для этой цели фирма Интел на базе шины РС1 разработала новый стандарт подключения графических адаптеров АGР - ускоренный графический порт (32 разряда, 66,66мггц). Ускорение достигнуто за счёт:
- конвейера операций с памятью
- сдвоенными передачами данных
- разделением шин адреса и данных
Особенностью конвейера является то, что ещё до выполнения предыдущего запроса принимаются последующие (и так до 256), а затем они
удовлетворяются в потоке.
За один такт передаётся не 32р-да, а 64 (по фронту и по спаду синхросигнала).
Хотя под шину адреса отведено 8 линий, по которым за 3 такта синхронизации передаётся - 4 байта адреса, байт длины запроса и байт команды (по фронту и по спаду синхросигнала).
Т. о. пропускная способность AGР до 532Мб/сек, но уже сегодня потребность при обмене акселератора с видеопамятью может достигать 1,6Гб/сек.
Проблема автоматизации вычислительных работ встала
Проблема автоматизации вычислительных работ встала перед человечеством с момента появления счета: пальцы, камешки, счеты.
Естественно усилия творцов были направлены на создание механических машин, причем развитие двигалось как в направлении создания дискретных счетно-решающих устройств, так и аналоговых.
Первую механическую машину для выполнения арифметических действий описал Леонардо да Винчи, но обнаружено это было сравнительно недавно. Была забыта и машина Вильяма Шиккарда (1623г).
Наиболее известна машина Блеза Паскаля (1645г.), в которой была решена задача переноса десятков. Было сделано несколько машин, но неизвестно использовались ли они.
В машине Г. Лейбница уже имелся валик, имеющий переменное число зубцов, разработанный итальянцем Джиованни Пеленом.
Англичанин Чарльз Бэббидж (1792-1871) известен как автор двух машин: разностной (вычисление любой функции, заданной ее первыми пятью разностями - не была реализована из-за отсутствия средств) и аналитической (вычисления по формулам). Работа была закончена его сыном, который применил ее для ряда вычислительных работ.
По своей структуре машина Бэббиджа предвосхищала первые электронные машины середины 20-го века. В ней были выделены такие функциональные устройства, как арифметические, запоминающие (на 1000 50-разрядных 10-чных чисел), устройство управления от программы на перфокартах. Имелась возможность менять ход вычислений в зависимости от полученного результата.
Первые программы для машины Бэббиджа были составлены леди Адой Лавлейс (1815-1852, дочь Джона Байрона, ученица Августа де Моргана, одного из создателей математической логики) - первой программисткой.
"Природа научных знаний такова: что малопонятно и совершенно бесполезно сегодня становятся популярной пищей для будущих поколений", - Бебидж.
В связи с отсутствием соответствующих технических средств и требованиями времени наибольшее распространение получили арифмометры.
Основу арифмометров составляет колесо петербургского инженера В.Т. Орднера (вело счетчик)(1874).
В 1885г Американец У. Берроуз создал компанию по производству
арифмометров.
Теоретически обосновал возможность реализации любого алгоритма посредством дискретных автоматов англичанин А. Тьюринг. Он предложил абстрактную схему такого автомата, который получил название машины Тьюринга. Тем самым была доказана теоретическая возможность создания универсальной ЦВМ. Им была создана машина "Колосс", которая использовалась для расшифровки немецких кодов в время 2-мировой войны.
Основные архитектурно-функциональные принципы построения ЦВМ были разработаны и опубликованы в 1946г. математиком и физиком Джоном фон Нейманом (венгр), Г. Гольдстайном и А. Бёрксом в работе "Предварительное обсуждение логического конструирования цифрового вычислительного устройства"
- программное управление работой ЦВМ (команды, программа, система команд)
- принцип условного перехода, многократное повторение участков программы (циклы)
- принцип хранимой программы, возможность преобразования команд
- двоичная система счисления
- принцип иерархичности памяти, как компромисс между быстродействием и ёмкостью
Первой машиной, построенной по принципам фон Неймана была машина "EDSAC" с памятью на ртутных линиях задержки (1949г.)
Крупными вехами развития ВТ следует считать такие разработки, как машина "Атлас" (Англия); Gamma-60 (Франция), система "Stretch", ИБМ 707 -ламповая, ИБМ 7090, ИБМ система 360 (США).
В СССР - первая машина была создана в 1947-1951 С. А. Лебедевым - МЭСМ, как макет для опробования схемных и технических решений.
Первое поколение - 50-годы: ламповые "Стрела» (СКБ-245 - Базилевский - 1953г).
БЭСМ-2 (Лебедев - ИТМ и ВТ - 1956), М-20(Сулим, ИТМ и ВТ - 1960г), М-2, М-3 (Брук, 1952 - ЭИ АН), Минск - 1 (на базе М-3 ЭИ АН), Урал 1-4 (Пенза, Рамеев).
Второе поколение - транзисторные - 60-годы: Раздан-1 (Ереван - 1961), Раздан-2, «Наири»,Минск - 22, Минск -32 (Прижиялковский, Лопато), М-220, БЭСМ-4, М-222, БЭСМ-6 (Москва, ИТМ и ВТ). Урал 11 – Урал 16 (Пенза),
Третье поколение – на интегральных схемах. Эльбрус (Бабаян), М-10 (Карцев, 20-30 млн. оп/сек. - 1973г.).
1970 - конец самостоятельности и принятие концепции ряда: ЕС 10 -10 .... 60 (архитектурные слепки ИБМ 360 –370),и семейство малых ЭВМ СМ (слепок ПДП 11)