Жанр: Учеба
Аппаратурная реализация персональных компьютеров
Антошина И. В., Гридина Е. Г., Котов Ю. Т., Полякова Л. Е.
Аппаратурная реализация персональных компьютеров
(аналитический обзор)
Под ред. профессора Домрачева В.Г.
Министерство общего и профессионального образования
Российской Федерации
Московский Государственный Университет леса
Кафедра "Электроника и микропроцессорная техника"
А Н Т О Ш И Н А И. В., Г Р И Д И Н А Е. Г.,
К О Т О В Ю. Т., П О Л Я К О В А Л. Е.
У Ч Е Б Н О Е П О С О Б И Е
А П П А Р А Т У Р Н А Я Р Е А Л И З А Ц И Я
П Е Р С О Н А Л Ь Н Ы Х
К О М П Ь Ю Т Е Р О В
(аналитический обзор)
2000 г.
УДК 681.142
Рецензенты: доктор технических наук, профессор Горохов В.А.,
кандидат технических наук, доцент Ксенофонтов С.А.
В учебном пособии представлены эволюция развития, основные
особенности построения и функционирования 8-, 16- и 32-разрядных
микропроцессоров, используемые аппаратурные средства ввода, обработки
и вывода информации.
Учебное пособие предназначено для студентов ВУЗов специальностей
"Информатика и вычислительная техника", "Автоматизация
и управление", "Приборостроение" и др., связанных с применением
компьютеров или их комплектующих при проектировании микропроцессорных
систем.
Одобрено и рекомендовано к изданию редакционноиздательским
советом Университета.
Кафедра "Электроника и микропроцессорная техника"
По дополнительному плану внутривузовских изданий учебнометодической
литературы на 2000 г.
Введение
Бурные темпы развития цифровых методов обработки информации
влекут разработку и всеобщее внедрение в практику вычислений
и управления производством микропроцессорных средств (персональных
компьютеров и соответствующего периферийного оборудования).
Их аппаратная реализация, включающая микропроцессоры,
контроллеры, системные платы, шины, накопители, системы вывода
видео- и аудиоинформации и т.д., во многом обеспечивает заданные
уровни вычислительной мощности и функциональных возможностей
систем, использующих эти средства.
Разработкой аппаратурных средств занимаются множество фирм.
Использование при разработке различных конструктивнотехнологических
принципов порождает большое разнообразие вариантов
их построения в высокопроизводительных персональных компьютерах
(ПК). Однако отсутствие на сегодняшний день общедоступных
материалов обобщающего характера затрудняет выбор наиболее
оптимального состава аппаратурных средств, обеспечивающих получение
максимально возможной производительности ПК.
В данном обзоре, который не претендует на полное обозрение
устройств ПК, проведен анализ 8-, 16- и 32 микропроцессоров, некоторых
из существующих аппаратурных средств обработки информации,
сведения об особенностях их построения и функционирования.
1. Принципы построения, развитие и назначение
микропроцессоров
1.1. Общие принципы построения микропроцессоров
Микропроцессорная техника в настоящее время интенсивно развивается
и совершенствуется. Высокими темпами ведется разработка
и освоение в серийном производстве все новых микропроцессоров с
более высокими характеристиками и более широкими функциональными
возможностями. Крупнейшими зарубежными фирмами, как
уже указывалось ранее, освоен выпуск полностью 32 - разрядных
микропроцессоров (32-разрядная шина данных и 32-разрядная шина
адреса), обладающих высокий быстродействием (тактовая частота
свыше 600 МГц) и широкими системными возможностями. Однако
чтобы понять принцип действия и оценить возможности сложных по
структуре микропроцессоров последних разработок, целесообразно
вначале кратко ознакомиться с общими принципами построения микропроцессоров.
Сколь бы сложным ни был микропроцессор, в составе его всегда
можно выделить следующие основные блоки или устройства, такие
как операционный и управляющий блоки (рис.1).
Операционный блок (ОБ) предназначен для арифметической и
логической обработки информации. Он обычно включает в себя следующие
основные узлы: двоичный сумматор, аккумулятор, регистры
общего назначения, временные регистры, регистр признаков, сдвигатели,
двоично - десятичный преобразователь, коммутатор.
Двоичный сумматор параллельного типа имеет число разрядов,
равное числу разрядов шины данных микропроцессора. В простейших
схемах МП перенос между разрядами сумматора осуществляется
последовательно, в более сложных схемах используется параллельно
- последовательный либо параллельно - параллельный принцип
организации переносов.
Рис. 1. Общая логическая структура МП
На раннем этапе развития микропроцессорной техники, когда
степень интеграции на кристаллах была невысокой, использовался,
как правило, последовательный перенос между разрядами сумматора.
При этом обеспечивалась простейшая схемотехническая реализация,
правда, за счет некоторого снижения быстродействия. В настоящее
время используется либо параллельно - последовательная организация
переносов, когда внутри разрядов переносы формируются одновременно,
а передача переносов между группами производится последовательно,
либо параллельно - параллельная организация, когда
формирование переносов внутри групп разрядов, а также по принципу
одновременного переноса, когда перенос информации осуществляется
между группами разрядов. При этом, естественно усложняется
схемотехническая реализация, но благодаря этому достигается более
высокое быстродействие сумматора.
Аккумулятор (или регистр - накопитель) имеет число разрядов,
равное числу разрядов сумматора. В командах МП, выполнение которых
непосредственно связано с использованием аккумулятора, он
служит для хранения одного из двух операндов, над которыми производится
данная арифметическая или логическая операция, в него также
заносится результат выполненной операции. Кроме того, через
аккумулятор, как правило, производится обмен данными МП с УВВ,
если не задействованы другие способы обмена, например, способ
прямого доступа к памяти.
Схемотехнически аккумулятор реализуется на двухступенчатых
или на одноступенчатых триггерах. Во втором случае в блоке обработках
совместно с аккумулятором должны использоваться дополнительные
регистры для временного хранения данных.
Регистры общего назначения (РОН), имеющиеся в большинстве
МП, обычно относит к устройству обработки данных. Они используются
в МП либо для хранения данных, полученных в процессе вычислений,
либо в качестве адресных регистров для формирования адреса
внешнего устройства или ячейки памяти искомого операнда или команды,
либо в качестве регистров специального назначения. Чаще
всего РОН используются в качестве СОЗУ, т.е. относительно небольшой
области памяти, расположенной непосредственно на самом
кристалле МП. Обращение к СОЗУ происходит намного быстрее, чем
к обычному ОЗУ, благодаря упрощенной адресации и очень малым
задержкам передачи информации. Поэтому использование их в качестве
сверхоперативной памяти позволяет существенно повысить производительность
микропроцессора. Число разрядов РОН равно числу
разрядов ШД МП, а число самих РОН в современных микропроцессорах
достигает 8, 16 и более.
При использовании РОН в качестве регистров хранения данных
они адресуются по отдельности, то есть используются как самостоятельные
регистры. При использовании в качестве адресных регистров
они адресуются попарно, то есть их загрузка осуществляется попарно.
В 16- и 32 - разрядных однокристальных МП РОН состоят из
двух или четырех частей, в каждой из которых размещается один
байт информации. Операции над этими байтами могут осуществляться
раздельно.
В секционных МП в каждой из секций размещается своя соответствующая
часть РОН. При соединении секций эти части просто
объединяются в общий регистр.
Необходимо заметить, что РОН в ряде МП могут выполнять
функции специальных регистров - сброс, инкремент, декремент и т. д.
Временные регистры имеют разрядность, равную разрядности
ШД МП. Они предназначены для временного хранения данных при
пересылках их между различными узлами микропроцессора. Необходимость
использования регистров временного хранения данных вытекает
из того, что передача данных в синхронных системах, каковыми
является подавляющее большинство МП, осуществляется за два этапа:
первый этап - передача информации, второй этап - прием информации
(или наоборот). Узлы, участвующие в обмене данными, не могут
одновременно передавать и принимать информацию. А поскольку
подавляющее большинство регистров в МП построено на одноступенчатых
триггерах, позволяющих реализацию одного этапа передачи
данных, то возникает необходимость иметь в МП некоторые вспомогательные
регистры, которые позволяли бы реализовать второй этап
передачи данных. Эту функцию выполняют временные регистры. Количество
их в микропроцессорах невелико - порядка 4 - 6, и размещены
они в основном вблизи сумматора и аккумулятора.
Регистр признаков (регистр состояний). В МП регистр признаков
представляет собой совокупность триггеров - флажков, каждый из
которых отражает результат очередной операции, выполненной в
арифметико-логическом устройстве (АЛУ). Поскольку триггеры -
флажки отражают результат операций АЛУ, топологически регистр
признаков размещается вблизи него.
В большинстве МП принят следующий набор признаков и соответственно
триггеров - флажков:
* перенос (триггер - флажок устанавливается в состояние логической
"1" при наличии переноса из старшего разряда или при наличии
займа в старший разряд),
* отрицательный результат (флажок устанавливается в "1" при
отрицательном результате операции),
* нулевой результат (флажок устанавливается в "1" при нулевом
результате операции),
* переполнение (флажок устанавливается в "1" при переполнении,
когда результат операции над числами со знаком выходит за
пределы диапазона представляемых чисел).
В различных МП используется свой набор триггеров - флажков,
который может и чаще всего отличается от приведенного выше стандартного
набора. Например, в МП К580ВМ80 нет триггера - флажка
переполнения, но зато есть флажок переноса из 3 - го разряда в 4 - й,
который устанавливается в "1" при наличии переноса, и флажок четности,
который устанавливается в "1" при четном числе единиц в коде
числа.
Таким образом, триггеры - флажки отражают информацию о
признаках результата очередной выполненной АЛУ операции. Эти
признаки результата, в более общем случае - признаки состояния, используются
в качестве сигналов управления ходом выполнения программы.
По значениям признаков, которые периодически считываются
МП, в частности, выполняются условные переходы при ветвлениях
программы, при переходе на подпрограммы и т.д.
В более поздних разработках МП в регистр признаков помимо
триггеров - флажков результата выполненной операций включены и
некоторые другие триггеры, способные отражать состояние МП на
различных участках выполняемой программы, например, разрешение
прерываний, вид адресации, режим пользования, режим трассировки
(режим прерывания после выполнения каждой операции), состояние
стека, десятичная коррекция и др. При этом в каждом конкретном МП
используется свой определенный набор дополнительных признаков
состояния.
Регистр признаков схемотехнически реализуется как полно разрядный
регистр данных МП, т.е. имеет число разрядов, равное числу
разрядов других регистров. При этом часть триггеров регистра состояний
остается неиспользованной.
Сдвигатели имеют число разрядов, равное числу разрядов сумматора.
Они используются для выполнения циклических, арифметических
или логических сдвигов, которые могут осуществляться либо
влево (в сторону старших разрядов), либо вправо (в сторону младших
разрядов). Сдвиги в одних МП могут производиться на один разряд,
в других - на произвольное число разрядов вплоть дo полного числа
разрядов данного микропроцессора.
Сдвигатели используются, прежде всего, при выполнении операций
вычитания и деления.
Двоично - десятичный преобразователь или схема десятичной
коррекции позволяет произвести преобразование двоичного кода числа,
находящегося в аккумуляторе, в двоично - десятичный код. Он используется
в тех случаях, когда полученную информацию
необходимо вывести в десятичной системе счисления, например, на
индикацию. Вывод осуществляется по специальной команде. В этом
случае отпадает необходимость в использовании дополнительных
схем декодирования кода в формат, воспринимаемый блоком
индикации, что в ряде случаев приводит к значительному упрощению
МПС.
Коммутаторы (мультиплексоры и демультиплексоры) имеют разрядность,
равную разрядности АЛУ. Мультиплексоры позволяют передавать
в АЛУ числа (операнды) от различных источников в различной
комбинации пар операндов. Демультиплексоры позволяют направить
информацию с АЛУ на различные приемники информации.
Управляющий блок (УБ) является важнейшим функциональным
узлом блока интерфейса, обеспечивающим взаимодействие МП с ОЗУ
и УВВ. Он включает в себя: регистр команд (в ряде МП вместо него
используется регистр очереди команд), дешифратор команд, счетчик
команд, указатель стека, схему инкремента/декремента, сумматор адреса,
регистр адреса (регистр - защелка адреса), коммутаторы, узел
управления шинами, а также вспомогательные регистры.
Регистр команд используется в тех МП, где выбранные из программной
памяти команды сразу же вводятся в МП на исполнение. Он
предназначен для приема и хранения кода операции (КОП) команд на
время их выполнения МП. Разрядность регистра команд равна разрядности
ШД МП. Так в 8 - разрядных МП в регистр команд заносится
первый байт команд, а в 16 -разрядных - первое слово команды. И
в том, и в другом случае содержимое регистра команд несет в себе
информацию о коде операции и об используемом в данной операции
способе адресации. При этом другие байты или слова команды, если
они имеются и которые несут в себе адресную информацию или являются
непосредственными данными, принимаются другими регистрами
МП.
Регистр очереди команд используется в тех МП, где выбранные
из программной памяти команды помещаются в очередь команд, выполняемых
МП. Так, например, в МП К1810ВМ86 имеется очередь
команд из 6 байт. Заполнение регистра производится в интервалы
времени, когда ШД МП не занята им для обмена данными с основной
памятью (ОП) или ВУ. Выборка команд из очереди команд производится
МП по мере их выполнения. Таким образом, обеспечивается повышение
производительности МП, поскольку каждый раз после выполнения
очередной команды не требуется дополнительных затрат
времени на выборку следующей команды из ПЗУ, очередные команды
уже находятся в буферной памяти МП.
Полное время на выборку команды с обращением к ПЗУ тратится
лишь в тех случаях, когда производится передача управления при
реализации условных переходов в программе. В этих случаях производится
реинициализация, то есть сброс, очереди команд и загрузка ее
новой последовательностью команд. При этом первая же выбранная
из ПЗУ команда становится сразу доступной для выполнения.
Одной из разновидностей реализации очереди команд является
кэш - память, размещаемая непосредственно на кристалле МП и являющаяся
самой быстродействующей памятью системы. В ряде МП
кэш - память используется как буферное ЗУ не только для потока команд,
но также и для потока данных. Емкость такого буферного запоминающего
устройства достигает 256 байт и более.
Дешифратор команд является обязательным узлом
управляющего блока МП. С помощью дешифратора команд
декодируется содержимое КОП. В результате декодирования
команды МП определяет вид операции, предписанной к выполнению
МП данной командой, число байт в команде, время выполнения
команды и т. д. Эти параметры необходимы управляющему блоку
для формирования соответствующих управляющих сигналов,
обеспечивающих взаимодействие всех узлов МП и устройств МПС.
Счетчик команд (программный счетчик, указатель инструкций)
предназначен для формирования адреса следующей выбираемой из
ПЗУ команды. Он представляет собой регистр и относится к регистрам
специального назначения, т. к. в отличие от РОН выполняет только
свои определенные функции - инкремент, сброс в любое промежуточное
или исходное (нулевое) состояние и т. д.
Формирование адреса в счетчике команд осуществляется инкрементированием
(приращением) определенного числа (1, 2, 4) к его
содержимому. Инкрементирование осуществляется каждый раз, когда
формируется либо адрес кода операции следующей команды, либо
адрес числа, представляющего собой адресную часть команды, либо
адрес непосредственных данных, содержащихся в команде. Операция
инкрементирования содержимого счетчика команд производится автоматически
при пересылках адреса.
Нумерация ячеек памяти (адресация) в МПС и микроЭВМ осуществляется,
как правило, побайтно. Поэтому приращение к содержимому
счетчика команд зависит от того, выбирается ли за одно обращение
к памяти 1 байт, либо 2 байта, либо 4 байта (соответственно
в микропроцессорах с 8-, 16- или 32 - разрядной ШД). Следует, однако,
иметь в виду, что приращение зависит от формата команды: в наборах
команд МП имеются команды с форматом 1, 2, 3 байт и более.
Поэтому в 32 - разрядных МП, например, приращение может быть
равно "1", если команда однобайтная. С другой стороны, в 8 - разрядном
МП приращение всегда будет равно "1" даже в случае выборки
многобайтной команды. При этом одна команда будет выбираться за
несколько обращений к памяти.
Возможны два варианта формирования адреса очередной команды
в счетчике команд:
* последовательной выборкой - путем добавления "1", "2", "4" к
содержимому счетчика команд;
* обновлением содержимого счетчика команд - путем загрузки в
счетчик нового числа, представляющего собой новый адрес при реализации
переходов в программе.
В однокристальных 8- и 16 - разрядных МП с разрядностью шины
адреса, равной 16, разрядность счетчика команд также равна 16,
что позволяет разместить программу в любой области памяти емкостью
до 64 Кбайт. В 16 - разрядных МП с ША 20, 22 или 24 разряда
счетчик команд может быть 16 - разрядным, при этом физический
адрес команды формируется путем сложения содержимого счетчика
команд, который часто называют исполнительным адресом команды,
с содержимым некоторых дополнительных регистров.
В 32 - разрядных однокристальных МП счетчик команд имеет 32
разряда, что позволяет разместить программу в любой области адресного
пространства размером до 4 Гбайт.
Указатель стека. Стек (рис. 2) представляет собой область ОЗУ с
последовательной организацией доступа к ячейкам памяти по принципу
"первым пришел - последним ушел". В отличие от ЗУ с произвольной
выборкой, в котором при каждом обращении доступна ячейка
памяти с любым адресом, в стеке доступной является только одна
ячейка памяти в последовательном списке адресов: либо последняя
занятая - при считывании, либо первая свободная - при записи. Таким
образом, при обращениях к стеку происходит последовательный
перебор адресов. В МП при обращениях к стеку принят следующий
порядок адресации: при записи в стек - номера ячеек памяти убывают
(рис. 2,а), а при считывании - возрастают (рис. 2,б). Другими словами,
стек заполняется в направлении уменьшения адресов.
Ячейка памяти, выше которой располагается первая ячейка стека,
называется дном стека, а последняя из заполненных ячеек памяти называют
вершиной или головкой стека. Адресация к ячейкам памяти
стека осуществляется с помощью указателя стека (SP - Stake Point).
Для полного понимания на рис. 2 показано три состояния указателя
стека при записи/чтении данных.
Первое состояние указателя стека (рис. 2, а) является исходным.
Рис. 2. Выполнение операций над стеком
В этом состоянии SP содержит адрес 00000...111 дна стека (в
предположении, что стек до момента загрузки данными был пуст) -
ячейки, предшествующей той области памяти, которая отведена программистом
для стека.
Второе состояние стека (рис. 2, б) отражает ситуацию, когда в
стек из счетчика команд МП занесен первый и второй байты Х1, Х2
16 - разрядного адреса прерванной программы. Запись адреса в
ячейки стека осуществляется в четыре этапа:
* на первом этапе содержимое указателя стека уменьшается
(декрементируется) с 00000...111 до 00000...110,
* на втором этапе в ячейку памяти стека записывается первый
байт адреса Х1,
* на третьем этапе содержимое указателя стека снова декрементируется
с 00000...110 до 00000...101,
* на четвертом этапе в ячейку памяти стека записывается старший,
оставшийся, байт адреса Х2.
При последующем уменьшении содержимого указателя стека в
стек будут последовательно записаны "старое" однобайтное слово состояния
Х3 процессора из регистра признаков МП и содержимое программно
- доступных регистров (например, РОН) - Х4, ... . Полностью
записанная информация в стек определяет его последнее состояние
(рис. 2, в).
Таким образом, в верхней занятой ячейке стека - вершине стека,
будет храниться содержимое Хi регистра, занесенное в стек последним,
при этом SP будет содержать адрес верхней занятой ячейки памяти
стека.
В процессе чтения из стека данные Хi извлекается последовательно
сверху - вниз, при этом адрес восстанавливается в счетчике
команд, а данные - в регистре состояний и программно - доступных
регистрах МП. Такое извлечение осуществляется в два действия - чтение
слова, адресуемого указателем стека, и увеличение (инкрементирование)
содержимого указателя стека.
Из сказанного видно, что при обращениях к стеку достаточно
указать лишь адрес дна или головки стека.
SP имеет разрядность такую же, как и счетчик команд.
Схема инкремента/декремента является узлом, который осуществляет
операцию добавления "1", "2", "4" к содержимому счетчика
команд либо добавления/уменьшения "1", "2", "4" к содержимому
указателя стека. Этот процесс происходит при передаче информации
по цепочке: счетчик команд (указатель стека) * регистр - защелка адреса
* схема инкремента/декремента * счетчик команд (указатель
стека).
Схема инкремента/декремента при реализации различных способов
адресации может использоваться для манипуляций с содержимым
не только счетчика и указателя стека, но и других адресных
регистров.
Сумматор адреса является вспомогательным узлом и используется
для вычисления адреса при применении сложных методов адресации
(индексная, базовая) для того, чтобы не занимать этими вычислениями
основной сумматор АЛУ. Вспомогательный сумматор адреса
должен прибавлять базовый адрес к содержимому индексного регистра
(при индексной адресации) либо прибавлять смещение к содержимому
базового регистра (при базовой адресации), а так же осуществлять
аналогичные операции при использовании других сложных методов
адресации.
Адресные регистры используются для формирования и хранения
операндов или адресов пересылки результата операции. Они необходимы,
в частности, для реализации различных комбинированных
(многокомпонентных) способов адресации. В некоторых МП, например
в МП семейства К580, в качестве адресных регистров могут использоваться
РОН. Однако во многих МП адресные регистры используются
только для формирования и хранения адресов, поэтому их выделяют
в самостоятельную группу регистров специального назначения.
В 8- и 16 - разрядных МП адресные регистры имеют разрядность,
равную 16, а в 32 - разрядных МП - 32.
Регистр адреса (регистр - защелка адреса) предназначен для хранения
адреса при обращениях к памяти на время данного цикла обращения.
Само формирование адреса до передачи его в регистр - защелку
производится в других узлах МП: в счетчике команд, в указателе
стека, адресных регистрах.
Регистр - защелка адреса имеет разрядность, равную разрядности
ША МП.
Вспомогательную регистры и схемы коммутации. В узле формирования
адресов памяти и в блоке интерфейса в целом, так же как
и в устройстве обработки данных, имеется один или несколько вспомогательных
регистров - регистров обмена, через которые осуществляется
передача информации как внутри самого блока интерфейса,
так и между блоком интерфейса и другими устройствами МП. В блоке
интерфейса имеется также определенное количество коммутаторов
- мультиплексоров и демультиплексоров. Через них осуществляется
выборка тех или иных регистров, в которых хранятся компоненты
адресов, а также реализуются все пересылки внутри блока интерфейса
и все его связи с другими блоками МП и с ВУ.
Узел управления шинами осуществляет управление работой всех
шин, а именно: переключением направления передачи данных, переключением
мультиплексированных шин на передачу данных, адреса
или сигналов управления, отключением шин от системной магистрали
путем перевода выходных каскадов в третье состояние и др. Он представляет
собой буферную схему - совокупность логических ключей
(вентилей), работающих под воздействием сигналов управления МП.
Буферные схемы осуществляют выполнение следующих функций:
* обеспечивают необходимую загрузочную способность выходов
МП по активному току нагрузки Iн и по паразитной нагрузки Сн ;
* согласовывают внутренние логические уровни сигналов с
внешними стандартными уровнями.
Большинство современных МП, за исключением тех, которые
выполнены с использованием ЭСЛ - технологии, используют в качестве
стандартных уровней сигналов уровни схем ТТЛ - технологии:
U0вых " 0,4 В, U1вых * 2,4 В.
Практически все выходные буферные каскады МП имеют три
состояния: первое состояние - логический "0", второе состояние -
логическая "1", третье состояние - высокоимпедансное или
отключенное состояние каскада. Перевод выходных каскадов МП в
одно из перечисленных состояний осуществляется путем подачи на
буферные схемы соответствующих сигналов управления. Это
позволяет двунаправленную передачу данных в системе либо
отключение МП от общей магистрали МПС.
1.2. Эволюция развития микропроцессоров
Микропроцессоры
первого поколения
Использование МП началось с 1971 г.,
когда был разработан первый 4 - разрядный
микропроцессор первого поколения 4004 фирмы Intel. Он имел размеры
около 1 см в обоих направлениях и содержал 2300 транзисторов.
Его быстродействие составляло 60 тыс. оп/с, что несколько превышало
быстродействие ЭВМ того времени ENIAC, выполненной на 18
тыс. электронных лампах.
Рождению первого микропроцессора способствовала японская
фирма по производству микрокалькуляторов Busicom, которая в 1968
г. заказала фирме Intel разработать комплект из двенадцати электронных
схем для нового калькулятора. Инженерами фирмы было предложено
вместо двенадцати схем, годных только для выполнения какойто
определенной задачи, сделать одну схему общего назначения,
которая могла бы выполнять любые операции. Этой схемой был
процессор 4004, права на использование которого Intel, осознав
большую важность разработки, перекупила у Busicom.
МП 4004 был применен в космическом аппарате "Пионер-10",
который был запущен в сторону Юпитера в 1972 г. и до настоящего
времени продолжает исследования внешних регионов Солнечной системы.
С помощью этого МП был впервые сфотографирован Юпитер
крупным планом, проведено картографирование радиационных поясов
Юпитера.
В 1973 г. фирмой Intel был разработан 8-разрядный микропроцессор
8008, по сути повторивший расширенную структуру 4004 и
имевший практически такое же быстродействие, как и предыдущая
модель. К моменту его выпуска уже имелись технические возможности
разработки программных средств на языке программирования
"ассемблер", который достаточно легко адаптировался на эту разработку.
Поэтому наибольшего применения этот МП получил в игровых
автоматах, системах управления светофорами, системах учета продуктов
на предприятиях быстрого питания, автозаправочных автоматах и
т.д.
Микропроцессоры
второго поколения
МП 8008 дал толчок развитию
микропроцессорной интегральной
электроники
и послужил фирме Intel стимулом для разработки в 1974 г.
микропроцессора второго поколения - 8 - разрядного МП 8080,
имевшего быстродействие уже 640 тыс. оп/с. Этот процессор обладал
значительно расширенным набором команд и был совместим "снизу -
вверх" на уровне команд с МП 8008, то есть имел возможность вести
обработку всех его команд. Одним из важных преимуществ процессора
было использование всего шести микросхем для создания компьютера,
в то время как на базе МП 8008 требовалось 20 микросхем. Такое
положение привело к резкому снижению цен на компьютеры,
стоимость которых оценивалась на то время в несколько тысяч долларов.
Практически одновременно с этим были начаты поставки
средств разработки программного обеспечения (ПО), позволявших
создавать связываемые перемещаемые модули объектного кода в добавление
к языку программирования ассемблеру, который до этого
являлся единственным инструментом программирования МП.
В это же время разработке и производству МП начали уделять
большое внимание и другие фирмы. Так к 1976 г. появилось
большое количество 8 - разрядных МП фирм Zilog, MOS
Technology, Motorola и пр. Огромное количество выпущенных МП
привело к резкому снижению их цен, что, в свою очередь, привело к
увеличению использования МП в потребительских товарах, в том
числе в персональных компьютерах.
Построение цифровых управляющих систем потребовало разработки
однокристальных МП, содержащих небольшие запоминающие
устройства с произвольной выборкой (ЗУПВ) и постоянных запоминающих
устройств (ПЗУ), предназначенных для хранения программ.
К их числу можно отнести МП 8048 (Intel), 6801 (Motorola), Z8
(Zilog) и сигнальный процессор TMS 9940 (Texas Instruments).
Микропроцессоры
третьего поколения
Третье поколение МП, начатое с 1978 г.,
легло в основу современных персональных
компьютеров. Его представителем был микропроцессор 8086 с шириной
шины данных 16 бит, давший развитие классу микропроцессоров
80*86. Слишком дорогая и сложная технология производства этого
процессора на тот период вынудила фирму Intel некоторое время выпускать
несколько упрощенный вариант микропроцессора - МП 8088,
имевший ширину шины данных 8 бит. Именно этот процессор фирма
IBM выбрала в качестве центрального процессора для своего первого
персонального компьютера модели PC/XT.
С каждым годом постоянно рос интерес к разработке микропроцессоров
у фирм, занимающихся производством микроэлектроники.
Одновременно с Intel к производству 16 - разрядных МП приступили
такие фирмы, как N. Semiconduсtor, GIM, Texas Instruments и многие
другие.
Микропроцессоры
четвертого
поколения
Четвертое поколение МП началось с
выпуска в 1982 г. 16 - разрядного МП
80286 фирмой Intel, имевшего в своем корпусе 134 тыс. транзисторов.
Он имел встроенное управление памятью и систему команд, совместимую
"снизу - вверх" с системой команд МП 8086. Это дало возможность
модернизации существующего парка СВТ и выпуска персональных
компьютеров типа РС/АТ с тактовой частотой до 20 МГц,
парк которых насчитывал к тому времени уже миллионы единиц.
Основными производителями компьютеров на базе этого процессора
стали американские фирмы IBM и Compaq Portable.
Микропроцессоры
пятого и шестого
поколений
Совершенствование технологии
изготовления МП позволило довести
размеры проводника на кристалле
до
нескольких микрон, что привело к дальнейшему повышению технических
характеристик разрабатываемых МП, и, прежде всего, их разрядности.
Первые 32 - разрядные МП были разработаны в 1983 - 84
гг. фирмами N. Semiconductor, Hewlett-Packard и AT&T. В 1985 - 89
гг. рынок МП пополнился 32 - разрядными разработками МП фирм
Motorola (МС68020), Inmos (Т414) и, наконец, Intel (80386). Наибольших
успехов в 80-е в развитии микроэлектронной технологии годы
добилась фирма Intel, что позволило ей получить признание во
всем мире в разработке относительно дешевых и производительных
32-разрядных микропроцессоров.
В 1989 г. появился МП шестого поколения - 80486 (Intel), содержащий
встроенный математический сопроцессор, резко повышающий
производительность при обработке чисел с плавающей точкой. МП
80486 к 1995 г. получил наибольшее применение в персональных
компьютерах как самый удачный на то время в конструктивнотехнологическом
исполнении процессор. Его производство
составляло около 25 млн. экземпляров в год.
С прекращением выпуска МП 80486 Intel начала выпуск новых
наиболее производительных процессоров серии Pentium.
1.3. Особенности построения и функционирования
32- и 64-разрядные микропроцессоров
Выпуск микропроцессорных комплектов больших интегральных
схем (МПК БИС) с каждым годом неуклонно возрастает. Для удовлетворения
запросов потребителей в настоящее время осуществляется
производство микропроцессоров и периферийного оборудования,
обеспечивающего их работу, разрядностью от 8 до 64 бит. На рис. 3
приведены зависимости, характеризующие объемы производства
микропроцессоров и микроконтроллеров различной разрядности с
1994 г. по 2000 г. включительно.
Рис. 3. Объемы производства МП
и микроконтроллеров
Из рис. 3 очевидно, что рост 4-разрядных МП и микроконтроллеров
с 1997 г. прекратился. Выпуск 8 - разрядных устройств, по крайней
мере, до 2000 г., будет продолжать расти. Основу этого роста составляют
микроконтроллеры, применяемые при разработке различных
устройств промышленного (станкостроение, приборостроение,
машиностроение, химическая промышленность и т.д.) и бытового назначения.
Рост высокоразрядных МП (выше 16 разрядов) менее заметен
на фоне низкоразрядных процессоров, но он обладает устойчивостью
на ближайшие 10-15 лет.
Наибольшее внимание при разработке новых МП уделяется повышению
их разрядности. В настоящее время наибольшее общетехническое
применение нашли 32- и 64-разрядные МП американских
фирм Intel, Cyrix, AMD, Apple, Motorola, SUN Microsystems и др.
32-разрядные МП фирмы INTEL 80386 и 80486 были наиболее
популярными микропроцессорами до появления Pentium. В этих МП
реализованы многие логические свойства, которые еще недавно считались
принадлежностью крупных ЭВМ (защита памяти, кэш - память,
сегментированная виртуальная память и т.д.).
Фирмой Intel было разработано и выпущено несколько модификаций
МП 80386 и 80486 (табл. 1).
Таблица 1
Микропроцессор
Год
выпус
ка
Разряд
ность
ШД
Разрядн
ость
ША
Тактовая
частота ?,
МГц
Объем памяти
ОЗУ,
Мбайт
Объем
кэш -
памяти,
Кбайт
80386 SX
25,33,40
-
80386 DX
25,33,40
-
80386 SL
25,33,40
Посмотри в окно!
Чтобы сохранить великий дар природы — зрение,
врачи рекомендуют читать непрерывно не более 45–50 минут,
а потом делать перерыв для ослабления мышц глаза.
В перерывах между чтением полезны
гимнастические упражнения: переключение зрения с ближней точки на более дальнюю.
-
80486 DX
33,40,50
80486 SX
80486 DX2
80486 DX4
? - тактовые частоты различных изготовителей могут несколько
отличаться от табличных значений.
Каждая из моделей МП 80386 и 80486, представленных в
таблице, имеет незначительные конструктивно - технологические отличительные
особенности, не влияющие на их функциональные особенности.
Поэтому в дальнейшем будут рассмотрены обобщенные
модели МП 80386 и 80486.
Микропроцессоры 80386
Микропроцессоры Intel 80386 -
крупный шаг в развитии технологии и архитектуры микропроцессорных
средств. Они были изготовлены по КМОП - технологии с проектной
нормой на ширину проводников 1,5 мкм, позволившей на кристалле
площадью примерно 100 мм2 разместить около 275 000 транзисторов.
При тактовой частоте 33 Мгц МП выполняют до 12 млн.
оп/с. Кристалл находится в керамическом корпусе со 132 выводами.
К основным особенностям архитектуры МП 80386 следует отнести:
- наличие средств, обеспечивающих реализацию мультипрограммного
(многозадачного) и многопользовательского режимов работы
МП и режима "системы виртуальных машин", при котором
пользовательские программы могут выполняться параллельно во времени
под управлением разных операционных систем;
- непосредственный доступ к физическому адресному пространству
в 4 Гбайт и виртуальной памяти емкостью 64 Тбайт (примерно 70
триллионов байт) (для 80386 DX);
- сегментно - страничная организация памяти;
- высокая производительность, в 2 - 3 раза превосходящая производительность
МП 80286 и достигаемая за счет большей тактовой
частоты, более быстрого доступа к памяти благодаря использованию
размещенных на кристалле МП кэш - памяти, блока управления и
защиты памяти (в том числе блока быстрого преобразования адресов);
- система команд МП является расширением системы команд МП
8086, обеспечивается программная совместимость с МП 8086 и 80286
(на уровне двоичных кодов программ);
- обработка данных различных типов: целые числа, числа с плавающей
точкой, десятичные числа, байты, строки символов, цепочки
бит до 4 Гбит;
- использование в командах 32- , 16- , 8 - разрядных операндов;
- наличие встроенных средств самотестирования, запускаемых
сигналом сброса и проверяющих примерно 75 % всех транзисторов,
расположенных на кристалле.
Упрощенная структура МП 80386 приведена на рис. 4.
Рис. 4. Структура МП 80386
Блок данных содержит восемь 32 - разрядных общих регистров.
В целях создания условий для выполнения операций с 16- и 8 - разрядными
словами (в том числе для совместимости с МП 8086 и
80286) в каждом общем регистре адресуемо младшее полуслово, а в
каждом из четырех 16 - разрядных регистров адресуемо в отдельности
старший и младшие байты. Для повышения быстродействия МП в
блок данных введены 4 - разрядный сдвиговый регистр ("сдвигатель")
и аппаратурные средства ускоренного выполнения операций
умножения и деления.
Вектор состояния процессора образуют содержимые 32 - разрядных
счетчика команд (смещение адреса команды относительно базового
адреса) и регистра признаков (флажков). В регистре признаков
формируются три группы признаков:
? признаки результата (знака результата, нуля, переноса, переполнения
и др.);
? признаки управления (направление и др.);
? системные признаки (разрешение прерывания, режим виртуальной
памяти, порог прерывания и др.).
Микропроцессор через шинный интерфейс имеет доступ к внешним
32 - разрядной шине адреса, 32 - разрядной двунаправленной
шине данных, линиям управления шинами, линиями: захват (Hold),
подтверждение захвата (Hold Acknowledge) запроса сопроцессора
(PERCC).
Устройство управления (УУ), содержащее управляющую память
(УП) микропрограмм, с учетом внешних сигналов (занято - Busy,
ошибка - Error, прерывание - INTR, NMI, сброс - Reset, двойная
тактовая частота - DFG) вырабатывает управляющие сигналы,
инициирующие соответствующие микрооперации. В МП выполняется
конвейерная обработка команд на восьми позициях, образованных восемью
его основными блоками.
Используемая пользователем память может быть разделена на
несколько сегментов, каждый размером до 4 Гбайт. Сегменты
состоят из страниц размером 4 Кбайта.
При работе с сегментно-страничной памятью используются расположенные
на кристалле МП сегментные регистры и быстродействующие
(скрытые от пользователя) кэш - памяти, хранящие дескрипторы
(описатели) сегментов и страниц. Так, дескриптор сегмента определяет
базовый адрес сегмента, адресные границы, условия защиты
и другие данные (рис. 5, а).
МП содержит следующие сегментные регистры: CS - сегмент
командных кодов; DS - сегмент данных; SS - сегмент стека; ES, FS,
GS - дополнительные сегменты данных. Сегментные регистры хранят
"селекторы", адресующие соответствующие дескрипторы в кэш -
памяти таблицы дескрипторов сегментов. Сами сегментные регистры
в командах явно не адресуются (подразумеваемая адресация).
Рис. 5. Организация сегментирования
Формирование "линейного адреса" в сегментированной памяти
поясняется рис. 5,б. Адресный указатель, образованный смещением в
команде и содержащимся в сегментном регистре селектором, определяющим
соответствующий дескриптор сегмента, преобразуется в 32 -
разрядный линейный адрес.
Микропроцессор 80386 в состоянии одновременно выполнять
программы, предназначенные для МП 8086, 80286 и 80386. МП 80386
возможны два режима работы:
? реальный режим,
? защищенный режим виртуальной памяти.
В реальном режиме МП эмулирует с повышенной скоростью МП
8086/8088, работая в однопрограммном режиме с адресным пространством,
ограниченным 1 Мбайт.
В защищенном режиме МП может использовать все свое
адpecнoe пространство и реализовывать "систему виртуальных 80 ?
86 - машин" с распределением памяти согласно рис. 4.
Рис. 4. Режим виртуальных процессоров 8086
Каждый пользователь виртуального МП 8086 получает для своей
задачи 1 Мбайт в расширенной памяти, при этом задачи защищены
друг от друга средствами защиты памяти, реализуемыми с помощью
аппарата дескрипторов сегментов и страниц.
Однако возникают некоторые затруднения при попытках одновременного
использования несколькими программами МП 8086
периферийных устройств, например, экрана дисплея. Вопрос может
решаться путем применения специальной программы "виртуальный
монитор", перехватывающей обращения к операциям ввода - вывода
программ виртуальных МП 8086 и организующей "виртуальный экран".
Микропроцессоры 80486
32- разрядный однокристальный
микропроцессор 80486 (i486) обеспечивает более высокую
скорость (до 40 млн. оп/с) выполнения прикладных программ, написанных
для операционных систем DOS, OS/2, Windows и UNIX, чем
все предыдущие модели МП 80?86. Он программно совместим с микропроцессорами
80286, 80386 DX & SX и содержит около 1,2 млн.
транзисторов (вместе с кэш - памятью, расположенной на одном с
МП кристалле).
Для увеличения производительности в процессор введены математический
сопроцессор (кроме моделей SX), дополнительная сверхбыстрая
кэш-память для хранения часто используемой информации
объемом 8 Кбайт, конвейерная обработка и т.д. Часто используемые
операции выполняются за один цикл, что сравнимо со скоростью
выполнения RISC - команд. Кэш-память соединена с шиной пакетного
обмена данными и позволяет проводить обмен информацией со
скоростью 80/106 Мбайт/сек при частоте 25/33 МГц.
Новые возможности, используемые в МП, расширяют многозадачность
систем и увеличивают скорость работы с семафорами в
памяти. Встроенная система тестирования проверяет микросхемную
логику, кэш - память и микросхемное постраничное
преобразование адресов памяти. Возможности отладки включают
в себя установку ловушек контрольных точек в выполняемом коде
и при доступе к данным.
Возможности микропроцессора 80486 включают в себя:
? полную программную совместимость с МП 80386 DX,
80386 SX, встроенным 80376(TM) процессором, процессорами
80286, 8086 и 8088;
? реализацию блоком выполнения команд часто встречающихся
операций за один цикл;
? 32 - разрядный процессор для выполнения арифметических и
логических операций;
? встроенный модуль обработки арифметических операций с
плавающей точкой для поддержки 32, 64, и 80 -разрядных форматов;
? внутреннюю кэш - память, которая обеспечивает быстрый доступ
к часто используемым данным и операциям;
? сигналы управления шиной для поддержки непротиворечивости
кэш-памяти в многозадачных системах;
? сегментацию, осуществляющую управление памятью для создания
независимых, защищенных адресных пространств;
? постраничное разбиение, позволяющее управление памятью
таким образом, что обеспечивается доступ к структурам данных, превышающим
доступное пространство памяти за счет хранения данных
частично в памяти, частично на диске;
? перезапускаемые операторы, которые позволяют перезапуск
программы после исключения (необходимы для поддержки постраничного
доступа к виртуальной памяти);
? конвейерное выполнение команд, перекрывающееся по времени
с интерпретацией других команд;
? регистры отладки для аппаратной поддержки контрольных точек
в командах и данных;
Микропроцессор 80486 имеет три режима выполнения программ:
? защищенный режим, где используется естественное
множество 32 - разрядных команд процессора. В данном режиме
доступны все команды и все его архитектурные возможности.
? режим реальной (прямой) адресации (называемый также
"реальным режимом"), в котором осуществляется эмуляция программной
среды процессора 8086, с некоторыми дополнительными
возможностями (такими, например, как возможность прервать
данный режим). При перезагрузке процессор устанавливается
именно в этот режим.
? виртуальный режим 8086, который является другой формой
эмуляции режима 8086. В отличие от режима прямой адресации,
виртуальный режим 8086 совместим с защитой и управлением
памятью. Процессор может установить виртуальный режим 8086
из защищенного режима, чтобы выполнить программу, написанную
для процессора 8086, а затем, выйдя из виртуального режима 8086
и перейдя в защищенный режим продолжить выполнение программы,
которая использует множество 32 - разрядных команд.
Программно - доступные регистры МП. Процессор 80486 содержит
блок регистров из 16 программно - доступных регистров, которые
могут использоваться программистами. В него входят:
- 32 - разрядные регистры общего назначения,
- сегментные регистры, содержащие селекторы сегментов, соответствующих
различным формам доступа к памяти.
- системные регистры.
1. Регистры общего назначения - это 32 - битные регистры EAX,
EBX, ECX, EDX, EBP, ESP, ESI и EDI. Данные регистры используются
для хранения операндов логических и арифметических команд.
Кроме того, они могут использоваться для хранения операндов
при вычислении адресов (кроме регистра ESP, который не
может быть использован как индексный операнд).
Все РОН могут использоваться для адресных вычислений и
для получения результатов большинства арифметических и логических
операций. Однако некоторые команды используют фиксированные
регистры для хранения операндов.
2. Сегментные регистры CS, DS, SS, ES, FS и GS содержат 16 -
разрядные селекторы сегментов, которые указывают на таблицу
распределения памяти. Данная таблица содержит базовые адреса
сегментов и другую информацию, регламентирующую доступ к памяти.
В каждый момент времени в памяти непосредственно доступны
не более шести сегментов. Их селекторы содержатся в сегментных
регистрах. Каждый регистр указывает на конкретный сегмент, используемый
программой. Остальные сегменты могут быть использованы
после загрузки соответствующих селекторов в сегментные регистры.
Селектор сегмента кода, содержащего последовательность исполняемых
команд, содержится в регистре CS. Процессор 80486
выбирает команды из этого сегмента, используя содержимое указателя
команд ЕIP как относительный адрес внутри сегмента. Содержимое
регистра CS изменяется в результате выполнения межсегментных
команд управления потоком, прерываний и исключений.
Вызовы подпрограмм, записи параметров и активизация процедур
обычно требует стековой области памяти. Все операции со
стеком используют регистр SS. В отличие от регистра CS, регистр
SS может быть загружен явно с помощью команды программы.
Остальные четыре регистра - DS, ES, FS и CS, являются регистрами
сегментов данных, каждый из которых используется текущей
исполняемой программой. Наличие четырех раздельных областей
данных имеет целью повысить эффективность программ и безопасность
доступа при обращении к различным типам структур данных,
например, при разнесении по разным сегментам собственных
данных программного модуля, данных, полученных, из модуля более
высокого уровня, при динамически создаваемых структур данных
и данных, разделяемых текущим модулем с другими модулями.
Механизм сегментации позволяет ограничить разрушения неправильно
работающей вследствие ошибки программы только теми
сегментами, которые выделены текущей программе. Операнды,
расположенные внутри сегмента данных адресуются указанием их
смещения непосредственно внутри команды или в РОН.
В некоторых случаях (при сложной структуре данных) может
возникнуть необходимость иметь доступ к более чем к четырем сегментам
данных. Доступ к дополнительным сегментам
осуществляется путем перезагрузки регистров DS, ES, FS и GS
прикладной программой в процессе выполнения.
3. Системные регистры предназначены для использования системными
программистами. Системные регистры управляют средой,
в которой происходит выполнение прикладных программ. В
большинстве систем доступ к этим регистрам из прикладных программ
запрещен (хотя возможно построение и таких систем, в которых
все программы работают на наиболее привилегированном
уровне, что означает возможность доступа к системным регистрам
и их модификацию из прикладных программ).
Они делятся на следующие категории:
? регистр флагов EFLAGS,
? регистры управления памятью,
? управляющие регистры,
? отладочные регистры,
? тестовые регистры.
Регистр флагов EFLAGS управляет вводом / выводом, маскируемыми
прерываниями, отладкой, переключением между задачами,
а также виртуальным режимом 8086. Прикладными программами
эти флаги должны игнорироваться, а попытки модификации их состояния
из прикладных программ недопустимы. В большинстве систем
попытка изменения системного флага из прикладной программы
приводит к возникновению исключения (особой ситуации).
Регистр флагов включает:
? флаг AC, обеспечивающий режим контроля выравнивания в
виртуальной памяти (виртуальный режим 8086),
? флаг RF временно отменяет действие отладочных исключений,
поэтому после такого исключения может быть выполнена другая
команда и это не приведет к немедленному генерированию другого
отладочного исключения. При входе в отладчик этот флаг
обеспечивает его нормальное функционирование; в противном
случае отладчик выполнял бы рекурсивные вызовы самого себя до
тех пор, пока не произошло бы переполнение стека.
? флаг NT - флаг вложенности задачи. Микропроцессор использует
флаг вложенности задачи для управления последовательностью
выполнения прерванных и вызванных задач.
? флаг IOPL - уровень привилегий ввода/вывода. Уровень привилегированности
ввода/вывода используется механизмом защиты
для управления доступом к адресному пространству ввода/вывода.
? флаг IF разрешения прерываний переводит процессор в режим,
в котором он отвечает на запросы маскируемых прерываний
(прерывания INTR). Очистка флага IF отменяет эти прерывания.
Флаг IF не оказывает воздействия на особые ситуации или немаскируемые
(NMI) прерывания.
? флаг TF ловушки переводит процессор в режим пошаговой
работы для отладки программ. В этом режиме процессор после выполнения
каждой команды генерирует отладочное исключение, что
позволяет наблюдать за тем, как выполняется каждая команда программы.
Пошаговое выполнение представляет собой одно из отладочных
средств процессора 80486.
Регистры управления памятью микропроцессора 40486 задают
расположение структур данных, которые управляют организацией
сегментированной памяти. К ним относятся:
? регистр таблицы глобальных дескрипторов GDTR, который
содержит 32 - битовый базовый адрес и 16 -битовую границу сегмента
для таблицы глобальных дескрипторов.
? регистр таблицы локальных дескрипторов LDTR, который содержит
32 - битовый базовый адрес, 16 - битовую границу сегмента
и 16 - битовый селектор сегмента для таблицы локальных дескрипторов.
? регистр таблицы дескриптора прерываний IDTR, который содержит
32 - разрядный базовый адрес и 16 -разрядную границу сегмента
для таблицы дескрипторов прерываний. Когда происходит
прерывание, вектор прерывания используется в качестве индекса для
получения из данной таблицы дескриптора шлюза. Последний
сдержит указатель, используемый для запуска обработчика прерываний.
? регистр задачи TR, который содержит 32 - разрядный базовый
адрес, 16 - разрядную границу сегмента, атрибуты дескриптора
и 16 - разрядный селектор сегмента для текущей выполняемой задачи.
Он содержит ссылку на дескриптор сегмента состояния задачи,
находящийся в таблице глобального дескриптора.
Управляющие регистры CR0, CR1, CR2 и CR3. В большинстве
систем загрузка управляющих регистров из прикладных программ
невозможна (хотя в незащищенных системах такая загрузка разрешается).
Прикладные программы имеют возможность считывать
эти регистры для определения наличия математического сопроцессора.
Регистр CR0 содержит системные управляющие флаги, которые
управляют режимами или указывают на состояние процессора в
целом, а не относительно выполнения конкретных задач. Программа
не должна пытаться изменить состояние каких - либо битов
в зарезервированных позициях. Эти зарезервированные биты
всегда должны устанавливаться в то состояние, которое они имели
ранее при считывании.
Регистр CR1 резервируется для выполнения отдельных
программ, имеющих сложную структуру данных.
Регистр CR2 содержит 32 - разрядный линейный адрес, вызвавший
это исключение.
Регистр CR3 является базовым регистром страничного каталога.
Отладочные регистры дают микропроцессору 80486 расширенные
возможности отладки, включая контрольные точки данных и
средство устанавливать контрольные точки команд без модификации
кодовых сегментов (что может быть полезным при отладке ПЗУ -
резидентного программного обеспечения). Доступ к этим
регистрам имеют только программы с наивысшим уровнем
привилегированности.
Тестовые регистры не являются формальной частью архитектуры
процессора. Они представляют собой зависящее от конкретной
реализации средство, предназначенное для тестирования ассоциативного
буфера трансляции и кэш-памяти.
Операции со стеком поддерживаются тремя регистрами микропроцессора:
? регистр сегмента стека SS. Стек размещается в памяти. Количество
стеков в системе ограничивается только максимальным
числом сегментов. Размер стека не может превышать 4 Гбайт, что
соответствует максимальному размеру сегмента для процессора
80486. В каждый момент времени доступен только тот стек, селектор
сегмента которого содержится в регистре SS. Этот стек называется
текущим. Регистр SS автоматически используется процессором для
выполнения всех операций со стеком.
? регистр указателя стека ESP. В регистре ESP содержится
относительный адрес вершины стека в текущем сегменте стека. Его
значение используется командами вызова подпрограмм и возврата,
исключениями и прерываниями. При занесении элемента в стек,
процессор уменьшает значение регистра ESP, а затем записывает
элемент по адресу новой вершины.
? регистр указателя базы кадра стека EBP. Данный регистр, как
правило, используется для доступа к структурам данных, содержащимся
в стеке. Например, при входе в подпрограмму стек содержит
адрес возврата и некоторое число параметров, передаваемых
в данную подпрограмму. Подпрограмма, при необходимости
создания временных локальных переменных, использует стек,
что приводит к изменению указателя стека по мере занесения и
удаления данных в стеке. Если перед началом выполнения операций
со стеком указатель стека копируется в базовый указатель кадра
стека, последний может быть использован для доступа к данным,
имеющим фиксированное смещение в сегменте стека. Если
этого не делать, доступ к структурам данных, имеющим фиксированное
смещение, может быть утерян в процессе занесения в стек и
удаления из стека временных переменных.
При использование регистра EBP для хранения адреса памяти,
текущий сегмент обязательно должен быть выбран (установлен регистр
SS). Т. к. нет необходимости указывать сегмент стека в
каждой команде, их кодирование становится более компактным. Для
обеспечения удобного доступа к переменным регистр EBP может
также использоваться для адресации других сегментов.
Указатель команд EIP содержит смещение в текущем сегменте
кода следующей подлежащей выполнению команды. Указатель команд
непосредственно не доступен программисту, но он управляется
явно командами управления потоком (переходы, возвраты и т.
д.), прерываниями и исключениями. Значение регистра EIP
увеличивается, указывая последовательно на границы исполняемых
команд.
Процессор 80486 не загружает команды поодиночке. Для загрузки
команд перед их фактическим использованием, существует
функция опережающего просмотра программы. Она обеспечивает
загрузку выровненного 128 - битного блока кода, команды которого
хранятся в процессоре в ожидании обработки. При этом выравнивание
блока производится обнулением четырех последних битов
его адреса. Данные блоки загружаются с игнорированием границ
между командами. Таким образом, во время начала исполнения команды,
она уже загружена в процессор и декодирована. Такой
способ загрузки команд значительно повышает производительность
процессора, т. к. позволяет совмещать выполнение команды, с
загрузкой и декодировать команд.
Сегментация памяти. Подкачка страниц. Организация памяти
представляет собой аппаратный механизм, позволяющий операционной
системе создавать для выполняющихся программ упрощенную
среду. Например, при одновременном выполнении нескольких
программ каждой из них должно быть дано независимое адресное
пространство. При разделении всеми этими программами одного
и того же адресного пространства каждая из них должна была бы
выполнять сложные и занимающие много процессорного времени
проверки, чтобы избежать влияния на другие программы.
Для эффективного управления памятью используются такие
средства, как сегментация памяти и подкачка страниц.
1. Сегментация памяти, как уже указывалось ранее, представляет
собой разбиение всего адресного пространства памяти на отдельные
блоки - сегменты. Доступ к сегментам управляется данными, в которых
описаны их размер, уровень привилегированности, который нужен
для доступа к ним, типы ссылок к памяти, применимые к этому
сегменту (выборка команды, помещение или извлечение из стека,
операция чтения, операция записи и т. д.), а также его присутствие в
памяти.
Сегментация используется, во-первых, для нахождения ошибок
при разработке программы, повышая тем самым надежность конечного
продукта, во-вторых, для упрощения компоновки объектных
модулей кода. Механизм сегментации делает ненужным создание
кодов, независимых от позиции в памяти, поскольку все ссылки к
памяти могут выполняться относительно базового адреса кодового
сегмента и сегмента данных модуля.
Сложная программная система может использовать все
средства, предоставляемые сегментацией. Например, система, в которой
программы разделяют данные в режиме реального времени,
может иметь возможность очень точно управлять доступом к этим
данным. Когда программа делает попытку неверного доступа к данным,
такая ошибка приводит к генерированию исключения. Это
может служить как вспомогательное отладочное средство при разработке
программы, а также может использоваться для запуска
восстановительных процедур при ошибке в системах, предназначенных
для конечного пользователя.
Аппаратное обеспечение сегментации транслирует сегментированный
(логический) адрес в адрес непрерывного, несегментированного
адресного пространства, который называется линейным
адресом. Если разрешена подкачка страниц, то аппаратное
обеспечение подкачки транслирует линейный адрес в физический
адрес. Если подкачка страниц не разрешена, то в качестве физического
адреса используется сразу линейный адрес.
Сегментация не прозрачна для прикладных программ. Эти
программы должны в процессе выполнения должны обращаться к
тем сегментам, которые были назначены для использования при разработке
этих программ.
2. Подкачка страниц используется для поддержки среды, в
которой большие адресные пространства моделируются на базе небольшой
области оперативной памяти и некоторой дисковой памяти.
Подкачка страниц обеспечивает доступ к структурам данных,
превышающим по размеру доступное пространство оперативной памяти,
благодаря тому, что часть таких структур держится в оперативной
памяти, а часть - на диске. Подкачка выполняется по блокам
размером в 4К, которые и называются страницами. Когда программа
пытается обратиться к странице, которая в этот момент находится
на диске, в программе происходит специальное прерывание. В
отличие от прочих исключений и прерываний, исключение, генерируемое
при транслировании адреса, восстанавливает содержимое регистров
процессора в значения, позволяющие повторить выполнение
команды, вызвавшей данное исключение. Такие специальные
действия носят названия перезапуска команды. Это позволяет операционной
системе прочесть страницу с диска, обновить отображение
линейных адресов в физические адреса для данной страницы и
перезапустить программу. Такой процесс прозрачен для программы.
Если операционной системой не разрешен механизм подкачки
страниц, то линейные адреса будут одновременно являться и физическими
адресами. Это может быть в тех случаях, когда разработка,
которая была сделана для 16 -разрядного процессора, адаптируется
для использования 32 - разрядного процессора.
Операционная система, написанная для 16 - разрядного процессора,
не использует механизма подкачки страниц, поскольку размер
ее адресного пространства настолько мал (64Кбайт), что гораздо
более эффективным является механизм свопинга между оперативной
памятью и диском целых сегментов, нежели отдельных
страниц памяти.
Подкачка страниц должна быть разрешена для операционных
систем, которые могут поддерживать виртуальную память с подкачкой
страниц. Подкачка страниц прозрачна для прикладного программного
обеспечения, поэтому операционная система, которая
должна поддерживать прикладные программы, написанные для 16
- битовых процессоров, может выполнять эти программы с разрешенной
подкачкой страниц.
Диспетчер памяти. Эффективный доступ к памяти осуществляется
диспетчером памяти. Его назначение заключается в
следующем. Прикладные программы не используют прямой
адресации к физической памяти, а адресуются к некоторой модели
памяти - виртуальной памяти. Диспетчер памяти поддерживает
механизмы сегментации и замещения страниц, то есть их подкачки.
Возможно использование одного из указанных механизмов или их
одновременное использование.
Адрес, используемый в программе, называется логическим адресом.
Устройство сегментации преобразует логический адрес в некоторый
промежуточный адрес несегментированного адресного пространства,
называемый линейным. Устройство замещения страниц
преобразует полученный линейный адрес в физический.
Логический адрес трактуется как смещение в сегменте и согласно
этому преобразуется в линейный. Каждый сегмент имеет
дескриптор, который содержит его базовый адрес и максимальный
размер. Если смещение меньше размера и нет препятствий для
чтения сегмента, линейный адрес получается сложением базового
адреса и смещения.
Линейный адрес, выработанный устройством сегментации,
используется непосредственно как физический адрес. Для преобразования
линейного адреса в физический используется устройство
подкачки страниц. Устройство подкачки страниц обеспечивает другой
уровень организации памяти. Оно разбивает линейное адресное
пространство на блоки фиксированной длины (4Кбайт) - страницы.
Логическое адресное пространство отображается в линейное адресное
пространство, которое отображается на несколько страниц.
Страницы могут находиться как в памяти, так и на диске.
При обращении программы по логическому адресу, он транслируется
в адрес на странице памяти, или генерируется исключение,
если данная страница отсутствует в памяти. При генерации исключения
управление передается операционной системе, которая в
этом случае пытается считать нужную страницу с диска и обновить
таблицу страниц. После этого, работа программы, которая вызвала
исключение, возобновляется без генерации исключения.
Алгоритмы замещения страниц в некоторых ситуациях могут
работать крайне неэффективно, что может быть исправлено специальной
прикладной программой. Архитектура процессора 80486 дает
свободу выбора модели памяти для каждой отдельной программы,
даже если эти программы выполняются одновременно.
Возможен выбор любой модели организации памяти, являющейся
промежуточной между двумя следующими моделями:
? несегментированное или "плоское" адресное пространство, при
котором пространства кодов, стека и данных отображаются в
общие линейные адреса. В этом случае сегментация игнорируется и
позволяется доступ любого типа указателя на память к любому типу
данных.
? сегментированное адресное пространство с различными
сегментами для пространств кода, данных и стека. Может быть
использовано до 16383 линейных адресных пространств, размером
до 4 Гбайт каждое.
Обе эти модели, кроме того, могут обеспечивать защиту памяти.
Несегментированная или "плоская" модель. Несегментированная
модель - это самая простая модель памяти. Эффективный доступ к
ячейкам памяти достигается отображением всех сегментов в
единое линейное адресное пространство. В результате этого все
операции с памятью обращаются к общему пространству памяти. В
плоской модели сегменты могут покрывать весь 4 Гбайт диапазон
физических адресов, или только те адреса, которые отображаются на
физическую память.
Преимущество модели заключается в том, что она обеспечивает
минимальный уровень аппаратной защиты от программных
ошибок.
Сегментированная модель. В сегментированной модели организации
памяти логическое адресное пространство содержит до
16383 сегментов, размером до 4 Гбайт каждый, т. е. общий объем
может достигать 246 байт (64 Тбайт). МП отображает это 64 -
терабайтовое логическое адресное пространство в физическое адресное
пространство (до 4 Гбайт).
Преимущество сегментированной модели заключается в том,
что смещение внутри каждого адресного пространства проверяется
отдельно и доступ к каждому сегменту контролируются индивидуально.
Размер сегмента определяется программистом, что позволяет
делать его равным размеру содержащегося в нем модуля.
Доступ к сегментированному адресному пространству осуществляется
с помощью указателя, который состоит из двух частей:
? 16 - разрядного поле селектора сегмента, которое идентифицирует
сегмент.
? смещения, которое представляет собой 32 -разрядный адрес
внутри сегмента.
Селектор сегмента используется для получения линейного
адреса начала сегмента, называемого базовым адресом. Он указывает
на информацию, определяющую сегмент, которая называется
дескриптором сегмента. В программе может использоваться больше
шести сегментов, селекторы которых занимают сегментные регистры.
Селектор сегмента идентифицирует дескриптор сегмента, задавая
таблицу дескрипторов и позицию нужного дескриптора в
этой таблице. Селекторы сегмента видны прикладной программе в
качестве части переменной типа указателя, однако обычно значения
селекторов назначаются или модифицируются редакторами
связей или компонующими загрузчиками, но не прикладными
программами.
Дескриптор сегмента представляет собой структуру данных в
памяти, которая сообщает процессору размер и расположение в
памяти сегмента, а также управляющую информацию и информацию
о состоянии сегмента. Дескрипторы обычно создаются компиляторами,
компоновщиками, загрузчиками или операционной
системой, но не прикладными программами.
Обращение к памяти из программ осуществляется при помощи
фиксированных смещений относительно данного базового адреса,
что позволяет загружать в память и выполнять объектные модули
без корректировки адресов (динамическая компоновка).
Микропроцессоры
Pentium Р5
Выпуск высокопроизводительных
МП начат в 1993г., когда фирмой Intel
был разработан процессор Pentium P5 класса 80*86, использующий
архитектурную концепцию CISC (Completed Instruction Set Computer).
Корпус процессора квадратный с 321 контактными выводами матричного
типа, то есть выводы расположены по всему периметру корпуса
в несколько рядов (конструктив Socket 7).
CISC - архитектурная концепция процессора,
основанная на использовании довольно сложных команд,
каждая из которых может производить по
несколько простых действий. Во многих случаях
эти команды представляют собой программы, написанные
на микрокоде и записанные в постоянное
запоминающее устройство процессора. Команды
CISC имеют разную длину и время выполнения, а
машинный код - язык довольно высокого уровня.
Он имеет тактовую частоту до 100 МГц и более, выполнен по
субмикронной технологией (с шириной проводников менее 1 мкм),
позволившей разместить на кристалле около 3,1 млн. транзисторов.
Благодаря такой компактности сокращается время передачи данных
внутри микропроцессора, и тем самым обеспечивается более высокая
производительность работы системы в целом (до 200 млн. оп/с).
Процессор имеет выполненную на кристалле процессора кэшпамять
первого уровня (L1) объемом 32 Кбайт, разбитую на два банка:
кэш-память данных и кэш-памяти команд, каждая из которых имеет
объем 16 Кбайт. Кэш-память предназначена для временного хранения
многократно используемых программой команд и данных, что
позволяет процессору реже обращаться за ними к внешней медленнодействующей
основной памяти (ОП). Каждый банк памяти соединяется
с ядром собственной шиной и обеспечивает высокоскоростной обмен
информацией по двум физически разнесенным шинам. Такая архитектура
обеспечивает устранение конфликтов в системе при передаче
команд и данных.
Кэш-память L1 работает на частоте процессора, что характеризует
ее как самую быстродействующую память системы. От емкости L1
зависит быстродействие процессора, однако увеличение объема кэшпамяти
приводит к усложнению кристалла процессора и, как следствие,
к его удорожанию.
Несмотря на большую вычислительную мощность процессора
Р5, обработка программ трехмерной графики, число которых
неуклонно возрастает, является самым узким местом при обработке
команд. Увеличение же производительности процессора за счет
повышения тактовой частотой малоэффективно. Это связано с тем,
что повышение тактовой частоты в два раза ведет к увеличению
производительности в интервале 15 - 45%% в зависимости от
тактовой частоты (чем выше тактовая частота процессора, тем
меньше прирост производительности). Данное обстоятельство
поставило задачу поиска иных путей повышения производительности
процессоров.
Одним из таких путей является увеличение емкости кэш-памяти
первого уровня с 16 до 32 Кбайт, второй путь - внедрение технологии
ММХ (ММХ - Multi Media Extension).
Увеличения емкости кэш-памяти обеспечивает увеличение вероятности
нахождения данных в кэш-памяти при их считывании процессором.
Так при объеме кэш-памяти 8 Кбайт процессор в более чем
в 80% случаев обращения к памяти без "промаха" находит данные в
кэш-памяти. Двукратное увеличение объема кэш-памяти
обеспечивает 5% прирост "попаданий", а четырехкратное
увеличение - прирост около 8%. Очевидно, что дальнейшее
наращивание оказывается неоправданным: каждое последующее
удвоение объема приносит лишь процент (или менее) увеличения
вероятности "попадания". Иными словами, 32 Кбайт - оптимальный
объем, и поэтому кэш-память нового процессора Pentium была
увеличена только вдвое.
Кроме того, несколько изменена ее структура: она сделана четырехканальной,
что снизило вероятность остановки одного из конвейеров
при невозможности получить из нее данные.
В конвейер команд была введена дополнительная ступень определения
взаимозависимости инструкций, благодаря чему сказалось
возможным усовершенствовать механизм предсказания ветвлений.
Все описанные меры позволили увеличить производительность примерно
на 10-20%%.
Второй путь, связанный с внедрением технологии ММХ, обязан
широкому использованию мультимедийных программ. ММХ - это
архитектура процессора, обеспечивающая эффективное выполнение
команд трехмерной графики за счет высокоскоростной обработки вещественных
чисел (чисел с плавающей точкой). Она включает специальные
наборы команд и устройств, которые используют принцип
выполнения одного потока команд над множеством потоков данных -
SIMD (Single Instruction Multiplay Data). В этом случае
обеспечивается конвейеризация при выполнении команд: например,
в 64-разрядном арифметико-логическом устройстве одновременно
могут выполняться две 32 - разрядные, четыре 16-разрядные или
восемь 8 - разрядных операций; введены комбинированные команды
типа "умножение со сложением", инструкции упаковки - распаковки
данных и т.д.
Так, если для выполнения большинства офисных задач хватало
даже производительности 100 МГц Pentium, то полноразмерное экранное
видео с одновременной обработкой звуковой информации
оказывалось на пределе возможностей самых производительных
процессоров. В то же время обработку аудио- и видеоинформации
вполне можно было бы поручить специализированному встроенному
сопроцессору, подобно имеющемуся в Pentium для ускорения операций
с плавающей запятой. Для того, чтобы как можно меньше
переделывать устройство дешифрации команд, коды
мультимедийных инструкций были сделаны совпадающими с кодами
математического сопроцессора и запрещена его одновременная
работа со встроенным мультимедийным сопроцессором. В результате
при обработке мультимедиа информации включается одни
сопроцессор, при математических расчетах - другой. Переключение
осуществляется установкой или сбросом соответствующего флага.
Таким образом, подобный мультимедийный процессор может
работать с аудио- и видеоинформацией на 50-80%% быстрее своего
не мультимедийного аналога.
Первые мультимедийные процессоры на 166 МГц P5 ММХ и на
200 МГц P5 ММХ появились в январе 1997 г. Корпуса процессоров
P5 и P5 MMX аналогичны по исполнению Р5.
Архитектурно-структурные особенности. Характерной чертой
процессоров Р5 являются многочисленные архитектурноструктурные
особенности, которые включают следующие:
? использование суперскалярной архитектуры;
? раздельное кэширование программного кода и данных;
? наличие буфера адреса ветвления;
? использование высокопроизводительного блока вычислений с
плавающей запятой;
? наличие расширенной 64 - битовой шины данных;
? обеспечение поддержки многопроцессорного режима работы;
? применение средств задания размера страницы памяти;
? использование средств обнаружения ошибок и функциональной
избыточности;
? управление производительностью;
? наращиваемость с помощью Intel Overdrive процессора.
Суперскалярная архитектура. Суперскалярная архитектура Р5
представляет собой совместимую только с INTEL двухконвейерную
архитектуру, позволяющую процессору достигать новых уровней
производительности посредством выполнения более, чем одной команды
за один период тактовой частоты.
Термин "суперскалярная" обозначает микропроцессорную архитектуру,
которая содержит более одного вычислительного блока.
Эти вычислительные блоки, или конвейеры, являются узлами, где
происходят все основные процессы обработки данных и команд.
Возможность выполнять множество команд за один период
тактовой частоты существует благодаря тому, что Р5, имея два
конвейера, может выполнять две инструкции одновременно.
Двойной конвейер Р5 выполняет простую команду за пять этапов:
? предварительная подготовка,
? первое декодирование (декодирование команды),
? второе декодирование (генерация адреса),
? выполнение,
? обратная выгрузка.
Поэтапное выполнение команд позволяет нескольким командам
находиться в различных стадиях выполнения, увеличивая тем самым
вычислительную производительность.
Двухконвейерная обработка данных осуществляется двумя секциями
обработки данных - U и V (рис. 5).
Каждая из них включает блок формирования адреса и АЛУ. Первичная
U - секция может выполнять все операции над целыми числами
и операции с плавающей запятой. Вторичная V-секция может выполнять
только простые операции с целыми числами и частично -
операции с плавающей запятой. Входящие в секции блоки чтениязаписи
разделены на блоки чтения и блоки записи. Каждое из них
снабжено своим буфером-накопителем. Такое исполнение ядра процессора
позволяет последовательно идущие команды чтения и записи
вести одновременно, что полностью исключает конфликтные ситуации
в магистрали и повышает скорость при вводе-выводе команд.
Рис. 5. Архитектура микропроцессора Pentium Р5
Для эффективного обмена внутренняя магистраль выполнена 64разрядной.
При этом она представляет собой две независимые 32разрядные
шины, к каждой из которой могут подключаться устройства
в зависимости от ее состояния - свободна шина или занята передачей
информации.
Одновременное выполнение двух команд в разных секциях называется
сдваиванием. Не все последовательно выполняемые команды
допускают сдваивание. В этом случае используется только одна U -
секция. Чтобы добиться максимальной эффективности работы процессора
P5, желательно перекомпилировать программы так, чтобы
можно было сдвоить наибольшее количество команд.
P5 использует аппаратное выполнение команд, заменяющее
множество микрокоманд, используемых в предыдущих семействах
микропроцессоров. Эти инструкции включают загрузки, запоминания
и простые операции АЛУ, которые могут выполняться аппаратными
средствами процессора, без использования микрокода.
Раздельное кэширование программного кода и данных является
другим важнейшим усовершенствованием, реализованным в Р5. В
нем имеется кэш-память первого уровня L1, разбитая на две кэшпамяти
по 8 (позже по 16) Кбайт каждый - программный кэш и кэш
данных, управляемые своим контроллером. Схемы кэш - контроллера
и сами блоки кэш-памяти размещены на кристалле МП. В кэш-память
из различных областей системного ОЗУ копируется информация -
данные и программные коды.
Кэш-память может работать как в режиме сквозной записи (при
которой кэшируются только операции считывания), так и в двунаправленном
(с обратной записью) режиме. Кэш-память P5 может также
хранить информацию, которая должна быть записана в память, до
того момента, когда снизится нагрузка на МП и на другие
компоненты системы.
Блоки программной и данных кэш-памяти организованы по
двухстраничной схеме, каждая страница разделена на строки по 32
байта. Для каждого блока кэш-памяти предусмотрен специальный ассоциативный
буфер преобразования (TLB), задачей которого является
преобразование линейных адресов в физические адреса памяти.
В двунаправленном режиме записи осуществляется кэширование
не только результатов операций считывания, но и записи, что повышает
производительность процессора по сравнению с режимом сквозной
записи. В двунаправленном режиме значительно уменьшается количество
обменов данными между МП и системной памятью, которые
в быстродействующих системах являются самым медленным процессом.
Необходимо отметить, что программный кэш построен с
защитой от записи в него данных, полученных в процессоре.
Благодаря использованию укороченных циклов памяти данные в кэшпамяти
или из него могут быть переданы очень быстро.
Все эти особенности построения МП потребовали
использования 64 - разрядной внутренней шины данных, которая
обеспечивает возможность двойного кэширования и суперскалярной
конвейерной обработки одновременно с загрузкой следующих к
исполнению данных.
Кэш-память данных имеет два 64 - разрядных интерфейса, по
одному для каждого из конвейеров, что позволяет ей обеспечивать
данными две отдельно исполняемые инструкции в течение одного
машинного цикла. После того, как данные достаются из кэш-памяти,
они записываются в основную память в режиме обратной записи.
Такая техника кэширования дает лучшую производительность,
чем простое кэширование с непосредственной записью, при
котором процессор записывает данные одновременно в кэш и
основную память. Тем не менее, Р5 способен динамически
конфигурироваться для поддержки кэширования с непосредственной
записью.
Рекомендуемый объем общей кэш - памяти для настольных
систем, основанных на Р5, равен 128 - 256 КБайт, а для серверов -
256 КБайт и выше.
Блок адреса ветвления - это следующее новое решение для вычислений,
увеличивающее производительность посредством
полного заполнения конвейеров командами. Известно, что для
процессоров 8086 команды переходов встречаются через каждые 6-7
команд. При обнаружении перехода устройство выборки команд
должно выбирать инструкции с адреса перехода. Если переход
безусловный, то проблем нет - адрес перехода определен однозначно.
Проблема возникает в том случае, когда переход определяется какимлибо
условием. Например, если содержимое одного из регистров
окажется равным нулю, то осуществить переход по такому-то адресу,
в противном случае выполнять команду, следующую за текущей
командой.
Поскольку к моменту, когда процессор должен начать выборку
идущей за точкой перехода команды, условие перехода еще не определено,
процессор должен сделать предположение о том, будет или не
будет совершен переход. После этого начнется выборка команд соответственно
с точки перехода или с команды, следующей за
текущий. Если переход спрогнозирован верно, то работа конвейера не
прервется. В противном случае с конвейера придется удалять
команды, относящиеся к неправильно предсказанному направлению
ветвления программы, и перезагружать его.
Поэтому безошибочное прогнозирование переходов является одним
из путей повышения производительности конвейерных систем.
Для этого существует буфер адреса переходов на 256 позиций. В нем
хранится информация о результатах последних 256 ветвлений. Эта
информация обрабатывается в соответствии с алгоритмом, и на основании
результата обработки делается предположение о направлении
ветвления.
Использование блока адреса ветвления минимизирует простои в
одной или обеих секциях, вызванных задержками выборки команд
при "нелинейном" изменении программного адреса, вызванном, например,
переходом от одного участка программы к другому или от текущей
программы к подпрограмме обработки прерывания. Основное
назначение блока - предвидеть возможные "нелинейные" переходы.
Если такой переход должен произойти в ближайшем будущем, программные
инструкции из соответствующей ячейки памяти заранее
считываются в буфер адреса ветвления, что приводит к увеличению
быстродействия работы МП.
Высокопроизводительный блок вычислений с плавающей запятой.
32 - разрядные программные приложения включают много интенсивно
вычисляющих, графически ориентированных программ,
которые занимают много процессорных ресурсов на выполнение операций
с плавающей запятой.
P5 позволяет выполнять математические вычисления на более
высоком уровне, по сравнению с предыдущими моделями МП, благодаря
использованию усовершенствованного встроенного блока вычислений
с плавающей запятой, который включает восьмитактовый
конвейер и аппаратно реализованные блоки для вычисления
основных математических функций. При этом восьмитактовый
конвейер обеспечивает четырехтактовые конвейерные исполнения
команд с плавающей запятой с дополнительной четырехтактовой
целочисленной конвейеризацией команд. Большая часть команд
вычислений с плавающей запятой могут выполняться в одном
целочисленном конвейере, после чего подаются в конвейер
вычислений с плавающей запятой. Обычные функции вычислений с
плавающей запятой, такие как сложение, умножение и деление,
реализованы аппаратно.
P5 с тактовой частотой 100МГц выполняет команды вычислений
с плавающей запятой в пять раз быстрее, чем 33 МГц Intel 80486
DX, в 6 раз быстрее 25 МГц Intel 80486 SX и в 2.6 раз - 66 МГц Intel
80486 DX2.
Расширенная 64 - битовая шина данных. Р5 представляет собой
32 - битовое устройство, однако внешняя шина данных к памяти,
как уже отмечалось, является 64 - битовой, удваивая количество данных,
передаваемых в течение одного шинного цикла.
Р5 поддерживает несколько типов шинных циклов, включая
пакетный режим, в течение которого происходит ввод "порции" данных
из 256 бит в кэш-память данных за один машинный цикл.
Шина данных является главной магистралью, которая передает
информацию между процессором и системной памятью. Имея широкую
шину данных, Р5 обеспечивает конвейеризацию шинных
циклов, что способствует повышенной пропускной способности шины.
Конвейеризация шинных циклов позволяет второму циклу стартовать
раньше завершения выполнения первого цикла. Это дает возможность
элементам памяти больше времени для декодирования
адреса, что позволяет использовать более медленные и менее дорогостоящие
компоненты памяти.
Ускорение процессов чтения и записи, параллелизм передачи
адреса и данных, а также декодирование в течение одного цикла - все
вместе позволяет улучшить пропускную способность и повышает
возможности системы.
Мультипроцессорность. Р5 обладает мощным средством для
организации мультипроцессорных систем. Мультипроцессорные
приложения, исполняемые на двух или более Р5, хорошо обслуживаются
посредством усовершенствованной архитектуры кристаллов,
раздельным встроенным кэшированием программного кода и данных,
а также наборами микросхем для управления внешней (вторичной)
кэш - памятью и утонченными средствами контроля целостности данных.
Блок управления страничной памятью Р5 содержит опции поддержки
традиционных размеров страниц памяти от 4 КБайт до 4
Мбайт. Эти опции позволяют производить вычисление частоты
обновления ("свопинга") страниц в комплексных графических приложениях,
буферах фреймов, а также ядер операционных систем,
где увеличенный размер страницы позволяет пользователям перепланировать
шире первоначально громоздкие программные объекты.
Управление размером страниц позволяет оптимизировать частоту обращений
к медленной системной памяти и, тем самым, повысить производительность,
причем это повышение существенно отражается
на прикладном программном обеспечении.
Определение ошибок и функциональная избыточность. Хорошая
защита данных и обеспечение их целостности посредством внутренних
средств становится крайне важным в приложениях, критичным
к потерям данных, формируемых при использовании клиент -
серверов. Р5 содержит два усовершенствования, к которым относятся,
во-первых, внутреннее определение ошибок и, во-вторых, контроль
за счет функциональной избыточности.
Если между двумя процессами обработки программ в системе
обнаруживаются разногласия, система извещается об ошибке. В результате
происходит обнаружение более, чем 99% ошибок. Кроме того,
на подложке процессора расположено устройство встроенного тестирования.
Самотестирование охватывает более 70% узлов Р5 и
представляет собой процедуру, обычно используемую при диагностике
систем.
Другими встроенными решениями является возможность тестировать
внешние соединения процессора и отладочный режим, позволяющий
программному обеспечению просматривать регистры и состояние
процессора.
Управление производительностью - особенность Р5, позволяющая
разработчикам систем и прикладных программ оптимизировать
свои аппаратные и программные средства посредством определения
потенциально узких мест при исполнении программного кода,
а разработчики могут наблюдать и считать такты для внутренних
событий процессора, таких, как производительность чтения и записи
данных, кэширование совпадений и выпадений, прерываний и использования
шины. Это позволяет им выполнять тонкую настройку
своих приложений или систем для достижения оптимальной производительности.
Наращиваемость - Р5 имеет возможность легкого наращивания
с использованием разработанных фирмы INTEL аппаратных средств.
Это позволяет вести наращивание производительности, которая помогает
поддерживать уровень продуктивности систем, основанных
на архитектуре процессоров фирмы INTEL, больше, чем продолжительность
жизни отдельных компонентов.
Технология наращивания делает возможным использовать преимущества
большинства процессоров усовершенствованной технологии
в уже существующих системах с помощью простой инсталляции
средств однокристального наращивания производительности. Например,
первое средство наращивания - это OverDrive процессор, разработанный
для процессоров Intel486 SX и Intel486 DX, использующий
технологию простого удвоения тактовой частоты, использованную
при разработке микропроцессоров Intel486 DX2.
Посредством наращивания одного из этих дополнительных
процессоров в сокет (разъем), расположенный возле центрального
микропроцессора на большинстве материнских платах Intel486, пользователи
могут увеличить общую производительность системы более,
чем на 70% практически для всех программных приложений.
Микропроцессоры
Pentium Pro (Р6)
В 1995 г. был выпущен новый процессор
Pentium Pro (Р6), имеющий внутреннюю
RISC - архитектуру.
RISC - архитектура означает, что все CISC-команды, обрабатываемые
процессором, сначала раскладываются на простые RISC - операции,
а потом только начинают обрабатываться в вычислительных
устройствах процессора. Преимуществом этой архитектуры является
то, что сравнительно простые RISC-инструкции могут выполняться
процессором по несколько одновременно и намного облегчают предсказание
переходов, тем самым, позволяя наращивать производительность
за счет большего параллелизма.
Процессор имеет 5,5 млн. транзисторов, выполненных сначала по
0,5 мкм (а затем по 0,35 мкм) технологии. Его производительность
около 300 млн. оп/с на частотах до 200 МГц. Процессор имеет двойную
независимую шину: внешнюю (FSB - Front Side Bus) и внутреннюю
(BSB - Back Side Bus). Это предопределило его новое конструктивно-технологическое
исполнение. Он выполнен в квадратном корпусе
с 387 контактными выводами матричного типа, также, как и в
предыдущем варианте, расположенными по всему периметру корпуса
в несколько рядов (конструктив Socket 8).
В процессоре используются встроенные кэш-памяти: первого
уровня L1 объемом 32 Кбайт (по 16 Кбайт на кэш-памяти команд и
данных) и второго уровня (L2) объемом 256, 512 и даже 1024 Кб. Последняя
по сути является расширением кэш-памяти первого уровня,
располагается на отдельном кристалле и работает на полной тактовой
частоте процессора.
В P6 для увеличения пропускной способности осуществлен переход
к одному 12 - стадийному конвейеру. При этом параллельно
может выполняться только пара команд, следующих в программе
друг за другом и удовлетворяющих определенным правилам, например,
отсутствие регистровых зависимостей типа "запись после чтения".
Увеличение числа стадий в Р6 по сравнению с Р5 привело к
уменьшению выполняемых на каждой стадии операций и, как следствие,
к уменьшению практически на треть времени нахождения команды
на каждой стадии. Это означает, что использование на практике
P6 с тактовой частотой 100 МГц равносильно использованию P5 с
тактовой частотой 133 МГц.
Организация работы ядра Р6 подразумевает использование нового
подхода в его организации, устраняющего жесткую зависимость
порядка выполнения команд в программе. Во всех ранее выпущенных
процессорах последовательность выполнения команд в программе соответствует
последовательности команд в этой программе. Новый
подход связан с использованием так называемого "пула" команд и
реализации таких архитектурных методов, как улучшенное предсказание
переходов (почти всегда правильно определяется предстоящая
последовательность команд), анализ потоков данных (определяется
оптимальный порядок выполнения команд) и опережающее
выполнение (предвиденная последовательность команд
выполняется без простоев в оптимальном порядке). Комбинация
перечисленных методов направлена на эффективность использования
методов предвидения будущего поведения программы.
В процессоре традиционная фаза выполнения команды заменяется
на две фазы: "диспетчирование-выполнение" и "откат". В результате
команды могут начинать выполняться в произвольном порядке,
который отличается от порядка их расположения в программе, но завершение
их выполнения всегда соответствует исходному порядку в
программе.
Ядро P6 реализовано как три независимых устройства, взаимодействующих
через пул команд. Решение об организации P6 как трех
независимых и взаимодействующих через пул команд устройств было
принято после тщательного анализа факторов, ограничивающих производительность
современных микропроцессоров. Рассмотрим в качестве
примера следующий фрагмент программы, записанный на некотором
условном языке:
N/N команд
Операция
R1 ? М [R0]
R2 ? R1 + R2
R5 ? R5 + 1
R6 ? R6 - R3
Где Ri - регистр процессора,
M [R0] - регистр памяти .
Предположим, что при выполнении первой команды фрагмента
- загрузки из памяти М [R0] в регистр R1, оказалось, что содержимое
соответствующей ячейки памяти отсутствует в кэш-памяти. При
традиционном подходе процессор перейдет к выполнению команды
2 только после того, как данные из ячейки М [R0] основной памяти
будут прочитаны через интерфейс шины. Все время ожидания процессор
будет простаивать, так как скорость процессора во много раз
больше скорости считывания информации из основной памяти.
Для согласования скоростей работы процессора и памяти используется
пул команд. Его назначение заключается в том, что
процессор извлекает из него ближайшие команды, следующие за
командой, требующей обращения к памяти, и выполняет их до
момента завершения команды, тормозящей дальнейшее выполнение
программы. В приведенном выше фрагменте программы процессор
не может выполнить команду 2 до завершения команды 1, так как
команда 2 зависит от результатов команды 1. В то же время
процессор может выполнить команды 3 и 4, независящие от
результата выполнения команды 1. Такое выполнение команд
называется опережающим выполнением команд.
Результаты опережающего выполнения команд 3 и 4 не могут
быть сразу выведены из процессора и записаны в основную память,
поскольку необходимо выполнять их в соответствии с порядком выполнения
программы. Поэтому результаты опережающего выполнения
команд хранятся в пуле команд и извлекаются оттуда после завершения
выполнения предыдущих команд.
Таким образом, процессор выполняет команды в соответствии с
их готовностью к выполнению, вне зависимости от их первоначального
порядка в программе, то есть с точки зрения реального порядка
выполнения команд P6 является машиной, управляемой потоком
данных. В то же время изменение состояния вычислительной системы,
например запись результатов в память, производится в строгом
соответствии с истинным порядком команд в программе.
Чтение из памяти данных, необходимых для исполнения команды
1, может занимать достаточно много времени. Тем временем P6
продолжает опережающее выполнение команд, следующих за командой
1, и успевает обработать, как правило, 20 - 30 команд. Среди
этих 20 - 30 команд будет в среднем около пяти команд перехода, которые
устройство выборки/декодирования должно правильно предсказать
для того, чтобы работа устройства диспетчированиявыполнения
не оказалась бесполезной.
Сравнительно небольшое количество регистров в архитектуре
процессора приводит к интенсивному использованию каждого из
них и, как следствие, к возникновению множества мнимых зависимостей
между командами, использующими один и тот же регистр. Поэтому,
чтобы исключить задержку в выполнении команд из - за мнимых
зависимостей, устройство диспетчирования-выполнения
работает с дублями регистров, находящимися в пуле команд (одному
регистру может соответствовать несколько дублей). Реальный набор
регистров контролируется устройством отката, и результаты
выполнения команд отражаются на состоянии вычислительной
системы только после того, как выполненная команда удаляется из
пула команд в соответствии с истинным порядком команд в
программе.
Таким образом, принятая в P6 технология динамического выполнения
команд позволяет оптимально выполнять программы, основанные
на предсказании будущих переходов, анализе потоков данных с
целью выбора наилучшего порядка исполнения команд и на опережающем
выполнении команд в выбранном оптимальном порядке.
Аппаратурная реализация описанного подхода осуществляется с
помощью устройства, представленного на рис. 6. Оно содержит устройства
выборки - декодирования, диспетчирования-выполнения,
устройства отката и пула команд.
Рис. 6. Организация ядра МП Pentium Р6
Устройство выборки - декодирования выбирает команды обрабатываемой
программы из программной кэш-памяти. Указателем к
вводу на исполнение следующей команды является определяемый
буфером переходов индекс кэш-команды, состояние процессора и сообщения
о неправильном предсказании перехода, поступающих из
устройства выполнения целых команд.
Буфер переходов для предсказания возможных адресов перехода
при обработке программ использует специальный алгоритм,
который обеспечивает более чем 90% точность предсказания
переходов. Его суть заключается в том, что в кэш-памяти команд
выбирается строка, соответствующая индексу в указателе на
следующую команду, и следующая за ней строка, после чего
передаются 16 выровненных байтов на декодирование.
Необходимость считывания двух строк объясняется тем, что команды
в Р6 выровнены по границе байта, и поэтому может происходить
передача управления на середину или конец строки кэшпамяти.
Три декодера устройства выборки - декодирования принимают
поток информации и обрабатывают их, отыскивая и декодируя содержащиеся
в потоке команды. Декодеры преобразуют команды в
микрокоманды - триады (два операнда, один результат).
Большинство команд программы в устройстве выборки - декодирования
преобразуются в одну микрокоманду, но некоторые команды
требуют четырех микрокоманд. Более того, сложные команды требуют
обращения к микрокоду, который представляет собой набор из
заранее составленных последовательностей микрокоманд.
Некоторые команды, так называемые "байт - префиксы",
модифицируют следующую за ними команду. Микрокоманды
ставятся в очередь, посылаются в таблицу псевдонимов регистров,
где ссылки на логические регистры преобразуются в ссылки на
физические регистры P6, после чего каждая из микрокоманд вместе с
дополнительной информацией о ее состоянии (статусе) посылается в
пул команд.
P6 может запускать на выполнение до 5 микрокоманд за такт.
Средняя длительно поддерживаемая пропускная способность - 3 микрокоманды
за такт.
Алгоритм, отвечающий за планирование выполнения микрокоманд,
является крайне важным для поддержания производительности
процессора в целом. Если в каждом такте для каждого ресурса готова
к выполнению только одна микрокоманда, то проблемы выбора не
возникает. Но если готовых к выполнению микрокоманд несколько,
то возникает проблема выбора. Для ее решения в МП используется
алгоритм планирования, имитирующий модель "первый пришел -
первый обслужен", предпочитающая смежное выполнение смежных
микрокоманд. Поскольку в исполняемой программе может
содержаться множество команд перехода, то и многие микрокоманды
также будут являться переходами. Алгоритм, реализованный в буфере
переходов, позволяет в большинстве случаев правильно предсказать,
состоится или не состоится переход.
Для исправления случаев неверного предсказания перехода применяется
следующий подход. Микрокомандам перехода еще в упорядоченной
части конвейера команд ставятся в соответствие адрес следующей
команды и предполагаемый адрес перехода. После вычисления
адреса перехода реальная ситуация сравнивается с предсказанным
адресом. Если вычисленный и предсказанный адреса совпадают,
то проделанная работа оказывается полезной, так как соответствует
реальному ходу программы, а микрокоманда перехода удаляется из
пула команд. Если же вычисленный и предсказанный адреса не совпадают,
то есть была допущена ошибка (переход был предсказан, но
не произошел, или было предсказано отсутствие перехода, а в действительности
он состоялся), то устройство выборки - декодирования
изменяет статус всех микрокоманд, засланных в пул команд после команды
перехода, чтобы убрать их из него. Правильный адрес перехода
направляется в буфер переходов, который перезапускает весь конвейер
с нового адреса.
Устройство диспетчирования-выполнения выбирает микрокоманды
из регистров пула команд в зависимости от их статуса. Здесь
под статусом понимается информация о доступности операндов микрокоманды
к их обработке и наличии необходимых для ее выполнения
вычислительных ресурсов, то есть операндов и свободных для их
выполнения устройств процессора. Если статус микрокоманды показывает,
что ее операнды уже вычислены и доступны, а необходимое
для ее выполнения вычислительное устройство также доступно, то
устройство диспетчирования-выполнения выбирает микрокоманду
из пула команд и направляет ее на устройство для выполнения. Результаты
выполнения микрокоманды возвращаются в пул.
Устройство отката проверяет статус микрокоманд в пуле команд
- оно ищет микрокоманды, которые уже выполнены и могут быть удалены
из пула. Именно при удалении микрокоманды результаты ее
выполнения, хранящиеся в пуле команд, реально изменяют состояние
вычислительной системы, например, происходит запись в регистры
памяти.
Устройство отката должно не только обнаруживать завершившиеся
микрокоманды, но и удалять их из пула команд таким образом,
чтобы процесс вычисления происходил бы в соответствии с первоначальным
порядком команд в программе. При этом оно должно учитывать
и правильно обрабатывать прерывания, исключительные ситуации,
неправильно предсказанные переходы и другие экстремальные
случаи.
Процесс отката занимает два такта. В первом такте устройство
отката считывает содержимое регистров пула команд и отыскивает
готовые к удалению (откату) микрокоманды; затем оно определяет,
какие из этих микрокоманд могут быть удалены из регистров пула в
соответствии с исходным порядком команд в программе. Во втором
такте результаты отката записываются в регистры пула команд и в регистровый
файл отката.
Организация интерфейса шины. Есть два типа обращений к памяти:
чтение из памяти в регистр и запись из регистра в память. При
чтении из памяти должны быть заданы адрес памяти, размер блока
считываемых данных и регистр-назначение. Команда чтения кодируется
одной микрокомандой. При записи надо задать адрес памяти,
размер блока записываемых данных и сами данные. Поэтому команда
записи кодируется двумя микрокомандами: первая генерирует адрес,
вторая готовит данные. Эти микрокоманды формируются независимо
друг от друга и могут выполняться параллельно; они могут переупорядочиваться
в буфере записи.
Запись в память никогда не выполняется опережающим образом,
так как нет эффективного способа организации отката в случае неверного
предсказания. Разные команды записи никогда не переупорядочиваются
друг относительно друга. Буфер записи инициирует запись,
только когда сформированы и адрес, и данные, и нет ожидающих
выполнения более ранних команд записи.
Организация системы памяти учитывает следующие аспекты:
очередная команда записи не должна обгонять идущую впереди команду
записи, так как это может лишь незначительно увеличить
производительность. Можно запретить командам записи обгонять команды
чтения из памяти, так как это приведет лишь к незначительной
потере производительности. Запрет командам чтения обгонять
другие команды чтения или команды записи может повлечь существенные
потери в производительности.
С учетом сказанного была реализована архитектура системы памяти,
позволяющая командам чтения опережать команды записи и
другие команды чтения. Буфер упорядочения памяти служит в качестве
распределительной станции и буфера переупорядочивания. В
нем хранятся отложенные команды чтения и записи, и он
осуществляет их повторное диспетчирование, когда блокирующее
условие (зависимость по данным или недоступность ресурсов) исчезает.
Микропроцессоры
Pentium II (Klamath)
Pentium II рассчитан на использование
в бытовых компьютерах, рабочих
станциях и серверах начального уровня (с двухпроцессорной конфигурацией).
Он имеет частоты 233, 266 и 300 МГц, рассчитан на работу
с 66 МГц системной шиной, выполнен по 0,35 мкм технологии, на
кристалле площадью 203 мм2 содержит 7,5 млн. транзисторов и, наконец,
имеет кэш-памяти L1 (32 Кбайт) и L2 (512 Кбайт), причем последняя
выполнена вне ядра процессора и соединена с ним высокоскоростной
локальной шиной, работающей на половинной тактовой
частоте процессора.
Процессор выполнен в модульном исполнении. Необходимость
такого исполнения вызвана тем, что процессор, вторичная кэш-память
и обслуживающие ее схемы (высокоскоростные контроллер, локальная
шина и другие вспомогательные элементы) технологически
расположены на одной плате, то есть представляет собой целую
сборку. Для его подключения к системной плате используется разъем
Slot 1 с 242 контактными выводами, которые выполнены вдоль одной
из больших сторон платы.
Важной особенностью этого МП является возможность увеличения,
за счет изменения значения внутреннего коэффициента умножения,
частоты работы системной шины свыше 100 МГц при условии
использования элементов памяти с временем выборки менее 10 нс.,
что позволяет значительно повысить производительность систем на
его основе. Другая особенность - это пониженное напряжение
питания до 2,8 В, позволяющее улучшить охлаждение процессора на
повышенных частотах.
Структура МП имеет следующие особенности:
- возможность неупорядоченного выполнения команд,
- улучшенный алгоритм предсказания ветвлений,
- предварительное выполнение условного перехода, если он
предсказан верно.
- синхронное исполнение нескольких команд набора ММХ.
Микропроцессоры
Pentium II (Deschutes)
Pentium II (Deschutes) является модификацией
Klamath. Его отличиями
являются :
- более высокие тактовые частоты (333, ... , 450 МГц),
- возможность тактирования системной шины частотой до 100
МГц (для процессоров с тактовой частотой выше 400 МГц),
- используемая технология - 0,25 мкм,
- напряжение питания ядра - 2 В,
- использование высокоскоростного AGP (Accelerated Graphic
Port) порта.
Перевод системной шины с классической частоты 66 МГц до 100
МГц хотя и привел к заметному росту производительности (порядка
35-45%), но не дал резкого скачка в быстродействии ПК. Это объясняется
сильным демпфирующим влиянием кэш-памяти 2 уровня.
Наилучшего применения процессор получил при работе с DVDпроигрывателями
и графикой AGP.
Процессор Deschutes выполнен, как и предыдущий, в модульном
исполнении и имеет 242 - контактный разъем Slot 1.
Для обеспечения надежной работы в некоторые процессоры
встроены датчики контроля температуры.
Микропроцессоры
Pentium II (Xeon)
Микропроцессоры Pentium II Xeon ориентированы
на использование в серверах и
рабочих станциях, для которых стоимость не является определяющим
фактором. Они имеют практически те же конструктивнотехнологические
характеристики, что и предыдущие модели процессоров.
Отличительными особенностями Pentium ** (Xeon) от Pentium **
(Klamath) являются:
- процессор тактируется частотой 450 МГц и выше,
- наличие кэш-память второго уровня размером до 1Мб, работающей
на частоте ядра процессора,
- ряд технологических усовершенствований, обеспечивающих
эффективную работу процессора в многопроцессорной конфигурации
с использованием до 8 процессоров и объемом памяти до 64 Гб.
- МП выполнен в модульном варианте на прямоугольной плате с
ножевым разъемом в 330 контакта - Slot 2,
Все модели процессоров Pentium II имеют два весьма существенных
недостатка, снижающих их потребительские свойства. Вопервых,
они обладают неблагоприятным соотношением "ценапроизводительность".
Так при росте цены по сравнению с Pentium I
более чем в два раза, рост производительности на большинстве приложений
составляет около 30%. Во-вторых, загрузка дорогостоящей и
емкой кэш-памяти второго уровня, как показали исследования специалистов
фирмы-разработчика, при существующем программном
обеспечении (ПО) редко превосходит 55-65%. Это свидетельствует о
возможности снижения размера кэш-памяти второго уровня, как одного
из самых дорогостоящих компонентов процессора.
Указанные причины послужили основой для разработки более
дешевого процессора Celeron.
Микропроцессоры
Celeron 1 (Deshutes)
МП выполнены в конструктиве
Socket 370, то есть выводы располагаются
в несколько рядов по периметру прямоугольного корпуса перпендикулярно
его плоскости. Этот МП - архитектурный аналог процессора
Pentium II. Он работает на частотах 266 и 300 МГц, но не
имеет кэш-памяти L2, что и делает его значительно более дешевым
изделием. Большим преимуществом процессора является простота его
"разгона", то есть повышения тактовой частоты ядра до 350 - 400
МГц. При этом частота работы системной шины может быть увеличена
с 66 МГц до 90 МГц (в МП используется фиксированный коэффициент
умножения 4,5).
Однако "разгон" ядра процессора может привести к повышению
температурного режима его работы и, в конце концов, к сбою в работе.
Поэтому "разгон" процессора является процедурой достаточной
нежелательной и опасной.
Необходимо отметить, что полное отсутствие кэш-памяти
второго уровня привело к довольно значительному снижению его
стоимости, но, одновременно, привело к заметному снижению
производительности при обработке программ трехмерной графики.
Последнее привело к разработке процессора Celeron II.
Микропроцессоры Celeron II (Mendocino)
В 1998 г. Intel освоила
выпуск 0,25 мкм процессора
Celeron II с тактовыми частотами 300, ... , 500 МГц, имеющих фиксированные
коэффициенты умножения 4,5 (для Celeron II с 300 МГц), 5
(для Celeron ** с 333 МГц) и 6 (для Celeron II выше 400 МГц) на 66
МГц системную шину. Эти процессоры имеют кэш-память второго
уровня 128 Кбайт, выполненную на одном кристалле с процессором и
работающую на частоте процессора. Процессоры содержат около 19
млн. транзисторов и, как и предыдущий, хорошо "разгоняются". Проведенные
исследования показали, что "разогнанный" 333 МГц Celeron
** до тактовой частоты 463 МГц по производительности не уступает
450 МГц процессору Pentium **.
Одним из недостатков процессоров Celeron является поддержка
им системной шины тактовой частотой до 66 МГц, сдерживающей
производительность системы в целом.
Процессоры Celeron выполнены в монолитном прямоугольном
плоском корпусе с 370 контактами (Socket 370).
Микропроцессоры
Pentium III (Katmai).
В начале 1999 г. начат
выпуск 0,25 мкм процесcора
Pentium III (разъем Slot 1) с тактовыми частотами 450 и 500 МГц
и имеющий потенциальные возможности их увеличения до 1 ГГц. Ядро
процессора содержит 9,5 млн. транзисторов и обеспечивает работу
системной шины на 100 МГц и на 133 МГц. Он имеет кэш-память L1
объемом 32 Кб (по 16 Кб на кэш-команд и кэш-данных), работающую
на частоте системной шины, и L2 объемом 512 Кб, расположенную
вне процессорного ядра, но в процессорном картридже, и работающую
на половинной частоте ядра.
Состав команд дополнен 70 новыми SIMD-инструкциями, позволяющими
значительно ускорить обработку команд трехмерной графики
или речи.
Отличительными особенностями МП являются:
- наличие блока SSE (Streaming SIMD Extension), обеспечивающего
выполнение до 4-х операций одновременно над 128-битными
данными с плавающей точкой за счет использования набора из 70 инструкций
SIMD (Single Instruction Multiply Data - одна инструкция,
много данных).
- использование высокопроизводительной шины AGP 4X (Accelerated
Graphic Port), имеющая пиковую производительность до 1
Гбайт/с.
- прошитый внутри кристалла серийный идентификационный
номер данного экземпляра, что должно способствовать отслеживанию
работы данного МП в глобальных или локальных сетях, тем самым,
повышению уровня безопасности электронной коммерции.
Микропроцессоры
Pentium III (Coppermine).
Архитектура этого
0,18 мкм процеcсора во многом
повторяет предыдущую модель. Его выпуск осуществляется с 1999 г.
Он рассчитан на тактовые частоты 533, ..., 700 МГц, при этом
системная шина может работать при 100 и 133 МГц. Его ядро содержит
28 млн. транзисторов и имеет площадь 106 кв. мм. В процессе
производства используется медное технологическое покрытие. На
кристалле интегрированы кэш-память L1 размером 32 Кбайта и L2 -
256 Кбайт, работающая на частоте процессора.
Процессор Coppermine выпускается в модульном исполнении с
разъемом Slot 1 и в конструктиве Socket 370. Переход на последний
конструктив вызван низкой надежностью разъема Slot 1, его относительно
высокой стоимостью и, наконец, переносом всех элементов
вторичной кэш-памяти внутри процессора, что и предопределило выполнение
процессора в более надежном и дешевом варианте с Socket
370.
Для повышения производительности в Coppermine имеется набор
SIMD - инструкций с проверкой контрольной суммы (SSE), переделана
система внутренней буферизации, позволяющая ускорить
операции с кэш-памятями, а также ликвидировать узкие места при
использовании 133 МГц системной шины.
Напряжение питания ядра процессора - 1,6 В.
1.4. Микропроцессоры фирмы Hewlett - Packard
Фирма Hewlett-Packard еще в 1986 г. перешла на RISCархитектуру,
разработав процессоры семейства PA-RISC (PА - Precision
Architecture - прецизионная архитектура). В настоящее время она
производит уже четвертое семейство своих RISC-процессоров. Базовой
моделью семейства стал процессор 7100 (1992 г.), изготовленный
на кристалле площадью 200 мм2 по 0,8-мкм технологии. Он допускал
параллельное выполнение двух команд с плавающей запятой, имел
хорошо продуманную систему управления конвейерами, практически
исключающую их простой, и работал на частоте 100 МГц.
Последовавший за ним PA-7100LС стал первым микропроцессором
с интегрированными средствами мультимедиа. Он способен в
реальном масштабе времени декодировать видеосигнал со скоростью
30 кадров в секунду в масштабе MPEG-1, одновременно поддерживая
стереозвук. Появившиеся позже процессоры РА-7150 и РА-7200 в целом
близки к РА-7100, но по сравнению с последним в них приняты
меры для повышения производительности: в первом - тактовая частота
увеличена до 125 МГц а во втором использованы оригинальные
разработки по повышению производительности кэш-памяти второго
уровня.
Процессоры следующего поколения РА-8000 и РА-8200 относятся
к 64-разрядным структурам и допускают параллельное выполнение
до четырех команд. Они выполнены они по 0,5 мкм и 0,35 мкм
технологии соответственно и функционируют на частоте 200 МГц и
выше.
За один такт процессор РА-8200 может выполнять до четырех
команд, выбранных из динамически nеpеупорядочиваемого буфера
объемом до 56 команд.
Структура процессора содержит десять исполнительных устройств,
которые разбиты по парам и допускают параллельное выполнение
команд в них. Это - два целочисленных устройства, два
устройства для операций с плавающей запятой и по два устройства
деления/извлечения корня, загрузки/сохранения и сдвига/совмещения.
В процессоре нет внутренней кэш-памяти первого
уровня. Ее отсутствие компенсируется наличием 128-разрядного интерфейса
для внешней кэш-памяти первого уровня, объем которой
может достигать 4 Мбайт. В качестве системной используется шина
Runway. Она применялась в ранних моделях PA-RISC и характеризуется
пропускной способностью 768 Мбайт/с.
Фирма НР совместно с Intel планирует к выпуску в 2000 г.
опытного процессора Merced. Он призван развить новую концепцию
микропроцессоров с архитектурой VLIW (Very Long Instruction Word
- очень длинные инструкции), в противовес бурно развивающимся
RISC-процессорам с простыми и короткими инструкциями.
Использование этой архитектуры вызвано следующим. Многие
современные процессоры (Р6, Nx586, K6 и т.д.) содержат в своем составе
устройства, преобразующие длинные и нерегулярные команды
х86 в короткие и регулярные RISC-команды, которые затем с
большой скоростью "перемалываются" ядром процессора.
Этот процессор будет запущен в серийное производство на фирме
Intel и изготавливаться по 0,18 мкм технологии. Он станет
первым процессором семейства IA-64 (аббревиатура от Intel 64-bit
architecture). Которая воплощает концепцию EPIC (Explicitly Parallel
Instruction Computing - вычисления с явным параллелизмом команд).
Основными достоинствами данной концепции являются:
- распараллеливанием потока команд занимается компилятор, а
не процессор, при этом компилятор способен провести анализ по всей
программе, в то время как процессор может анализировать лишь небольшие
ее участки. Такое положение усложняет архитектуру компилятора,
а значит, может привести к увеличению числа ошибок при
компилировании команд программы;
- процессор не тратит свое время на анализ потока команд;
- при многократном запуске некоторой программы ее распараллеливание
осуществляется всего один раз (при компиляции), а не каждый
раз, когда она исполняется на процессоре.
Главными конструктивно-технологическими особенностями IA64
являются:
1) Наличие большого числа регистров для хранения информации
(128 64-разрядных регистров общего назначения, 128 80-разрядных
регистров вещественной арифметики и 64 одноразрядных предикатных
регистров);
2) Масштабируемость архитектуры до большего количества
функциональных устройств. Команды IA-64 упаковываются (группируются)
компилятором в связку длиной в 128 разрядов. Каждая связка
содержит три команды и шаблон, в котором указываются
зависимости выполнения команд: можно ли с командой к1 запустить
параллельно к2, или же к2 должна выполняться только после к1), а
также между другими связками (можно ли с командой к3 из связки с1
запустить параллельно команду к4 из связки с2). Ниже представлены
все возможные варианты составления связки их трех команд:
i1 ?? i2 ?? i3 - все команды исполняются параллельно,
i1& i2 ?? i3 - сначала i1, а затем исполняются параллельно i2 ?? i3,
i1 ?? i2 & i3 - параллельно исполняются i1 ?? i2, после них - i3,
i1 & i2 & i3 - последовательно исполняются i1, i2, i3.
Одна такая связка, состоящая из трех команд, соответствует набору
из трех функциональных устройств процессора. IA-64 могут содержать
разное количество блоков, оставаясь при этом совместимыми
по коду. Благодаря шаблону процессору с N одинаковыми блоками из
трех функциональных устройств будет соответствовать командное
слово из N связок. Таким образом обеспечивается масштабируемость
IA-64.
3) Явный параллелизм в машинном коде, при котором поиск зависимостей
между командами производит не процессор, а компилятор,
4) Предикация, при которой команды из разных ветвей условного
ветвления снабжаются предикатными полями (полями условий) и запускаются
параллельно. Если в программе встречается условное ветвление,
то команды из разных ветвей помечаются разными предикатными
регистрами, далее они выполняются совместно, но их результаты
не записываются, пока значения предикатных регистров не определены.
Когда же, наконец, вычисляется условное ветвление, то один
предикатный регистр, соответствующий "правильной" ветви, устанавливается
в "1", а другой - в "0". Перед записью результатов процессор
проверяет предикатное поле и проверяет результаты только
тех команд, предикатное поле которых содержит предикатный
регистр с записанной "1".
5) Загрузка по предположению, при которой данные из медленной
основной памяти загружаются компилятором заранее и помечаются
особым образом. А непосредственно перед командой, использующей
загружаемые по предположению данные, компилятор вставляет
команду проверки предположения. Если при выполнении загрузки
по предположению возникает исключительная ситуация, то процессор
сгенерирует исключение только когда встретит команду проверки
предположения. Если, например, команда загрузки выносится
из ветвления, а ветвь, из которой она вынесена, не запускается, возникшая
исключительная ситуация проигнорируется.
Однакo необходимо заметить, что RISC-технология постепенно
приближается к своему пределу производительности, в связи с чем
разработчики новые пути ее повышения. Возможно, что достигнутый
уровень технологии позволит реализовать принципиально новый подход:
длинные и нерегулярные команды х86 преобразуются в очень
длинные, но регулярные, которые затем выполняются большим числом
параллельно работающих внутренних устройств так же за один
такт. Другими словами, за один такт может быть выполнено сразу несколько
десятков команд, что недостижимо для сегодняшних RISCпроцессоров.
1.5. Микропроцессоры фирмы DEC
Корпорация Digital Equipment (DEC) широко известна благодаря
популярным (в том числе и в нашей стране) мини-компьютерам PDP
и VAX. На рынок RISC-систем она вышла относительно недавно, но
практически сразу завоевала позицию лидера по производительности
благодаря уникальным характеристикам микропроцессора Alpha. Передовые
решения, реализованные ею в новых изделиях, в течение
двух лет не могли быть реализованы, так как не было программ, адаптированных
для ее 64-разрядных процессоров. Однако стратегия DEC
"на опережение" оказалась весьма разумной. Сегодня платформа Alpha
поддерживается весьма солидным списком программных
средств, причем некоторые из них - уникальны, как, например, 64разрядная
версия СУБД Oracle 7.0.
История микропроцессоров Alpha началась в 1988 г. DEC, когда
она приступила к выполнению программы, которая должна была одним
рывком вывести корпорацию в число лидеров. Проект Alpha был
ориентирован на самую передовую на то время 0,8-мкм технологию,
перспективную архитектуру, поддерживающую режим SMP (Symmetric
Multiprocessing - симметричное мультипроцессирование) и обработку
64-разрядных приложений в среде UNIX (несколько позднее
для процессоров Alpha была адаптирована и ОС Microsoft Windows
NT). Основным принципом разработчиков было предельное упрощение
конструкции, которое позволило бы выйти на тактовые частоты,
недоступные другим изделиям, и добиться рекордной производительности
за счет работы на предельно возможных частотах.
Первым процессором семейства Alpha APX стал 21064, выполненный
на кристалле площадью 238 мм2 и содержащий 1,7 млн. транзисторов.
Фантастическая по тем временам тактовая частота 200 МГц
и суперскалярная обработка (до двух команд за один такт) позволили
ему превзойти по производительности всех остальных конкурентов.
Конвейер состоял из десяти ступеней, что также было передовым решением
на то время.
В 1994 г. была выпущена следующая модификация - 21064Ас
тактовой частотой 275 МГц. Через год появился процессор третьего
поколения - 21164. Он был выполнен по 0,5-мкм технологии, и на
подложке площадью 298 мм2 размещено 9,3 млн. транзисторов. Число
исполнительных устройств было увеличено с двух до четырех, а кэшпамять
второго уровня объемом 96 Кбайт впервые размещена на
кристалле микропроцессора.
Долгое время 21164 оставался лидером по производительности,
и только в 1997 г. DEC выпустила 400- и 433-мегагерцевые версии
21164. Кроме того, она завершает разработку 500-мегагерцевого
21264.
Корпорация DEC обнародовала свои планы долгосрочного развития
процессорного направления. Вслед за 21264 должен появиться
процессор с кодовым названием EV7, выполненный по 0,25-мкм технологии
и работающий на частоте 750 МГц. Он будет иметь в своем
распоряжении 16 конвейеров. Это позволит, по мнению специалистов
DEC, втрое поднять его производительность в сравнении с 21264. И
завершит эту линию 32-конвейерный процессор EV8, который планируется
и работать с тактовой частотой 1 ГГц.
Помимо суперпроизводительных процессоров, DEC разработала
и поставляет процессоры Alpha 21066/21068, являющиеся упрощенным
вариантом 21064. Их тактовая частота находится в пределах
от 66 до 233 МГц. Более плотная "упаковка" транзисторов на кристалле
позволила включить в состав процессоров графический контроллер,
контроллер прямого доступа к памяти и контроллер PCI -
шины. Благодаря своим широким возможностям и низкой стоимости,
они стали весьма привлекательными для использования в рабочих
станциях нижнего уровня.
1.4. Микропроцессоры фирмы SUN Microsystems
В течение довольно долгого времени фирма SUN выпускала
процессоры семейства SPARC для недорогих рабочих станций и
UNIX-серверов. В основном это была техника, используемая учебными
и научными организациями. Первым процессором семейства
был процессор UltraSPARC I с рабочей частотой до 167 МГц. Он имел
мощное арифметико-логическое устройство, благодаря чему его производительность
превзошла и PowerPC 620, и Pentium, и Р6.
В процессор были интегрированы специальные блоки цифровой
обработки графики и видеоданных, позволяющие ему выполнять
компрессию/декомпрессию данных в стандарте MPEG-2 с частотой
30 кадров в секунду в реальном масштабе времени. Кроме того,
обеспечивается весьма высокая скорость обработки изображений,
более чем на порядок превышающая скорость выполнения этой
работы любым из ранее упомянутых процессоров. К тому же
разработчикам SUN удалось добиться очень высокой скорости обмена
процессора с системной шиной (до 1,3 Гбайт/с), что также
положительно сказалось на производительности серверов,
использующих UltraSPARC I.
Вначале 1996 г. фирма анонсировала процессоры UltraSPARC
II, вдвое превосходящие по производительности своих предшественников.
Работают они на частотах вплоть до 300 МГц и также предназначены
для использования в рабочих станциях и серверах, ориентированных
па обработку высококачественных изображений.
Дальнейшее развитие семейства - процессоры UltraSPARC
III, которые появились в 1998 г. Они функционируют на частотах 350,
400 и 450 МГц, по производительности более чем вдвое превосходят
UltraSPARC II и, по крайней мере, во столько же раз будут "быстрее"
200-мегагерцевых РА-8000 компании Hewlett-Packard при сопоставимых
ценах.
Форсирование выпуска более мощных процессоров связано с
внедрением в информационные системы корпоративных серверов.
Первым шагом в этом направлении стал выпуск в 1996 г. серии Ultra
Enterprise, старшая модель которой оснащена процессором UltraSPARC-200.
Система представляет собой мультипроцессорный сервер,
в котором независимо друг от друга параллельно могут работать до 30
процессоров. Архитектурно она компонуется из
четырехпроцессорных модулей, объединяемых высокопроизводительной
шиной, выполненной по патентованной технологии
SUN Ultra Port. Пропускная способность шины - до 2,6 Гбайт/с.
Объем ОЗУ серверов - 60 Гбайт, дискового пространства - 9 Тбайт.
В 1996 г. SUN выкупила у Silicon Graphics подразделение, выпускавшее
серверы Cray. Оно производило суперсервер Cray Research
CS6400, потенциально масштабируемый до 64 процессоров. В SUN
начались работы по выпуску аналогичного изделии на процессорах
UltraSPARC-200. В нем использован ряд архитектурных решений, отработанных
при выпуске Ultra Enterprise, в частности шину вводавывода
и системную шину.
Фирма SUN продолжает расширять производственную базу
своих процессоров. В частности, с 1996 г. японская фирма NEC, известная
своей приверженностью к разработкам MIPS, производит на
своих заводах процессоры SUN (ранее они изготавливались только на
предприятиях фирмы Texas Instruments). NEC изготавливает серийные
изделия с проектными нормами до 0,15, ...0,18 мкм. Такой
технологией владеет всего десяток хорошо известных фирм (Intel,
IBM, Motorola, AMD, Texas Instruments, NEC, SGS-Thomson, DEC,
Hewlett-Packard).
Помимо UltraSPARC, SUN анонсировала процессор
microSPARC-llep для программируемых устройств, включая системы
офисной автоматизации, телекоммуникационные системы и корпоративные
сетевые устройства. Это первый вид процессоров SPARC с
контроллером PCI на кристалле. Он, кроме того, имеет два интегрированных
высокоскоростных интерфейса для работы с памятью программ
и с памятью данных. Прямой интерфейс с памятью расширяет
полосу пропускания запоминающего устройства и позволяет передавать
данные без блокировки процессора.
Контроллер интерфейса динамического ОЗУ формирует все необходимые
сигналы для управления памятью объемом 256 Мбайт по
64-разрядной магистрали, имеется также устройство для регенерации
этого ОЗУ. Объем кэш-памяти - 24 Кбайт, из которых 16 Кбайт -
память команд и 8 Кбайт - память данных. Целочисленное устройство
содержит восемь окон регистров на 136 слов, а арифметическое
устройство с плавающей запятой - 32 32-разрядных регистра, исполнительные
блоки общего назначения и аппаратные умножители.
Помимо SUN выпуском аналогичной продукции занимаются
еще несколько фирм, производящие SUN-совместимую продукцию.
Это оказалось возможным благодаря тому, что SPARC-архитектура
открыта для разработчиков. SUN опубликовала и постоянно обновляет
все необходимые для этого спецификации. Наиболее заметная из
этих фирм - Ross Technology со своими процессорами hyperSPARC.
В 1997 г. она выпустила изделия, работающие на частотах 133, 166 и
180 МГц. По оценкам экспертов по производительности hyperSPARC133
не уступает 233-мегагерцевому процессору Alphaа фирмы DEC.
Необходимо заметить, что hyperSPARC допускают простой upgrade
путем замены процессора в панельке (как, например, Pentium100
на Pentium-166). Важность этого определяется тем, что у RISCпроцессоров
близко нет такой аппаратной и программной совместимости,
которая наблюдается у процессоров 80х86.
1.5. Микропроцессоры фирмы AMD
Микропроцессор К5.
В 1996 г. фирмой AMD был
предложен к реализации первый скалярный процессор на основе одного
исполнительного конвейера К5 (5*86), использующий 64 - разрядную
шину данных (ШД) и работающий на частоте 100 МГц. МП
имеет практически самое высокое быстродействие при обработке команд
целочисленной арифметики. Однако из-за несовершенного конструктивно-технологического
исполнения арифметического
сопроцессора обработка команд с плавающей точкой, имеющих место
во всех программах трехмерной графики, операциях с
многоканальным звуком и т.д., он по производительности
значительно уступает аналогичным микропроцессорам Intel. Вторым
недостатком МП было то, что используемая в нем технология не дает
возможности увеличения тактовой частоты, что сводило практически
на нет все попытки дальнейшего совершенствования этой модели
МП.
После этого AMD приобрела фирму NexGen, еще одного независимого
разработчика x86 процессоров, который обладал передовой
на то время технологией и в небольших количествах выпускал кристаллы
без арифметического сопроцессора. Используя эти наработки,
AMD спроектировала новое поколение своих CPU - K6.
Микропроцессор К6-2
В 1998 г. фирма AMD приступила к
выпуску процессораК6-2, в котором использованы ряд технических
новшеств (разделены блоки диспетчеризации потока команд и данных,
использовано преобразование 80 * 86 команд в набор RISC - подобных
внутренних микроопераций, добавлены к стандартному набору
команд инструкции мультимедийной (ММХ) архитектуры и т.д.).
Процессоры выпускаются на тактовые частоты 300, ..., 500 МГц, выполнены
на кристалле площадью 81 мм2 по 0,25 - микронной технологии,
имеют 9,3 млн. транзисторов и рассчитаны на работу с 100
МГц шиной. Процессор имеет встроенные кэш-памяти L1 и L2, причем
кэш-память L1 имеет объем 64 Кб (по 32 Кб на кэш-команд и
кэш-данных), а кэш-память L2 встроена в процессор, имеет объем
256 Кб и работает на частоте процессора.
Напряжение питания ядра процессора - 2,2 В.
Для повышения производительность обработки команд с плавающей
точкой в К6-2 AMD предложила использовать не сопроцессор,
а специально спроектированный набор SIMD-инструкций
3DNow!, выполнение которых возлагалось на основной процессор.
Для этого к обычному ядру K6 добавился еще один блок операций с
числами одинарной точности с плавающей точкой. Благодаря тому,
что он мог выполнять однотипные вычисления с четырьмя парами
операндов одновременно, на специально оптимизированных под
3DNow! приложениях K6-2 показывал неплохую производительность.
Использование указанной технологии позволяло переложить задачу
обработки команд с плавающей точкой на основной процессор,
имеющего большее быстродействие, чем быстродействие арифметического
сопроцессора. Однако высокая производительность этого МП
проявлялась только в том случае, когда обрабатываемые программы
выполнялись с учетом технологии 3DNow!.
Микропроцессор К6-3
Для повышения производительности
с использованием новой технологии 3Dnow! AMD добавила интегрированный
в ядро кэш-память второго уровня L2, работающую на
частоте процессора. Новый процессор К6-3 (разъем Socket 7) получил
кодовое название Sharptooth, выполнен по 0,25 мкм технологии и
имеет 21,3 млн. транзисторов. Он работает на частотах 350,..., 475
МГц, что позволяет обеспечить работу системной шины на частоте до
100 МГц. Кэш-памяти L1 имеет объем 64 Кб (по 32 Кб на кэш-команд
и кэш-данных), а кэш-память L2 - 256 Кб. Кроме того, в системе предусматривается
использование кэш-памяти третьего уровня L3, позволяющая
несколько увеличить производительность процессора. Напряжение
питания процессора 2,3-2,5 В.
Система команд процессора дополнена 21 SIMD-командами
3Dnow! для обработки чисел с плавающей точкой. Арифметический
сопроцессор имеет два конвейера, оперирующими с двумя парами
вещественных чисел одинарной точности.
Ядро процессора отличается от предшествующего наличием
функции пакетной записи в память. Суть такой записи заключается в
том, что данные по шине передаются по мере их накопления 8-ми
байтными пакетами.
Микропроцессор К7 "Athlon"
C 1999 г. АMD начала выпуск
0,25 мкм (а позже и 0,18 мкм) RISC - процессора К7, который имеет
площадь кристалла менее 100 кв. мм., рассчитан на работу при тактовых
частотах 500, ..., 650 МГц и имеет наибольшую производительность
при обработке команд с плавающей точкой. Процессор содержит
22 млн. транзисторов, поддерживает системную шину Alpha EV6,
кэш-память L1 имеет объем 128 Кб (по 64 Кб на кэш-команд и кэшданных),
а кэш-память L2 - от 512 Кб до 8 Мб, которая может работать
либо на полной тактовой частоте процессора, либо на половинной,
либо на одной третьей частоте.
Набор SIMD-инструкций расширен до 45 команд. Напряжение
питания ядра процессора - 1,6 В.
Для установки процессора используется специальный разъем Slot
A, который выглядит также как и Slot 1, но шинные протоколы и назначения
контактов у Intel Pentium III и AMD Athlon совершенно различны.
Более того, различно даже число задействованных сигналов -
Athlon использует примерно половину из 242 контактов, в то время
как Pentium III всего четверть.
Отличительной особенностью процессора является системная
шина EV6, которая хотя и работает на частоте 100 МГц, но передача
данных по ней, в отличие от GTL+ фирмы Intel, ведется на обоих
фронтах сигнала. Поэтому фактическая частота передачи данных составляет
200 МГц. Если учесть тот факт, что ширина шины EV6 - 72
бита, 8 из которых используется под ESS (под проверку контрольной
суммы), то скорость передачи данных составляет:
V д = 64 бита ? 200 МГц = 1,6 Гбайт/с.
Заметим, что пропускная способность GTL+, работающей на
100 МГц частоте, в два раза меньше и составляет около 800 Мбайт/с.
Таким образом, EV6 более перспективна. При этом планируется, что
частота EV6 должна достигнуть значения 133 (266), а затем и 200
(400) МГц.
Еще одна интересная особенность EV6 заключается в
поддержке многопроцессорных систем. В отличие от GTL+, EV6
обеспечивает соединение точка-точка между процессорами, что
позволяет выделить всю пропускную способность шины для каждого
процессора. Теоретически таким образом может подключаться до 14
процессоров, что и определяет перспективность EV6 при
использовании в многопроцессорных системах.
Особенности работы процессора заключаются в следующем.
Перед началом работы над параллельными потоками инструкций,
процессор должен их откуда-то получить. Для этого в AMD
Athlon применяется дешифратор команд (декодер), который преобразует
поступающий на вход процессора код. Дешифратор в AMD
Athlon может раскладывать на RISC-составляющие до трех входящих
CISC-команд одновременно.
Перед тем, как попасть в соответствующий вычислительный
блок, поступающий поток RISC-команд задерживается в буфере
(Instruction Control Unit), который рассчитан на 72 инструкции.
Для эффективной работы с программами таблица предсказания
переходов имеет размер 2048 ячеек, в которых сохраняются предыдущие
результаты выполнения логических операций. На основании
этих данных процессор прогнозирует их результаты при их
повторном выполнении. Благодаря этому Athlon правильно
предсказывает результаты ветвлений где-то в 95% случаев.
Блок целочисленных вычислений имеет три конвейера для исполнения
целочисленных команд (Integer Execution Unit). Это
позволяет процессору исполнять три целочисленные инструкции
одновременно. Оптимальной глубиной конвейера для процессоров с
современными скоростями считается 9 стадий. Увеличение этого
числа приводит к ускорению процесса обработки команд, так как
скорость работы конвейера определяется работой самой медленной
его стадии. Однако, в случае слишком большого конвейера при
ошибках в предсказании переходов оказывается, что большая часть
работы по исполнению команд, уже вошедших на конвейер
выполнена напрасно. Его приходится очищать и начинать процесс
заново. Потому в Athlon глубина целочисленных конвейеров
составляет 10 стадий, что близко к оптимуму.
Блок FPU, предназначенный для обработки вещественных чисел,
имеет существенные отличия от предыдущих процессоров AMD,
которые в K6, K6-2 и K6-3 были неконвейеризированными. Это приводило
к тому, что хотя многие операции с плавающей точкой в FPU
от AMD выполнялись за малое число тактов, но общая производительность
была низкой, так как следующая вещественная операция не
могла начать выполняться до завершения предыдущей.
В Athlon арифметический сопроцессор имеет конвейер
глубиной 15 стадий и объединяет в себе три блока: один для
выполнения простых операций типа сложения, второй - для сложных
операций типа умножения и третий - для операций с данными.
Благодаря такому разделению работы Athlon может выполнять
одновременно по две вещественночисленные инструкции.
Некоторые изменения произошли с выполнением MMXопераций.
В процессоре добавлено несколько инструкций по нахождению
среднего, максимума и минимума и пересылкам данных. Если
обратить внимание на архитектурные особенности, то в Athlon имеется
по два блока MMX, потому в нем может выполняться одновременно
пара MMX - инструкций.
Блок 3DNow! в Athlon подвергся также сильным изменениям.
Хотя его архитектура и осталась неизменной - два конвейера обрабатывают
инструкции, работающие с 64-битными регистрами, в которых
лежат пары вещественных чисел одинарной точности, набор команд
расширен до 45 команд. Новые операции должны не только позволить
увеличить скорость обработки данных, но и позволить задействовать
технологию 3DNow! в таких областях, как распознавание
звука и видео, а также при работе в глобальной сети. Кроме этого, были
добавлены и инструкции для работы с данными, находящимися в
кэш-памяти.
1.6. Микропроцессоры фирмы Cyrix
Микропроцессор MI
В отличие от фирмы AMD
фирма Cyrix (ныне National Semiconductors) приступила к созданию
32 - разрядных высокопроизводительных МП в конце 1995 г.
Разработанный ею процессор МI класса 6*86 выполнен на основе 1,0
мкм, а позже 0,6 мкм, технологии. На частоте 133 МГц в ряде случаев
он превосходит Pentium I на 166 МГц. Это обеспечено некоторыми
функциональными особенностями, которые отличают его от МП
Pentium. Первой особенностью является снижение ограничений на типы
команд, одновременно выполняемых на обоих конвейерах. Если в
Pentium I во многих случаях второй конвейер вынужден простаивать,
то в М1 второй конвейер выполняет очередную команду.
Другой особенностью М1 является наличие средства для осуществления
неупорядоченного выполнения команд. Это означает, что в
ходе выполнения программы он может откладывать выполнение команды
на втором конвейере, если она в данный момент попадает под
упомянутые ограничения. Вместо нее на конвейер запускается следующая
команда, а пропущенная выполняется тогда, когда ограничения
на ее выполнение снимается. Естественно, процессор снабжен
средствами контроля за результатами выполнения программы, поэтому
пользователю невозможно определить, что внутри в какие-то моменты
времени нарушается исходная последовательность команд.
Вместо этого можно заметить, что информация в регистрах и в
памяти обновляется так же и в той же последовательности, что и в
процессоре Pentium I, в котором отсутствуют средства
неупорядоченного выполнения команд.
Еще одной особенностью является то, что если на конвейере находятся
команды, данные от одной из которых заносятся в память или
регистр с последующим чтением оттуда второй командой с этого или
другого конвейера, то передача их от одной к другой может быть произведена
параллельно занесению. При этом операция чтения может
быть исключена. Подобный механизм называют "продвижением данных"
(Data Forwarding) или "обходом чтения" (Memory Read
Bypassing). Включение этой функции, по словам специалистов Cyrix,
обеспечивает основной вклад в прирост производительности 6х86 в
сравнении с процессором Pentium.
Для прогнозирования ветвлений (Branch Prediction)
процессор имеет буфер адресов перехода (Branch Target Buffer) на 256
позиций. В нем хранится информация о результатах 256 последних
ветвлений. Эта информация обрабатывается в соответствии с алгоритмом
и на основании результата обработки делается
предположение о направлении ветвления.
Кроме того, МП имеет стек возвратов (Return Stack), отсутствующий
в процессорах Intel и AMD. Его функция заключается в
том, что процессор, встретив команду RET (или один из ее вариантов),
должен после этого выполнять переход на команду, адрес которой
находится на верхушке стека. Поскольку к моменту предвыборки
команд здесь могут находиться данные, не относящиеся к адресу возврата,
необходимо предусмотреть запоминание этого адреса где-то
помимо основного стека. МП запоминает адрес инструкции, идущей
после команды вызова подпрограммы, и в основном стеке (подобно
тому, как это делается во всех остальных процессорах), и в стеке возврата.
После обнаружения в потоке команд инструкции возврата устройство
предвыборки извлекает адрес из стека возврата и начинает
дальнейшую выборку команд с него. Когда же исполнительное устройство
дойдет до выполнения инструкции возврата, в очереди команд
будет стоять правильно выбранная следующая, команда.
Маркировка процессоров фирмы Cyrix осуществляется с учетом
его Р-рейтинга. Так, например, известны процессоры Сх6х86-Р166+ и
Сх6х86-Р200+. Символ "+" означает, что процессор показывает производительность
даже чуть более высокую, чем та, что стоит у него в
рейтинге. Заметим, что реально МП работают на частотах, более низких,
чем указанные в рейтинге, например, Сх6х86-Р120+ работает на
частоте 100, а Сх6х86-Р200 - 150 МГц. Поэтому при установке процессора
необходимо устанавливать именно то значение тактовой частоты,
при котором он должен функционировать. А не его Р-рейтинг.
Микропроцессор M II
В начале 1997 г. фирма Cyrix перешла
к выпуску более совершенного мультимедийного МП, получившего
название МII. Тактовая частота этого процессора будет доведена
до 450 МГц, что позволит использовать 100 МГц системную
шину. Этот процессор выполняется по 0,30 мкм (в дальнейшем по
0,25 мкм) технологии с архитектурой 6*86, имеет объем кэш - памяти
L1 64 Кбайт, в нем реализована архитектура ММХ.
Основное назначение процессора - использование в серверах,
настольных системах и т.д. Сам процессор не поддерживает набор
мультимедийных команд фирмы Intel и не предназначен для самостоятельной
обработки мультимедийных данных. Но он содержит
большое число функциональных блоков, ориентированных на поддержку
выполнения этих функций дополнительными платами.
В функции МП входят динамическое предсказание переходов,
внеочередное исполнение команд, группирование данных для записи
в память (основную или кэш - память второго уровня), страницы переменного
размера (VPS). По производительности он находится гдето
посередине между процессорами Celeron ** и Pentium II. Слабым
звеном в нем является арифметический сопроцессор.
Микропроцессор
MediaGX
С 1998 г. фирмой освоен новый процессор
MediaGX, в котором совмещены сразу четыре
устройства: собственно центральный процессор, блоки управления
графикой, звуком и памятью. То есть на одном кристалле размещена
вся система обработки информации, при которой нет необходимости
дополнительной установки в компьютере ни звуковой карты, ни видеоакселератора.
При этом в основу разработок заложен основной принцип - повышение
производительности микропроцессоров за счет повышения
тактовой частоты.
Однако, как показывают результаты эксплуатации МП, простое
наращивание тактовой частоты неоднозначно влияет на увеличение
его производительности. В первую очередь это связано с большим
разбросом во времени выполнения различных программ (приложений),
связанных с разницей в производительности их различных компонентов.
Так, например, разброс высоких и низких значений производительности
относительно среднего значения процессоров 80486
и Pentium Р5 составляет ориентировочно от 10 % до 20 % (рис. 7).
Оценка производительности здесь приведена по индексу iCOMP
(Intel Comparative Microprocessor Perfomance), который учитывает четыре
главных аспекта производительности процессора при 32- и 16 -
разрядных операциях: с целыми числами, числами с плавающей точкой,
графикой и видео.
Рис. 7. Разброс производительности процессоров
486DX4-100 и Pentium Р5
Параллельно увеличению тактовой частоты фирмами активно
проводятся работы по разработке новых модификаций МП, среди которых
наиболее быстродействующими являются процессоры с сокращенным
набором команд (RISC - процессоры), имеющие более простые
системы команд. Однако путь, связанный с упрощением системы
команд, не всегда оправдан, так как при этом возникает много
новых проблем с программным обеспечением. Поэтому ряд фирм
приступили к выпуску МП, программно - совместимых с процессорами
Intel, являющимися наиболее удачной разработкой среди этого
класса устройств.
2. Характеристики микропроцессоров и их анализ
Главной характеристикой любого микропроцессора общетехнического
применения является производительность:
- при использовании кэш-памяти первого уровня (L1),
- при обработке целочисленных величин (чисел с фиксированной
точкой),
- при обработке вещественных чисел (чисел с плавающей точкой),
- при чтении и записи информации в память,
- при обработке команд трехмерной графики.
Для определения указанных характеристик и сравнительного
анализа при тестировании использовалось одно и тоже оборудование,
что давало возможность более объективной оценки быстродействию
используемых при тестировании процессоров и ПК на их основе.
Производительность при использовании кэш-памяти L1 определяет
быстродействие процессоров и ПК при обработке команд и обмене
данными между процессором и памятью при наличии кэшпамяти
L1.
На рис. 8 для примера приведены кривые, отображающие производительность
основного процессора (CPU) и арифметического сопроцессора
(FPU). Для испытаний был выбран кристалл процессора
Pentium II с тактовой частотой 450 МГц, работающий с 100 МГц системной
шиной. В процессе тестирования определялись:
Рис. 8. Производительность CPU и FPU при обработке команд и обмене
информацией с памятью
- производительность основного процессора и арифметического
сопроцессора при обработке команд, исследование которых проводилось
на синтетических тестах CPUМark 99 и FPU WinМark соответственно,
- производительность CPU и FPU при обмене информацией с
системной памятью (CPU Memory Мark и FPU Memory Мark
соответственно).
Очевидно, что введение кэш-памяти L1 повышает на несколько
порядков производительность CPU и FPU по сравнению с ее отсутствием.
Производительность при обработке целочисленных величин.
Обработка целочисленных величин свойственна в большей степени
офисным приложениям. Измерение производительности процессора
может быть проведено тестирующими пакетами Winstone 99 и CPUMark
99. На рис. 9 приведены кривые производительности для трех
групп процессоров: - первая группа: 400 МГц процессоры AMD K62,
Celeron, Pentium II и AMD K6-3,
- вторая группа: 450 МГц процессоры Pentium III и Celeron,
- третья группа: 600 МГц процессоры Pentium III и AMD Athlon.
Рис. 9. Производительность процессоров
при целочисленных вычислениях
Сравнительный анализ гистограмм, проведенный для пар процессоров
Pentium II 400 МГц и Pentium III 450 МГц, Celeron 400 МГц
и Celeron 450 МГц, Pentium III 600 МГц и Athlon 600 МГц показывает,
что чем выше тактовая частота процессора, тем он производительнее.
Введение быстродействующей кэш-памяти L2, как видно из верхней
кривой (тест CPUMark 99) для 400 МГц процессоров AMD K6-2 и K63,
приводит к заметному росту производительности (для этих процессоров
почти на 50%).
Производительность при обработке вещественных чисел может
быть оценена тестирующей программой FPU WinMark, которая осуществляет
тестирование арифметического сопроцессора при обработке
команд с плавающей точкой.
Гистограммы для ранее выбранной группы процессоров приведены
на рис. 10.
Рис. 10. Гистограммы производительности FPU
при обработке вещественных чисел
Процессоры AMD K6-2 и K6-3 имеют наименьшую производительность,
которая обусловлена использованием в них неконвейерных
арифметических сопроцессоров. Введение в его архитектуру кэшпамяти
третьего уровня практически не влияет на повышение производительности.
В тоже время конвейеризация вычислений, используемая
в процессорах Intel Pentium и Celeron, ведет к увеличению производительности
на 50 - 70%.
В одинаковых по структуре построения (за исключением размера
кэш-памяти второго уровня) процессорах Celeron 400 МГц и Pentium
II 400 МГц также наблюдаются практически одинаковые производительности,
что еще раз подтверждает незначительное влияние быстродействующей
кэш-памяти на производительность при обработке вещественных
чисел.
Производительность при чтении и записи информации из памяти.
Кривые производительности чтения информации из памяти для
450 МГц процессоров AMD K6-2, AMD K6-3, Celeron, Pentium II и
Pentium III приведены на рис. 11. Из них видно, что производительность
чтения во многом определяется размером считываемого блока.
Для всех процессоров на начальном участке производительность чтения
информации из памяти практически одинаковы и слабо зависят от
размера блока информации.
Рис. 11. Производительность при чтении из памяти
Однако при превышении размера блока объема кэш-памяти производительность
при чтении резко снижается, причем это снижение
раньше проявляется у процессоров Intel, у которых объемы
первичных кэш-памятей команд и данных вдвое меньше, чем у AMD.
Второе падение скоростей чтения приходится при превышении
размеров вводимых блоков объемов вторичной кэш-памяти. И чем
больше объем вторичной кэш-памяти, тем ниже производительность
при чтении информации. Сказанное свидетельствует о демпфирующем
влиянии вторичной кэш-памяти на быстродействие процессора.
Поэтому для устранения негативного влияния вторичной кэшпамяти
на производительность обмена информацией разработчики
AMD ввели кэш-память третьего уровня, расположив ее на системной
плате вне процессора. По мнению разработчиков это должно повысить
производительность при чтении пакетов информации больших
объемов.
Анализ кривых скоростей записи информации в память этих же
процессорах показывает, что их поведение практически аналогично
поведению кривых, представленных на рис. 11. Таким образом, очевидно
влияние использования кэш-памятей обеих уровней на производительность
обмена информацией процессоров с памятью. Из сказанного
можно сделать следующие выводы:
- объемы передаваемых пакетов информации между процессором
и памятью не должны превышать размеров соответствующих кэшпамятей
команд и/или данных,
- объемы вторичной кэш-памяти оказывают демпфирующее
влияние на производительность обмена информацией между процессором
и памятью, при этом чем больше ее объемы, тем ниже производительность
обмена информацией между процессором и памятью.
Производительность при обработке команд трехмерной графики.
Обработка команд трехмерной графики характеризуется наибольшим
использованием аппаратных возможностей процессора. Вся вычислительная
мощность при этом мобилизована на выполнение команд 3Dпрограммы,
формируя трехмерные сцены воспроизводимого изображения.
В обработке команд принимают участие основной процессор,
проводящий предварительные вычисления (геометрические расчеты
объектов), арифметический сопроцессор, который осуществляет все
основные расчеты формы, размеров, цвета объектов, их расположения,
производительность и направления перемещения, освещенности
и т.д., и процессор(ы) вывода информации на экран монитора (дисплея),
формирующие сменяющиеся с определенной частотой страницы
изображения.
Для тестирования процессора с целью определения производительность
обработке команд трехмерной графики используется тестирующая
программа CPU 3Dmark, с помощью которой можно определить
пиковую производительность процессора при обработке 3Dкоманд.
На рис. 12 приведены гистограммы, показывающие производительности
процессоров Intel и AMD, при этом процессоры AMD
подверглись тестированию с включенным и выключенным блоком
3DNow!
Рис. 12. Гистограммы производительности при
обработке команд трехмерной графики
Из гистограмм можно сделать следующие выводы:
- производительность возрастает с ростом тактовой частоты процессора
и размера вторичной кэш-памяти;
- использование блока 3DNow! позволяет увеличить производительность
процессоров К6-2(3) почти в 2,5 раза. Это увеличение осуществляется
за счет применения SIMD-инструкций, которые обрабатываются
основным процессором, а не арифметическим сопроцессором.
Проводя сравнительный анализ производительности необходимо
отметить, что для интенсивных вычислений с числами с плавающей
точкой Athlon несколько превосходит Coppermine. Это
объясняется использованием в нем более быстрого арифметического
сопроцессора.
3. Оперативная память. Типы памяти
Оперативная память представлена определенным количеством
микросхем ОЗУ на материнской плате. Обычно микросхемы ОЗУ устанавливаются
либо на специальных панельках - разъемах, позволяющих
менять отдельные микросхемы без пайки, либо на небольших
платах - SIMM-модулях (SIMM - single in-line memory modules). Эти
модули памяти устанавливаются в специальные разъемы на материнской
плате. Такие миниатюрные SIMM-модули, или просто SIMM,
представляют собой банки оперативной памяти разной емкости. В настоящее
время - это SIMM на 4, 8, 16, 32 и более Мбайт.
SIMM бывают двух разных типов: на 30 контактных вывода (30
pin) и 72 pin (рис. 13). При этом 30 pin и 72 pin SIMM - не взаимозаменяемые
элементы.
SIMM отличаются скоростью работы. ПК на процессорах 486
имеют ОЗУ с временем доступа 70 нс., на процессорах Pentium с
частотой работы системной шины 100 МГц - не более 10 нс.
Рис. 13. Внешний вид модуля SIMM
SIMM бывают с контролем четности (parity) и без контроля четности
(nоn parity). Данная функция позволяет контролировать работу
ОЗУ, прерывая программу при сбоях памяти. С контролем четности
SIMM сложнее, и их цена несколько выше. Фирмы-производители
считают эту функцию нецелесообразной для одиночных компьютеров
и для рабочих станций в сети.
Повышение надежности микросхем памяти можно проследить
на следующем примере. При формировании в недалеком прошлом
для уже устаревших моделей ПК 1 Мбайт ОЗУ из микросхем по 16
Кбит один сбой памяти наблюдался в лучшем случае через 100-150
часов работы. Конечно, при такой надежности бит точности
необходим. За последние несколько лет надежность микросхем памяти
возросла в несколько тысяч раз. Так для ОЗУ в 4 Мбайт (8
микросхем по 4 Мбит) один сбой памяти теоретически может наблюдаться
в среднем за период примерно в 10 лет непрерывной работы,
для 16 Мбайт (4 SIMM по 4 Мбайт) - около 3 лет и т. д.
Надежность и интенсивность отказов микросхем оперативной
памяти зависят от степени интеграции используемых микросхем: чем
выше степень их интеграции, тем лучше технология, меньше микросхем,
меньше соединений, выше надежность памяти и ниже величина
интенсивности отказов. Это значит, что период безотказной работы,
например, у SIMM, сформированных на основе элементов памяти по
16 Мбит, больше, чем у SIMM на основе элементов по 4 Мбит. Таким
образом, лучше модуль емкостью 16 Мбайт, чем четыре по 4 Мбайт.
Конечно, более высокая надежность характерна для SIMMмодулей
brand name, ниже - у SIMM no name.
В связи с тем, что работа современных микросхем памяти достаточно
надежна, многие материнские платы компьютеров спроектированы
таким образом, что допускают использование SIMM с контролем
четности, но данную функцию игнорируют. Примером таких
компьютеров могут служить популярные недавно brand name ПК
Champion i486 Low Profile, ПК серии R+, а также ПК фирмы COMPAQ
и многие другие.
В тех же случаях, когда, несмотря на высокую надежность существующих
стандартных SIMM без контроля четности (поп parity),
требуется предельно высокая надежность ОЗУ, используется память
с контролем четности (parity). Например, такие SIMM оперативной
памяти, с контролем четности - parity, используются в файлсерверах.
Оценивая предлагаемые SIMM с контролем четности, необходимо
знать, что на рынке комплектующих существуют различные варианты
подобных изделий. У некоторых бит четности и бит контроля
заменены специальной схемой эмуляции этих функций. В этом случае,
конечно, никакого действительного контроля нет, и такие элементы
не повышают надежность функционирования ПК. Однако подобные
изделия существенно дешевле. Такие SIMM могут представлять
оправданный интерес для тех пользователей, у которых материнские
платы для своей корректной работы требуют присутствия
бита четности.
Память с контролем четности, как это уже отмечалось,
позволяет только установить факт сбоя ОЗУ. Анализ и соответствующее
решение выполняется аппаратно-программным
обеспечением компьютера. В тех же случаях, когда необходимо
восстанавливать информацию без нарушения порядка работы,
целесообразно использовать оперативную память с коррекцией
ошибок - ЕСС - память. Данная функция достигается избыточным
аппаратным кодированием данных в ОЗУ и использованием
различных кодов самовосстановления информации. Конечно, такая
память значительно дороже традиционной - FPM DRAM (Fast Page
DRAM).
Широкое распространение нашли микросхемы оперативной памяти
- EDO DRAM (Extended Data Output - память с расширенным
выводом). Такая память дороже обычной, но позволяет увеличить
производительность компьютера. По оценкам специалистов рост
производительности составляет 3-5 % и более.
Прежде чем использовать SIMM EDO, необходимо убедиться в
том, что материнская плата поддерживает нормальную работу этого
типа памяти. Обычно эти типы памяти хорошо работают в ПК с процессорами
Pentium, сравнительно редко - в ПК на 486 процессорах.
При выборе памяти для ПК следует учитывать, что некоторые
SIMM, ориентированные на использование в определенных компьютерах,
обычно в ПК brand name, могут быть несовместимыми для архитектуры
других ПК. Например, SIMM IBM PS/2 рассчитаны только
для данных компьютеров и не подходят для многих других.
Известны примеры, когда SIMM не всех объемов памяти могут
быть использованы с конкретной материнской платой. Например, для
некоторых материнских плат не подходят SIMM объемом 8 Мбайт.
Модули памяти, как и другие элементы компьютеров, постоянно
совершенствуются. Регулярно появляются новые типы.
Каждые несколько лет происходит изменение конструктива модулей.
Расширение шины, через которую осуществляется подключение
оперативной памяти, потребовало внесения соответствующих изменений
для модулей. Появились DIMM (Dual In-line Memory Module)
(рис. 14). Компьютеры на базе процессоров Pentium, Pentium Pro,
Pentium II имеют шину данных 64 бит.
Рис. 14. Внешний вид модуля DIMM
Необходимое число модулей памяти для заполнения шины называется
банком памяти. В случае 64-разрядной шины для этого требуется
два 32-битных 72-контактных модуля SIMM или один 64-битный
модуль DIMM, имеющий 168 контактов.
Стандартными являются не буферизованные (unbuffered) модули
с напряжением питания 3,3 В. Не буферизованный модуль DIMM
может содержать память типа FPM DRAM, EDO DRAM, BEDO
DRAM, SDRAM. Модули могут иметь 64 бит или 72 бит (контроль
четности), а также 72 бит и 80 бит для ЕСС.
Конструкция модулей предусматривает автоматическое их распознавание
компьютером. Для этого используются специальные ключи
- пазы в контактной линейке. Левый - буферизованный или небуферизованный,
правый - напряжение питания - 5 В или 3,3 В.
Постоянный рост производительности процессоров и совершенствование
электронных технологий стимулируют процессы
разработки новых типов оперативной памяти. Появление памяти Direct
Rambus DRAM - Direct RDRAM потребовало нового
конструктива для модулей памяти. Микросхемы Direct RDRAM
собираются в модули RIMM, внешне подобные стандартным DIMM.
На плате модуля RIMM может быть до 16 микросхем памяти
Direct RDRAM, установленных по восемь штук с каждой стороны
платы. При этом использование модулей RIMM возможно только в
составе систем, BIOS и чипсеты которых рассчитаны на
использование данного типа памяти. Например, в случае
специализированных наборов фирмы Intel это могут быть такие
чипсеты как 1820 и их модификации. В соответствии с
рекомендациями использования модулей RIMM в архитектуре
материнской платы может быть до трех разъемов под данные модули.
Из особенностей эксплуатации модулей RIMM необходимо отметить,
что модули этого типа требуют интенсивного охлаждения.
Это связано с их значительным энергопотреблением и,
соответственно, тепловыделением, что обусловлено высоким
быстродействием данных модулей памяти. Тем не менее проблему
высокого тепловыделения можно решить ускоренным внедрением
новых технологических процессов производства микросхем памяти
Direct Rambus DRAM, например 0,1 мкм.
Как указывалось, важнейшей характеристикой памяти является
время доступа, обусловленное частотой системной шины. Чем выше
частота шины, тем более быстродействующая память требуется. Если
при частоте шины 8 МГц (ISA) можно было использовать модули 150
нс., то при 33 МГц (VLB, PCI) необходимы уже модули 70 нс.
Конечно, допустимо использовать модули с более высоким быстродействием
(с меньшими значениями - 50 и 60 вместо 70 нс., 50
вместо 60 нс.), однако применение более медленных модулей - недопустимо.
Их использование может приводить к ошибкам, сбоям, зависанию
системы.
Зависимость между частотой шины, типом и временными параметрами
памяти представлена в таблице. Для устойчивой работы
компьютера необходимо использовать модули с элементами, временные
параметры которых не хуже рекомендованных (табл. 2).
Таблица 2
Частота шины,
МГц
Тип памяти, нс.
FRM DRAM
EDO DRAM
SDRAM
-
-
-
-
-
-
-
На частоте 100 МГц целесообразно использовать модули памяти
DIMM, удовлетворяющие спецификации памяти PC 100. Данная спецификация
определяет ряд параметров модулей памяти, обеспечивающих
их устойчивую и эффективную работу на частоте 100 МГц.
Разработана спецификация памяти PC 133 и налажен выпуск соответствующих
модулей.
Память подразделяется на следующие типы:
The Fast Page Mode DRAM (FPM DRAM). Наиболее распространенный
тип памяти. В настоящее время существуют две разновидности
FPM DRAM, отличающиеся временем доступа: 70 и 60
нс. FPM DRAM 60 нс. реализуется только при частоте шины 60-66
МГц.
The Extended Data Output DRAM (EDO DRAM). Эта память
является более совершенной по сравнению с FPM DRAM-памятыо.
Она впервые появилась в 1995 г. Стимулом к широкому использованию
EDO DRAM послужило появление высокопроизводительных
компьютеров на базе Pentium с тактовыми частотами выше 90 МГц.
EDO DRAM схожа по строению с FPM DRAM, но отличается повышенной
скоростью. Существуют три разновидности EDO DRAM, отличающиеся
временем доступа: 70 нс., 60 нс. (для шины с частотой 66
МГц) и 50 нс. (при использовании чипсета 1430НХ или i430VX). Рекомендуется
использовать EDO DRAM с временем доступа 60 нс., а
лучше - 50 нс. Недостаток EDO DRAM заключается в том, что этот
тип памяти, как правило, работает неустойчиво с частотой шины более
чем 66 МГц. В связи с ожидаемым ростом частоты системной шины
этот тип памяти не является перспективным. Специалисты оценивают
EDO DRAM как временную альтернативу FPM DRAM, не требующую
серьезных конструктивных изменений.
The Synchronous Dynamic RAM (SDRAM). SDRAM - сравнительно
новая технология микросхем динамической памяти. В отличие
от других типов DRAM, SDRAM использует тактовый генератор для
синхронизации всех сигналов. До появления этого типа памяти данной
особенностью обладали только микросхемы статической памяти,
используемые как кэш-память второго уровня. SDRAM осуществляет
конвейерную обработку информации, что существенно повышает общую
производительность системы. SDRAM устойчиво работает при
частоте шины до 100 МГц. В настоящее время SDRAM
поддерживают все основные чипсеты фирм Intel, VIA Technologies и
AcerLab. Цена и себестоимость SDRAM оказалась выше, чем EDO
DRAM. SDRAM потребовала серьезных конструктивных изменений в
архитектуре материнских плат. Однако при частоте шины 66 МГц
SDRAM не дает значительного выигрыша по производительности.
Поэтому на основании совершенствования технологии EDO DRAM
была создана память Burst EDO DRAM. Но тем не менее SDRAM
осталась одной из самых перспективных моделей памяти, так как эта
сравнительно быстрая память устойчиво работает на высоких частотах.
В настоящее время выпущены элементы, рассчитанные на
работу при частотах 75, 83, 100 и 125 МГц. SDRAM обычно
располагается в 168-контактных корпусах типа DIMM.
The Double Data Rate SDRAM (DDR SDRAM -SDRAM II). Вариант
памяти SDRAM, осуществляющий передачу информации по
обоим фронтам тактового сигнала. Это позволяет удвоить
пропускную способность по сравнению с традиционной памятью
SDRAM. Кроме того, DDR SDRAM может работать на более высокой
частоте, что достигается внедрением ряда технологических
усовершенствований, например, более совершенными цепями
синхронизации и заменой сигналов TTL/LVTTL на SSTL3.
The Burst Extended Data Output DRAM (BEDO DRAM). Этот
вид памяти позволяет читать данные пакетно (блоками), то есть данные
считываются блоками за один такт. Этот метод позволяет BEDO
DRAM действительно работать очень быстро. В настоящее время этот
тип памяти поддерживает чипсет VIA (580VP, 590VP, 680VP), а также
чипсет фирмы Intel i480TX. BEDO DRAM не поддерживает работу
при частоте шины выше 66 МГц. Так как многие производители всетаки
отдают предпочтение памяти типа SDRAM, BEDO DRAM вряд
ли завоюет популярность. Тем более что разработчики создали более
дешевую модель SDRAM - SDRAM Lite, которая сравнима по цене с
BEDO DRAM. BEDO DRAM обычно представлена в корпусах SIMM
или DIMM.
Video RAM (VRAM). VRAM была разработана для обеспечения
непрерывных потоков данных в процессе обновления видеоэкранов,
что необходимо для обеспечения высокого качества изображения.
Для этого на стандартной DRAM был добавлен последовательный
порт. В то время как данные читаются из последовательного порта,
средства DRAM могут отправлять или принимать информацию.
Windows RAM (WRAM). Два типа двухпортовой памяти распространены
в настоящее время - это VRAM и WRAM. Память WRAM
гораздо производительнее, чем VRAM, - более чем на 25 %. Такие
типы памяти содержат два порта, позволяя графическим операциям
выполняться одновременно с обновлением экрана. Это почти снимает
зависимость производительности от разрешения, количества цветов и
частоты регенерации. WRAM создана специально для графических
адаптеров. Она имеет несколько дополнительных возможностей,
обеспечивающих высокую скорость пересылки данных. WRAM также
имеет лучшее отношение цена/ производительность по сравнению с
VRAM, так как она менее сложна.
The Asynchronous Static RAM (Async SRAM). Это самая первая
кэш-память, которая использовалась в компьютерах как кэш второго
уровня. Она начала использоваться еще в компьютерах на базе процессора
i386. Время доступа в зависимости от частоты варьировалось
от 12 до 20 нс. Однако Async SRAM не поддерживала синхронные обращения,
что заставляло простаивать процессор.
The Synchronous Burst Static RAM (Sync SRAM). Это один из
самых быстродействующих типов памяти. Sync SRAM может обеспечивать
почти синхронный обмен данными. Можно сказать, что почти
нет задержек при обмене данными между процессором и Sync SRAM.
Время доступа колеблется от 8,5 до 12 нс. При повышении частоты
более 66 МГц Sync SRAM доставляет данные значительно медленнее,
чем, например, РВ SRAM.
The Pipelined Burst Static RAM (PB SRAM). PB SRAM в большей
степени напоминает Sync SRAM, только способ передачи данных
у нее организован иначе.
The Direct Rambus DRAM (Direct RDRAM). Direct RDRAM -
перспективный тип оперативной памяти, обеспечивающий значительный
рост производительности компьютеров. Высокое быстродействие
памяти Direct RDRAM достигается рядом особенностей, не
встречающихся в других типах, например, применением двухбайтовой
шины с частотой 800 МГц, обеспечивающей пиковую пропускную
способность до 1,6 Гбайт/с, использованием раздельных шин, работающих
независимо и параллельно, и т. п. Контроллер памяти Direct
RDRAM управляет шиной Rambus и обеспечивает преобразование
ее протокола с частотой до 800 МГц в стандартный 64-разрядный
интерфейс с частотой шины до 200 МГц. Все основные
производители микросхем и модулей памяти лицензировали данную
технологию и ведут интенсивные исследования.
Фирма Intel собирается во второй половине 1999 г. выпустить
чипсеты с поддержкой Direct RDRAM. Фирма AMD ведет разработку
двух вариантов чипсетов для процессора К7: один для SDRAM, другой
для Direct RDRAM. Модули Direct RDRAM - RIMM внешне подобны
модулям DIMM. Массовый выпуск модулей RIMM и их интенсивное
использование в компьютерах ожидается с 2000 года.
Процесс передачи информации для каждого типа микросхем
памяти происходит по соответствующему алгоритму. Однако все они
предусматривают передачу так называемых "четырех слов" (QuardWord).
Скорость обмена между памятью и процессором определяется
количеством тактов, которые требуются для передачи каждого слова.
Причем частота самих тактов зависит от частоты хост-шины - шины,
соединяющей процессор и память.
4. Системы вывода видеоинформации
Общие принципы построения
программ трехмерной
графики
Видеопрограммы условно можно
разделить на два типа: плоские и
векторные.
Первые из них представляют для оператора поле деятельности,
размер которого обычно соответствует размеру графического экрана,
при этом динамика всех событий отображается в двух измерениях. По
экрану монитора перемещаются спрайты (совокупности одноцветных
прямоугольников или многоугольников, цвета и взаимное положение
которых формируют объект) долженствующих двигаться объектов.
Ко второму типу или векторным видеопрограммам относятся
трехмерная (объемная) графика, мультимедиа-презентации и
анимация. В них информация выводится на экран в виде трехмерного
виртуального изображения, построенного из линий и
многоугольников, координаты которых обсчитываются параллельно с
изменением графической ситуации.
Появление "защищенного" режима работы микропроцессоров
обеспечило доступ к объемам памяти, лежащей выше 640 Кб. В связи
с этим появилась возможность создавать более сложные виртуальные
изображения. Главным элементом нового способа изображения виртуальности
является текстурирование. При нем видимое изображение
объекта, имеющего протяженные размеры в трех измерениях, представляет
собой не просто набор одноцветных прямоугольники, а набор
растровых картинок, то есть состоит из точек. Такое представление
изображения получило название растрового изображения.
При работе с видеопрограммами, будь то игровые, анимационные
или, наконец, художественной графики, важным звеном является
эффект присутствия оператора. Чем реальнее происходящие на экране
события, тем лучше проявляется данный эффект. Он создается благодаря
масштабированию реального объекта: при уменьшении условного
расстояния, под которым подразумевается степень удаленности
объекта от воображаемой плоскости, проходящей через плоскость экрана
монитора, от плоскости экрана до выводимого объекта размеры
изображения этого объекта увеличиваются, а при увеличении этого
расстояния - уменьшаются. Соответствующим образом масштабируется
и рисунок наложенной на объект текстуры, то есть элементы объекта
изменяют свои размеры при изменении масштаба проецирования
его на экран.
Введение в систему отображения информации масштабирования
ведет к нежелательному явлению - искажению текстуры объекта. Это
объясняется тем, что при приближении объекта к плоскости экрана,
точки его текстуры "увеличиваются", то есть текстура начинает занимать
уже больший квадрат, в котором одна и та же точка прорисовывается
несколько раз. И если, наконец, объект приблизить вплотную к
плоскости экрана, то на экране он будет изображен в виде крупной и
бесформенной мозаики из разноцветных квадратов. Такое
искаженное отображение объекта в большинстве случаев не дает
никакого представления о форме и цвете объекта.
Аналогичная ситуация складывается при удалении объекта от
плоскости экрана. В этом случае текстура уменьшается до микроскопических
размеров, превращая объект в один или в несколько квадратов.
При этом реальные очертания и форма объекта полностью исчезают,
делая его так же, как и ранее, неузнаваемым.
Одним из путей устранения данного недостатка является уменьшение
размера пикселя. Однако такой подход требует, во-первых, использования
больших объемов памяти и значительных затрат процессорного
времени на обработку информации, а, во-вторых, особо не
решает проблем, возникающих при сильном приближении или удалении
объектов.
Более эффективным является метод удаления невидимых поверхностей
при изображении сложных трехмерных объектов, получивший
название "z-buffer". Основным достоинством этого метода является
то, что из совокупности объектов на экране воспроизводятся
только те, которые располагаются ближе к плоскости экрана. При
этом объекты, по сценарию находящиеся за ними, не воспроизводятся
и оператору не видны.
Программная реализация этого метода заключается в том, что в
памяти компьютера есть два массива данных. Один массив (буфер
кадра) содержит данные, формирующие изображение, выводимое на
экран, а другой (буфер глубины) - данные, формирующие условное
расстояние от объекта до наблюдаемой оператором плоскости экрана.
Каждая частица объекта или предмета разлагаются в растр, то есть
представляются в виде набора точек, и для каждой точки рассчитывается
расстояние от нее до экрана. Те точки, расстояние до которых
минимально, то есть те точки, по сценарию которые должны быть
видны на экране, заносятся в буфер кадра. Затем буфер кадра выводится
на экран, и цикл повторяется столько раз, сколько времени изображение
объекта выводится на экран.
Несмотря на высокое быстродействие современных процессоров
(до десятка миллионов треугольников в секунду), программный
вывод видеоизображения все-таки приводит к некоторой задержке
при формировании полной картинки на экране монитора. Эта
неприятность особенно проявляется при отображении динамически
изменяющихся объектов или их параметров (перемещении,
изменении формы, цвета и т.д.). Поэтому на практике используется
аппаратный способ вывода изображения с использованием
видеоускорителей, который является более быстродействующим по
сравнению с программными методами вывода видеоинформации.
В рамках программной и аппаратной обработки графической
информации существует несколько основных способов повышения
производительность ее вывода:
- ускорение передачи данных из основной памяти,
- передача большего числа функций генерации изображения видеоускорителю,
- повышение тактовой частоты видеоускорителя,
- увеличение разрядности локальной шины между видеоускорителем
и видеопамятью,
- применение объемной и быстродействующей видеопамяти.
- использование интерфейса AGP.
Из всех перечисленных способов наибольшее внимание
уделяется разработке и совершенствованию видеоускорителей, а
также использованию интерфейса AGP.
Видеоускорители
Необходимость реализации
функции аппаратной обработки и наложения текстур при работе с
программами трехмерной графики привело к появлению видеоускорителей.
Первые видеоускорители появились во времена использования
компьютеров на 386-х и 486-х процессорах фирмы Intel, объединенных
с другими устройствами шиной VLB. Они работали под
управлением оболочки Windows 3.1, за что получили название
"Windows-ускорители". Суть их работы заключалась в том, что графический
адаптер выделял часть своей памяти под хранение иконок
Windows. Каждый раз при переключении в Windows на Program
Manager графический адаптер не перерисовывал экран полностью, а
считывал данные из своей памяти, что сильно ускоряло процесс переключения
с задачи на задачу.
На рис. 15 показан алгоритм обработки видеопрограмм, который содержит
два основных этапа:
- построение геометрической фигуры,
- рендеринг.
Рис. 15. Алгоритм обработки видеопрограмм
На первом этапе все просчеты координат полигонов и освещение
возлагаются на центральный процессор. Современные видеоускорители
осуществляют рендеринг - наложение текстур и затенение. Каждый
видеоускоритель содержит один или несколько графических
процессоров, по своим техническим характеристикам (тактовой
частоте, длине обрабатываемых слов, возможности
распараллеливания операций, наличию кэш-памяти, быстродействию
шины видеопамяти и т.д.) не уступающим центральному процессору.
Видеоускоритель имеет следующие параметры:
- производительность вывода информации,
- количество отображаемых цветов,
- разрешающая способность,
- объем и тип используемой памяти.
Производительность вывода информации определяется в основном
типом микросхем, входящих в состав схемы видеоускорителя.
Первые разработки содержали один или два процессора графики, которые
позволяли обрабатывать данные с производительностью до 100
Мб/с. Последние разработки содержат до трех и более процессоров и
позволяют повысить производительность более чем в три раза.
Цвет во многом определяет реалистичность объекта. Для вывода
черно-белого изображения используются два цвета - черный и белый.
Сочетания этих цветов позволяют получить различные оттенки
серого цвета, формирующие двухцветное изображение на экране
монитора. Для передачи цветного изображения используется палитра
из 256, 65536 или 16 млн. цветов. При этом, чем больше палитра
цветов, тем естественнее наблюдаемый объект.
Однако увеличение палитры цветов ведет к увеличению формата
данного, несущего информацию о цвете. Так для вывода 256-цветного
изображения, необходимо использовать 8-битный, 65536-цветного -
16-битный и 16 млн. - цветного - 24-битный код. Очевидно, что с
увеличением палитры цветов растут требования к вычислительной
мощности видеоускорителей.
Разрешающая способность видеоускорителя должна поддерживать
разрешение, при котором четко просматриваются границы объекта
при значительном удалении его от плоскости экрана. С увеличением
разрешающей способности, при которой четко
просматриваются границы объекта при его воспроизведении, более
реальным становится представление о форме, цвете и других
параметрах объекта. Поэтому весьма важным при разработке
видеопрограмм трехмерной графики является увеличение
разрешающей способности видеосистемы, не увеличивая, при этом, в
большой степени требования к самой видеосистеме (быстродействию,
памяти).
Увеличение разрешающей способности, в первую очередь, требует
использования значительных объемов видеопамяти. Так, если объект
представлен палитрой из 256 цветов, то цвет каждого пикселя занимает
8 бит или 1 байт, 65536 цветов - 2 байта. Поэтому память
должна иметь объем не менее 2621440 байт или 2 Мб. Наконец, для
отображения 16 млн. цветов, при котором цвет пикселя занимает 3
байта - объем памяти составляет не менее 4 Мб.
Другим направлением развития систем ускоренного вывода видеоинформации
было появление стандартов MPEG и их дальнейшей
модификации CD-1. С появлением данных стандартов компрессии
видеоинформации появилось множество аппаратных MPEGраспаковщиков
или интегрированных графических адаптеров с
MPEG.
MPEG - система стандартов цифрового кодирования
изображения, включающая следующие стандарты:
- MPEG-1 - стандарт цифрового кодирования изображения,
в котором не применяется чересстрочная
развертка со Производительностью 1,5 Мбит/с,
- MPEG-2 - стандарт на цифровое кодирование телеизображений
с чересстрочной разверткой, сопровождающееся
сжатием данных,
- MPEG-4 - стандарт на кодирование изображений,
передаваемых на низкой производительность по сетям
Internet,
- MPEG-7 - стандарт на кодирование изображений,
формируемых и передаваемых средствами мультимедиа.
Разработка процессоров с ММХ - технологией, имеющих широкие
возможности по распаковке MPEG, привело к появлению программных
средств вывода видеоинформации, не уступающих по качеству
аппаратным средствам. В результате интерес к дорогостоящим
аппаратным средствам стал резко снижаться.
С ростом производительности компьютеров разработчики программных
средств обработки информации все большее внимание уделяют
программам, использующим 3D графику. Применение трехмерной
графики, в отличие от двухмерной, накладывает определенные
требования на аппаратные средства и, в первую очередь, на графические
адаптеры. Основным отличием современных видеоускорителей
является наличие карты памяти, в которой располагается кадр плоского
изображения.
Идея использования карты памяти заключается в следующем. В
свободную область памяти динамически подгружается информация о
текстурах. В этом случае на долю процессора выпадает роль задания
координат объекта, а их заполнением цветом занимается графический
адаптер. Так как текстуры по своей сути, как правило, однородны и
представляют из себя часто повторяющиеся рисунки, достаточно
только сохранить в памяти лишь его текстуры. При этом чем больше
свободной видеопамяти остается, тем больше таких текстур можно
сохранить.
Второй способ, часто применяемый совместно с ранее описанным,
заключается в том, что в память адаптера помещаются трехмерные
модели объектов. Представим, например, вращающийся в пространстве
круг со спицами, подобный колесу велосипеда. Он имеет
постоянную круглую форму, а меняются лишь координаты его частей.
В этом случае достаточно сохранить в видеопамяти его трехмерную
модель и вывод графики становится значительно быстрее.
Аппаратная реализация этого способа подразумевает использование
графических ускорителей.
Вот те два основных принципа, на которых основана любая система
ускоренного вывода трехмерной графики. Эти принципы используются
во все типах компьютеров от IBM PC до Silicon Grafics.
Эта возможность имеется за счет того, что графический адаптер является
довольно стандартным устройством и может программироваться.
Для этих целей существует ряд стандартов, например, VGA, SVGA,
VESA. Все эти стандарты совместимы между собой, что существенно
облегчает процесс выбора и настройки компьютеров. Все
графические адаптеры в общем-то соответствуют этим стандартам, а
значит обладают обязательным набором из пяти команд, с помощью
которые осуществляется вывод информации.
Первыми к разработке трехмерных ускорителей приступила
фирма 3Dfx, разработавшая не только процессор вывода информации,
но и среду, в которой этот процессор может работать. Аппаратный
принцип вывода видеоинформации с использованием 3Dfx графических
ускорителей подразумевает использование всего одной команды.
Что, естественно, ускоряет процесс ее вывода. Появление операционных
систем Windows 95/NT и их расширений для вывода трехмерной
графики способствовало дальнейшему росту качественных характеристик
процесса вывода видеоинформации.
Условно процесс формирования 3D-графики можно разделить на
два больших этапа: "геометрический", где программа по своим алгоритмам
просчитывает и формирует полигональные фигуры, и этап
рендеринга, на котором на полигонную модель накладываются текстуры
и все это выводится на экран монитора. 3Dfx графические ускорители,
как и все существующие на сегодняшний день видеоускорители,
по сути предназначены для выполнения второго этапа. Все
дальнейшие операции по просчету геометрии выполняются центральным
процессором. Принцип их работы заключается в следующем.
При обработке и выводе обычного изображения 3Dfx графический
ускоритель бездействует. В тот момент, когда программа посылает
команду 3Dfx графическому ускорителю на включение, обычная видеокарта
просто сохраняет в своей памяти последние данные, содержащие
экранную информацию, то есть те данные, которые были получены
перед включением 3Dfx. Ввод этой команды заставляет в
дальнейшем вывод основного изображения осуществлять с помощью
3Dfx ускорителя. Для этого у нее есть два процессора, обрабатывающих
изображение, и своя собственная оперативная память.
Первый процессор 3Dfx графического ускорителя занят процедурой
z-buffer, второй - наложением текстур (обычной картинки, накладываемой
на полигонную модель). Полученная картинка выводится
на экран. Видеоускоритель имеет память для хранения двух буферов
кадра; один буфер для хранения данных текущей страницы экрана,
другой - для пересчета данных другой страницы экрана. Следовательно,
на каждый пиксель необходимо использовать 4 байта памяти.
Кроме того, 16-битный буфер глубины требует 2 байт. Следовательно,
на каждый пикселе остается 2 Мб памяти. Этого вполне достаточно
для надежной работы 3Dfx карты.
Использование 3Dfx карты существенно ускоряет процесс
вывода изображения, не ухудшая при этом его качество. В первую
очередь это проявляется в том, что при приближении объекта к
плоскости экрана не видны отдельные квадраты пикселей
изображения; цвета одной части объекта плавно переходят в цвета его
другой части. При удалении объект не теряет своей формы и
пропорций, сохраняет свои цвета при довольно значительном
масштабировании.
Кроме перечисленного, 3Dfx карта берет на себя следующие
функции:
- придание текстурам различной степени их яркости (освещение
текстур). Освещение текстур во многом определяет объем объекта
или его части. 3Dfx карты способны формировать три категории
освещения текстур:
а) рассеянный свет, при котором учитывается только общая освещенность
объекта. Визуально это проявляется в плавном изменении
яркости объекта в целом;
б) свет матового отражения, при котором к основному
источнику, освещающему объект, как бы добавляются
дополнительные источники, разнесенные в пространстве;
в) свет зеркального отображения, при котором осуществляется
расчет отражения света от объекта, на поверхности которого возможны
блики и светоотражающие участки.
- быстрая анимация текстур,
- сглаживание изображения,
- "размазывание" текстур,
- специальные световые эффекты (эффекты Гуро - обработка
трех соседних пикселей с усреднением их цвета),
- пиксельное альфа-смешивание (эффект полупрозрачности, используемый,
например, для отображения стекла, воды, дымки и т.д.).
Для реализации перечисленных функций фирмой 3Dfx была
впервые разработан интерфейс, получившей название Glide - низкоуровневая
библиотека команд обработки трехмерной графики. Построенные
на ее основе аппаратные средства обработки видеоинформации
- ускорители Voodoo 1, Voodoo 2, Voodoo 3 и Banshee (все
3Dfx), позволяют значительно повысить быстродействие видеосистем
при выводе информации.
Другим направлением является разработка фирмой Silicon
Ggraphics новой и более доступного интерфейса OpenGL, принятого
на вооружение не только производителями видеопроцессоров, но и
многими разработчиками, в частности, игровых программ. Главным
достоинством его технологии являются возможность переноса на
любую платформу - Unix, Macintosh, Amiga и т.д., а также
возможность поддержки его инструкций основным процессором
системы.
Одновременно с этим фирма Microsoft разработала библиотеку
Direct3D (или D3D), входящую в API DirectX, претендующую на лидирующее
положение среди систем ускоренного вывода видеоинформации,
работающих в операционной системе Windows 95/NT.
Большую роль в ускорении вывода изображений играет принятая
идеология формирования изображения, получившая название
"engine" (движок). В общем случае под движком понимается
математическая модель, предназначенная для вычислительного
решения ряда задач, связанных с имитированием реально
происходящих событий и явлений. Например, движение автомобиля
по заданной траектории может быть математически описано с
определенной степенью точностью. И чем точнее описание, тем
реалистичнее воспринимается движение виртуального автомобиля на
экране. При этом степень достоверности изображения с реальным
объектом определяется не только формой и цветом автомобиля, но и
соответствием угла поворота колес и траекторией движения,
Производительностью изменения окружающего пейзажа и т.д.
Движки делятся на два типа: полигонные и воксельные.
Полигонные движки, наиболее часто встречающиеся на
практике, получили свое название от понятия "полигон" -
пространственного многоугольника, имеющего неограниченное
число вершин, из которого строятся объекты. Чаще всего в качестве
многоугольника в компьютерной графике используется простейший
вариант многоугольника - треугольник. При этом все изображение
объекта строится из плоскостей, поэтому иногда такую графику
называют плоскостной.
Воксельные движки получили название от слова "воксель" - объемная
точка. Они отличаются от полигонных движков тем, что с их
помощью имеется возможность создания более гладких кривых (или
округленных) поверхностей, чем это было бы возможно при построении
объекта с использованием даже самого большого количестве полигонов.
Воксельные технологии впервые нашли применение в игровых
авиасимуляторах для отображения поверхности земли, что само по
себе является довольно трудной задачей, так как при ее решении приходится
учитывать расстояние, освещенность, неровности, холмы,
впадины и прочие элементы рельефа. В простейшем случае все перечисленные
составляющие поверхности земли можно представить в
виде примитивов, например, холмы - в виде текстурированных пирамид,
впадины - квадратов и т.д. Однако слабое соответствие виртуального
и реального изображений и потребовало применения воксельных
технологий.
В процессе обработки информации в памяти компьютера создается
несколько карт, хранящих различную информацию. К таким картам
можно отнести:
- карту цветов, хранящую данные о цвете вокселя,
- карту расстояний, предназначенную для хранения данных о
расстоянии, на котором находится воксель, формирующий объект, относительно
какой либо отметки, например, уровня земли. Изменение
карты расстояний приводит к изменению пространственных размеров
объекта,
- карту освещенности, содержащую данные об освещенности одного
или нескольких вокселей и предназначенная для формирования
видеоэффектов, связанных с изменением освещенности объекта.
При изменении расстояния от объекта до плоскости экрана осуществляется
сглаживание поверхностей объекта, то есть происходит
корректировка значений карт расстояний, цветов и освещенности.
При этом процесс построения поверхности объекта заключается в
том, что весь экран разбивается на вертикальные линии. Внутри
каждой линии производится расчет (но уже в плоскости) видимости
участка поверхности, а затем происходит его прорисовка.
Воксельные технологии при всех своих преимуществах имеют и
ряд недостатков. Во-первых, они нуждаются в большом объеме памяти
для хранения карт поверхности объекта. Во-вторых, требуют
достаточно больших вычислительных мощностей для приближения
виртуального изображения объекта к реальному.
В настоящее время освоен выпуск большого числа видеоускорителей
для ускоренного вывода информации, использующих воксельную
технологию вывода информации (см. табл. 3).
Таблица 3
Характеристики
Фирма и тип ускорителя
Ускорителя
3Dfx
Voodoo3
Nvidia
Riva TNT
Matrox
G200
S3 Savage
3Dfx
Banshee
Технология, мкм
0,25
0,35 - 0,25
0,35
0,25
0,35-0,25
Шина
AGP, PCI
AGP, PCI
AGP, PCI
AGP
AGP, PCI
Частота процессора,
МГц
Производительность
, млн. треугольников/с
1,5
Объем памяти,
Мбайт
8-16
8-16
Разрядность, бит
Максимальное разрешение
2048 x
1920 x
1900 x
1920 x
1600 x
Используемый
интерфейс
Glide,
OpenGL,
DirectX
OpenGL,
DirectX
OpenGL,
DirectX
OpenGL,
DirectX
Glide,
OpenGL,
DirectX
В процессе работы ускорители выполняют следующие функции:
- перспективную коррекцию текстур (коррекцию цвета каждого
текселя (элемента объекта), который изменяется по мере удаления
объекта и соответствующего изменении его пространственных размеров),
- билинейную или трилинейную фильтрацию (сглаживание нанесенных
на полигон текстуры путем определения цвета пикселя по
цветам пяти (или девяти) ближайших текселов (одного элемента
текстуры), позволяющее осуществлять плавный цветовой переход от
одного участка объекта к другому),
- мип-мэппинг (замена текстуры при приближении и удалении к
полигону, на который она нанесена, позволяющая корректировать качество
изображения при различных степенях его удаления от плоскости
экрана), - туман (формирование слабо видимых и, в большинстве
случаев, белесых участков объекта, удаленных на некоторое расстояние
от плоскости экрана),
- прозрачность (альфа смешение) (наложение одной, как правило,
полупрозрачной структуры на непрозрачную структуру),
- анимацию структур (приведение объектов в движение),
- z - буферизацию,
- затенение объектов (формирование участков объекта, степень
видимости которых определяется типом, числом и направлением источников
освещения).
Растущие требования по качеству видеоизображений привели к
разработке видеоускорителей (NVIDIA GeForce 256, S3 Savage 2000,
3Dfx Voodoo4 Napalm, ATI Rage Fury MAXX Aurora), обеспечивающих
не только проведение расчетов по рендерингу (рис. 15), но и просчет
геометрии. Это позволило освободить центральный процессор
от вычислений, связанных с обработкой программ трехмерной графики,
и переложить практически всю работу на видеоускоритель. Передача
информации между видеоускорителем и центральным процессором
осуществляется по шинам PCI или AGP.
Главной особенностью видеоускорителей является
использование 32-битного цвета. Их тактовая частота - до 200 МГц,
что составляет при объеме видеопамяти от 64 Мб более 480 млн.
пикселей в секунду.
Необходимо отметить, что единого подхода по оценке быстродействия
видеоускорителей пока нет. Связано это с тем, что, вопервых,
разные видеоускорители на аппаратном уровне реализуют
очень разные наборы функций, а, во-вторых, различные видеопрограммы
используют разные функции. Большое разнообразие функций
является главной единственной причиной, не позволяющей однозначно
определить их быстродействие. Однако проведенные приближенные
оценки показывают, что для большинства программ быстродействие
микропроцессорных систем вывода видеоинформации с использованием
видеоускорителей, использующих шину PCI, и систем с
использование интерфейса AGP приблизительно одинаково. Однако
предельные возможности видеоускорителей могут быть ограничены
шиной, связывающей его с центральным процессором. До недавнего
времени в качестве таковой применялась шина PCI. Указанное ограничение
с использованием этой шины в наибольшей степени начало
проявляться с появлением программ трехмерной графики. Это объясняется
тем, что все поверхности объектов, как указывалось ранее, покрыты
текстурами - растровыми изображениями. Учитывая то, что
для большей реалистичности движущихся объектов генерируется не
только кадр видимого, но и невидимого в данный момент времени
изображения, то для хранения этих текстур требуется использования
более емкой оперативной, а не локальной, памяти. Однако оперативная
память, связанная с видеоускорителем относительно медленной
шиной PCI, приводит к сдерживанию производительность вывода
информации.
5. Шины персональных компьютеров
Шина ПК - это канал (магистраль), который связывает между
собой процессор, ОЗУ, кэш-память, контроллеры устройств ПК, а
также разъемы (слоты) расширения на материнской плате для подключения
различных контроллеров устройств ввода/вывода. При этом
для сохранения совместимости данные слоты должны быть механически
и электрически идентичны в разных моделях IBM-совместимых
компьютеров.
По шине передаются как данные, так и управляющие сигналы.
Работа шины осуществляется в соответствии с определенными
правилами, регламентированными стандартами.
Важнейшие характеристики шин: частоты, разрядности, скорости
передачи данных. При этом, как правило, частота измеряется в МГц,
разрядность - в битах, скорость - в мегабайтах в секунду или в мегабитах
и секунду.
Шина ISA
Шина Industry Standard
Architecture (ISA) - системная шина (ISA-bus) была специально разработана
в 1984 г. под возможности процессоров i80286 для IBM
PC/AT286. Для ISA-шины часто используется другое название - АТшина.
Эта шина была предназначена заменить шину XT ПК IBM
PC/XT и аналогичных IBM-совместимых ПК на основе процессоров
i8086, i8088 и их аналогов.
Ввиду неперспективности морально устаревшей шины XT ее
особенности и возможности рассматривать здесь нецелесообразно.
Шина ISA позволяет передавать 16-разрядные данные и команды с
частотой 8 МГц, что соответствует скорости 16 Мбайт/с. Значения
этих параметров были сравнительно высокими и достаточными не
только для того уровня развития компьютерной техники, они и в настоящее
время часто удовлетворяют требованиям ПК для решения задач,
не требующих высокой производительности и не критичных к
времени их выполнения. Данная шина стала стандартом для IBMсовместимых
ПК на длительный срок.
Шина EISA
Системная шина
Extended Industry Standard Architecture (EISA) фактически является
расширением шины ISA. Частота шины EISA - 8 МГц. Однако эта
шина характеризуется большей разрядностью - 32 бита и более высокой
скоростью передачи данных - до 33 Мбайт/с. Шина EISA совместима
с ISA-шиной: кроме собственно 32-битных плат EISAконтроллеров
на EISA-шине могут быть установлены стандартные 16битные
платы ISA. В настоящее время шина EISA в основном используется
в некоторых вариантах файл-серверов компьютерных сетей.
Шина MCA
Шина Micro Channel
Architecture (MCA) - системная шина с высокой скоростью передачи
данных - до 160 Мбайт/с и разрядностью шины данных от 16 до 64
бит. Разработка и исключительное право на ее использование принадлежит
фирме IBM. Вероятно поэтому, для ПК, использующих MCA,
рынок предлагает сравнительно мало периферийных устройств и по
относительно высоким ценам. Вследствие этого популярность данной
шины сравнительно низка и производство компьютеров с шиной
MCA практически прекращено.
Развитие вычислительной техники и расширение области применения
ПК сопровождаются увеличением потоков информации и
скорости передачи данных между процессором, внутренней и внешней
памятью, устройствами ввода/вывода и т. д. Однако данное увеличение
сдерживается ограниченной пропускной способностью указанных
системных шин. Все это требует новых архитектурных решений,
обеспечивающих повышение производительности ПК.
Шина VLB
Локальная шина Local Bus (LB)
быстрее, чем шины ISA, EISA, потому что данные по ней передаются
с внешней тактовой частотой используемого в составе ПК
процессора. Например, 33 МГц в случае Intel 486DX2-66, тогда как
стандартная шина ISA работает при тактовой частоте 8 МГц.
Стандарт локальной шины VESA (VESA local bus) был разработан
и введен в 1992 г. фирмами-производителями компьютерной
техники, входящими в ассоциацию VESA (Video Electronics Standart).
При разработке нового стандарта одновременно решались две задачи.
Первая - повышение производительности компьютеров за счет увеличения
пропускной способности системных шин. Вторая - сохранение
преемственности в использовании стандартного оборудования. В
результате была создана 32-разрядная локальная шина - VESA local
bus (VLB), дополняющая стандартную системную шину ISA при обмене
данными процессора с контроллерами монитора, жесткого
диска, кэш-памяти, сети и т. д.
В соответствии со стандартом максимальное число
контроллеров, подключаемых к данной локальной шине, было
установлено в количестве не более трех. Тактовая частота VLB
соответствовала частоте процессора. При внешней частоте
процессора, равной 33 МГц, шина VLB обеспечивала скорость
передачи данных до 132 Мбайт/с.
К основным недостаткам шины VLB следует отнести следующие:
несовместимость и слабую нагрузочную способность VLB.
Действительно, поскольку быстродействие VLB связано с тактовой
частотой процессора, контроллеры, подключаемые к шине VLB,
должны были обеспечивать работу на этой частоте. На других ПК
частота могла отличаться. Слабая нагрузочная способность VLB в
основном была связана с тем, что данная шина фактически являлась
продолжением контактов собственной шины процессора, что и
отражено на рис. 16.
Кстати, этим объясняется совпадение частоты шины VLB и
внешней тактовой частоты процессора.
Каждое подключаемое устройство является дополнительной нагрузкой
и искажает форму передаваемых процессором сигналов (их
фронтов). Именно поэтому число подключаемых к локальной шине
VLB устройств ограничено: стандарт VLB предусматривает подключение
к данной шине не более трех устройств, обычно это одно
или два устройства. Как правило, это контроллеры монитора и жестких
дисков.
Рис. 16. Организация ПК с шиной VLB
Шина PCI
Шина PCI (Peripheral Component
Interconnect) является альтернативным вариантом локальной шины.
Эта шина образует 32-битный канал между процессором и контроллерами
периферийных устройств (рис. 17). Для PCI частота ограничена
33 МГц, что позволяет передавать данные по шине, как и в случае использования
шины VESA, со скоростью до 132 Мбайт/с.
Таким образом, шина PCI имеет практически такие же скоростные
свойства, что и шина VLB при частоте процессора равной 33
МГц. Однако число контроллеров не ограничивается тремя, как для
VLB, а может достигать десяти. Стандарт шины PCI поддерживает
спецификации VESA для BIOS и видеоадаптеров. Кроме того, локальная
шина PCI оптимально соответствует 64-битной технологии современных
процессоров.
PCI относится к классу так называемых шин-"пристроек", поскольку
имеет между собой и локальной шиной процессора специальный
узел - согласующий "мост" (электрический и логический согласователь).
Рис. 17. Организация ПК с шиной PCI
Стандарт PCI предусматривает использование контроллера, осуществляющего
разделение управляющих сигналов шины и процессора,
и арбитраж шины. Это делает шину процессорно-независимой,
обеспечивая ее использование не только на Intel-подобных
процессорах. Контроллер шины PCI позволяет работать шине с 10
платами расширения.
Стандарт PCI также предусматривает несколько способов повышения
пропускной способности шины. Один из них - блочная передача
последовательных данных, применяемых, например, в графике,
дисковых файлах, что не требует дополнительного времени на установку
адреса каждого элемента.
Более того, видео акселератор может накапливать информацию в
буферах, что обеспечивает одновременный с чтением данных из памяти
блочный обмен с периферийными устройствами. Другой способ
ускорения передачи данных - мультиплексирование. Оно предусматривает
передачу последовательных данных по адресным линиям, что
удваивает пропускную способность шины. При рабочей частоте 66
МГц и возможности передачи ею 4 байт информации за каждый такт
пропускная способность шины теоретически достигает 250 Мбайт/c.
Практически она примерно в два раза ниже. При тактировании шины
частотой 100 МГц, используемой в МПС на МП Pentium II и Pentium
III, теоретическая пропускная способность шины может быть
доведена до 400 Мбайт/с.
Шина PCI использует установку прерываний по уровню сигнала.
Стандартом PCI предусмотрена 64-разрядная версия PCI-шины.
Это дает возможность ее использования в системах на МП Pentium II
и Pentium III, которые выполняются с 64-разрядной шиной данных.
Одновременно этот стандарт подразумевает конфигурирование устройств,
подключаемых к МПС, программным способом. Последнее
дает возможность использовать режим "plug-and-play" (включил и работай),
при котором новое устройство операционной системой автоматически
распознается и подключается к системе.
Для 32-разрядной шины PCI используется 124-контактный разъем,
причем в нем предусмотрены ключи и контакты, предназначенные
для оценки необходимого для работы платы расширения напряжения
питания (5 В или 3,3 В). Для 64-разрядной шины используется дополнительный
64-контактный разъем.
Шина AGP
Стандарт на шину AGP был раз -
работан фирмой Intel в начале 1997 г. и предусматривал разработку
высокопроизводительной шины для вывода графики, за что она и получила
название AGP (Accelerated Graрfics Port) (рис. 18). Здесь видеопамять
располагается не на графическом адаптере, а в ОЗУ компьютера.
В процессе обработки информации процессор автоматически
выделяет необходимый объем памяти для вывода графики.
Рис. 18. Организация ПК с шиной AGP
Физически это будет реализовано в виде добавки для шины PCI
и полностью прозрачно для нее.
AGP работает на частоте основной памяти (66 МГц) и имеет два
режима работы:
- режим (x1), при котором данные передаются только по переднему
фронту тактового сигнала, что дает возможность достичь пиковой
пропускной способности 266 Мбайт/с,
- режим (x2), при котором данные передаются и по переднему, и
по заднему фронту тактового сигнала, при этом пропускная способность
достигает значения в 532 Мбайт/с.
AGP реализована двумя моделями. Первая из них основана на
традиционной модели DMA, а вторая - на новой модели DIME. В зависимости
от выбранной модели данные по-разному распределяются
между основной и локальной памятью, что, в свою очередь, влияет на
качество отображаемой картинки и частоту смены кадров.
В режиме DMA для графики используется только локальная память
видеоускорителя, а данные, расположенные вне ее, предварительно
загружаются в локальную память и лишь затем обрабатываются
видеопроцессором. При этом AGP исполняет роль быстрой шины.
В режиме DIME для построения изображения видеоускоритель
использует локальную и системную память. При этом любая структура
данных может располагаться как в локальной, так и в системной
памяти. Данные не копируются предварительно из системной памяти
в локальную, а интерпретируются "на месте".
Необходимо отметить одну важную особенностью AGP, которая
состоит в том, что память под текстуры выделяется операционной
системой по требованию исполняемой программы и остается доступной
для него. Поскольку текстура может занимать более одной страницы
оперативной памяти (более 4 Кбайт), то в спецификацию AGP
включена таблица переадресации графики, содержимое которой
должно быть согласовано с таблицами переадресации операционной
системы. Таким образом, поддержка AGP не может ограничиваться
драйвером производителя, здесь требуется поддержка на уровне операционной
системы. Такая поддержка реализована, например, в версии
Windows 98.
Преимуществом при использовании AGP является следующее:
- интерфейс реализован по принципу "соединение точка-точка",
при котором отсутствуют проблемы с арбитражем шин,
- в интерфейсе предусмотрены раздельные шины для передачи
команд и данных, повышающие пропускную способность интерфейса,
- применение конвейеризации и технологии отложенного выполнения
команд, позволяющие вплотную приблизиться к скоростному
теоретическому пределу интерфейса.
Принимая во внимание перечисленные преимущества интерфейса
AGP разработано большое количество видеоускорителей, совместимых
со спецификацией AGP, среди которых можно отметить Asus
3DexPlorer 3000, ATI Xpert@Work, 3Dfx Voodoo 3, Diamond Viper330,
Matrox Millenium II, STB Velocity 128 и др.
В заключение необходимо отметить, что единого подхода по
оценке быстродействия AGP пока нет. Связано это с тем, что, вопервых,
разные видеоускорители на аппаратном уровне реализуют
очень разные наборы функций, а, во-вторых, различные видеопрограммы
используют разные функции. Большое разнообразие функций
является главной единственной причиной, не позволяющей однозначно
определить быстродействие шины. Однако проведенные приближенные
оценки показывают, что для большинства программ трехмерной
графики быстродействие микропроцессорных систем вывода
видеоинформации с использованием видеоускорителей, использующих
шину PCI, и систем с использование интерфейса AGP приблизительно
одинаково.
Шина USB
Шина USB (Universal Serial Bus)
была разработана в 1996 г. Эта относительно быстрая и дешевая двунаправленная
шина имеет скорость передачи данных:
- до 12 Мбит/с в быстром режиме,
- до 1,5 Мбит/с в медленном режиме.
Максимальная длина сегмента шины: до 5 м.
USB предназначена для обеспечения обмена различными данными
(табл. 4) между центральным процессором и периферийными устройствами
в условиях динамического (горячего) изменения конфигурации
системы.
Как заявляют разработчики, шина должна стать стандартным
расширением архитектуры ПК, призванным расширить возможности
персоналок, в первую очередь в области компьютерной телефонии и
приложений для сектора SOHO, а также свести к минимуму излишнее
разнообразие интерфейсов и шин для подключения периферии.
Таблица 4
Тип
Передачи
Control
Interrupt
Isochronous
Bulk
Доставка данных
-
+ задается максимальная
задержка
1255/10-255
+ 1 пакет /
на канал в
кадре
Тип канала 2
Message, ?,
последовательное
выполнение
IRP
Stream, ? только
от ВУ к хосту
Stream,?
Stream, ?
Размер пакета,
байт 3
8, 16, 32, 64/8
(по умолчанию
- 8)
1-646 / 1-86
1 - 1023 / -
(недоступен
в медленном
режиме)
8,16,32,64 (недоступен
в медленном
режиме)
Емкость кадра,
пакеты 4
28(8) / 3(8)
71 (8) / 8(8)
20 (64)
11 (64)7
МСПД5,Кбайт/с
224(8)/24(8)
568 (8) /64 (8)
1280 (64)
728 7
Поведение при
ошибке / состоянии
"занято"
Ограниченное
число повторных
попыток,
передача
управления
клиентскому
ПО. Повтор
через некоторое
время
Ограниченное
число повторных
попыток,
передача управления
клиентскому
ПО. Повтор
через некоторое
время.
Переход к
передаче
следующего
пакета
Ограниченное
число повторных
попыток, передача
управления
клиентскому ПО.
Повтор через некоторое
время
Назначение
Асинхронная
передача
структурированных
сообщений
с квитированием
их
получения.
Используется
для конфигурирования
/
управления
ВУ. Обеспечивает
доступ к
параметрам
ВУ.
Асинхронная
передача небольших
объемов
данных, например
от УВ, с
квитированием
их получения
Синхронная
передача
данных
типа
аудио- и
видеоинформации.
Типы синхрониза-
ции: от
тактовой
шины,
внешняя,
программная
Асинхронная передача
с квитированием
больших
массивов данных,
допускающих отсрочку
передачи
Примечание: В числителе указаны показатели для быстрого режима (до 12
Мбит/с), в знаменателе - для медленного режима (до 1,5 Мбит/с).
1 При знаке "+" гарантируется предельный размер временной задержки, при
"-" задержка не гарантируется.
2 ? однонаправленный канал, ? двунаправленный или однонаправленный
канал,
3 Максимальное число байтов полезной информации в пакете (задается при
открытии канала),
4 Предельная (теоретическая) вместимость кадра (размер пакета в байтах)
5 МСПД - максимальная скорость передачи данных для определенного типа
данных и скоростного режима (при максимальном размере пакета, байт),
6 Определяется при конфигурации устройства во время его подключения к
шине,
7 В связи с ограничением в 728 байт данных типа bulk на кадр приведенные
цифры не отражают предельные возможности шины по передаче информации
этого типа.
Спецификация USB была разработана в очень сжатые сроки усилиями
семи компаний: Compaq, Digital Equipment, IBM, Intel,
Microsoft, NEC и Northern Telecom. Примечательно, что рождение шины
совпало с началом взрывного роста популярности Internet, а это,
по мнению автора, наложило свой отпечаток на архитектуру USB.
Первая версия стандарта открытой архитектуры шины USB (Universal
Serial Bus Specification, v 1.0, 1996) была выпущена Intel в 1996
г. Несмотря на оптимистичные прогнозы (например, фирма Dataquest
предсказывала, что к 1998 г. все компьютеры будут оснащаться шиной
USB), новый стандарт сначала вызвал весьма сдержанную реакцию
производителей периферии для ПК. Это объяснялось как отсутствием
поддержки со стороны текущих и ближайших анонсированных
версий ОС, в первую очередь Windows 95 и NT, и незначительным
парком машин с установленной шиной, так и существенным
(на порядок) повыше повышением сложности предлагаемого продукта
по сравнению с предшественниками - параллельным и
последовательным интерфейсами ПК.
Это вынудило Intel предпринять самые решительные действия по
поддержке новой шины, и уже во II квартале 1996 г. были выпущены
микросхемы 430HX/VX и 440FX с хост-контроллером шины USB. А
летом того же года появились и первые ПК с портом USB. К числу
первопроходцев в области периферийных устройств можно отнести
фирмы Logitech (джойстик), KeyTronic (клавиатура), Philips (17дюймовый
монитор) и Advanced Gravis (игровой пульт).
Важным событием явилась реализация в 1997 г. законченного
интерфейса USB в относительно дешевых 8-разрядных микропроцессорах
(в частности, в процессорах серии С500 типа 80С52 фирмы
Siemens Semiconductors), что способствовало расширению сферы применения
новой шины в области телекоммуникаций и бытовой техники.
При проектировании новой шины особое внимание обращалось
на следующие показатели:
- простоту изменения конфигурации системы;
- стоимость законченного решения при пропускной
способности до 12 Мбит/с;
- возможность передачи потоков аудио- и сжатых видеоданных
в реальном времени;
- обеспечение одновременной передачи разных типов данных;
- адаптацию к существующей инфраструктуре ПК и возможность
быстрого включения интерфейса шины в представленное на
рынке прикладное ПО;
- стимулирование разработки новых классов устройств, расширяющих
возможности ПК.
Топология шины. Сама шина - это многоуровневая иерархическая
система. На физическом уровне топология шины представляет
собой корневидную структуру (рис. 19) - многоуровневую звезду
(в терминологии стандарта), при которой соединения ПУ могут
формировать цепочки и звезды (рис. 20).
Рис. 19. Топология шины USB
В настоящее время существуют основные, системообразующие,
решения и компоненты: концентраторы, мультиплексированная
шина, программные и аппаратные средства ее поддержки.
Рис. 20. Многоуровневая звезда
Центром каждой звезды является узел (концентратор) шины
USB, который обеспечивает набор двухточечных соединений с другими
узлами и/или функциями, лежащими вниз по потоку (т. е. на
большем удалении от компьютера). Узел состоит из двух функциональных
элементов - повторителя, служащего для управления коммутацией
потоков информации между входным и выходными портами
узла, и контроллера, предназначенного для управления статусом
(состоянием) узла и его портов (рис. 21).
Функции шины USB - это возможности, которые формируют
полезные свойства сети USB, например выход в линию ISDN, получение
данных от джойстика или вывод сигнала на звуковые колонки.
Понятие функции не эквивалентно определению устройства, поскольку
последнее может реализовать сразу несколько функций. В этом
случае оно называется составным и рассматривается системой как
узел с несколькими постоянно подключенными однофункциональными
устройствами. Подобное устройство должно содержать встроенный
концентратор шины USB.
Рис. 21. Узел (концентратор) шины USB
Логическая топология сети (с удаленными для простоты концентраторами)
представлена на рис. 22.
Рис. 22. Логическая топология сети
Все устройств и узлы шины USB могут иметь собственные источники
питания или запитываться от вышестоящего узла USB. (Запитываемый
от шины узел обеспечивает работу до четырех ВУ, а с
собственным питанием до семи и более.) Вce эти устройства в
cooтветствии со стандартом шины подразделяются на классы,
которые
образуют свою иерархию. Классами-родоначальниками являются узлы
и функции. Введение классов устройств должно, по мнению создателей
шины, способствовать стандартизации аналогичных по назначению
периферийных устройств разных производителей. По мере необходимости
разработчики смогут, кроме стандартных классов, оп
разделять новые классы ВУ.
Архитектура программно-аппаратных средств шины приведена
на рис. 23.
Рис. 23. Архитектура программно-аппаратных средств шины
Интерфейс между USB и компьютером называется хостконтроллером
(host controller, НС), который реализуется комбинацией
аппаратных средств и драйвера хост-контроллера (host controller
driver, HCD). Хост-контроллер отвечает за выполнение следующих
операций:
- обнаружение подключения/отключения устройств;
- потоки управляющей информации между хостом и ВУ;
- управление потоками данных по шине, в частности выполнение
протокола шины;
- сбор информации о статусе и активности ВУ- системы, а также
формирование отчетов о состоянии системы USB;
- выделение ВУ определенных лимитов энергоресурсов системы
(особенно актуально для мобильных систем).
Хост-контроллер USB активно взаимодействует с различными
службами операционной системы. Например, при наличии в ОС
службы управления энергоресурсами АРМ (advanced power management)
ПО USB перехватывает и выполняет запросы этой службы
на приостановку функционирования и восстановление рабочего
состояния конкретных устройств.
Архитектура ПО USB. Назначение шины USB, физическая топология
сети и ориентация на РС-совместимые ПК определили архитектуру
ПО шины.
Прикладной интерфейс USB содержит драйверы стандартных
классов устройств для данной ОС. Здесь используются обращения к
специфическим службам ОС, в частности РпР для Windows 95/98.
Разработчики нестандартного оборудования должны включать свои
драйверы в этот уровень ПО шины USB.
Еще один важный компонент верхнего уровня ПО шины - система
конфигурирования шины и идентификации ВУ, поставляемая
разработчиком ОС или независимыми производителями ПО. Эта система
управляет всеми узлами сети, в том числе корневым концентратором,
и является частью службы управления энергопотреблением
компьютерной системы.
Ключевым элементом ПО USB является драйвер USBD, поставляемый,
как сказано в стандарте шины, разработчиком ОС. На него
ложится вся диспетчеризация активности на шине. Драйвер транслирует
запросы ввода/вывода клиентского ПО в вызовы HCD. Например,
USBD на основании данных запроса на подключение нового ВУ
(число конечных точек в устройстве, допустимые типы и объемы передач
данных и т.д.) дает отказ или удовлетворяет запрос, исходя из
свободных ресурсов шины. В последнем случае USBD создает канал
связи с конечной точкой 0 подключаемого устройства.
Последовательность операций по подсоединению к шине нового
устройства имеет вид:
- подключение нового устройства,
- запрос на подключение ВУ с нагрузочным (по умолчанию) адресом
(00h),
- загрузка драйвера для нового устройства
- конфигурирование (установка параметров) ВУ,
- запуск драйвера устройства,
- ВУ запущено и готово к работе.
USBD опирается на драйвер хост-контроллера, скрывающий
особенности аппаратных решений USB от вышележащего ПО. Драйвер
хост-контроллера отслеживает выполнение текущих запросов на
доступ к шине и обеспечивает бездефицитное выделение имеющихся
ресурсов шины. Драйвер хост-контроллера также поставляется разработчиком
ОС и содержит в настоящее время два аппаратных интерфейса:
UHCI (universal host controller interface) и OHCI (open host controller
interface).
Протокол обмена по шине. Как и в любой сложной многоуровневой
системе, использующей общий коммуникационный канал,
передача потоков информации между хостом и ПУ по шине USB требует
взаимодействия многих программных и аппаратных компонентов,
каждый из которых имеет свою сферу ответственности. Это придает
особое значение протоколу обмена между элементами системы.
Организация ПК с шиной USB при выполнении запросов ввода/вывода
показано на рис. 24.
В шине USB используется мультиплексирование передаваемых
данных с временным уплотнением (time division multiplexing, TDM).
Основу логической модели передачи данных составляют пакеты. Размер
пакета переменный, он зависит от многих факторов, рассматриваемых
ниже. Хост-контроллер объединяет пакеты в кадры, длительность
которых 0,001 с. Порядок следования пакетов в кадре определяется
драйвером хост-контроллера, однако для каждого получателя информации
(логического канала передачи данных) гарантируется сохранение
последовательности поступления данных.
Рис. 24. Организация связи между элементами шины
Системное ПО шины и специальные протоколы обмена скрывают
от клиентского ПО (прикладных программ) сложность
централизованного управления маркерным доступом к совместно
используемым ресурсам шины USB, сводя его к системе двухточечных
связей. Этим USB отличается от таких шин, как PCI, EISA,
PCMCIA, где клиентское ПО напрямую работает с адресатом.
Рассмотрим систему потоков информации, одну из концепций
шины USB (рис. 25).
Рис. 25. Система потоков информации шины
На логическом уровне каждый поток данных между клиентским
ПО и функцией ПУ оформляется в виде канала (pipe).
В зависимости от типа передаваемой информации канал может
быть одно- и двунаправленным. Канал начинается в системном ПО
USB-хоста (взаимодействие между прикладными программами и системным
ПО USB-хоста строится на базе API), а заканчивается элементом
интерфейса функции, который называется конечной точкой (endpoint)
и работает независимо от других аналогичных элементов интерфейса
устройства. Множество всех конечных точек функции образует
интерфейс функции (обращенный к шине USB).
Каждое логическое ПУ имеет, как минимум, один канал, постоянно
подсоединенный к конечной точке 0, используемый системой
для конфигурации и управления устройством. Этот канал устанавливается
сразу после подсоединения ВУ к шине и его включения.
"Владеет" данным каналом системное ПО шины USB, которое,
однако, может выступать посредником для клиентского ПО, если оно
использует этот канал.
С учетом канальной модели передачи информации полный "адрес"
функции образуется из уникального адреса устройства, присваиваемого
хост-контроллером при подключении ВУ к шине, и фиксированного
(изготовителем) номера конечной точки данной функции.
Множество каналов одной функции образует пучок ее каналов.
На стороне хоста каждый канал имеет располагаемый в ОЗУ
буфер, размер которого назначается на основе заявленных параметров
устанавливаемой связи, в частности:
- частоты и допустимого времени задержки обращений к шине;
- необходимой пропускной способности канала;
- заданного механизма обработки ошибок;
- максимального размера пакета;
- типа передаваемой информации;
- направления передачи данных.
Функции, использующие медленный режим передачи (до 1,5
Мбит/с), могут иметь не более двух каналов, помимо конечной точки
0, а остальные - до 16 входных и выходных каналов. Каждый канал
(кроме конечной точки 0) должен быть предварительно сконфигурирован
с помощью системною ПО USB-хоста и настроен на конкретную
модель передачи данных.
Стандартом шины предусмотрены два альтернативных механизма
передачи данных:
- поток неструктурированных данных (stream pipe) типа аудио- или
видеоинформации;
- передача структурированных сообщений (message pipe).
С учетом основных различий в характере передаваемой информации
разработчики определили четыре типа операций передачи данных
по шине: сопtrol, interrupt, isochronous и bulk. Следует отметить,
что в таблице дана теоретическая оценка максимальной скорости передачи
данных по шине, которая по многим причинам на практике не
всегда реализуется в полном объеме.
В любом случае пересылаемая между прикладной программой и
ВУ полезная информация никак не интерпретируется программным
обеспечением шины, которая остается "прозрачной" для пользователя
и передается в режиме FIFO. Распределение передаваемых данных по
пакетам происходит следующим образом: первые пакеты данных содержат
ровно по Nmax байт, где Nmax - определенный заранее максимальный
размер пакета, а последний пакет включает оставшиеся данные,
число байтов которых не превышает Nmax.
ВУ делят пропускную способность шины на основе
управляемого хостом маркерного доступа. Передаваемые данные
каждого запроса ввода/вывода (IRP) распределяются по пакетам
данных, которые "транслируются" в серию транзакций - от одного
(interrupt, isochronous, bulk) до трех (control) пакетов шины (рис. 26).
Правила распределения полезного объема кадра заключаются в
следующем:
1. Под сумму передач isochronous и interrupt отводится не более
90% ресурсов кадра.
Передача управляющих сообщений
(control)
Запрос ввода/вывода
?
Пересылка
установочного
пакета
Пересылка
пакета
данных
Пересылка
пакета со
статусом
транзакции
Дополнительны
е передачи
управляющих
сообщений
Передача информации в режиме
прерываний (interrupt)
Запрос ввода/вывода
?
Пакет входных
данных
Пакет входных
данных
Передача изохронных данных (isochronous)
Запрос ввода/вывода
?
Транзакция
(пересылка пакета
данных)
Транзакция
(пересылка
пакета данных)
Транзакция (пересылка пакета
данных)
Передача данных типа bulk
Запрос ввода/вывода
?
Транзакция
(пересылка пакета
данных)
Транзакция
(пересылка
пакета данных)
Транзакция (пересылка пакета
данных)
Рис. 26. Схема передачи данных
2. Изохронным запросам по уже существующим каналам гарантируется
выделение определенных при образовании канала лимитов
ресурсов шины. Как правило, канал получает квоту в один пакет на
кадр, то есть каждые 0,001 с. Новые каналы устанавливаются только в
том случае, если запрашиваемые для них размеры пакетов обеспечиваются
свободными ресурсами шины.
3. Часть кадра резервируется под управляющие сообщения
(control). Если объем передачи этого типа оказался меньше, Новые
свободные ресурсы отдаются передачам типа bulk. Если объем управляющих
сообщений превышает 10%, но в кадре имеется свободное
место, лимит ресурсов под управляющие сообщения повышается. В
случае отсутствия свободного места применяются специальные алгоритмы
определения очередности их передачи, зависящие от реализации
хост - контроллера и ОС. В любом случае хост - контроллер обрабатывает
управляющие запросы по принципу best effort (наилучшим
образом).
4. Передача массивов данных, допускающих задержку во времени
(bulk), производится по остаточному принципу. В любом случае
передачи этого типа не могут переслать более 728 байт полезной информации
в одном кадре. Алгоритмы определения очередности выполнения
отсроченных запросов зависят от реализации хост - контроллера
и ОС. Допускаются ситуации, когда передача типа bulk может
стать приоритетной по отношению к пересылке управляющего
сообщения.
Синхронизация пересылок по шине осуществляется без передачи
отдельных синхронизирующих сигналов по схеме кодирования последовательности
битов без возврата к нулю, с инвертированием, обеспечивает
поддержку синхронизации без передачи отдельного синхросигнала.
Синхронизация пересылок данных может задаваться тактовым
сигналом шины, программным образом и внешним источником сигнала
(в незначительных пределах). Последний вариант используется
при обмене данными с телефонными коммутируемыми сетями общего
пользования.
Устойчивость шины к ошибкам, методы их обнаружения и
обработки. Разработчики шины предполагают, что частота появления
ошибок на шине может быть сравнима с частотой ошибок на объединительной
плате, а сами ошибки носят случайный характер. Поэтому
для повышения ошибкоустойчивости шины были реализованы следующие
решения:
- встроенные системы проверки целостности сигнала;
- раздельный контроль четности информации в полях данных и
управляющей информации передаваемых кадров (система обеспечивает
обнаружение и исправление одинарных и двойных ошибок);
- централизованная служба обнаружения подсоединения/отключения
ВУ и изменения конфигурации системы;
- методика самовосстановления обмена по шине в случае утери
или повреждения передаваемых пакетов;
- система управления потоками информации, аппаратными буферами
шины и изохронностью передачи данных;
- технология логических каналов для передачи данных и управляющей
информации, предохраняющая от нежелательного перекрестного
влияния функций ПУ друг на друга.
При необходимости обеспечения целостности передаваемой информации,
например для устройств, не допускающих потери данных,
используются процедуры восстановления данных на аппаратном
и/или программном уровне. В частности, на аппаратном уровне
реализуется процедура повторной передачи пакета с ошибками (до
трех попыток) и генерация сообщений об имевших место ошибках,
которые передаются клиентскому ПО для принятия соответствующих
решений.
Следует отметить, что медленный режим передачи данных по
шине (до 1,5 Мбит/с) позволяет работать при меньшем уровне защиты
от электромагнитных помех, однако обеспечивает функционирование
лишь ограниченного числа медленных устройств, поскольку связан с
существенным снижением эффективности использования ресурсов
шины.
Физические и электрические параметры шины. Дифференциальный
сигнал передается по двум проводам витой пары - D+ и D.
Уровень сигнала на D+ определяет скорость передачи данных: высокий
уровень задает быстрый режим передачи, а низкий уровень -
медленный. Проводники Vbus и GND служат для подводки питания
(+5 В) к устройствам, которые запитываются от шины. Импеданс кабеля
составляет 90 Ом, его максимальная длина ограничена 5 м. Чувствительность
дифференциального приемника шинных сигналов
должна быть не менее 200 мВ.
Пропускная способность шины. Там, где речь идет о совместно
используемых ресурсах, рано или поздно встает вопрос о предельных
возможностях. Для шины USB с переменным служебным графиком
и динамическим изменением конфигурации системы это
особенно актуально.
В самом стандарте приводятся только расчетные оценки максимальной
скорости передачи данных (МСПД) по шине для различных
типов передач и скоростных режимов, которые позволяют оценить
эффективность использования полосы пропускания шины при том
или ином режиме передачи данных.
Наиболее эффективно используют полосу пропускания шины
режимы передачи изохронных данных и массивов, допускающих отсрочку
передачи (bulk). Пересылка управляющих сообщений в два -
три раза менее экономична. Особенно бросается в глаза неэффективность
медленного режима, при котором пропускная способность
шины снижается пропорционально изменению тактовой частоты передачи
данных, т. е. в восемь раз. Это связано с увеличенной в те же 8
раз длительностью тактов медленного режима. Именно поэтому в
стандарте специально оговаривается, что медленный режим может
использоваться одновременно ограниченным числом ПУ, хотя он и
обеспечивает лучшую защиту от электромагнитных помех.
Расчетная оценка пропускной способности шины на конфигурациях,
близких к реальным, приведена в работе: John Gamey. An analysis
of throughput characteristics of USB//Media and Interconnect Technology/Intel
Architecture Labs. Для анализа использовались следующие
модели устройств (потребителей шины):
1. Передача выходного потока изохронных данных с качеством
CD, например на звуковые колонки (44,1 Кгц, 16-бит квантование
сигнала).
2. Видеокамера, генерирующая изохронный поток данных в
формате MPEG2 объемом 6 Мбит/с.
3. Низкоскоростное устройство, работающее в режиме прерываний
(мышь, клавиатура или джойстик).
4. Изохронный поток линии 2B+D ISDN (каждый канал В - 64
Кбит/с двунаправленной передачи, канал D - 16 Кбит/с двунаправленной
передачи).
Из данных устройств были сформированы три конфигурации
периферийных устройств шины USB: минимальная, типичная и максимальная.
Минимальная конфигурация:
- клавиатура с встроенным концентратором LJSB.
Типичная конфигурация:
- клавиатура с встроенным концентратором LJSB;
- выходной поток изохронных данных с качеством CD;
- дополнительный концентратор шины USB, например на мониторе;
- изохронный поток линии ISDN. Максимальная конфигурация:
- клавиатура с встроенным концентратором USB;
- выходной поток изохронных данных с качеством CD;
- дополнительный концентратор шины USB, например на мониторе;
- изохронный поток линии ISDN;
- изохронный поток видеоданных в формате MPEG2.
По результатам моделирования типичная загрузка шины составляет
от 20 до 40% ее пропускной способности и повышается до 80 -
100% при работе с мультимедийными потоками данных (в рассматриваемом
примере - поток сжатого видеосигнала). Таким образом, шина
USB имеет примерно двух- или трехкратный запас по производительности
для офисных приложений и менее чем 50%-ный запас
для интенсивной работы с мультимедийными приложениями.
6. Системы обработки и вывода звуковой
информации
Использование звуковой информации дает значительный психологический
выигрыш пользователю при работе с микроЭВМ. Особенно
указанное преимущество проявляется при обработке анимационных
и видеопрограмм трехмерной графики, имеющих звуковое сопровождение.
Большое внимание качественному восприятию звука начало уделяться
с 70-х годов. Именно в эти годы широкое распространение получило
стереофоническое звучание, при котором пространственная
картина звука формировалась двумя источниками звука, расположенными
на определенном расстоянии друг от друга перед слушателем.
Для получения качественной звукопередачи нашло большое применения
технология "расширенного" стереовещания, при котором исходный
стереосигнал обрабатывался при помощи различных фильтров, в
результате чего расширялась стереобаза (условное расстояние между
источниками звука). В этом случае различия между правым и левым
каналами даже при небольшом физическом расстоянии между источниками
звука становилось более ощутимыми и создавалось впечатление
о том, что при приближении к источникам звук меняет свою окраску,
как бывает в реальной жизни.
В эти же годы шли первые работы в области объемного или
квадрофонического звучания. В этом случае звук формировался уже
четырьмя источниками, расположенными по четырем углам равностороннего
прямоугольника, в центре которого находился слушатель.
При этом передние (фронтальные) источники звука были основными
и передавали до 80-85% звуковой мощности. Задние (тыловые) источники
звука являлись вспомогательными и предназначались, в основном,
для улучшения окраски звука путем придания ему объемности
звучания.
Однако квадрофоническое звуковещание большого распространения
не получило, так как на то время имелись большие технологические
трудности при записи четырехканального звука. Поэтому получило
развитие технология звукопередачи - псевдоквадрофония, позволяющая
в стерео режиме имитировать объемность звучания. Эта
технология подразумевает использование фильтров, позволяющая менять
окраску тыловых источников. При фильтрации производится либо
изменение частотного спектра звукового диапазона, либо
смещение фазы тыловых сигналов по отношению к фронтальным.
Наибольшее распространение получили такие технологии, как
SRS, Spatializer и Qsound, по-другому называющиеся 3DSound или 3D
Stereo, в том числе при построении высококачественных цифровых
систем обработки звуковой информации.
Новатором и законодателем многоканального звука в профессиональной
сфере является компания Dolby Labs. Именно она установила
стандарт Dolby Surround, который лег в основу других стандартов,
получивших достаточное распространение в профессиональной
сфере звукотехники. Среди этих стандартов можно отметить такие,
как Dolby ProLogic и Dolby Digital AC-3. Согласно технологии АС-3
запись звука происходит при помощи нескольких источников звука,
либо осуществляется микширование таким образом, чтобы в
результате получалось несколько звуковых потоков. Здесь
подразумевается использование пяти источников - одного
фронтального, двух передних (левого и правого) и двух задних, а
также одного канала для воспроизведения только низких частот
(сабвуфера). Возможно добавление к пяти источникам звука еще двух
боковых, которые располагаются между передними и задними.
При технологии АС-3 все звуковые потоки кодируются и сжимаются
в единую цифровую цепочку, а при воспроизведении - декодируются
и усиливаются каждый своим усилителем.
В компьютерных программах эта технология из-за громоздкости
и дороговизны не находит широкого применения. Для реализации
технологии АС-3 при декодировании используется другой, более доступный
принцип - декодирование проводится не на пять, а на два звуковых
потока, то есть на два канала. При этом главное внимание уделяется
сохранению некоего объема звучания в пространстве. Технология
получила название A3D и была запатентована компанией Aureal,
которая и производит микросхемы-декодеры, работающие на этой
технологии.
В основе технологии A3D лежит возможность создания некоего
виртуального звукового окружения, где местоположение источников
звука меняется в зависимости от действий слушателя. При работе с
трехмерными программами это выглядит таким образом, что если
слушатель разворачивается, например, налево, то соответственно вся
звуковая картина сдвигается вправо, сохраняя расстояния друг между
другом и до слушателя. Если же слушатель наклоняется вперед, то
картина уходит вверх, бежит - звуки спереди усиливаются, а сзади -
затихают и т.д. Более того, в понятие "звуковое окружение" входит и
отражение сигнала от различных поверхностей (эхо), и
неравномерное распространение высокочастотных и низкочастотных
звуковых сигналов в воздухе, и неодинаковый характер звука при
прохождении его сквозь различные материалы (воду, стены, стекло и
т.д.), и, наконец, разная окраска звука в открытых и закрытых
пространствах. Все перечисленные факторы должны включаться в
виртуальное звуковое окружение, что и предполагает технология
A3D.
Принцип работы эмулятора трехмерного звука, построенного по
технологии A3D, заключается в реализации следующих положений:
- если звук тихий и приглушенный, то источник его находится
далеко,
- если звук глухой, но достаточно громкий, то между его источником
и слушателем находится какая-то преграда, например, стена,
- если применить реверберацию, то регулируя время задержки
отраженного сигнала, можно создать видимость естественного эха,
тем самым эмулируя закрытые помещения разного объема и открытую
местность.
Известно, что сигналы с длиной волны менее 15 см - это среднеи
высокочастотный диапазоны - позиционируются в пространстве
значительно легче, чем сигналы низкой частоты. Поэтому стереоэффекты
обычно слышны именно на высоких частотах, а низкий звук
обычно слышен как бы со всех сторон. Соответственно, трехмерное
звуковое окружение формируется именно в этой области, что делать
значительно легче, чем манипулировать всем звуковым диапазоном.
Также известно, что человеческое ухо и мозг различают направление
сигнала, вычисляя разницу во времени, с которой сигнал попадает в
каждое ухо: если сигнал приходит раньше в левое ухо, то источник
находится слева, и наоборот. И, наконец, большое значение имеет
давление звука на стенки ушной раковины - при отсутствии прямой
связи между источником звука и ухом значительно труднее определить
направление и расстояние до источника звука.
Трехмерные технологии основываются на так называемых HRTF
- технологиях (Head-Related Transfer Functions), которые у каждого
человека отличаются, но принцип работы у всех одинаков. Проще
говоря, каждый индивидуум слышит по-своему. В A3D HRTFфункции
эмулируются следующим образом: на каждом звуковом
канале используется сложный активный фильтр, который создает
пространственную картину. При этом все особенности человеческого
восприятия звука учитываются этими фильтрами. Для этой эмуляции
нужен достаточно мощный DSP-процессор (Digital Signal Processor),
который встраивается в звуковую карту.
Самым главным при работе со звуком является обеспечение синхронного
взаимодействия звукового и видеоизображения. Важность
этого объясняется тем, что в большинстве анимационных и видеопрограммах,
использующих трехмерную графику, движущиеся объекты
издают звуки определенной окраски и интенсивности. DSP-процессор
принимает аудио сигналы и обрабатывает их таким образом, что оператор
(он же и слушатель) может адекватно указать источник звука,
Производительность и направление его перемещения.
На практике существует ряд схемотехнических решений звуковых
карт, реализующих многие или все указанные выше особенности
при формировании звуковых потоков (Monster Sound, Montego A3D,
PCI 338-A3D, Storm 3D, Audio Wave, Magic Wave и др.). Не останавливаясь
подробно на каждой из них, можно привести некоторые общие
их черты:
- возможность одновременной записи и воспроизведения звука
(полный дуплекс),
- эффекты реального времени для одного или нескольких сигналов
(от микрофона, с линейного входа, WAVE, MIDI, CD и пр.),
- динамическое шумоподавление,
- технология Surround, обеспечивающая возможность получения
объемного звучания,
- использование многополосного графического эквалайзера для
коррекции частотной характеристики источников звука,
- реверберация (эхо),
- многоголосная полифония, позволяющая реализовывать звуки
от различных источников на аппаратном и программном уровне,
- отношение сигнал-шум, показывающий отношение уровня полезных
сигналов к уровню сигналов помехи,
- динамический диапазон, отображающий отношение громких
сигналов к тихим,
- оцифровка, показывающая разрядность и частоту данных, которыми
передаются звуковые сигналы.
7. Накопители информации
Для записи данных на магнитный носитель необходимо сформировать
код, который кроме непосредственно данных должен содержать
и синхронизирующие сигналы. Предельно допустимую плотность
изменения состояния намагниченности (Plux Density) определяют
конструктивные особенности накопителя и физические свойства
магнитного слоя. Эта плотность измеряется в количестве зон с различным
состоянием намагниченности на дюйм длины трека (FCI -
Flux Changes per Inch). В современных накопителях величина FCI может
достигать нескольких тысяч.
Для записи информации на диск используются различные схемы
кодирования (Data Encoding Scheme), различающиеся по сложности
реализации и эффективности работы. В первых накопителях
использовалась частотная модуляция (FM - Frequency Modulation).
При этом методе для каждого бита на треке отводится ячейка с окнами
для представления бита и синхросигнала.
Модифицированная частотная модуляция (MFM - Modified
Frequency Modulation) позволяет удвоить плотность записи при той
же плотности изменения потока за счет того, что синхросигнал
вводится только при кодировании подряд следующих нулевых бит.
Более эффективны схемы группового кодирования, при которых
сектор предварительно разбивается на группы по несколько бит,
которые кодируются по определенным правилам.
Схема кодирования RLL (Run Length Limited) построена на ограничении
длины неперемагничиваемых участков трека. Наиболее
популярна схема RLL 2.7, в которой число таких ячеек лежит в диапазоне
от двух до семи. Для накопителей с высокой плотностью используется,
как правило, схема RLL 1.7, обеспечивающая большую надежность
считывания.
Новое слово в технике записи и чтения информации с магнитных
носителей привнесла технология PRML (Partial Response
Maximum Likelihood), пришедшая из области телекоммуникаций. Традиционная
технология считывания использует аналоговые пиковые
детекторы сигналов воспроизведения, последние декодируются схемами
считывания. Однако повышение плотности хранения данных
приводит и к усилению межбитных помех, в результате чего задача
считывания усложняется. Технология PRML состоит из двух частей.
PR (Partial Response) - оцифровка аналогового сигнала с головки
и запись последовательности этих выборок в буфер. Для оцифровки
больше всего подходит сигнал с магнитнорезистивной головки,
поскольку его форма повторяет форму напряженности магнитного поля,
в то время как индуктивные головки имеют на выходе производную
от напряженности. Следующий этап считывания предполагает
цифровую фильтрацию записанного сигнала.
Вторая часть аббревиатуры- ML (Maximum Likelihood) - как
раз и означает, что принятые фрагменты сигнала трактуются как
группы закодированных бит по максимальной "похожести" формы
отклика. Современная техника цифровой обработки позволяет выполнять
высокоскоростное декодирование PRML, обеспечивая скорость
считывания даже выше, чем при аналоговом декодировании RLL.
Структура трека - последовательность секторов - задается
при форматировании трека, а его начало определяется контроллером
по сигналу индексного датчика. Нумерация секторов также задается
контроллеру при форматировании и может быть достаточно произвольной,
важен лишь тот факт, чтобы все сектора трека имели уникальные
номера в пределах допустимого диапазона. При обращении к
сектору он ищется по идентификатору, если же после одного или нескольких
оборотов диска сектор с требуемым номером не был найден,
контроллер зафиксирует ошибку Sector Not Found - сектор не
найден. Задача поиска сектора по его заголовку, помещение в поле
данных сектора записываемой информации, снабженной
контрольным кодом, считывание записанной информации и ее
проверка лежит на контроллере накопителя. Кроме того, контроллер
отвечает за поиск указанного цилиндра и коммутацией головок в
процессе выбора затребованного трека.
Существует несколько способов оптимизации дисков, имеющих
конечной целью повышение производительности системы за счет увеличения
средней скорости обмена данными. Время, затраченное на
обмен данными одного сектора, складывается из времени поиска цилиндра
(Seek Time), времени ожидания подхода сектора к головке
(Latency Time) и времени обмена данными сектора между накопителем
и контроллером и между контроллером и памятью компьютера,
которая является источником и пунктом назначения хранимых данных.
Основными факторами, определяющими эти параметры, являются
факторы механические, такие как достижимая скорость позиционирования
и скорость вращения диска. Последний параметр определяет
и время ожидания диска, которое в среднем составляет половину
от периода оборота диска, а также время непосредственной
передачи данных, которое примерно равно времени оборота диска,
деленному на количество секторов на треке. Однако в силу того, что
размер сектора невелик, одиночная передача сектора встречается
довольно редко.
Таким образом, основной интерес представляет оптимизация
процесса передачи некоторого блока данных, расположенного в соседних
секторах. Вполне обычна ситуация, когда блок данных не
умещается в пределах одного сектора. В этом случае естественным
было бы расположить продолжение блока на том же треке в секторе,
имеющем следующий номер, поскольку для доступа к нему необходимо
будет только дождаться его подхода к головке. Когда емкость
трека будет исчерпана, логично перейти на следующую поверхность
того же цилиндра, для чего достаточно только пёреключить головки,
что выполняется при помощи электроники. Когда все секторы
цилиндра окажутся занятыми, необходимо перейти к следующему цилиндру,
что займет более заметное время для операции поиска, поскольку
для этого требуется перемещение блока головок.
Существует целый класс дефрагментирующих программ, которые
занимаются тем, что размещают все блоки файлов в последовательных
секторах, то есть в секторах, упорядоченных по данному
способу счета, вполне обоснованно рассчитывая на то, что для
дискового накопителя именно такой порядок запроса секторов будет
оптимальным.
При неизменных механических параметрах накопителя на магнитных
дисках и том же числе секторов на треке, имеется возможность
повысить скорость обмена блоками данных за счет особого расположения
секторов.
Представим себе ситуацию, когда необходимо считать (или записать)
длинный блок данных, расположенный в вышеописанном естественном
порядке на нескольких цилиндрах диска. Первым делом
рассмотрим пути и способы оптимизации трека. В простейшем
случае секторы на треке нумеруются последовательно. После того,
как требуемый сектор прошел под головкой и содержащиеся в нем
данные попали из накопителя в контроллер, который проверил их
достоверность по контрольному коду, данные из контроллера
передаются в память компьютера, причем передача данных может
быть с записью в память контроллера и сквозной, без буферирования
в контроллере. После анализа состояния операции считывания,
контроллер получает указание на считывание следующего сектора,
который к этому времени может успеть пройти под головкой,
вследствие чего контроллеру придется ждать еще почти полный
оборот диска, прежде чем сектор не подойдет снова. Выходом из
подобной ситуации является метод чередования секторов
(Interleaving), при котором нумерация секторов на треке не является
последовательной, а выглядит так, как показано ниже.
1 9 17 8 16 7 15 6 14 5 13 4 12 3 11 2 10 1
?????????????????
направление движения головки
Здесь изображена нумерация секторов в случае применения фактора
чередования (Interleaving factor) 2:1. В этом случае сектора с последовательными
номерами располагаются не последовательно, а через
один. Такие вставки необходимы для того, чтобы дать системе
время на обработку данных, принятых из очередного сектора. Таким
образом к моменту, когда к головке подходит следующий сектор, из
которого необходимо считать данные, он как раз оказывается на подходе.
Конечно, в данном способе оптимизации огромную роль играет
время обработки контроллером принятых данных, поскольку если
контроллер обладает достаточными скоростными характеристиками,
чтобы принимать цепочку секторов подряд, чередование секторов
принесет лишь дополнительную задержку, что ухудшит быстродействие
системы.
Следует заметить, что в современных накопителях со встроенными
быстродействующими контроллерами, способными благодаря
наличию буферной памяти значительного объема произвести операцию
записи или считывания всех секторов трека за один раз, чередование
секторов не применяют, что, однако, можно рассматривать и
как применение фактора чередования 1:1. Тем не менее, на старых
компьютерах с медленными контроллерами правильный выбор фактора
чередования позволял увеличить скорость обмена данными в несколько
раз.
Рассмотрим теперь ситуацию, когда последний сектор трека
считан и для продолжения считывания данных необходимо перейти
на следующий трек. При переходе между треками в пределах одного
цилиндра потребуется всего лишь переключение головок, на что
уйдет порядка десятка микросекунд, однако дополнительную
задержку при этом может вносить и сам контроллер. За это время первый
сектор следующего трека может успеть уйти, и опять придется
ждать целый оборот диска. Для того, чтобы этого не случилось,
применяют послойное смещение (Layer Skew) секторов, при котором
начало следующего трека цилиндра немного отстает от предыдущего.
Перемещение головок на соседний цилиндр вносит более существенную
временную задержку - порядка нескольких миллисекунд.
Для учета этой задержки вводят радиальное смещение (Radial Skew)
соседних цилиндров. При этом, если чередование секторов довольно
часто устанавливается программно с указанием последовательности
номеров секторов в команде форматирования трека, то для задания
послойного и радиального смещения общепринятый программный
интерфейс отсутствует. Смещение применяют только для накопителей
со встроенными контроллерами АТА или SCSI.
Допустимое количество секторов на треке определяется допустимой
плотностью изменения магнитного потока, длиной трека и
схемой кодирования данных. Длина трека определяется его диаметром:
внешние треки, естественно, длиннее внутренних. В накопителях
с внешним контроллером количество секторов на всех треках принимается
одинаковым. Это приводит к тому, что, поскольку число
секторов на треке приходится ограничивать по допустимой плотности
магнитного потока, внешние сектора оказываются недогруженными.
В накопителях с интерфейсом 57-506/412 для схемы кодирования
MFM на каждом треке размещали 17 секторов по 512 байт данных, а
для схемы кодирования RLL - 26 секторов.
В накопителях с интерфейсом ESDI, у которого сепаратор данных
с контроллера вынесли в блок накопителя, удалось увеличить количество
секторов на треке до 32-80. В накопителях на гибких дисках
требование совместимости накопителей, у которых могут несколько
различаться скорости вращения шпинделя, привело к снижению номинального
числа секторов по сравнению с реально возможным. По
мере совершенствования накопителей на гибких дисках этот резерв
стали использовать для увеличения емкости носителя информации
при нестандартном форматировании.
Зная количество секторов на треке, размер сектора и частоту
вращения диска, не составляет труда определить максимальную скорость
передачи данных между накопителем и контроллером. Поскольку
линейная скорость поверхности носителя относительно головки на
внутренних цилиндрах меньше, чем на внешних, то для обеспечения
нормальной записи при меньшей скорости приходится применять так
называемую предкомпенсацию записи. Для жестких дисков в CMOS
Setup имеется параметр WPcom (Write Precompensation), который
представляет из себя номер цилиндра, начиная с которого контроллер
должен вырабатывать сигнал предкомпенсации. В накопителях со
встроенным контроллером этот сигнал игнорируется.
Несколько уменьшить неравномерность линейной плотности
информации на внутренних и внешних цилиндрах удается путем
форматирования треков с различным количеством секторов. Существенно
увеличить объем хранимой информации по сравнению с фиксированным
количеством секторов при тех же характеристиках носителя
позволяет метод форматирования, называемый зонной
записью (Zone Recording).
Суть данного метода заключается в том, что с учетом различия
в длине треков цилиндры разбиваются на зоны, для которых принимается
одинаковое количество секторов на трек. Для внешних цилиндров
количество секторов на трек принимается большим, чем для
внутренних, при этом скорость передачи информации на внешних
треках будет, естественно, больше, чем на внутренних, поскольку за
один оборот диска между накопителем и контроллером будет передаваться
большое количество секторов.
Встроенный в накопитель контроллер обычно скрывает от системы
физическое число секторов на треке, а для общения используется
логическая геометрия диска. Для накопителей с зонной
записью затруднительно вычислить скорость передачи данных по
числу секторов на треке и скорости вращения шпинделя, поскольку в
документации обычно указывается число секторов. Иногда в паспорте
к накопителям с зонной записью указывают максимальное и
минимальное количество секторов на трек, что позволяет определить
диапазон скоростей передачи данных.
Перед использованием магнитных дисков проводится низкоуровневое
форматирование (LLF - Low Level Formatting) - это
процедура создания структуры секторов диска. Процедура
форматирования сводится к тому, что каждый трек диска размечается
и проверяется. При разметке трека на нем формируются заголовки
секторов, а в поля данных записывается какой-либо код-заполнитель.
Отформатировать трек можно только целиком, за одну операцию
должны быть записаны все его секторы. В процессе проверки
производится попытка считывания сектора, и если при этом
возникает устойчивая ошибка, сектор помечается так дефектный.
Для гибких дисков низкоуровневое форматирование является
составной частью форматирования, которое выполняется при помощи
утилиты Format или ей подобных. Во время форматирования жестких
дисков производится формирование структуры пакета дисков с учетом
всех чередований, смещений и прочих тонкостей.
Низкоуровневое форматирование накопителей со встроенными
контроллерами (АТА, SCSI) программными утилитами, не предназначенными
для конкретной модели накопителя, недопустимо. Оно
выполняется только изготовителем при соблюдении всех тонкостей
данного накопителя. Встроенные контроллеры таких накопителей
могут по-разному реагировать на команду низкоуровневого форматирования.
Эта команда может просто отвергаться или контроллер
может сделать вид, что форматирование прошло успешно, не
выполняя, однако, фактической переразметки секторов и, наконец,
форматирование будет реально выполняться, но при этом факторы
смещения могут и не учитываться. В этом случае результатом
выполнения команды в лучшем случае станет снижение скорости
передачи данных в несколько раз, в худшем - полная потеря
работоспособности накопителя.
Низкоуровневое форматирование, выполняемое пользователем
с помощью обычных программ-утилит, допустимо лишь для
накопителей с внешним контроллером, к которым относятся
накопители на гибких дисках и винчестеры с интерфейсами ST506/412
и ESDI. Для этих накопителей периодическое
форматирование даже полезно, поскольку их системы позиционировании
разомкнуты и не имеют обратной связи, поэтому они
постепенно уходят от начального расположения треков.
По причине разомкнутости системы позиционирования подобных
накопителей, их форматирование следует производить в установившемся
тепловом режиме накопителя и носителя, по возможности
при той температуре окружающей среды, при которой будет производиться
эксплуатация.
При переформатировании могут быть восстановлены в правах
дефектные секторы, если они появились во время эксплуатации. Тем
не менее бесперспективно пытаться оживить секторы, помеченные
дефектными изготовителем. Для накопителей с медленными контроллерами
интерфейсов ST-506/412 и ESDI, которые достаточно чувствительны
к коэффициенту чередования, с помощью утилиты форматирования
можно найти оптимальное значение фактора чередования
для конкретного накопителя в конкретной системе, что может увеличить
его производительность.
Важнейшими критериями магнитных дисков являются:
- емкость,
- среднее время доступа,
- скорость передачи данных,
- объем аппаратной кэш-памяти (буфера).
Емкость стандартных гибких магнитных дисков диаметром 3,5??
составляет 1,44 Мбайт (при двухсторонней записи на 80 цилиндров).
Их среднее время доступа составляет 84 мс, максимальная скорость
62 Кбайт/с.
Емкость жестких магнитных дисков, более часто используемых
для хранения информации, составляет несколько десятков Гбайт.
Среднее время доступа около 10 мс, скорость передачи данных - до
20 Мбайт/с. Для увеличения скорости передачи данных используются
диски с повышенной скоростью их вращения - до 10 000 об/мин.
Увеличение скорости вращения приводит к заметному приросту передачи
информации при больших объемах передаваемой информации.
Для подключения магнитных дисков используются два интерфейса:
CSSI и IDE.
Устройства SСSI (Small Computer System Interface) подключаются
через SCSI-контроллеры. Через один такой контроллер можно подключить
до семи различных устройств. Как правило, SCSI - контроллеры
имеют высокие скорости передачи информации.
Стандарт IDE (Integrated Device Electronics) имеет большее применение
вследствие своей простоты изготовления и подключения
устройств друг к другу.
Большинство современных жестких дисков поддерживают технологию
SMART (Self-Monitoring Analysis and Reporting Technology). С
ее помощью жесткие диски могут самостоятельно проводить тестирование
и отслеживать за многими своими неисправностями (до 253 параметров).
Все большее применение находят магнитооптические
накопители (МО). Конструктивно они состоят из диска, покрытого
слоем магнетика - материала с хорошими магнитными свойствами.
Информация на диске представляется в виде чередующихся
намагниченных участков - доменов, которые в зависимости от
полярности кодируют либо логическую 1, либо 0.
Процесс записи информации в МО осуществляется путем нагрева
лазерным лучом участков диска и намагничиванием этих участков
магнитным полем противоположной полярности. При чтении данных
используется поляризованный лазерный луч, который отражается от
диска, изменяющего плоскость поляризации волны. Угол поворота
определяется степенью намагниченности различных участков диска.
Емкость МО составляет - до 1 Мбайт, максимальная скорость
чтения информации - до 4 Мбайт/с, время доступа - менее 28 мс.
8. Дисководы
CD-дисководы
Технология изготовления
оптических дисков началось с музыкальных компакт-дисков в 1982
году. Первыми разработчиками были японская фирма Sony и голландская
фирма Philips. Дальнейшее совершенствование технологии
записи привело к появлению компакт-дисков, способных хранить не
только звуковые, но и программные, текстовые и графические данные.
Эти компакт-диски получили название CD-ROM (Compact Disk
Read Only Memory - память на компакт-диске, используемая только
для чтения). Они не позволяют перезаписывать или исправлять данные,
однажды записанные на них. Они предназначены только для
многократного чтения данных.
На компакт-дисках нет деления на дорожки и секторы, как у гибких
и жестких дисков, а используется единая спиральная дорожка, нанесенная
на их поверхность. Запись на CD-ROM производится на
нижнюю сторону диска, которая покрыта тонким отражающим слоем
металла, как правило, алюминием.
CD-ROM содержит специальный излучающий лазерный полупроводниковый
диод, фотодетектор и соответствующую оптическую
систему. Они выполняют бесконтактное оптическое считывание цифровых
данных с поверхности компакт-диска. Для вращения диска используется
электродвигатель, который одновременно осуществляет и
перемещение элементов системы считывания.
Запись информации на диска осуществляется путем точечного
"прожигания" спиральной дорожки диска тонким лучом лазера достаточной
мощности. В результате в местах прожига образуются микровпадины.
Цифровая информация представлена чередованием этих
микровпадин, слабо отражающими свет, и неповрежденных участков
дорожки.
Чтение информации происходит лазерным лучом меньшей мощности.
Если луч попадает на неповрежденных участков дорожки, то
он практически полностью отражается от поверхности диска на считывающий
фотодетектор через оптическую систему, формируя сигнал
логической "1". Если же лазерный луч попадает на впадину, то он
поглощается и рассеивается, не попадая на фотодетектор, при этом
формируется сигнал логического "0".
Компакт-диск имеет одну спиральную дорожку и вращается с постоянной
линейной скоростью, поэтому при чтении внутренних участков
спирали угловая скорость больше, чем при чтении внешних.
Переменная скорость вращения диска при высокой скорости считывания
данных с поверхности компакт-диска требует повышенной мощности
двигателя. Одним из способов, обеспечивающих равномерное
снятие информации, является применение малогабаритных двигателей
высокой мощности. С появлением таких электродвигателей появилась
возможность повысить скорость считывания информации с
компакт - диска.
При оценке скорости считывания с компакт-диска за эталон была
принята величина 150 Кбайт/с. Дисковод, обеспечивающий такую
скорость считывания информации, называется 1-скоростным. Дисковод
со скоростью считывания 300 Кбайт/с называется 2-скоростным
и т. д. На сегодняшний день нашли применение 24-, 32-, 34-, 36-, 40-,
45-, 48- и 50-скоростные приводы CD-ROM.
Для существующих дисководов CD-ROM существуют два способа
загрузки диска - Caddy и Tray. Caddy представляет собой контейнер
из пластмассы, в котором имеется щель для ввода компакт-диска.
Компакт-диск помещается в щель дисковода, и он автоматически втягивается
в контейнер. Tray-механизм представляет собой лоток, который
выдвигается после нажатия кнопки Eject. Для современных CDROM-дисководов
tray-механизм загрузки является более распространенным,
чем загрузка с помощью Caddy.
Дисководы для CD-ROM могут быть конструктивно выполнены
и подключены к компьютеру, как внутренние устройства ПК с
установкой в корпус компьютера, так и внешние. В последнем случае
дисководы CD-ROM помещаются в отдельный корпус с внутренним
или внешним источником питания и подключаются к компьютеру
через его порты. Для подключения внешних дисководов обычно
используются стандартные параллельные порты ПК.
Соединение встраиваемых CD-ROM-дисководов с компьютерами
осуществляется через стандартные интерфейсы IDE, SCSI, либо
через собственные интерфейсы. Последние интерфейсы реализовываются
с помощью соответствующих контроллеров. Такие дисководы
чаще всего подключаются через звуковые карты, которые имеют несколько
разъемов для подключения дисководов CD-ROM. Для подключения
довольно часто используются собственные реализации какого-либо
стандартного компьютерного интерфейса.
Современные приводы для компакт-дисков обычно имеют широко
распространенный и хорошо известный интерфейс - IDE (ATA).
Это касается многоскоростных устройств - 4х и более. Такие дисководы,
подключаемые через интерфейс IDE (ATA), как правило, имеют
сходные конструкции и в значительной степени совпадающие технические
и эксплуатационные характеристики.
С помощью СD-ROM-дисковода можно не только читать данные
с диска, но и прослушивать аудиокомпакт-диски.
К типовым характеристикам дисководов CD-ROM относятся:
- автоматическая загрузка лотка,
- размер 5,25 дюйма,
- наличие устройства для автоматической чистки линз
оптической системы,
- автоматический вход и выход из режима ожидания, при котором
дисковод находится в режиме сохранения энергии (лазер и электродвигатель
временно прекращают свою работу).
- диаметр диска: 12 см, 8 см.
- скорость диска: до 1060 об/мин.,
- емкость диска 650 Мбайт (при диаметре диска - 12 см),
- скорость передачи данных: до 5100 Кбайт/с,
- время доступа до 150 мс,
- звуковые характеристики: количество звуковых каналов - 2, полоса
частот на линейном выходе 20-20000 Гц,
- соотношение сигнал/шум более 65 дБ,
- искажения менее 0,2 % на частоте 1 Кгц.
При разработке и реализации новых высокоскоростных устройств
используются новые технологии (например, дисковод CDROM
Super 32X фирмы Pioneer), такие как режим считывания с постоянной
скоростью (CAV). Этот режим позволяет уменьшить время
доступа и упрощает конструкцию.
Еще одна технология - это считывание с использованием разных
скоростных режимов вращения компакт-диска. Эта технология
используется для увеличения скорости доступа и считывания данных.
В этом случае при перемещении оптической головки от внутреннего
диаметра к внешнему скорость считывания и передачи данных растет
благодаря сохранению постоянной скорости вращения диска - режим
CAV. Этот рост продолжается до некоторой скорости передачи
данных. С момента достижения установленного уровня угловая скорость
вращения диска изменяется так, чтобы сохранить скорость считывания
и передачи данных на этом достигнутом уровне. На этом
этапе работы дисковода CD-ROM реализуется режим CLV (постоянная
линейная скорость).
Такое чередование режимов работы CD-ROM-дисковода обеспечивает
быстрый доступ и высокие скорости считывания и передачи
данных, то есть повышение общей производительности мультимедиасистемы.
Эта технология была реализована, например, в дисководе
CDR-8130 фирмы Hitachi.
Важным преимуществом этой технологии является возможность
работы с компакт-дисками более раннего производства, имеющих
низкое качество покрытия. Следует также отметить, что вибрации
дисков, возникающие при высокой скорости вращения, смещенное
отверстие - все это затрудняет считывание информации. При работе
с такими дисками современные дисководы CD-ROM автоматически
снижают скорость и выполняют считывание информации на пониженной
скорости как низкоскоростные устройства, например, как 4х.
Современные дисководы CD-ROM для подавления вибраций на
высоких скоростях считывания и обеспечения стабильного и безошибочного
считывания используют систему Double Dynamic Suspension
System (DDSS). К таким дисководам можно отнести, например, дисководы
CD-ROM ASUS CD-8400 (интерфейс ATAPI/Enhanced IDE),
AOPEN CD-936E (интерфейс E-IDE).
DVD-дисководы
Растущие требования к скоростным
методам считывания оптической информации привели к созданию
технологий DVD, основанных на использовании дисков DVD (digital
versatile disc - универсальный цифровой диск). Внешне и по габаритам
диски DVD напоминают широко распространенные CD: диаметр
- 120 мм, толщина - 1,2 мм. Диски DVD могут быть как односторонними
(Single-sided), так и двухсторонними (Double-sided). На каждой
стороне могут быть один или два рабочих слоя (Single-layer, Double-layer),
несущих информацию в цифровом виде. Это позволяет наращивать
емкость диска от 4,7 до 17 Мбайт.
Диски DVD метут быть следующих типов:
- Single-sided, single-layer disc - односторонний однослойный
диск емкостью до 4,7 Мбайт,
- Single-sided, double-layer disc - односторонний двухслойный
диск емкостью до 8,5 Мбайт,
- Double-sided, single-layer disc - двухсторонний однослойный
диск емкостью до 9,4 Мбайт,
- Double-sided, double-layer disc - двухсторонний двухслойный
диск емкостью до 17 Мбайт.
Двухсторонний диск DVD представляет собой два склеенных между
собой диска, каждый из которых имеет толщину 0,6мм. Верхний
рабочий слой двухслойного диска - полупрозрачный. Лазерный луч
сначала проходит сквозь верхний полупрозрачный слой, фокусируется
на нижнем слое, считывает с него двоичную информацию, а затем
за счет изменения фокусировки считывает информацию с верхнего
слоя.
Значительный рост информационной емкости диска DVD по
сравнению с классическим CD получен за счет ряда технологических
особенностей. Кроме дополнительной поверхности и
многослойности, в DVD используется более совершенный лазер по
сравнению с CD. В дисководах CD применяется лазер с длиной волны
780 нм, в DVD - 650 и 635 нм. Увеличена цифровая апертура. Это
позволило более чем в два раза уменьшить расстояние между треками
(информационными дорожками) и величину информационных
впадин, расположенных на треках. В дополнение к этому в DVD
используются более совершенные и эффективные схемы цифровой
модуляции и коррекции ошибок.
Технология считывания информации с диска DVD аналогична
технологии считывания с CD.
CD-R диски
Особое место занимают дисководы
CD-R. Технология их изготовления основана на изменении фазового
состояния диска. Она применяется в накопителях WORM - Write
Once Read Many (однократная запись, многократное чтение). Запись
производится на чистый диск путем "прожигания" в определенной
последовательности поверхности диска мощным лучом лазера. В результате
получается компакт-диск, который может использоваться в
обыкновенном дисководе CD-ROM. Такие дисководы, с помощью которых
можно записать информацию на специальный чистый диск,
получили название "дисководы с записью" (CD-R - CD-Recordable).
Необходимо отметить, что записываемые компакт-диски имеют
пониженную отражательную способность. Если у обычного компактдиска
коэффициент отражения составляет примерно 75 %, то у записываемого
- 50 %. Но этого вполне достаточно для того, чтобы
диски типа CD-R успешно читались практически на всех
современных дисководах CD-ROM.
Оптические диски, на которых можно многократно записывать
и стирать информацию, называются дисками CD-RW, а дисководы -
дисководами CD-RW. Они выполнены с использованием технологии,
основанной на фазовых переходах вещества под действием лазера.
Они допускают повторную запись на диск с использованием оптических
технологий. Поверхность такого диска покрывается сложным
сплавом Ag-In-Sb-Te. Под действием луча лазера, мощность которого
изменяется в зависимости от режима работы, сплав способен переходить
из аморфного состояния в кристаллическое и обратно.
Изменение фазового состояния сказывается на отражательной
способности.
Это позволяет с помощью лазера записывать информацию на
диск в двоичной форме. При чтении луч лазера отражается или рассеивается
на участках с разным состоянием вещества. Чередование
таких участков распознается как последовательность записанных двоичных
нулей и единиц.
Основной недостаток данной технологии - это физические изменения
диска в процессах записи и стирания информации, что ограничивает
время его эксплуатации. Вторым недостатком является то,
что такой диск хуже отражает луч лазера, чем традиционные CDROM
и CD-R. Коэффициент отражения у CD-RW составляет
примерно 30 %. Поэтому не все диски CD-RW читаются дисководами
CD-ROM.
Приложение
1. 80386 SX
2. 80386DX
2. 80486
Оглавление
С
тр.
Введение
1.
Принципы построения, развитие и назначение микропроцессоров
1.1
Общие принципы построения микропроцессоров
1.2
Эволюция развития микропроцессоров
1.3
Особенности построения и функционирования 32- и
64-разрядных микропроцессоров
1.4
Микропроцессоры фирмы Hewlett - Packard
1.5
Микропроцессоры фирмы DEC
1.6
Микропроцессоры фирмы SUN Microsystems
1.7
Микропроцессоры фирмы AMD
1.8
Микропроцессоры фирмы Cyrix
2.
Характеристики микропроцессоров и их анализ
3.
Оперативная память. Типы памяти
4.
Системы вывода видеоинформации
5.
Шины персональных компьютеров
6.
Системы обработки и вывода звуковой информации
7.
Накопители информации
8.
Дисководы
Литература
1. Поляков В. Микропроцессоры; между прошлым и будущим. -
Компьютер Пресс. 1996, №4.
2. Овсянников Е. Новые процессоры PowerPC для PDA и блокнотных
компьютеров - СофтМаркет, 1995, №24 (184).
3. Березин А. Не Intel единый. CompUnity, 1996, № 11.
4. Мальков Д. Накопители на магнитных дисках. Компьютерная
Россия. №8, 1999 г.
5. О. Катин. Шина USB:принципы работы и перспективы развития.
Computer Weekly. 1998.
6. Е. Рудометов, В. Рудометов. Архитектура ПК, комплектующие,
мультимедиа. - С.-Петербург, Питер. 2000.
7. Еженедельный журнал Computer Weekly. 1998,1999 гг.
Закладка в соц.сетях