Курс лекций по вычислительной технике

         

Архитектура процессоров Интел х(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»  -  расслоение данных

4

8
 
                                                          

                                                                      


                                                     PM      PS           SM         SS                    

Данные записываются в диски зонами (64К) последовательно по кругу. Если блок данных состоит из нескольких зон, то они считываются одновременно из всех дисков – повышается быстродействие.

                         Уровень 1.        

                                                        PM

                                              

                                                         SM

                                              

                                                        PS

                                                        SS

.1-й уровень – зона записывается одновременно на два диска. Считывание может происходить одновременно с разных зон – повышается быстродействие и  надёжность (дублирование).

Режим 0+1

         Расслоение с дублированием

4
 
8
 
4
 
8
 
1
 
5
 
5
 
1
 


RAID–контроллер
 
                   PM

                   PS

                   SM

                   SS

                           



Массив JBOD( Just Brunch  Of Disks)  формирует из 4-х дисков один большой без потери ёмкости.

Эти три режима – уровня реализованы на чипсете 915

            Уровень  2.

                                                                                                                     

Тоже, что и нулевой, но некоторые диски используются для хранения только контрольных разрядов.

   Уровень  3.

То же, что и 2, но дополнительные диски используются для хранения кода Хэмминга. При отказе одного из дисков – восстановление.

Режим 4.

4-й уровень – аналогичен первому, но дополнительный диск   хранит только зону чётности для остальных дисков.



кх
 


RAID–контроллер
 
                                               Режим 5.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        

Контрольная информация  располагается на всех дисках поочерёдно.

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 -  контрольный разряд для  разрядов

 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

1.                           Нулевой поле порядка с ненулевым полем мантиссы – ненормализованные числа: значение порядка минус 126 и неявный разряд мантиссы равен 0.



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

Двухканальная DDR SDRAM предполагает одновременное обращение процессора к двум модулям за счёт введения промежуточных синхросигналов той же частоты.

Двухканальный режим  означает параллельное обращение двум стандартным модулям памяти с использованием 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 байт.

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

Как правило, строки кэш  заполняются при чтении из основной памяти.

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



 

     При выборке новых данных из основной памяти старое содержимое строки зати­рается. При записи зачастую данные заносятся в обе памяти.

Наиболее часто применяются три способа органи­зации кэш: с прямым отображением, ассоциативная   и частично  ассоциа­тивная.

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

Тег

Номер строки

Номер байта

 Основная память.                   Кэш.

Строки

Тег









00

0

F

….











FF

0

                                                   

  0

  F

             

          

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

Недостаток такой организации проявляется, когда требуется обрабаты­вать: массив с одинаковыми строками, но разными тегами.

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


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

Частично ассоциативный кэш состоит из блоков ассоциативных кэш. При этом адрес – трёхкомпонентный: вторая компонента  определяет номер блока.

При применении кэш возникает проблема поддержания соответствия содержимого основной памяти и кэш.

Для записи данных из кэш в ОП применяется алгоритм сквозной за­писи или алгоритм обратной записи.

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

Это может приводить простою процессора. Чтобы  избежать этого применяется буферизация записей в основную память.

 

Метод обрат­ной записи предполагает, что запись в основную память производится только при замене строки  в кэш.

     Запись блока,  отсутствующего  в кэш про­изводится прямо в основную память.

     В современных РС кэш строится по двухуровневой схеме (первичный и вторичный кэш) и зачастую по гарвардской архитектуре.

 Согласование данных в кэш памятях обеих уровней с данными в ос­новной памяти обеспечивает кэш-контроллер.

 

     В Р-4 имеется 3 типа кэш

 2-й кэш                256 Кбайт (до 1024; в Celeron – 128 Kбайт)

 1-й кэш                 8 Кбайт (данные)

 Выравнивающий кэш        12тыс. микрокоманд

.

 

        

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Организация кэш во встроенном процессоре  ПЛИС АЛЬТЕРА.

Здесь применена простейшая организация прямого отображения.

Это означает, что младшие разряды адреса  являются номером строки в кэш. При этом сама строка содержит - старшие разряды адреса, собственно значение данных (или команды) и признак присутствия.



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

При выполнении операций чтения из памяти по полному адресу произ­водится чтение из той строки кэш, чей номер совпадает с младшими разря­дами адреса.

 

 

 

Адрес памяти
 
 

Старшие разряды

Младшие разряды



Адрес (тег)

Признак

Данные





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

 

5.3.4. Постоянные или энергонезависимые памяти

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

    Запоминающей средой в ПЗУ является матрица "или -  и"  на  диодах

или транзисторах, при этом информация заносится  в  матрицу  "ИЛИ",  а

матрица "И" представляет собой дешифратор на 2N выходов от "N" входов

 

И
 
                                                                           ИЛИ



">



ЯN-1

">>

 

                           

                                      .  .  .  .        



">

    

 

                                                       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

                   –8 – 7 –6 –5 –4 –3       –2       -1       0      +1     +2     +3    +4    +5    +6     +7     +8
 

  Правило перехода от положительных чисел к отрицательным:  получить обратный код и прибавить "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

В основе всех процессоров 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= ХУ

 _       _    _  _       ____

F=`ХУ = ХУ  =  Х+У                          

                  

                                                            _        _   _         _   ___

F=`ХУ+ХУ+ХУ=ХУ

        

                                                                                               

При этом, как мы видим, существует две нормальные формы представления: дизъюнктивная (дизъюнкция конъюнкций) и конъюнктивная (конъюнкция дизъюнкций).                                                              

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

2.3.  Методы физического представления двоичных кодов.

     Различают два основных способа представления кодированной информации;  параллельный код, (когда все биты предаются одновременно) и последовательный  (когда биты передаются поочерёдно).



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

     Напомним, что в ЦВТ информация подразделяется на  биты,  совокупности битов(байты, слова, и т.д.) и массивы (файлы, записи).

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

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

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

Синхросигналы 

Двоичный код                   0    0    1     1     1     0     0     0 

Потенциальный код   

 (без возврата к нулю

 Импульсный код            

 

Биполярный код      

Фазоманипулир.

 

"Манчестер 2"  - нули и единицы передаются разными фронтами

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

      

Синхронная передача



ТИ
 
 

Строб

подтверждения
 
                                                                                                                                                                                                                                                                       



Время удержания

строба данных
 


 




Время опережения

данными строба
 


Данные
 


Строб

данных
 
Асинхронная передача
 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    

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

-       частотная: 0 и 1 – разными частотами;

-       фазовая: частота постоянная, но  при переходе с 0 на 1 меняется фаза сигнала.



 

 

  .

2.4. Схемная (физическая) реализация логических функций.

Основные параметры логических элементов.

     - технология изготовления

     - задержка распространения (частота переключения)

     - мощность потребления

     - нагрузочная способность (количество себе подобных)

Наиболее просто проиллюстрировать реализацию логических функций на основе транзисторной логики.

+                                             +                                   +                                            

                                                                  xy                                  xy

                            `х                       

х                                                 х

НЕ
 
и-не
 
Время удержания

данных
 
и
 
 
                                                       

                                               `                                             

                                     

        

          +                                          +

                              x+y                                       x+y

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

S = x`y`c+ `xy`c+xy`c+xyc

Co= xy`c + x`yc +`xyc +xyc

                                                      

      

2.6. Элементы с памятью.

Элемент двоичного хранения (триггер) на элементах «или-не». . Это уже не комбинационная схема, а последовательностная (конечный автомат) – схема с памятью.

Работа логических элементов описывается и с помощью временных диаграмм.          

                                                                                                       Q

                    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 дополнительного входа С.

                           



s     T  

c

R
 
                                                                  _

                                                                  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м

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 стопа

                                                                          

                           

        

        

  0   1  2   3  4  5  6  7  8  9 10/11
 

                                              

Линии интерфейса 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Кб/с







Выключено





RS-422



10



921,6Кб/с



1200м



Выключено





RS-485



32



921,6Кб/с



120м



Выключено





ЕРР/ЕСР



1



 2 МБ/с







Выключено





USB



127



480Мб/с







Включено





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

СН

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) = 16383, диапазон характеристик от 0 до 32767, соответственно,  диапазон порядков от -16383 до +16383.

     Специальные числа.

    Денормализовнные вещественные числа. Это числа с нулевой характеристикой (с минимальным порядком равным  - минус (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)

63                         56  55                        48   47                        40   39                     32                 

БАС (31…24)

GDOU |РС(19…16)

Байт AR

БАС (23…16)

Разрывы между отдельными частями базового адреса сегмента (БАС) сложились исторически в процессе модернизации от 16 разрядных процессоров к 32 разрядным.

 

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 и анализа реакции на них  ВУ.


Внутренние шины ПК


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

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

                                                            

ISA

 

           ЖД          ГД         Дж    Мышь Принтер             Монитор

      

     

         

                                 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

Особенности SATA

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)