
- •Содержание
- •История[править | править исходный текст]
- •Тактовый генератор[править | править исходный текст]
- •Конфликт конвейера[править | править исходный текст]
- •Бесконвейерная архитектура[править | править исходный текст]
- •Преимущества и недостатки[править | править исходный текст]
- •Примеры[править | править исходный текст] Общий конвейер[править | править исходный текст]
- •Пузырёк[править | править исходный текст]
- •Пример 1[править | править исходный текст]
- •Пример 2[править | править исходный текст]
- •Трудности[править | править исходный текст]
- •Технические характеристики процессора
- •Разрядности современных процессоров:
Введение
Центральный процессор (ЦП; также центральное процессорное устройство — ЦПУ; англ. central processing unit, CPU, дословно —центральное обрабатывающее устройство) — электронный блок либоинтегральная схема (микропроцессор), исполняющая машинные инструкции (код программ), главная часть аппаратного обеспечения компьютера или программируемого логического контроллера. Иногда называют микропроцессором или просто процессором.
Изначально термин центральное процессорное устройство описывал специализированный класс логических машин, предназначенных для выполнения сложных компьютерных программ. Вследствие довольно точного соответствия этого назначения функциям существовавших в то время компьютерных процессоров, он естественным образом был перенесён на сами компьютеры. Начало применения термина и его аббревиатуры по отношению к компьютерным системам было положено в1960-е годы. Устройство, архитектура и реализация процессоров с тех пор неоднократно менялись, однако их основные исполняемые функции остались теми же, что и прежде
Главными характеристиками ЦПУ являются: частота, производительность, энергопотребление, нормы литографического процесса, используемого при производстве (для микропроцессоров) и архитектура.
Ключевыми компонентами процессора являются арифметико-логическое устройство (АЛУ), регистры и устройство управления. АЛУ выполнят основные математические и логические операции. Все вычисления производятся в двоичной системе счисления. От устройства управления зависит согласованность работы частей самого процессора и его связь с другими (внешними для него) устройствами. В регистрах временно хранятся текущая команда, исходные, промежуточные и конечные данные (результат вычислений АЛУ). Разрядность всех регистров одинакова.
Кэш данных и команд хранит часто используемые данные и команды. Обращение в кэш происходит намного быстрее, чем в оперативную память, поэтому, чем он больше, тем лучше.
Работа процессора
Работает процессор под управлением программы, находящейся в оперативной памяти.
(Работа процессора сложнее, чем это изображено на схеме выше. Например, данные и команды попадают в кэш не сразу из оперативной памяти, а через блок предварительной выборки, который не изображен на схеме. Также не изображен декодирующий блок, осуществляющий преобразование данных и команд в двоичную форму, только после чего с ними может работать процессор.)
Блок управления помимо прочего отвечает за вызов очередной команды и определение ее типа.
Арифметико-логическое устройство, получив данные и команду, выполняет указанную операцию и записывает результат в один из свободных регистров.
Текущая команда находится в специально для нее отведенном регистре команд. В процессе работы с текущей командой увеличивается значение так называемого счетчика команд, который теперь указывает на следующую команду (если, конечно, не было команды перехода или останова).
Часто команду представляют как структуру, состоящую из записи операции (которую требуется выполнить) и адресов ячеек исходных данных и результата. По адресам указанным в команде берутся данные и помещаются в обычные регистры (в смысле не в регистр команды), получившийся результат тоже сначала оказывается в регистре, а уж потом перемещается по своему адресу, указанному в команде. Характеристики процессора
Тактовая частота процессора на сегодняшний день измеряется в гигагерцах (ГГц), Ранее измерялось в мегагерцах (МГц). 1МГц = 1 миллиону тактов в секунду.
Процессор «общается» с другими устройствами (оперативной памятью) с помощью шин данных, адреса и управления. Разрядность шин всегда кратна 8 (понятно почему, если мы имеем дело с байтами), изменчива в ходе исторического развития компьютерной техники и различна для разных моделей, а также не одинакова для шины данных и адресной шины.
Разрядность шины данных говорит о том, какое количество информации (сколько байт) можно передать за раз (за такт). От разрядности шины адресазависит максимальный объем оперативной памяти, с которым процессор может работать вообще.
На мощность (производительность) процессора влияют не только его тактовая частота и разрядность шины данных, также важное значение имеет объем кэш-памяти.
Назначение процессора
Назначение процессора:
1.Управлять работой ЭВМ по заданной программе.
2.Выполнять операции обработки информации
Другими словами, он является основным компонентом любого компьютера
Микропроцессор (МП) - это сверхбольшая интегральная схема, которая реализует функции процессора ПК. Микропроцессор создается на полупроводниковом кристалле (или нескольких кристаллах) путем применения сложной микроэлектронной технологии. Возможности компьютера как универсального исполнителя по работе с информацией определяются системой команд процессора. Эта система команд представляет собой язык машинных команд (ЯМК). Из команд ЯМК составляют программы управления работой компьютера. Отдельная команда определяет отдельную операцию (действие) компьютера. В ЯМК существуют команды, по которым выполняются арифметические и логические операции, операции управления последовательностью выполнения команд, операции передачи данных из одних устройств памяти в другие и пр.
Типы процессоров
Можно выделить следующие типы 1) Скалярные (SISD Single Instraction Single Datae) обрабатывает один элемент данных за одну инструкцию 2) Векторные (SIMD Single Instraction Midle) обрабатывает несколько данных выполняя над ними одну операцию 3) MISD (Midle instruction single date) несколько вычислительных устройств выполняют различные операции над одним данным 4) MIMD (Midle instruction midle date) несколько вычислительных устройств выполняют различные операции над различными данными (например многопроцессорная система из скалярных процессоров) 5) Конвейер над данными движущимися через конвейер выполняются различные операции на каждом шаге конвейера 6) Систолические матрицы данные обрабатываются в процессорных элементах расположенных в виде массива Каждый из этих "типов" можно разделить еще на подтипы. В чистом виде каждый тип встречается редко, обычно процессор (микроконтроллер) может принадлежать сразу к двум типам (например векторно-конвейерный).
Виды процессоров
По производителям: Intel, AMD, VIA По методу монтажа: слотовые, сокетные, GBA(вместо ножек - шарики) По количеству ядер: одно-, двух-, четырех и т.д. ядерные
1.Слотовые
Слотовые процессоры Pentium II были компромиссным решением, на которое пошли инженеры корпорации Intel. Как только удалось доработать полупровод- никовую технологию производства микропроцессоров, выпуск слотовых процессоров был прекращен, лишь для модернизации серверов выпускалось небольшое количество Pentium III.
На рис. 6.24 показан слот 1, в который допускается устанавливать процессоры Pentium Пи Pentium III. Возможность установки процессора того или иного типа следует уточнить по документации. Для системных плат, где смонтирован слот 1 и сокет 370, однозначно допускается установка процессора Pentium III. Процесс установки слотового процессора продемонстрирован на рис. 6.25. Перед установкой процессора в направляющие найдите ключ (пропущенный контакт) на картридже и сориентируйте с перемычкой в слоте. После вставьте картридж в направляющие слота и аккуратно опустите его до соприкосновения с разъемом. Проверьте совпадение краевого разъема картриджа с вырезом в слоте. Если все правильно, то сильно нажмите на верхний край картриджа, чтобы он полностью вошел в слот.
Рис. 6.25. Установка процессора в слот 1:
а— ориентация картриджа; установка картриджа;
в — правильно установленный процессор Pentium III;
Картридж процессора Pentium II фиксируется в слоте с помощью защелок. Картридж процессора Pentium III в слоте держится только за счет сил трения и механических защелок не имеет. Вариант, когда на системной плате установлены слот 1 и сокет 370, показан на рис. 6.26.
Рис. 6.26. Сокет 370
2.Сокетные
3.GBA
Центральные процессоры - CISC, RISC, MISC, VLIW. Также есть графические процессоры, аналоговые процессоры, процессоры ввода-вывода, математические сопроцессоры и так далее. Однокристальные и многокристальные, одноядерные и многоядерные... Все зависит от того, по какому конспекту сдаешь.
Установка процессора на материнскую карту
Материнскую плату можно устанавливать в корпус только после того, как в нее будут вставлены модули памяти и процессор. Кроме этого в определенных материнских платах могут предусматриваться переключатели, служащие для управления электропитанием и тактовой частотой процессора. Их неправильная установка может привести к выходу из строя процессора. Напряжение, которое необходимо подавать на процессор следует задать в соответствующих настройках BIOS. При малейших сомнениях в правильности выбранного положения переключателей, нужно внимательно изучить документацию к процессору и материнской плате. Итак, установка теплоотвода и процессора на материнскую плату проводится в следующем порядке: Установка процессора
Для примера возьмем материнскую плату на сокете 775 (сокет — место крепленияпроцессора). В отличие от предыдущих моделей, эти процессоры не оснащены «ножками».
На процессорах 775 сокета расположены контактные точки, а «ножки» расположены на самой системной плате.
Для того чтобы установить процессор, выполните следующие действия:
1.Поднимите рычаг гнезда на сокете:
2.Откройте пластину крепления:
3.Удалите защитную крышку сокета:
Материнская плата готова к началу работы по установке процессора.
4.Достаньте процессор из коробки и удалите черную защитную пластину. Держитепроцессор только за края, не касайтесь контактов!
Опустите процессор в сокет материнской платы строго вертикально, не допуская перекоса:
5. Проверьте желтую стрелку в одном из углов процессора и стрелку на сокете — эти стрелки указывают какой стороной процессор нужно помещать в сокет:
Кроме того, с двух сторон процессора размещены выемки, на сокете, в свою очередь находятся выступы — это и есть защита «по ключу».
6. Закройте пластину крепления и опустите рычаг гнезда на место.
Установка процессора от AMD
Процессоры данной фирмы отличаются от вышеописанных наличием «ножек» на самомпроцессоре, следовательно, его установка немного отличается.
Сокет имеет вид:
Как и в случае с платформой Intel, установка проходит также «по ключу». Посмотрите на ваш процессор (сокет 939, сокет AM2), в одном из его углов несколько «ножек» располагаются иначе, чем в остальных.
Это место помечено желтой стрелочкой, эта же стрелочка есть и на сокете материнской платы:
Так же как и при установке процессора от Intel :
- отодвигаем рычаг сокета;
- устанавливаем процессор;
- возвращаем рычаг на прежнее положение.
Как видите все очень просто. Возможно выполнить установку и замену процессора своими руками, без вызова мастера по ремонту.
Замена процессора
Функциональная схема процессора
Процессором называется функциональная часть ЭВМ, предназначенная для непосредственного осуществления процесса преобразования (обработки) информации и управления этим процессом. Другими словами – это совокупность арифметическологического устройства и устройства управления. На рисунке приведена функциональная структура гипотетического процессора.
Рис.
2.2. Структура гипотетического процессора
Регистр адреса Регистр адреса (РА) предназначен для хранения адреса ячейки основной памяти вплоть до завершения операции (считывание или запись) с этой ячейкой.
Указатель стека Указатель стека (УкС) — это регистр, где хранится адрес вершины стека. В реальных вычислительных машинах стек реализуется в виде участка основной памяти обычно расположенного в области наибольших адресов. Заполнение стека происходит в сторону уменьшения адресов, при этом вершина стека — это ячейка, куда была произведена последняя по времени запись. Для хранения адреса такой ячейки и предназначен УкС. При выполнении операции занесения в стек содержимое УкС сначала уменьшается на единицу, после чего используется в качестве адреса, по которому производится запись. Соответствующая ячейка становится новой вершиной стека. Считывание из стека происходит из ячейки, на которую указывает текущий адрес в УкС, после чего содержимое указателя стека увеличивается на единицу. Таким образом, вершина стека опускается, а считанное слово считается удаленным из стека. Хотя физически считанное слово и осталось в ячейке памяти, при следующей записи в стек оно будет заменено новой информацией.
Счетчик команд Счетчик команд (СК) — неотъемлемый элемент процессора любой ЭВМ, построенной в соответствии с фоннеймановским принципом программного управления. Согласно этому принципу соседние команды программы располагаются в ячейках памяти со следующими по порядку адресами и выполняются преимущественно в той же очередности, в какой они размещены в памяти ЭВМ. Таким образом, адрес очередной команды может быть получен путём увеличения адреса ячейки, из которой была считана текущая команда, на длину выполняемой команды, представленную числом занимаемых ею ячеек. Реализацию такого режима и призван обеспечивать счетчик команд — двоичный счетчик, в котором хранится и модифицируется адрес очередной команды программы. Перед началом вычислений в СК заносится адрес ячейки основной памяти, где хранится команда, которая должна быть выполнена первой. В процессе выполнения каждой команды путем увеличения содержимого СК на длину выполняемой команды в счетчике формируется адрес следующей подлежащей выполнению команды. В данном случае любая команда занимает одну ячейку, поэтому содержимое СК увеличивается на единицу. По завершении текущей команды адрес следующей команды программы всегда берется из счетчика команд. Для изменения естественного порядка вычислений (перехода в иную точку программы) достаточно занести в СК адрес точки перехода.
Регистр команды Счетчик команд определяет лишь местоположение команды в памяти, но не содержит информации о том, что это за команда. Чтобы приступить к выполнению команды, ее необходимо извлечь из памяти и разместить в регистре команды (РК). Этот этап носит название выборки команды. Только с момента загрузки команды в РК она становится «видимой» для процессора. В РК команда хранится в течение всего времени ее выполнения.
Регистры общего назначения Регистры общего назначения (РОН), служат для временного хранения операндов и результатов вычислений. Это самый быстрый, но и минимальный по емкости тип памяти, который иногда объединяют понятием сверхоперативное запомина¬ющее устройство — СОЗУ. Как правило, количество регистров невелико, хотя в архитектурах с сокращенным набором команд их число может доходить до не¬скольких десятков.
Индексные регистры Индексные регистры (ИР) служат для формирования адресов операндов при реализации циклических участков программ.
Регистр признака результата Регистр признака результата (РПР) предназначен для фиксации и хранения признака, характеризующего результат последней выполненной арифметической или логической операции. Такие признаки могут информировать о равенстве результата нулю, о знаке результата, о возникновении переноса из старшего разряда, переполнении разрядной сетки и т. д. Содержимое РПР обычно используется устройством управления для реализации условных переходов по результатам операций АЛУ. Под каждый из возможных признаков отводится один разряд РПР.
Аккумулятор Аккумулятор (Акк) — это регистр, на который возлагаются самые разнообразные функции. Так, в него предварительно загружается один из операндов, участвующих в арифметической или логической операции. В Акк может храниться результат предыдущей команды и в него же заносится результат очередной операции. Через Акк зачастую производятся операции ввода и вывода. Строго говоря, аккумулятор в равной мере можно отнести как к АЛУ, так и к УУ, а в ЭВМ с регистровой архитектурой его можно рассматривать как один из регистров общего назначения.
Буфер данных Буфер данных призван компенсировать разницу в быстродействии запоминающих устройств и устройств, выступающих в роли источников и потребителей хранимой информации. В буфер данных при чтении заносится содержимое ячейки ОП, а при записи — помещается информация, подлежащая сохранению в ячейке ОП.
Буфер адреса Наличие буфера адреса также позволяет компенсировать различия в быстродействии оперативной памяти и других устройств ЭВМ.
Структурная схема
Рассчетная часть проекта
Сокеты
Понятие сокета является, пожалуй, некой пассивной характеристикой процессора, но в тоже время данный термин является одним из ключевых при комплектации системы. В данной статье серии «характеристики процессоров», мы разберемся с понятием сокета и рассмотрим более-менее популярные сокеты процессоров двух основных производителей CPU– амд и интел.
Сокет. Что и как?
Попросту говоря, сокет (socket) – это разъём (гнездо) на материнской плате, куда устанавливается процессор. Но когда мы говорим «сокет процессора», то подразумеваем под этим, как гнездо на материнской плате, так и поддержку данного сокета определенными линейками процессоров. Сокет нужен именно для того, чтобы можно было с легкостью заменить вышедший из строя процессор или апгрейдить систему более производительным процессором.
На физическом уровне, сокеты отличаются количеством контактов, типом контактов, расстоянием креплений для процессорных кулеров и множеством других мелочей, которые и делают практически все сокеты несовместимыми. Также, имеются технологические отличия: наличие различных дополнительных контроллеров, более высокие параметры производительности, поддержка интегрированной графики в процессоре и т.д.
Как уже говорилось выше, подбор сокета – немаловажная часть сборки системы. Если будет подобран процессор, который ориентирован на другой сокет, нежели в материнской плате, то система работать не будет, если вообще процессор встанет в несовместимое гнездо. Лучше подобных экспериментов с несовместимыми сокетами не проводить, так как можно повредить контакты на процессоре или разъёме, что, скорее всего, приведет к выходу комплектующих из строя. Поэтому при покупке материнской платы и процессора, сначала выбирайте процессор, а затем уже ищите под него материнскую плату с совместимым сокетом. Список поддерживаемых процессоров можно найти на официальном сайте производителя материнской платы, чтобы остаточно убедиться в совместимости той или иной модели.
Ну а сейчас, мы рассмотрим наиболее популярные сокеты процессоров от amd и intel, опуская сильно устаревшие версии по типу 370-ых сокетов для Pentium III и тому подобных.
Сокеты Intel
Динамика обновления сокетов для процессоров Intel, на порядок выше, чем у тех же сокетов новых процессоров AMD. В рамках своей предпоследней серии процессоров, появилось целых три новых сокета, причем они полностью несовместимы.
Всё это одновременно и хорошо, и плохо. Хорошо тем, что с частым обновлением сокетов и выпуском под каждую (даже) часть линейки процессоров, мы можем наблюдать увеличение производительности и более специфическую заточку под конкретную модель. А вот жирный минус в том, что довольно тяжело делать апгрейд, когда каждая новая серия процессоров идет под новый сокет, приходится менять не только процессор, но и материнскую плату.
Теперь давайте рассмотрим несколько конкретных сокетов от Интел:
Socket (сокет LGA 2011) – один из новых сокетов для некоторых процессоров Ivy Bridge(Corei7, i5, i3 – 3xxx) Можно отметить, что данный сокет был скорее маркетинговым ходом для встряски рынка и набивки цен (первое время) на процессоры, которые позиционировались под этот сокет. Но все-таки подвижки в производительности можно было заметить. Сейчас же, процессоры под данный сокет упали в цене, чего не скажешь про материнские платы с LGA 2011, они остаются в разы дороже подобных материнских плат, под тот же LGA 1155, который мы рассмотрим чуть ниже.
Socket (сокет LGA 1155, 1156, 1366) – данные сокеты можно условно поместить в одну «пачку», но повторюсь еще раз: они не совместимы, хоть и позиционируются под одну микроархитектуру Sandy Bridge II, просто для разных версий.
Наиболее ходовым оказался сокет 1155, на нем сейчас и построены большинство систем. Для мощных систем и серверных решений на борту с Сorei7 и Xeon, был разработан Socket 1366.
Socket (сокет LGA 775) – эти сокеты уже морально устарели, хотя еще живут во множестве систем, они позиционировались под несколько линеек сразу, таких как Core 2 Duo, Core 2Quad, Celeron и другие.
Сокеты AMD
Политика компании AMD, в этом плане более консервативна. Несколько сокетов имеют совместимость благодаря сериям с «+». К примеру, Socket AM2 совместим с AM2+, что дает более широкие возможности для апгрейда, но вместе с этим, это немного неприятное топтание на одном месте, что не позволительно для IT- сферы.
Некоторые примеры сокетов AMD:
Socket (сокет AM3 и AM3+) – можно сказать сокет и его модификация, по спецификациям они совместимы между собой, разрабатывались под процессоры FX, Phenom II, Athlon II. Сокет для наиболее мощных Bulldozer (FX) среди лагеря AMD, которые не оправдали надежды, но упав в цене стали более интересным приложением, с точки зрения неплохой производительности за низкую цену. Сокеты AM3 и AM3+, сейчас являются наиболее ходовыми, на них комплектуется большинство как дешевых, так и более дорогих систем. То есть можем смело констатировать практичность данных сокетов.
Socket (сокет AM2 и AM2+) – сокеты для процессоров Phenom, Athlon, Sempron. Также, полностью совместимы. На сегодняшний день можно считать немного устаревшими, хотя еще активно работает масса систем построенных на основе данных сокетов.
Socket (сокет FM1 и FM2) – сокеты FM создавались под процессоры серии AMD Fusion,которые отличаются очень мощной интегрированной графикой. На данный сокет и совместимые с ним процессоры, следует ориентироваться тем, кто не желает тратиться на дискретную видеокарту и будет довольствоваться интегрированной графикой.
Крепление процессора
Технология производства
Введение
|
Песок... Кремний, после кислорода, является самым распространённым химическим элементом в земной коре (25% по массе). Песок, а особенно кварц, содержит большой процент диоксида кремния (SiO2), который является базовым ингредиентом для производства полупроводников.
|
После добычи песка происходит очистка кремния от примесей - кремний очищается в несколько этапов, чтобы достичь достаточного качества для производства полупроводников - его называют кремний полупроводниковой чистоты. Он настолько очищен от примесей, что допускается только один чужеродный атом на каждый миллиард атомов кремния. После процесса очистки начинается фаза плавления кремния. На фотографии выше можно видеть крупный кристалл, выросший из расплавленного очищенного кремния.
|
Получившаяся болванка монокристалла весит около 100 килограмм, чистота кремния составляет 99,9999 процентов.
|
Затем болванка переходит на стадию пиления, когда из неё вырезаются тонкие отдельные диски кремния, называемые подложками (или "вафлями", wafers). Кстати, некоторые болванки бывают выше полутора метров. Монокристаллы выращивают разного диаметра - всё зависит от нужного диаметра подложек. Сегодня процессоры изготавливаются, как правило, из 300-мм подложек.
|
После вырезания подложки полируются, пока их поверхность не достигнет зеркально гладкого состояния. Intel не производит подложки и болванки самостоятельно, вместо этого закупая подложки у сторонних компаний. Улучшенный 45-нм техпроцесс High-K/Metal Gate у Intel подразумевает использование подложек диаметром 300 мм (или 12 дюймов). Когда Intel впервые занялась производством чипов, то использовались подложки диаметром 50 мм (2 дюйма). Сегодня Intel использует 300-мм подложки, что позволяет снизить стоимость изготовления чипов.
|
Голубая жидкость, показанная выше, формирует фоторезистивный слой, наподобие того, что используется в фотоплёнке. Подложка во время нанесения жидкости вращается, что позволяет получить равномерное покрытие, которое и гладкое, и очень тонкое.
|
Затем подложка с фоторезистивным слоем подвергается облучению ультрафиолетом. Химическая реакция, которая происходит в слое под воздействием ультрафиолета, очень похожа на реакцию в плёнке, когда вы щёлкаете затвором фотоаппарата.
Области фоторезистивного материала подложки, которые подверглись облучению ультрафиолетом, становятся растворимыми. Облучение частей подложки происходит с помощью специальной маски, которая работает трафаретом. Под ультрафиолетовым излучением маски позволяют создавать различные структурные области микрочипа. Во время производства процессора этот этап повторяется по мере нанесения слоёв друг на друга.
Линза (в середине) уменьшает маску до небольшой фокусной области. В итоге "отпечаток" на подложке обычно в четыре раза меньше (линейно), чем трафарет маски.
|
На
иллюстрации выше показан один транзистор
так, если бы мы могли видеть его
невооружённым глазом. Транзистор
работает как переключатель, управляя
течением электрического тока в
компьютерном микропроцессоре. Инженеры
Intel разработали настолько маленькие
транзисторы, что на кончике иголки их
умещается около 30 миллионов.
|
После облучения ультрафиолетом голубой фоторезистивный слой, на который попало излучение, полностью растворяется специальной жидкостью. В итоге остаются участки слоя, закрытые маской. Это самое начало нанесения транзисторов, межсоединений и других участков электрической цепи процессора.
|
Фоторезистивный
слой защищает материалы подложки,
которые не должны быть вытравлены. А
облученные области вытравливаются с
помощью химикатов.
|
После травления удаляется и фоторезистивный голубой слой, после чего становится видна требуемая форма.
Инструкции реализуемые в процессорах
Конве́йер — способ организации вычислений, используемый в современных процессорах и контроллерах с целью повышения их производительности (увеличения числа инструкций, выполняемых в единицу времени), технология, используемая при разработке компьютеров и других цифровых электронных устройств.
Идея заключается в разделении обработки компьютерной инструкции на последовательность независимых стадий с сохранением результатов в конце каждой стадии. Это позволяет управляющим цепям процессора получать инструкции со скоростью самой медленной стадии обработки, однако при этом намного быстрее, чем при выполнении эксклюзивной полной обработки каждой инструкции от начала до конца.
Простой пятиуровневый конвейер в RISC-процессорах
На иллюстрации справа показан простой пятиуровневый конвейер в RISC-процессорах. Здесь:
IF (англ. Instruction Fetch) — получение инструкции,
ID (англ. Instruction Decode) — раскодирование инструкции,
EX (англ. Execute) — выполнение,
MEM (англ. Memory access) — доступ к памяти,
WB (англ. Register write back) — запись в регистр.
Вертикальная ось — последовательные независимые инструкции, горизонтальная — время. Зелёная колонка описывает состояние процессора в один момент времени, в ней самая ранняя, верхняя инструкция уже находится в состоянии записи в регистр, а самая последняя, нижняя инструкция только в процессе чтения.
Содержание
1 История
2 Тактовый генератор
3 Конфликт конвейера
4 Бесконвейерная архитектура
5 Преимущества и недостатки
6 Примеры
6.1 Общий конвейер
6.1.1 Пузырёк
6.2 Пример 1
6.3 Пример 2
7 Трудности
8 См. также
9 Примечания
10 Ссылки
История[править | править исходный текст]
Сам термин «конвейер» пришёл из промышленности, где используется подобный принцип работы — материал автоматически подтягивается по ленте конвейера к рабочему, который осуществляет с ним необходимые действия, следующий за ним рабочий выполняет свои функции над получившейся заготовкой, следующий делает ещё что-то. Таким образом, к концу конвейера цепочка рабочих полностью выполняет все поставленные задачи, сохраняя высокий темп производства. Например, если на самую медленную операцию затрачивается одна минута, то каждая деталь будет сходить с конвейера через одну минуту.
Считается, что впервые конвейерные вычисления были использованы либо в проекте ILLIAC II (англ.), либо в проекте IBM Stretch (англ.). Проект IBM Stretch предложил термины «получение» (англ. Fetch), «расшифровка» (англ. Decode) и «выполнение» (англ. Execute), которые затем стали общеупотребительными.
Тактовый генератор[править | править исходный текст]
Многие современные процессоры управляются тактовым генератором. Процессор внутри состоит из логических элементов и ячеек памяти — триггеров. Когда приходит сигнал от тактового генератора, триггеры приобретают своё новое значение и «логике» требуется некоторое время для декодирования новых значений. Затем приходит следующий сигнал от тактового генератора, триггеры принимают новые значения, и так далее. Разбивая последовательности логических элементов на более короткие и помещая триггеры между этими короткими последовательностями, уменьшают время, необходимое логике для обработки сигналов. В этом случае длительность одного такта процессора может быть соответственно уменьшена.
Например, простейший конвейер RISC-процессоров можно представить пятью стадиями с наборами триггеров между стадиями:
получение инструкции (англ. Instruction Fetch);
декодирование инструкции (англ. Instruction Decode) и чтение регистров (англ. Register fetch);
выполнение (англ. Execute);
доступ к памяти (англ. Memory access);
запись в регистр (англ. Register write back);
Конфликт конвейера[править | править исходный текст]
При написании ассемблерного кода (либо разработке компилятора, генерирующего последовательность инструкций) делается предположение, что результат выполнения инструкций будет точно таким, как если бы каждая инструкция заканчивала выполняться до начала выполнения следующей за ней. Использование конвейера сохраняет справедливость этого предположения, однако не обязательно сохраняет порядок выполнения инструкций. Ситуация, когда одновременное выполнение нескольких инструкций может привести к логически некорректной работе конвейера, известна как «конфликт конвейера (англ. Pipeline hazard)». Существуют различные методы устранения конфликтов: форвардинг (англ. Register forwarding) (иногда называется bypass) и другие.
Бесконвейерная архитектура[править | править исходный текст]
Бесконвейерная архитектура значительно менее эффективна из-за меньшей загрузки функциональных модулей процессора в то время, пока один или небольшое число модулей выполняет свою роль во время обработки инструкций. Конвейер не убирает полностью время простоя модулей в процессорах как таковое и не уменьшает время выполнения каждой конкретной инструкции, но заставляет модули процессора работать параллельно над разными инструкциями, увеличивая тем самым количество инструкций, выполняемых за единицу времени, а значит и общую производительность программ.
Процессоры с конвейером внутри устроены так, что обработка инструкций разделена на последовательность стадий, предполагая одновременную обработку нескольких инструкций на разных стадиях. Результаты работы каждой из стадий передаются через ячейки памяти на следующую стадию, и так — до тех пор, пока инструкция не будет выполнена. Подобная организация процессора, при некотором увеличении среднего времени выполнения каждой инструкции, тем не менее обеспечивает значительный рост производительности за счёт высокой частоты завершения выполнения инструкций.
Не все инструкции являются независимыми. В простейшем конвейере, где обработка инструкции представлена пятью стадиями, для обеспечения полной загрузки, в то время пока заканчивается обработка первой инструкции, должно обрабатываться параллельно ещё четыре последовательных независимых инструкции. Если последовательность содержит инструкции, зависимые от выполняемых в данный момент, то управляющая логика простейшего конвейера приостанавливает несколько начальных стадий конвейера, помещая этим самым в конвейер пустую инструкцию («пузырёк»), иногда неоднократно, — до тех пор, пока зависимость не будет разрешена. Существует ряд приёмов, таких как форвардинг, значительно снижающих необходимость приостанавливать в таких случаях часть конвейера. Однако зависимость между инструкциями, одновременно обрабатываемыми процессором, не позволяет добиться увеличения производительности кратно количеству стадий конвейера в сравнении с бесконвейерным процессором.