Центральный процессор является основным и самым главным элементом системы. Благодаря нему выполняются все задачи связанные с передачей данных, исполнением команд, логическими и арифметическими действиями. Большинство пользователей знают, что такое ЦП, но не разбираются в принципе его работы. В этой статье мы постараемся просто и понятно объяснить, как работает и за что отвечает CPU в компьютере.
Перед тем, как разобрать основные принципы работы CPU, желательно ознакомиться с его компонентами, ведь это не просто прямоугольная пластина, монтируемая в материнскую плату, это сложное устройство, образующееся из многих элементов. Более подробно с устройством ЦП вы можете ознакомиться в нашей статье, а сейчас давайте приступим к разбору главной темы статьи.
Выполняемые операции
Операция представляет собой одно или несколько действий, которые обрабатываются и выполняются компьютерными устройствами, в том числе и процессором. Сами операции делятся на несколько классов:
- Ввод и вывод . К компьютеру обязательно подключено несколько внешних устройств, например, клавиатура и мышь. Они напрямую связаны с процессором и для них выделена отдельная операция. Она выполняет передачу данных между CPU и периферийными девайсами, а также вызывает определенные действия с целью записи информации в память или ее вывода на внешнюю аппаратуру.
- Системные операции отвечают за остановку работы софта, организовывают обработку данных, ну и, кроме всего, отвечают за стабильную работу системы ПК.
- Операции записи и загрузки . Передача данных между процессором и памятью осуществляется с помощью посылочных операций. Быстродействие обеспечивается одновременной запись или загрузкой групп команд или данных.
- Арифметически-логические . Такой тип операций вычисляет значения функций, отвечает за обработку чисел, преобразование их в различные системы исчисления.
- Переходы . Благодаря переходам скорость работы системы значительно увеличивается, ведь они позволяют передать управление любой команде программы, самостоятельно определяя наиболее подходящие условия перехода.
Все операции должны работать одновременно, поскольку во время активности системы за раз запущено несколько программ. Это выполняется благодаря чередованию обработки данных процессором, что позволяет ставить приоритет операциям и выполнять их параллельно.
Выполнение команд
Обработка команды делится на две составные части – операционную и операндную. Операционная составляющая показывает всей системе то, над чем она должна работать в данный момент, а операндная делает то же самое, только отдельно с процессором. Выполнением команд занимаются ядра, а действия осуществляются последовательно. Сначала происходит выработка, потом дешифрование, само выполнение команды, запрос памяти и сохранение готового результата.
Благодаря применению кэш-памяти выполнение команд происходит быстрее, поскольку не нужно постоянно обращаться к ОЗУ, а данные хранятся на определенных уровнях. Каждый уровень кэш-памяти отличается объемом данных и скоростью выгрузки и записи, что влияет на быстродействие систем.
Взаимодействия с памятью
ПЗУ (Постоянное запоминающее устройство) может хранить в себе только неизменяемую информацию, а вот ОЗУ (Оперативная память) используется для хранения программного кода, промежуточных данных. С этими двумя видами памяти взаимодействует процессор, запрашивая и передавая информацию. Взаимодействие происходит с использованием подключенных внешних устройств, шин адресов, управления и различных контролеров. Схематически все процессы изображены на рисунке ниже.
Если разобраться о важности ОЗУ и ПЗУ, то без первой и вовсе можно было бы обойтись, если бы постоянное запоминающее устройство имело намного больше памяти, что пока реализовать практически невозможно. Без ПЗУ система работать не сможет, она даже не запустится, поскольку сначала происходит тестирование оборудования с помощью команд БИОСа.
Сейчас полно информации в интернете по теме процессоров, можно найти кучу статей о том как он работает, где в основном упоминаются регистры, такты, прерывания и прочее...Но, человеку не знакомому со всеми этими терминами и понятиями достаточно трудно вот так "с лету" вникнуть в понимание процесса, а начинать надо с малого - а именно с элементарного понимания как устроен процессор и из каких основных частей он состоит .
Итак, что же окажется внутри микропроцессора, если его разобрать:
цифрой 1 обозначается металлическая поверхность (крышка) микропроцессора, служащая для отвода тепла и защиты от механических повреждений того, что находится за этой крышкой (тоесть внутри самого процессора).
Под номером 2 - находится сам кристалл, по факту являющийся самой важной и дорогой в изготовлении частью микропроцессора. Именно благодаря этому кристаллу происходят все вычисления (а это и есть самая главная функция процессора) и чем он сложнее, чем совершенней - тем мощнее получается процессор и тем дороже соответственно. Кристалл изготавливается из кремния. На самом деле процесс изготовления очень сложный и содержит в себе десятки шагов, подробнее в этом видео:
Цифра 3 - специальная текстолитовая подложка, к которой крепятся все остальные части процессора, кроме того она играет роль контактной площадки - на ее обратной стороне есть большое количество золотистых "точек" - это контакты (на рисунке их немного видно). Благодаря контактной площадке (подложке) обеспечивается тесное взаимодействие с кристаллом, ибо напрямую хоть как нибудь воздействовать на кристалл не представляется возможным.
Крышка (1) крепится к подложке (3) с помощью клея-герметика, устойчивого к высоким температурам. Между кристаллом (2) и крышкой нет воздушного зазора, его место занимает термопаста, при застывании из нее получается "мостик" между кристаллом процессора и крышкой, благодаря чему обеспечивается очень хороший отток тепла.
Кристалл соединяется с подложкой с помощью пайки и герметика, контакты подложки соединяются с контактами кристалла. На этом рисунке наглядно показано как соединяются контакты кристалла с контактами подложки при помощи очень тонких проводков (на фото 170-кратное увеличение):
Вообще устройство процессоров разных производителей и даже моделей одного производителя может сильно разниться. Однако принципиальная схема работы остается прежней - у всех есть контактная подложка, кристалл (или несколько, расположенных в одном корпусе) и металлическая крышка для отвода тепла.
Так например выглядит контактная подложка процессора Intel Pentium 4 (процессор перевернут):
Форма контактов и структура их расположения зависит от процессора и материнской платы компьютера (сокеты должны совпадать). Например на рисунке чуть выше контакты у процессора без "штырьков", поскольку штырьки находятся прямо в сокете материнской платы.
А бывает другая ситуация, где "штырьки" контактов торчат прямо из контактной подложки. Эта особенность характерна в основном для процессоров AMD:
Как уже упоминалось выше, устройство разных моделей процессоров одного производителя может различаться, перед нами яркий тому пример - четырехъядерный процессор Intel Core 2 Quad, который по сути представляет собой 2 двухъядерных процессора линейки core 2 duo, совмещенных в одном корпусе:
Важно! Количество кристаллов внутри процессора и количество ядер процессора - не одно и то же.
В современных моделях процессоров Intel умещается сразу 2 кристалла (чипа). Второй чип - графическое ядро процессора, по-сути играет роль встроенной в процессор видеокарты, тоесть даже если в системе отсутствует , графическое ядро возьмет на себя роль видеокарты, причем довольно мощной (в некоторых моделях процессоров вычислительная мощь графических ядер позволяет играть в современные игры на средних настройках графики).
Вот и все устройство центрального микропроцессора , вкратце конечно же.
Процессор — это главная микросхема компьютера. Как правило, она также является одним из самых высокотехнологичных и дорогих компонентов ПК. Несмотря на то что процессор — отдельное устройство, он имеет в своей структуре большое количество компонентов, отвечающих за конкретную функцию. Какова их специфика?
Процессор: функции устройства и история появления
Компонент ПК, который сейчас принято именовать центральным процессором, характеризуется достаточно интересной историей происхождения. Поэтому, для того чтобы понять его специфику, полезно будет исследовать некоторые ключевые факты об эволюции его разработки. Устройство, которое современному пользователю известно как центральный процессор, является результатом многолетнего совершенствования технологий производства вычислительных микросхем.
Со временем менялось видение инженерами структуры процессора. В ЭВМ первого и второго поколения соответствующие компоненты состояли из большого количества раздельных блоков, очень несхожих по решаемым задачам. Начиная с третьего поколения компьютеров функции процессора начали рассматриваться в более узком контексте. Инженеры-конструкторы ЭВМ определили, что это должно быть распознавание и интерпретация машинных команд, занесение их в регистры, а также управление другими аппаратными компонентами ПК. Все эти функции стали объединяться в одном устройстве.
Микропроцессоры
По мере развития компьютерной техники в структуру ПК стали внедряться девайсы, получившие название «микропроцессор». Одним из первых устройств такого типа стало изделие Intel 4004, выпущенное американской корпорацией в 1971 году. Микропроцессоры в масштабе одной микросхемы объединили в своей структуре те функции, что мы определили выше. Современные девайсы, в принципе, работают на основе той же самой концепции. Таким образом, центральный процессор ноутбука, ПК, планшета содержит в своей структуре: логическое устройство, регистры, а также модуль управления, отвечающие за конкретные функции. Однако на практике компоненты современных микросхем чаще всего представлены в более сложной совокупности. Изучим данную особенность подробнее.
Структура современных процессоров
Центральный процессор современного ПК, ноутбука или планшета представлен ядром — теперь уже нормой считается, что их несколько, кэш-памятью на различных уровнях, а также контроллерами: ОЗУ, системной шины. Производительность микросхемы соответствующего типа определяется ее ключевыми характеристиками. В какой совокупности они могут быть представлены?
Наиболее значимые характеристики центрального процессора на современных ПК таковы: тип микроархитектуры (обычно указывается в нанометрах), тактовая частота (в гигагерцах), объем кэш-памяти на каждом уровне (в мегабайтах), энергопотребление (в ваттах), а также наличие или отсутствие графического модуля.
Изучим специфику работы некоторых ключевых модулей центрального процессора подробнее. Начнем с ядра.
Ядро процессора
Центральный процессор современного ПК всегда имеет ядро. В нем содержатся ключевые функциональные блоки микросхемы, посредством которых она выполняет необходимые логические и арифметические функции. Как правило, они представлены в некоторой совокупности элементов. Так, устройство центрального процессора чаще всего предполагает наличие блоков, которые отвечают за решение следующих задач:
Выборка и декодирование инструкций;
Выборка данных;
Выполнение инструкций;
Сохранение результатов вычислений;
Работа с прерываниями.
Также структура микросхем соответствующего типа дополняется управляющим блоком, запоминающим устройством, счетчиком команд, а также набором регистров. Рассмотрим специфику работы соответствующих компонентов подробнее.
Ядро процессора: компоненты
В числе ключевых блоков в ядре центрального процессора — тот, что отвечает за считывание инструкций, которые прописываются в адресе, зафиксированном в счетчике команд. Как правило, в течение одного такта выполняется сразу несколько операций соответствующего типа. Общее количество инструкций, подлежащих считыванию, предопределяется показателем в блоках декодирования. Главный принцип здесь — чтобы при каждом такте отмеченные компоненты были максимально загружены. С целью обеспечения соответствия данному критерию в структуре процессора могут присутствовать вспомогательные аппаратные элементы.
В блоке декодирования обрабатываются инструкции, определяющие алгоритм работы микросхемы в ходе решения тех или иных задач. Обеспечение их функционирования — сложная задача, как считают многие IT-специалисты. Это обусловлено, в частности, тем, что длина инструкции не всегда четко определена. Современные процессоры обычно включают 2 или 4 блока, в которых осуществляется соответствующее декодирование.
Касательно компонентов, отвечающих за выборку данных — их основная задача заключается в обеспечении приема команд из кэш-памяти либо ОЗУ, которые необходимы для обеспечения выполнения инструкций. В ядрах современных процессоров обычно присутствует несколько блоков соответствующего типа.
Управляющие компоненты, присутствующие в микросхеме, также базируются на декодированных инструкциях. Они призваны осуществлять контроль над работой блоков, которые ответственны за выполнение инструкций, а также распределять задачи между ними, контролировать своевременное их выполнение. Управляющие компоненты относятся к категории важнейших в структуре микропроцессоров.
В ядрах микросхем соответствующего типа присутствуют также блоки, отвечающие за корректное выполнение инструкций. В их структуре присутствуют такие элементы, как арифметическое и логическое устройство, а также компонент, отвечающий за вычисления с плавающей точкой.
Есть в составе ядер процессоров блоки, которые контролируют обработку расширения наборов, что установлены для инструкций. Данные алгоритмы, дополняющие основные команды, используются для повышения интенсивности обработки данных, осуществления процедур шифрования или дешифрования файлов. Решение подобных задач требует введения в структуру ядра микросхемы дополнительных регистров, а также наборов инструкций. Современные процессоры включают обычно следующие расширения: MMX (предназначены для кодирования аудио- и видеофайлов), SSE (применяются при распараллеливании вычислений), ATA (задействуется с целью ускорения работы программ и снижения уровня энергопотребления ПК), 3DNow (расширение мультимедийных возможностей компьютера), AES (шифрование данных), а также многие другие стандарты.
В структуре ядер процессора обычно также присутствуют блоки, отвечающие за сохранение результатов в ОЗУ в соответствии с адресом, который содержится в инструкции.
Важное значение имеет компонент ядра, который контролирует работу микросхемы с прерываниями. Данная функция позволяет процессору обеспечивать стабильность работы программ в условиях многозадачности.
Работа центрального процессора также связана с задействованием регистров. Данные компоненты являются аналогом ОЗУ, однако доступ к ним осуществляется в несколько раз быстрее. Объем соответствующего ресурса небольшой — как правило, он не превышает килобайта. Регистры классифицируются на несколько разновидностей. Это могут быть компоненты общего назначения, которые задействуются при выполнении арифметических или логических вычислений. Есть регистры специального назначения, которые могут включать системные данные, используемые процессором в ходе работы.
В структуре ядра процессора также присутствуют различные вспомогательные компоненты. Какие, например? Это может быть датчик, отслеживающий то, какова текущая температура центрального процессора. Если ее показатели выше установленных норм, то микросхема может направить сигнал модулям, отвечающим за работу вентиляторов — и они начнут вращаться быстрее. Есть в структуре ядра предсказатель переходов — компонент, который призван определять, какие именно команды будут выполняться после завершения определенных циклов операций, совершаемых микросхемой. Пример другого важного компонента — счетчик команд. Данный модуль фиксирует адрес соответствующего алгоритма, который передается микросхеме в момент начала выполнения им того или иного такта.
Такова структура ядра, которое входит в центральный процессор компьютера. Изучим теперь подробнее некоторые ключевые характеристики микросхем соответствующего типа. А именно: техпроцесс, тактовая частота, объем кэш-памяти, а также энергопотребление.
Характеристики процессора: тип техпроцесса
Развитие компьютерной техники принято связывать с появлением по мере совершенствования вычислительных технологий новых поколений ЭВМ. При этом, не считая показателей производительности, одним из критериев отнесения компьютера к тому или иному поколению может считаться его абсолютный размер. Самые первые ЭВМ были сопоставимы по величине с многоэтажным домом. Компьютеры второго поколения были сопоставимы по величине, к примеру, с диваном или пианино. ЭВМ следующего уровня уже были вплотную приближены к тем, что привычны для нас сейчас. В свою очередь, современные ПК — это компьютеры четвертого поколения.
Собственно, к чему все это? Дело в том, что в ходе эволюции ЭВМ сформировалось неофициальное правило: чем более технологично устройство, тем меньшими габаритами при той же производительности, а то и при большей — оно обладает. Оно в полной мере действует и в отношении рассматриваемой характеристики центрального процессора, а именно, техпроцесса его изготовления. В данном случае имеет значение расстояние между единичными кремниевыми кристаллами, формирующими структуру микросхемы. Чем оно меньше — тем больше плотность соответствующих элементов, которые размещает на себе плата центрального процессора. Тем более производительным он, соответственно, может считаться. Современные процессоры выполняются по техпроцессу 90-14 нм. Данный показатель имеет тенденцию к постепенному уменьшению.
Тактовая частота
Тактовая частота центрального процессора — один из ключевых показателей его производительности. Она определяет то, сколько операций в секунду может совершать микросхема. Чем их больше — тем более производителен процессор и компьютер в целом. Можно отметить, что данный параметр характеризует, прежде всего, ядро как самостоятельный модуль центрального процессора. То есть, если соответствующих компонентов на микросхеме несколько, то каждое из них будет работать с отдельной частотой. Некоторые IT-специалисты считают допустимым суммировать данные характеристики по всем ядрам. Что это значит? Если, например, на процессоре установлено 4 ядра с частотой 1 ГГц, то суммарный показатель производительности ПК, если следовать этой методологии, будет составлять 4 ГГц.
Компоненты частоты
Рассматриваемый показатель формируется из двух компонентов. Во-первых, это частота системной шины — измеряется она обычно в сотнях мегагерц. Во-вторых, это коэффициент, на который соответствующий показатель умножается. В некоторых случаях производители процессоров дают пользователям возможность регулировать оба параметра. При этом, если выставить в достаточной мере высокие значения для системной шины и множителя, можно ощутимо увеличить производительность микросхемы. Именно таким образом осуществляется разгон процессора. Правда, его задействовать нужно осторожно.
Дело в том, что при разгоне может значительно увеличиться температура центрального процессора. Если на ПК не будет установлено соответствующей системы охлаждения, то это может привести к выходу микросхемы из строя.
Объем кэш-памяти
Современные процессоры оснащены модулями кэш-памяти. Основное их предназначение — временное размещение данных, как правило, представленных совокупностью особых команд и алгоритмов — тех, что задействуются в работе микросхемы наиболее часто. Что это дает на практике? Прежде всего то, что загрузка центрального процессора может быть уменьшена за счет того, что те самые команды и алгоритмы будут находиться в оперативном доступе. Микросхема, получив из кэш-памяти готовые инструкции, не тратит время на их выработку с нуля. В итоге работа компьютера идет быстрее.
Главная характеристика кэш-памяти — объем. Чем он больше, тем, соответственно, вместительнее данный модуль с точки зрения расположения тех самых инструкций и алгоритмов, задействуемых процессором. Тем больше вероятность, что микросхема будет всякий раз находить среди них нужные для себя и работать быстрее. Кэш-память на современных процессорах делится чаще всего на три уровня. Первый работает на базе наиболее быстрых и высокотехнологичных микросхем, остальные — медленнее. Объем кэш-памяти первого уровня на современных процессорах составляет порядка 128-256 КБ, второго — 1-8 МБ, третьего — может превышать 20 МБ.
Энергопотребление
Другой значимый параметр микросхемы — энергопотребление. Питание центрального процессора может предполагать значительное расходование электроэнергии. Современные модели микросхем потребляют порядка 40-50 Вт. В некоторых случаях данный параметр имеет экономическое значение — например, если речь идет об оснащении больших предприятий несколькими сотнями или тысячами компьютеров. Но не менее значимым фактором энергопотребление выступает в части адаптации процессоров к использованию на мобильных устройствах — ноутбуках, планшетах, смартфонах. Чем соответствующий показатель меньше, тем дольше будет автономная работа девайса.
Для того чтобы понять, как работает микропроцессор, зададим себе вопрос - а как он должен работать? Есть теория (в основном созданная постфактум: после того, как первые ЭВМ были уже построены и функционировали), которая указывает, как именно строить алгоритмы, и что процессор в соответствии с этим должен делать. Мы, естественно, углубляться в это не будем, просто констатируем, что любой алгоритм есть последовательность неких действий, записанных в виде набора последовательно выполняемых команд (инструкций, операторов). При этом среди таких команд могут встречаться команды перехода, которые в некоторых случаях нарушают исходную последовательность выполнения операторов строго друг за другом. Среди прочих должны быть также команды ввода и вывода данных (программа должна как-то общаться с внешним миром?), а также команды выполнения арифметических и логических операций.
Команды должны где-то храниться, поэтому неотъемлемой частью всей системы должно быть устройство памяти программ. Где-то надо складывать и данные, как исходные, так и результаты работы программы, поэтому должно быть устройство памяти данных. Так как команды и данные, в конечном счете, все равно есть числа, то память может быть общая, только надо уметь отличать, где именно у нас команды, а где - данные. Это есть один из принципов фон Неймана, хотя и в микроконтроллерах, о которых мы будем говорить в дальнейшем, традиционно используют не фон-неймановскую, а так называемую гарвардскую архитектуру, когда память данных и программ разделены (это разделение, впрочем, может в определенных пределах нарушаться). Процессор, построенный по фон Нейману, более универсален, например, он позволяет без особых проблем наращивать память, строить ее иерархически и более эффективно ее перераспределять прямо по ходу работы. Например, в системе 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 исторически поддерживают следующие режимы работы процессора:
- Реальный
- Защищенный
- Виртуальный
- Режим супервизора
Реальный режим работы был единственным режимом, в котором работали все CPU до i80386. В этом режиме processor мог адресовать лишь 640 КБ ОЗУ. В результате появления защищенного режима процессор получил возможность работать с большими объемами оперативной памяти. Также существует разновидность защищенного режима – виртуальный режим, предназначенный для совместимости со старыми программами, написанными для процессоров 8086.
Режимы работы процессора также включают режим супервизора, который используется при работе в современных операционных системах. В этом режиме программный код имеет неограниченный доступ ко всем системным ресурсам.
Заключение
В этой статье вы в общих чертах познакомились с назначением центрального CPU, его историей, устройством, узнали про режимы работы процессора и ознакомились с принципами его функционирования. Central Processing Unit – это самое сложное и наиболее важное устройство компьютера. Можно смело утверждать, что развитие компьютерной техники во многом взаимосвязано с прогрессом в развитии CPU. От мощности микропроцессора и его особенностей его работы зависит производительность всего компьютера, а также возможности его отдельных компонентов.