Вы находитесь на странице: 1из 26

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

различных отраслей промышленности


План:

1. Что же такое суперкомпьютеры


2. Традиционной сферой применения суперкомпьютеров

С момента появления первых компьютеров одной из основных проблем,


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

В принципе, супер компьютер это обычная вычислительная система,


позволяющая производить сложные расчеты за более короткие промежутки
времени. О чем собственно и говорит приставка «Супер» (Super в переводе с
английского означает: сверх, над). Любая компьютерная система состоит из
трех основных компонентов - центрального процессора, то есть счетного
устройства, блока памяти и вторичной системы хранения информации (к
примеру, в виде дисков или лент). Ключевое значение имеют не только
технические параметры каждого из этих элементов, но и пропускная
способность каналов, связывающих их друг с другом и с терминалами
потребителей. Одна из заповедей «Крей рисерч» гласит: «Быстродействие
всей системы не превышает скорости самой медленнодействующей ее части».
Важным показателем производительности компьютера является степень его
быстродействия. Она измеряется так называемыми флопсами - от английского
сокращения, обозначающего количество операций с числами,
представленными в форме с плавающей запятой, в секунду. То есть за основу
берется подсчет - сколько наиболее сложных расчетов машина может
выполнить за один миг.
А зачем вообще нужны суперкомпьютеры? Раздвижение границ
человеческого знания всегда опиралось на два краеугольных камня, которые
не могут, существовать друг без друга, - теорию и опыт. Однако теперь ученые
сталкиваются с тем, что многие испытания стали практически невозможными
- в некоторых случаях из-за своих масштабов, в других - дороговизны или
опасности для здоровья и жизни людей. Тут-то и приходят на помощь мощные
компьютеры. Позволяя экспериментировать с электронными моделями
реальной действительности, они становятся «третьей опорой» современной
науки и производства. Первые суперкомпьютеры
Началом эры суперкомпьютеров можно, пожалуй, назвать 1976 год, когда
появилась первая векторная система Cray 1. Работая с ограниченным в то
время набором приложений, Cray 1 показала настолько впечатляющие по
сравнению с обычными системами результаты, что заслуженно получила
название “суперкомпьютер” и определяла развитие всей индустрии
высокопроизводительных вычислений еще долгие годы. Но более чем за два
десятилетия совместной эволюции архитектур и программного обеспечения
на рынке появлялись системы с кардинально различающимися
характеристиками, поэтому само понятие “суперкомпьютер” стало
многозначным и пересматривать его пришлось неоднократно.
Попытки дать определение суперкомпьютеру опираясь только на
производительность привели к необходимости постоянно поднимать планку,
отделяющую его от рабочей станции или даже обычного настольного
компьютера. Только за последние 15 лет нормы менялись несколько раз. По
определению Оксфордского словаря вычислительной техники 1986 года, для
того, чтобы получить это гордое название, нужно было иметь
производительность в 10 мегафлоп (миллионов операций с плавающей
станций, а также серверов, сама потребность в супер ЭВМ будет снижаться.
Это не так. С одной стороны, целый ряд приложений может теперь успешно
выполняться на рабочих станциях, но с другой стороны, время показало, что
устойчивой тенденцией является появление все новых приложений, для
которых необходимо использовать супер ЭВМ.
Традиционной сферой применения суперкомпьютеров всегда были научные
исследования: физика плазмы и статистическая механика, физика
конденсированных сред, молекулярная и атомная физика, теория
элементарных частиц, газовая динамика и теория турбулентности,
астрофизика. В химии - различные области вычислительной химии: квантовая
химия (включая расчеты электронной структуры для целей конструирования
новых материалов, например, катализаторов и сверхпроводников),
молекулярная динамика, химическая кинетика, теория поверхностных
явлений и химия твердого тела,конструирование лекарств. Естественно, что
ряд областей применения находится на стыках соответствующих наук,
например, химии и биологии, и перекрывается с техническими приложениями.
Так, задачи метеорологии, изучение атмосферных явлений и, в первую
очередь, задача долгосрочного прогноза погоды, для решения которой
постоянно не хватает мощностей современных супер ЭВМ, тесно связаны с
решением ряда перечисленных выше проблем физики. Среди технических
проблем, для решения которых используются суперкомпьютеры, укажем на
задачи аэрокосмической и автомобильной промышленности, ядерной
энергетики, предсказания и разработки месторождений полезных ископаемых,
нефтедобывающей и газовой промышленности (в том числе проблемы
эффективной эксплуатации месторождений, особенно трехмерные задачи их
исследования), и, наконец, конструирование новых микропроцессоров и
компьютеров, в первую очередь самих супер ЭВМ.
Суперкомпьютеры традиционно применяются для военных целей. Кроме
очевидных задач разработки оружия массового уничтожения и
конструирования самолетов и ракет, можно упомянуть, например,
конструирование бесшумных подводных лодок и др. Самый знаменитый
пример - это американская программа СОИ. Уже упоминавшийся MPP-
компьютер Министерства энергетики США будет применяться для
моделирования ядерного оружия, что позволит вообще отменить ядерные
испытания в этой стране.
Термины- характеристики современных процессоров

Ядро
Название ядра в процессоре.
Ядро - это главная часть центрального процессора (CPU). Оно определяет
большинство параметров CPU, прежде всего - тип сокета (гнезда, в которое
вставляется процессор), диапазон рабочих частот и частоту работы
внутренней шины передачи данных (FSB). Ядро процессора характеризуется
следующими параметрами: технологический процесс, объем внутреннего
кэша первого и второго уровня, напряжение и теплоотдача (насколько сильно
будет нагреваться процессор). Прежде чем покупать CPU с тем или иным
ядром, необходимо удостовериться, что ваша материнская плата сможет
работать с таким процессором. В рамках одной линейки могут существовать
CPU с разными ядрами. Например, в линейке Pentium IV присутствуют
процессоры с ядрами Northwood, Prescott, Willamette.

Внутренняя шина и регистры процессора

Хоть процессор и получает данные из оперативной памяти с помощью


некоторой ширины, это не значит, что внутри он может обрабатывать данные
такой же разрядности.
Количество битов данных, которые может обработать процессор за
один прием, характеризуется разрядностью внутренних регистров.
Регистр - это по существу ячейка памяти внутри процессора. Разрядность
регистров определяет характеристики программного обеспечения и команд,
выполняемых процессором. Например, процессоры с 32-разрядными
внутренними регистрами могут выполнять 32-разрядные команды, которые
обрабатывают данные 32-разрядными порциями, а процессоры с 16-
разрядными регистрами этого делать не могут.
Кроме того, в зависимости от структуры регистров различают два основных
типа процессоров:
RISC — Reduced (Restricted) Instruction Set Computer — процессоры
(компьютеры) с сокращенной системой команд. Эти процессоры обычно
имеют набор однородных регистров универсального назначения; их система
команд отличается относительной простотой.
В результате аппаратная реализация такой архитектуры позволяет с
небольшими затратами выполнять эти инструкции за минимальное (в пределе
1) число тактов синхронизации.

CISC — Complete Instruction Set Computer — процессоры с полным набором


инструкций, к которым относится и семейство х86. Состав и назначение их
регистров существенно неоднородны, широкий набор команд усложняет
декодирование инструкций, на что расходуются аппаратные ресурсы.
Возрастает число тактов, необходимое для выполнения инструкций.
Практически во всех современных процессорах внутренние регистры
являются 32-разрядными (исключения Itanium от Intel и Hammer от AMD).

Шина- это магистраль, связывающая некоторые компоненты


компьютера между собой.

Электрически шина - это провода, обеспечивающие передачу


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

Шина данных процессора

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


шины данных и шины адреса.
Когда говорят о шине процессора, обычно имеют ввиду шину данных, которая
является набором соединений, для передачи и приема данных. Чем больше
сигналов одновременно поступает на шину, тем больше данных по ней
передается за определенный интервал времени, и тем быстрее она работает.
Разрядность шины данных подобна количеству полос автомагистрали - чем
больше полос, тем больше поток машин, чем шире шина данных, тем больше
данных за одинаковые промежутки времени по ней передается.
В процессоре 286 для приема и передачи двоичных данных используется 16
соединений, поэтому их шина данных считается 16-разрядной.
У 32-х разрядных процессоров (например, 486), таких соединений вдвое
больше, поэтому за единицу времени они передают и получают вдвое больше
данных, чем 16-и разрядные процессоры - разумеется, эффективность выше.
Современные процессоры (начиная с Pentium) имеют 64-х разрядную шину
данных, поэтому они могут передавать в системную память по 64 бита за один
такт. Такая реализация позволяет ускорить обмен данными между быстрым
процессором и относительно медленным ОЗУ при неизменной рабочей
частоте последнего за счёт повышения пропускной способности шины
данных.
Разрядность шины данных процессора определяет также разрядность банка
памяти. Это значит, что, например, 32-х разрядный процессор (например, 486)
считывает из памяти и записывает в память 32 бита одновременно.
Процессоры класса Pentium и выше считывают и записывают при операциях с
памятью 64 бита одновременно.
В современных процессорах внешняя шина данных 64-разрядная, а регистры
и внутренняя шина процессора по-прежнему 32-разрядны. В современном
процессоре (например, Pentium) для обработки информации, поступающей по
внешней 64-разрядной шине данных, существует два обрабатывающих ее 32-
разрядных блока, называемых конвейерами.
Такой процессор напоминает два объединенных в одном корпусе 32-
разрядных процессора, а 64-разрядная внешняя шина данных позволяет
быстрее наполнить регистры процессора.
Такая архитектура, применяющая для обработки поступивших данных
несколько конвейеров, называется суперскалярной и применяется
сегодня во всех современных процессорах

Шина адреса

Шина адреса представляет собой набор проводников, по которым передается


адрес ячейки памяти, в которую или из которой пересылаются данные. По
каждому проводнику передается один бит адреса, соответствующий одной
цифре в адресе. Увеличение количества проводников (разрядов шины)
используемых для формирования адреса, позволяет увеличить количество
адресуемых ячеек. Разрядность шины адреса определяет максимальный объем
памяти, адресуемой процессором.
Например: процессор 8086 имел адресную шину 20 бит. Тогда он мог
адресовать {2 в степени 20=1048576} байт оперативной памяти, т.е. 1 Мбайт.
Таким образом, максимальный объем оперативной памяти, поддерживаемой
процессором 8086, составляет 1 Мбайт.
286-ой процессор имел адресную шину равную 24 битам, адресуя, таким
образом, уже 16 Мбайт. Современные процессоры имеют адресную шину
равной 36 бит, что соответствует поддерживаемой оперативной памяти
объемом 64 Гбайт!
Процессор Pentium 4 имеет разрядность 64/32, и его адресное пространство
составляет 64 Гб.
Шины данных и адреса независимы, и разработчики микросхем выбирают их
разрядность по своему усмотрению. Разрядность этих шин является
показателем возможностей процессора: разрядность шины данных определяет
возможности процессора быстро обмениваться информацией, разрядность
адресной шины определяет объем поддерживаемой процессором памяти.

Особенности архитектуры процессоров шестого поколения

В P6 (686) реализованы возможности, которых не было в процессорах


предыдущих поколений.

Основных процессоров класса P6 два: Pentium Pro и Pentium II.

Основные особенностями процессоров шестого поколения:


- динамическое выполнение,
- улучшенное суперскалярное исполнение,
- архитектура двойной независимой шины (DIB, Dual Independent Bus).
Благодаря динамическому выполнению процессор может параллельно
обрабатывать большое количество команд.
Основные особенности динамического выполнения следующие:
* множественное предсказание ветвлений; это средство предназначено для
прогнозирования значения счетчика команд при выполнении команд
ветвления;
* анализ потока данных, благодаря которому можно получить информацию,
необходимую для планирования выполнения команд, независимо от их
первоначального порядка в программе;
* упреждающее выполнение, которое "предугадывает" изменения счетчика
команд и выполняет команды, результаты которых, вероятно, вскоре
понадобятся.
Предсказание ветвления ранее использовалось только в
высокопроизводительных универсальных процессорах. Это средство
позволяет полностью задействовать возможности конвейера команд
процессора, что способствует повышению быстродействия.
В специальном устройстве выборки и дешифрации команд используется
высокооптимизированный алгоритм предсказания ветвления, благодаря
которому удается с большой точностью прогнозировать поток и результаты
команд, которые будут выполнены после нескольких команд ветвления,
вызовов процедур и возвратов. Работа этого алгоритма подобна выработке
множественных стратегий шахматистом, который в процессе игры,
предсказывая стратегию противника, как бы перемещается в будущее.
Прогнозируя результаты команд заранее, можно избежать задержек при
выполнении других команд.
Средство анализа потока данных исследует этот поток через процессор, чтобы
предотвратить неправильный порядок выполнения команд. Специальный
модуль диспетчеризации и выполнения команд в процессоре контролирует
многие команды и может обрабатывать их в таком порядке, при котором
множественные суперскалярные модули выполнения команд используются
оптимально. Выполнение команд в неподходящем порядке может привести к
тому, что модули выполнения команд будут заняты даже в том случае, если
из-за промахов кэша и зависимости команды от результатов других команд
они были приостановлены.

Упреждающее выполнение - возможность процессоров выполнять команды


с опережением фактического значения счетчика команд.
Устройство диспетчеризации и выполнения команд процессора использует
результаты анализа потока данных для выполнения всех доступных команд из
пула команд и сохраняет результаты во временных регистрах. Затем
специальный модуль (модуль вытеснения результатов) отыскивает в списке
команд завершенные команды, которые больше не зависят от данных,
вычисляемых в других командах, или от других команд ветвления. Когда
такие завершенные команды найдены, модуль вытеснения или
соответствующие средства, предусмотренные в стандартной архитектуре Intel,
запоминают их результаты таким образом, как в случае выполнения этих
команд в порядке их первоначального расположения. После этого список
команд от них освобождается.
Динамическое выполнение, по существу, ликвидирует недостатки и
зависимость от линейного (последовательного) выполнения команд.
Поддерживая независимое от линейного расположения выполнение команд,
это средство может предотвратить задержки в модулях обработки команд,
возникающие вследствие ожидания данных из памяти. Несмотря на то, что
устройство предсказания порядка команд помогает изменить порядок
выполнения, результаты записываются так, как если бы команды выполнялись
в первоначальном порядке. Поэтому процессор Р6 точно так же, как
процессоры Р5 (Pentium) и более ранние, может выполнять имеющееся
программное обеспечение, но только значительно быстрее!
Многоядерные процессоры, предназначенные для мобильных систем

Стремительный рост популярности мобильных средств обмена


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

Теги: mpus networks systems socs микропроцессоры сетевые устройства


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

Использование многоядерных процессоров позволяет отказаться от


дорогих ПЛИС или дополнительных процессоров ЦОС, так как все
необходимые устройства объединяются в одном корпусе. Соответственно
уменьшается энергопотребление устройства и его стоимость. Но с точки
зрения программиста, многоядерность – это не технологическое достижение
а, скорее, невозможность далее наращивать производительность одноядерных
систем. Причины перехода к многоядерным архитектурам подробно описаны
в литературе и в основном связаны с проблемой потребляемой мощности. Но
в любом случае, эра многоядерных процессоров началась, и этот факт надо
принимать как данность. Уже прошла первая волна адаптации ПО к
многоядерным процессорам, и в ближайшем времени намечается выход
нового поколения многоядерных процессоров, ориентирующихся именно на
такое параллельное ПО.

Кроме этого, конкуренция и постоянный рост объема и качества услуг связи


оказывают существенное влияние на провайдеров этих услуг, которым
становится выгодно использовать элементную базу нового поколения (рис.1).
На функциональность аппаратуры связи и, в частности, на процессоры, влияет
и само содержимое сети, причем это влияние продолжает увеличиваться, и в
первую очередь это касается ПЦОС. Традиционно они использовались для
преобразования голоса из аналоговой формы в цифровую, его
кодирования/декодирования и формирования сетевых пакетов из голосовых
фреймов. С возникновением необходимости обрабатывать не только
звуковую, но и видеоинформацию (в том числе и высокого разрешения)
требования, предъявляемые к ПЦОС, превысили возможности одноядерных
процессоров, так как для обработки одного потока видеоданных нужно
несколько ядер. Таким образом, архитектуры современных процессоров ЦОС
должны постоянно совершенствоваться, чтобы соответствовать
увеличивающимся объемам сетевого трафика и более сложным алгоритмам
обработки мультимедиа.
Увеличение сложности и объемов информации в сети породило еще одну
тенденцию развития современных микропроцессорных систем – появление
гетерогенных многоядерных систем и сетей на кристалле. Классические
архитектуры ПЦОС, даже многоядерные, плохо справляются с
кодированием/декодированием видео высокого разрешения, анализом
огромного объема сетевого трафика и прочих подобных задач. Для обработки
информации такого рода используются интегрированные
специализированные ядра – сетевые, видеопроцессоры и т.д.
Сегодня существуют целое направление разработки архитектур
вычислительных ядер со специфичной для конкретного приложения системой
команд – ASIP (Application Specific Instruction Set Processor),
специализированные САПР и методологии для выбора архитектуры и
необходимой системы команд для ASIP. Такая методология позволяет
разрабатывать системы команд для произвольного класса задач, однако
наибольшее распространение (кроме, естественно, архитектур ЦПУ и ПЦОС)
получили специализированные графические ядра (GPU), видеопроцессоры
(VPU), сетевые и векторные сопроцессоры.
Многоядерность и применение различных сопроцессоров – это не
единственный способ использовать преимущества более совершенных
технологических процессов. Важнейшая проблема современной
вычислительной техники – обеспечение ввода и вывода данных на скоростях,
обеспечивающих полноценную загрузку вычислительных ядер. Один из путей
ее решения – размещение на одном кристалле вместе с вычислительными
ядрами контроллеров и даже специализированных процессоров ввода-вывода.
В качестве примера можно привести интеграцию в телекоммуникационном
сетевом оборудовании определенных интерфейсов с подсистемой ввода-
вывода (В/В) процессора для обеспечения высокоскоростного обмена
данными по интерфейсам Ethernet, Serial RapidIO, PCI Express и другими,
а также для обеспечения встроенной поддержки различных протоколов
Интернета.
Современные сетевые многоядерные процессоры
Несмотря на то, что сетевой трафик резко возрастает, капитальные затраты
провайдеров на увеличение пропускной способности сети из года в год
остаются приблизительно одинаковыми (рис.2, 3). Это происходит потому,
что при сохранении общего уровня капитальных затрат их доля на
мультимедиа-применения будет резко возрастать для удовлетворения
требованиям значительно более высокого трафика мультимедиа-данных в
сети. Другими словами, требования к обработке мультимедиа-данных будут
значительно возрастать в последующие несколько лет и это представляет
собой другую силу, поддерживающую развитие новых архитектур
многоядерных ПЦОС.
То же самое можно сказать и о беспроводных сетях. С каждым новым
поколением этих сетей ширина полосы пропускания данных увеличивается из-
за возрастающих требований пользователей к сетевому контенту. Увеличить
полосу пропускания можно с помощью алгоритмов планирования, которые
максимально повышают спектральную эффективность, и обработки сигналов
в системе MIMO антенных решеток. Эта задача ложится на
специализированные процессоры ЦОС. Ведущие производители элементной
базы активно поддерживают это направление. Так, фирма Freescale объявила
о начале выпуска 28-нм многоядерных процессоров следующего поколения
серии Advanced Multiprocessing (AMP). В новой платформе, основанной на 64-
разрядных ядрах архитектуры Power Architecture с многочисленными
программными потоками (multi-threaded) используются 24 виртуальных ядра.
Основа платформ этой серии, 2,5-ГГц ядро e6500, имеет в своем составе
усовершенствованную версию быстродействующего векторного SIMD-
процессора AltiVec, эффективность которого наблюдалась при использовании
в радарах и сонарах, а также в сетевых устройствах.
Ядра е6500 также входят в состав процессора Т4240, первого изделия серии
QorlQ AMP, предназначенного для сетевого, промышленного и
военного/авиакосмического оборудования. Т4240 имеет 12 ядер е6500 со
сдвоенными программными потоками. Эти процессоры предназначены для
обработки пакетов данных. И в связи с ожидаемым взрывным ростом IP-
трафика нужно решить проблему, связанную с увеличением потребляемой
мощности. Кроме того, эти процессоры будут использоваться в проводном и
беспроводном оборудовании связи для сотовой инфраструктуры, мобильной
связи, предприятий и центров данных. Возможность перепрограммирования
позволяет использовать их в промышленном (интеллектуальные сети,
устройства для сбора данных, измерительные устройства, средства
автоматизации производства) и военном оборудовании (надежные
одноплатные компьютеры). Первые образцы процессоров T4240 появятся на
рынке в начале 2012 года.
Возможные конкуренты Freescale в области быстродействующих
микропроцессоров – фирма Intel и производители СнК Cavium и Netlogic,
использующие MIPS-ядра [4], а также даже малоизвестные фирмы. Например,
фирма Mindspeed представила в 2010 году на конференции Hot Chip новую
серию СнК для сотовых базовых станций, которые должны составить
конкуренцию решениям ведущих изготовителей СнК, таких как Texas
Instruments и Freescale. В платформах Mindspeed серии Transcede используется
26 процессорных ядер, среди них четыре ядра ARM Cortex-A9, десять ЦОС-
ядер CEVA и девять ЦОС-акселераторов. Схема Transcede 4000 изготовлена
по 40-нм технологии TSMC и осуществляет передачу данных на частоте 750
МГц при потребляемой мощности 12 Вт. Микросхема содержит 300 млн.
транзисторов. Для связи ядер и периферийных устройств используется сеть на
базе интерфейса AMBA AXI фирмы ARM. Интегрированная кэш-память L1 и
L2 имеет объем 9,1 Мбайт. Связь с внешними устройствами осуществляется с
помощью комбинации десяти параллельно-последовательных и
последовательно-параллельных преобразователей, интерфейсов PCI Express и
Rapid I/O. Платформа поддерживает разнообразные беспроводные протоколы,
включая LTE, W-CDMA и WiMAX. Для программирования платформ
Transcede применяется язык С, фирма Mindspeed предлагает собственный
новый метод моделирования для разбиения и профилирования приложения на
раннем этапе разработки.
Перспективы и проблемы гетерогенных многоядерных процессоров
Современные технологии позволяют изготавливать процессоры, содержащие
до 100 ядер (фирма Tilera Corp). Но по прогнозам 2009 года аналитической
фирмы The Linley Group, переход на многоядерные процессоры в системах
связи и системах сетей будет замедленным из-за сложности и
фрагментарности используемой технологии. В 2012 году двухъядерные
конструкции займут 20% рынка систем связи (рис.4), а доля процессоров с
четырьмя и более ядрами будет составлять чуть больше 10%. Популярность
одноядерных процессоров во встроенных системах продолжает
увеличиваться. Фирма Freescale Semiconductor снижает производство
гетерогенных многоядерных процессоров из-за перехода на более простую
двухъядерную архитектуру.
Но, на наш взгляд, роль гетерогенных архитектур в данном прогнозе все же
занижена. Конечно, гомогенные системы легче программировать, задача
распределения нагрузки между ядрами решается проще, чем в гетерогенных.
Однако гетерогенные системы обладают большей эффективностью как с
точки зрения реальной производительности на целевых задачах, так и с точки
зрения соотношения производительность/потребляемая мощность. При
условии должной поддержки со стороны средств разработки и отладки ПО
гетерогенные архитектуры в будущем все же займут существенную долю
рынка. Это подтверждает тот факт, что уже сейчас большое число мобильных
устройств (в том числе популярные смартфоны и планшеты Apple) и многие
образцы телекомуникационного оборудования используют многоядерные
процессоры с гетерогенной архитектурой.
Освоение многоядерных процессоров – задача сложная, на этом пути немало
барьеров, особенно со стороны программного обеспечения. В настоящее
время большинство встроенного ПО предназначено для одноядерных
процессоров. Операционные системы для симметричных многопроцессорных
архитектур плохо масштабируются для систем с числом ядер больше четырех.
Асимметричные архитектуры требуют сложной балансировки нагрузки, а
аппаратные акселераторы и сопроцессоры – сложного набора разнообразных
программных прикладных интерфейсов (API).
На распространение гетерогенных процессоров накладывает ограничения и
аппаратная часть, это в основном связано со сложностями масштабирования
системы. Особенно острой проблемой для многоядерных процессоров стала
пропускная способность общего для нескольких ядер интерфейса памяти.
"Узким местом" в этом случае может стать даже общий кэш данных. Кроме
того, из-за ограниченного количества открытых одновременно страниц
динамического ОЗУ могут возникать конфликты при обращению к памяти.
Еще одна серьезная проблема связана с масштабированием подсистемы
обеспечения когерентности кэш-памяти, которая плохо отработана и требует
существенных аппаратных затрат для числа ядер больше восьми. Подсистема
обмена данными на основе общей шины в этом случае становится
неэффективной, а система на основе коммутатора сложна в реализации. Это
приводит к необходимости разработки многослойных вариантов
межсоединений и переходу к архитектурам сетей на кристалле.
Внутрикристальная коммутация вообще становится краеугольным камнем в
современных процессорах, и именно грамотно спроектированная и
эффективная коммутационная логика становится фактором, определяющим
производительность всей системы.
Тем не менее, ведущие производители микросхем занимаются
целенаправленной разработкой и производством многоядерных процессоров
для устройств связи. Примером успешной реализации многоядерной
архитектуры могут служить процессоры с архитектурой KeyStone фирмы
Texas Instruments. В этой архитектуре интегрированы RISC- и ЦОС-ядра со
специализированными сопроцессорами и системой ввода-вывода. KeyStone –
фактически первая архитектура, в которой обеспечивается приемлемая
внутренняя полоса пропускания для неблокируемого доступа ко всем ядрам и
периферийным устройствам.
Эти процессоры интересны своей подсистемой обмена данными качественно
нового уровня, основа которой – несколько специализированных блоков.
Коммутатор TeraNet – это не просто шина или коммутатор типа точка-точка,
а сеть, т.е. совокупность коммутаторов, работающих на разных частотах и
обслуживающих различные группы устройств. Карта соединений блоков и
устройств, которых в составе процессора уже несколько десятков,
нетривиальна, – очевидно, при ее проектировании был детально
проанализирован трафик данных, характерный для целевых задач. Такой
анализ позволяет уйти от сложной в реализации схемы соединений по
принципу "все со всеми" и выделить, какие именно блоки необходимо
соединять напрямую, какие связи должны быть независимыми для
предотвращения простоев и блокировок при обмене данными, а также
определить требуемые пропускные способности отдельных коммутаторов.
Многоядерный навигатор – инновационное управляющее устройство
пакетной обработки, которое может контролировать 8192 очереди. Навигатор
распределяет задачи среди соответствующих аппаратных средств.
Многоядерный контроллер общей памяти обеспечивает непосредственный
доступ к памяти без использования коммутационной системы, так что
перемещение пакетов не нарушается обращением к памяти.
Межкристальный интерфейс HyperLink имеет пропускную способность 50
Гбит/с. Работая совместно с навигатором, HyperLink обеспечивает
"прозрачное" распределение задач между кристаллами.
Архитектура KeyStone позволяет добиться большей производительности, чем
можно ожидать от простого увеличения числа вычислительных ядер. В
частности, заметное увеличение быстродействия достигается посредством
интеграции в СнК ускоряющих сопроцессоров. Таким образом,
усовершенствованная многоядерная архитектура вкупе с интегрированными
специализированными акселераторами – весьма эффективная комбинация для
повышения производительности .
Разработка ПО для подобных систем невозможна без эффективной
программной среды. Чтобы максимально упростить процесс освоения
программистами новой многоядерной системы, желательно иметь готовые
драйверы, прикладные библиотеки и примеры их использования. Так,
например, полная программная инфраструктура для KeyStone состоит из
инструментальных средств программного конструирования, разработки,
отладки, профилирования и вспомогательного ПО для передачи конечного
продукта из лаборатории на производство (рис.5).
Проблемы проектирования сетевых устройств
Спрос на многоядерную обработку данных во встроенных применениях, в
частности, в сетевых устройствах, увеличивается. Сетевые процессоры могут
использоваться в маршрутизаторах, сетевых коммутаторах, аппаратных
брандмауэрах, системах безопасности и наблюдения.
Работа в сетевых устройствах требует от процессора как обработки входных и
выходных данных, так и осуществления функций контроля и управления
(рис.6). Обработка входных данных включает в себя анализ, классификацию и
проверку на безопасность пакетов данных различной длины и типа. Кроме
этого, необходима возможность изменения данных в пакетах. При этом
должна обеспечиваться заданная пропускная способность канала связи,
достичь которой можно, лишь используя быстродействующий
специализированный процессор. Обработка выходных данных значительно
проще и в основном состоит из управления трафиком.
Под управлением подразумевается контроль состояния узлов сети,
маршрутизация и т.д. Для выполнения этих задач используются стандартные
RISC (в основном MIPS) процессоры [9]. На рис.7 показана процессорная
система, в которой используются указанные технологии. В этом приборе
восемь процессорных ядер е500 с архитектурой Power Architecture и блоки
аппаратного структурирования, кодирования, управления буфером, очередью
и фреймами. Для обработки данных могут быть задействованы аппаратные
ускорители и некоторые процессорные ядра, а для осуществления функций
управления – оставшиеся ядра е500. Количество ядер позволяет гибко
распределять задачи между ними.
Однако имеются определенные сложности, связанные с выбором ПО. С одной
стороны, приемлемое быстродействие при обработке входных и выходных
данных может обеспечить ОС реального времени (RTOS), с другой, – для
выполнения сложных задач управления и контроля может понадобиться более
громоздкая ОС Linux. При этом возможны проблемы с совместимостью
старого ПО для одноядерных систем с новыми многоядерными.
Современные многоядерные процессоры, как правило, используют все уровни
параллелизма – на уровне данных и задач. Реализация параллелизма задач
пока еще требует "ручного" определения подзадач и потоков, которые можно
исполнять параллельно, и внесения в программный код директив с указаниями
метода деления программы на потоки и распределения ее по вычислительным
ядрам.
Параллелизм данных реализуется в SIMD-архитектурах, а также
программными средствами на многоядерных системах. Стоит отметить, что
некоторые многоядерные процессоры допускают явную конфигурацию
группы ядер для работы в режимах SIMD или VLIW (рис.8).
При выборе конфигурации многоядерной системы необходимо решить вопрос
распределения задач между ядрами и акселераторами. Для сетевых устройств
этот вопрос сводится к определению оптимального количества управляющих
и обрабатывающих ядер. Особенность встроенных систем – обеспечение
системным процессам общего доступа к ресурсам (периферийные устройства,
память и сами ядра). Существуют два метода проектирования многоядерных
систем с использованием ресурсов операционной системы. Симметричная
многопроцессорная обработка (Symmetric Multi-Processing) широко
используется в сравнительно простых системах. В этом случае одна ОС
контролирует все ядра процессора. Второй метод – асимметричная
многопроцессорная обработка (Asymmetric Multi-Processing – AMP)
подразумевает использование независимых копий ОС для каждого ядра. Оба
этих способа могут быть использованы в одной системе, например, при
реализации стандарта беспроводной связи LTE, который имеет строгие
требования по производительности для ПО физического уровня (РНY) и
уровня контроля доступа к среде (МАС). В такой системе для обработки
уровня PHY возможно использование одного или двух ядер, работающих в
АМР-конфигурации c ОС RTOS, а уровень MAC реализован методом SMP с
более подходящей для этих целей ОС Linux (рис.9).
Реализовать многосистемность и получить возможность управлять системой
можно, используя виртуальные машины, которые создаются средствами
основной ОС. Для этого требуется дополнительное ПО – так называемый
гипервизор, который управляет доступом к памяти (в частности, осуществляет
ее защиту), к периферийным устройствам и другим единым системным
ресурсам. Для соответствия требованиям по задержке отклика гипервизор
должен быть способен работать в реальном времени, занимать мало памяти и
иметь небольшой объем служебных данных. Для ускорения выполнения
некоторых общих задач гипервизоры обычно имеют поддержку на аппаратном
уровне.
Выбор того или иного вида гипервизора зависит от требований системы.
Простая многоядерная конфигурация может быть построена по принципу
"главный – подчиненный", где одно ядро управляет другими. Схема
распределения памяти может не меняться во время работы, т.е. быть
статичной. В этом случае гипервизор не требуется. Но в более сложных
системных конфигурациях вся система должна управляться с использованием
другого слоя программной абстракции. Например, для маломощных
вычислительных устройств необходимо обеспечить динамическое
отключение ядер во время низкой загрузки и работы нескольких ОС на одном
ядре и подключение дополнительных ядер во время пика нагрузки. Для такого
динамического управления и используется гипервизор.
На рис.10 изображена структурная схема многоядерной системы с
виртуальными машинами, в которых операционная система осуществляет
обработку данных и управление. Каждая виртуальная машина имеет доступ к
подмножеству системных ядер, памяти и устройствам ввода-вывода.
Гипервизор обеспечивает виртуализацию ядер, периферийных устройств и
асинхронных событий, например, внешних прерываний .
Эффективность многоядерных систем
Разработчики быстродействующих приложений, предназначенных для работы
на многоядерных процессорах, сталкиваются с проблемами, обусловленными
жесткими системными требованиями. В настоящее время приложения должны
обеспечивать скорость обмена данными 10 Гбит/с, и в ближайшем будущем
эта цифра увеличится до 40 Гбит/с и более. Трафик, передаваемый на этих
скоростях, должен быть структурирован с ориентацией на пакетную
обработку, что приводит к необходимости одновременного анализа
миллионов потоков. В результате появляются неоднородные
мультиплексированные данные, которые при обработке на универсальном
процессоре снижают эффективность использования кэша, памяти и устройств
ввода-вывода. Высокие скорости передачи данных неоднородного трафика
могут нарушить циклы универсального процессора и увеличить задержку
отклика системы.
Кроме этого, в большинстве случаев требуется проведение анализа трафика на
вредоносное содержание. Для достижения приемлемой скорости работы
блоки, обеспечивающие сетевую безопасность, должны быть тесно
интегрированы с устройствами обработки данных. Для анализа пакетов при
высокой скорости передачи данных необходимо использовать универсальные
быстродействующие процессоры.
Для обеспечения гибкости и быстрой адаптации к изменениям сетевых
протоколов все сетевые устройства должны иметь возможность
перепрограммирования в широких пределах.
Быстрое развитие специализированных сетей и средств сетевой безопасности
приводит к увеличению стоимости и потребляемой мощности, а также
усложняет их обслуживание. В этом случае наиболее выгодное решение –
снижение количества сетевых устройств посредством виртуализации высокой
степени.
Общая эффективность многоядерной системы складывается из нескольких
компонентов.Во-первых, это быстродействие самого процессора,
эффективное использование инструкций и оптимальное распределение
нагрузки. Во-вторых, большой вклад в общую эффективность вносит ширина
полосы пропускания памяти и коммутационной логики, эффективность кэша
и минимизация задержек при обращении к памяти. И, в-третьих, для всей
системы важна энергоэффективность, т.е. низкая потребляемая мощность всех
узлов, в том числе и процессора при решении целевых задач.
Решить эти задачи можно, используя многоядерные гетерогенные
процессоры, в которых обработка сетевых пакетов осуществляется в
отдельном модуле, связанном с виртуальными многоядерными процессорами
x86 посредством виртуального интерфейса PCI Express. Такое решение в
четыре раза эффективней, чем многоядерные x86-системы со стандартными
интерфейсами. В этом случае гетерогенная многоядерная архитектура
обеспечивает несколько функций, увеличивающих общую эффективность
системы.

Параметры процессоров

Рассмотрим некоторые характеристики процессоров, в том числе разрядность


шины данных и шины адреса, а также быстродействие.
Процессоры можно классифицировать по двум основным параметрам:
разрядности и быстродействию. Быстродействие процессора — довольно
простой параметр. Оно измеряется в мегагерцах (МГц); 1 МГц равен миллиону
тактов в секунду. Чем выше быстродействие, тем лучше (тем быстрее
процессор). Разрядность процессора — параметр более сложный. В процессор
входит три важных устройства, основной характеристикой которых является
разрядность:


шина ввода и вывода данных;

шина адреса памяти;

внутренние регистры.

Шина данных
Когда говорят о шине процессора, чаще всего имеют в виду шину данных,
представленную как набор соединений (или выводов) для передачи или
приема данных. Чем больше сигналов одновременно поступает на шину, тем
больше данных передается по ней за определенный интервал времени и тем
быстрее она работает. Разрядность шины данных подобна количеству полос
движения на скоростной автомагистрали; точно так же, как увеличение
количества полос позволяет увеличить поток машин по трассе, увеличение
разрядности позволяет повысить производительность.
Данные в компьютере передаются в виде цифр через одинаковые промежутки
времени. Для передачи единичного бита данных в определенный временной
интервал посылается сигнал напряжения высокого уровня (около 5 В), а для
передачи нулевого бита данных – сигнал напряжения низкого уровня (около 0
В). Чем больше линий, тем больше битов можно передать за одно и то же
время. Современные процессоры типа Pentium имеют 64-разрядные внешние
шины данных. Это означает, что процессоры Pentium, включая Pentium 4,
Athlon и даже Itanium, могут передавать в системную память (или получать из
нее) одновременно 64 бит данных. Представим себе, что шина – это
автомагистраль с движущимися по ней автомобилями. Если автомагистраль
имеет всего по одной полосе движения в каждую сторону, то по ней в одном
направлении в определенный момент времени может проехать только одна
машина. Если вы хотите увеличить пропускную способность дороги,
например, вдвое, вам придется ее расширить, добавив еще по одной полосе
движения в каждом направлении. Таким образом, 8-разрядную микросхему
можно представить в виде однополосной автомагистрали, поскольку в каждый
момент времени по ней проходит только один байт данных (один байт равен
восьми битам). Аналогично, 32-разрядная шина данных может передавать
одновременно четыре байта информации, а 64-разрядная подобна скоростной
автостраде с восемью полосами движения.
Разрядность шины данных процессора определяет также разрядность банка
памяти. Это означает, что 32-разрядный процессор, например класса 486,
считывает из памяти или записывает в память 32 бита одновременно.
Процессоры класса Pentium, включая Pentium III, Celeron, Pentium 4, Athlon и
Duron, считывают из памяти или записывают в память 64 бит одновременно.
Поскольку стандартные 72-контактные модули памяти SIMM имеют
разрядность, равную всего лишь 32, в большинстве систем класса 486
устанавливают по одному модулю, а в большинстве систем класса Pentium –
по два модуля одновременно. Разрядность модулей памяти DIMM равна 64,
поэтому в системах класса Pentium устанавливают по одному модулю, что
облегчает процесс конфигурирования системы, так как эти модули можно
устанавливать или удалять по одному. Каждый модуль DIMM имеет такую же
производительность, как и целый банк памяти в системах Pentium. Модули
памяти RIMM (Rambus Inline Memory Modules) в некотором роде уникальны,
поскольку используют собственный набор инструкций. Ширина канала
памяти достигает 16 или 32 бит. В зависимости от типа используемого модуля
и набора микросхем системной логики, модули устанавливаются отдельно или
попарно.
Шина адреса
Шина адреса представляет собой набор проводников; по ним передается адрес
ячейки памяти, в которую или из которой пересылаются данные. Как и в шине
данных, по каждому проводнику передается один бит адреса,
соответствующий одной цифре в адресе. Увеличение количества проводников
(разрядов), используемых для формирования адреса, позволяет увеличить
количество адресуемых ячеек. Разрядность шины адреса определяет
максимальный объем памяти, адресуемой процессором.
Представьте себе следующее. Если шина данных сравнивалась с автострадой,
а ее разрядность – с количеством полос движения, то шину адреса можно
ассоциировать с нумерацией домов или улиц. Количество линий в шине
эквивалентно количеству цифр в номере дома. Например, если на какой-то
гипотетической улице номера домов не могут состоять более чем из двух цифр
(десятичных), то количество домов на ней не может быть больше ста (от 00 до
99), т.е. 102. При трехзначных номерах количество возможных адресов
возрастает до 103 (îò 000 äî 999) è ò. ä.
В компьютерах применяется двоичная система счисления, поэтому при
двухразрядной адресации можно выбрать только четыре ячейки (с адресами
00, 01, 10 и 11), т. е. 22, при трехразрядной – восемь (от 000 до 111), т. е. 23.
Например, в процессорах 8086 и 8088 используется 20-разрядная шина адреса,
поэтому они могут адресовать 220 (1 048 576) байт, или 1 Мбайт, памяти.
Шины данных и адреса независимы, и разработчики микросхем выбирают их
разрядность по своему усмотрению, но, чем больше разрядов в шине данных,
тем больше их и в шине адреса. Разрядность этих шин является показателем
возможностей процессора: количество разрядов в шине данных определяет
способность процессора обмениваться информацией, а разрядность шины
адреса – объем памяти, с которым он может работать.
Внутренние регистры
Количество битов данных, которые может обработать процессор за один
прием, характеризуется разрядностью внутренних регистров. Регистр – это,
по существу, ячейка памяти внутри процессора; например, процессор может
складывать числа, записанные в двух различных регистрах, а результат
сохранять в третьем регистре. Разрядность регистра определяет количество
разрядов обрабатываемых процессором данных, а также характеристики
программного обеспечения и команд, выполняемых чипом. Например,
процессоры с 32-разрядными внутренними регистрами могут выполнять 32-
разрядные команды, которые обрабатывают данные 32-разрядными порциями,
а процессоры с 16-разрядными регистрами этого делать не могут. Во всех
современных процессорах внутренние регистры являются 32-разрядными.
Процессор Itanium имеет 64-разрядные внутренние регистры, которые
необходимы для более полного использования функциональных
возможностей новых версий операционных систем и программного
обеспечения.
В некоторых очень старых процессорах разрядность внутренней шины данных
(а шина состоит из линий передачи данных и регистров!) больше, чем
разрядность внешней. Так, например, в процессорах 8088 и 386SX разрядность
внутренней шины только вдвое больше разрядности внешней шины. Такие
процессоры (их часто называют половинчатыми èëè гибридными) обычно
являются более дешевыми вариантами исходных. Например, в процессоре
386SХ внутренние операции 32-разрядные, а связь с внешним миром
осуществляется через 16-разрядную внешнюю шину. Это позволяет
разработчикам проектировать относительно дешевые системные платы с 16-
разрядной шиной данных, сохраняя при этом совместимость с 32-разрядным
процессором 386.
Если разрядность внутренних регистров больше разрядности внешней шины
данных, то для их полной загрузки необходимо несколько циклов считывания.
Например, в процессорах 386DХ и 386SХ внутренние регистры 32-разрядные,
но процессору 386SХ для их загрузки необходимо выполнить два цикла
считывания, а процессору 386DХ достаточно одного. Аналогично передаются
данные от регистров к системной шине.
В процессорах Pentium шина данных 64-разрядная, а регистры 32-разрядные.
Такое построение на первый взгляд кажется странным, если не учитывать, что
в этом процессоре для обработки информации служат два 32-разрядных
параллельных конвейера. Pentium во многом подобен двум 32-разрядным
процессорам, объединенным в одном корпусе, а 64-разрядная шина данных
позволяет быстрее заполнить рабочие регистры. Архитектура процессора с
несколькими конвейерами называется суперскалярной.
Современные процессоры шестого поколения, например Pentium III/4 и Athlon
XP, имеют целых шесть внутренних конвейеров для выполняющихся команд.
Хотя некоторые из указанных внутренних конвейеров специализированы (т.е.
предназначены для выполнения специальных функций), эти процессоры могут
все же выполнять шесть (Pentium 4) или девять (Athlon XP) команд за один
цикл.
Режимы процессора
Все 32-разрядные и более поздние процессоры Intel, начиная с 386-го, могут
выполнять программы в нескольких режимах. Режимы процессора
предназначены для выполнения программ в различных средах; в разных
режимах возможности чипа неодинаковы, потому что команды выполняются
по-разному. В зависимости от режима процессора изменяется схема
управления памятью системы и задачами.
Процессоры могут работать в трех режимах: реальном, защищенном и
виртуальном реальном режиме (реальном внутри защищенного).
Реальный режим
В первоначальном IBM PC использовался процессор 8088, который мог
выполнять 16-разрядные команды, применяя 16-разрядные внутренние
регистры, и адресовать только 1 Мбайт памяти, используя 20 разрядов для
адреса. Все программное обеспечение PC первоначально было предназначено
для этого процессора; оно было разработано на основе 16-разрядной системы
команд и модели памяти объемом 1 Мбайт. Например, DOS, все программное
обеспечение DOS, Windows от 1.x äî 3.x и все приложения для Windows от
1.x äî 3.x написаны в расчете на 16-разрядные команды. Эти 16-разрядные
операционные системы и приложения были разработаны для выполнения на
первоначальном процессоре 8088.
Более поздние процессоры, например 286, могли также выполнять те же самые
16-разрядные команды, что и первоначальный 8088, но намного быстрее.
Другими словами, процессор 286 был полностью совместим с
первоначальным 8088 и мог выполнять все 16-разрядные программы точно так
же, как 8088, но, конечно же, значительно быстрее. Шестнадцатиразрядный
режим, в котором выполнялись команды процессоров 8088 и 286, был
назван реальным режимом. Все программы, выполняющиеся в реальном
режиме, должны использовать только 16-разрядные команды, 20-разрядные
адреса и поддерживаться архитектурой памяти, рассчитанной на емкость до 1
Мбайт. Для программного обеспечения этого типа обычно используется
однозадачный режим, т.е. одновременно может выполняться только одна
программа. Нет никакой встроенной защиты для предотвращения перезаписи
ячеек памяти одной программы или даже операционной системы другой
программой; это означает, что при выполнении нескольких программ вполне
могут быть испорчены данные или код одной из них, а это может привести
всю систему к краху (или останову).
Защищенный режим
Первым 32-разрядным процессором, предназначенным для PC, был 386-й.
Этот чип мог выполнять абсолютно новую 32-разрядную систему команд.
Чтобы полностью использовать преимущество 32-разрядной системы команд,
были необходимы 32-разрядная операционная система и 32-разрядные
приложения. Этот новый режим назывался защищенным, так как
выполняющиеся в нем программы защищены от перезаписи своих областей
памяти другими программами. Такая защита делает систему более надежной,
поскольку ни одна программа с ошибками уже не сможет так легко повредить
другие программы или операционную систему. Кроме того, программу,
"потерпевшую крах", можно довольно просто завершить без ущерба для всей
системы.
Зная, что разработка новых операционных систем и приложений,
использующих преимущества 32-разрядного защищенного режима, займет
некоторое время, Intel предусмотрела в процессоре 386 обратно совместимый
реальный режим. Благодаря этому процессор 386 мог выполнять
немодифицированные 16-разрядные приложения. Причем они выполнялись
намного быстрее, чем на любом процессоре предыдущего поколения. Для
большинства пользователей этого было достаточно; им не требовалось все 32-
разрядное программное обеспечение  достаточно было того, чтобы
имевшиеся у них 16-разрядные программы работали быстрее. К сожалению,
из-за этого процессор никогда не работал в 32-разрядном защищенном режиме
и все возможности такого режима не использовались. Когда
высокопроизводительный процессор, подобный Pentium 4, работает в
реальном режиме, он напоминает "Turbo 8088". Слово "Turbo" означает, что
процессор имеет преимущество в быстродействии при выполнении 16-
разрядных программ; хотя он может выполнять только 16-разрядные команды
и обращаться к памяти в пределах все того же 1 Мбайт, предусмотренного
картой памяти процессора 8088. Поэтому, даже если у вас система с Pentium 4
или Athlon XP и оперативной памятью емкостью 512 Мбайт, при выполнении
Windows 3.x или DOS в действительности используется только первый
мегабайт памяти, а остальные 511 практически не применяются!
В связи с этим потребовались новые операционные системы и приложения,
которые могли бы использовать все преимущества современных процессоров
в 32-разрядном защищенном режиме. Однако некоторые пользователи
поначалу сопротивлялись всяческим попыткам перехода к 32-разрядной
среде. Сообщество пользователей оказалось весьма устойчивым в своих
привязанностях и не желало изменять привычек.
Из-за сопротивления пользователей 32-разрядные операционные системы,
такие, как Unix и ее разновидности (например, Linux), OS/2 и даже Windows
NT\2000, распространялись на рынке персональных компьютеров достаточно
вяло. Из всех перечисленных систем, только Windows 2000 стала по-
настоящему широко распространенным программным продуктом, да и то
благодаря огромной популярности ОС Windows 95 и последовавших за ней
Windows 98/Me. Последней полностью 16-разрядной операционной системой
была Windows серии 3.x. Хотя на самом деле она работала в качестве
надстройки DOS.
Процессор Itanium стал первенцем мира 64-разрядных возможностей. Этот
процессор также совместим со всем существующим 32-разрядным
программным обеспечением. Но для того, чтобы воспользоваться свойствами
процессора в полном объеме, потребуются полноценные 64-разрядные
операционные системы и приложения. Microsoft уже выпустила 64-разрядные
версии операционной системы Windows XP, в то время как различными
компаниями создаются 64-разрядные приложения для серверов и рабочих
станций.
Виртуальный реальный режим Для обратной совместимости 32-разрядная
система Windows 9x использует третий режим в процессоре – виртуальный
реальный режим. Виртуальный реальный, по существу, является режимом
выполнения 16-разрядной среды (реальный режим), которое реализовано
внутри 32-разрядного защищенного режима (т. е. виртуально, а не реально).
Выполняя команды в окне подсказки DOS внутри Windows 95/98, вы создаете
виртуальный сеанс реального режима. Поскольку защищенный режим
является подлинно многозадачным, фактически можно выполнять несколько
сеансов реального режима, причем в каждом сеансе собственное программное
обеспечение работает на виртуальном компьютере. И все эти приложения
могут выполняться одновременно, даже во время работы других 32-разрядных
программ.
Обратите внимание, что любая программа, выполняющаяся в виртуальном
окне реального режима, может обращаться только к памяти объемом до 1
Мбайт, причем для каждой такой программы это будет первый и
единственный мегабайт памяти в системе. Другими словами, если вы
выполняете приложение DOS в виртуальном реальном окне, ему будет
доступна память только объемом до 640 Кбайт. Так происходит потому, что
имеется только 1 Мбайт общей оперативной памяти в 16-разрядной среде, а
верхние 384 Кбайт зарезервированы для системы. Виртуальное реальное окно
полностью имитирует среду процессора 8088, и, если не учитывать
быстродействие, программное обеспечение будет выполняться так, как оно
выполнялось первым PC в реальном режиме. Каждая вирту альная машина
получает собственный 1 Мбайт адресного пространства и собственный
экземпляр реальных аппаратных подпрограмм управления аппаратурой
(базовую систему ввода-вывода), причем при этом эмулируются все регистры
и возможности реального режима.
Быстродействие процессора
Быстродействие  это одна из характеристик процессора, которую
зачастую толкуют по-разному.
Быстродействие компьютера во многом зависит от тактовой частоты,
обычно измеряемой в мегагерцах (МГц). Она определяется параметрами
кварцевого резонатора, представляющего собой кристалл кварца,
заключенный в небольшой оловянный контейнер. Под воздействием
электрического напряжения в кристалле кварца возникают колебания
электрического тока с частотой, определяемой формой и размером кристалла.
Частота этого переменного тока и называется тактовой частотой.
Микросхемы обычного компьютера работают на частоте нескольких
миллионов герц. На рис. 1 показан график синусоидального сигнала.
Графическое представление понятия тактовая частота
Наименьшей единицей измерения времени (квантом) для процессора как
логического устройства является период тактовой частоты, или
просто òàêò. На каждую операцию затрачивается минимум один такт.
Например, обмен данными с памятью процессор Pentium II выполняет за три
такта плюс несколько циклов ожидания. (Цикл ожидания  это такт, в котором
ничего не происходит; он необходим только для того, чтобы процессор не
"убегал" вперед от менее быстродействующих узлов компьютера.)
Различается и время, затрачиваемое на выполнение команд.

 8086 è 8088. В этих процессорах на выполнение одной команды


уходит примерно 12 тактов.
 286 è 386. Эти процессоры уменьшили время на выполнение
команд примерно до 4,5 тактов.
 Процессор 486 и большинство Intel-совместимых процессоров
четвертого поколения, таких, как AMD 5x86, уменьшили этот параметр
до 2 тактов.
 Серия Pentium, K6. Архитектура процессоров Pentium и других
Intel-совместимых процессоров пятого поколения, созданных в AMD и
Cyrix, включающая в себя двойные конвейеры команд и прочие
усовершенствования, обеспечила выполнение одной или двух команд за
один такт.
 Pentium Pro, Pentium II/III/4Celeron è Athlon/Duron. Процессоры
класса P6, а также другие процессоры шестого поколения, созданные
компаниями AMD è Cyrix, позволяют выполнить, как минимум, три
команды за каждый такт.

Различное количество тактов, необходимых для выполнения команд,


затрудняет сравнение производительности компьютеров, основанное только
на их тактовой частоте.
Сравнивая относительную эффективность процессоров, можно увидеть,
что производительность процессора Pentium III, работающего на тактовой
частоте 1 000 МГц, теоретически равна производительности процессора
Pentium, работающего на тактовой частоте 1 500 МГц, которая, в свою
очередь, теоретически равна производительности процессора 486,
работающего на тактовой частоте 3 000 МГц, а она, в свою очередь,
теоретически равна производительности процессоров 386 или 286,
работающих на тактовой частоте 6 000 МГц, или же 8088-го, работающего на
тактовой частоте 12 000 МГц. Если учесть, что первоначальный PC с
процессором 8088 работал на тактовой частоте, равной всего лишь 4,77 МГц,
то сегодняшние компьютеры работают более чем в 1,5 тыс. раз быстрее.
Поэтому нельзя сравнивать производительность компьютеров, основываясь
только на тактовой частоте; необходимо принимать во внимание то, что на
эффективность системы влияют и другие факторы.
Кэш-память
Следует заметить, что, несмотря на повышение скорости ядра процессора,
быстродействие памяти остается на прежнем уровне. При этом возникает
вопрос: как добиться повышения производительности процессора, если
память, используемая для передачи данных, работает довольно медленно?
Ответ прост: "кэш". Попросту говоря, кэш-память представляет собой
быстродействующий буфер памяти, используемый для временного хранения
данных, которые могут потребоваться процессору. Это позволяет получать
необходимые данные быстрее, чем при извлечении из оперативной памяти.
Одним из дополнительных свойств, отличающих кэш-память от обычного
буфера, являются встроенные логические функции. Кэш-память можно по
праву назвать разумным буфером.
Буфер содержит случайные данные, которые обычно обрабатываются по
принципу "первым получен, первым выдан" или "первым получен, последним
выдан". Кэш-память, в свою очередь, содержит данные, которые могут
потребоваться процессору с определенной степенью вероятности. Это
позволяет процессору работать практически с полной скоростью без
необходимости ожидания данных, извлекаемых из более медленной
оперативной памяти. Кэш-память реализована в виде микросхем статической
оперативной памяти (SRAM), установленных на системной плате или
встроенных в процессор.

Вам также может понравиться