Принцип работы процессора компьютера на физическом уровне. От песка до процессора

02.07.2020 Мобильный интернет

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

Процессор: функции устройства и история появления

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

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

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

По мере развития компьютерной техники в структуру ПК стали внедряться девайсы, получившие название «микропроцессор». Одним из первых устройств такого типа стало изделие Intel 4004, выпущенное американской корпорацией в 1971 году. Микропроцессоры в масштабе одной микросхемы объединили в своей структуре те функции, что мы определили выше. Современные девайсы, в принципе, работают на основе той же самой концепции. Таким образом, центральный процессор ноутбука, ПК, планшета содержит в своей структуре: логическое устройство, регистры, а также модуль управления, отвечающие за конкретные функции. Однако на практике компоненты современных микросхем чаще всего представлены в более сложной совокупности. Изучим данную особенность подробнее.

Структура современных процессоров

Центральный процессор современного ПК, ноутбука или планшета представлен ядром — теперь уже нормой считается, что их несколько, кэш-памятью на различных уровнях, а также контроллерами: ОЗУ, системной шины. Производительность микросхемы соответствующего типа определяется ее ключевыми характеристиками. В какой совокупности они могут быть представлены?

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

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

Ядро процессора

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

Выборка и декодирование инструкций;

Выборка данных;

Выполнение инструкций;

Сохранение результатов вычислений;

Работа с прерываниями.

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

Ядро процессора: компоненты

В числе ключевых блоков в ядре центрального процессора — тот, что отвечает за считывание инструкций, которые прописываются в адресе, зафиксированном в счетчике команд. Как правило, в течение одного такта выполняется сразу несколько операций соответствующего типа. Общее количество инструкций, подлежащих считыванию, предопределяется показателем в блоках декодирования. Главный принцип здесь — чтобы при каждом такте отмеченные компоненты были максимально загружены. С целью обеспечения соответствия данному критерию в структуре процессора могут присутствовать вспомогательные аппаратные элементы.

В блоке декодирования обрабатываются инструкции, определяющие алгоритм работы микросхемы в ходе решения тех или иных задач. Обеспечение их функционирования — сложная задача, как считают многие IT-специалисты. Это обусловлено, в частности, тем, что длина инструкции не всегда четко определена. Современные процессоры обычно включают 2 или 4 блока, в которых осуществляется соответствующее декодирование.

Касательно компонентов, отвечающих за выборку данных — их основная задача заключается в обеспечении приема команд из кэш-памяти либо ОЗУ, которые необходимы для обеспечения выполнения инструкций. В ядрах современных процессоров обычно присутствует несколько блоков соответствующего типа.

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

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

Есть в составе ядер процессоров блоки, которые контролируют обработку расширения наборов, что установлены для инструкций. Данные алгоритмы, дополняющие основные команды, используются для повышения интенсивности обработки данных, осуществления процедур шифрования или дешифрования файлов. Решение подобных задач требует введения в структуру ядра микросхемы дополнительных регистров, а также наборов инструкций. Современные процессоры включают обычно следующие расширения: MMX (предназначены для кодирования аудио- и видеофайлов), SSE (применяются при распараллеливании вычислений), ATA (задействуется с целью ускорения работы программ и снижения уровня энергопотребления ПК), 3DNow (расширение мультимедийных возможностей компьютера), AES (шифрование данных), а также многие другие стандарты.

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

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

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

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

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

Характеристики процессора: тип техпроцесса

Развитие компьютерной техники принято связывать с появлением по мере совершенствования вычислительных технологий новых поколений ЭВМ. При этом, не считая показателей производительности, одним из критериев отнесения компьютера к тому или иному поколению может считаться его абсолютный размер. Самые первые ЭВМ были сопоставимы по величине с многоэтажным домом. Компьютеры второго поколения были сопоставимы по величине, к примеру, с диваном или пианино. ЭВМ следующего уровня уже были вплотную приближены к тем, что привычны для нас сейчас. В свою очередь, современные ПК — это компьютеры четвертого поколения.

Собственно, к чему все это? Дело в том, что в ходе эволюции ЭВМ сформировалось неофициальное правило: чем более технологично устройство, тем меньшими габаритами при той же производительности, а то и при большей — оно обладает. Оно в полной мере действует и в отношении рассматриваемой характеристики центрального процессора, а именно, техпроцесса его изготовления. В данном случае имеет значение расстояние между единичными кремниевыми кристаллами, формирующими структуру микросхемы. Чем оно меньше — тем больше плотность соответствующих элементов, которые размещает на себе плата центрального процессора. Тем более производительным он, соответственно, может считаться. Современные процессоры выполняются по техпроцессу 90-14 нм. Данный показатель имеет тенденцию к постепенному уменьшению.

Тактовая частота

Тактовая частота центрального процессора — один из ключевых показателей его производительности. Она определяет то, сколько операций в секунду может совершать микросхема. Чем их больше — тем более производителен процессор и компьютер в целом. Можно отметить, что данный параметр характеризует, прежде всего, ядро как самостоятельный модуль центрального процессора. То есть, если соответствующих компонентов на микросхеме несколько, то каждое из них будет работать с отдельной частотой. Некоторые IT-специалисты считают допустимым суммировать данные характеристики по всем ядрам. Что это значит? Если, например, на процессоре установлено 4 ядра с частотой 1 ГГц, то суммарный показатель производительности ПК, если следовать этой методологии, будет составлять 4 ГГц.

Компоненты частоты

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

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

Объем кэш-памяти

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

Главная характеристика кэш-памяти — объем. Чем он больше, тем, соответственно, вместительнее данный модуль с точки зрения расположения тех самых инструкций и алгоритмов, задействуемых процессором. Тем больше вероятность, что микросхема будет всякий раз находить среди них нужные для себя и работать быстрее. Кэш-память на современных процессорах делится чаще всего на три уровня. Первый работает на базе наиболее быстрых и высокотехнологичных микросхем, остальные — медленнее. Объем кэш-памяти первого уровня на современных процессорах составляет порядка 128-256 КБ, второго — 1-8 МБ, третьего — может превышать 20 МБ.

Энергопотребление

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

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

Физически процессор представляет собой металлическую пластинку со множеством ножек (выводов), устанавливаемую в так называемый сокет (разъем) . Внутри пластины находится кристалл полупроводника, содержащий до 2 млрд. логических элементов — транзисторов. Их размер настолько мал, что они умещаются на кристалле площадью 4-6 см2.

Основными производителями процессоров являются конкурирующие друг с другом компании Intel и AMD. Независимо от производителя процессор обладает характеристиками, от которых зависит его быстродействие.

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

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

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

Количество ядер . Ядро – это главный вычислительный модуль процессора. Современные процессоры заключают в одном корпусе от 2 до 8 вычислительных ядер. Такой подход позволяет увеличить производительность ЦП, за счет распределения обработки данных по ядрам. Для простоты понимания можно сказать,что в одном корпусе размещены несколько процессоров.

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

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

МП и МК

Кстати, а почему мы все время говорим то микропроцессоры (МП), то микро­контроллеры (МК)? Микроконтроллер отличается от микропроцессора тем, что он предназначен для управления другими устройствами, и поэтому имеет встроенную развитую систему ввода-вывода, но, как правило, относительно более слабое АЛУ. Микроконтроллерам очень хорошо подходит термин, кото­рый в советское время имел, правда, несколько иное значение- «микро-ЭВМ», еще точнее звучит английское «computer-on-chip», однокристальный компьютер. В самом деле, для построения простейшего вычислительного уст­ройства, которое могло бы выполнять что-то полезное, обычный микропроцес­сор, от i4004 до Pentium и Core Duo, приходится дополнять памятью, ПЗУ с за­писанной BIOS, устройствами ввода-вывода, контроллером прерываний, тактовым генератором с таймерами и т. п. - всем тем, что сейчас стало объе­диняться в т. н. «чипсеты». «Голый» МП способен только одно: правильно включиться, ему даже программу загрузки неоткуда взять.

В то же время для МК микропроцессор - это только ядро, даже не самая большая часть кристалла. Для построения законченной системы на типовом МК не требуется вообще ничего, кроме источника питания и периферийных исполняющих устройств, которые позволяли бы человеку определить, что сис­тема работает. Обычный МК может без дополнительных компонентов общать­ся с другими МК, внешней памятью, специальными микросхемами (вроде ча­сов реального времени или флэш-памяти), управлять небольшими (а иногда - и большими) матричными панелями, к нему можно напрямую подключать дат­чики физических величин (в том числе - чисто аналоговые, АЦП тоже часто входят в МК), кнопки, клавиатуры, светодиоды и индикаторы, короче- в микроконтроллерах сделано все, чтобы приходилось как можно меньше паять и задумываться над подбором элементов. За это приходится расплачиваться пониженным быстродействием (которое, впрочем, не так-то уж и важно в ти­повых задачах для МК) и некоторым ограничением в отдельных функциях - по сравнению с универсальными, но в сотни раз более дорогими и фомоздки-ми системами на «настоящих» МП. Вы можете мне не поверить, но процессо­ры для персональных компьютеров (ПК), о которых мы столько слышим, за­нимают в общем количестве выпускаемых процессоров лишь 5-6% - остальные составляют микроконтроллеры различного назначения.

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

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

Рис. 18.2. Блок-схема простейшего микроконтроллера

Блок-схема простейшего МК, содержащего процессорное ядро и минимум компонентов для «общения» с внешней средой, показана на рис. 18.2. Здесь мы включили в состав системы память программ, которая у ПК-процессоров находится всегда отдельно (если не считать относительно небольшого объе­ма быстродействующей кэш-памяти) - сами знаете, какой объем программ бывает в персональных компьютерах. В большинстве современных микро­контроллеров постоянное запоминающее устройство (ПЗУ) для программ входит в состав чипа и обычно составляет от V-2 до 8-32 кбайт. Хотя есть модели и с 256 килобайтами встроенной памяти, но 2-8 кбайт для подав­ляющего большинства применений вполне достаточно. Встроенное опера­тивное запоминающее устройство (ОЗУ) для хранения данных в том или ином объеме также имеется во всех современных микроконтроллерах, ти­пичный размер такого ОЗУ - от 128-256 байт до 1-4 кбайт. В большинст­ве универсальных контроллеров есть и некоторое количество встроенной энергонезависимой памяти для хранения констант- обычно столько же, сколько и ОЗУ данных. Но к памяти мы еще вернемся в этой главе, а пока продолжим про процессоры.

Подробности

в первых моделях микропроцессоров (включая и интеловские процессоры для ПК - от 8086 до 80386) процессор выполнял команды строго последователь­но: загрузить команду, определить, что ей нужны операнды, загрузить эти опе­ранды (по адресу регистров, которые их должны содержать; адреса эти, как правило, хранятся сразу после собственно кода команды или определены за­ранее), потом проделать нужные действия, складировать результаты… До на­шего времени дошла архитектура суперпопулярных еще недавно микрокон­троллеров 8051, выпускающихся и по сей день различными фирмами (Atnnel, Philips), которые выполняли одну команду аж за 12 тактов (в некоторых совре­менных аналогах, впрочем, это число меньше). Для ускорения работы стали делить такты на части (например, срабатывать по переднему и заднему фрон­там), но действительный прорыв произошел с внедрением конвейера. Со вре­мен Генри Форда известно, что производительность конвейера зависит только от времени выполнения самой длинной операции - если поделить команды на этапы и выполнять их одновременно разными аппаратными узлами, то можно добиться существенного ускорения (хотя и не во всех случаях). В рас­сматриваемых далее микроконтроллерах Atmel AVR конвейер двухступенча­тый: когда очередная команда загружается и декодируется, предыдущая уже выполняется и пишет результаты. В AVR это позволило выполнять большин­ство команд за один такт (кроме команд ветвления программы).

Главное устройство в МП, которое связывает все узлы в единую систему - внутренняя шина данных. По ней все устройства обмениваются сигналами. Например, если МП требуется обратиться к внешней, дополнительной памя­ти, то при исполнении соответствующей команды на шину данных выставля­ется нужный адрес, от устройства управления поступает через нее же запрос на обращение к нужным портам ввода/вывода. Если порты готовы, адрес по­ступает на выходы портов (то есть на соответствующие выводы контролле­ра), затем по готовности принимающий порт выставляет на шину принятые из внешней памяти данные, которые загружаются в нужный регистр, после чего шина данных свободна. Для того чтобы все устройства не мешали друг другу, все это строго синхронизировано, при этом каждое устройство имеет, во-первых, собственный адрес, во-вторых, может находиться в трех состоя­ниях - работать на ввод, на вывод или находиться в третьем состоянии, не мешая другим работать.

Под разрядностью МП обычно понимают разрядность чисел, с которыми ра­ботает АЛУ, соответственно, такую же разрядность имеют и рабочие регист­ры. Например, все ПК-процессоры от 1386 до последних инкарнаций Pentkim были 32-разрядными, некоторые последние модели от Intel и AMD стали 64-разрядными. Большинство микроконтроллеров общего назначения- 8-раз­рядные, но есть и 16-, и 32-разрядные. При этом внутренняя шина данных может иметь и больше разрядов - например, чтобы одновременно переда­вать и адреса и данные.

Распределение рынка МК в первые годы тысячелетия было таким: немного меньше половины выпускаемых изделий составляют 8-разрядные кристаллы, а вторую половину поделили между собой 16- и 32-разрядные, причем доля последних неуклонно растет за счет 16-разрядных. Выпускаются даже 4-разрядные, потомки первого 14004, которые занимают не более 10% рынка, но, что любопытно, эта доля снижается очень медленно.

Заметки на полях

Обычно тактовая частота универсальных МК невелика (хотя инженеру 1980-х, когда ПК работали* на частотах не выше 6 МГц, она показалась бы огром­ной) - порядка 8-16 МГц, иногда до 20 МГц или несколько более. И это всех устраивает - дело в том, что обычные МК и не предназначены для разработ­ки быстродействующих схем. Если требуется быстродействие, то использует­ся другой класс интегральных схем - ПЛИС, «профаммируемые логические интефальные схемы». Простейшая ПЛИС представляет собой набор никак не связанных ме>кду собой логических элементов (наиболее сложные из них мо­гут включать в себя и некоторые законченные узлы, вроде триггеров и генера­торов), которые в процессе программирования такого чипа соединяются в нуж1|1ую схему. Комбинационная логика работает гораздо быстрее тактируемых контроллеров, и для построения различных логических схем в настоящее вре­мя применяют только ПЛИС, от использования дискретных элементов («рас-сыпухи») в массовых масштабах уже давно отказались. Еще одно преимуще­ство ПЛИС- статическое потребление энергии для некоторых серий составляет единицы микроватт, в отличие от МК, которые во включенном со­стоянии потребляют достаточно много (если не находятся в режиме энерго­сбережения). В совокупности с более универсальными и значительно более простыми в обращении, но менее быстрыми и экономичными микроконтролле­рами, ПЛИС составляют основу большин9твд массовых электронных изделий, которые вы видите на прилавках. В этой книге мы, конечно, рассматривать ПЛИС не будем - в любительской практике, в основном из-за дороговизны соответствующего инструментария и высо1кого порога его освоения, они не ис­пользуются, и для конструирования oди^|oчныx экземпляров приборов даже для профессиональных применений их ис111ользовать нецелесообразно.

Если подробности внутреннего функционирования МП нас волнуют не очень (центральный узел - АЛУ мы уже «изобретали» в главе 15, и этого доста­точно, чтобы понимать, что именно происходит внутри процессорного ядра), то обмен с внешней средой нас как раз интересует во всех деталях. Для этого служат порты ввода/вывода (I/0-port, от input/output). В этом термине имеет­ся некоторая неопределенность, так как те, кто программировал для ПК на ассемблере, помнят, что в ПК портами ввода/вывода (ПВВ) назывались реги­стры для управления всеми устройствами, кроме непосредственно процес­сорного ядра. В микроконтроллерах то же самое называют «регистрами вво­да/вывода» (РВВ) - это регистры для доступа ко встроенным компонентам контроллера, внешним по отношению к вычислительному ядру. А это все узлы, которыми непосредственно управляет пользователь - от таймеров и последовательных портов до регистра флагов и управления прерываниями. Кроме ОЗУ, доступ к которому обеспечивается специальными командами, все остальное в контроллере управляется через РВВ, и путать с портами вво­да-вывода их не следует.

ПВВ в МК служат для обмена с «окружающей средой» (управляются они, естественно, тоже внутренними регистрами ввода-вывода). На схеме рис. 18.2 показано 3 ПВВ - А, В и С; в реальных МК их может быть и боль­ше, и меньше. Еще важнее число выводов этих портов, которое чаще всего совпадает с разрядностью процессора (но не всегда, как это было у 8086, ко­торый имел внутреннюю 16-разрядную структуру, а внешне выглядел 8-разрядным). Если мы заставим 8-разрядные порты «общаться», например, с внешней памятью, то на двух из них можно выставить 16-разрядный адрес, а на оставшемся - принимать данные. А как быть, если портов два или вооб­ще один? (К примеру, в микроконтроллере АТхххх2313 портов формально два, но один усеченный, так что общее число линий составляет 15). Для того чтобы даже в такой ситуации это было возможно, все внешние порты в МП всегда двунаправленные. Скажем, если портов два, то можно сначала выста­вить адрес, а затем переключить порты на вход и принимать данные. Естест­венно, для этого порты должны позволять работу на общую шину - то есть либо иметь третье состояние, либо выход с общим коллектором для объеди­нения в «монтажное ИЛИ».

Варианты для обоих случаев организации выходной линии порта показаны на рис. 18.3, где приведены упрощенные схемы выходных линий микрокон­троллеров семейства 8048 - когда-то широко использовавшегося предшест­венника популярного МК 80S1 (например, 8048 был выбран в качестве кон­троллера клавиатуры в IBM PC). В современных МК построение портов несколько сложнее (в частности, вместо резистора там полевой транзистор), но для уяснения принципов работы это несущественно.

По первому варианту (рис. 18.3, а) в МК 8048 построены порты 1 и 2. Когда в порт производится запись, то логический уровень поступает с прямого выхо­да защелки на статическом D-триггере на вход схемы «И», а с инверсного - на затвор транзистора VT2. Если этот уровень равен логическому нулю, то транзистор VT1 заперт, а VT2 открыт, на выходе также логический ноль. Ес­ли уровень равен логической единице, то на время действия импульса «За­пись» транзистор VT1 открывается, а транзистор VT2 запирается (они одина­ковой полярности). Если на выходе присутствует емкость (а она всегда имеется в виде распределенной емкости проводников и емкости входов дру­гих компонентов), то через открытый VT1 протекает достаточно большой ток заряда этой емкости, позволяющий сформировать хороший фронт перехода из О в 1. Как только импульс «Запись» заканчивается, оба транзистора от­ключаются, и логическая единица на выходе поддерживается резистором R1. Выходное сопротивление открытого транзистора VT1 примерно 5 кОм, а ре­зистора - 50 кОм. Любое другое устройство, подключенное к этой шине, при работе на выход может лишь либо поддержать логическую единицу, включив свой подобный резистор параллельно R1, либо занять линию своим логическим нулем - это, как видите, и есть схема «монтажное ИЛИ». При работе на вход состояние линии просто считывается во время действия им­пульса «Запись» со входного буфера (элемент «В» на рис. 18.3, а).

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

Рис. 18.3. Упрощенные схемы портов ввода/вывода МК 8048: а - портов 1 и 2; б - порта О

Для обеспечения работы трехстабильного порта по схеме «монтажное ИЛИ» применяют хитрый прием: всю линию «подтягивают» к напряжению питания с помощью внешнего резистора (во многих МК существует встроенный от­ключаемый резистор, установленный аналогично R1 в схеме рис. 18.3, а), и нормальное состояние всех участвующих трехстабильных портов - работа на вход в третьем состоянии. В этом режиме на линии всегда будет логиче­ская единица. На выход же линию переключают только, когда надо выдать логический ноль. В этом случае, даже при одновременной активности не­скольких портов, конфликтов не возникнет.

«Дареному процессору в кулер не дуют.»

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

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

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

Микропроцессор i4004 - прадедушка сегодняшних CPU

Одним из первых микропроцессоров был четырехразрядный процессор фирмы Intel i4004. Он имел смехотворные по нынешним временам характеристики, но для своего времени – начала 1970-x гг., его появление представляло собой настоящий технологический прорыв. Как можно догадаться из его обозначения, он был четырехразрядным и имел тактовую частоту около 0,1 МГц. И именно его прямой потомок, процессор i8088, был выбран фирмой IBM в качестве «мозга» первого персонального компьютера фирмы IBM PC.

Процессор i8088 использовавшийся в первом персональном компьютере фирмы IBM

Шли годы, характеристики CPU становились все более серьезными и внушительными, и, как следствие, становились все более солидными характеристики персональных компьютеров. Значительной вехой в развитии микропроцессоров стал i80386. Это был первый полностью 32-разрядный CPU, который мог адресовать к 4 ГБ оперативной памяти, в то время как большинство его предшественников могло работать максимум с 640 КБ ОЗУ. Подобная разрядность микропроцессоров настольных компьютеров продержалась довольно долго, почти два десятилетия. В середине 80-х объем ОЗУ в 4 ГБ казался фантастически огромным, но сейчас его можно считать небольшим для серьезного компьютера.

i80386 - первый полностью 32-разрядный CPU

Следующий микропроцессор компании Intel, 486DX, замечателен тем, что в нем впервые появился внутренний кэш – внутренняя оперативная память микропроцессора. Кроме того, в нем было применено много других усовершенствований, которые во многом определили дальнейшую эволюцию микропроцессоров. То же самое можно сказать и про следующий процессор компании Intel, Pentium.

Intel 486DX - первый процессор с внутренним кэшем

Процессор компании Intel - Pentium

Вместе с CPU Pentium 4 в ряду технологий, использующихся в микропроцессорах, появилась . А процессоры Opteron от фирмы AMD и Pentium D от Intel открыли современную эпоху эволюции CPU, эпоху процессоров, имеющих несколько ядер. Сейчас на рынке представлено много CPU от различных производителей, но главными производителями до сих пор остаются две компании – Intel и AMD, причем на долю первой приходится более 80% рынка.

CPU Opteron от фирмы AMD и Pentium D от Intel

Устройство CPU

Любой CPU имеет вычислительное ядро (иногда их бывает несколько), а также кэш, то есть собственную оперативную память. Кэш обычно имеет два уровня – первый и второй (внутренний и внешний). Внутренний имеет меньший объем, но обладает большим быстродействием по сравнению с внешним. Емкость кэша второго уровня современных CPU составляет несколько мегабайт – больше, чем оперативная память первых персональных компьютеров!

В ядре CPU находится несколько функциональных блоков – блок управления, блок выборки инструкций, блок вычислений с плавающей точкой, блок целочисленных вычислений, и.т.д. Также в ядре располагаются главные регистры processor-а, в которых находятся обрабатываемые в определенный момент данные. В классической схеме микропроцессора архитектуры х86 этих регистров всего 16.

На сегодняшний день наибольшее распространение получили две основные разновидности процессоров – CISC (Complex Instruction Set Computing) и RISC (Reduced Instruction Set Computing). В CISC-процессорах мало внутренних регистров, но они поддерживают большой набор команд. В RISC-процессорах регистров много, зато набор команд ограничен. Традиционно микропроцессоры для персональных компьютеров архитектуры Intel х86 принадлежали к классу CISC-процессоров, однако в настоящее время большинство микропроцессоров представляют собой гибрид этих двух архитектур.

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

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

Сокет современного процессора

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

Принцип работы

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

Принцип работы процессора

Работу CPU синхронизируют так называемые тактовые сигналы. Наверняка каждому пользователю известно понятие тактовой частоты, которая отражает количество тактов работы процессора за секунду. Это значение во многом определят характеристики процессора. Тем не менее, производительность компьютера далеко не всегда пропорциональна его тактовой частоте. И дело тут не только в наличии у современных CPU нескольких ядер, а и в том, что разные процессоры имеют разную архитектуру и, как следствие, могут выполнять разное количество операций за секунду. Современные CPU могут выполнять несколько операций за один такт, тогда как у первых микропроцессоров на одну операцию, наоборот, могло уходить несколько тактов.

CPU архитектуры х86 исторически поддерживают следующие режимы работы процессора:

  1. Реальный
  2. Защищенный
  3. Виртуальный
  4. Режим супервизора

Реальный режим работы был единственным режимом, в котором работали все CPU до i80386. В этом режиме processor мог адресовать лишь 640 КБ ОЗУ. В результате появления защищенного режима процессор получил возможность работать с большими объемами оперативной памяти. Также существует разновидность защищенного режима – виртуальный режим, предназначенный для совместимости со старыми программами, написанными для процессоров 8086.

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

Заключение

В этой статье вы в общих чертах познакомились с назначением центрального CPU, его историей, устройством, узнали про режимы работы процессора и ознакомились с принципами его функционирования. Central Processing Unit – это самое сложное и наиболее важное устройство компьютера. Можно смело утверждать, что развитие компьютерной техники во многом взаимосвязано с прогрессом в развитии CPU. От мощности микропроцессора и его особенностей его работы зависит производительность всего компьютера, а также возможности его отдельных компонентов.

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

Центральный процессор в общем случае содержит в себе:

    арифметико-логическое устройство;

    шины данных и шины адресов;

    регистры;

    счетчики команд;

    кэш - очень быструю память малого объема,

    математический сопроцессор чисел с плавающей точкой.

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

Основные характеристики процессора:

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

    Тактовая частота - определяет число тактов работы процессора в секунду

    Разрядность - определяет размер минимальной порции информации, называемой машинным словом

    Адресное пространство - разрядность адресной шины, то есть максимальный объём оперативной памяти, которая может быть установлена на компьютере

8.2.3. Принцип действия процессора.

Процессор является главным элементом ЭВМ. Он прямо или косвенно управляет всеми устройствами и процессами, происходящими в ЭВМ.

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

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

Перечислим основные особенности процессора Pentium:

    конвейерная обработка информации;

    суперскалярная архитектура;

    наличие раздельных кэш-памятей для команд и данных;

    наличие блока предсказания адреса перехода;

    динамическое исполнение программы;

    наличие блока вычислений с плавающей точкой;

    поддержка многопроцессорного режима работы;

    наличие средства обнаружения ошибок.

Термин «суперскалярная архитектура» означает, что процессор содержит более одного вычислительного блока. Эти вычислительные блоки чаще называют конвейерами. Заметим, что первая суперскалярная архитектура была реализована в отечественной ЭВМ «Эльбрус-1» (1978 г.).

Наличие в процессоре двух конвейеров позволяет ему одновременно выполнять (завершать) две команды (инструкции).

Каждый конвейер разделяет процесс выполнения команды на несколько этапов (например, пять):

    выборка (считывание) команды из ОЗУ или кэш-памяти;

    декодирование (дешифрация) команды, т. е. определение кода выполняемой операции;

    выполнение команды;

    обращение к памяти;

    запоминание полученных результатов в памяти.

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

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

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

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

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

В качестве примера рассмотрим процесс выполнения команды, у которой длительности выполнения этапов составляют 60, 30, 40, 50 и 20 нс. Примем дополнительные расходы на организацию конвейерной обработки равными 5 нс.

Если бы не было конвейеризации, то на выполнение одной команды потребовалось

60 + 30 + 40 + 50 + 20 = 200 нс.

Если же используется конвейерная организация, то длительность такта должна быть равна длительности самого медленного этапа обработки с добавлением «накладных» расходов, т.е. 60 + 5 = 65 нс. Таким образом, полученное в результате конвейеризации сокращение времени выполнения команды составит 200/65»3,1 раза.

Заметим, что время выполнения конвейером одной команды составляет 5 × 65 = 325 нс. Эта величина существенно больше 200 нс - времени выполнения команды без конвейеризации. Но одновременное выполнение сразу пяти команд дает среднее время завершения одной команды 65 нс.

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

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

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

Одним из таких приемов является экономия времени за счет предсказания возможных путей выполнения разветвляющегося алгоритма. Это осуществляется с помощью блока предсказания адреса будущего перехода. Идея его работы похожа на идею работы кэш-памяти.

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

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

Блок предсказания адреса перехода работает на опережение и пытается заблаговременно предсказать адрес перехода, чтобы заранее перенести нужную команду из медленной оперативной памяти в специальный быстрый буфер перехода BTB (Branch Target Buffer).

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

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

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

Развитие архитектуры процессоров идет по пути постоянного увеличения объема кэш-памяти первого и второго уровней. Исключением стал процессор Pentium 4, у которого объем кэш-памяти неожиданно снизился по сравнению с Pentium III.

Для повышения производительности в новых конструкциях процессоров создают две системные шины, работающие с разными тактовыми частотами. Быстрая шина используется для работы с кэш-памятью второго уровня, а медленная - для традиционного обмена информацией с другими устройствами, например ОЗУ. Наличие двух шин исключает конфликты при обмене информацией процессора с основной памятью и кэш-памятью второго уровня, находящейся за пределами кристалла процессора.

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

В процессоре Pentium Pro (P6) применен новый подход к порядку выполнения команд, последовательно расположенных в ОЗУ.

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

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

r1 ¬mem Команда 1

r3 ¬r1 + r2 Команда 2

r5 ¬r5 + 1 Команда 3

r6 ¬r6 – r7 Команда 4

Символами r1…r7 обозначены регистры общего назначения (РОН), которые входят в блок регистров процессора.

Символом memобозначена ячейка памяти ОЗУ.

Прокомментируем записанную программу.

Команда 1: записать в РОН r1 содержимое ячейки памяти ОЗУ, адрес которой указан в РОН r4.

Команда 2: записать в РОН r3 результат сложения содержимого регистров r1 и r2.

Команда 3: прибавить к содержимому регистра r5 единицу.

Команда 4: уменьшить содержимое РОН r6 на содержимое регистра r7.

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

При традиционном подходе процессор перейдет к выполнению команд 2, 3, 4 только после того, как данные из ячейки mem основной памяти поступят в процессор (точнее, в регистр r1). Так как считывание будет происходить из медленно работающей оперативной памяти, этот процесс займет достаточно много времени (по меркам процессора). Все время ожидания этого события процессор будет простаивать, не выполняя полезной работы.

В приведенном примере процессор не может выполнить команду 2 до завершения команды 1, так как команда 2 использует результаты выполнения команды 1. В то же время процессор мог бы заранее выполнить команды 3 и 4, которые не зависят от результата выполнения команд 1 и 2.

В подобных случаях процессор Р6 работает иначе.

Процессор Р6 не ждет окончания выполнения команд 1 и 2, а сразу переходит к внеочередному выполнению команд 3 и 4. Результаты опережающего выполнения команд 3 и 4 сохраняются и извлекаются позднее, после выполнения команд 1 и 2.Таким образом, процессор Р6 выполняет команды в соответствии с их готовностью к выполнению, вне зависимости от их первоначального расположения в программе.

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

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

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

Единицами измерения быстродействия процессоров (и ЭВМ) могут служить:

    МИПС (MIPS- Mega Instruction Per Second)- миллион команд (инструкций) над числами с фиксированной точкой за секунду;

    МФЛОПС (MFLOPS- Mega Floating Operation Per Second)- миллион операций над числами с плавающей точкой за секунду;

    ГФЛОПС (GFLOPS- Giga Floating Operation Per Second)- миллиард операций над числами с плавающей точкой за секунду.

Имеются сообщения о самом быстром в мире компьютере ASCI White (корпорация IBM), быстродействие которого достигает 12,3 ТФЛОПС (триллиона операций).