М
икропроцессор для персонального компьютера а, так же и для других устройств, будь то телефоны, планшеты, ноутбуки или другие интересные гаджеты, является основным центральным устройством, которое выполняет практически все вычисления и отвечает за обработку данных. Можно даже сказать так — центральный процессор
это “мозг”
любого современного компьютера или высокотехнологичного устройства. Так же он является одним из самых дорогостоящих элементов в составе современных компьютеров.
Первые компьютерные процессоры, основу которых составляло механическое реле, появились в пятидесятых годах прошлого века. Спустя какое-то время появились модели с электронными лампами, которые в итоге были заменены на транзисторы. Сами же компьютеры представляли собой довольно габаритные и дорогостоящие устройства.
Последующее развитие процессоров свелось к тому, что было принято решение входящие в них компоненты, представить в одной микросхеме. Позволило осуществить данную задумку появление интегральных полупроводниковых схем.
В 1969 г. компания Busicom заказала двенадцать микросхем у Intel , которые они планировали использовать в собственной разработке – в настольном калькуляторе. Уже в то время разработчиков Intel посещала идея заменить несколько микросхем одной. Идею одобрило руководство корпорации, поскольку подобная технология позволяла существенно сократить расходы на производстве микросхем, при этом у специалистов появилась возможность сделать процессор универсальным для использования его в других вычислительных устройствах.
Некоторые системы позволяют увеличить уже имеющуюся рабочую частоту процессора, данная процедура называется «разгоном» . Установка большей частоты процессора позволяет увеличить и его показатели быстродействия.
Американская компания под названием Intel была основана в 1968 году, тогда как ее основной конкурент – компания AMD – появилась спустя год.
То, что AMD явила себя свету на год позже, нежели Intel, в существенной мере отразилось на их соперничестве. Первые процессоры от компании AMD представляли собой копии процессоров, выпущенных компанией Intel, однако этот факт не помешал AMD разработать первый 16-ядерный процессор . При этом в 2005 обычному пользователю был предложен первый 2-ядерный процессор , носящий название AMD Athlon 64 X2 .
Двухъядерные процессоры Core 2 Duo, разработанные компанией Intel, на год позже появились на соответствующем рынке, при этом стоимость процессоров AMD и сегодня намного дешевле процессоров от Intel.
Какому процессору все же стоит отдать предпочтение? Если пользователю необходимо использование компьютера для работы со сложным профессиональным программным обеспечением, то в этом случае лучше приобрести ПК с процессором от Intel.
Процессоры AMD – отличный вариант для игровых ПК и в ситуациях, не требующих высокой производительности аппаратной начинки.
Кэш – не что иное, как память процессора, задачи которой схожи с задачами, возлагаемыми на оперативную память. Процессор использует кэш для хранения в нем данных. В данной разновидности памяти буферизируется наиболее часто используемая информация, за счет чего временные затраты на последующее обращение к ней в существенной мере сокращаются.
Оперативная память реализуемых сегодня компьютеров, составляет от 1 Гб, при этом кэш процессоров не превышает 8 Мб. Как видно из приведенных данных, разница в этих разновидностях памяти довольно существенная. Несмотря на это, даже указанного объема достаточно для обеспечения нормального быстродействия всей системы. Немалый интерес у пользователей сегодня вызывают процессоры с двухуровневой кэш-памятью: L1 и L2. Память первого уровня меньше памяти второго уровня и необходима она для хранения инструкций. При этом второй уровень за счет того, что он больше, используется для непосредственного хранения данных. У многих процессоров на данный момент кэш второго уровня общий.
Современные процессоры снабжены характерными дополнительными функциями и технологиями, расширяющими их возможности:
3DNow!, ММХ, SSE, SSE2, SSE3 – технологии, оптимизирующие работу с объемными данными и мультимедийными файлами;
В процессорах AMD с целью защиты от ряда вирусов предусмотрена технология NX-bit (No Execute), при этом в процессорах Intel имеется аналогичная технология XD (Execute Disable Bit);
Cool’n’Quiet (в AMD), ТМ1/ТМ2, С1Е, EIST (в Intel) снижается потребление электрической энергии;
В технологии AMD64 или ЕМТ64 (для процессоров Intel) нуждаются 64-битные инструкции;
Одновременное выполнение нескольких потоков команд в некоторых процессорах Intel подразумевает наличие технологии НТ (Hyper-Threading Technology).
Центр современных центральных микропроцессоров снабжен ядрами. Ядро представляет собой кристалл кремния, площадь которого составляет около одного квадратного сантиметра. Несмотря на небольшие размеры, микроскопические логические элементы позволили реализовать на его поверхности принципиальную схему процессора, так называемую архитектуру (chip architecture).
Многоядерность процессора заключается в наличии в центральном микропроцессоре двух и более вычислительных ядер на поверхности одного процессорного кристалла, которые также могут быть заключены в одном корпусе.
Перечень преимуществ многоядерного процессора:
Появляется возможность распределить работу приложений по нескольким ядрам;
Процессы, нуждающиеся в интенсивных вычислениях, работают существенно быстрее;
Увеличивается скорость отклика приложений;
Снижение потребления электрической энергии;
Более продуктивное использование ресурсоемких мультимедийных программ;
Более комфортная работа пользователей ПК.
Производство микропроцессоров включает минимум два важных этапа. На первом этапе производятся подложки, которым впоследствии придают проводящие свойства. На втором этапе произведенные подложки тестируются, после чего собирается и упаковывается процессор.
Сегодня такие ведущие производители процессоров, как AMD и Intel стараются наладить выпуск продукции, задействовав при этом максимально возможные сегменты рынка, максимально сократив возможный ассортимент кристаллов. Отличным тому подтверждением являются процессоры Intel Core 2 Duo. В линейку упомянутой продукции входят три процессора с разными кодовыми наименованиями: Merom, предназначенный для мобильных устройств, Conroe – для настольных версий, Woodcrest – для серверных версий. У всех трех процессоров одна технологическая основа, что дает возможность производителю принимать решение, будучи на последнем этапе производства. Так, например, если на рынке будут более востребованы мобильные процессоры, компания сфокусируется на выпуске модели Socket 479. Если возрастет потребность в настольных моделях, то компания Intel упакует кристаллы, необходимые для Socket 775. В случае роста спроса на серверные процессоры, все вышеуказанные действия будут применены для Socket 771.
Разнообразная продукция, произведенная на заводах крупных предприятий, обозначается кодовыми наименованиями, что является довольно удобным решением, нежели использование длинных официальных обозначений при проведении служебных разговоров и переписки. Порой о внутрифирменных кодовых названиях узнают широкие слои пользователей, однако довольно редко они употребляются в повседневном обиходе.
Ситуация с кодовыми наименованиями процессоров обратно противоположная, поскольку в последнее время они стали употребляться в разговорах и в качестве маркировки процессоров входить в официальную документацию.
При этом запомнить необходимо лишь некоторые кодовые названия, к примеру, для успешной модернизации ПК, поскольку чаще всего помимо красивого звучания и рекламных амбиций, подобные наименования никакой полезной информации для потребителя не несут.
Сокет процессора в переводе с английского языка означает «разъем» или «гнездо» . Если применить этот термин к компьютеру, то гнездом называется место установки центрального процессора. Каждая модель процессора снабжена своим вариантом разъема, связанно это с тем, что технологии изготовления процессоров совершенствовались, а потому модернизировалась их архитектура, количество транзисторов, гнезда и т.д.
Сокет центрального процессора имеет вид щелевого или гнездового разъёма, предназначенного для того, чтобы упростить процесс установки центрального процессора. Использование разъёмов значительно упрощает замену процессора для последующего ремонта или модернизации ПК.
Вентилятор или, как его еще называют кулер , — устройство, задача которого сводится к тому, чтобы обеспечивать охлаждение процессора. Существую разные модели кулеров, однако чаще всего они устанавливаются поверх самого процессора.
Кулеры бывают активными и пассивными. К категории пассивных кулеров относятся обычные радиаторы, довольно дешевые, потребляющие минимум электричества и при этом практически бесшумные. Активный же кулер представляет собой радиатор с прикрепленным к нему вентилятором.
Наибольшей популярностью сегодня пользуются активные воздушные кулеры, состоящие из металлического радиатора с установленным на нем вентилятором.
Будучи механическим устройством, трущиеся детали кулера нуждаются в своевременном смазывании машинным маслом, при этом категорически запрещается для этих целей использовать масла растительного происхождения.
О необходимости смазать устройство можно узнать характерному и постепенно увеличивающемуся шуму от кулера.
В случае неисправности процессора, ПК может начать самостоятельно выключаться и перезагружаться, операционная система «зависать», а жёсткий диск попросту не отображаться. При этом все вышеописанное сопровождается сильным нагреванием процессора. Нередко, неисправный процессор становится причиной постоянных ошибок в работе операционной системы и сопутствующего программного обеспечения.
Ни при каких условиях нельзя неисправный процессор проверять на рабочей материнской плате, поскольку подобные действия вполне могут спровоцировать вывод из строя материнской платы.
Чаще всего процессоры подвергаются поломке по причине перегрева и некорректной сборки компьютера, что может стать причиной случайного загиба контактов процессора, а вследствие и возникновения короткого замыкания. Решить проблему в этом случае может лишь замена процессора.
Практически все знают, что в компьютере главным элементом среди всех «железных» компонентов является центральный процессор. Но круг людей, которые представляют себе, как работает процессор, является весьма ограниченным. Большинство пользователей об этом и понятия не имеют. И даже когда система вдруг начинает «тормозить», многие считают, что это процессор плохо работает, и не придают значения другим факторам. Для полного понимания ситуации рассмотрим некоторые аспекты работы ЦП.
Если говорить о том, как работает процессор Intel или его конкурент AMD, нужно посмотреть, как устроены эти чипы. Первый микропроцессор (кстати, именно от Intel, модель 4040) появился еще в далеком 1971 году. Он мог выполнять только простейшие операции сложения и вычитания с обработкой всего лишь 4 бит информации, т. е. имел 4-битную архитектуру.
Современные процессоры, как и первенец, основаны на транзисторах и обладают куда большим быстродействием. Изготавливаются они методом фотолитографии из определенного числа отдельных кремниевых пластинок, составляющих единый кристалл, в который как бы впечатаны транзисторы. Схема создается на специальном ускорителе разогнанными ионами бора. Во внутренней структуре процессоров основными компонентами являются ядра, шины и функциональные частицы, называемые ревизиями.
Как и любое другое устройство, процессор характеризуется определенными параметрами, которые, отвечая на вопрос, как работает процессор, обойти стороной нельзя. Прежде всего это:
Пока остановимся на тактовой частоте. Не зря процессор называют сердцем компьютера. Как и сердце, он работает в режиме пульсации с определенным количеством тактов в секунду. Тактовая частота измеряется в МГц или в ГГц. Чем она выше, тем больше операций может выполнить устройство.
На какой частоте работает процессор, можно узнать из его заявленных характеристик или посмотреть информацию в Но в процессе обработки команд частота может меняться, а при разгоне (оверлокинге) увеличиваться до экстремальных пределов. Таким образом, заявленная является всего лишь усредненным показателем.
Количество ядер - показатель, определяющий число вычислительных центров процессора (не путать с потоками - количество ядер и потоков могут не совпадать). За счет такого распределения появляется возможность перенаправления операций на другие ядра, за счет чего повышается общая производительность.
Теперь немного о структуре исполняемых команд. Если посмотреть, как работает процессор, нужно четко представлять себе, что любая команда имеет две составляющие - операционную и операндную.
Операционная часть указывает, что должна выполнить в данный момент компьютерная система, операнда определяет то, над чем должен работать именно процессор. Кроме того, ядро процессора может содержать два вычислительных центра (контейнера, потока), которые разделяют выполнение команды на несколько этапов:
Сегодня применяется раздельное кэширование в виде использования двух уровней кэш-памяти, что позволяет избежать перехвата двумя и более командами обращения к одному из блоков памяти.
Процессоры по типу обработки команд разделяют на линейные (выполнение команд в порядке очереди их записи), циклические и разветвляющиеся (выполнение инструкций после обработки условий ветвления).
Среди основных функций, возложенных на процессор, в смысле выполняемых команд или инструкций различают три основные задачи:
В этом процессе следует отметить такие компоненты, как шина и канал чтения и записи, которые соединены с запоминающими устройствами. ПЗУ содержит постоянный набор байт. Сначала адресная шина запрашивает у ПЗУ определенный байт, затем передает его на шину данных, после чего канал чтения меняет свое состояние и ПЗУ предоставляет запрошенный байт.
Но процессоры могут не только считывать данные из оперативной памяти, но и записывать их. В этом случае используется канал записи. Но, если разобраться, по большому счету современные компьютеры чисто теоретически могли бы и вовсе обойтись без ОЗУ, поскольку современные микроконтроллеры способны размещать нужные байты данных непосредственно в памяти самого процессорного чипа. Но вот без ПЗУ обойтись никак нельзя.
Кроме всего прочего, старт системы запускается с режима тестирования оборудования (команды BIOS), а только потом управление передается загружаемой операционной системе.
Теперь посмотрим на некоторые аспекты проверки работоспособности процессора. Нужно четко понимать, что, если бы процессор не работал, компьютер бы не смог начать загрузку вообще.
Другое дело, когда требуется посмотреть на показатель использования возможностей процессора в определенный момент. Сделать это можно из стандартного «Диспетчера задач» (напротив любого процесса указано, сколько процентов загрузки процессора он дает). Для визуального определения этого параметра можно воспользоваться вкладкой производительности, где отслеживание изменений происходит в режиме реального времени. Расширенные параметры можно увидеть при помощи специальных программ, например, CPU-Z.
Кроме того, можно задействовать несколько ядер процессора, используя для этого (msconfig) и дополнительные параметры загрузки.
Наконец, несколько слов о проблемах. Вот многие пользователи часто спрашивают, мол, почему процессор работает, а монитор не включается? К центральному процессору эта ситуация не имеет никакого отношения. Дело в том, что при включении любого компьютера сначала тестируется графический адаптер, а только потом все остальное. Возможно, проблема состоит как раз в процессоре графического чипа (все современные видеоускорители имеют собственные графически процессоры).
Но на примере функционирования человеческого организма нужно понимать, что в случае остановки сердца умирает весь организм. Так и с компьютерами. Не работает процессор - «умирает» вся компьютерная система.
К выбору центрального процессора для компьютера необходимо подойти с максимальной ответственностью, т.к. от качества, выбранного ЦП напрямую зависит работоспособность многих других компонентов компьютера.
Необходимо соотнести возможности вашего ПК с данными желаемой модели процессора. Если вы решили собрать компьютер самостоятельно, то в первую очередь определитесь именно с процессором и материнской платой. Следует помнить, дабы избежать ненужных трат, что не все материнки поддерживают мощные процессоры.
Современный рынок готов предоставить широкий выбор центральных процессоров – начиная от ЦП, предназначенных для малопроизводительных, полу мобильных аппаратов и заканчивая высокопроизводительными чипами для дата-центров. Вот несколько советов, которые помогут вам сделать правильный выбор:
После покупки процессора, не забудьте нанести на него термопасту – это обязательное требование. Желательно не экономить на этом пункте и купить сразу нормальную пасту, которая прослужит длительное время.
Их всего два – Intel и AMD. Оба производят процессоры для стационарных ПК и лэптопов, однако, между ними есть весьма существенные различия.
Про Intel
Intel поставляет достаточно мощные и надёжные процессоры, но при этом их цена самая высокая на рынке. В производстве используются самые современные технологии, что позволяет сэкономить на системе охлаждения. ЦП от Intel редко перегреваются, поэтому хорошую систему охлаждения требуют только топовые модели. Давайте рассмотрим преимущества процессоров Intel:
Про AMD
Это ещё один производитель процессоров, который занимает долю на рынке примерно равносильную Intel. В основном, ориентирован на бюджетный и среднебюджетный сегмент, но также производит топовые модели процессоров. Основные преимущества этого производителя:
Но у продуктов от данного производителя также есть свои недостатки:
Бытует мнение, что чем больше ядер и частоты у процессора, тем лучше и быстрее работает система. Данное утверждение является верным лишь отчасти, т.к. если у вас будет установлен 8-ми ядерный процессор, но в связке с HDD-диском, то быстродействие будет заметно только в требовательных программах (и то не факт).
Для стандартной работы за компьютером и для игр на средних и низких настройках, будет вполне достаточно процессора на 2-4 ядра в связке с . Такая комплектация порадует вас быстродействием в браузерах, в офисных приложениях, при несложной обработке графики и видео. Если в эту комплектацию включить вместо обычного ЦП на 2-4 ядра, мощный 8-ми ядерный агрегат, то идеальная производительность будет достигнута в тяжелых играх даже на ультра-настройках (правда, ещё многое будет зависеть от видеокарты).
Также, если у вас встанет выбор между двумя процессорами с одинаковыми показателями, но разных моделей, то потребуется просмотреть результаты различных тестов. На многие модели современных ЦП их можно без проблем найти на сайте производителя.
Ситуация с ценами на данный момент обстоит следующим образом:
Некоторые процессоры могут поставляться с системой охлаждения в комплекте, т.н. «Боксовой». Не рекомендуется менять «родную» систему на аналог от другого производителя, пускай даже если та выполняет свою работу лучше. Дело в том, что «боксовые» системы лучше адаптированы под свой процессор и не требуют серьёзной настройки.
Если ядра ЦП стали перегреваться, то лучше установить дополнительную систему охлаждения к уже имеющейся. Это выйдет дешевле, а риск что-либо повредить будет ниже.
Боксовая система охлаждения от Intel значительно хуже, чем от AMD, поэтому рекомендуется проявить особую внимательность к её недостаткам. Клипсы, в основном, делаются из пластмассы, к тому же очень тяжёлой. Это вызывают такую проблему – если процессор вместе с радиатором устанавливаются на дешёвую материнку, то есть риск того, что они её «прогнут», приведя в негодность. Поэтому, если вы всё же отдаёте предпочтение Intel, то выбирайте только качественные материнские платы. Также есть ещё одна проблема – при сильном нагреве (более 100 градусов) клипсы могут просто оплавиться. К счастью, такие температуры для продуктов Intel большая редкость.
«Красные» же сделали более качественную систему охлаждения, с металлическими клипсами. Несмотря на это, система весит меньше своего аналога от Intel. Также конструкция радиаторов позволяет без особых проблем установить их на материнскую плату, при этом соединение с материнкой будет в разы качественнее, что исключит вероятность повредить плату. Но стоит учитывать, что процессоры AMD нагреваются сильнее, поэтому качественные боксовые радиаторы – это необходимость.
Обе компании занимаются также выпуском процессоров, где имеется встроенная видеокарта (APU). Правда, производительность последней очень низкая и её достаточно только для выполнения несложных повседневных задач – работы в офисных приложениях, сёрфинг в интернете, просмотр видео и даже на нетребовательные игры. Конечно, на рынке есть топовые APU-процессоры, чьих ресурсов хватает даже для профессиональной работы в графических редакторах, несложной обработки видео и запуска современных игр на минимальных настройках.
Такие ЦП стоят дороже и нагреваются значительно быстрее, по сравнению со своими обычными аналогами. Также нужно учитывать, что в случае со встроенной видеокартой, используется не встроенная видеопамять, а оперативная типа DDR3 или DDR4. Из этого следует, что производительность также напрямую будет зависеть от количества ОЗУ. Но даже, если ваш ПК укомплектован несколькими десятками Гб ОЗУ типа DDR4 (самый быстрый на сегодня тип), встроенная карта вряд ли сможет сравниться по производительности с графическим адаптером даже из средней ценовой категории.
Всё дело в том, что видеопамять (даже если её всего один Гб) намного быстрее ОЗУ, т.к. она заточена на работу с графикой.
Однако, APU-процессор в связке даже с несильно дорогой видеокартой, способен порадовать высокой производительностью в современных играх на низких или средних настройках. Но в этом случае стоит задуматься о системе охлаждения (особенно, если процессор и/или графический адаптер от AMD), т.к. ресурсов встроенных по умолчанию радиаторов может оказаться недостаточно. Лучше провести тестирование работы и потом, опираясь на результаты, решить справляется ли «родная» система охлаждения или нет.
Чьи APU-процессоры лучше? До недавнего времени в этом сегменте лидировали AMD, но в последние пару лет ситуация начинает меняется и по мощностям продукты AMD и Intel из этого сегмента уже практически сравнялись. «Синие» стараются брать надёжностью, но в то же время соотношение цена-производительность немного страдает. От «красных» можно получить производительный APU-процессор за не очень высокую цену, но многие пользователи считают бюджетные APU-чипы от данного производителя ненадёжными.
Покупка материнской платы, в которую уже впаян процессор вместе с системой охлаждения, помогает потребителю избавиться от разного рода проблем с совместимостью и сэкономить время, т.к. всё необходимое уже встроено в материнку. К тому же такое решение не бьёт по карману.
Но у него есть свои существенные недостатки:
Лучшие бюджетники:
Процессоры средней ценовой категории:
ТОПовые процессоры:
Если вы собираете компьютер с нуля, то лучше изначально купить именно процессор, а потом под него другие важные комплектующие – видеокарту и материнскую плату.
Что такое процессор? Здесь Вы сможете прочитать небольшую терминологию данного понятия. Мы рассмотрим из чего он состоит, что такое ядро процессора, системная шина, кэш процессора, какие разъемы бывают у процессора, а также популярные изготовители. А теперь, приступим к делу.
Процессор (ЦП или CPU ) – это устройство или схема, которая исполняет машинные команды (инструкции). Является наиважнейшим компонентом любого компьютера и ноутбука. Выполняет любые, как логические, так и арифметические операции. Также управляет всеми устройствами, подключенными к ПК.
На данный момент процессоры представляют собой схему (микропроцессор) и является маленькой тонкой пластиной, квадратной по форме. На такой схеме расположены элементы, обеспечивающие функциональность самого процессора и ПК в целом. Такая пластина защищена пластмассовым или керамическим корпусом, подсоединенная золотыми проводами с наконечниками из металла. Данная конструкция позволяет присоединить процессор к системной плате.
У специалистов разных профессий понятие об архитектуре процессора немного отличаются. Например, программисты думают, то архитектура процессора – это когда процессор способен выполнять наборы машинных кодов. Разработчики компьютерных составляющих думают иначе, а именно то, что архитектора процессора отражает какие-либо свойства и качества, которые присущи целому семейству процессоров (другими словами, организация процессоров или их внутренняя конструкция). Например, существует такая архитектура, как Intel Pentium, она обозначается, как P5. К примеру, Pentium IV обозначается, как NetBurst.
Модель архитектуры процессора Pentium 4
Даже если процессоры имеют одинаковую архитектуру, они могут иметь различия. В первую очередь это конечно же различие в процессорных , которые наделяют сам процессор, какими-либо характеристиками. Конечно, отличаться они могут и размерами кэша, и различиями в частоте системной шины. По сути, термин ядро процессора четкого определения не имеет, но может позволить выделить особенности какой-либо модели.
В случае замены ядра, скорее всего придется менять и процессорный разъем, что влечет за собой определенные трудности, которые связаны с совместимостью системных плат. Конечно, разработчики постоянно занимаются над совершенствованием ядер. Такие нововведения называются ревизией ядер, они в свою очередь обозначаются буквенными и цифирными значениями.
Системная шина или шина процессора (FSB ) – является совокупностью сигнальных линий, объединённых по назначению. Простыми словами, системная шина связывает все компоненты компьютера с процессором, будь это , или . Процессор подключается только к системной шине, остальные устройства подключаются через специальные контроллеры.
Есть два типа разъемов (сокетов) – гнездовой и щелевой . Хотя это можно считать, как один разъем, потому что он создан лишь для установки процессора. Наличие сокета значительно облегчает замену процессора. Также его можно было бы снять на время ремонта компьютера. Кстати, если что, данный разъем расположен на . У компаний Intel и AMD свои типы разъемов, которые можно посмотреть .
Регистром в процессоре является блок ячеек, который образует сверхбыструю оперативную память. Такая память используется только процессором.
Кеш – это технология которая во всех современных процессорах является обязательной, еще ее называют быстрой памятью. Кэш технология является буфером между процессором и котроллером, который является медленной памятью. Буфер является хранилищем блоков данных, которые отрабатываются именно сейчас, таким образом процессору не нужно обращаться к контроллеру. Такое свойство очень хорошо увеличивает производительность процессора.
На данный момент существует несколько уровней кэша. L1 – кэш первого уровня , является самым быстрым и работает напрямую с ядром. Далее идет кэш второго уровня — L2 , который взаимодействует с L1. Такой кэш по объему намного больше, чем L1. Иногда может встречаться и кэш третьего уровня – L3 . Он достаточно медленный, а по объему еще больше, чем L2, но опять же, он быстрее, чем системная память.
Также, кэш разделяют на эксклюзивный и не эксклюзивный .
К первому типу относят кэш, в котором данные разделены на оригинальные в строгом порядке. К не эксклюзивному кэшу относят кэш, данные которого могут повторяться на всех уровнях кэша. Например, компания Intel, использует не эксклюзивный тип, а AMD – cсоответственно эксклюзивный. Трудно сказать, какой лучше, у обоих есть и достоинства, и недостатки.
Процессор – это основное устройство ЭВМ, выполняющее логические и арифметические операции, и осуществляющее управление всеми компонентами ЭВМ. Процессор представляет собой миниатюрную тонкую кремниевую пластинку прямоугольной формы, на которой размещается огромное количество транзисторов, реализующих все функции, выполняемые процессором. Кремневая пластинка – очень хрупкая, а так как ее любое повреждение приведет к выходу из строя процессора, то она помещается в пластиковый или керамический корпус.
Современный процессор – это сложное и высокотехнологическое устройство, включающее в себя все самые последние достижения в области вычислительной техники и сопутствующих областей науки.
Большинство современных процессоров состоит из:
И характеризуется следующими параметрами:
Упрощенная структурная схема современного многоядерного процессора представлена на рисунке 1.
Начнем обзор устройства процессора с его основной части – ядра.
Ядро процессора – это его основная часть, содержащая все функциональные блоки и осуществляющая выполнение всех логических и арифметических операций.
На рисунке 1 приведена структурная схема устройства ядра процессора. Как видно на рисунке, каждое ядро процессора состоит из нескольких функциональных блоков:
Блок выборки инструкций осуществляет считывание инструкций по адресу, указанному в счетчике команд. Обычно, за такт он считывает несколько инструкций. Количество считываемых инструкций обусловлено количеством блоков декодирования, так как необходимо на каждом такте работы максимально загрузить блоки декодирования. Для того чтобы блок выборки инструкций работал оптимально, в ядре процессора имеется предсказатель переходов.
Предсказатель переходов пытается определить, какая последовательность команд будет выполняться после совершения перехода. Это необходимо, чтобы после условного перехода максимально нагрузить конвейер ядра процессора.
Блоки декодирования , как понятно из названия, – это блоки, которые занимаются декодированием инструкций, т.е. определяют, что надо сделать процессору, и какие дополнительные данные нужны для выполнения инструкции. Задача эта для большинства современных коммерческих процессоров, построенных на базе концепции CISC, – очень сложная. Дело в том, что длина инструкций и количество операндов – нефиксированные, и это сильно усложняет жизнь разработчикам процессоров и делает процесс декодирования нетривиальной задачей.
Часто отдельные сложные команды приходится заменять микрокодом – серией простых инструкций, в совокупности выполняющих то же действие, что и одна сложная инструкция. Набор микрокода прошит в ПЗУ, встроенном в процессоре. К тому же микрокод упрощает разработку процессора, так как отпадает надобность в создании сложноустроенных блоков ядра для выполнения отдельных команд, да и исправить микрокод гораздо проще, чем устранить ошибку в функционировании блока.
В современных процессорах, обычно, бывает 2-4 блока декодирования инструкций, например, в процессорах Intel Core 2 каждое ядро содержит по два таких блока.
Блоки выборки данных осуществляют выборку данных из КЭШ-памяти или ОЗУ, необходимых для выполнения текущих инструкций. Обычно, каждое процессорное ядро содержит несколько блоков выборки данных. Например, в процессорах Intel Core используется по два блока выборки данных для каждого ядра.
Управляющий блок на основании декодированных инструкций управляет работой блоков выполнения инструкций, распределяет нагрузку между ними, обеспечивает своевременное и верное выполнение инструкций. Это один из наиболее важных блоков ядра процессора.
Блоки выполнения инструкций включают в себя несколько разнотипных блоков:
ALU – арифметическое логическое устройство;
FPU – устройство по выполнению операций с плавающей точкой;
Блоки для обработки расширения наборов инструкций. Дополнительные инструкции используются для ускорения обработки потоков данных, шифрования и дешифрования, кодирования видео и так далее. Для этого в ядро процессора вводят дополнительные регистры и наборы логики. На данный момент наиболее популярными расширениями наборов инструкция являются:
MMX (Multimedia Extensions) – набор инструкций, разработанный компанией Intel, для ускорения кодирования и декодирования потоковых аудио и видео-данных;
SSE (Streaming SIMD Extensions) – набор инструкций, разработанный компанией Intel, для выполнения одной и той же последовательности операций над множеством данных с распараллеливанием вычислительного процесса. Наборы команд постоянно совершенствуются, и на данный момент имеются ревизии: SSE, SSE2, SSE3, SSSE3, SSE4;
ATA (Application Targeted Accelerator) – набор инструкций, разработанный компанией Intel, для ускорения работы специализированного программного обеспечения и снижения энергопотребления при работе с такими программами. Эти инструкции могут использоваться, например, при расчете контрольных сумм или поиска данных;
3DNow – набор инструкций, разработанный компанией AMD, для расширения возможностей набора инструкций MMX;
AES (Advanced Encryption Standard) – набор инструкций, разработанный компанией Intel, для ускорения работы приложений, использующих шифрование данных по одноименному алгоритму.
Блок сохранения результатов обеспечивает запись результата выполнения инструкции в ОЗУ по адресу, указанному в обрабатываемой инструкции.
Блок работы с прерываниями. Работа с прерываниями – одна из важнейших задач процессора, позволяющая ему своевременно реагировать на события, прерывать ход работы программы и выполнять требуемые от него действия. Благодаря наличию прерываний, процессор способен к псевдопараллельной работе, т.е. к, так называемой, многозадачности.
Обработка прерываний происходит следующим образом. Процессор перед началом каждого цикла работы проверяет наличие запроса на прерывание. Если есть прерывание для обработки, процессор сохраняет в стек адрес инструкции, которую он должен был выполнить, и данные, полученные после выполнения последней инструкции, и переходит к выполнению функции обработки прерывания.
После окончания выполнения функции обработки прерывания, из стека считываются сохраненные в него данные, и процессор возобновляет выполнение восстановленной задачи.
Регистры – сверхбыстрая оперативная память (доступ к регистрам в несколько раз быстрее доступа к КЭШ-памяти) небольшого объема (несколько сотен байт), входящая в состав процессора, для временного хранения промежуточных результатов выполнения инструкций. Регистры процессора делятся на два типа: регистры общего назначения и специальные регистры.
Регистры общего назначения используются при выполнении арифметических и логических операций, или специфических операций дополнительных наборов инструкций (MMX, SSE и т.д.).
Регистры специального назначения содержат системные данные, необходимые для работы процессора. К таким регистрам относятся, например, регистры управления, регистры системных адресов, регистры отладки и т.д. Доступ к этим регистрам жестко регламентирован.
Счетчик команд – регистр, содержащий адрес команды, которую процессор начнет выполнять на следующем такте работы.
Принцип работы ядра процессора основан на цикле, описанном еще Джоном фон Нейманом в 1946 году. В упрощенном виде этапы цикла работы ядра процессора можно представить следующим образом:
1. Блок выборки инструкций проверяет наличие прерываний. Если прерывание есть, то данные регистров и счетчика команд заносятся в стек, а в счетчик команд заносится адрес команды обработчика прерываний. По окончанию работы функции обработки прерываний, данные из стека будут восстановлены;
2. Блок выборки инструкций из счетчика команд считывает адрес команды, предназначенной для выполнения. По этому адресу из КЭШ-памяти или ОЗУ считывается команда. Полученные данные передаются в блок декодирования;
3. Блок декодирования команд расшифровывает команду, при необходимости используя для интерпретации команды записанный в ПЗУ микрокод. Если это команда перехода, то в счетчик команд записывается адрес перехода и управление передается в блок выборки инструкций (пункт 1), иначе счетчик команд увеличивается на размер команды (для процессора с длинной команды 32 бита – на 4) и передает управление в блок выборки данных;
4. Блок выборки данных считывает из КЭШ-памяти или ОЗУ требуемые для выполнения команды данные и передает управление планировщику;
5. Управляющий блок определяет, какому блоку выполнения инструкций обработать текущую задачу, и передает управление этому блоку;
6. Блоки выполнения инструкций выполняют требуемые командой действия и передают управление блоку сохранения результатов;
7. При необходимости сохранения результатов в ОЗУ, блок сохранения результатов выполняет требуемые для этого действия и передает управление блоку выборки инструкций (пункт 1).
Описанный выше цикл называется процессом (именно поэтому процессор называется процессором). Последовательность выполняемых команд называется программой.
Скорость перехода от одного этапа цикла к другому определяется тактовой частотой процессора, а время работы каждого этапа цикла и время, затрачиваемое на полное выполнение одной инструкции, определяется устройством ядра процессора.
Увеличение производительности ядра процессора, за счет поднятия тактовый частоты, имеет жесткое ограничение. Увеличение тактовой частоты влечет за собой повышение температуры процессора, энергопотребления и снижение стабильности его работы и срока службы.
Поэтому разработчики процессоров применяют различные архитектурные решения, позволяющие увеличить производительность процессоров без увеличения тактовой частоты.
Рассмотрим основные способы повышения производительности процессоров.
Каждая инструкция, выполняемая процессором, последовательно проходит все блоки ядра, в каждом из которых совершается своя часть действий, необходимых для выполнения инструкции. Если приступать к обработке новой инструкции только после завершения работы над первой инструкцией, то большая часть блоков ядра процессора в каждый момент времени будет простаивать, а, следовательно, возможности процессора будут использоваться не полностью.
Рассмотрим пример, в котором процессор будет выполнять программу, состоящую из пяти инструкций (К1–К5), без использования принципа конвейеризации. Для упрощения примера примем, что каждый блок ядра процессора выполняет инструкцию за 1 такт.
Такты | Выборка инструкции | Декодирование инструкции | Выборка данных | Выполнение инструкции | Сохранение результата |
1 | K1 | - | - | - | - |
2 | - | K1 | - | - | - |
3 | - | - | K1 | - | - |
4 | - | - | - | K1 | - |
5 | - | - | - | - | K1 |
6 | K2 | - | - | - | - |
7 | - | K2 | - | - | - |
8 | - | - | K2 | - | - |
9 | - | - | - | K2 | - |
10 | - | - | - | - | K2 |
11 | K3 | - | - | - | - |
12 | - | K3 | - | - | - |
13 | - | - | K3 | - | - |
14 | - | - | - | K3 | - |
15 | - | - | - | - | K3 |
16 | K4 | - | - | - | - |
17 | - | K4 | - | - | - |
18 | - | - | K4 | - | - |
19 | - | - | - | K4 | - |
20 | - | - | - | - | K4 |
21 | K5 | - | - | - | - |
22 | - | K5 | - | - | - |
23 | - | - | K5 | - | - |
24 | - | - | - | K5 | - |
25 | - | - | - | - | K5 |
Как видно из таблицы, для выполнения пяти инструкций процессору понадобилось 25 тактов. При этом в каждом такте четыре из пяти блоков ядра процессора простаивали, т.е. процессор использовал всего 20% своего потенциала. Естественно, в реальных процессорах все сложнее. Разные блоки процессора решают разные по сложности задачи. Сами инструкции тоже отличаются друг от друга по сложности. Но в общем ситуация остается такой же.
Для решения этой проблемы во всех современных процессорах выполнение инструкций построено по принципу конвейера, то есть по мере освобождения блоков ядра, они загружаются обработкой следующей инструкции, не дожидаясь пока предыдущая инструкция выполнится полностью.
Рассмотрим пример выполнения той же программы, состоящей из пяти инструкций, но с использованием принципа конвейеризации.
Такты | Выборка инструкции | Декодирование инструкции | Выборка данных | Выполнение инструкции | Сохранение результата |
1 | K1 | - | - | - | - |
2 | K2 | K1 | - | - | - |
3 | K3 | K2 | K1 | - | - |
4 | K4 | K3 | K2 | K1 | - |
5 | K5 | K4 | K3 | K2 | K1 |
6 | - | K5 | K4 | K3 | K2 |
7 | - | - | K5 | K4 | K3 |
8 | - | - | - | K5 | K4 |
9 | - | - | - | - | K5 |
Та же программа была выполнена за 9 тактов, что почти 2.8 раза быстрее, чем при работе без конвейера. Как видно из таблицы максимальная загрузка процессора была получена на 5 такте. В этот момент использовались все блоки ядра процессора. А с первого по четвертый такт, включительно, происходило наполнение конвейера.
Так как процессор выполняет команды непрерывно, то, в идеале, он мог бы быть занят на 100%, при этом, чем длиннее был бы конвейер, тем больший выигрыш в производительности был бы получен. Но на практике это не так.
Во-первых, реальный поток команд, обрабатываемый процессором – непоследовательный. В нем часто встречаются переходы. При этом пока команда условного перехода не будет обработана полностью, конвейер не сможет начать выполнение новой команды, так как не знает, по какому адресу она находится.
После условного перехода конвейер приходится наполнять заново. И чем длиннее конвейер, тем дольше это происходит. В результате, прирост производительности от введения конвейера снижается.
Для уменьшения влияния условных переходов на работу конвейера, в ядро процессора вводятся блоки предсказания условных переходов. Основная задача этих блоков – определить, когда будет совершен условный переход и какие команды будут выполнены после совершения условного перехода.
Если условный переход удалось предсказать, то выполнение инструкций по новому адресу начинается раньше, чем будет закончена обработка команды условного перехода. В результате, наполнение конвейера не пострадает.
По статистике, точность блоков предсказания условных переходов в современных процессорах превышает 90%, что позволяет делать достаточно длинные, но при этом хорошо наполняемые конвейеры.
Во-вторых, часто обрабатываемые инструкции – взаимосвязаны, то есть одна из инструкций требует в качестве исходных данных результата выполнения другой инструкции.
В этом случае она может быть выполнена только после полного завершения обработки первой инструкции. Однако современные процессоры могут анализировать код на несколько инструкций вперед и, например, параллельно с первой инструкцией обработать третью инструкцию, которая никак не зависит от первых двух.
В большинстве современных процессорах задача анализа взаимосвязи инструкций и составления порядка их обработки ложится на плечи процессора, что неминуемо ведет к снижению его быстродействия и увеличению стоимости.
Однако все большую популярность получает статическое планирование, когда порядок выполнения программы процессором определяется на этапе компиляции программы. В этом случае инструкции, которые можно выполнить параллельно, объединяются компилятором в одну длинную команду, в которой все инструкции заведомо параллельны. Процессоры, работающие с такими инструкциями, построены на базе архитектура VLIW (Very long instruction word).
Суперскалярность – архитектура вычислительного ядра, при которой наиболее нагруженные блоки могут входить в нескольких экземплярах. Скажем, в ядре процессора блок выборки инструкций может нагружать сразу несколько блоков декодирования.
В этом случае блоки, выполняющие более сложные действия и работающие дольше, за счет параллельной обработки сразу нескольких инструкций не будут задерживать весь конвейер.
Однако параллельное выполнение инструкций возможно, только если эти инструкции – независимые.
Структурная схема ядра конвейера гипотетического процессора, построенного с использованием принципа суперскалярности, приведена на рисунке 1. На этом рисунке в каждом ядре процессора работает несколько блоков декодирования, несколько блоков выборки данных и несколько блоков выполнения инструкций.
Бесконечно повышать производительность процессоров, за счет увеличения тактовой частоты, невозможно. Увеличение тактовой частоты влечет за собой увеличение тепловыделения, уменьшение срока службы и надежности работы процессоров, да и задержки от обращения к памяти сильно снижают эффект от увеличения тактовой частоты. Действительно, сейчас практически не встретишь процессоры с тактовой частотой выше 3.8 ГГц.
Связанные с увеличением тактовой частоты проблемы заставляют разработчиков искать иные пути повышения производительности процессоров. Один из наиболее популярных способов – параллельные вычисления.
Подавляющее большинство современных процессоров имеют два и более ядра. Топовые модели могут содержать и 8, и даже 12 ядер, причем с поддержкой технологии hyper-threading. Преимущества от ввода дополнительных ядер вполне понятны, мы практически получаем несколько процессоров, способных независимо решать каждый свои задачи, при этом, естественно, возрастает производительность. Однако прирост производительности далеко не всегда оправдывает ожидания.
Во-первых, далеко не все программы поддерживают распределение вычислений на несколько ядер. Естественно, можно программы разделять между ядрами, чтобы на каждом ядре работал свой набор независимых программ. Например, на одном ядре работает операционная система с набором служебных программ, на другом пользовательские программы и так далее.
Но это дает выигрыш в производительности до тех пор, пока не появляется программа, требующая ресурсов больше, чем может дать одно ядро. Хорошо, если она поддерживает распределение нагрузки между несколькими ядрами. Но на данный момент общедоступных программ, способных распределить нагрузку между 12 ядрам, да еще в режиме Hyper-Threading, можно «сосчитать на пальцах одной руки». Я, конечно, утрирую, существуют программы, оптимизированные для многопоточных вычислений, но большинству простых пользователей они не нужны. А вот наиболее популярные программы, а тем более игры, пока что «плохо» адаптируются к многоядерным процессорам, особенно, если количество ядер больше четырех.
Во-вторых, усложняется работа с памятью, так как ядер – много, и всем им требуется доступ к ОЗУ. Требуется сложный механизм, определяющий очередность доступа ядер процессора к памяти и к другим ресурсам ЭВМ.
В-третьих, возрастает энергопотребление, а, следовательно, увеличивается тепловыделение и требуется мощная система охлаждения.
Ну и, в-четвертых, себестоимость производства многоядерных процессоров – немаленькая, а, соответственно, и цена на такие процессоры «кусается».
Несмотря на все недостатки, применение процессоров с 2-4 ядрами, несомненно, дает значительный прирост производительности. Однако, на данный момент, применение процессоров с количеством ядер больше четырех не всегда оправдывает ожидание. Однако, в ближайшем будущем, ситуация должна кардинально измениться. Обязательно появится множество программ с поддержкой многопоточности, производительность отдельных ядер возрастет, а их цена снизится.
Технология Intel Hyper-threading позволяет каждому ядру процессора выполнять две задачи одновременно, по сути, делая из одного реального ядра два виртуальных. Это возможно из-за того, что в таких ядрах сохраняется состояние сразу двух потоков, так как у ядра есть свой набор регистров, свой счетчик команд и свой блок работы с прерываниями для каждого потока. В результате, операционная система видит такое ядро, как два отдельных ядра, и будет с ними работать так же, как работала бы с двуядерным процессором.
Однако остальные элементы ядра для обоих потоков – общие, и делятся между ними. Кроме этого, когда по какой-либо причине один из потоков освобождает элементы конвейера, другой поток использует свободные блоки.
Элементы конвейера могут быть не задействованы, если, например, произошел промах при обращении в КЭШ-память, и необходимо считать данные из ОЗУ, или неверно был предсказан переход, или ожидаются результаты обработки текущей инструкции, или какие-то блоки вообще не используются при обработке данной инструкции и т.д.
Большинство программ не могут полностью нагрузить процессор, так как некоторые, в основном, используют несложные целочисленные вычисления, практически не задействуя блок FPU. Другие же программы, например 3D-студия, требуют массу расчетов с использованием чисел с плавающей точкой, но при этом освобождая некоторые другие исполнительные блоки и так далее.
К тому же практически во всех программах – много условных переходов и зависимых переменных. В результате, использование технологии Hyper-threading может дать существенный прирост производительности, способствуя максимальной загрузке конвейера ядра.
Но не все так просто. Естественно, прирост производительности будет меньше, чем от использования нескольких физических ядер, так как все-таки потоки используют общие блоки одного конвейера и часто вынуждены ждать освобождения требуемого блока. К тому же большинство процессоров уже имеют несколько физических ядер, и при использовании технологии Hyper-threading виртуальных ядер может стать слишком много, особенно, если процессор содержит четыре и больше физических ядра.
Так как на данный момент программ, способных распределять вычисления на большое количество ядер, – крайне мало, то в этом случае результат может разочаровать пользователей.
Есть еще одна серьезная проблема технологии Hyper-Threading – это конфликты, возникающие, когда инструкции разных потоков нуждаются в однотипных блоках. Может сложиться ситуация, когда параллельно будут работать два схожих потока, часто использующие одни и те же блоки. В таком случае прирост производительности будет минимален.
В результате, технология Hyper-Threading очень зависима от типа нагрузки на процессор и может дать хороший прирост производительности, а может быть практически бесполезной.
Производительность большинства современных процессоров в домашних условиях можно немного поднять, попросту говоря разогнать – заставить работать на частотах, превышающих номинальную, т.е. заявленную производителем.
Частота процессора рассчитывается, как частота системной шины, умноженная на некий коэффициент, называемый множителем. Например, процессор Core i7-970 работает с системной шиной DMI на базовой частоте – 133 МГц, и имеет множитель – 24. Таким образом, тактовая частота ядра процессора составит: 133 Мгц*24= 3192 Мгц.
Если в настройках BIOS увеличить множитель или поднять тактовую частоту системной шины, то тактовая частота процессора увеличится, а, соответственно, увеличится и его производительность. Однако процесс этот – далеко небезопасный. Из-за разгона процессор может работать нестабильно или вообще выйти из строя. Поэтому к разгону нужно подходить ответственно и тщательно контролировать параметры работы процессора.
С появление технологии Turbo Boost все стало гораздо проще. Процессоры с этой технологией могут сами динамически, на короткий промежуток времени, повышать тактовую частоту, тем самым, увеличивая свою производительность. При этом процессор контролирует все параметры своей работы: напряжение, силу тока, температуру и т.д., не допуская сбоев и тем более выхода из строя. Например, процессор может отключить неиспользуемые ядра, тем самым, понизив общую температуру, а взамен увеличить тактовую частоту остальных ядер.
Так как на данный момент существует не очень много программ, использующих для обработки данных все процессорные ядра, особенно, если их больше четырех, то применение технологии Turbo Boost позволяет значительно поднять производительность процессора, особенно, при работе с однопоточными приложениями.
В зависимости от типов обрабатываемых инструкций и способа их исполнения, процессоры подразделяются на несколько групп:
CISC (Complex instruction set computer) – это процессоры со сложным набором команд. Архитектура CISC характеризуется:
Исторически, процессоры с архитектурой CISC появились первыми, и их появление было обусловлено общей тенденцией разработки первых ЭВМ. ЭВМ стремились сделать более функциональными и в то же время простыми для программирования. Естественно, для программистов вначале было удобнее иметь широкий набор команд, чем реализовывать каждую функцию целой отдельной подпрограммой. В результате, объем программ сильно сокращался, а вместе с ним и трудоемкость программирования.
Однако такая ситуация продолжалась недолго. Во-первых, с появлением языков высокого уровня отпала необходимость непосредственного программирования в машинных кодах и на ассемблере, и, во-вторых, со временем количество различных команд сильно выросло, а сами инструкции усложнились. В результате, большинство программистов, в основном, использовали какой-то определенный набор инструкций, практически игнорируя наиболее сложные инструкции.
В результате, программисты уже не имели особой выгоды от широкого набора инструкций, так как компиляция программ стала автоматической, а сами процессоры обрабатывали сложные и разнообразные инструкции медленно, в основном, из-за проблем с их декодированием.
К тому же новые сложные инструкции разработчики процессоров отлаживали меньше, так как это был трудоемкий и сложный процесс. В результате, некоторые из них могли содержать ошибки.
Ну и, естественно, чем сложнее инструкции, чем больше действий они выполняют, тем сложнее их выполнение распараллеливать, и, соответственно, тем менее эффективно они загружают конвейер процессора.
Однако к этому моменту уже было разработано огромное количество программ для процессоров с CISC архитектурой, поэтому экономически было невыгодно переходить на принципиально новую архитектуру, даже дающую выигрыш в производительности процессора.
Поэтому был принят компромисс, и CISC процессоры, начиная с Intel486DX, стали производить с использованием RISC-ядра. Т.е., непосредственно перед исполнением, сложные CISC-инструкции преобразуют в более простой набор внутренних инструкций RISC. Для этого используют записанные в размещенном внутри ядра процессора ПЗУ наборы микрокоманд – серии простых инструкций, в совокупности выполняющих те же действия, что и одна сложная инструкция.
RISC (Reduced Instruction Set Computer) – процессоры с сокращенным набором инструкций.
В концепции RISC-процессоров предпочтение отдается коротким, простым и стандартизированным инструкциям. В результате, такие инструкции проще декодировать и выполнять, а, следовательно, устройство процессора становится так же проще, так как не требуется сложных блоков для выполнения нестандартных и многофункциональных инструкций. В результате, процессор становится дешевле, и появляется возможность дополнительно поднять его тактовую частоту, за счет упрощения внутренней структуры и уменьшения количества транзисторов, или снизить энергопотребление.
Так же простые RISC-инструкции гораздо проще распараллеливать, чем CISC-инструкции, а, следовательно, появляется возможность больше загрузить конвейер, ввести дополнительные блоки обработки инструкций и т.д.
Процессоры, построенные по архитектуре RISC, обладают следующими основными особенностями:
В результате, хотя RISC-процессоры и требуют выполнения большего количества инструкций для решения одной и той же задачи, по сравнению с CISС-процессорами, они, в общем случае, показывают более высокую производительность. Во-первых, выполнение одной RISC-инструкции занимает гораздо меньше времени, чем выполнение CISC-инструкции. Во-вторых, RISC-процессоры более широко используют возможности параллельной работы. В-третьих, RISC-процессоры могут иметь более высокую тактовую частоту, по сравнению с CISC-процессорами.
Однако, несмотря на явное преимущество RISC, процессоры не получили столь серьезного распространения, как CISC. Правда, связано это в основном не с тем, что они по каким-то параметрам могли быть хуже CISC-процессоров. Они не хуже. Дело в том, что СISC-процессоры появились первыми, а программное обеспечение для CISC -процессоров – несовместимо с RISC-процессорами.
В результате, экономически крайне невыгодно переписывать все программы, которые уже разработаны, отлажены и используются огромным количеством пользователей. Вот так и получилось, что теперь мы вынуждены использовать CISC-процессоры. Правда, как я уже говорил, разработчики нашли компромиссное решение данной проблемы, и уже очень давно в CISC-процессорах используют RISC-ядро и замену сложных команд на микропрограммы. Это позволило несколько сгладить ситуацию. Но все же RISC-процессоры по большинству параметров выигрывают даже у CISC-процессоров с RISC-ядром.
MISC (Minimal Instruction Set Computer) – дальнейшее развитие архитектуры RISС, основанное на еще большем упрощении инструкций и уменьшении их количества. Так, в среднем, в MISC-процессорах используется 20-30 простых инструкций. Такой подход позволил еще больше упростить устройство процессора, снизить энергопотребление и максимально использовать возможности параллельной обработки данных.
VLIW (Very long instruction word) – архитектура процессоров, использующая инструкции большой длины, содержащие сразу несколько операций, объединенных компилятором для параллельной обработки. В некоторых реализациях процессоров длина инструкций может достигать 128 или даже 256 бит.
Архитектура VLIW является дальнейшим усовершенствованием архитектуры RISC и MISC с углубленным параллелизмом.
Если в процессорах RISC организацией параллельной обработки данных занимался сам процессор, при этом, затрачивая часть ресурсов на анализ инструкций, выявление зависимостей и предсказание условных переходов (причем, зачастую, процессор мог ошибаться, например, в предсказании условных переходов, тем самым внося серьезные задержки в обработку инструкций, или просматривать код программы на недостаточную глубину для выявления независимых операций, которые могли бы выполняться параллельно), то в VLIW-процессорах задача оптимизации параллельной работы возлагалась на компилятор, который не был ограничен ни во времени, ни в ресурсах и мог проанализировать всю программу для составления оптимального для работы процессора кода.
В результате, процессор VLIW выигрывал не только от упразднения накладных расходов на организацию параллельной обработки данных, но и получал прирост производительности, из-за более оптимальной организации параллельного выполнения инструкций.
Кроме этого упрощалась конструкция процессора, так как упрощались или вовсе упразднялись некоторые блоки, отвечающие за анализ зависимостей и организацию распараллеливания обработки инструкций, а это, в свою очередь, вело к снижению энергопотребления и себестоимости процессоров.
Однако даже компилятору тяжело справляться с анализом кода и организацией его распараллеливания. Часто код программы был сильно взаимозависимый, и, в результате, в инструкции компилятору приходилось вставлять пустые команды. Из-за этого программы для VLIW-процессоров могли быть гораздо длиннее, чем аналогичные программы для традиционных архитектур.
Первые VLIW-процессоры появились в конце 1980-х годов и были разработаны компанией Cydrome. Так же к процессорам с этой архитектурой относятся процессоры TriMedia фирмы Philips, семейство DSP C6000 фирмы Texas Instruments, Эльбру?с 2000 – процессор российского производства, разработанный компанией МЦСТ при участии студентов МФТИ и др. Поддержка длинных инструкций с явным параллелизмом есть и в процессорах семейства Itanium.
Не менее, чем производительность, для процессора важен и такой параметр, как энергопотребление. Особенно остро вопрос энергопотребления встал сейчас, когда наблюдается настоящий бум популярности портативных устройств.
Нашу жизнь уже нельзя представить комфортной без использования ноутбуков, планшетных компьютеров и смартфонов. Однако единственное, что омрачает эту тенденцию, – это время автономной работы подобных устройств. Так ноутбуки, в среднем, могут автономно работать 3-5 часов, планшеты – чуть больше, смартфоны уже могут протянуть при полной нагрузке почти сутки и то не все. Но все это крайне мало для комфортной работы с ними.
Время автономной работы этих устройств напрямую зависит от их энергопотребления, и немалая доля энергопотребления приходится на процессор. Для снижения энергопотребления процессоров используются различные способы и технологии. Давайте рассмотрим наиболее популярные из них.
Самый простой способ снизить энергопотребление и тепловыделение процессора – это уменьшить его тактовую частоту и напряжение, так как энергопотребление процессора пропорционально квадрату его рабочего напряжения и пропорционально тактовой частоте. Наиболее выгодно на энергопотреблении сказывается снижение напряжения. Однако при понижении напряжения рано или поздно уменьшается и тактовая частота, что естественно повлечет за собой снижение производительности.
Однако, зачастую, энергопотребление бывает более критическим параметром работы, и некоторое снижение производительности допустимо. Так большинство мобильных версий процессоров и процессоров для встраиваемых систем имеют тактовую частоту и рабочее напряжение гораздо ниже, чем у их собратьев для настольных версий.
Но не всегда производители устанавливают оптимальное сочетание напряжения и тактовой частоты. Многие мобильные процессоры с установленной тактовой частотой могли бы работать с более низким напряжением, что позволило бы существенно продлить время автономной работы портативного компьютера.
Для получения оптимального соотношения производительности к энергопотреблению, необходимо подобрать такое напряжение, при котором на заданной тактовой частоте процессор будет стабильно работать.
Тактовая частота определяется, исходя из потребностей пользователя, затем для нее подбирается минимальное рабочее напряжение путем постепенного снижения напряжения и тестирования процессора под нагрузкой.
Существуют и не столь кардинальные пути решения этой проблемы.
Например, технология EIST (Enhanced Intel SpeedStep Technology) позволяет динамически изменять энергопотребление процессора, за счет изменения тактовой частоты процессора и напряжения. Изменение тактовой частоты происходит, за счет уменьшения или увеличения коэффициента умножения.
О коэффициенте умножения я уже упоминал выше, но повторюсь. Тактовая частота процессора рассчитывается, как тактовая частота системной шины, умноженная на некий коэффициент, называемый коэффициентом умножения. Уменьшение или увеличение этого коэффициента ведет к уменьшению или увеличению тактовой частоты процессора и к снижению или увеличению рабочего напряжения.
В случаях, когда процессор используется не полностью, его тактовую частоту можно снизить, уменьшая коэффициент умножения. Как только пользователю потребуется больше вычислительных ресурсов, коэффициент умножения будет повышен, вплоть до своего номинального значения. Таким образом, удается несколько снизить энергопотребление.
Аналогичная технология для уменьшения энергопотребления, основанная на динамическом изменении напряжения и тактовой частоты, в зависимости от нагрузки на процессор, используется и компанией AMD, называется она - Cool’n’Quiet .
В абсолютном большинстве случаев вычислительные машины либо вовсе простаивают, либо используются лишь на долю своих возможностей. Например, для просмотра фильма или набора текста вовсе не нужно тех огромных вычислительных возможностей, которыми обладают современные процессоры. Тем более эти мощности не нужны и при простое компьютера, когда пользователь отошел или просто решил сделать небольшой перерыв. Снижая в такие моменты тактовую частоту процессора и его напряжение, можно получить очень серьезный прирост в экономии энергопотребления.
Параметры работы технологии EIST можно настраивать, используя BIOS и программное обеспечение операционной системы, и устанавливать требуемые для конкретного случая профили управления энергопотреблением, тем самым балансируя производительность процессора и его энергопотребление.
Естественно, разработчики стараются оптимизировать и саму структуру процессора для снижения энергопотребления и возможности работы процессора при сверхнизких напряжениях. Однако эта задача – крайне сложная и трудоемкая. Опытные образцы процессоров уже практически вплотную приблизились к порогу минимального рабочего напряжения и уже с трудом отличают напряжение логической единицы от логического нуля. Однако, несмотря на это, разработчики процессоров, в том числе инженеры корпорации Intel, обещают уменьшить энергопотребление современных процессоров аж в 100 раз за ближайшие десять лет. Ну что же, подождем и посмотрим, что у них выйдет.
Несмотря на все технологии и уловки разработчиков, производительность процессора все-таки напрямую зависит от скорости выборки команд и данных из памяти. И даже, если процессор имеет сбалансированный и продуманный конвейер, использует технологию Hyper-Threading и так далее, но не обеспечивает должную скорость выборки данных и команд из памяти, то, в результате, общая производительность ЭВМ не оправдает ваших ожиданий.
Поэтому один из важнейших параметров устройства процессора – это КЭШ-память, призванная сократить время выборки команд и данных из основной оперативной памяти и выполняющая роль промежуточного буфера с быстрым доступом между процессором и основной оперативной памятью.
КЭШ-память строится на базе дорогой SRAM-памяти (static random access memory), обеспечивающей доступ к ячейкам памяти гораздо более быстрый, чем к ячейкам DRAM-памяти (dynamic random access memory), на базе которой построена оперативная память. К тому же SRAM-память не требует постоянной регенерации, что так же увеличивает ее быстродействие. Однако более подробно устройство SRAM, DRAM и других типов памяти рассмотрим в следующей статье, а сейчас более подробно рассмотрим принцип работы и устройства КЭШ-памяти.
КЭШ-память делится на несколько уровней. В современных процессорах, обычно, бывает три уровня, а в некоторых топовых моделях процессоров иногда встречается и четыре уровня КЭШ-памяти.
КЭШ-память более высокого уровня всегда больше по размеру и медленнее КЭШ-памяти более низкого уровня.
Самая быстрая и самая маленькая КЭШ-память – это КЭШ-память первого уровня. Она обычно работает на частоте процессора, имеет объем несколько сотен килобайт и располагается в непосредственной близости от блоков выборки данных и команд. При этом она может быть единой (Принстонская архитектура) или разделяться на две части (Гарвардская архитектура): на память команд и память данных. В большинстве современных процессоров используют разделенную КЭШ-память первого уровня, так как это позволяет одновременно с выборкой команд осуществлять выборку данных, что крайне важно для работы конвейера.
КЭШ-память второго уровня – более медленная (время доступа, в среднем, 8-20 тактов процессора), но зато имеет объем несколько мегабайт.
КЭШ-память третьего уровня – еще медленнее, но имеет сравнительно большой объем. Встречаются процессоры с КЭШ-памятью третьего уровня больше 24 Мб.
В многоядерных процессорах, обычно, последний уровень КЭШ-памяти делают общим для всех ядер. Причем, в зависимости от нагрузки на ядра, может динамически изменяться отведенный ядру объем КЭШ-памяти последнего уровня. Если ядро имеет высокую нагрузку, то ему выделяется больше КЭШ-памяти, за счет уменьшения объема КЭШ-памяти для менее нагруженных ядер. Не все процессоры обладают такой возможностью, а только поддерживающие технологию Smart Cache (например, Intel Smart Cache или AMD Balanced Smart Cache).
КЭШ-память более низкого уровня – обычно, индивидуальная для каждого ядра процессора.
Мы рассмотрели, как устроена КЭШ-память, давайте теперь разберемся, как она работает.
Процессор считывает из основной оперативной памяти данные и заносит их в КЭШ-память всех уровней, замещая данные, к которым давно и наиболее редко обращались.
В следующий раз, когда процессору понадобятся эти же данные, они будут считаны уже не из основной оперативной памяти, а из КЭШ-памяти первого уровня, что значительно быстрее. Если к этим данным процессор долго не будет обращаться, то они будут постепенно вытеснены из всех уровней КЭШ-памяти, вначале из первого, так как он самый маленький по объему, затем из второго и так далее. Но, даже если эти данные останутся только в третьем уровне КЭШ-памяти, все равно обращение к ним будет быстрее, чем к основной памяти.
Однако, чем больше уровней КЭШ-памяти, тем сложнее алгоритм замещения устаревших данных и тем больше времени тратится на согласования данных во всех уровнях КЭШ-памяти. В результате, выигрыш от скорости работы КЭШ-памяти быстро сходит на нет. К тому же SRAM-память – очень дорогая, и при больших объемах, а, как помните, каждый новый уровень КЭШ-памяти должен быть больше предыдущего, быстро снижается показатель цена-качество, что крайне негативно сказывается на конкурентоспособности процессора. Поэтому на практике больше четырех уровней КЭШ-памяти не делают.
Ситуация с КЭШ-памятью дополнительно усложняется в многоядерных процессорах, каждое ядро которых содержит свою КЭШ-память. Необходимо вводить дополнительную синхронизацию данных, хранящихся в КЭШ-памяти разных ядер. Например, один и тот же блок данных основной оперативной памяти был занесен в КЭШ-память первого и второго ядра процессора. Затем первый процессор изменил этот блок памяти. Получается, что в КЭШ-памяти второго процессора лежат уже устаревшие данные и необходимо их обновить, а это дополнительная нагрузка на КЭШ-память, что приводит к снижению общего быстродействия процессора. Эта ситуация тем сложнее, чем больше ядер в процессоре, чем больше уровней КЭШ-памяти и чем больше их объем.
Но, несмотря на такие трудности в работе с КЭШ-памятью, ее применение дает явный прирост скорости работы без существенного увеличения стоимости ЭВМ. И пока не будет придумана оперативная память, которая сможет по скорости соперничать с SRAM-памятью, а по цене – с DRAM-памятью, будет применяться иерархическая организация оперативной памяти с использованием нескольких уровней КЭШ-памяти.
Пожалуй, на этом закончим обзор устройства процессора, так как обзор системных шин и принцип их работы приводился в статье «Устройство и назначение материнской платы» , а описание контроллера основной оперативной памяти, часто входящего в состав процессора, типов оперативной памяти и принципов ее работы будет в следующей статье.