Что такое центральный процессор (ЦПУ, CPU)?
В этой статье мы рассмотрим, что такое процессор CPU, какие у него функции и из чего он состоит.
В каждом вычислительном устройстве (ПК, смартфон, фотоаппарат) есть центр, который отвечает за правильную работу машины ― процессор.
В широком смысле процессор ― это устройство, которое выполняет вычислительные и логические операции с данными. Чаще всего этот термин используется для обозначения центрального процессора устройства. Расшифровка CPU ― Central Processing Unit (центральное обрабатывающее устройство). Это самая важная часть компьютера. Его мозг. Он выглядит как квадрат размером приблизительно 5×5 см:
Что значит CPU на процессореС обратной стороны CPU находятся ножки, с помощью которых он крепится к материнской плате:
Назначение и характеристика процессораОт мощности центрального процессора зависит скорость обработки команд и продуктивность работы других составляющих компьютера. Например, можно купить современную видеокарту, но она не сможет показать свои возможности, если управляется слабым CPU.
Функции CPU
Какие функции выполняет центральный процессор CPU? Главная функция ― управление всеми операциями компьютера: от простейших сложений чисел на калькуляторе до запуска компьютерных игр. Если рассматривать основные функции центрального процессора подробнее, CPU:
- получает данные из оперативной памяти, выполняет с ними арифметические и логические операции, передаёт их на внешние устройства,
- формирует сигналы, необходимые для работы внутренних узлов и внешних устройств,
- временно хранит результаты выполненных операций, переданных сигналов и других данных,
- принимает запросы от внешних устройств и обрабатывает их.
Из чего состоит CPU
Центральный процессор состоит из 3-х частей:
- Ядро процессора, которое выполняет основную работу. Оно позволяет читать, расшифровывать, выполнять и отправлять инструкции. Ядро состоит из следующих частей:
- Арифметико-логическое устройство (АЛУ). Выполняет основные математические и логические операции. Все вычисления производятся в двоичной системе.
- Устройство управления (УУ). Управляет работой CPU с помощью электрических сигналов. От него зависит согласованность работы всех частей процессора и его связь с внешними устройствами.
Каждое ядро может выполнять только одну задачу, хоть и за долю секунды. Одноядерный процессор выполняет каждую задачу последовательно. Для современного объёма операций этого мало, поэтому ценятся CPU с более чем одним ядром, чтобы выполнять несколько задач одновременно. Например, двухъядерный выполняет две задачи одновременно, трехъядерный ― три и т. д.
- Запоминающее устройство. Это небольшая внутренняя память центрального процессора. Она состоит из регистров и кеш-памяти
- Шины ― это каналы, по которым передаётся информация. Они как рельсы для перевозки данных.
Главной характеристикой процессора является производительность. Она зависит от двух параметров: тактовая частота и разрядность.
Тактовая частота ― число выполненных операций в секунду. Измеряется в мегагерцах (МГц — миллион тактов в секунду ) и гигагерцах (ГГц — миллиард тактов в секунду). Чем больше тактовая частота, тем быстрее работает машина.
Разрядность ― количество информации (байт), которое можно передать за такт. Разрядность процессора бывает 8, 16, 32, 64 бита. Современные процессоры 32-х и 64-битные.
Производители CPU
На рынке есть два основных производителя центральных процессоров ― Intel и AMD.
Продукты Intel — дорогие, но имеют высокую производительность. Потребляют меньше энергии, следовательно меньше перегреваются. Имеют хорошую связь с оперативной памятью.
Продукты AMD значительно отстают от Intel, однако стоят дешевле. Они требуют много энергии и хуже взаимодействуют с оперативной памятью по сравнению с процессорами от Intel.
⌘⌘⌘
Подписывайтесь на рассылку нашего блога — впереди много полезных статей!
Устройство процессора и его назначение
☰
Описание и назначение процессоров
На самом деле то, что мы сегодня называем процессором, правильно называть микропроцессором. Разница есть и определяется видом устройства и его историческим развитием.
Первый процессор (Intel 4004) появился в 1971 году.
Внешне представляет собой кремневую пластинку с миллионами и миллиардами (на сегодняшний день) транзисторов и каналов для прохождения сигналов.
Назначение процессора – это автоматическое выполнение программы. Другими словами, он является основным компонентом любого компьютера.
Устройство процессора
Ключевыми компонентами процессора являются арифметико-логическое устройство (АЛУ), регистры и устройство управления. АЛУ выполнят основные математические и логические операции. Все вычисления производятся в двоичной системе счисления. От устройства управления зависит согласованность работы частей самого процессора и его связь с другими (внешними для него) устройствами. В регистрах временно хранятся текущая команда, исходные, промежуточные и конечные данные (результат вычислений АЛУ). Разрядность всех регистров одинакова.
Кэш данных и команд хранит часто используемые данные и команды. Обращение в кэш происходит намного быстрее, чем в оперативную память, поэтому, чем он больше, тем лучше.
Схема процессора
Работа процессора
Работает процессор под управлением программы, находящейся в оперативной памяти.
(Работа процессора сложнее, чем это изображено на схеме выше. Например, данные и команды попадают в кэш не сразу из оперативной памяти, а через блок предварительной выборки, который не изображен на схеме. Также не изображен декодирующий блок, осуществляющий преобразование данных и команд в двоичную форму, только после чего с ними может работать процессор.)
Блок управления помимо прочего отвечает за вызов очередной команды и определение ее типа.
Арифметико-логическое устройство, получив данные и команду, выполняет указанную операцию и записывает результат в один из свободных регистров.
Текущая команда находится в специально для нее отведенном регистре команд. В процессе работы с текущей командой увеличивается значение так называемого
Часто команду представляют как структуру, состоящую из записи операции (которую требуется выполнить) и адресов ячеек исходных данных и результата. По адресам указанным в команде берутся данные и помещаются в обычные регистры (в смысле не в регистр команды), получившийся результат тоже сначала оказывается в регистре, а уж потом перемещается по своему адресу, указанному в команде.
Характеристики процессора
Тактовая частота процессора на сегодняшний день измеряется в гигагерцах (ГГц), Ранее измерялось в мегагерцах (МГц). 1МГц = 1 миллиону тактов в секунду.
Процессор «общается» с другими устройствами (оперативной памятью) с помощью шин данных, адреса и управления. Разрядность шин всегда кратна 8 (понятно почему, если мы имеем дело с байтами), изменчива в ходе исторического развития компьютерной техники и различна для разных моделей, а также не одинакова для шины данных и адресной шины.
Разрядность шины данных говорит о том, какое количество информации (сколько байт) можно передать за раз (за такт). От разрядности шины адресазависит максимальный объем оперативной памяти, с которым процессор может работать вообще.
На мощность (производительность) процессора влияют не только его тактовая частота и разрядность шины данных, также важное значение имеет объем кэш-памяти.
Центральный процессор — Настройка BIOS
Центральный процессор (ЦП, CPU) – это микросхема, которая является главным элементом аппаратного обеспечения компьютера. Центральный процессор обрабатывает код программ и руководит работой других устройств
ЦП устанавливается в специальный разъем на материнской плате (сокет), сверху на процессором закрепляется кулер (система охлаждения). Для большинства случаев кулер это вентилятор и радиатор.
Процессор имеет ряд характеристик, которые определяют его производительность:
Тактовая частота процессора
Тактовая частота процессора – это характеристика ЦП, которая показывает скорость выполнения команд центральным процессором (количество выполняемых операций в секунду). Тактовая частота равна произведению частоты шины FSB на множитель (коэффициент умножения). Раньше тактовая частота была основным показателем производительности ЦП. Сегодня процессоры с разной частотой могут иметь одинаковую производительность, поскольку за один такт могут выполнять разное количество команд (в зависимости от пропускной способности шины, количеству ядер, используемым технологиям и.т.д)
Разрядность процессора
Разрядность процессора определяет количество бит информации, которое процессор может обработать за один такт. Для примера. Если разрядность ЦП составляет 64 – он можетобработать 64 бит информации за один такт.
Кэш-память процессора
Процессор постоянно работает с оперативной памятью. Но производительность центрального процессора значительно выше производительности оперативной памяти. Исходя из этого, процессор зачастую должен ожидать, когда поступят данные от системной памяти (что отрицательно сказывается на производительности ЦП). Решением этой проблемы стало использование встроенной в процессор быстродействующей кэш-памяти.
Кэш процессора – это быстродействующая память, используемая процессором для временного хранения кода наиболее часто выполняемых программ и данных, необходимой центральному процессору компьютера. Использование кэш-памяти позволяет уменьшить среднее время доступа к оперативной памяти.
Различают три уровня кэш памяти.
Кэш-память первого уровня (L1) может быть расположена на одном кристалле с процессором, работает на частоте ЦП и является самой быстрой кэш-памятью. Память L1 имеет незначительный размер.
Кэш-память второго уровня (L2) — это высокоскоростная кэш-память. L2 имеет более низкую скорость, нежели L1, но больший объем.
Кэш-память третьего уровня интегрирована в системную плату и имеет меньшую производительность в сравнении с L1и L2, но быстрее оперативной памяти.
Частота системной шины
Для обмена информацией с другими устройствами процессор использует системную шину.
Частота системной шины — это частота, с которой работают внешние цепи центрального процессора. Другими словами, процессор пересылает данные, используя системную шину. Естественно, чем выше разрядность и частота системной шины, тем выше производительность процессора. Частота ЦП превышает частоту FSB (в несколько раз), а процессор пересылает данные на частоте системной шины. Величина, на которую частота процессора превышает частоту системной шины, называется множителем. Т.е.:
Множитель (коэффициент умножения) – это коэффициент, который равен соотношению тактовой частоты центрального процессора к частоте системной шины.
Количество ядер
Современные компьютеры выпускаются с многоядерными процессорами.
Многоядерный процессор – это процессор, который содержит более одного процессорного ядра в одном корпусе (на одном или нескольких кристаллах). Наличие нескольких ядер значительно увеличивает производительность процессора.
Поддерживаемые технологии
Производители внедряют в ЦП специальные наборы инструкций, которые позволяют увеличить производительность процессоров, управлять энергопотреблением…
Современные процессоры могут поддерживать различные технологии:
Cool’n’Quiet – это технология, которая позволяет управлять энергопотреблением процессоров AMD Athlon 64. Суть данной технологии заключается в том, что частота и напряжение питания процессора будут меняться согласно нагрузке.
Hyper-Threading (HT) – это технология одновременной параллельной обработки двух потоков команд процессором, что позволяет повысить производительность ЦП.
TM1 – это встроенная в процессор система защиты от перегрева процессоров, согласно которой в случае возникновения перегрева процессор пропускает несколько рабочих тактов.
ТМ2 – это встроенная в процессор система защиты от перегрева процессоров, согласно которой в случае возникновения перегрева снижается тактовая частота процессора.
Enhanced Halt State (С1Е) – это технология, которая позволяет управлять энергопотреблением процессоров. Суть данной технологии заключается в том, что при отсутствии задач для процессора снижается уровень энергопотребления ЦП.
Enhanced Intel SpeedStep Technology (EIST) – это технология, которая позволяет управлять энергопотреблением процессоров. Суть данной технологии заключается в том, что частота процессора будет динамически меняться с помощью операционной системы согласно нагрузке.
Quad Pumping – это технология, которая позволяет процессору четыре блока данных за один такт, что увеличивает эффективную частоту шины FSB в 4 раза.
Опции BIOS Setup для настройки процессора можно найти здесь.
Центральный процессор — это… Что такое Центральный процессор?
Многоядерные процессоры
Содержат несколько процессорных ядер в одном корпусе (на одном или нескольких кристаллах).
Процессоры, предназначенные для работы одной копии операционной системы на нескольких ядрах, представляют собой высокоинтегрированную реализацию системы «Мультипроцессор».
Двухядерность процессоров включает такие понятия, как наличие логических и физических ядер: например двухядерный процессор Intel Core Duo состоит из одного физического ядра, которое в свою очередь разделено на два логических. Процессор Intel Core 2 Quad состоит из четырёх физических ядер, что существенно влияет на скорость его работы.
10 сентября 2007 года были выпущены в продажу нативные (в виде одного кристалла) четырёхьядерные процессоры для серверов AMD Quad-Core Opteron, имевшие в процессе разработки кодовое название AMD Opteron Barcelona[1]. 19 ноября 2007 вышел в продажу четырёхьядерный процессор для домашних компьютеров AMD Quad-Core Phenom[2]. Эти процессоры реализуют новую микроархитектуру K8L (K10).
27 сентября 2006 года Intel продемонстрировала прототип 80-ядерного процессора[3]. Предполагается, что массовое производство подобных процессоров станет возможно не раньше перехода на 32-нанометровый техпроцесс, а это в свою очередь ожидается к 2010 году.
На данный момент массово доступны двух- и четырехядерные процессоры, в частности Intel Core 2 Duo на 65 нм ядре Conroe (позднее на 45 нм ядре Wolfdale) и Athlon64X2 на базе микроархитектуры K8. В ноябре 2006 года вышел первый четырёхъядерный процессор Intel Core 2 Quad на ядре Kentsfield, представляющий собой сборку из двух кристаллов Conroe в одном корпусе. Потомком этого процессора стал Intel Core 2 Quad на ядре Yorkfield (45 нм), архитектурно схожем с Kentsfield но имеющем больший обьем кэша и рабочие частоты.
Компания AMD пошла по собственному пути, изготовляя четырехядерные процессоры единым кристаллом (в отличие от Intel, процессоры которой представляют собой фактически склейку двух двухядерных кристаллов). Несмотря на всю прогрессивность подобного подхода первый «четырёхядерник» фирмы, получивший название AMD Phenom X4, получился не слишком удачным. Его отставание от современных ему процессоров конкурента составляло от 5 до 30 и более процентов в зависимости от модели и конкретных задач.
На настоящий момент (1-2 квартал 2009 года) обе компании обновили свои линейки четырёхядерных процессоров. Intel представила семейство Core i7, состоящее из трех моделей, работающих на разных частотах. Основными изюминками данного процессора является использование трехканального контроллера памяти (типа DDR-3) и технологии эмулирования восьми ядер (полезно для некоторых специфических задач). Кроме того, благодаря общей оптимизации архитектуры удалось значительно повысить производительность процессора во многих типах задач. Слабой сторной платформы, использующей Core i7 является ее чрезмерная стоимость, так как для установки данного процессора необходима дорогая материнская плата на чипсете Intel-X58 и трехканальный набор памяти типа DDR3, также имеющий на данный момент высокую стоимость.
Компания AMD в свою очередь представила линейку процессоров Phenom II X4. При её разработке компания учла свои ошибки: был увеличен объем кэша (явно недостаточный у первого «Фенома»), а производство процессора было переведено на 45 нм техпроцесс, позволивший снизить тепловыделение и значительно повысить рабочие частоты. В целом AMD Phenom II X4 по производительности стоит вровень с процессорами Intel предыдущего поколения (ядро Yorkfield) и весьма значительно отстает от Intel Core i7. Однако, принимая во внимание умеренную стоимость платформы на базе этого процессора, его рыночные перспективы выглядят куда более радужно чем у предшественника.
Кэширование
Кэширование — это использование дополнительной быстродействующей памяти (кэш-памяти) для хранения копий блоков информации из основной (оперативной) памяти, вероятность обращения к которым в ближайшее время велика.
Различают кэши 1-, 2- и 3-го уровней. Кэш 1-го уровня имеет наименьшую латентность (время доступа), но малый размер, кроме того кэши первого уровня часто делаются многопортовыми. Так, процессоры AMD K8 умели производить 64 бит запись+64 бит чтение либо два 64-бит чтения за такт, AMD K8L может производить два 128 бит чтения или записи в любой комбинации, процессоры Intel Core 2 могут производить 128 бит запись+128 бит чтение за такт. Кэш 2-го уровня обычно имеет значительно большие латентности доступа, но его можно сделать значительно больше по размеру. Кэш 3-го уровня самый большой по объёму и довольно медленный, но всё же он гораздо быстрее, чем оперативная память.
Параллельная архитектура
Архитектура фон Неймана обладает тем недостатком, что она последовательная. Какой бы огромный массив данных ни требовалось обработать, каждый его байт должен будет пройти через центральный процессор, даже если над всеми байтами требуется провести одну и ту же операцию. Этот эффект называется узким горлышком фон Неймана.
Для преодоления этого недостатка предлагались и предлагаются архитектуры процессоров, которые называются параллельными. Параллельные процессоры используются в суперкомпьютерах.
Возможными вариантами параллельной архитектуры могут служить (по классификации Флинна):
Технология изготовления процессоров
История развития процессоров
Первым общедоступным микропроцессором был 4-разрядный Intel 4004. Его сменили 8-разрядный Intel 8080 и 16-разрядный 8086, заложившие основы архитектуры всех современных настольных процессоров. Но из-за распространённости 8-разрядных модулей памяти был выпущен 8088, клон 8086 с 8-разрядной шиной памяти. Затем проследовала его модификация 80186. В процессоре 80286 появился защищённый режим с 24-битной адресацией, позволявший использовать до 16 МБ памяти. Процессор Intel 80386 появился в 1985 году и привнёс улучшенный защищённый режим, 32-битную адресацию, позволившую использовать до 4 ГБ оперативной памяти и поддержку механизма виртуальной памяти. Эта линейка процессоров построена на регистровой вычислительной модели.
Параллельно развиваются микропроцессоры, взявшие за основу стековую вычислительную модель.
Современная технология изготовления
В современных компьютерах процессоры выполнены в виде компактного модуля (размерами около 5×5×0,3 см) вставляющегося в ZIF-сокет. Большая часть современных процессоров реализована в виде одного полупроводникового кристалла, содержащего миллионы, а с недавнего времени даже миллиарды транзисторов. В первых компьютерах процессоры были громоздкими агрегатами, занимавшими подчас целые шкафы и даже комнаты, и были выполнены на большом количестве отдельных компонентов.
В начале 1970-х годов благодаря прорыву в технологии создания БИС и СБИС (больших и сверхбольших интегральных схем), микросхем, стало возможным разместить все необходимые компоненты ЦП в одном полупроводниковом устройстве. Появились так называемые микропроцессоры. Сейчас слова микропроцессор и процессор практически стали синонимами, но тогда это было не так, потому что обычные (большие) и микропроцессорные ЭВМ мирно сосуществовали ещё по крайней мере 10-15 лет, и только в начале 80-х годов микропроцессоры вытеснили своих старших собратьев. Надо сказать что переход к микропроцессорам позволил потом создать персональные компьютеры, которые теперь проникли почти в каждый дом.
Первый микропроцессор Intel 4004 был представлен 15 ноября 1971 года корпорацией Intel. Он содержал 2300 транзисторов, работал на тактовой частоте 108 кГц и стоил 300$.
За годы существования технологии микропроцессоров было разработано множество различных их архитектур. Многие из них (в дополненном и усовершенствованном виде) используются и поныне. Например Intel x86, развившаяся вначале в 32 бит IA32 а позже в 64 бит x86-64. Процессоры архитектуры x86 вначале использовались только в персональных компьютерах компании IBM (IBM PC), но в настоящее время всё более активно используются во всех областях компьютерной индустрии, от суперкомпьютеров до встраиваемых решений. Также можно перечислить такие архитектуры как Alpha, SPARC, MIPS (RISC — архитектуры) и EPIC-архитектура).
Большинство процессоров используемых в настоящее время являются Intel-совместимыми, то есть имеют набор инструкций и пр., как процессоры компании Intel, AMD и 8086, i286 (в русском компьютерном сленге называется «двойка», «двушка»), i386 («тройка», «трёшка»), i486 («четвёрка»), Pentium II, Pentium III, Pentium 4, Core 2 Duo, Itanium и др. AMD имеет в своей линейке процессоры Amx86 (сравним с Intel 486), Sempron (сравним с Intel Celeron), Athlon 64, Athlon 64 X2,
Будущие перспективы
В ближайшие 10-20 лет, скорее всего, изменится материальная часть процессоров ввиду того, что технологический процесс достигнет физических пределов производства. Возможно, это будут:
- Квантовые компьютеры
- Молекулярные компьютеры
Квантовые процессоры
Процессоры, работа которых всецело базируется на квантовых эффектах. В настоящее время ведутся работы над созданием рабочих версий квантовых процессоров.
Российские микропроцессоры
Разработкой микропроцессоров в России занимается ЗАО «МЦСТ». Им разработаны и внедрены в производство универсальные RISC-микропроцессоры с проектными нормами 130 и 350 нм. Завершена разработка суперскалярного процессора нового поколения Эльбрус. Основные потребители российских микропроцессоров — предприятия ВПК.
История развития
Другие национальные проекты
Китай
См. также
Примечания
Ссылки
Литература
- Скотт Мюллер. Модернизация и ремонт ПК = Upgrading and Repairing PCs. — 17-е изд. — М.: «Вильямс», 2007. — С. 59—241. — ISBN 0-7897-3404-4
Сравнение центрального и графического процессоров: в чем разница?
В настоящее время от систем требуется больше, чем когда-либо раньше, будь то приложения для глубинного обучения, массовый параллелизм, трехмерные игры, требующие высокой производительности, или другие ресурсоемкие рабочие нагрузки. Центральный процессор (ЦП) и графический процессор (ГП) играют очень разные роли. Для чего используются центральные процессоры? Для чего используются графические процессоры? Понимание роли, которую играет каждый из них, имеет важное значение при покупке нового компьютера и сравнении технических характеристик.
Что такое ЦП?
ЦП, состоящий из миллионов транзисторов, может иметь несколько процессорных ядер и обычно называется «мозгом» компьютера. Он имеет важное значение для всех современных вычислительных систем, поскольку выполняет команды и процессы, необходимые для работы компьютера и операционной системы. ЦП также играет важную роль при определении скорости работы программ, начиная с просмотра веб-страниц и заканчивая созданием электронных таблиц.
Что такое ГП?
ГП — это процессор, состоящий из большого количества более мелких и более специализированных ядер. Работая совместно, ядра обеспечивают высокую производительность, когда задача обработки может быть разделена и обработана во многих ядрах.
В чем разница между ЦП и ГП?
ЦП и ГП имеют много общего. Оба являются важнейшими вычислительными движками. Оба представляют собой кремниевые микропроцессоры. И оба обрабатывают данные. При этом ЦП и ГП имеют разные архитектуры и созданы для различных целей.
ЦП подходит для широкого спектра рабочих нагрузок, особенно тех, для которых важное значение имеет время задержки и производительность каждого ядра. Будучи мощным исполнительным движком, ЦП сосредотачивает меньшее число своих ядер на отдельных задачах и на скорости исполнения. В связи с этим он исключительно хорошо приспособлен для широкого спектра задач, начиная с последовательного вычисления и заканчивая обработкой баз данных.
ГП появились как специализированные интегральные схемы, разработанные для ускорения конкретных задач по трехмерному рендерингу. Со временем эти движки с фиксированными функциями стали более программируемыми и более адаптивными. Несмотря на то, что графика и все более реалистичная визуализация лучших современных игр остается их основной функцией, ГП также стали со временем универсальными параллельными процессорами, способными работать с более широким спектром приложений.
Что такое интегрированная графическая система?
Интегрированная (или общая) графическая система построена на том же чипе, что и ЦП. Некоторые ЦП могут иметь встроенный ГП, а не выделенную или дискретную графическую систему. Кроме того, ИГП, или интегрированные графические процессоры, могут иметь общую память с ЦП.
Интегрированные графические процессоры обладают несколькими преимуществами. Благодаря их интеграции с ЦП они отличаются большей компактностью, экономической и энергоэффективностью по сравнению с неинтегрированными графическими процессорами. Они обеспечивают возможности по обработке графических данных и команд для общих задач, таких как просмотр сайтов, просмотр фильмов с разрешением 4К в потоковом режиме и казуальные игры.
Такой подход чаще всего используется для устройств, для которых очень важны компактный размер и энергоэффективность, таких как ноутбуки, планшеты, смартфоны и некоторые настольные ПК.
Ускорение глубинного обучения и искусственного интеллекта
Сегодня ГП работают со все большим количеством рабочих нагрузок, например с глубинным обучением и искусственным интеллектом (ИИ). ГП и другие ускорители идеально подходят для глубинного обучения с использованием нескольких слоев нейронной сети или больших наборов некоторых данных, таких как двумерные изображения.
Алгоритмы глубинного обучения были адаптированы для использования метода ускоренного ГП, что позволило получить значительный рост производительности и впервые довести обучение по нескольким практическим задачам до реально осуществимого уровня.
Со временем возможности ЦП и работающих на них библиотек программного обеспечения значительно возросли в отношении задач глубинного обучения. Например, благодаря обширной оптимизации программного обеспечения и дополнительному использованию специализированного аппаратного обеспечения с искусственным интеллектом, например, технологии Intel® Deep Learn Boost (Intel® DL Boost) в новейших масштабируемых процессорах Intel® Xeon®, в системах на базе ЦП повысилась производительность глубинного обучения.
ЦП показывают себя с лучшей стороны во многих прикладных областях, таких как глубинное обучение, связанное с получением изображений высокой четкости, трехмерных изображений, а также не связанное с изображениями глубинное обучение языку, тексту и данным временного ряда. Сегодня ЦП могут поддерживать гораздо большие объемы памяти даже по сравнению с лучшими ГП в сложных моделях или приложениях с глубинным обучением (например, обнаружение двумерных изображений).
Сочетание ЦП и ГП при условии достаточности оперативной памяти обеспечивает отличную экспериментальную систему для глубинного обучения и искусственного интеллекта.
Десятилетия лидерства в разработке ЦП
Intel имеет давнюю историю инноваций в ЦП с выхода в 1971 г. первого коммерческого микропроцессора, полностью интегрированного в единый чип.
Сегодня ЦП Intel® позволяют построить нужную систему искусственного интеллекта в нужном месте на базе известной архитектуры x86. Intel предлагает ЦП, удовлетворяющие любым потребностям, от высокопроизводительных масштабируемых процессоров Intel® Xeon® в центре обработки данных и облачной среде до энергоэффективных процессоров Intel® Core™на периферии.
Интеллектуальная производительность процессоров Intel® Core™ 11-го поколения
Процессоры Intel® Core™ 11-го поколения используют оптимизированные технологии обработки Intel, новую архитектуру ядра, разработанную с нуля графическую архитектуру, а также встроенные инструкции искусственного интеллекта для обеспечения интеллектуальной и оптимизированной производительности и возможностей.
Системы на базе процессоров Intel® Core™ 11-го поколения оснащены новейшей интегрированной графикой Intel® Iris® Xe. Устройства в некоторых форм-факторах, например сверхтонкие ноутбуки, также оборудованы дискретной графикой на базе архитектуры Intel® Xe. Выделенная графика Intel® Iris® Xe MAX — это гигантский рывок в развитии тонких и легких ноутбуков. Она также обеспечивает повышенную производительность и новые возможности для создания контента и игр.
Графика Intel® Iris® Xe оснащена технологией Intel® Deep Learning Boost на базе искусственного интеллекта. Она позволяет эффективней создавать контент, редактировать фотографии и видео, а также обладает низким энергопотреблением, обеспечивая длительное время автономной работы без отрыва от творчества и выполнения нескольких задач.
Дискретные графические процессоры Intel
Корпорация Intel предлагает два варианта дискретных графических процессоров на базе архитектуры Intel® Xe .
Графика Intel® Iris™ Xe MAX — это первый дискретный графический процессор для тонких и легких ноутбуков на базе архитектуры Intel® Xe. Графическая плата, оптимизированная для работы с процессорами Intel® Core™ 11-го поколения, повышает производительность и раскрывает новые возможности перед создателями контента и геймерами.
Intel® Server GPU — это дискретный графический процессор для ЦОД на базе новой архитектуры Intel® Xe. Разработанный для экспоненциального масштабирования, Intel® Server GPU выводит игры на устройствах под управлением Android, транскодирование/кодирование и возможности потоковой трансляции видео по технологии OTT на новый уровень.
Сегодня речь больше не идет о сравнении ЦП и ГП. Как никогда вам необходимы оба движка для удовлетворения меняющихся требований к вычислительным средствам. Наилучшие результаты достигаются, когда для работы используется правильный инструмент.
2.1. Процессор (АЛУ+УУ, контроллеры) — Архитектура ЭВМ
Одним из важнейших устройств компьютера является центральный процессор (CPU — англ, central processing unit, что переводится как «центральное вычислительное устройство»). Именно от типа процессора и его характеристик в первую очередь зависит производительность компьютерной системы в целом.
Центральный процессор — это устройство компьютера, предназначенное для выполнения арифметических и логических операций над данными, а также координации работы всех устройств компьютера.
Современные центральные процессоры для персональных компьютеров выполняются в виде отдельных микросхем и называются микропроцессорами. В дальнейшем будем считать понятия «микропроцессор» и «процессор» равнозначными.
Схема состава микропроцессора показана на рисунке 1.
Рисунок 1 — Схема состава микропроцессора
Основным элементом микропроцессора является ядро, от которого зависит большинство характеристик самого процессора. Ядро представляет собой часть микропроцессора, содержащую его основные функциональные блоки и осуществляющую выполнение одного потока команд.
Современные процессоры могут иметь более одного ядра, т.е. могут быть многоядерными. Многоядерные процессоры способны выполнять одновременно несколько потоков команд. Основная причина перехода к многоядерным процессорам была вызвана тем, что повышение производительности микропроцессоров путем дальнейшего наращивания тактовой частоты достигло физического предела в связи с очень высоким уровнем тепловыделения и энергопотребления. Производительность многоядерного процессора увеличивается за счет распараллеливания обработки данных между несколькими ядрами. Визуальное представление процессора показано на рисунке 2.
Рисунок 2 — Процессор
Ядро процессора помещается в корпус (пластмассовый или керамический) и соединяется проводками с металлическими ножками (выводами), с помощью которых процессор присоединяется к системной плате компьютера. Количество выводов и их расположение определяют тип процессорного интерфейса (разъема). Каждая системная плата ориентирована на один определенный тип разъема
Арифметико-логическое устройство (АЛУ) выполняет все математические и логические операции.
Управляющее устройство (УУ) обеспечивает выполнение процессором последовательности команд программы.
Набор регистров — ячейки памяти внутри процессора, используемые для размещения команд программы и обрабатываемых данных.
Кэш-память (кэш) — сверхбыстрая память, хранящая содержимое наиболее часто используемых ячеек оперативной памяти, а также части программы, к которым процессор обратится с наибольшей долей вероятности. Процессор в первую очередь пытается найти нужные данные именно в кэш-памяти, а если их там не оказывается, обращается к более медленной оперативной памяти. Кэш-память делится на два или три уровня, которые обозначаются LI, L2 и L3 (чаще всего уровней два).
Сопроцессор — элемент процессора, выполняющий действия над числами с плавающей запятой.
Характеристики микропроцессора Тактовая частота. Для каждой выполняемой процессором команды требуется строго определенное количество единиц времени (тактов). Тактовые импульсы формируются генератором тактовой частоты, установленным на системной плате. Чем чаще они генерируются, тем больше команд процессор выполняет за единицу времени, т. е. тем выше его быстродействие. Тактовая частота обычно выражается в мегагерцах. 1 МГц равен 1 миллиону тактов в секунду. Первые модели процессоров Intel (i8008x) работали с тактовыми частотами, меньшими 5 МГц. Сегодня тактовая частота последних процессоров превышает 3 ГГц (1 ГГц = 1000 МГц). Внутренняя архитектура процессора, как и тактовая частота, также влияет на работу процессора, поэтому два CPU с одинаковой тактовой частотой не обязательно будут тратить одинаковое время на выполнение одной команды. Если, например, микропроцессору Intel 80286 требовалось 20 тактов, чтобы выполнить команду умножения двух чисел, то Intel 80486 или старше мог выполнить это же действие за один такт. Некоторые процессоры способны выполнять более одной команды за 1 такт. Их называют суперскалярными. Различают внутреннюю и внешнюю тактовую частоту. Внешняя тактовая частота — это частота, с которой процессор обменивается данными с оперативной памятью компьютера. Как уже было сказано выше, она формируется генератором тактовых импульсов (кварцевым резонатором).
Внутренняя тактовая частота — это частота, с которой происходит работа внутри процессора. Именно это значение указывается в прайс-листах фирм, продающих процессоры.
Что включает в себя центральный процессор компьютера. Как работает процессор компьютера? Микропроцессоры: производительность и тенденции
Процессор — это главная микросхема компьютера. Как правило, она также является одним из самых высокотехнологичных и дорогих компонентов ПК. Несмотря на то что процессор — отдельное устройство, он имеет в своей структуре большое количество компонентов, отвечающих за конкретную функцию. Какова их специфика?
Процессор: функции устройства и история появления
Компонент ПК, который сейчас принято именовать центральным процессором, характеризуется достаточно интересной историей происхождения. Поэтому, для того чтобы понять его специфику, полезно будет исследовать некоторые ключевые факты об эволюции его разработки. Устройство, которое современному пользователю известно как центральный процессор, является результатом многолетнего совершенствования технологий производства вычислительных микросхем.
Со временем менялось видение инженерами структуры процессора. В ЭВМ первого и второго поколения соответствующие компоненты состояли из большого количества раздельных блоков, очень несхожих по решаемым задачам. Начиная с третьего поколения компьютеров функции процессора начали рассматриваться в более узком контексте. Инженеры-конструкторы ЭВМ определили, что это должно быть распознавание и интерпретация машинных команд, занесение их в регистры, а также управление другими аппаратными компонентами ПК. Все эти функции стали объединяться в одном устройстве.
Микропроцессоры
По мере развития компьютерной техники в структуру ПК стали внедряться девайсы, получившие название «микропроцессор». Одним из первых устройств такого типа стало изделие Intel 4004, выпущенное американской корпорацией в 1971 году. Микропроцессоры в масштабе одной микросхемы объединили в своей структуре те функции, что мы определили выше. Современные девайсы, в принципе, работают на основе той же самой концепции. Таким образом, центральный процессор ноутбука, ПК, планшета содержит в своей структуре: логическое устройство, регистры, а также модуль управления, отвечающие за конкретные функции. Однако на практике компоненты современных микросхем чаще всего представлены в более сложной совокупности. Изучим данную особенность подробнее.
Структура современных процессоров
Центральный процессор современного ПК, ноутбука или планшета представлен ядром — теперь уже нормой считается, что их несколько, кэш-памятью на различных уровнях, а также контроллерами: ОЗУ, системной шины. Производительность микросхемы соответствующего типа определяется ее ключевыми характеристиками. В какой совокупности они могут быть представлены?
Наиболее значимые характеристики центрального процессора на современных ПК таковы: тип микроархитектуры (обычно указывается в нанометрах), тактовая частота (в гигагерцах), объем кэш-памяти на каждом уровне (в мегабайтах), энергопотребление (в ваттах), а также наличие или отсутствие графического модуля.
Изучим специфику работы некоторых ключевых модулей центрального процессора подробнее. Начнем с ядра.
Ядро процессора
Центральный процессор современного ПК всегда имеет ядро. В нем содержатся ключевые функциональные блоки микросхемы, посредством которых она выполняет необходимые логические и арифметические функции. Как правило, они представлены в некоторой совокупности элементов. Так, устройство центрального процессора чаще всего предполагает наличие блоков, которые отвечают за решение следующих задач:
Выборка и декодирование инструкций;
Выборка данных;
Выполнение инструкций;
Сохранение результатов вычислений;
Работа с прерываниями.
Также структура микросхем соответствующего типа дополняется управляющим блоком, запоминающим устройством, счетчиком команд, а также набором регистров. Рассмотрим специфику работы соответствующих компонентов подробнее.
Ядро процессора: компоненты
В числе ключевых блоков в ядре центрального процессора — тот, что отвечает за считывание инструкций, которые прописываются в адресе, зафиксированном в счетчике команд. Как правило, в течение одного такта выполняется сразу несколько операций соответствующего типа. Общее количество инструкций, подлежащих считыванию, предопределяется показателем в блоках декодирования. Главный принцип здесь — чтобы при каждом такте отмеченные компоненты были максимально загружены. С целью обеспечения соответствия данному критерию в структуре процессора могут присутствовать вспомогательные аппаратные элементы.
В блоке декодирования обрабатываются инструкции, определяющие алгоритм работы микросхемы в ходе решения тех или иных задач. Обеспечение их функционирования — сложная задача, как считают многие IT-специалисты. Это обусловлено, в частности, тем, что длина инструкции не всегда четко определена. Современные процессоры обычно включают 2 или 4 блока, в которых осуществляется соответствующее декодирование.
Касательно компонентов, отвечающих за выборку данных — их основная задача заключается в обеспечении приема команд из кэш-памяти либо ОЗУ, которые необходимы для обеспечения выполнения инструкций. В ядрах современных процессоров обычно присутствует несколько блоков соответствующего типа.
Управляющие компоненты, присутствующие в микросхеме, также базируются на декодированных инструкциях. Они призваны осуществлять контроль над работой блоков, которые ответственны за выполнение инструкций, а также распределять задачи между ними, контролировать своевременное их выполнение. Управляющие компоненты относятся к категории важнейших в структуре микропроцессоров.
В ядрах микросхем соответствующего типа присутствуют также блоки, отвечающие за корректное выполнение инструкций. В их структуре присутствуют такие элементы, как арифметическое и логическое устройство, а также компонент, отвечающий за вычисления с плавающей точкой.
Есть в составе ядер процессоров блоки, которые контролируют обработку расширения наборов, что установлены для инструкций. Данные алгоритмы, дополняющие основные команды, используются для повышения интенсивности обработки данных, осуществления процедур шифрования или дешифрования файлов. Решение подобных задач требует введения в структуру ядра микросхемы дополнительных регистров, а также наборов инструкций. Современные процессоры включают обычно следующие расширения: MMX (предназначены для кодирования аудио- и видеофайлов), SSE (применяются при распараллеливании вычислений), ATA (задействуется с целью ускорения работы программ и снижения уровня энергопотребления ПК), 3DNow (расширение мультимедийных возможностей компьютера), AES (шифрование данных), а также многие другие стандарты.
В структуре ядер процессора обычно также присутствуют блоки, отвечающие за сохранение результатов в ОЗУ в соответствии с адресом, который содержится в инструкции.
Важное значение имеет компонент ядра, который контролирует работу микросхемы с прерываниями. Данная функция позволяет процессору обеспечивать стабильность работы программ в условиях многозадачности.
Работа центрального процессора также связана с задействованием регистров. Данные компоненты являются аналогом ОЗУ, однако доступ к ним осуществляется в несколько раз быстрее. Объем соответствующего ресурса небольшой — как правило, он не превышает килобайта. Регистры классифицируются на несколько разновидностей. Это могут быть компоненты общего назначения, которые задействуются при выполнении арифметических или логических вычислений. Есть регистры специального назначения, которые могут включать системные данные, используемые процессором в ходе работы.
В структуре ядра процессора также присутствуют различные вспомогательные компоненты. Какие, например? Это может быть датчик, отслеживающий то, какова текущая температура центрального процессора. Если ее показатели выше установленных норм, то микросхема может направить сигнал модулям, отвечающим за работу вентиляторов — и они начнут вращаться быстрее. Есть в структуре ядра предсказатель переходов — компонент, который призван определять, какие именно команды будут выполняться после завершения определенных циклов операций, совершаемых микросхемой. Пример другого важного компонента — счетчик команд. Данный модуль фиксирует адрес соответствующего алгоритма, который передается микросхеме в момент начала выполнения им того или иного такта.
Такова структура ядра, которое входит в центральный процессор компьютера. Изучим теперь подробнее некоторые ключевые характеристики микросхем соответствующего типа. А именно: техпроцесс, тактовая частота, объем кэш-памяти, а также энергопотребление.
Характеристики процессора: тип техпроцесса
Развитие компьютерной техники принято связывать с появлением по мере совершенствования вычислительных технологий новых поколений ЭВМ. При этом, не считая показателей производительности, одним из критериев отнесения компьютера к тому или иному поколению может считаться его абсолютный размер. Самые первые ЭВМ были сопоставимы по величине с многоэтажным домом. Компьютеры второго поколения были сопоставимы по величине, к примеру, с диваном или пианино. ЭВМ следующего уровня уже были вплотную приближены к тем, что привычны для нас сейчас. В свою очередь, современные ПК — это компьютеры четвертого поколения.
Собственно, к чему все это? Дело в том, что в ходе эволюции ЭВМ сформировалось неофициальное правило: чем более технологично устройство, тем меньшими габаритами при той же производительности, а то и при большей — оно обладает. Оно в полной мере действует и в отношении рассматриваемой характеристики центрального процессора, а именно, техпроцесса его изготовления. В данном случае имеет значение расстояние между единичными кремниевыми кристаллами, формирующими структуру микросхемы. Чем оно меньше — тем больше плотность соответствующих элементов, которые размещает на себе плата центрального процессора. Тем более производительным он, соответственно, может считаться. Современные процессоры выполняются по техпроцессу 90-14 нм. Данный показатель имеет тенденцию к постепенному уменьшению.
Тактовая частота
Тактовая частота центрального процессора — один из ключевых показателей его производительности. Она определяет то, сколько операций в секунду может совершать микросхема. Чем их больше — тем более производителен процессор и компьютер в целом. Можно отметить, что данный параметр характеризует, прежде всего, ядро как самостоятельный модуль центрального процессора. То есть, если соответствующих компонентов на микросхеме несколько, то каждое из них будет работать с отдельной частотой. Некоторые IT-специалисты считают допустимым суммировать данные характеристики по всем ядрам. Что это значит? Если, например, на процессоре установлено 4 ядра с частотой 1 ГГц, то суммарный показатель производительности ПК, если следовать этой методологии, будет составлять 4 ГГц.
Компоненты частоты
Рассматриваемый показатель формируется из двух компонентов. Во-первых, это частота системной шины — измеряется она обычно в сотнях мегагерц. Во-вторых, это коэффициент, на который соответствующий показатель умножается. В некоторых случаях производители процессоров дают пользователям возможность регулировать оба параметра. При этом, если выставить в достаточной мере высокие значения для системной шины и множителя, можно ощутимо увеличить производительность микросхемы. Именно таким образом осуществляется разгон процессора. Правда, его задействовать нужно осторожно.
Дело в том, что при разгоне может значительно увеличиться температура центрального процессора. Если на ПК не будет установлено соответствующей системы охлаждения, то это может привести к выходу микросхемы из строя.
Объем кэш-памяти
Современные процессоры оснащены модулями кэш-памяти. Основное их предназначение — временное размещение данных, как правило, представленных совокупностью особых команд и алгоритмов — тех, что задействуются в работе микросхемы наиболее часто. Что это дает на практике? Прежде всего то, что загрузка центрального процессора может быть уменьшена за счет того, что те самые команды и алгоритмы будут находиться в оперативном доступе. Микросхема, получив из кэш-памяти готовые инструкции, не тратит время на их выработку с нуля. В итоге работа компьютера идет быстрее.
Главная характеристика кэш-памяти — объем. Чем он больше, тем, соответственно, вместительнее данный модуль с точки зрения расположения тех самых инструкций и алгоритмов, задействуемых процессором. Тем больше вероятность, что микросхема будет всякий раз находить среди них нужные для себя и работать быстрее. Кэш-память на современных процессорах делится чаще всего на три уровня. Первый работает на базе наиболее быстрых и высокотехнологичных микросхем, остальные — медленнее. Объем кэш-памяти первого уровня на современных процессорах составляет порядка 128-256 КБ, второго — 1-8 МБ, третьего — может превышать 20 МБ.
Энергопотребление
Другой значимый параметр микросхемы — энергопотребление. Питание центрального процессора может предполагать значительное расходование электроэнергии. Современные модели микросхем потребляют порядка 40-50 Вт. В некоторых случаях данный параметр имеет экономическое значение — например, если речь идет об оснащении больших предприятий несколькими сотнями или тысячами компьютеров. Но не менее значимым фактором энергопотребление выступает в части адаптации процессоров к использованию на мобильных устройствах — ноутбуках, планшетах, смартфонах. Чем соответствующий показатель меньше, тем дольше будет автономная работа девайса.
Вы используете компьютер или мобильное устройство, чтобы читать данный топик в настоящее время. Компьютер или мобильное устройство для выполнения этих действий использует микропроцессор. Микропроцессор является сердцем любого устройства, сервера или ноутбука. Существует много марок микропроцессоров от самых разных производителей, но все они делают примерно то же самое и примерно таким же образом.
Микропроцессор — также известный как процессор или центральный блок обработки — это вычислительный двигатель, который изготовлен на одном кристалле. Первым микропроцессором был Intel 4004, он появился в 1971 году и был не столь мощным. Он мог складывать и вычитать, и это только 4 бита за один раз. Удивительным процессор был потому, что был выполнен на одном чипе. Вы спросите почему? А я отвечу: инженеры в то время производили процессоры либо из нескольких чипов или из дискретных компонентов (транзисторы использовались в отдельных корпусах).
Если вы когда-либо задавались вопросом, что микропроцессор делает в компьютере, как внешне выглядит или каковы его различия по сравнению с другими типами микропроцессоров, то ступайте под кат — там всё самое интересное, и подробности.
Прогресс в производстве микропроцессоров: Intel
Первым микропроцессором, ставшим впоследствии сердцем простого домашнего компьютера, был Intel 8080 — полный 8-разрядный компьютер на одном чипе, появившийся в 1974 году. Первый микропроцессор стал причиной реального всплеска на рынке. Позже в 1979 году была выпущена новая модель — Intel 8088. Если вы знакомы с рынком ПК и его историей, то знаете, что рынок ПК переехал от Intel 8088 к Intel 80286, а тот к Intel 80386 и Intel 80486, а после к Pentium, Pentium II, Pentium III и Pentium 4. Все эти микропроцессоры сделаны Intel, и все они являются улучшениями базовой конструкции Intel 8088. Pentium 4 может выполнить любой код, но делает он это в 5000 раз быстрее.
В 2004 году Intel представила микропроцессоры с несколькими ядрами и миллионным количеством транзисторов, но даже эти микропроцессоры следовали общим правилам, что и ранее изготовленные чипы. Дополнительная информация в таблице:
- Дата : является годом, когда процессор был впервые представлен. Многие процессоры были выпущены вновь, но уже с более высокими тактовыми частотами, и это продолжалось в течение многих лет после оригинальной даты выпуска
- Транзисторы : это количество транзисторов на кристалле. Вы можете видеть, что число транзисторов на одном кристалле неуклонно растёт на протяжении многих лет
- Микрон : ширина в микронах наименьшей проволоки на чипе. Для сравнения могу привести человеческий волос, имеющий толщину около 100 мкм. Поскольку размеры были всё меньше и меньше, число транзисторов возрастало
- Тактовая частота : максимальная скорость, которую чип может развить. О тактовой частоте я расскажу чуточку позже
- Ширина (шина) данных : является шириной АЛУ (арифметико-логическое устройство). 8-битное АЛУ может добавить, вычесть, умножить и т. д. Во многих случаях шина данных имеет ту же ширину, как АЛУ, но не всегда. Intel 8088 был 16-битным и имел 8-битную шину, в то время как современные модели Pentium 64-битные.
- MIPS : данная колонка в таблице выступает за отображение количества операций в секунду. Является единицей измерения для микропроцессоров. Современные процессоры могут сделать столько всяких штук, что сегодняшние рейтинги, представленные в таблице, потеряют всякий смысл. Зато вы можете ощутить относительную мощность микропроцессоров тех времён
Что такое чип?
Чип также называется интегральной схемой. Обычно это небольшой, тонкий кусочек кремния, на которой транзисторы, входящие в состав микропроцессора были выгравированы. Чип может быть размером в один дюйм, но при этом содержать в себе десятки миллионов транзисторов. Более простые процессоры могут состоять из нескольких тысяч транзисторов, выгравированных на чипе всего в несколько квадратных миллиметров.
Как это работает
Intel Pentium 4
Чтобы понять, как работает микропроцессор, было бы полезно заглянуть внутрь и узнать о его внутренностях. В процессе вы также можете узнать о языке ассемблера — родном языке микропроцессора, и многое из того, что инженеры могут сделать, чтобы увеличить скорость процессора.
Микропроцессор выполняет коллекцию машинных инструкций, которые сообщают процессору, что делать. Основываясь на инструкциях, микропроцессор делает три основные вещи:
- Используя своё АЛУ (арифметико-логическое устройство), микропроцессор может выполнять математические операции. Например, сложение, вычитание, умножение и деление. Современные микропроцессоры способны выполнять чрезвычайно сложные операции
- Микропроцессор может перемещать данные из одного места памяти в другое
- Микропроцессор может принимать решения и перейти к новому набору инструкций, основанному на этих решениях
Говоря прямо, микропроцессор делает сложные штуки, но выше я описал три основных вида деятельности. Следующая диаграмма показывает очень простой микропроцессор, способный делать эти три вещи. Этот микропроцессор имеет:
- Шина адреса (8, 16 или 32 бита), которая посылает обращение к памяти
- Шина данных (8, 16 или 32 бита), которая передаёт данные в память или принимает данные от памяти
- RD (read, чтение) и WR (write, запись) сообщают памяти, хотят ли они произвести установку или же получить адресованное местоположение
- Линия часов, которая позволяет просмотреть последовательность тактовых импульсов процессора
- Линия сброса, которая сбрасывает счётчик команд к нулю и перезапускает выполнение
Память микропроцессора
Ранее мы говорили о шинах адреса и данных, а также о линиях чтения и записи. Всё это соединяется либо с ОЗУ (оперативная память) или с ПЗУ (постоянная память или постоянное запоминающее устройство, ПЗУ) — как правило, с обеими. В нашем примере микропроцессора мы имеем широкую адресную шину 8 бит и такую же широкую шину данных — тоже 8 бит.8 к 256 байт памяти, и может читать и писать 8 бит памяти за один раз. Давайте предположим, что этот простой микропроцессор имеет 128 байт встроенной памяти, начиная с адреса 0 и 128 байт оперативной памяти, начиная с адреса 128.Оперативная память выступает за память только для чтения. Микросхема постоянной памяти запрограммирована с постоянными предустановленными заданными байтами. Шинный адрес сообщает чипу оперативной памяти, который байт, добраться и поместиться на шине данных. Когда линия чтения изменяет своё состояние, микросхема постоянной памяти представляет выбранный байт на шину данных.
Оперативная память выступает за оперативную память, лол. ОЗУ содержит байт информации, и микропроцессор может читать или писать на эти байты в зависимости от того, сигнализирует ли линия чтения или записи. Одна из проблем, которую можно встретить в сегодняшних чипах — они забывают всё, как только уходит энергия. Поэтому компьютер должен обладать оперативной памятью.
RAM chip или чип постоянного запоминающего устройства (ПЗУ)
Кстати, почти все компьютеры содержат некоторое количество оперативной памяти. На персональном компьютере постоянное запоминающее устройство называется BIOS (Basic Input/Output System). При запуске микропроцессор начинает выполнять инструкции, которые он находит в BIOS. Инструкции BIOS, к слову, тоже выполняют свои роли: выполняют проверку аппаратных средств, а затем вся информация поступает на жёсткий диск, чтобы создать загрузочный сектор. Загрузочный сектор — это одна небольшая программа, и BIOS хранит её в памяти после прочтения её с диска. Затем микропроцессор начинает выполнять инструкции загрузочного сектора из оперативной памяти. Программа загрузочного сектора покажет микропроцессору, что нужно ещё взять с собой с жесткого диска в оперативную память, а затем выполняет всё это и так далее. Это — то, как микропроцессор загружает и выполняет всю операционную систему.
Микропроцессорные инструкции
Даже невероятно простой микропроцессор, описанный мною только что, будет иметь довольно большой набор инструкций, которые он может выполнять. Коллекция инструкций реализована в виде битовых шаблонов, каждый из которых имеет различное значение, когда загражается в сектор команд. Люди не особенно хорошо запоминают битовые шаблоны, так как это набор коротких слов. К слову, этот набор коротких слов называется языком ассемблера процессора. Ассемблер может переводить слова в битовый шаблон очень легко, а затем старания ассемблера будут помещены в память для микропроцессора с целью выполнения.Вот набор инструкций языка ассемблера:
- LOADA mem — загрузить в регистр с адресом памяти
- LOADB mem — загрузить в регистр B от адреса памяти
- CONB mem — загрузить постоянное значение в регистр B
- SAVEB mem — сохранить регистр B в адрес памяти
- SAVEC mem — сохранить регистр C в адрес памяти
- ADD — добавить A и B и сохранить результат в C
- SUB — вычесть A и B и сохранить результат в C
- MUL — умножить A и B и сохранить результат в C
- DIV — разделить A и B и сохранить результат в C
- COM — сравнить A и B и сохранить результат в тесте
- JUMP addr — перейти по адресу
- JEQ addr — перейти, если равно, для решения
- JNEQ addr — перейти, если не равно, для решения
- JG addr — перейти, если больше, для решения
- JGE addr — перейти, если больше или равно, для решения
- JL addr — перейти, если меньше, для решения
- JLE addr — перейти, если меньше или равно, для решения
- STOP — остановить выполнение
Компилятор C переводит этот C-код на языке ассемблера. Если предположить, что оперативная память начинается с адреса 128 в этом процессоре, и постоянное запоминающее устройство (в котором содержится программа на языке ассемблера) начинается с адреса 0, то для нашего простого микропроцессора ассемблер может выглядеть следующим образом:
// Assume a is at address 128// Assume F is at address 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
// Assume a is at address 128// Assume F is at address 129Addr opcode/value0 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
Вы видите, что 7 линий C-кода стали 18 линиями ассемблера, и это всё стало 32 байтами в постоянном запоминающем устройстве.
Декодирование
Инструкция декодирования должна превратить каждый из кодов операций в набор сигналов, которые будут управлять различными компонентами внутри микропроцессора. Давайте возьмём инструкции ADD в качестве примера и посмотрим, что она должна будет сделать. Итак:
- 1. В первом такте необходимо загрузить саму инструкцию, поэтому декодеру нужно: активировать тремя состояниями буфер для счётчика команд, активировать линию чтения (RD), активировать данные в трёх штатах буфера в регистре команд
- 2. Во втором такте инструкция ADD декодируется. Тут нужно сделать совсем немного: установить операцию арифметико-логического устройства (АЛУ) в регистр C
- 3. Во время третьего такта программный счётчик увеличивается (в теории это может перекрываться во втором такте)
Подойдём к концу
Количество транзисторов имеет огромное влияние на производительность процессора. Как можно заметить выше, типичный микропроцессор Intel 8088 мог выполнять 15 циклов. Чем больше транзисторов, тем выше производительность — всё просто. Большое количество транзисторов также допускает такую технологию, как конвейерная обработка.
Конвейерная архитектура складывается из выполнения команд. Это может занять пять циклов для выполнения одной команды, но не может быть пять инструкций на разных стадиях исполнения одновременно. Таким образом, похоже, что одна команда завершает каждый тактовый цикл.
Все эти тенденции позволяют расти количеству транзисторов, что приводит к многомиллионным транзисторным тяжеловесам, которые доступны сегодня. Подобные процессоры могут выполнять около миллиарда операций в секунду — только представьте себе. Кстати, сейчас многие производители стали интересоваться выпуском 64-битных мобильных процессоров и очевидно наступает очередная волна, только на сей раз королём моды является 64-разрядная архитектура. Может и я доберусь в ближайшее время до этой темы и поведаю вам, как же на самом деле это работает. На этом, пожалуй, всё на сегодня. Надеюсь, вам было интересно и вы узнали много нового.
Инструмент проще, чем машина. Зачастую инструментом работают руками, а машину приводит в действие паровая сила или животное.
Чарльз Бэббидж
Компьютер тоже можно назвать машиной, только вместо паровой силы здесь электричество. Но программирование сделало компьютер таким же простым, как любой инструмент.
Процессор — это сердце/мозг любого компьютера. Его основное назначение — арифметические и логические операции, и прежде чем погрузиться в дебри процессора, нужно разобраться в его основных компонентах и принципах их работы.
Два основных компонента процессора
Устройство управления
Устройство управления (УУ) помогает процессору контролировать и выполнять инструкции. УУ сообщает компонентам, что именно нужно делать. В соответствии с инструкциями он координирует работу с другими частями компьютера, включая второй основной компонент — арифметико-логическое устройство (АЛУ). Все инструкции вначале поступают именно на устройство управления.
Существует два типа реализации УУ:
- УУ на жёсткой логике (англ. hardwired control units). Характер работы определяется внутренним электрическим строением — устройством печатной платы или кристалла. Соответственно, модификация такого УУ без физического вмешательства невозможна.
- УУ с микропрограммным управлением (англ. microprogrammable control units). Может быть запрограммирован для тех или иных целей. Программная часть сохраняется в памяти УУ.
УУ на жёсткой логике быстрее, но УУ с микропрограммным управлением обладает более гибкой функциональностью.
Арифметико-логическое устройство
Это устройство, как ни странно, выполняет все арифметические и логические операции, например сложение, вычитание, логическое ИЛИ и т. п. АЛУ состоит из логических элементов, которые и выполняют эти операции.
Большинство логических элементов имеют два входа и один выход.
Ниже приведена схема полусумматора, у которой два входа и два выхода. A и B здесь являются входами, S — выходом, C — переносом (в старший разряд).
Схема арифметического полусумматора
Хранение информации — регистры и память
Как говорилось ранее, процессор выполняет поступающие на него команды. Команды в большинстве случаев работают с данными, которые могут быть промежуточными, входными или выходными. Все эти данные вместе с инструкциями сохраняются в регистрах и памяти.
Регистры
Регистр — минимальная ячейка памяти данных. Регистры состоят из триггеров (англ. latches/flip-flops). Триггеры, в свою очередь, состоят из логических элементов и могут хранить в себе 1 бит информации.
Прим. перев. Триггеры могут быть синхронные и асинхронные. Асинхронные могут менять своё состояние в любой момент, а синхронные только во время положительного/отрицательного перепада на входе синхронизации.
По функциональному назначению триггеры делятся на несколько групп:
- RS-триггер: сохраняет своё состояние при нулевых уровнях на обоих входах и изменяет его при установке единице на одном из входов (Reset/Set — Сброс/Установка).
- JK-триггер: идентичен RS-триггеру за исключением того, что при подаче единиц сразу на два входа триггер меняет своё состояние на противоположное (счётный режим).
- T-триггер: меняет своё состояние на противоположное при каждом такте на его единственном входе.
- D-триггер: запоминает состояние на входе в момент синхронизации. Асинхронные D-триггеры смысла не имеют.
Для хранения промежуточных данных ОЗУ не подходит, т. к. это замедлит работу процессора. Промежуточные данные отсылаются в регистры по шине. В них могут храниться команды, выходные данные и даже адреса ячеек памяти.
Принцип действия RS-триггера
Память (ОЗУ)
ОЗУ (оперативное запоминающее устройство, англ. RAM) — это большая группа этих самых регистров, соединённых вместе. Память у такого хранилища непостоянная и данные оттуда пропадают при отключении питания. ОЗУ принимает адрес ячейки памяти, в которую нужно поместить данные, сами данные и флаг записи/чтения, который приводит в действие триггеры.
Прим. перев. Оперативная память бывает статической и динамической — SRAM и DRAM соответственно. В статической памяти ячейками являются триггеры, а в динамической — конденсаторы. SRAM быстрее, а DRAM дешевле.
Команды (инструкции)
Команды — это фактические действия, которые компьютер должен выполнять. Они бывают нескольких типов:
- Арифметические : сложение, вычитание, умножение и т. д.
- Логические : И (логическое умножение/конъюнкция), ИЛИ (логическое суммирование/дизъюнкция), отрицание и т. д.
- Информационные : move , input , outptut , load и store .
- Команды перехода : goto , if … goto , call и return .
- Команда останова : halt .
Прим. перев. На самом деле все арифметические операции в АЛУ могут быть созданы на основе всего двух: сложение и сдвиг. Однако чем больше базовых операций поддерживает АЛУ, тем оно быстрее.
Инструкции предоставляются компьютеру на языке ассемблера или генерируются компилятором высокоуровневых языков.
В процессоре инструкции реализуются на аппаратном уровне. За один такт одноядерный процессор может выполнить одну элементарную (базовую) инструкцию.
Группу инструкций принято называть набором команд (англ. instruction set).
Тактирование процессора
Быстродействие компьютера определяется тактовой частотой его процессора. Тактовая частота — количество тактов (соответственно и исполняемых команд) за секунду.
Частота нынешних процессоров измеряется в ГГц (Гигагерцы). 1 ГГц = 10⁹ Гц — миллиард операций в секунду.
Чтобы уменьшить время выполнения программы, нужно либо оптимизировать (уменьшить) её, либо увеличить тактовую частоту. У части процессоров есть возможность увеличить частоту (разогнать процессор), однако такие действия физически влияют на процессор и нередко вызывают перегрев и выход из строя.
Выполнение инструкций
Инструкции хранятся в ОЗУ в последовательном порядке. Для гипотетического процессора инструкция состоит из кода операции и адреса памяти/регистра. Внутри управляющего устройства есть два регистра инструкций, в которые загружается код команды и адрес текущей исполняемой команды. Ещё в процессоре есть дополнительные регистры, которые хранят в себе последние 4 бита выполненных инструкций.
Ниже рассмотрен пример набора команд, который суммирует два числа:
- LOAD_A 8 . Это команда сохраняет в ОЗУ данные, скажем, . Первые 4 бита — код операции. Именно он определяет инструкцию. Эти данные помещаются в регистры инструкций УУ. Команда декодируется в инструкцию load_A — поместить данные 1000 (последние 4 бита команды) в регистр A .
- LOAD_B 2 . Ситуация, аналогичная прошлой. Здесь помещается число 2 (0010) в регистр B .
- ADD B A . Команда суммирует два числа (точнее прибавляет значение регистра B в регистр A). УУ сообщает АЛУ, что нужно выполнить операцию суммирования и поместить результат обратно в регистр A .
- STORE_A 23 . Сохраняем значение регистра A в ячейку памяти с адресом 23 .
Вот такие операции нужны, чтобы сложить два числа.
Шина
Все данные между процессором, регистрами, памятью и I/O-устройствами (устройствами ввода-вывода) передаются по шинам. Чтобы загрузить в память только что обработанные данные, процессор помещает адрес в шину адреса и данные в шину данных. Потом нужно дать разрешение на запись на шине управления.
Кэш
У процессора есть механизм сохранения инструкций в кэш. Как мы выяснили ранее, за секунду процессор может выполнить миллиарды инструкций. Поэтому если бы каждая инструкция хранилась в ОЗУ, то её изъятие оттуда занимало бы больше времени, чем её обработка. Поэтому для ускорения работы процессор хранит часть инструкций и данных в кэше.
Если данные в кэше и памяти не совпадают, то они помечаются грязными битами (англ. dirty bit).
Поток инструкций
Современные процессоры могут параллельно обрабатывать несколько команд. Пока одна инструкция находится в стадии декодирования, процессор может успеть получить другую инструкцию.
Однако такое решение подходит только для тех инструкций, которые не зависят друг от друга.
Если процессор многоядерный, это означает, что фактически в нём находятся несколько отдельных процессоров с некоторыми общими ресурсами, например кэшем.
Центральный процессор — это основной рабочий компонент компьютера, который выполняет арифметические и логические операции, управляет вычислительным процессом и координирует работу всех устройств компьютера.
Центральный процессор в общем случае содержит в себе:
арифметико-логическое устройство;
шины данных и шины адресов;
регистры;
счетчики команд;
кэш — очень быструю память малого объема,
математический сопроцессор чисел с плавающей точкой.
Современные процессоры выполняются в виде микропроцессоров. Физически микропроцессор представляет собой интегральную схему — тонкую пластинку кристаллического кремния прямоугольной формы площадью всего несколько квадратных миллиметров, на которой размещены схемы, реализующие все функции процессора. Кристаллическая пластинка обычно помещается в пластмассовый или керамический плоский корпус и соединяется золотыми проводками с металлическими штырьками, чтобы его можно было присоединить к системной плате компьютера.
Основные характеристики процессора:
Производительность — основная характеристика, показывающая скорость выполнения компьютером операций обработки информации. Она в свою очередь зависит от следующих характеристик:
Тактовая частота — определяет число тактов работы процессора в секунду
Разрядность — определяет размер минимальной порции информации, называемой машинным словом
Адресное пространство — разрядность адресной шины, то есть максимальный объём оперативной памяти, которая может быть установлена на компьютере
8.2.3. Принцип действия процессора.
Процессор является главным элементом ЭВМ. Он прямо или косвенно управляет всеми устройствами и процессами, происходящими в ЭВМ.
В конструкции современных процессоров четко просматривается тенденция постоянного увеличения тактовой частоты. Это естественно: чем больше операций выполняет процессор, тем выше его производительность. Предельная тактовая частота во многом определяется существующей технологией производства микросхем (наименьшими достижимыми размерами элементов, которые определяют минимальное время передачи сигналов).
Кроме повышения тактовой частоты, увеличение производительности процессоров достигается разработчиками менее очевидными приемами, связанными с изобретением новых архитектур и алгоритмов обработки информации. Некоторые из них рассмотрим на примере процессора Pentium (Р5) и последующих моделей.
Перечислим основные особенности процессора Pentium:
конвейерная обработка информации;
суперскалярная архитектура;
наличие раздельных кэш-памятей для команд и данных;
наличие блока предсказания адреса перехода;
динамическое исполнение программы;
наличие блока вычислений с плавающей точкой;
поддержка многопроцессорного режима работы;
наличие средства обнаружения ошибок.
Термин «суперскалярная архитектура» означает, что процессор содержит более одного вычислительного блока. Эти вычислительные блоки чаще называют конвейерами. Заметим, что первая суперскалярная архитектура была реализована в отечественной ЭВМ «Эльбрус-1» (1978 г.).
Наличие в процессоре двух конвейеров позволяет ему одновременно выполнять (завершать) две команды (инструкции).
Каждый конвейер разделяет процесс выполнения команды на несколько этапов (например, пять):
выборка (считывание) команды из ОЗУ или кэш-памяти;
декодирование (дешифрация) команды, т. е. определение кода выполняемой операции;
выполнение команды;
обращение к памяти;
запоминание полученных результатов в памяти.
Для реализации каждого из перечисленных этапов (каждой операции) служит отдельное устройство- ступень. Таким образом, в каждом конвейере процессора Pentium имеется пять ступеней.
При конвейерной обработке на выполнение каждого этапа отводится один такт синхронизирующей (тактовой) частоты. В каждом новом такте заканчивается выполнение одной команды и начинается выполнение новой команды. Такое выполнение команд называют поточной обработкой.
Образно ее можно сравнить с производственным конвейером (потоком), где на каждом участке с разными изделиями выполняют всегда одну и ту же операцию. При этом, когда готовое изделие сходит с конвейера, на него заходит новое, а остальные изделия в это время находятся на разных стадиях готовности. Переход изготавливаемых изделий с участка на участок должен происходить синхронно, по специальным сигналам (в процессоре это такты, формируемые тактовым генератором).
Общее время выполнения одной команды в конвейере с пятью ступенями будет составлять пять периодов тактовой частоты. В каждом такте конвейер будет одновременно обрабатывать (выполнять) пять различных команд. В результате за пять тактов будет выполнено пять команд. Таким образом, конвейеризация увеличивает производительность процессора, но она не сокращает время выполнения отдельной команды. Выигрыш получается за счет того, что обрабатывается сразу несколько команд.
В действительности конвейеризация даже увеличивает время выполнения каждой отдельной команды из-за появления дополнительных расходов, связанных с организацией работы конвейера. При этом тактовая частота ограничивается быстродействием работы самой медленной ступени конвейера.
В качестве примера рассмотрим процесс выполнения команды, у которой длительности выполнения этапов составляют 60, 30, 40, 50 и 20 нс. Примем дополнительные расходы на организацию конвейерной обработки равными 5 нс.
Если бы не было конвейеризации, то на выполнение одной команды потребовалось
60 + 30 + 40 + 50 + 20 = 200 нс.
Если же используется конвейерная организация, то длительность такта должна быть равна длительности самого медленного этапа обработки с добавлением «накладных» расходов, т.е. 60 + 5 = 65 нс. Таким образом, полученное в результате конвейеризации сокращение времени выполнения команды составит 200/65»3,1 раза.
Заметим, что время выполнения конвейером одной команды составляет 5 × 65 = 325 нс. Эта величина существенно больше 200 нс — времени выполнения команды без конвейеризации. Но одновременное выполнение сразу пяти команд дает среднее время завершения одной команды 65 нс.
Процессор Pentium имеет две кэш-памяти первого уровня (они расположены внутри процессора). Как известно, кэширование увеличивает производительность процессора за счет уменьшения числа случаев ожидания поступления информации из медленной оперативной памяти. Нужные данные и команды берутся процессором из быстрой кэш-памяти (буфера), куда они заносятся заранее.
Наличие одной кэш-памяти в предыдущих конструкциях процессоров приводило к возникновению структурных конфликтов. Две команды, выполнявшиеся конвейером, порой одновременно пытались считать информацию из единственной кэш-памяти. Выполнение раздельного кэширования (буферизации) для команд и данных исключает такие конфликты, давая возможность обеим командам выполняться одновременно.
Развитие вычислительной техники идет непрерывно. Постоянно конструкторы ищут новые пути совершенствования своих изделий. Наиболее ценным ресурсом процессоров является их производительность. По этой причине изобретаются разнообразные приемы повышения производительности процессоров.
Одним из таких приемов является экономия времени за счет предсказания возможных путей выполнения разветвляющегося алгоритма. Это осуществляется с помощью блока предсказания адреса будущего перехода. Идея его работы похожа на идею работы кэш-памяти.
Как известно, существуют линейные, циклические и разветвляющиеся вычислительные процессы. В линейных алгоритмах команды выполняются в порядке их записи в оперативной памяти: последовательно одна за другой. Для таких алгоритмов введенный в процессор блок предсказания адреса перехода не может дать выигрыша.
В разветвляющихся алгоритмах выбор команды определяется результатами проверки условий ветвлений. Если ждать окончания вычислительного процесса в точке ветвления и затем выбирать из ОЗУ нужную команду, то неизбежно появятся потери времени из-за непроизводительного простоя процессора (считывание команды из ОЗУ идет медленно).
Блок предсказания адреса перехода работает на опережение и пытается заблаговременно предсказать адрес перехода, чтобы заранее перенести нужную команду из медленной оперативной памяти в специальный быстрый буфер перехода BTB (Branch Target Buffer).
Когда буфер ВТВ содержит правильное предсказание, переход происходит без задержки. Это напоминает работу кэш-памяти, у которой также бывают промахи. Из-за промахов операнды приходится считывать не из кэш-памяти, а из медленной ОП. Из-за этого происходит потеря времени.
Реализацию идеи предсказания адреса перехода осуществляют в процессоре два независимых буфера предварительной выборки. Они работают совместно с буфером предсказания переходов, причем один из буферов выбирает команды последовательно, а второй — согласно предсказаниям ВТВ.
Процессор Pentium имеет два пятиступенчатых конвейера для выполнения операций в формате с фиксированной точкой. Кроме того, в процессоре имеется конвейер с восьмью ступенями для вычислений в формате с плавающей точкой. Такие вычисления требуются при выполнении математических расчетов, а также для быстрой обработки динамических трехмерных цветных изображений.
Развитие архитектуры процессоров идет по пути постоянного увеличения объема кэш-памяти первого и второго уровней. Исключением стал процессор Pentium 4, у которого объем кэш-памяти неожиданно снизился по сравнению с Pentium III.
Для повышения производительности в новых конструкциях процессоров создают две системные шины, работающие с разными тактовыми частотами. Быстрая шина используется для работы с кэш-памятью второго уровня, а медленная — для традиционного обмена информацией с другими устройствами, например ОЗУ. Наличие двух шин исключает конфликты при обмене информацией процессора с основной памятью и кэш-памятью второго уровня, находящейся за пределами кристалла процессора.
Следующие за Pentium процессоры содержат большое число ступеней в конвейере. Это уменьшает время выполнения каждой операции в отдельной ступени, а значит, позволяет поднять тактовую частоту процессора.
В процессоре Pentium Pro (P6) применен новый подход к порядку выполнения команд, последовательно расположенных в ОЗУ.
Новый подход заключается в выполнении команд в произвольном порядке по мере их готовности (независимо от порядка расположения в ОЗУ). Однако конечный результат формируется всегда в соответствии с исходным порядком команд в программе. Такой порядок выполнения команд называется динамическим или опережающим.
Рассмотрим в качестве примера следующий фрагмент учебной программы, записанной на некотором (вымышленном) машинно-ориентированном языке.
r1 ¬mem Команда 1
r3 ¬r1 + r2 Команда 2
r5 ¬r5 + 1 Команда 3
r6 ¬r6 – r7 Команда 4
Символами r1…r7 обозначены регистры общего назначения (РОН), которые входят в блок регистров процессора.
Символом memобозначена ячейка памяти ОЗУ.
Прокомментируем записанную программу.
Команда 1: записать в РОН r1 содержимое ячейки памяти ОЗУ, адрес которой указан в РОН r4.
Команда 2: записать в РОН r3 результат сложения содержимого регистров r1 и r2.
Команда 3: прибавить к содержимому регистра r5 единицу.
Команда 4: уменьшить содержимое РОН r6 на содержимое регистра r7.
Предположим, что при выполнении команды 1 (загрузка операнда из памяти в регистр общего назначения r1) оказалось, что содержимое ячейки памяти mem отсутствует в кэш-памяти процессора (произошел промах, нужный операнд не был заранее доставлен в буфер из ОЗУ).
При традиционном подходе процессор перейдет к выполнению команд 2, 3, 4 только после того, как данные из ячейки mem основной памяти поступят в процессор (точнее, в регистр r1). Так как считывание будет происходить из медленно работающей оперативной памяти, этот процесс займет достаточно много времени (по меркам процессора). Все время ожидания этого события процессор будет простаивать, не выполняя полезной работы.
В приведенном примере процессор не может выполнить команду 2 до завершения команды 1, так как команда 2 использует результаты выполнения команды 1. В то же время процессор мог бы заранее выполнить команды 3 и 4, которые не зависят от результата выполнения команд 1 и 2.
В подобных случаях процессор Р6 работает иначе.
Процессор Р6 не ждет окончания выполнения команд 1 и 2, а сразу переходит к внеочередному выполнению команд 3 и 4. Результаты опережающего выполнения команд 3 и 4 сохраняются и извлекаются позднее, после выполнения команд 1 и 2.Таким образом, процессор Р6 выполняет команды в соответствии с их готовностью к выполнению, вне зависимости от их первоначального расположения в программе.
Производительность, безусловно, важный показатель работы ЭВМ. Однако не менее важно, чтобы быстрые вычисления происходили при малом числе ошибок.
В процессоре имеется устройство самотестирования, которое автоматически проверяет работоспособность большинства элементов процессора.
Кроме того, выявление сбоев, произошедших внутри процессора, осуществляется с помощью специального формата данных. К каждому операнду добавляется бит четности, в результате чего все циркулирующие внутри процессора числа становятся четными. Появление нечетного числа сигнализирует о случившемся сбое. Наличие нечетного числа — это как бы появление фальшивой банкноты без водяных знаков.
Единицами измерения быстродействия процессоров (и ЭВМ) могут служить:
МИПС (MIPS- Mega Instruction Per Second)- миллион команд (инструкций) над числами с фиксированной точкой за секунду;
МФЛОПС (MFLOPS- Mega Floating Operation Per Second)- миллион операций над числами с плавающей точкой за секунду;
ГФЛОПС (GFLOPS- Giga Floating Operation Per Second)- миллиард операций над числами с плавающей точкой за секунду.
Имеются сообщения о самом быстром в мире компьютере ASCI White (корпорация IBM), быстродействие которого достигает 12,3 ТФЛОПС (триллиона операций).
Одним из важнейших элементов компьютера является процессор, который отвечает за быстродействие ПК. Технический прогресс, который проходил годами привел к тому, что удалось соединить в единое целое миллиарды транзисторов, которые выдают изображение на экран.
Возможности компьютеров очень велики. Однако, не важно, для каких целей будет применяться компьютер, все это является результатом работы процессора. Процессор собирает команды от пользователя и программ, обрабатывает их и пересылает нужным элементам ПК. Процессор можно назвать мозгом компьютера. Это центр управления, который постоянно обрабатывает числа для выполнения задач.
Составляющие
Современный процессор содержит в себе несколько видов оборудования. Исполнительные устройства предназначены для проведения расчетов. Средства контроля требуются для того, чтобы исполнительное оборудование корректно распознавало команды и обрабатывало информацию.
Регистры предназначены для сохранения промежуточных итогов. Почти все команды используют информацию регистров. Шина информации проводит функции объединения CPU с остальным оборудованием ПК. Именно шина перемещает центральному процессору файлы и отображает итоги расчетов.
Кэш процессора требуется для скоростного перехода CPU к часто применяемым командам и файлам. Это скоростная память, размещенная в кристаллике центрального процессора. Также CPU обладает дополнительными модулями, которые требуются для проведения специальных вычислений.
Частота
Скорость работы ПК непосредственно привязана к частоте центрального процессора,
которая измеряется в мегагерцах. Импульсы для CPU и шин создает тактовый генератор, в базе которого лежит резонатор из кварца, который находится на материнке. Главный элемент резонатора представляет из себя кварцевый кристалл, который встроен в оловянную оправу.
Под напряжением в кристаллике появляются электроколебания. Их частота изменяется от формы и размера кристаллика. Затем сигнал передается на генератор, где он переделывается в упорядоченные импульсы одной или большего количества частот, если шины разночастотные.
Тактовая частота предназначена для синхронизации всех элементов ПК. Это означает, что передающее оборудование должно работать синхронно с принимающим. Этого получается добиться, когда все оборудование работает на одном сигнале, который связывает все элементы и позволяет получить единое целое.
Самой маленькой единицей измерения времени для CPU является такт. Любое действие требует минимум одного такта. Обмен информацией с оперативкой выполняется в несколько тактов, куда относятся и такты простоя.
Различные команды нуждаются в своем количестве тактов, поэтому сравнивать ПК только по частоте является не совсем правильным решением. При равных параметрах можно проводить сравнение ПК по частоте. Но это делать нужно очень осторожно, поскольку на это могут влиять различные факторы. В итоге может получиться, что ПК с меньшей частотой будет работать быстрее ПК с высокой частотой.
От чего еще зависит продуктивность CPU
В большинстве случаев это определяется битностью компонентов, которые обрабатываются сразу. Процессор включает в себя три главных элемента, для которых главным показателем является битность. Это шина обмена информацией, встроенные регистры и шина адреса памяти.
Насколько можно поднять частоту?
Скорость работы CPU можно легко поднять увеличением частоты. Однако, не стоит забывать, что чип может перегреваться. С поднятием частоты растет потребление энергии процессором и его нагрев. Кроме того, увеличение частоты может увеличить степень электромагнитных помех. Другими словами, увеличением частоты поднять продуктивность CPU не получиться.
Шина данных
Это подключения, которые предназначены для обмена информацией. Количество сразу поступающих сигналов на шину влияет на объем данных, который может перемещаться по ней за конкретное время. Для лучшего понимания, битность шины можно прировнять к автодороге с полосами. Большее их количество увеличивает пропускную способность.
Разрядность шины
Как говорилось выше, этот параметр можно представить в виде автомагистрали. Если полоса одна, то и пропускная способность будет плохая. Чтобы поднять пропускную способность, необходимо добавить по полосе в обоих направлениях. 16-битная шина может быть представлена в виде магистрали из двух полос, так как за определенное количество времени шина может пропускать два байта данных.
Шина адреса
Этот элемент является набором подключений, по которому перемещается адрес отдела памяти, куда заносится и считывается информация. По принципу шины информации, здесь по каждому соединению проходит один бит адреса, который соответствует одной цифре. Увеличение соединений ведет к доступности большего количества отделов памяти процессору.
Шину адреса можно представить в качестве системы нумерации зданий. Число полос в шине соответствует количеству цифр в номере здания. Если в номере зданий допускается не более 2-х цифр, то количество зданий будет не более ста. Если вставить одно число в номер, то число адресов вырастет до 103. В ПК применяется двоичная система вычисления, поэтому число ячеек памяти равняется 2.
Шина адреса и информации не зависят друг от друга, поэтому разработчики выставляют им битность по своему желанию. Этот показатель — один из самых важных. Получается, что количество битов в шине данных устанавливает объем данных, которую CPU сможет обработать за один такт, а битность шины адреса является размером памяти, который он сможет обработать.
Встроенные регистры
Объем данных, который может обработать центральный процессор за определенное время, является объемом встроенных регистров. Это очень скоростная оперативка процессора, которая может применяться для сохранения информации и промежуточных итогов просчетов. К примеру, CPU сможет сложить числа двух регистров, а ответ перенести в третий.
Почему происходит нагрев процессора
В каждом CPU присутствует множество мелких транзисторов. Их число влияет на тактовую частоту и потребление энергии. Процессоры для лэптопов потребляют немного энергии. Компьютерные процессоры способны потреблять на порядок выше. Вследствие этого вырабатывается большое количество тепла, которое необходимо отвести от CPU. Для этого необходимо использовать специальную систему охлаждения.
Есть несколько методов снизить энергопотребление. Может происходить выключение некоторых модулей, снижение частоты и напряжения при уменьшении нагрузки на процессор. Также можно уменьшить компоненты процессора. Но у тонких элементов есть существенный минус – в них появляются утечки и наводки. При этом вырабатывается тепло.
Кроме того, можно использовать современные материалы. Также есть процессоры, которые функционируют на низком напряжении. При этом изменение мощности напрямую зависит от напряжения. При уменьшении напряжения на 10% уменьшается потребление энергии на 20%.
Каким образом можно увеличить продуктивность процессоров
Чтобы увеличить скорость вычислений, можно применять несколько технологий. Необходимо ускорить доступ к оперативке и памяти. Если CPU будет быстро получать информацию и команды из памяти, тогда меньше времени будет уходить на простой. Получается, что скоростная шина поднимает скорость работы компьютера.
Также необходимо располагать скоростным кэшем. Процессоры хранят итоги своих расчетов в своей памяти. Частота кэш равняется частоте CPU, поэтому она функционирует быстрее оперативки.
В основной своей массе CPU имеют три уровня кэш. Уровень L1 — самый скоростной, но маленький по размеру. L2 и L3 уровни намного больше, но при этом работают со значительно меньшей скоростью, но все равно функционирует быстрее, чем оперативка. Информация и команды быстро передаются из кэша, что максимально загружает процессор, и при этом не нужно простаивать, ожидая данные из оперативки.
Если процессору не хватает своего кэша, тогда он работает с оперативкой ил винчестером, что существенно снижает продуктивность компьютера. Получается так, что большой размер памяти является очень важным параметром.
Конвейерная обработка. Для увеличения скорости проведения команд процессоры создают в них конвейеры, в которых выполняется упорядоченное проведение команд в различных элементах процессора. Достоинством данного метода в том, что с конвейером процессор проводит не одну команду в конкретный временной промежуток, а несколько – насколько рассчитан конвейер.
Длина конвейера влияет на размер тактовой частоты. Но не всегда длинный конвейер является преимуществом, поскольку при появлении ошибки предвыборке или возникновении какой-то ситуации при обработке кода, процессор должен будет сбросить все данные с конвейера и загрузить их снова, что увеличивает время работы.
Кроме того, можно использовать предварительную выборку команд и информации. В этом случае при выполнении какой-либо команды, процессор пытается предугадать следующие команды. Это позволяет быстрее загрузить конвейер, так как нет необходимости выжидать, пока выполняться предыдущие команды. Если же выбранные команды оказались ошибочными, тогда необходимые команды и информацию нужно заново искать, при этом конвейер полностью очищается и загружается снова.
Параллельные вычисления. Современные компьютеры могут располагать несколькими ядрами, что может создавать имитацию нескольких процессоров в операционке. Если приложение для компьютера способно поддерживать параллельные вычисления, тогда они могут выполняться сразу. Но многоядерные процессоры обладают неким минусом – большой расход энергии, что ведет к быстрому и сильному нагреву, а это требует хорошей охладительной системы.
Также важны алгоритмы работы с мультимедийным контентом. В большинстве случаев эти алгоритмы работают по принципу SIMD. Процессоры с такой технологией способны быстро обрабатывать информацию, которая нуждается в многоразовом проведении одних и тех же команд. Под это подходит воспроизведение видео и обработка графики.
Как же он все-таки работает
Стоит рассмотреть, как работает процессор. Ниже будет описание этого процесса, но оно будет упрощено, поскольку будут указаны только функции больших элементов без технических особенностей.
Процессор начинает функционировать с получения команды. Блок выборки, имея представление об адресе расположения команды, пробует отыскать ее в кэше первого уровня. Если она отсутствует, тогда он переходит к кэшу второго уровня, который массивней по размеру, чем первый. Если и здесь она отсутствует, тогда переходит к третьему уровню кэша. Если команды нет и в нем, тогда CPU через шину загружает ее из оперативки, при этом размещая во всех своих кэшах. По такому же принципу загружается информация, требуемая для проведения команды.
Затем команда перемещается с помощью отдела выборки в ракодировщик. Данный узел требуется для разделения больших команд на большее количество поменьше, при этом каждая операция в исполняемых устройствах будет выполняться за один такт. Готовый порядок мелких действий раскодировщик переносит в память декодированных команд.
Далее блоку выборки требуется еще одна команда. Чтобы понять, где взять другую команду и информацию для нее, используется блок предварительной выборки. Проанализировав порядок действий, он способен определить следующую команду.
Затем планировщик отбирает из памяти декодированных команд несколько операций и выясняет их порядок проведения. Если вычисления одних команд не влияют на результаты других, тогда они могут выполняться на параллельных исполнительных инструментах. Подобны модулей в ядре CPU довольно много.
На данном этапе может определиться ошибка предварительной выборки. Например,
выполняемое действие представляет собой команду условного перехода, тогда блок предвыборки, без возможности выяснить значение регистра в процессе выполнения команды, по ошибке предполагает, что переход исполнился и выдать блоку выборке неправильный адрес другой команды.
Аналогичная ситуация случается и с предвыборкой информации. Если в процессе выполнения команды загрузки информации значения регистров с адресом информации будут отличными от момента предвыборки, тогда появится ошибка, так как в кэше оказались неправильные файлы.
После этого происходит сброс конвейера и блок выборки заново запрашивается команда, которая была до получения ошибки. Сброс и еще одна загрузка конвейера ведет к увеличению времени обработки команды. Если при работе происходит много сбоев предвыборки, то производительность процессора существенно падает. Однако, в современных CPU предвыборка работает с эффективностью 95%.
Если на выходе из конвейера команда проведена корректно, тогда полученный результат заноситься в кэш, а потом переносится в оперативку CPU.
Вот, в принципе, и все, что необходимо знать рядовому пользователю о процессорах и принципах его работы.
Javanotes 8.1.3, раздел 1.1 — Цикл выборки и выполнения: машинный язык
Раздел 1.1
Цикл выборки и выполнения: машинный язык
Компьютер — сложная система, состоящая из множества разные компоненты. Но в сердце — или, если хотите, в мозгу — компьютер — это отдельный компонент, который выполняет фактические вычисления. Это Центральный процессор или ЦП. В современном настольного компьютера, ЦП представляет собой единую «микросхему» размером порядка одного квадратного дюйма в размер.Задача ЦП — выполнять программы.
Программа — это просто список однозначных инструкции, предназначенные для механического выполнения компьютером. Компьютер — это построен для выполнения инструкций, написанных на очень простом типе язык, называемый машинным языком. Каждый тип компьютер имеет собственный машинный язык, и компьютер может напрямую выполнять программу только если программа написана на этом языке. (Он может выполнять программы, написанные на другие языки, если они сначала переведены на машинный язык.)
Когда ЦП выполняет программу, эта программа сохраняется в компьютерной основная память (также называемая ОЗУ или произвольный доступ объем памяти). В дополнение к программе в памяти также могут храниться данные, которые используются или обрабатываются программой. Основная память состоит из последовательности локации. Эти места пронумерованы, а порядковый номер места называется его адресом. Адрес позволяет выбрать один конкретная информация из миллионов, хранящихся в памяти.Когда ЦП должен получить доступ к программной инструкции или данным в конкретном местоположение, он отправляет адрес этой информации в качестве сигнала в память; память отвечает, отправляя обратно значение, содержащееся в указанном место нахождения. ЦП также может хранить информацию в памяти, указав информация, которая будет храниться, и адрес места, где она должна быть хранится.
На уровне машинного языка работа ЦП вполне удовлетворительна. прямолинейно (хотя в деталях очень сложно).ЦП выполняет программа, которая хранится как последовательность инструкций машинного языка в главном объем памяти. Это достигается путем многократного чтения или извлечения, инструкция по памяти с последующим выполнением, или выполнение этой инструкции. Этот процесс — получить инструкцию, выполнить ее, получить другую инструкцию, выполнить ее и т. д. навсегда — называется циклом выборки и выполнения. За одним исключением, которое будет рассмотрено в следующем разделе, это все, что делает процессор. (В современном компьютеры.Типичная микросхема обработки в наши дни содержит несколько «ядер» ЦП, что позволяет это для выполнения нескольких инструкций одновременно. И доступ к основной памяти ускорен с помощью «кешей» памяти, к которым можно получить более быстрый доступ, чем к основной памяти, и которые предназначены для хранения данные и инструкции, которые, вероятно, скоро понадобятся ЦП. Однако эти осложнения не меняйте основную операцию.)
ЦП содержит арифметико-логический блок или АЛУ, который является частью процессор, выполняющий такие операции, как сложение и вычитание.Он также содержит небольшое количество регистров, которые представляют собой небольшие блоки памяти, способные удерживая одно число. Типичный ЦП может иметь 16 или 32 регистра общего назначения, которые содержат значения данных, которые немедленно доступны для обработки, и многие машинные языковые инструкции относятся к этим регистрам. Например, там может быть инструкция который берет два числа из двух указанных регистров, складывает эти числа (используя ALU) и сохраняет результат обратно в реестр. И могут быть инструкции по копированию значения данных из из основной памяти в регистр или из регистра в основную память.
ЦП также включает регистры специального назначения. Самым важным из них является счетчик программ или ПК. ЦП использует ПК для отслеживать, где он находится в выполняемой программе. ПК просто хранит адрес в памяти следующей инструкции, которую должен выполнить ЦП. В начале каждого цикла выборки и выполнения ЦП проверяет ПК, чтобы определить, какая инструкция он должен принести. В течение цикла выборки и выполнения число в ПК обновляется, чтобы указать инструкцию, которая должна быть выполнена в следующий цикл.Обычно, но не всегда, это просто инструкция, которая последовательно следует за текущей инструкцией в программе. Некоторый машинный язык инструкции изменяют значение, хранящееся в ПК. Это делает возможным чтобы компьютер «прыгал» из одной точки программы в другую, что необходим для реализации функций программы, известных как циклы и ветвления. которые обсуждаются в разделе 1.4.
Компьютер выполняет программы на машинном языке механически, то есть не понимая их и не думая о них — просто из-за того, как это физически собрано вместе.Это непростая концепция. Компьютер — это машина, построенная из миллионов крошечных переключателей, называемых транзисторами, которые имеют свойство, что они могут быть подключены вместе таким образом, что выход одного переключателя может переключать другой переключатель включен или выключен. Когда компьютер вычисляет, эти переключатели включают или выключают друг друга в шаблон, определяемый как способом их соединения, так и программой что компьютер выполняет.
Команды машинного языка выражаются двоичными числами.Двоичный число состоит всего из двух возможных цифр: нуля и единицы. Каждый ноль или один называется немного. Итак, машина языковая инструкция — это просто последовательность нулей и единиц. Каждый конкретный последовательность кодирует некоторую конкретную инструкцию. Данные, которые компьютер Manages также кодируется как двоичные числа. В современных компьютерах каждый ячейка памяти содержит байт, который представляет собой последовательность из восьми биты. Инструкция на машинном языке или часть данных в целом состоит из нескольких байтов, хранящихся в последовательных ячейках памяти.Например, когда ЦП читает инструкцию из памяти, на самом деле он может читать четыре или восемь байтов из четырех или восьми ячеек памяти; адрес памяти инструкции — это адрес первого из этих байтов.
Компьютер может работать напрямую с двоичными числами, потому что переключатели могут легко представлять такие числа: Поверните включите, чтобы обозначить единицу; выключите его, чтобы отобразить ноль. Машина языковые инструкции хранятся в памяти в виде шаблонов включенных или выключенный.Когда в ЦП загружается инструкция на машинном языке, все это бывает, что определенные переключатели включаются или выключаются по схеме, которая кодирует эту инструкцию. ЦП создан, чтобы реагировать на это шаблон, выполняя кодируемую им инструкцию; он делает это просто из-за как все остальные переключатели в ЦП соединены вместе.
Итак, вы должны понимать, как работают компьютеры: Основная память содержит программы и данные на машинном языке. Они закодированы как двоичные числа.ЦП извлекает инструкции машинного языка из памяти одну за другой и выполняет их. Каждая инструкция заставляет ЦП выполнять небольшую задачу, например, сложение двух чисел или перемещение данных в память или из памяти. Процессор делает все это механически, не задумываясь или понимание того, что он делает — и поэтому программа, которую он выполняет, должна быть идеальный, полный во всех деталях и недвусмысленный, потому что процессор может ничего, кроме как выполнить его точно так, как написано. Вот схематический вид этого понимание компьютера на первом этапе:
Какие шаги выполняет ЦП компьютера для выполнения инструкции? «Заметки онлайн-класса
Последнее обновление: 29 августа 2020 года в 01:30.
ЦП (центральный процессор):
ЦП или центральный процессор в компьютере — это электронная схема, которая выполняет инструкции, данные компьютерной программой. .ЦП компьютера выполняет инструкции, выполняя основные арифметические, логические, управляющие операции и операции ввода-вывода в соответствии с требованиями каждой инструкции. Центральный процессор в компьютере считается мозгом компьютера. Скорость и эффективность компьютера в основном зависят от его центрального процессора.
Рекомендуемое чтение:
ЦП компьютера может выполнять инструкции только на нем. Но поскольку программа может быть очень большой, ЦП загружает программу в основную память (ОЗУ), а затем извлекает инструкции из памяти в регистры ЦП и выполняет их.Скучно с текстом? Вместо этого посмотрите видео.
Этапы выполнения инструкции ЦП:
Шесть этапов участвуют в выполнении инструкции ЦП. Однако не все они требуются для выполнения всех инструкций.- Команда выборки
- Информация о декодировании
- Выполнение операции ALU
- Доступ к памяти
- Обновление файла регистров
- Обновление программного счетчика (ПК)
Шаг 1: Команда выборки
Шаг 2: Команда декодирования
Во время в этом цикле закодированная инструкция, присутствующая в IR (регистре инструкций), интерпретируется декодером.Шаг 3: Выполнение операции ALU
ALU (Арифметико-логическая единица) — это место, где два операнда в инструкции будут работать с данным оператором в инструкциях. Например, если в инструкции было сложить два числа, то здесь сложение произойдет. ALU принимает два значения и выводит одно, результат операции.
Шаг 4: Доступ к памяти
Есть только два типа инструкций, которые обращаются к памяти: ЗАГРУЗИТЬ и СОХРАНИТЬ. LOAD копирует значение из памяти в регистр, а STORE копирует значение регистра в память.Любая другая инструкция пропускает этот шаг.
Шаг 5: Обновление файла регистров
На этом шаге вывод / результат ALU записываются обратно в файл регистра для обновления файла регистра. Результат также может быть из-за ЗАГРУЗКИ из памяти. Некоторые инструкции не содержат результатов для сохранения. Например, инструкции BRANCH и JUMP не имеют результатов для хранения.
Шаг 6: Обновите ПК (программный счетчик)
В конечном итоге, в конце выполнения текущей инструкции нам нужно обновить программный счетчик (ПК) до адреса следующей инструкции, чтобы мы могли перейти вернуться к шагу 1, где ЦП получит инструкцию.Однако счетчик программ может потребоваться установить на другой адрес памяти, чем следующий, если инструкция была BRANCH или JUMP
Free PHP, HTML, CSS, редактор JavaScript — CodeLobster IDE
СвязанныйThe Central Процессорный блок (ЦП)
Центральный процессор (ЦП) — это элемент в компьютере, который содержит электронные компоненты и схемы, необходимые для выполнения программных инструкций и выполнения арифметических и логических операций.До появления микропроцессоров электронные процессоры обычно состояли из ряда дискретных компонентов, а позже и из меньшего числа небольших интегральных схем. Путем интеграции элементов, которые выполняют основные функции ЦП, в одну массовую крупномасштабную интегральную схему, содержащую тысячи или миллионы транзисторов, можно значительно уменьшить как размер, так и стоимость ЦП. Основное назначение ЦП — выполнение программных инструкций. Программные инструкции хранятся в виде двоичного машинного кода на каком-то вторичном запоминающем устройстве, например на жестком диске.Прежде чем программа может быть запущена, она должна быть загружена в рабочую память (RAM) компьютера. Практически все процессоры выполняют свои операции в виде серии дискретных шагов (цикл команд ), которые описаны ниже:
- Fetch — следующая программная инструкция, которая должна быть выполнена, извлекается из определенной области памяти, адрес которой хранится в специальном регистре в ЦП, который называется программным счетчиком .Каждый раз, когда выполняется программная инструкция, счетчик программы увеличивается, так что он указывает на адрес в памяти следующей программной инструкции.
- Декодировать — полученная программная инструкция будет состоять из кода операции , который сообщает процессору, какой тип операции должен быть выполнен, и может дополнительно включать операнд , который состоит либо из постоянного значения, либо из адрес в памяти значения данных или содержимого определенного регистра в процессоре.
- Выполнить — в зависимости от кода операции и операнда (если применимо), содержащихся в инструкции программы, будет выполнена указанная операция.
- Обратная запись — результат указанной операции будет записан обратно в память или в один из внутренних регистров ЦП.
После выполнения этих шагов цикл команд повторяется с использованием следующей программной команды, на которую ссылается счетчик программ.
Большинство процессоров синхронны по своей природе в том смысле, что тактовый сигнал используется для синхронизации различных операций, выполняемых центральным процессором. Тактовый сигнал обычно имеет форму периодической прямоугольной волны. Конструкция ЦП определяет, сколько тактовых циклов требуется для выполнения одной операции или (в случае современных гораздо более быстрых и сложных ЦП), сколько операций может быть выполнено за один тактовый цикл. Принимая во внимание, что инструкции, выполняемые ЦП, будут выполняться за заданное количество тактовых циклов, общая скорость работы ЦП (т.е.е. скорость, с которой он может выполнять программы) будет напрямую связана с количеством тактовых циклов в секунду. Другими словами, при прочих равных условиях, чем выше тактовая частота, тем быстрее будет работать процессор. К сожалению, из-за того, что сам процесс переключения внутри ЦП использует дискретное количество энергии, чем быстрее ЦП работает, тем больше энергии используется и тем больше тепла рассеивается ЦП, что требует разработки более эффективных Системы охлаждения процессора.
Четырехъядерный процессор Intel Core 2 Extreme QX6700
История процессора
В период с 1961 по 1971 год количество транзисторов, которые могли размещаться на одном микрочипе, ежегодно удваивалось, а интегральные схемы становились все более сложными. Хотя ЦП, построенные из ряда дискретных транзисторов и простых интегральных схем, уже существовали, было неизбежно, что рано или поздно функциональность ЦП будет интегрирована в один микрочип или микропроцессор .4-битный чип Intel 4004, впервые изготовленный в 1971 году, содержал примерно 2300 транзисторов и считается первым программируемым микропроцессором общего назначения. Intel последовала за этим с 8-битным микропроцессором 8008, который появился в 1972 году. Этот первый, относительно простой 8-битный микропроцессор не имел большого коммерческого успеха, и в 1974 году был представлен микропроцессор Intel 8080, который имел отдельный 8-битный микропроцессор. разрядная шина данных и 16-разрядная адресная шина, способная адресовать до 64 килобайт памяти (в 1975 году это считалось огромным объемом памяти).
В конце 1974 года Motorola выпустила собственный 8-битный микропроцессор 6800, который обеспечивал аналогичную производительность, но со значительно иной внутренней архитектурой. Другие, более мелкие компании также вышли на арену 8-битных микропроцессоров в это время. В 1975 году компания MOS Technology представила 8-битный микропроцессор 6502, который был основан на Motorola 6800, но был дешевле и быстрее, чем большинство других микропроцессоров на рынке. 6502 до сих пор используется во встроенных системах.
Zilog представил Z80 в 1976 году. Z80 по сути представлял собой расширенный набор Intel 8080 с точки зрения его архитектуры, что означало, что он предлагал преимущества по сравнению с 8080, такие как дополнительные регистры и инструкции, и в то же время мог выполнять все инструкций машинного кода 8080-х. В результате микропроцессоры Z80 использовались во многих персональных компьютерах первого поколения. Успех Z80 также продемонстрировал коммерческие преимущества сохранения совместимости с существующей архитектурой по сравнению с созданием совершенно новой архитектуры, поскольку это означало, что существующее программное обеспечение не нужно было переписывать.Недостатком этого подхода является то, что он препятствует внесению радикальных улучшений в архитектуру, которые могли бы быть сделаны в противном случае.
Во второй половине 1970-х и в начале 1980-х годов появилось несколько так называемых персональных компьютеров , основанных на том или ином из этих микропроцессоров. Первые системы интересовали в основном энтузиастов электроники, поскольку они поставлялись в виде комплектов и требовали сборки.Одним из самых влиятельных из них был Altair 8800, продаваемый MITS. Другие микрокомпьютеры, появившиеся в эпоху 8-битных микрокомпьютеров, включали Apple I (1976) и Apple II (1977), Commodore PET (1977), Commodore VIC-20 (1980) и Sinclair ZX80 (1980). Микропроцессоры Apple и Commodore были основаны на микропроцессоре 6502, в то время как машина Sinclair использовала Zilog Z80. Однако через несколько лет на рынке микрокомпьютеров будут доминировать IBM PC и его клоны, а также Apple Macintosh.Два 16-битных микропроцессора, которые оказались успешными, — это Intel 8086 и Motorola 68000.
Intel основала свой 16-битный микропроцессор 8086 на ядре 8080. Это оказалось хорошим коммерческим решением в свете их последующей доли на рынке микропроцессоров, но привело к появлению микроархитектуры, которая оставляла желать лучшего. 8086 сохранил 16-битную адресную шину 8080, что означало, что он не мог адресовать более 64 килобайт (2 16 = 65 536 байтов) памяти.Адресная шина была расширена до 20 бит за счет добавления 4-битного значения сегмента . Это означало, что в любой момент 8086 мог получить доступ к 64 килобайтам памяти в любом из 16 сегментов, давая ему общее адресное пространство 16 x 64 килобайт (1 мегабайт). Когда 8086 был выбран для персонального компьютера (ПК) IBM, 384 килобайта были зарезервированы для операционной системы и видеопамяти, а для пользовательских приложений оставалось только 640 килобайт.
Motorola не пыталась расширить свой 8-битный процессор 6800 или добиться обратной совместимости.Их 16-разрядный микропроцессор 68000, который был запущен в производство в 1979 году, имел 8 регистров адреса общего назначения и 8 регистров данных общего назначения и был одним из первых микропроцессоров, использовавших микрокодирование для определения набора команд. По иронии судьбы, несмотря на то, что 68000 позиционировался как 16-битный микропроцессор, он имел 32-битную архитектуру. Регистры адреса и данных были 32-битными, поддерживались 32-битные операции. Адреса также были 32-битными, и сегментация не требовалась. У 68000 было всего 24 адресных контакта, поэтому можно было получить прямой доступ только к 2 24 байтам (16 мегабайт) внешней памяти.68000 использовался в Apple Macintosh, а также в компьютерах Atari и Amiga. Хотя все три были высоко оценены с технической точки зрения, Macintosh был очень дорогим по сравнению с IBM PC и впоследствии не смог захватить значительную долю рынка, в то время как компьютеры Atari и Amiga обычно считались игровыми. Позднее Motorola выпустила блок управления памятью (MMU) и процессор с плавающей точкой (FPP) для микропроцессоров серии 68000, реализованные в виде микросхем сопроцессора (идея, впервые представленная Intel), которые были тесно связаны связан с процессором.
На разработку микропроцессорных архитектур с 1981 года в большей степени влияли коммерческие соображения, чем достижения в области технологий. Сделав технологию IBM PC незащищенной, IBM открыла другим производителям возможность создавать копию (или клон ) IBM PC. Сотни производителей начали производить компоненты и периферийные устройства для ПК, что положило начало совершенно новой отрасли. Острая конкуренция на рынке ПК стимулировала инновации и вынудила снизить цены.Последовательная популярность IBM PC и его клонов дала дополнительный эффект в виде создания огромного рынка программного обеспечения для ПК.
Первые ПК IBM работали с тактовой частотой 4,77 МГц. Они были построены не на базе 8086, а на модификации 8086 под названием 8088, которая имела ту же архитектуру, что и 8086, но обменивалась данными с памятью через 8-битную шину, что уменьшало сложность оборудования. Впоследствии Intel объединила математический сопроцессор 8087 с процессорами на базе 8086 и 8088, чтобы повысить скорость выполнения приложений, требующих большого количества операций с плавающей запятой.
В 1982 году Intel представила 80286, который первоначально работал с тактовой частотой 6 МГц (позже она выросла до 20 МГц) и имел 16-битную шину данных. Более эффективно организованный, чем 8086, 80286 увеличил пропускную способность примерно в пять раз. IBM приняла 80286 для своей архитектуры PC AT в 1984 году, обеспечив постоянный успех семейства микропроцессоров 86x. Другие особенности 80286 включали 24 адресные строки, которые позволяли ему получить доступ к 16 мегабайтам памяти, простой встроенный MMU, поддерживающий многозадачность, и доступ к 1 гигабайту виртуальной памяти.80286 также мог работать в режиме реального , в котором он мог запускать программное обеспечение, написанное для 8086, но мог адресовать только 1 мегабайт памяти, или режим , защищенный , в котором могло быть адресовано все пространство памяти 16 мегабайт.
В 1985 году была представлена модель 80386, которая имела 32-разрядные шины адреса и данных, улучшенное управление памятью и дополнительный режим работы ( virtual 8086 ), который упростил запуск программ 8086.В 1989 году Intel представила 80486. Этот процессор внес относительно немного архитектурных изменений, но был первым процессором Intel, который включал встроенный математический сопроцессор. Intel Pentium последовал в 1993 году. Intel выбрала имя Pentium (вместо 80586), потому что номер не может быть запатентован. Первоначальная тактовая частота 60 МГц выросла до 166 МГц в более поздних версиях. Pentium был архитектурно похож на 32-битный 80486, но имел 64-битную шину данных и немного расширенный набор инструкций.Производительность была повышена за счет параллельной обработки и 16-килобайтной кэш-памяти (разделенной на разделы кода и данных).
Микропроцессоры Intel были клонированы другими производителями полупроводников. Многие из клонов обеспечивают аналогичный уровень производительности с оригиналом по значительно более низкой цене. Например, NextGen Nx586 предлагал производительность, сравнимую с Pentium, работающим на частоте 90 МГц. К 1999 году некоторые конкуренты Intel пытались улучшить процессоры Intel, а не просто производить более дешевые, функционально эквивалентные копии.Здесь стоит упомянуть PowerPC, который стал результатом сотрудничества IBM, Motorola и Apple. IBM предоставила архитектуру, Motorola произвела чип, а Apple использовала его в своих персональных компьютерах. IBM работала над своей собственной технологией RISC с 1975 года и имела некоторый успех, и получившаяся в результате архитектура POWER, разработанная для использования в их рабочих станциях серии RS / 6000, включала функции как RISC, так и CISC. Инженеры IBM, Motorola и Apple разработали технологию POWER для производства микропроцессоров семейства PowerPC.Микропроцессор PowerPC использовался в большинстве компьютеров Apple Macintosh до 2006 года, а сегодня широко используется в автомобильных приложениях.
IBM Power PC
Сегодняшние микропроцессоры примерно в 10 000 раз быстрее, чем микропроцессоры первого поколения, в то время как компьютерные системы на базе микропроцессоров теперь в реальном выражении до 50 раз дешевле своих ранних предшественников.Это означает колоссальное улучшение соотношения цены и качества за последние тридцать лет или около того.
Микропроцессорная архитектура
Архитектура микропроцессора описывает организацию и функциональность компонентов и схем, составляющих аппаратное обеспечение микропроцессора. Особенности архитектурного дизайна процессора будут влиять на его стоимость, производительность и энергопотребление.Физическая архитектура часто представлена в виде блок-схемы, которая описывает функциональные области процессора и взаимосвязи между ними, включая количество и тип исполнительного блока, кэш-памяти и интерфейс шины.
Исполнительные блоки включают в себя арифметические и логические блоки (ALU) и блоки с плавающей запятой (FPU), которые выполняют математические и логические операции процессора. Включение встроенной кэш-памяти стало важным фактором повышения скорости, с которой процессор может выполнять операции, поскольку одним из ограничивающих факторов с точки зрения производительности является время, необходимое для выборки программных инструкций и данных из основной памяти. .Кэш действует как промежуточное хранилище для часто используемых инструкций и данных, и к нему можно получить доступ гораздо быстрее, чем к ОЗУ. По мере развития процессорной технологии размер встроенной кэш-памяти увеличился с нескольких килобайт до нескольких сотен килобайт и продолжает увеличиваться как по размеру, так и по сложности.
Блоки предсказания переходов теперь являются функцией многих микропроцессоров. Цель предсказания ветвлений — попытаться предсказать результат условной операции, чтобы определить, за какой ветвью программы будет следовать.Это позволяет извлекать программные инструкции, не дожидаясь результата условной операции, ускоряя выполнение программы. В случае сложных операций, включающих несколько шагов, некоторые из этих программных инструкций также могут выполняться, чтобы еще больше ускорить процесс. Это известно как спекулятивная казнь . Суперскалярная архитектура допускает некоторую степень параллелизма за счет дублирования исполнительных блоков, таких как ALU и FPU. Если задержки в обработке возникают из-за необходимости дождаться результата конкретной операции, последующие инструкции, готовые к выполнению, могут выполняться не по порядку, а результаты сохраняются до тех пор, пока они не потребуются.Это известно как исполнение вне очереди . Последние достижения в области полупроводниковой технологии позволили еще больше уменьшить размер транзисторов, что позволило реализовать несколько процессоров на одном кристалле. Эти многоядерные процессоры теперь появляются в настольных персональных компьютерах.
Блок-схема архитектуры Intel Pentium 4
CISC против RISC
CISC означает Компьютер со сложным набором команд , а RISC — Компьютер с сокращенным набором команд .В микропроцессоре CISC одна команда машинного кода может выполнять ряд низкоуровневых операций. В результате высокая плотность кода означает, что программы занимают меньше места в памяти. Это важное соображение, когда доступен только относительно небольшой объем памяти. Кроме того, возможность выполнять несколько операций с помощью одной инструкции означает, что для данной программы необходимо извлекать из памяти меньше инструкций, а программисты работают более продуктивно, поскольку им нужно писать меньше кода.
По мере того как в наборы команд микропроцессора CISC добавлялось все больше и больше функций, количество доступных команд увеличивалось. Однако стало очевидно, что большинство операций, выполняемых программой, может быть выполнено с использованием относительно небольшого подмножества общего набора инструкций, и что некоторые из более сложных инструкций использовались редко, если вообще использовались. Более того, многие сложные инструкции можно было бы выполнять так же эффективно (если не более), используя ряд гораздо более простых инструкций.Микропроцессор, который реализует относительно небольшое количество инструкций, имеет тенденцию работать быстрее, потому что отдельные инструкции требуют меньше времени для декодирования, а микрокод, реализующий их, менее сложен.
Помимо работы IBM над технологией RISC, о которой в то время не было широко известно, Калифорнийский университет в Беркли и Стэнфордский университет работали над проектами RISC, спонсируемыми DARPA ( Defense Advanced Research Projects Agency ) в рамках своей VLSI ( Very Крупномасштабная интеграция ).Проект RISC Беркли сосредоточен на использовании конвейерной обработки и окон регистров .
Каждая программная инструкция должна выполняться в несколько отдельных шагов. Типичной последовательностью может быть выборка инструкции, ее декодирование, выборка операнда, необходимого инструкции, выполнение инструкции и, наконец, запись результата в память. Для каждой операции обычно требуется один тактовый цикл. Принцип конвейерной обработки заключается в том, что после получения первой инструкции следующая инструкция может быть выбрана в течение того же тактового цикла, который использовался для декодирования первой инструкции.Таким образом, ряд инструкций может находиться «в конвейере» в любой момент времени. Таким образом, количество тактовых циклов, необходимых для выполнения одной инструкции, может быть уменьшено, улучшая производительность. Эту идею можно реализовать еще дальше, включив в один и тот же процессор дополнительные исполнительные блоки, чтобы можно было одновременно выбирать несколько инструкций. Этот тип архитектуры процессора известен как суперскалярный .
Процессоры без RISC имеют относительно небольшое количество регистров.Поскольку регистры, по сути, являются самой быстрой формой памяти, имеет смысл хранить переменные, необходимые для процедуры, в одном или нескольких регистрах. К сожалению, небольшое количество доступных регистров означает, что все активные процессы соревнуются за одни и те же регистры. Каждый раз, когда активный процесс должен отказаться от управления процессором, содержимое любых регистров, используемых этим процессом, должно сохраняться в памяти и восстанавливаться, когда процесс восстанавливает контроль над процессором.
Идея технологии RISC Беркли заключалась в том, чтобы предоставить гораздо большее количество регистров (например,грамм. 64), но ограничьте каждый процесс только 8 регистрами. Таким образом, каждой процедуре будет назначено свое собственное окно (набор из 8 регистров), и до восьми процедур может быть выделено окно одновременно. Эта схема значительно снизила частоту, с которой данные должны были перемещаться вперед и назад между регистрами ЦП и основной памятью (или кэш-памятью), позволяя процессорам RISC значительно превосходить существующие процессоры без RISC.
В микропроцессоре Berkeley RISC-II было всего 40 760 транзисторов — менее половины от числа аналогичных процессоров без RISC, и всего 39 инструкций в его наборе команд.Уменьшение количества транзисторов имело два преимущества. Это уменьшило количество энергии, потребляемой операциями переключения, и, следовательно, упростило решение проблемы рассеивания тепла, а оставшееся означало, что было доступное пространство для включения большего количества регистров. Уменьшение количества инструкций вместе с упрощенным и единообразным форматом инструкций также означало, что операции декодирования могли выполняться более эффективно. Большинство современных процессоров RISC являются копиями дизайна RISC-II, который использовался Sun Microsystems для разработки своей рабочей станции SPARC ( Scalable Processor ARChitecture ), которая доминировала на рынке рабочих станций в 1990-х годах.
Производительность любого микропроцессора с точки зрения его скорости работы зависит от соотношения между количеством инструкций, которые должны быть выполнены для достижения конкретной задачи, и количеством инструкций, которые могут быть выполнены в каждом тактовом цикле. Сложные инструкции, характерные для процессоров CISC, дают уменьшенное количество инструкций в целом за счет большего количества циклов на инструкцию. Процессоры RISC используют упрощенные инструкции, уменьшая количество тактов, требуемых для каждой инструкции, за счет увеличения общего числа инструкций.
Одним из недостатков RISC было то, что ему требовалось гораздо большее количество регистров ЦП, что было самым дорогостоящим видом памяти для реализации. Другой недостаток заключался в том, что удаление сложных инструкций означало, что компилятору нужно было проделать больше работы, и в результате низкая плотность кода означала, что программы, написанные для процессоров RISC, требовали больше ОЗУ. С другой стороны, стоимость оперативной памяти резко снизилась, а технология компиляторов стала более сложной.
Однако, несмотря на очевидные преимущества RISC, на рынке ПК по-прежнему доминируют процессоры x86. Основная причина этого в том, что Intel и другие крупные производители процессоров x86 смогли вложить огромные деньги в улучшение конструкции процессоров x86. Кроме того, различие между процессорами RISC и не-RISC стало гораздо менее четко определенным, поскольку процессоры RISC стали более сложными, и многие из функций, типичных для процессоров RISC, нашли свое место в современных процессорах x86, таких как Intel® Core ™ 2 и AMD K8.Эти архитектуры x86 так же быстры (если не быстрее), как самые быстрые истинные однокристальные решения RISC на рынке.
CST-101 || Блок1 || Блок 1 || Информационная система
ИНСТРУКЦИЯ ИСПОЛНЕНИЕ
Как обсуждалось ранее что основная функция, выполняемая компьютером, — это выполнение программа. Программа, которая должна быть выполнена, представляет собой набор инструкций. которые хранятся в памяти.Центральный процессор (ЦП) выполняет инструкции программы для выполнения задачи.
Основная ответственность за выполнение инструкции лежит на ЦП. Выполнение инструкции происходит в регистрах процессора. Позволь нам, сначала обсудите несколько типичных регистров, некоторые из которых общедоступны в машинах.
Это следующие регистры:
Регистр адреса памяти (MAR): определяет адрес ячейки памяти. из каких данных или инструкции должен быть получен доступ (для операции чтения) или в котором данные должны быть сохранены (для операции записи).
Программный счетчик (ПК): отслеживает инструкцию, которая должна будет выполняться следующим, после выполнения текущей инструкции.
Регистр инструкций (IR): здесь инструкции загружаются до их исполнение.
Простейшей моделью обработки инструкций может быть двухэтапный процесс. ЦП считывает (выбирает) инструкции (коды) из памяти по адресу время, и выполняет или выполняет операцию, указанную этим.Инструкция выборка включает в себя чтение инструкции из области памяти в Регистр ЦП. Выполнение этой инструкции может включать несколько операции в зависимости от характера инструкции.
Обработка, необходимая для одной инструкции (выборка и выполнение) называется циклом команд. Цикл обучения состоит из цикл выборки и цикл выполнения. Выполнение программы прекращается если подача электроэнергии прекращена или возникла неисправность возникает ошибка, или по самой программе.
Для цикла выборки в типичном ЦП используется программный счетчик. Счетчик команд отслеживает инструкцию, которая должна быть получена следующей. Как обычно следующая команда в последовательности выбирается следующей по мере выполнения программы в последовательности.
Выбранная инструкция имеет форму двоичного кода и загружается. в регистр команд (IR) в ЦП. ЦП интерпретирует инструкцию и выполните необходимое действие.В общем, эти действия могут можно разделить на следующие категории:
· Передача данных:
Из ЦП в память или из памяти в ЦП, или
От ЦП к вводу-выводу или от ввода-вывода к ЦП.
· Обработка данных:
ЦП может выполнять логические или арифметические операции над данными.
· Контроль последовательности:
Это действие может потребовать изменения последовательности выполнения. Например,
инструкция из ячейки 100 при исполнении может указывать, что
следующая инструкция должна быть получена из ячейки 200.По исполнению
такая инструкция Программный счетчик, который имел значение местоположения
101 (следующая инструкция, которую нужно выбрать в случае, если слово памяти
равный размеру регистра) будет изменен, чтобы содержать значение местоположения
200. Выполнение инструкции может включать любую комбинацию этих
действия.
————————————————— ——————————
Исходные определения :: Операционные системы 2018
ЦП
Центральный процессор (ЦП) — это электронная схема в компьютере. который выполняет инструкции компьютерной программы, выполняя основные арифметические, логические, управляющие операции и операции ввода / вывода (I / O), указанные в инструкции.
Регистр
Регистр процессора — это быстро доступное место, доступное для компьютера центральный процессор (ЦП). Регистры обычно состоят из небольшого количества быстрое хранение. ЦП имеет небольшое количество регистров.
Память
Память относится к компьютерным аппаратным интегральным схемам, которые хранят информация для немедленного использования в компьютере; это синоним термина «Первичное хранилище». Память намного медленнее, чем регистр ЦП, но намного больше по размеру.
Компьютерная система
Типичная компьютерная система состоит из ЦП, памяти и внешних устройств, таких как жесткие диски (диски), клавиатура, экраны, мышь и принтеры. ЦП и контроллеры устройств могут работать параллельно, соревнуясь за циклы памяти. К обеспечить упорядоченный доступ к разделяемой памяти, предусмотрен контроллер памяти функция которого — синхронизировать доступ к памяти.
Ввод / вывод (I / O)
В вычислениях ввод / вывод или ввод / вывод (или, неофициально, io или ввод-вывод) — это коммуникация. между системой обработки информации, такой как компьютер, и внешним мир, возможно, человек или другая система обработки информации.Входы — это сигналы или данные, полученные системой, и выходы — это сигналы или данные, отправленные от него. Этот термин также может использоваться как часть действия; «выполнить ввод / вывод» означает выполнить операцию ввода или вывода.
Для наших целей любая передача информации между ЦП / памятью и любым из внешние устройства считаются вводом-выводом.
Обычно операции ввода-вывода не используют ЦП, а выполняются внешним устройств.
Операционная система
Операционная система (ОС) — это системное программное обеспечение, которое управляет компьютерным оборудованием и ресурсы программного обеспечения и предоставляет общие услуги для компьютерных программ.ОС управляет оборудованием и координирует его использование различными приложениями. программы для различного пользователя.
Программа, исполняемый файл и процесс
Чтобы выполнить программу, операционная система должна сначала создать процесс и заставить процесс выполнять программу.
- Программа
- Набор инструкций в удобочитаемом формате. Пассивная сущность хранится на вторичном хранилище.
- Исполняемый файл
- Скомпилированная форма программы, включающая машинные инструкции и статические данные что компьютер может загружать и выполнять.Пассивный объект, хранящийся на вторичном место хранения.
- Процесс
- Программа загружена в память и выполняется или ожидает. Обычно процесс выполняется в течение короткого времени, прежде чем либо завершится, либо ему потребуется выполнить ввод / вывод (ожидающий). Процесс является активной сущностью и требует таких ресурсов, как время ЦП, память и т. д. для выполнения.
Контекст ЦП (состояние ЦП)
В любой момент времени значения всех регистров ЦП определяют Контекст ЦП. Иногда состояние ЦП используется вместо контекста ЦП.
В более общем смысле контекст задачи — это минимальный набор данных, используемых задачей (который может быть процессом или потоком), который необходимо сохранить, чтобы разрешить задачу прервано, а затем продолжено с той же точки.
Ядро
Ядро — это компьютерная программа, являющаяся ядром операционной системы компьютера. система, с полным контролем над всем в системе.
Работа в двойном режиме
Для защиты операционной системы от пользовательских процессов используются два режима. предоставляется аппаратным обеспечением: пользовательский режим и режим ядра .
Работа в двойном режиме накладывает ограничения на тип и объем операций, которые может выполняться центральным процессором. Такой дизайн позволяет ядру операционной системы для выполнения с большим количеством привилегий, чем процессы пользовательского приложения.
Синхронные и асинхронные события
Синхронность означает происходящее, существующее или возникающее в одно и то же время. Асинхронный просто означает «несинхронный».
Если событие происходит в одной и той же инструкции каждый раз, когда программа выполняется с одинаковые данные и распределение памяти, событие синхронное.Синхронное событие напрямую связана с инструкцией, выполняемой в данный момент процессором. На с другой стороны, асинхронное событие не имеет прямого отношения к инструкции в настоящее время выполняется ЦП.
Исключения и прерывания
Прерывания и исключения используются для уведомления ЦП о событиях, которые требуют немедленное внимание во время выполнения программы.
Исключения и прерывания — это события, которые изменяют нормальную последовательность инструкции, выполняемые процессором.Такие события соответствуют электрическому сигналы, генерируемые аппаратными схемами как внутри, так и вне микросхемы ЦП.
Исключения внутренние и синхронные
- Исключения используются для обработки внутренних ошибок программы.
- Переполнение, деление на ноль и неверный адрес данных примеры внутренних ошибок в программе.
- Другое название исключения — ловушка. Ловушка (или исключение) — это программно сгенерированное прерывание.
- Исключения производятся Блок управления ЦП при выполнении инструкций и считается синхронны, потому что блок управления выдает их только после прекращения выполнение инструкции.
Прерывания внешние и асинхронные
- Прерывания используются для уведомления ЦП о внешних событиях.
- Прерывания генерируются аппаратными устройствами вне ЦП в произвольные моменты времени по отношению к тактовым сигналам ЦП и являются поэтому считается асинхронным.
- Нажатие клавиш на клавиатуре может произойти в любое время. Даже если программа запускается несколько раз с те же входные данные, время нажатия клавиш будет скорее всего разнятся.
- Запросы на чтение и запись на диск аналогичны ключу прессы. Контроллер диска является внешним по отношению к исполняющемуся процесс и время операции с диском могут варьироваться, даже если одна и та же программа выполняется несколькими раз.
Обработчик исключений и прерываний
Когда возникает исключение или прерывание, выполнение переходит из пользовательского режима в режим ядра, в котором обрабатывается исключение или прерывание. Когда исключение или прерывание обработано, выполнение возобновляется в пользовательском пространстве.
Системный вызов
Пользовательская программа запрашивает обслуживание у операционной системы с помощью системных вызовов. Системные вызовы реализуются с использованием специального исключения системного вызова. Другое имя за исключением ловушки.
Центральный процессор (ЦП): его компоненты и функции
Унаследованные от более ранних разработок, такие как разностный двигатель Бэббиджа и системы перфокарт мэйнфреймов 1970-х годов, оказывают значительное влияние на сегодняшние компьютерные системы.В моей первой статье из этой исторической серии «История компьютеров и современные компьютеры для системных администраторов» я обсуждал несколько предшественников современного компьютера и перечислял характеристики, которые определяют то, что мы сегодня называем компьютером.
В этой статье я обсуждаю центральный процессор (ЦП), включая его компоненты и функции. Многие темы относятся к первой статье, поэтому обязательно прочтите ее, если вы еще этого не сделали.
Центральный процессор (ЦП)
ЦП в современных компьютерах — это воплощение «мельницы» в разностной машине Бэббиджа.Термин центральный процессор возник еще в глубине компьютерного времени, когда один массивный шкаф содержал схемы, необходимые для интерпретации программных команд машинного уровня и выполнения операций с предоставленными данными. Центральный процессор также выполнил всю обработку любых подключенных периферийных устройств. Периферийные устройства включали принтеры, устройства чтения карт и ранние устройства хранения, такие как барабанные и дисковые накопители. Современные периферийные устройства сами по себе обладают значительной вычислительной мощностью и разгружают некоторые задачи обработки с центрального процессора.Это освобождает ЦП от задач ввода / вывода, так что его мощность применяется к основной текущей задаче.
Ранние компьютеры имели только один ЦП и могли выполнять только одну задачу за раз.
Сегодня мы сохраняем термин ЦП, но теперь он относится к процессору , пакет на типичной материнской плате. На рисунке 1 показан стандартный пакет процессора Intel.
Рис. 1. Процессор Intel Core i5 (Джуд МакКрэни через Wikimedia Commons, CC BY-SA 4.0).
Здесь действительно не на что посмотреть, кроме самого процессора.Пакет процессора представляет собой микросхему, содержащую процессор (ы), запечатанный внутри металлического контейнера и установленный на небольшой печатной плате (ПК). Пакет просто вставляется в разъем процессора на материнской плате и фиксируется блокирующим рычагом. К процессору присоединяется кулер ЦП. Существует несколько различных физических разъемов с определенным количеством контактов, поэтому выбор правильной упаковки, подходящей для разъема на материнской плате, имеет важное значение, если вы собираете свои собственные компьютеры.
Как работает ЦП
Рассмотрим процессор подробнее.На рисунке 2 представлена концептуальная схема гипотетического ЦП, чтобы вам было легче визуализировать компоненты. ОЗУ и системные часы затенены, потому что они не являются частью ЦП и показаны только для наглядности. Кроме того, не предусмотрены никакие связи между часами ЦП и блоком управления с компонентами ЦП. Достаточно сказать, что сигналы от часов и блока управления являются неотъемлемой частью всех остальных компонентов.
Рисунок 2: Упрощенная концептуальная схема типичного ЦП.
Этот дизайн не выглядит особенно простым, но на самом деле все еще сложнее. Эта цифра достаточна для наших целей, но не слишком сложна.
Арифметико-логический блок
Арифметико-логический блок (ALU) выполняет арифметические и логические функции, которые являются работой компьютера. Регистры A, и B, , , содержат входные данные, а накопитель получает результат операции.Регистр команд содержит команду, которую ALU должен выполнить.
Например, при сложении двух чисел одно число помещается в регистр A, а другое — в регистр B. ALU выполняет сложение и помещает результат в аккумулятор. Если операция является логической, сравниваемые данные помещаются во входные регистры . Результат сравнения, 1 или 0, помещается в аккумулятор. Независимо от того, является ли это логической или арифметической операцией, содержимое аккумулятора затем помещается в место кэша, зарезервированное программой для результата.
ALU выполняет еще один тип операции. Результатом является адрес и в памяти, который используется для вычисления нового местоположения в памяти, чтобы начать загрузку инструкций. Результат помещается в регистр указателя команд .
Регистр команд и указатель
Указатель команды указывает место в памяти, содержащее следующую команду, которая должна быть выполнена ЦП. Когда ЦП завершает выполнение текущей инструкции, следующая инструкция загружается в регистр инструкций из области памяти, на которую указывает указатель инструкции.
После загрузки инструкции в регистр инструкций указатель регистра инструкций увеличивается на один адрес инструкции. Приращение позволяет ему быть готовым к перемещению следующей инструкции в регистр инструкций.
Кэш
ЦП никогда напрямую не обращается к ОЗУ. Современные процессоры имеют один или несколько уровней кеш-памяти . Способность ЦП выполнять вычисления намного быстрее, чем способность ОЗУ передавать данные в ЦП. Причины этого выходят за рамки данной статьи, но я рассмотрю их далее в следующей статье.
Кэш-память быстрее системной ОЗУ и ближе к ЦП, поскольку находится на микросхеме процессора. Кэш обеспечивает хранение данных и инструкции для предотвращения ожидания ЦП данных, которые будут извлечены из ОЗУ. Когда ЦП нужны данные — а программные инструкции также считаются данными — кэш определяет, находятся ли уже данные в постоянном месте, и предоставляет их ЦП.
Если запрошенных данных нет в кэше, они извлекаются из ОЗУ и используют алгоритмы прогнозирования для перемещения большего количества данных из ОЗУ в кеш.Контроллер кеша анализирует запрошенные данные и пытается предсказать, какие дополнительные данные потребуются из ОЗУ. Он загружает ожидаемые данные в кеш. Сохраняя некоторые данные ближе к ЦП в кэше, который быстрее ОЗУ, ЦП может оставаться занятым и не тратить циклы на ожидание данных.
Наш простой ЦП имеет три уровня кеш-памяти. Уровни 2 и 3 предназначены для прогнозирования того, какие данные и программные инструкции потребуются дальше, перемещения этих данных из ОЗУ и перемещения их ближе к ЦП, чтобы они были готовы, когда это необходимо.Эти размеры кэша обычно варьируются от 1 МБ до 32 МБ, в зависимости от скорости и предполагаемого использования процессора.
Кэш-память уровня 1 находится ближе всего к ЦП. В нашем процессоре есть два типа кеша L1. L1i — это кэш команд, а L1d — это кеш данных. Размер кэша уровня 1 обычно составляет от 64 КБ до 512 КБ.
Блок управления памятью
Блок управления памятью (MMU) управляет потоком данных между основной памятью (RAM) и ЦП.Он также обеспечивает защиту памяти, необходимую в многозадачных средах, и преобразование адресов виртуальной памяти в физические адреса.
Тактовая частота ЦП и блок управления
Все компоненты ЦП должны быть синхронизированы для бесперебойной работы. Блок управления , выполняет эту функцию со скоростью, определяемой тактовой частотой , и отвечает за управление операциями других блоков с использованием сигналов синхронизации, которые распространяются по всему ЦП.
Оперативная память (RAM)
Хотя оперативная память или оперативная память показана на этой и следующей диаграммах, на самом деле она не является частью ЦП. Его функция — хранить программы и данные, чтобы они были готовы к использованию, когда они понадобятся ЦП.
Как это работает
ЦПработают в цикле, который управляется блоком управления и синхронизируется часами ЦП. Этот цикл называется командным циклом ЦП , и он состоит из серии компонентов выборки / декодирования / выполнения.Команда, которая может содержать статические данные или указатели на переменные данные, выбирается и помещается в регистр команд. Инструкция декодируется, и любые данные помещаются в регистры данных A и B. Команда выполняется с использованием регистров A и B, а результат помещается в аккумулятор. Затем ЦП увеличивает значение указателя инструкции на длину предыдущего и начинает заново.
Базовый цикл команд ЦП выглядит так.
Рисунок 3: Основной цикл команд ЦП.
Жажда скорости
Хотя базовый ЦП работает хорошо, ЦП, работающие в этом простом цикле, можно использовать еще более эффективно. Существует несколько стратегий повышения производительности ЦП, и здесь мы рассмотрим две из них.
Нагнетание цикла команд
Одной из проблем, с которыми столкнулись первые разработчики ЦП, была трата времени на различные компоненты ЦП. Одной из первых стратегий повышения производительности ЦП было перекрытия частей цикла команд ЦП для более полного использования различных частей ЦП.
Например, когда текущая инструкция декодирована, следующая выбирается и помещается в регистр инструкций. Как только это произошло, указатель инструкции обновляется адресом памяти следующей инструкции. Использование перекрывающихся командных циклов показано на рисунке 4.
Рисунок 4: Цикл команд ЦП с перекрытием.
Эта конструкция выглядит красиво и гладко, но такие факторы, как ожидание ввода-вывода, могут нарушить поток. Отсутствие нужных данных или инструкций в кэше требует, чтобы MMU нашел нужные и переместил их в ЦП, а это может занять некоторое время.Некоторые инструкции также требуют больше циклов ЦП, чем другие, что мешает плавному перекрытию.
Тем не менее, это мощная стратегия повышения производительности процессора.
Гиперпоточность
Еще одна стратегия повышения производительности ЦП — это гиперпоточность . Гиперпоточность заставляет одно ядро процессора работать как два процессора, предоставляя два потока данных и инструкций. Добавление второго указателя команд и регистра команд к нашему гипотетическому процессору, как показано на рисунке 5, заставляет его работать как два процессора, выполняя два отдельных потока команд в течение каждого цикла команд.Кроме того, когда один поток выполнения останавливается в ожидании данных (опять же, инструкции также являются данными), второй поток выполнения продолжает обработку. Каждое ядро, реализующее гиперпоточность, эквивалентно двум процессорам по способности обрабатывать инструкции.
Рисунок 5: Концептуальная схема ЦП с гиперпоточностью.
Помните, что это очень упрощенная схема и объяснение нашего гипотетического процессора. Реальность намного сложнее.
Дополнительная терминология
Я встречал много разной терминологии, связанной с процессорами.Чтобы определить терминологию более подробно, давайте посмотрим на сам ЦП с помощью команды lscpu
.
[root @ hornet ~] # lscpu
Архитектура: x86_64
Операционные режимы ЦП: 32-разрядный, 64-разрядный
Порядок байтов: Little Endian
Размеры адресов: 39 бит физических, 48 виртуальных
ЦП: 12
Он-лайн список ЦП: 0-11
Потоков на ядро: 2
Ядра на сокет: 6
Розетка (и): 1
NUMA узлов: 1
ID поставщика: GenuineIntel
Семейство процессоров: 6
Модель: 158
Название модели: Intel (R) Core (TM) i7-8700 CPU @ 3.20 ГГц
Шаг: 10
Процессор МГц: 4300.003
Макс. Частота процессора: 4600.0000
CPU min MHz: 800.0000
BogoMIPS: 6399,96
Виртуализация: VT-x
Кэш L1d: 192 Кбайт
Кэш L1i: 192 Кбайт
Кэш L2: 1,5 МБ
Кэш L3: 12 МБ
NUMA node0 ЦП: 0-11
Показанный выше процессор Intel представляет собой корпус, который подключается к единственному разъему на материнской плате.Пакет процессора содержит шесть ядер. Каждое ядро поддерживает гиперпоточность, поэтому каждое может запускать два одновременных потока, всего 12 процессоров.
Мои определения:
- Ядро — Ядро — это наименьшее физическое устройство, способное выполнять задачу обработки. Он содержит один ALU и один или два набора вспомогательных регистров. Второй набор регистров и вспомогательных схем обеспечивает гиперпоточность. Одно или несколько ядер можно объединить в один физический пакет.
- ЦП — логическая аппаратная единица, способная обрабатывать один поток выполнения. Современное использование термина центральный процессор относится к общему количеству потоков, которые пакет процессора может выполнять одновременно. Одноядерный процессор, не поддерживающий гиперпоточность, эквивалентен одному процессору. В этом случае процессор и ядро являются синонимами. Гиперпоточный процессор с одним ядром является функциональным эквивалентом двух ЦП. Процессор с гиперпоточностью с восемью ядрами является функциональным эквивалентом 16 процессоров.
- Пакет — физический компонент, который содержит одно или несколько ядер, как показано на рисунке 1 выше.
- Процессор — 1) Устройство, обрабатывающее программные инструкции для управления данными. 2) Часто используется как синоним пакета.
- Socket — иногда используется как еще один синоним пакета, но это более точно относится к физическому сокету на материнской плате, в который вставлен пакет процессора.
Термины socket , processor и package часто используются как взаимозаменяемые, что может вызвать некоторую путаницу.Как видно из результатов команды lscpu
выше, Intel предоставляет нам свою собственную терминологию, и я считаю ее авторитетным источником. На самом деле мы все используем эти термины по-разному, но пока мы понимаем друг друга в любой момент, это действительно важно.
Обратите внимание, что процессор выше имеет два кэша уровня 1 по 512 КиБ каждый, один для инструкций (L1i) и один для данных (L1d). Кэш уровня 1 находится ближе всего к ЦП, и он ускоряет работу за счет разделения инструкций и данных на этом этапе.Кеши уровня 2 и уровня 3 больше, но инструкции и данные сосуществуют в каждом из них.
Что все это значит?
Хороший вопрос. В те времена, когда появились мэйнфреймы, каждый компьютер имел только один процессор и был неспособен одновременно запускать более одной программы. На мэйнфрейме может выполняться расчет заработной платы, затем учет запасов, выставление счетов клиентам и т. Д., Но одновременно может работать только одно приложение. Каждая программа должна была заканчиваться до того, как системный оператор мог начать следующую.
Некоторые ранние попытки одновременного запуска нескольких программ основывались на простом подходе и были нацелены на лучшее использование одного процессора. Например, были загружены program1 и program2 , и program1 выполнялись до тех пор, пока не были заблокированы в ожидании выполнения ввода-вывода. В этот момент программа2 выполнялась до тех пор, пока не была заблокирована. Такой подход получил название многопроцессорности и помог полностью использовать драгоценное компьютерное время.
Ранние попытки многозадачности включали очень быстрое переключение контекста выполнения одного ЦП между потоками выполнения нескольких задач.Эта практика не является истинной многозадачностью в нашем понимании, потому что в действительности одновременно обрабатывается только один поток выполнения. Это более правильно называется разделением времени.
Современные компьютеры, от умных часов и планшетов до суперкомпьютеров, поддерживают настоящую многозадачность с использованием нескольких процессоров. Несколько процессоров позволяют компьютерам выполнять множество задач одновременно. Каждый ЦП выполняет свои собственные функции одновременно со всеми другими ЦП. Восьмиядерный процессор с гиперпоточностью (т.е.е., 16 ЦП) могут одновременно выполнять 16 задач.
Заключительные мысли
Мы рассмотрели концептуальный и упрощенный ЦП, чтобы немного узнать о структурах. В этой статье я почти не касался функциональности процессора. Вы можете узнать больше, перейдя по встроенным ссылкам на изученные нами темы.
Помните, что схемы и описания в этой статье носят чисто концептуальный характер и не отражают реальный процессор.
В следующей части этой серии я рассмотрю оперативную память и дисковые накопители как различные типы хранилищ и объясню, почему каждый из них необходим современным компьютерам.
[Бесплатный онлайн-курс: технический обзор Red Hat Enterprise Linux. ]
Запуск программы — Инструкции — GCSE Computer Science Revision
Программы — это наборы инструкций. Чтобы ЦП мог выполнить эти инструкции, каждую из них сначала необходимо преобразовать в машинный код — простые двоичные коды, которые активируют части ЦП.
ЦП выполняет только несколько основных функций:
- выполнение математических операций, таких как сложение и вычитание
- перемещение данных из одной ячейки памяти в другую
- принятие решений и переход к новому набору инструкций на основе этих решений
Программное обеспечение, такое как игра или веб-браузер, объединяет эти функции для выполнения более сложных задач.
Основные части ЦП
Арифметико-логический блок (АЛУ)
АЛУ выполняет вычисления и принимает решения на основе данных, отправляемых процессору.
Блок управления (CU)
CU, который также называется контроллером, управляет данными, проходящими через процессор, и управляет синхронизацией операций и инструкциями, отправляемыми процессору и периферийным устройствам. CU предписывает системе выполнять программные инструкции. Он выполняет выборку, декодирование и управление инструкциями.
Регистры
Регистры также называются внутренней памятью или хранилищами памяти немедленного доступа. Регистр — это небольшой объем быстрой временной памяти в процессоре, где ALU или CU могут хранить и изменять значения, необходимые для выполнения инструкций.