Основы микропроцессорной техники

Раздел 7. Организация персонального компьютера


«Структура курса | Глава 1 | Глава 2 | Глава 3 | Глава 4 | Глава 5 | Глава 6 | Раздел 7 | Глава 8 | Дополнения

Раздел 7 - Страницы: « 1 | 2 | 3 | 4 | 5 | 6 | 7 | »

7.2.4. Особенности процессора 486

Процессор 486 является представителем второго поколения 32-разрядных процессоров. Он сохраняет основные принципы архитектуры процессора 80386, а также обеспечивает полную совместимость со своими предшественниками. Но в то же время он имеет ряд преимуществ.

  • В процессор введена внутренняя кэш 1-го уровня (Internal cache Level 1) размером 8 Кбайт и предусмотрены средства для двухуровневого кэширования.
  • В процессор введен математический сопроцессор (в модели процессора 486SX сопроцессор отсутствует).
  • Повышена производительность обмена внешней шиной - введены так называемые пакетные циклы, передают одно слово за один такт шины.
  • В архитектуре процессора применено скоростное RISC-ядро, позволяющее те команды, которые чаще встречаются выполнять за один такт.
  • В структуру введены буферы отложенного записи.
  • В отдельных моделях предусмотрено внутреннее умножение тактовой частоты (на 2, 2,5 или 3).

Все это обеспечило существенное увеличение быстродействия. А усовершенствованный защищенный режим дает некоторые дополнительные возможности.

Рассмотрим подробнее принцип действия кэша.

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

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

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

В принципе кэш может быть как внутренней (входить в состав процессора), так и внешней. Внутренний кэш называется кэшем первого уровня, внешний - кэшем второго уровня. Объем внутреннего кэша обычно невелик - типичное значение 32 Кбайт. Объем внешнего кэша может достигать нескольких мегабайт. Но принцип функционирования в них тот же.

Кэш первого уровня процессора 486 имеет четырехканальная структура (Рис. 7.9). Каждый канал состоит из 128 строк по 16 байт в каждом. Одноименные строки всех четырех каналов образуют 128 наборов из четырех строк, каждая из которых обслуживает свои адреса памяти. Каждой строке соответствует 21-разрядная информация об адресе скопированного в нее блока системной памяти. Эта информация называется тэгом (Tag) строки.


Рис. 7.9 Структура внутреннего кэша процессора 486.

Кроме того, в состав кэша входит так называемый диспетчер, т.е. область памяти с организацией 128 х 7, в которой хранятся 4-битные теги действительности (достоверности) для каждого из 128 наборов и 3-битные коды LRU (Least Recently Used) для каждого из 128 наборов. Тег действительности набора включает в себя 4 бита вероятности каждого из 4 строк, входящих в данный набор. Бит достоверности, установленный в единицу, говорит о том, что соответствующая строка заполнен; если он сброшен в ноль, то строка пустой. Биты LRU говорят о том, как давно было обращение к данному набору. Это нужно для того, чтобы обновлять наименее используемые наборы.

Адресация кэш-памяти осуществляется посредством 28 разрядов адреса. Из них 7 младших разрядов выбирают один из 128 наборов, а 21 старший разряд сравнивается с тегами всех 4 строк выбранного набора. Если теги совпадают с разрядами адреса, то получается ситуация кэш-попадания, а если нет, то ситуация кэш-промаха.

В случае цикла чтения при кэш-попадании байт или слово читаются из кэш-памяти. При кэш-Промас происходит восстановление (перезагрузка) одной из строк кэш-памяти.

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

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

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

В случае, когда необходим строчку в кеше не подан (ситуация кэш-промахе), запрос на запись направляется на внешнюю шину, а запрос на чтение обрабатывается несколько сложнее. Если этот запрос относится к кэшированные области памяти, то выполняется цикл заполнения целой строки кэша (16 байт из памяти переписывается в одну из строк набора, который обслуживает данный адрес. Если вызваны данные не укладываются в одной строке, то заполняется и соседней строке. Заполнение строки процессор пытается выполнить самым быстрым способом - пакетным циклом, однако внешний контроллер памяти может потребовать использования более медленных пересылок.

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

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

Отметим, что в пространстве памяти персонального компьютера есть области, для которых кэширование принципиально недопустимо (например, динамическую память аппаратурных адаптеров - плат расширения).

Режим пакетной передачи (Burst Mode), который впервые появился в процессоре 486, предназначенный для быстрых операций со строками кэша. Пакетный цикл обмена (Burst Cycle) отличается тем, что для пересылки всего пакета адрес внешней шиной адреса передается только один раз - в начале пакета, а затем в каждом следующем такте передаются только данные. Адрес для каждого следующего кода данных исчисляется с начальной адреса по правилам, которые установлены как передатчиком данных, так и их приемником. Например, адрес каждого следующего слова данных вычисляется как инкременована адрес предыдущего. В результате время передачи одного слова данных значительно сокращается. Понятно, что обмен пакетными циклами возможен только с устройствами, способными обслуживать такой цикл. Допустимая длина пакета не слишком велика, например, при чтении размер пакета ограничен одной строкой кэша.

Режим внутреннего умножения тактовой частоты процессора был предложен для того, чтобы повысить быстродействие процессора, но при этом устанавливать его в системные платы, рассчитанные на невысокие тактовые частоты. Например, модель процессора 486DX2-66 работает в системной плате с тактовой частотой 33, но эту частоту внутри себя преобразует в удвоенную частоту - 66 МГц. Это позволяет уменьшить общую стоимость системы, так как снижает требования к элементам системной платы.

Процессор 486 выпускался в 168 - или 169-выводных корпусах. Напряжение питания - 5 В или 3,3 В. Введение пониженного напряжения питания 3,3 В связано с необходимостью снижения величины мощности рассеивается. Растущая тактовая частота и усложнения структуры процессоров приводят к тому, что мощность рассеивается ними достигает нескольких ватт. Для современных процессоров уже обязательное применение вентиляторов на корпусе процессора.

7.2.5. Особенности процессоров Pentium

Процессоры Pentium относятся к пятого поколения процессоров или к третьему поколению 32-разрядных процессоров. По своим основным архитектурными принципами они совместимы с процессорами 386 и 486. Но существуют и существенные отличия, позволяющие говорить о новом поколении:

  • Суперскалярная архитектура процессора, т.е. процессор имеет два пятиступенчатый параллельно работающих конвейеры обработки информации, благодаря чему он способен одновременно выполнять две команды за один такт. Необходимо отметить, что преимущества такой архитектуры проявляются только в случае специальной компиляции программного обеспечения, позволяющего осуществлять параллельную обработку.
  • Внешняя 64-разрядная шина данных для повышения производительности. Это требует соответствующей организации памяти. За такой особенности процессор иногда неправильно называют 64-разрядным (хотя внутри он все же остался 32-разрядным. Внешняя шина адреса процессора - 32-разрядная.
  • Применение технологии динамического прогнозирования ветвлений (переходов).
  • Раздельный кэш для команд и данных объемом 8 Кбайт каждый. Длина строки кэша - 32 байта. Оба кэше работают в режиме обратной записи.
  • Повышена в 2-10 раз по сравнению с процессором 486 производительность встроенного математического сопроцессора. В нем применена восьмиступенчатой конвейеризация и специальные блоки сложения, умножения и деления, что позволяет выполнять операции с плавающей точкой за один такт процессора.
  • Сокращено время (количество тактов) выполнения команд.
  • Предусмотрена возможность построения двухпроцессорных систем.
  • Введена средства управления энергопотреблением и тестирования.

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

В дополнение к базовой архитектуры 32-разрядных процессоров Pentium имеет набор регистров MSR (Model Specific Registers. В него входит группа тестовых регистров (TR1 - TR12), средства наблюдения за производительностью, регистры-фиксаторы адреса и данных цикла, который вызвал срабатывание контроля машинной ошибки. Название этой группы регистров указывает на их уникальность для каждой модели процессоров Pentium.

Средства для наблюдения за производительностью (мониторинга производительности) включают в себя таймер реального времени и счетчики событий. Таймер представляет собой 64-разрядный счетчик, который инкрементуеться с каждым тактом процессора. Два счетчика событий имеют разрядность по 40 бит и программируются на подсчет событий различных классов, связанных с шинными операциями, выполнением команд, связанных с работой кэша, контролем точек остановки и т.д. Сравнивая состояния таймера и счетчиков событий, можно сделать вывод о производительности процессора.

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

Средства для построения двухпроцессорных систем позволяют на одной локальной шине устанавливать два процессора с объединением почти всех одноименных выводов. Это дает возможность использовать симметричную мультипроцессорные обработку (SMP - Symmetric Multi-Processing) или строить функционально избыточные системы (FRC - Functional Redundancy Checking).

В режиме SMP каждый процессор выполняет свою задачу, порученную ему операционной системой, поддерживается такими системами, как Novell NetWare, Windows NT, Unix. Оба процессора разделяют общие ресурсы компьютера, включая память и устройства ввода / вывода. В каждый момент шиной управляет один процессор, по определенным правилам они меняются ролями. В идеальном случае производительность системы увеличивается вдвое (без учета обращений к шине и времени на переключение процессоров).

В конфигурации FRC два процессора выступают как один логический процессор. Основной процессор (Master) работает в обычном однопроцессорном режиме. Проверочный процессор (Checker) выполняет все те же операции внутри себя, не управляя внешней шиной, и сравнивает сигналы основного процессора с теми, которые генерирует сам. В случае расхождения формируется сигнал ошибки, обрабатываемый как прерывания. Т.е. в данном случае увеличивается надежность системы в целом (в идеале - вдвое).

Развитием Pentium стало добавление технологии MMX, рассчитанной на мультимедийное, графическое и коммуникационное применение. Основная идея ММХ заключается в одновременной обработке нескольких элементов данных за одну команду (SIMD, Single Instruction - Mutiple Data). Расширение ММХ использует новые типы упакованных 64-битных данных:

  • упакованы байта - восемь байт;
  • упакованы слова - четыре слова;
  • упакованы двойные слова (два двойных слова);
  • учетверенне слово (одно слово).

Эти типы данных могут обрабатываться в восьми дополнительных 64-разрядных регистрах ММХ0 - ММХ7. В систему команд для поддержки MMX введено 57 дополнительных команд для одновременной обработки нескольких единиц данных (команды пересылки, арифметические, логические команды и команды преобразования форматов данных. Команды ММХ доступны из любого режима процессора.

Кроме того, в процессорах Pentium ММХ увеличенный объем кэша данных и программ (до 16 Кбайт каждый), увеличено количество ступеней конвейеров и введено еще несколько усовершенствований, повышающих производительность обычных (не мультимедийных) операций.

От процессора Pentium Pro принято отсчитывать шестое поколение процессоров. Pentium Pro по сравнению с Pentium имеет следующие усовершенствования:

  • · Динамическое выполнения команд предполагает, что команды, которые не зависят от результатов предыдущих операций, могут выполняться в измененном порядке (такие, которые пойдут раньше предыдущих), однако порядок обмена с внешними устройствами (памятью и устройствами ввода / вывода) будет отвечать программе . То есть процессор сам выбирает удобный ему порядок выполнения команд. Это позволяет п высить производительность процессора без увеличения тактовой частоты.
  • Архитектура двойной независимой шины повышает суммарную пропускную способность. Одна шина (системная) служит для обмена с основной памятью и устройствами ввода / вывода, а другая (локальная) предназначена только для обмена со вторичным кэшем (см. Рис. 7.3).
  • В процессор введен кэш второго уровня объемом 256-512 Кбайт.
  • Возможно построение многопроцессорных систем (до четырех микропроцессоров.

Процессор Pentium II объединяет в себе архитектуру Pentium Pro с технологией ММХ.

Размер первичных кэшей данных и команд составляет 16 Кбайт, вторичного кэша - до 512 Кбайт. Кэш второго уровня чуть медленнее, чем кэш первого уровня, зато он имеет больший объем. Такая двухуровневая организация позволяет достигать компромисса между быстродействием кэш-памяти и ее объемом.

Шина адреса имеет 36 разрядов (т.е. максимально допустимый объем памяти - 64 ГБ.

Процессоры Pentium III и Pentium 4 отличаются значительно возросшей предельной тактовой частотой (до 3 ГГц в Pentium 4, а в перспективе и до 5 ГГц), увеличенным объемом кэша (от 512 Кбайт до нескольких мегабайт) и последующим совершенствованием архитектуры Pentium. Размер внутреннего конвейера в Pentium 4 доведен до 20 ступеней.

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

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

Для портативных компьютеров были предложены упрощенные версии процессоров Pentium III и Pentium 4, которые продаются под маркой Celeron. Они отличаются уменьшенной тактовой частотой и сокращенным объемом кэша второго уровня. Их тактовая частота сейчас доходит до 2 ГГц. Треба враховувати, що розсіювана потужність процесора Celeron залишається практично такою ж, як у процесорів Pentium III і Pentium 4.


« Структура курсу Розділ 7 - Сторінки: « 1 | 2 | 3 | 4 | 5 | 6 | 7 | »