Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
cpu.doc
Скачиваний:
8
Добавлен:
16.12.2013
Размер:
160.77 Кб
Скачать

21

Министерство Образования Российской Федерации

Государственный Университет Управления

Институт Национальной и Мировой экономики

Реферат по теме

«Микропроцессоры»

Выполнил студент I курса

(предпринимательство)

Проверила преподаватель

Малышева Л.Н.

Москва,2002 г.

План

Введение.

Процессор как он есть.

Краткая характеристика микропроцессоров.

Сравнение процессоров.

Что день грядущий нам готовит?

На грани фантастики.

Введение.

Компьютер представляет собой устройство, способное исполнять четко определённую последовательность операций, предписанную программой. Понятие "компьютер" является более широким, чем "электронно-вычислительная машина" (ЭВМ) поскольку в последнем явный акцент делается на вычисления. Персональный компьютер (ПК) характерен тем, что им может пользоваться один человек, не прибегая к бригаде обслуживающего персонала и не отводя под него специального зала с особым климатом, мощной системой электропитания и прочими атрибутами больших вычислительных машин. Персональный компьютер обычно ориентирован на взаимодействие с одним пользователем (возможно и больше), причем взаимодействие происходит через множество сред общения - от алфавитно-цифрового и графического диалога посредством дисплея, клавиатуры и мыши до устройств виртуальной реальности, в которых пока не задействованы, наверное, только запахи. Когда используется аббревиатура PC (Personal Computer), подразумевается ПК, совместимый с самым массовым семейством ПК фирмы IBM и их клонов.

Любой компьютер представляет собой реализацию так называемой фон-неймановской архитектуры вычислительных машин. эта архитектура была представлена Джорджем фон Нейманом ещё в 1945 году и имеет следующие основные признаки. Машина состоит из блока управления, арифметико-логического устройства (АЛУ), памяти и устройств ввода – вывода. В ней (машине) реализуется концепция хранимой программы: программа и данные хранятся в одной и той же памяти. Выполняемые действия определяются блоком управления и АЛУ, которые вмести являются основой центрального процессора.

Процессор как он есть.

В настоящее время под словом «процессор» подразумевают микропроцессор - микросхему, которая, помимо собственно процессора, может содержать и другие узлы - например, кэш –память. Сейчас набор арифметических, логических и прочих инструкций, которых выполняет процессор насчитывает несколько сотен, а для потоковой обработки придуман принцип SIDM – множество комплектов данных, обрабатываемых одной инструкцией (MMX, 3DNow!, SSE,SSE2). В IBM-совместимых ПК применяются процессоры, совместимые с семейством 80х86 фирмы Intel.

В оригинальной машине IBM PC использовался процессор 8088 с 16 – разрядными регистрами. Все следующие модели процессоров, в том числе 32- и 64- разрядные, включает в себя подмножество системы команд и архитектуры предыдущих моделей, обеспечивая совместимость с ранее написанными ПО (программным обеспечением).

Под архитектурой процессора понимается его программная модель , то есть программно – видимые свойства. Далее мы будем рассматривать процессоры с архитектурой IA-32 (Intel Architecture 32 bit – архитектура Pentium – совместимых 32-х битных процессоров), так как процессоры данной архитектуры самые распространённые. Под микроархитектурой понимается внутренняя реализация этой программной модели. Для одной и той же архитектуры IA-32 разными фирмами и в разных поколениях применяются существенно различающиеся микроархитектурные реализации, при этом, естественно, стремятся к максимальному повышению производительности (скорости исполнения программ). Поясним некоторые понятия:

Конвейеризация (pipelining) предполагает разбивку выполнения каждой инструкции в несколько этапов, причем каждый этап выполняется на своей ступени конвейера процессора. При выполнении инструкция продвигается по конвейеру по мере освобождения последующих ступеней. Таким образом, на конвейере одновременно может обрабатываться несколько последовательных инструкций, производительность можно оценивать темпом выхода выполненных инструкций со всех конвейеров. Для достижения максимальной производительности процессора – обеспечение полной загрузки конвейеров с минимальным числом лишних штрафных циклов (penalty cycles) – программа должна составляться с учётом архитектурных особенностей процессора. Конвейер «классического» процессора Pentium имеет пять ступеней. Конвейеры процессоров с суперконвейерной архитектурой имеют большее число ступеней, что позволяет упростить каждую из них и, следовательно, сократить время пребывания в них инструкций. Конвейер Pentium 4 имеет уже 20 ступеней.

Скалярным называют процессор с единственным конвейером, к этому типу относятся все процессоры Intel до 486 включительно. Суперскалярный процессор имеет более одного конвейера, способных обрабатывать инструкции параллельно. Pentium является двухпотоковым процессором (имеет два конвейера), Р6–трехпотоковым.

Начиная с Pentium и некоторых моделей 486 поддерживают так же особый режим системного управления System Management Mode (SMM), при котором процессор выходит в иное, изолированное от остальных режимов пространство памяти. Этот режим используется в служебных и отладочных целях.

Процессоры могут оперировать с 8 - , 16 - ,32 – и даже 64 - битными операндами, строками байт, слов и двойных слов, а так же с битами, битовыми полями и строками бит. Все процессоры имеют целочисленное АЛУ (арифметико-логическое устройство). Блоки FPU, MMX и XMM в архитектуре процессоров IA-32 x86 держится особняком. Они присутствуют не во всех процессорах и даже по схематической реализации являются пристройками к центральному процессору с его набором обычных целочисленных регистров. Данные блоки предназначены для ускорения вычислений.

Математический сопроцессор предназначен для расширения вычислительных возможностей центрального процессора – выполнения арифметических операций, вычисления основных математических функций (тригонометрических, экспоненты, логарифма) и т.д. В разных поколениях процессоров он назывался по-разному - FPU (Floating Point Unit - блок чисел с плавающей точкой) или NPX (Numeric Processor eXtention – числовое расширение процессора). Сопроцессор поддерживает семь типов данных: 16-, 32-и 64 – битные целые числа; 32 -, 64 -, 80- битные числа с плавающей точкой (FP – форматы) и 18 – разрядные числа в двоично-десятичном (BCD) формате. Применение сопроцессора повышает производительность вычислений в сотни раз. FPU присутствует во всех современных процессорах; его не было в 486SX, а в предыдущих процессорах он устанавливался дополнительно.

Технология MMX ориентирована на приложения мультимедиа, 2D/3D– графику и коммуникации. Это расширение базовой архитектуры появилось только после выхода второго поколения процессоровPentium. Основная идея ММХ заключается в одновременной обработки нескольких элементов данных за одну инструкцию – так называемая технологияSIMD(SingleInstruction–MultipleData). Ещё одна особенность технологии ММХ – поддержкаарифметики с насыщением(Saturatingarithmetic). Её отличие от обычной арифметики с циклическим переполнением заключается в том, что при возникновении переполнения в результате фиксируется максимально-возможное значение для данного типа данных, а перенос игнорируется. В случае переполнения снизу в результате фиксируется минимально-возможное значение. Граничные значения определяются типом (знаковой или беззнаковой) и разрядностью переменных. Такой режим вычисления удобен, например, для определения цветов. Совпадения регистров ММХ иFPUнакладывает ограничения на чередование кодовFPUи ММХ – забота об этом лежит на программисте приложений с ММХ. Блок ММХ присутствует практически на всех современных процессорах.

Процессоры PentiumIII-IVимеют так называемоепотоковое расширение SSE (в Р4-SSE2) (StreamingSIMDExtensions). Блок позволяет выполнять векторные (они же пакетные) и скалярные инструкции. При выполнении инструкции с ХММ традиционное оборудованиеFPU/MMX не используется, что позволяет эффективно смешивать инструкции ММХ с инструкциями над операндами с плавающей точкой. Здесь блоки процессора меняются ролями – регистры ММХ, наложенные на регистры традиционного сопроцессора, используются для целочисленных потоковых вычислений, а вычисления с плавающей точкой возлагаются на новый блок ХММ. Кроме инструкций с новым блоком ХММ в расширенииSSEвходят и дополнительные целочисленные инструкции с регистрами ММХ, а так же инструкции управления кэшированием.

Расширение 3DNow!, введенная фирмойAMDв процессорах К6-2 и выше, расширяет возможности блока ММХ. Технология 3DNow! даёт заметный результат при обработки графики, хотя не претендует на вытеснение графических ускорителей, а призвано служить их мощным дополнением. При этом сохраняется программная совместимость с прежними процессорами и операционными системами (ОС). В процессорахAthlonнабор инструкций 3DNow! был дополнен. Появились новые инструкции для процессоров (к 21 добавились ещё 24), расширен набор инструкций ММХ, расширенно управление кэшированием. Часть инструкций совпадают с одноимёнными инструкциямиSSE.

При отсутствие математического сопроцессора прикладная программа все-таки может использовать инструкции FPU, но для этого операционная система должна поддерживатьэмуляцию сопроцессора.Эмулятор сопроцессора – это программа - обработчик прерывания или исключения от сопроцессора, которая должна «выловить» код операции сопроцессора, определить место нахождения данных и выполнить требуемые вычисления, используя целочисленную арифметику центрального процессора. Понятно, что эмуляция будет выполняться во много раз медленнее, чем те же действия, выполняемые настоящим сопроцессором. Эмуляция для блоков ММХ и ХММ не предусматривается, эти блоки предназначены для ускорения вычислений в приложениях реального времени, и выполнять их с крайне низкой скоростью эмуляции было бы просто бессмысленно.

Программный код – это последовательность команд илиинструкций, каждая из которых определённым образом закодирована и расположена в целом числе смежных байт памяти. Каждая инструкция обязательно имеетоперационную часть, несущую процессору информацию о требуемых действиях.Операндная часть, указывающая процессору, где находится его «предмет труда» - операнды, может присутствовать в явном или неявном виде и даже отсутствовать. Операндная часть может описывать от нуля до двух операндов, участвующих в данной инструкции (есть инструкции, в которые кроме двух операндов задаётся ещё и параметр инструкции). Здесь могут быть сами значения операндов (непосредственные операнды); явные или неявные указания на регистры процессора, в которых находится операнды; адрес (или его составная часть) Ячейки памяти или порта ввода – вывода; Регистры процессора, участвующие в формировании адреса и разные комбинации этих компонентов. Длинна инструкции в семействе х86 может быть от одного до 12 байт и определяется типом инструкции. Исторически сложившийся формат инструкций х86 довольно сложен, и «понять», сколько байт занимает конкретная инструкция, процессор может, лишь декодировав её 1-3 байт. Инструкции могут предшествовать префиксы (всегда однобайтные), указывающие на изменение способа адресации, размера операнда или (и) необходимость многократного повторения для данной инструкции. Адрес (логический) текущий исполняемой инструкции хранится в специальном регистре– указателе инструкций IP(InstructionPointer), который соответствует счетчику команд фон-неймановской машины. После исполнения так называемойлинейной инструкцииэтот указатель увеличивает своё значение на её длину, то есть он укажет на начало следующей инструкции. Линейная инструкция не нарушает порядок выполнения, определяемый последовательностью расположения инструкций в памяти (по нарастанию адреса). Кроме линейных инструкций существуютинструкции передачи управления, среди которых различают инструкциипереходовивызововпроцедур. Эти инструкции в явном или неявном виде содержат информацию об адресе следующей выполняемой инструкции. Инструкции переходов и вызовов могут бытьбезусловными(ни от чего не зависящими) и условными. Произойдет ли условный переход (вызов) или нет, зависит от состояния флагов (признаков) на момент исполнения данной инструкции. Если переход (вызов) не состоится, то исполняется инструкция, расположенная в памяти вслед за текущей.Вызов процедуры характерен тем, что перед ним процессор сохраняет в стеке (стек – область ОЗУ) адрес следующей инструкции, и на этот адрес предаётся управление после завершения исполнения процедуры (этот адрес извлекается из стека при выполнении инструкции возврата). Переход выполняется безвозвратно.

Последовательность исполнения инструкций, предписанная програмным кодом, может быть нарушена под воздействием внутренних или внешних (относительно процессора) причин. К внутренним причинам относятся исключения (exceptions) – особые ситуации, возникающие при выполнении инструкций. Наглядным примером исключения является попытка деления на ноль. При возникновении условия исключения процессор автоматически выполняет вызов процедуры обработки исключения, после которой он может вернуться к повторному исполнению инструкции , породившей исключение, или следующей за ней. Вариант поведения зависит от типа произошедшего исключения. Исключения широко используются современными операционными системами. На основе обработки исключений строится система виртуальной памяти и реализуются многие функции многозадачных ОС. Внешними причинами изменения нормальной последовательности инструкций являютсяаппаратные прерывания– вызовы процедур под воздействием электрических сигналов на специальные выводы процессора. Эти сигналы могут подаваться неожиданно для исполняемой программы, правда, у программиста есть возможность заставить процессор (компьютер) игнорировать все прерывания или их часть. Злоупотреблять этой возможностью нельзя (да и не всегда она есть), поскольку на аппаратных прерываниях строится, например, отсчет времени и другие системные и прикладные свойства компьютера. Источниками аппаратных прерываний являются контроллеры и адаптеры периферийных устройств, генераторы меток времени, системы управления питанием и другие подсистемы. Есть ещё так называемыепрограммные прерывания, но они отнюдь не нарушают последовательность инструкций, предписанную программистом. Поэтому прерываниями они по сути, не являются – это всего лишь особый способ вызова системных сервисовBIOS(Базовая система ввода – вывода) и операционной системы. И, наконец, последовательность инструкций может изменятся по сигналу аппаратного сброса или инициализации процессора. С этого, собственно, и начинается функционирование компьютера: процессор приводится в исходное положение и «выпускается» в работу. При этом указатель инструкции совместно с другими регистрами, участвующими в формирование адреса инструкции, генерирует адрес, на 15 байт меньший максимального физического адреса. По этому адресу должна располагаться инструкция, с которой начинается инициализация компьютера.

Для того чтобы процессы не мешали друг другу (по недосмотру или умышленно), требуются меры принудительной защиты принудительных ресурсов. Современные ОС используют защищённый режимпроцессора, котором эти меры реализуются на аппаратном уровне. Поскольку программа может взаимодействовать с подсистемами компьютера только через пространство памяти и портов ввода-вывода, а также аппаратные прерывания, то защищать нужно эти три типа ресурсов. Самую сложную защиту имеет память. Операционная система выделяет каждому процессу области памяти –сегменты– различного назначения и разными правами доступа. Из одних сегментов можно только читать данные, в другие возможна и запись. Для программного кода выделяются специальные сегменты, инструкции могу выбираться и исполнятся только из них. По отношению к принципу хранимости программы это является искусственным ограничением для фон-неймановской машины, но его целесообразность очевидна. Процессору «безразлично» содержимое ячейки памяти, на которую передавалось управление, - он всегда пытается трактовать её как код инструкции (или префикс). Если ошибочно управление передавалось на область данных, на область данных, то дальнейшее поведение процессора непредсказуемо – это так называемый «вылет». Защита не позволяет передать управление на сегмент данных – сработает исключение защиты, которое обрабатывается операционной системой, и ошибочный процесс будет принудительно завершён. Таким образом вероятность вылета уменьшается. Чтобы выдержать принцип хранимости программы, на время её загрузки в память или программной модификации ту же область объявляют сегментом данных, в которых разрешена запись. Система защиты может полностью контролировать распределение памяти, генерируя исключения в случае различных нарушений. Конечно же, эффективность защиты (устойчивость компьютера к ошибкам) в значительной мере определяется предусмотрительностью разработчиков операционной системы.

Архитектура современных 32-разрядных процессоров включает ряд средств кэширования памяти: два уровня кэша инструкций и данных (L1CacheиL2Cache), буферы ассоциативной трансляции (TLB) блока страничной переадресации и буферы записи.

Кэш – память процессоров строится с учетом возможности обращений к памяти со стороны внешних абонентов – других процессоров или других контроллеров шины. Процессоры имеют механизмы внешнего слежения за состоянием собственного кэша с соответствующими аппаратными интерфейсами. Для поддержания согласованности данных кэша и основной памяти процессор обрабатывает циклы слежения(SnoopCycleилиInquireCycle), инициированные внешней (для него) системой. В этих циклах, происходящих при обращении к памяти со стороны внешнего абонента, процессор определяет присутствие затребованной области в своём собственном кэше. Если область отображается в кэше, то действия процессора зависят от состояния соответствующей строки кэша и типа внешнего обращения. Обращение по записи вызовет онулирование данной строки. Обращение по чтению к области, соответствующей модифицированной (“грязной”) строке, вызовет выгрузку её содержимого в основную память, прежде чем внешний абонент произведёт реальное считывание.

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

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

Соседние файлы в предмете Компьютерная подготовка