От песка до процессора. Как работает процессор Процессор схема с описанием

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

Итак, что же окажется внутри микропроцессора, если его разобрать:

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

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

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

Крышка (1) крепится к подложке (3) с помощью клея-герметика, устойчивого к высоким температурам. Между кристаллом (2) и крышкой нет воздушного зазора, его место занимает термопаста, при застывании из нее получается "мостик" между кристаллом процессора и крышкой, благодаря чему обеспечивается очень хороший отток тепла.

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

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

Так например выглядит контактная подложка процессора Intel Pentium 4 (процессор перевернут):

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

А бывает другая ситуация, где "штырьки" контактов торчат прямо из контактной подложки. Эта особенность характерна в основном для процессоров AMD:

Как уже упоминалось выше, устройство разных моделей процессоров одного производителя может различаться, перед нами яркий тому пример - четырехъядерный процессор Intel Core 2 Quad, который по сути представляет собой 2 двухъядерных процессора линейки core 2 duo, совмещенных в одном корпусе:

Важно! Количество кристаллов внутри процессора и количество ядер процессора - не одно и то же.

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

Вот и все устройство центрального микропроцессора , вкратце конечно же.

Сложно в это поверить, но современный процессор является самым сложным готовым продуктом на Земле – а ведь, казалось бы, чего сложного в этом куске железа?

Как и обещал – подробный рассказ о том, как делают процессоры… начиная с песка. Все, что вы хотели знать, но боялись спросить)


Я уже рассказывал о том, «Где производят процессоры » и о том, какие «Трудности производства » на этом пути стоят. Сегодня речь пойдет непосредственно про само производство – «от и до».

Производство процессоров

Когда фабрика для производства процессоров по новой технологии построена, у нее есть 4 года на то, чтобы окупить вложенные средства (более $5млрд) и принести прибыль. Из несложных секретных расчетов получается, что фабрика должна производить не менее 100 работающих пластин в час.

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

Уроки химии

Давайте рассмотрим весь процесс более подробно. Содержание кремния в земной коре составляет порядка 25-30% по массе, благодаря чему по распространённости этот элемент занимает второе место после кислорода. Песок, особенно кварцевый, имеет высокий процент содержания кремния в виде диоксида кремния (SiO 2) и в начале производственного процесса является базовым компонентом для создания полупроводников.

Первоначально берется SiO 2 в виде песка, который в дуговых печах (при температуре около 1800°C) восстанавливают коксом:

Такой кремний носит название «технический » и имеет чистоту 98-99.9%. Для производства процессоров требуется гораздо более чистое сырье, называемое «электронным кремнием » - в таком должно быть не более одного чужеродного атома на миллиард атомов кремния. Для очистки до такого уровня, кремний буквально «рождается заново». Путем хлорирования технического кремния получают тетрахлорид кремния (SiCl 4), который в дальнейшем преобразуется в трихлорсилан (SiHCl 3):
Данные реакции с использованием рецикла образующихся побочных кремнийсодержащих веществ снижают себестоимость и устраняют экологические проблемы:
2SiHCl 3 SiH 2 Cl 2 + SiCl 4
2SiH 2 Cl 2 SiH 3 Cl + SiHCl 3
2SiH 3 Cl SiH 4 + SiH 2 Cl 2
SiH 4 Si + 2H 2
Получившийся в результате водород можно много где использовать, но самое главное то, что был получен «электронный» кремний, чистый-пречистый (99,9999999%). Чуть позже в расплав такого кремния опускается затравка («точка роста»), которая постепенно вытягивается из тигля. В результате образуется так называемая «буля» - монокристалл высотой со взрослого человека. Вес соответствующий - на производстве такая дуля весит порядка 100 кг.

Слиток шкурят «нулёвкой»:) и режут алмазной пилой. На выходе – пластины (кодовое название «вафля») толщиной около 1 мм и диаметром 300 мм (~12 дюймов; именно такие используются для техпроцесса в 32нм с технологией HKMG, High-K/Metal Gate). Когда-то давно Intel использовала диски диаметром 50мм (2"), а в ближайшем будущем уже планируется переход на пластины с диаметром в 450мм – это оправдано как минимум с точки зрения снижения затрат на производство чипов. К слову об экономии - все эти кристаллы выращиваются вне Intel; для процессорного производства они закупаются в другом месте.

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

Производство чипов состоит более чем из трёх сотен операций, в результате которых более 20 слоёв образуют сложную трёхмерную структуру – доступный на Хабре объем статьи не позволит рассказать вкратце даже о половине из этого списка:) Поэтому совсем коротко и лишь о самых важных этапах.

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

Фотолитография

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

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

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

Как изолировать области, не требующие последующей обработки? Перед литографией на поверхность кремниевой пластины (при высокой температуре в специальной камере) наносится защитная пленка диэлектрика – как я уже рассказывал, вместо традиционного диоксида кремния компания Intel стала использовать High-K-диэлектрик. Он толще диоксида кремния, но в то же время у него те же емкостные свойства. Более того, в связи с увеличением толщины уменьшен ток утечки через диэлектрик, а как следствие – стало возможным получать более энергоэффективные процессоры. В общем, тут гораздо сложнее обеспечить равномерность этой пленки по всей поверхности пластины - в связи с этим на производстве применяется высокоточный температурный контроль.

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

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

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

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

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

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

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

Финишная прямая

Ура – самое сложное позади. Осталось хитрым способом соединить «остатки» транзисторов - принцип и последовательность всех этих соединений (шин) и называется процессорной архитектурой. Для каждого процессора эти соединения различны – хоть схемы и кажутся абсолютно плоскими, в некоторых случаях может использоваться до 30 уровней таких «проводов». Отдаленно (при очень большом увеличении) все это похоже на футуристическую дорожную развязку – и ведь кто-то же эти клубки проектирует!

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

На следующем этапе процессор упаковывается в подложку (на рисунке – процессор Intel Core i5, состоящий из CPU и чипа HD-графики).

Привет, сокет!

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

Сокет (разъём центрального процессора) - гнездовой или щелевой разъём, предназначенный для установки центрального процессора. Использование разъёма вместо прямого распаивания процессора на материнской плате упрощает замену процессора для модернизации или ремонта компьютера. Разъём может быть предназначен для установки собственно процессора или CPU-карты (например, в Pegasos). Каждый разъём допускает установку только определённого типа процессора или CPU-карты.

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

The end

Теперь представьте себе, что компания анонсирует, например, 20 новых процессоров. Все они различны между собой – количество ядер, объемы кэша, поддерживаемые технологии… В каждой модели процессора используется определенное количество транзисторов (исчисляемое миллионами и даже миллиардами), свой принцип соединения элементов… И все это надо спроектировать и создать/автоматизировать – шаблоны, линзы, литографии, сотни параметров для каждого процесса, тестирование… И все это должно работать круглосуточно, сразу на нескольких фабриках… В результате чего должны появляться устройства, не имеющие права на ошибку в работе… А стоимость этих технологических шедевров должна быть в рамках приличия… Почти уверен в том, что вы, как и я, тоже не можете представить себе всего объема проделываемой работы, о которой я и постарался сегодня рассказать.

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

BONUS

Хватило сил дочитать до этого абзаца?) Поздравляю – приятно, что я постарался не зря. Тогда предлагаю откинуться на спинку кресла и посмотреть всё описанное выше, но в виде более наглядного видеоролика – без него статья была бы не полной.

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


Успехов!

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

Первым микропроцессором для домашних компьютеров стал представленный в 1974 году Intel 8080. Вся вычислительная мощность 8-битного компьютера помещалась в одном чипе. Но по-настоящему большое значение имел анонс процессора Intel 8088. Он появился в 1979 году и с 1981 года стал использоваться в первых массовых персональных компьютерах IBM PC.

Далее процессоры начали развиваться и обрастать мощью. Каждый, кто хоть немного знаком с историей микропроцессорной индустрии, помнит, что на смену 8088 пришли 80286. Затем настал черед 80386, за которым следовали 80486. Потом были несколько поколений «Пентиумов»: Pentium, Pentium II, III и Pentium 4. Все это «интеловские» процессоры, основанные на базовой конструкции 8088. Они обладали обратной совместимостью. Это значит, что Pentium 4 мог обработать любой фрагмент кода для 8088, но делал это со скоростью, возросшей примерно в пять тысяч раз. С тех пор прошло не так много лет, но успели смениться еще несколько поколений микропроцессоров.


С 2004 года Intel начала предлагать многоядерные процессоры. Число используемых в них транзисторов возросло на миллионы. Но даже сейчас процессор подчиняется тем общим правилам, которые были созданы для ранних чипов. В таблице отражена история микропроцессоров Intel до 2004 года (включительно). Мы сделаем некоторые пояснения к тому, что означают отраженные в ней показатели:

  • Name (Название). Модель процессора
  • Date (Дата). Год, в который процессор был впервые представлен. Многие процессоры представляли многократно, каждый раз, когда повышалась их тактовая частота. Таким образом, очередная модификация чипа могла быть повторно анонсирована даже через несколько лет после появления на рынке первой его версии
  • Transistors (Количество транзисторов). Количество транзисторов в чипе. Вы можете видеть, что этот показатель неуклонно увеличивался
  • Microns (Ширина в микронах). Один микрон равен одной миллионной доле метра. Величина этого показателя определяется толщиной самого тонкого провода в чипе. Для сравнения, толщина человеческого волоса составляет 100 микрон
  • Clock speed (Тактовая частота). Максимальная скорость работы процессора
  • Data Width. «Битность» арифметико-логического устройства процессора (АЛУ, ALU). 8-битное АЛУ может слагать, вычитать, умножать и выполнять иные действия над двумя 8-битными числами. 32-битное АЛУ может работать с 32-битными числами. Чтобы сложить два 32-битных числа, восьмибитному АЛУ необходимо выполнить четыре инструкции. 32-битное АЛУ справится с этой задачей за одну инструкцию. Во многих (но не во всех) случаях ширина внешней шины данных совпадает с «битностью» АЛУ. Процессор 8088 обладал 16-битным АЛУ, но 8-битной шиной. Для поздних «Пентиумов» была характерна ситуация, когда шина была уже 64-битной, а АЛУ по-прежнему оставалось 32-битным
  • MIPS (Миллионов инструкций в секунду). Позволяет приблизительно оценить производительность процессора. Современные выполняют настолько много разных задач, что этот показатель потерял свое первоначальное значение и может использоваться, в основном, для сравнения вычислительной мощности нескольких процессоров (как в данной таблице)

Существует непосредственная связь между тактовой частотой, а также количеством транзисторов и числом операций, выполняемых процессором за одну секунду. Например, тактовая частота процессора 8088 достигала 5 МГЦ, а производительность: всего 0,33 миллиона операций в секунду. То есть на выполнение одной инструкции требовалось порядка 15 тактов процессора. В 2004 году процессоры уже могли выполнять по две инструкции за один такт. Это улучшение было обеспечено увеличением количества процессоров в чипе.

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

Логика микропроцессора


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

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

  • C помощью своего арифметико-логического устройства, процессор выполняет математические действия: сложение, вычитание, умножение и деление. Современные микропроцессоры полностью поддерживают операции с плавающей точкой (с помощью специального арифметического процессора операций с плавающей точкой)
  • Микропроцессор способен перемещать данные из одного типа памяти в другой
  • Микропроцессор обладает способностью принимать решение и, на основании принятого им решения, «перепрыгивать», то есть переключаться на выполнение нового набора команд

Микропроцессор содержит:

  • Address bus (адресную шину). Ширина этой шины может составлять 8, 16 или 32 бита. Она занимается отправкой адреса в память
  • Data bus (шину данных): шириной 8, 16, 32 или 64 бита. Эта шина может отправлять данные в память или принимать их из памяти. Когда говорят о «битности» процессора, речь идет о ширине шины данных
  • Каналы RD (read, чтения) и WR (write, записи), обеспечивающие взаимодействие с памятью
  • Clock line (шина синхронизирующих импульсов), обеспечивающая такты процессора
  • Reset line (шина стирания, шина сброса), обнуляющая значение счетчика команд и перезапускающая выполнение инструкций

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

  • Регистры A, B и C являются логическими микросхемами, используемыми для промежуточного хранения данных
  • Address latch (защелка адреса) подобна регистрам A, B и C
  • Счетчик команд является логической микросхемой (защелкой), способной приращивать значение на единицу за один шаг (если им получена соответствующая команда) и обнулять значение (при условии получения соответствующей команды)
  • ALU (арифметико-логическое устройство) может осуществлять между 8-битными числами действия сложения, вычитания, умножения и деления или выступать в роли обычного сумматора
  • Test register (тестовый регистр) является специальной защелкой, которая хранит результаты операций сравнения, производимых АЛУ. Обычно АЛУ сравнивает два числа и определяет, равны ли они или одно из них больше другого. Тестовый регистр способен также хранить бит переноса последнего действия сумматора. Он хранит эти значения в триггерной схеме. В дальнейшем эти значения могут использоваться дешифратором команд для принятия решений
  • Шесть блоков на диаграмме отмечены, как «3-State». Это буферы сортировки. Множество источников вывода могут быть соединены с проводом, но буфер сортировки позволяет только одному из них (в один момент времени) передавать значение: «0» или «1». Таким образом буфер сортировки умеет пропускать значения или перекрывать источнику вывода возможность передавать данные
  • Регистр команд (instruction register) и дешифратор команд (instruction decoder) держат все вышеперечисленные компоненты под контролем

На данной диаграмме не отображены линии управления дешифратора команд, которые можно выразить в виде следующих «приказов»:

  • «Регистру A принять значение, поступающее в настоящий момент от шины данных»
  • «Регистру B принять значение, поступающее в настоящий момент от шины данных»
  • «Регистру C принять значение, поступающее в настоящий момент от арифметико-логического устройства»
  • «Регистру счетчика команд принять значение, поступающее в настоящий момент от шины данных»
  • «Адресному регистру принять значение, поступающее в настоящий момент от шины данных»
  • «Регистру команд принять значение, поступающее в настоящий момент от шины данных»
  • «Счетчику команд увеличить значение [на единицу]»
  • «Счетчику команд обнулиться»
  • «Активировать один из из шести буферов сортировки» (шесть отдельных линий управления)
  • «Сообщить арифметико-логическому устройству, какую операцию ему выполнять»
  • «Тестовому регистру принять тестовые биты из АЛУ»
  • «Активировать RD (канал чтения)»
  • «Активировать WR (канал записи)»

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

Память микропроцессора

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

Выше мы писали о шинах (адресной и данных), а также о каналах чтения (RD) и записи (WR). Эти шины и каналы соединены с памятью: оперативной (ОЗУ, RAM) и постоянным запоминающим устройством (ПЗУ, ROM). В нашем примере рассматривается микропроцессор, ширина каждой из шин которого составляет 8 бит. Это значит, что он способен выполнять адресацию 256 байт (два в восьмой степени). В один момент времени он может считывать из памяти или записывать в нее 8 бит данных. Предположим, что этот простой микропроцессор располагает 128 байтами ПЗУ (начиная с адреса 0) или 128 байтами оперативной памяти (начиная с адреса 128).

Модуль постоянной памяти содержит определенный предварительно установленный постоянный набор байт. Адресная шина запрашивает у ПЗУ определенный байт, который следует передать шине данных. Когда канал чтения (RD) меняет свое состояние, модуль ПЗУ предоставляет запрошенный байт шине данных. То есть в данном случае возможно только чтение данных.

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

Более того, теоретически компьютер может обойтись и вовсе без оперативной памяти. Многие микроконтроллеры позволяют размещать необходимые байты данных непосредственно в чип процессора. Но без ПЗУ обойтись невозможно. В персональных компьютерах ПЗУ называется базовой системой ввода и вывода (БСВВ, BIOS, Basic Input/Output System). Свою работу при запуске микропроцессор начинает с выполнения команд, найденных им в BIOS.

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

Инструкции микропроцессора

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

Приведем список слов-команд языка ассемблера для условного простого процессора, который мы рассматриваем в качестве примера к нашему повествованию:

  • LOADA mem — Загрузить (load) регистр A из некоторого адреса памяти
  • LOADB mem — Загрузить (load) регистр B из некоторого адреса памяти
  • CONB con — Загрузить постоянное значение (constant value) в регистр B
  • SAVEB mem — Сохранить (save) значение регистра B в памяти по определенному адресу
  • SAVEC mem — Сохранить (save) значение регистра C в памяти по определенному адресу
  • ADD — Сложить (add) значения регистров A и B. Результат действия сохранить в регистре C
  • SUB — Вычесть (subtract) значение регистра B из значения регистра A. Результат действия сохранить в регистре C
  • MUL — Перемножить (multiply) значения регистров A и B. Результат действия сохранить в регистре C
  • DIV — Разделить (divide) значение регистра A на значение регистра B. Результат действия сохранить в регистре C
  • COM — Сравнить (compare) значения регистров A и B. Результат передать в тестовый регистр
  • JUMP addr — Перепрыгнуть (jump) к указанному адресу
  • JEQ addr — Если выполняется условие равенства значений двух регистров, перепрыгнуть (jump) к указанному адресу
  • JNEQ addr — Если условие равенства значений двух регистров не выполняется, перепрыгнуть (jump) к указанному адресу
  • JG addr — Если значение больше, перепрыгнуть (jump) к указанному адресу
  • JGE addr — Если значение больше или равно, перепрыгнуть (jump) к указанному адресу
  • JL addr — Если значение меньше, перепрыгнуть (jump) к указанному адресу
  • JLE addr — Если значение меньше или равно, перепрыгнуть (jump) к указанному адресу
  • STOP — Остановить (stop) выполнение

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

Работа микропроцессора на примере вычисления факториала

Рассмотрим работу микропроцессора на конкретном примере выполнения им простой программы, которая вычисляет факториал от числа «5». Сначала решим эту задачку «в тетради»:

факториал от 5 = 5! = 5 * 4 * 3 * 2 * 1 = 120

На языке программирования C этот фрагмент кода, выполняющего данное вычисление, будет выглядеть следующим образом:

A=1;f=1;while (a

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

Компилятор C транслирует (то есть переводит) этот код в набор инструкций языка ассемблера. В рассматриваемом нами процессоре оперативная память начинается с адреса 128, а постоянная память (которая содержит язык ассемблера) начинается с адреса 0. Следовательно, на языке данного процессора эта программа будет выглядеть так:

// Предположим, что a по адресу 128// Предположим, что F по адресу 1290 CONB 1 // a=1;1 SAVEB 1282 CONB 1 // f=1;3 SAVEB 1294 LOADA 128 // if a > 5 the jump to 175 CONB 56 COM7 JG 178 LOADA 129 // f=f*a;9 LOADB 12810 MUL11 SAVEC 12912 LOADA 128 // a=a+1;13 CONB 114 ADD15 SAVEC 12816 JUMP 4 // loop back to if17 STOP

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

  • LOADA — 1
  • LOADB — 2
  • CONB — 3
  • SAVEB — 4
  • SAVEC mem — 5
  • ADD — 6
  • SUB — 7
  • MUL — 8
  • DIV — 9
  • COM — 10
  • JUMP addr — 11
  • JEQ addr — 12
  • JNEQ addr — 13
  • JG addr — 14
  • JGE addr — 15
  • JL addr — 16
  • JLE addr — 17
  • STOP — 18

// Предположим, что a по адресу 128// Предположим, что F по адресу 129Addr машинная команда/значение0 3 // CONB 11 12 4 // SAVEB 1283 1284 3 // CONB 15 16 4 // SAVEB 1297 1298 1 // LOADA 1289 12810 3 // CONB 511 512 10 // COM13 14 // JG 1714 3115 1 // LOADA 12916 12917 2 // LOADB 12818 12819 8 // MUL20 5 // SAVEC 12921 12922 1 // LOADA 12823 12824 3 // CONB 125 126 6 // ADD27 5 // SAVEC 12828 12829 11 // JUMP 430 831 18 // STOP

Как вы заметили, семь строчек кода на языке C были преобразованы в 18 строчек на языке ассемблера. Они заняли в ПЗУ 32 байта.

Декодирование

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

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

Рассмотрим работу дешифратора команд на примере инструкции ADD, выполняющей действие сложения:

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

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

Микропроцессоры: производительность и тенденции

Количество транзисторов в процессоре является важным фактором, влияющим на его производительность. Как было показано ранее, в процессоре 8088 на выполнение одной инструкции требовалось 15 циклов тактовой частоты. А чтобы выполнить одну 16-битную операцию, уходило и вовсе порядка 80 циклов. Так был устроен умножитель АЛУ этого процессора. Чем больше транзисторов и чем мощнее умножитель АЛУ, тем больше всего успевает сделать процессор за один свой такт.

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

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

64-битные процессоры


Хотя массовое распространение 64-битные процессоры получили лишь несколько лет назад, они существуют уже сравнительно давно: с 1992 года. И Intel, и AMD предлагают в настоящее время такие процессоры. 64-битным можно считать такой процессор, который обладает 64-битным арифметико-логическим устройством (АЛУ), 64-битными регистрами и 64-битными шинами.

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

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

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

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

По материалам computer.howstuffworks.com

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

Что такое центральный процессор?

Из чего состоит процессор?

Если говорить о том, как работает процессор Intel или его конкурент AMD, нужно посмотреть, как устроены эти чипы. Первый микропроцессор (кстати, именно от Intel, модель 4040) появился еще в далеком 1971 году. Он мог выполнять только простейшие операции сложения и вычитания с обработкой всего лишь 4 бит информации, т. е. имел 4-битную архитектуру.

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

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

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

  • количество ядер;
  • число потоков;
  • размер кэша (внутренней памяти);
  • тактовая частота;
  • быстрота шины.

Пока остановимся на тактовой частоте. Не зря процессор называют сердцем компьютера. Как и сердце, он работает в режиме пульсации с определенным количеством тактов в секунду. Тактовая частота измеряется в МГц или в ГГц. Чем она выше, тем больше операций может выполнить устройство.

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

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

Как работает процессор: обработка команд

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

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

  • выработка;
  • дешифрование;
  • выполнение команды;
  • обращение к памяти самого процессора
  • сохранение результата.

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

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

Выполняемые операции

Среди основных функций, возложенных на процессор, в смысле выполняемых команд или инструкций различают три основные задачи:

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

Взаимодействие с памятью (ПЗУ и ОЗУ)

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

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

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

Как проверить, работает ли процессор?

Теперь посмотрим на некоторые аспекты проверки работоспособности процессора. Нужно четко понимать, что, если бы процессор не работал, компьютер бы не смог начать загрузку вообще.

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

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

Возможные проблемы

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

Но на примере функционирования человеческого организма нужно понимать, что в случае остановки сердца умирает весь организм. Так и с компьютерами. Не работает процессор - «умирает» вся компьютерная система.

Как работает процессор в компьютере?

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

Но вернёмся к нашим баранам. Так вот, нажав на клавишу, мы с клавиатуры посылаем сигнал по одной из 16 линий запроса этого самого прерывания, которые называются «ирками» (IRQ – interrupted request lines). Кстати, семь из них постоянно наблюдают за выделенными для этого механизма составляющими системы, в том числе и клавиатурой (точнее, его контроллером). И далее…

  • Контроллер передаёт сигнал в подсистему под названием контроллер прерываний, который работает как начальник военного штаба, постоянно контролируя процесс вмешательства в работу процессора 256-тью видами возможных прерываний, которые требуют внимания ЦП.
  • Другие электрические цепочки прерываний следят за шиной ввода-вывода, которая содержит в себе слоты расширения компьютера. Кстати, карты расширения, которые можно ставить в или могут использовать одну и ту же «ирку», так как запросы на эти карты или от этих слотов будут управляться функцией Plug and Play (о ней чуть позже).
  • Далее, контроллер прерываний посылает сигнал на один из штырьков, торчащих из основания процессора. Этот штырёк-контакт имеет своё название – INTR (INterrupT Request) и часто используется для таких вот сигналов прерываний. К слову сказать, есть ещё один контакт на «пузе» процессора, который носит название NMI (NonMaskable Interrupt – немаскируемое прерывание – это высокоуровневое аппаратное прерывание, которое нельзя замаскировать или запретить (например, прерывание по исчезновению питания или по нажатии заветных клавиш ); при его возникновении процессор всегда прерывает текущую работу).
  • Процессор приостанавливает текущую работу, записывая прерванную задачу в некую область под названием стек. Эта область или адрес памяти потом напомнит процессору, что в очереди на исполнение стоит эта задача.
  • Центральный процессор проверяет другой штырёк на предмет, какую кнопку вы нажали. Но перед тем, как вы увидите на экране последствие нажатой кнопки или клавиши, процессор проверит раздел памяти под названием таблица дескрипторов прерываний (IDT ). Если быть точным, ЦП выдаёт определённые инструкции в одну из ячеек IDT , которая и ассоциируется с нажатой нами клавишей. Сразу после этого инструкции под названием программа обслуживания прерываний (ISR) только-только сообщает процессору, что же он должен сделать, когда мы эту злополучную клавишу нажимаем. Кстати, вот этот тернистый путь позволяет заменить обычные инструкции (просто отобразить на экране нажатую клавишу) на операции, характерные именно для исполняемой программы (клавиша S в Word это латинская s , а в игре – движение назад или «присесть»).
  • Итак, ISR закончила свою работу и посылает процессору инструкцию RET (возврат от прерывания). Она и призывает процессор вернуться к отложенной им задаче. ЦП обращается в адрес памяти и продолжает работать с последней инструкцией отложенной задачи.

Вот как работает процессор, когда вы просто набираете одну лишь букву в любом редакторе.