Общие положения и вычислительные парадигмы
processor (обработчик), процессор — часть компьютера, обрабатывающая данные. Управляется программой или потоком — последовательностью закодированных команд. Физически представляет собой одну микросхему. Работает на определённой частоте, означающей количество тактов в секунду. За каждый такт процессор делает некоторую часть полезной работы. По умолчанию под процессором понимается центральный процессор. CPU (central processing unit: «центральный блок обработки»), ЦП (центральный процессор) — главный и обязательно присутствующий процессор компьютера, обрабатывающий данные любого вида (в отличие от сопроцессоров). coprocessor, сопроцессор — специализированный процессор (например, вещественный или периферийный), обрабатывающий данные только какого-то одного вида, но быстрее, чем это смог бы сделать ЦП, за счёт оптимизированного устройства. Может быть как отдельной микросхемой, так и частью ЦП. core, ядро — в одноядерных ЦП: вычислительная часть процессора, остающаяся после вычета вспомогательных структур (контроллеров шин, кэшей и др.). В многоядерных ЦП: набор обрабатывающих блоков и смежных с ними кэшей, минимально необходимый для исполнения любых команд и имеющийся в нескольких экземплярах. Многоядерные ЦП могут иметь многоуровневое разделение ресурсов: например, ядра с отдельными кэшами L1 могут попарно объединяться, имея в каждой паре общий кэш L2, а пары объединяются в процессор с общим кэшем L3 и остальным блоками. AMD в новых микроархитектурах использует определение ядра, исполняющего лишь операции (не команды) общего назанчения. SMP (symmetric multiprocessing: симметричная многопроцессорность) — одновременное присутствие и работа в компьютере нескольких одинаковых процессоров и/или ядер. uncore («внеядро») — термин Intel для обозначения части ЦП за пределами x86—ядра или ядер. Ресурсы внеядра (ГП, кэш L3 и системный агент) динамически разделяются между ядрами в зависимости от потребности. system agent (системный агент) — термин Intel для обозначения части ЦП за пределами всех ядер (включая специализированные — например, графическое) и кэша L3. Является частью внеядра. word, слово — в общем случае — последовательность информации длиной 2N байт, где целое N>0. По содержимому может быть данными, адресом или командой. Иногда используется как мера разрядности (полуслово, двойное слово и т. п.) наряду с битами и байтами. В архитектуреx86 обозначает 2-байтовое целое данное. conditional, условная — команда или операция, исполняющаяся при совпадении требуемого условия с состоянием флагов. operation, операция — задаваемое командой действие над своими аргументами — данными или (реже) адресом. Одна команда может задать несколько действий. non-destructive, неразрушающий — формат операндов команды, при котором её результат не обязан перезаписывать какой-либо из аргументов, иначе формат называется разрушающим. Чтобы команда была неразрушающей, приёмник должен быть отдельным от всех источников (т. е. не должно быть модификандов, кроме случаев явного указания одинаковых приёмника и источника). Например, для элементарного сложения это потребует трёх операндов — приёмника и двух источников. В случае с двумя операндами сумма перезапишет одно из слагаемых. integer, целый, целочисленный — относящийся к целым числам. Имеют разрядность 1, 2, 4 и 8 байт. Как правило, к ним также причисляют логический тип данных, описывающий набор бит. Обработка целых проще и быстрее, чем вещественных. float («плавающий»), FP (floating point: плавающая точка), вещественный — относящийся к вещественным числам (точнее, к их рациональному подмножеству с плавающей запятой). Имеют точности HP, SP, DP и EP. Обработка вещественных труднее и дольше, чем целых. register, регистр — ячейка, хранящая одно или несколько значений определённой разрядности и типа (например, целыйвекторный). Является наиболее частоиспользуемым типом операнда. Несколько однотипных регистров объединены в регистровый файл. GPR (general purpose register), РОН (регистр общего назначения) — регистр для скалярных целых данных или адресов, используемый для наиболее частых команд. ISA (instruction set architecture: архитектура набора команд) — описание процессора как математической модели, каковой он представляется программисту. Состоит из описаний всех исполняемых команд, имеющихся регистров, режимов и пр. структур и состояний, доступных программисту. Основывается на одной или более парадигмах. Без уточнения термин «архитектура» часто обозначает микроархитектуру. microarchitecture, микроархитектура — реализация ISA в виде блок-схемы процессора, каждый блок которой выполняет обособленную роль или функцию и состоит из массивов логических вентилей («экземпляров») и связывающих их линий. Для каждой ISA, как правило, есть несколько микроархитектур, отличающихся скоростью исполнения отдельных команд и всей программы, сложностью и ценой получаемого процессора, потребляемой энергией на каждую операцию и т. п. Большинство описываемых микроархитектурой блоков и состояний «прозрачны» для программиста (т. к. не указаны в ISA) и нужны для автоматического улучшения какой-либо численной характеристики — скорости, надёжности, потребления энергии и т. д. Часто обозначается термином «архитектура». paradigm, парадигма — тут: совокупность основополагающих правил и понятий, на основе которых строится конкретная программная архитектура или микроархитектура. Некоторые парадигмы взаимоисключающи, другие могут сочетаться. load/store (загрузка/сохранение — синонимы чтения и записи) — парадигма, при которой команды обработки работают только с регистрами, а загрузка констант и обмен данных между процессором и памятью производится отдельными командами и тоже через регистры. Это позволяет сильно упростить устройство и снизить себестоимость процессора, но усложняет программирование, замедляет скорость исполнения за такт и удлинняет программу. Большинство современных архитектур не используют парадигму load/store, допуская для большинства или всех команд обработку данных, находящихся и в регистрах, и в памяти, и в самой команде. RISC (reduced instruction set computer: вычислитель с сокращённым набором команд) — парадигма архитектуры, максимально удобной для физической реализации (в противоположность CISC): процессор имеет небольшое число команд (как правило, до 200), большая часть которых исполняет по одному простому действию (как правило, не сложнее умножения) со значительными ограничениями по разрядности, местоположению и типу аргументов (в частности, используется парадигма load/store). За счёт простоты почти каждая команда исполняется за одно действие, поэтому процессору не нужен микрокод. Чаще всего команды имеют одинаковую длину (как правило, 4 байта) и неразрушающую кодировку операндов. CISC (complex instruction set computer: вычислитель со сложным набором команд) — парадигма архитектуры, максимально удобной для эффективного (по числу OPC) программирования (в противоположность RISC): процессор имеет большое число команд (сотни), исполняющих в т. ч. сложные действия с аргументами разной разрядности, местоположения и типа. Сложные команды исполняются как последовательность простых, для чего процессору нужен декодер. Команды имеют переменную длину; по сравнению с RISC-ЦП код получается более компактным как по числу команд, так и по общей длине. За счёт разнообразия и сложности команд, меньшего числа архитектурных регистров и (часто) разрушающего формата операндов программирование CISC-ЦП для компилятора сложнее, чем RISC-ЦП, но для человека-программиста это не обязательно. CISC-ЦП для достижения производительности RISC-ЦП на одинаковой частоте должен быть сложнее. SIMD (single instruction, multiple data: одна команда — много данных), векторность — парадигма параллелизма на уровне данных: помимо скалярных, имеются векторные команды для обработки аргументов-векторов, объединяющих несколько отдельных скалярных значений. Результат векторной команды — чаще всего также вектор. Применяется во всех современных архитектурах для удобной реализации высокоскоростной обработки, когда над большим объёмом данных требуется совершить одно действие. SIMD также подразумевает наличие команд тасовки элементов вектора без изменения их содержимого. EPIC (explicitly parallel instruction computing: вычисление с явным параллелизмом команд) — парадигма, упрощающая суперскалярную микроархитектуру за счёт явного указания «связок» команд, которые могут одновременно отправиться на исполнение при готовности требуемых данных. Применяется только к RISC-архитектурам, хотя теоретически применима и к CISC. Для обработки данных общего назначения не подходит из-за относительно большого размера кода и сложности эффективного программирования и исполнения на любом алгоритме, поэтому для ЦП малопригодна, но применяется в некоторых DSP и GPU. DSP (digital signal processor: цифровой обработчик сигналов), цифровой сигнальный процессор — сопроцессор, оптимизированный для обработки потока данных, в т. ч. в реальном времени. Иногда встраивается в SoC. GPU (graphics processing unit: блок обработки графики), графический процессор (ГП) — сопроцессор, оптимизированный для обработки графики в реальном времени и некоторых неграфических задач. ГП иногда встраивается в микросхему ЦП. GPGPU (general purpose GPU: вычисления общего назначения на ГП) — программы обработки неграфических данных, алгоритмы которых удобны для эффективного исполнения не только на ЦП, но и на ГП. Составление таких алгоритмов сложней из-за бо́льших ограничений ГП по сравнению с ЦП. APU (accelerated processing unit: блок ускоренной обработки) — термин AMD для обозначения процессора с ядром или ядрами общего назначения архитектуры x86 и встроенным ГП, архитектура которого допускает относительно простую обработку неграфических данных с помощью GPGPU. SoC (system on chip: система на чипе) — микросхема, на единственном или основном кристалле которой находятся ядро или ядра ЦП, сопроцессоры и/или DSP и контроллеры памяти и ввода-вывода. (Остальные кристаллы в случае их присутствия являются памятью.) Используется вместо нескольких отдельных микросхем с похожей совокупной функциональностью для уменьшения массы, размеров, сложности монтажа, потребления энергии и цены конечного устройства. embedded, встроенный — относится к компьютерам и микросхемам, управляющим невычислительной аппаратурой (и часто физически встроенным в неё) и/или собирающим данные с датчиков. Встроенный компьютер может иметь человеко-машинный интерфейс, но с пользователем он общается гораздо реже, чем с другими устройствами. Для таких компьютеров требуется высокая надёжность в широком спектре физических воздействий (в т. ч. жёстких), часто в ущерб другим характеристикам (например, скорости). ARM — RISC-архитектура, первая по распространённости в мире (вторая — x86). Применяется в мобильных компьютерах и производных от них устройствах (коммуникаторах, телефонах, планшетах и пр.) и в большинстве встроенных систем. Имеет неразрушающий формат операндов. Число доступных регистров в РФ — 16. VM (virtual memory: виртуальная память) — технология, позволяющая каждой исполняемой программе в многозадачной среде использовать отдельное непрерывное адресное пространство, причём большего размера, чем имеется физической оперативной памяти, а также реализовать защищённое исполнение с изоляцией программ и их данных друг от друга. Виртуальная память физически размещается в ОЗУ и файле подкачки (своп-файле) на массовом носителе. В режиме работы с виртуальной памятью программы оперируют виртуальными адресами. VA (virtual address: виртуальный адрес) — адрес для виртуальной памяти, который до использования необходимо пересчитать (транслировать) в физический адрес в блоках TLB и PMH. Каждый виртуальный адрес попадает в какую-либо страницу, описываемую дескриптором («описателем») размером 4 (в 32-битном режиме ЦП) или 8 (в 64-битном) байт, содержащим физический адрес, тип и права доступа страницы или их группы. 512 или 1024 дескриптора формируют таблицу трансляции, а сами таблицы объединяются операционной системой в 2–4-ярусную древовидную структуру, уникальную для каждой задачи. Ссылка на корневую таблицу дерева передаётся в ЦП при переключении на новую задачу, каждая из которых таким образом получает отдельное виртуальное адресное пространство. PA (physical address: физический адрес) — адрес, получаемый трансляцией из виртуального и необходимый для доступа в кэши и память. page, страница — элементарный блок памяти при выделении виртуальной памяти программе. Младшие биты виртуального адреса обозначают смещение внутри страницы. Остальные биты задают начальный (базовый) адрес, который требуется транслировать. Для архитектуры x86 чаще всего используются страницы по 4 КБ, но также доступны «большие» страницы: для 32-битного режима — на 4 МБ, а для 64-битного — на 2 МБ и 1 ГБ.
Стадии конвейера
BPU (branch predictor unit: блок предсказания ветвлений), предсказатель переходов — начальная часть конвейера, реализующая один из видов упреждения команд. Прогнозирует поведение команд перехода (целевой адрес и предположение об исполнении), используя накопленную в специальных таблицах и регистрах статистику о дошедших до отставки переходах. Состоит из 1–2 стадий, работает отдельно от остального конвейера и раз в 2–3 такта выдаёт вероятный адрес следующей порции команд для исполнения. Для переходов разного типа применяет разные алгоритмы. Прогнозы даются на несколько переходов вперёд вне зависимости от темпа реального исполнения команд или даже их наличия в кэше L1I. IF (instruction fetch: загрузка команд) — несколько стадий (число которых совпадает с задержкой кэша L1I), тратящихся на загрузку порции команд из L1I в предекодер или декодер по предсказанному адресу. IChunk (instruction сhunk: «кусок команд»), порция команд — блок команд, загружаемый из L1I в предекодер или декодер. В x86 ЦП — 16 или 32 байта. predecoder, предекодер — предварительный декодер, разделяющий несколько CISC-команд из порции на отдельные элементы (см. x86), используя информацию от длиномера. Подготовка команд может происходить наперёд их дальнейшей обработки декодером, если до него есть буфер. ILD (instruction length decoder: декодер длин команд), длиномер — определитель длин CISC-команд. В x86-ЦП анализирует их префиксы, опкоды и байты modR/M. В ЦП Intel длиномер является частью предекодера, измеряя длины «на лету». В большинстве ЦП AMD он работает с командами при их загрузке из L2 в L1I, сохраняя разметку байтов команд в дополнительных битах в L1I, считываемых предекодером при загрузке порции. ID (instruction decoder: декодер команд), decoder (декодер) — набор блоков, преобразующих команды в мопы. В x86-ЦП состоит из нескольких трансляторов и одного микросеквенсера (генератора последовательности мопов) с ПЗУ для микрокода. Осуществляет микрослияние и макрослияние. translator («переводчик»), транслятор — часть декодера, обрабатывающая простые и частые команды без использования микрокода. В x86-ЦП Intel есть 1–3 простых транслятора (на 1 меньше числа путей конвейера), каждый из которых переводит команду в 1 моп за такт, и 1 сложный транслятор, переводящий команду в 1–4 мопа/такт. Как правило, число генерируемых трансляторами мопов не больше числа путей. Большинство ЦП AMD имеют 3–4 транслятора, каждый из которых переводит команду в 1–2 мопа/такт. Макросливаемые команды обрабатываются парами любым транслятором, но не более одной пары за такт. µcode, microcode, микрокод — совокупность микропрограмм — последовательностей мопов (до нескольких сот длиной), задающих исполнение наиболее сложных команд, которые не могут быть обработаны трансляторами. Хранится в ПЗУ микропрограмм. microsequencer, микросеквенсер — часть декодера, читающая микропрограммы из ПЗУ с ними. mROM, µROM («микроПЗУ») — энергонезависимое хранилище для микрокода размером в несколько сотен килобит. Микросеквенсердекодера читает микропрограммы из микроПЗУ по несколько мопов за такт (согласно числу путей конвейера). Для исправления ошибок содержимое может корректироваться прямым программированием или перемычками. mop buffer, буфер мопов — последняя стадия фронта конвейера, принимающая мопы от декодера и/или кэша мопов и отправляющая их в диспетчер. По терминологии Intel называется IDQ (instruction decode queue: очередь декодирования команд). В ЦП Intel буфер мопов (как и кэш) может работать в режиме блокировки цикла, освобождая на время его исполнения остальные стадии фронта для простоя, накопления мопов команд после цикла или работы над другим потоком (в процессорах с SMT). Обнаружение и блокировка цикла в IDQ осуществляется блоком LSD (loop stream detector: детектор циклического потока). dispatcher, диспетчер — блок конвейера, архитектурно занимающий бо́льшую часть тыла, включая его первую и последнюю стадии. Принимая мопы от декодера или буфера мопов, внеочерёдный диспетчер осуществляет переименование регистров, размещение мопов, приём сигналов о завершении исполнения мопов и отставку породивших их команд. Почерёдный диспетчер проще: он не делает переименование и размещение и заменяет собой планировщик. register rename, переименование регистров — поочерёдная привязка номера архитектурного регистра-приёмника, описываемого в ISA и указанного в мопе, к аппаратному регистру (должна точнее называться перенумерацией). Является первой стадией тыла конвейера и выполняется диспетчером перед размещением мопа. Аппаратных регистров в 4–10 раз больше, чем архитектурных того же типа, что позволяет реализовать одновременное исполнение мопов, до переименования ссылавшихся на один регистр, за счёт удаления ложных зависимостей по операндам. Не смотря на поочерёдность операции, суперскалярный диспетчер может не только переименовать несколько регистров за такт (учитывая, что в мопе приёмник максимум один, не считая регистра флагов), но и несколько раз за такт переименовать один и тот же архитектурный регистр. Часто также переименовываются 4–6 важнейших флагов и регистр управления вещественными вычислениями. Аппаратные векторные регистры иногда бывают вдвое меньше архитектурных — в этом случае переименование делается для старшей и младшей половин архитектурного. В продвинутых микроархитектурах мопы некоторых команд (обмен, копирование и обнуление) при работе только с регистрами исполняются уже на этой стадии и до размещения не доходят. allocator, разместитель — стадия внеочерёдногодиспетчера, выполняющая размещение переименованных мопов в ROB и планировщике(ах). В некоторых микроархитектурах перед попаданием в планировщик(и) макро- и микрослитые мопы разделяются.
— вопреки названию (термин Intel), хранит оригинальный (программный) порядок мопов, поэтому правильней называется RQ (retire(ment) queue: очередьотставки; термин AMD). Число мопов в ROB определяет т. н. OoO-окно — диапазон, внутри которого мопы могут исполняться вне программного порядка.
Ячейка в ROB хранит урезанную версию мопа, в которой оставлены лишь необходимые планировщику поля. В частности, если диспетчер подключен к хранящему планировщику, то ROB после исполнения мопов хранит копии их результатов; если к ссылочному — то он хранит ссылки на результаты в физческом РФ; ни одна из версий не хранит опкод и другую информацию, нужную для исполнения мопа.
RS (reservation station: резервационная станция), резервация — в ссылочном планировщике: буфер готовящихся к исполнению мопов и ссылок на их операнды в физическом РФ. В хранящем планировщике: буфер готовящихся к исполнению мопов, накапливающий копии значений их операндов. issue («выпуск»), запуск — передача мопа из планировщика в исполнительный тракт для исполнения. Если планировщик допускает хранение в своей резервациимикро- и макрослитых мопов (не требуя их разделения при размещении), то такие мопы запускаются по нескольку раз. Вычислительные мопы, читающие аргумент из памяти, сначала попадают в AGU, затем в LSU и, наконец, в нужное ФУ для обработки. Мопы, сохраняющие аргумент в памяти (и которые в х86 не бывают вычислительными), должны в любом порядке запуститься в AGU и LSU. Каждый получатель слитого мопа интерпретирует его по-своему, исполняя одну операцию. После выполнения последней из них моп удаляется из резервации, а планировщик сообщает диспетчеру о возможности отставки удалённого мопа. port, порт — для РФ: интерфейс для одной из шин исполнительного тракта, допускает либо чтения, либо записи. Для ФУ: интерфейс для приёма мопов или аргументов или отправки результатов. Для резервации: интерфейс для одного или нескольких ФУ, через который ему (им) передаются мопы или принимаются стоп-сигналы о завершении их исполнения. RF (register file), РФ (регистровый файл) — набор одинаковых регистров, отличающихся лишь номером. С точки зрения архитектуры в ядре современного ЦП есть как минимум целочисленный РФ (набор РОНов для скалярных целых данных и адресов) и векторно—вещественный РФ (для остальных видов данных). Аппаратных РФ может быть больше, причём разрядность какого-либо них не обязательно совпадает с разрядностью архитектурных регистров, хранящих в данном РФ свои значения. Имеет по несколько портов чтения и записи, реализуя одновременный доступ, если нет конфликтов. ARF (architectural RF), архитектурный РФ — в поочерёдных конвейерах: единственный вид РФ; хранящит текущее состояние описываемых архитектуройрегистров и находится на исполнительном тракте. Во внеочерёдных конвейерах: РФ, хранящий последнее достоверно известное состояние архитектурных регистров, обновляемое при отставкемопов. Используется хранящим планировщиком. В ЦП с SMT на каждый поток есть либо по одному ARF, либо по одной таблице привязки регистров из физического РФ (в зависимости от вида планировщика). Иногда называется RRF (retired RF, «отставленный РФ»; не путать с ). FF (future file: «файл будущего»), RRF (renamed RF: переименованный РФ; не путать с retired RF), SRF (speculative RF: упреждающий РФ) — РФ, хранящий регистры с упреждёнными операндами и находящийся на исполнительном тракте. Используется хранящим планировщиком. PRF (physical RF), физический РФ (ФРФ) — РФ, монопольно хранящий регистровые операнды мопов, замещая архитектурный и упреждающий РФ. Используется ссылочным планировщиком. RR (register read), чтение регистров — стадия чтения регистров из РФ и настройки шлюзов. EX (execution), исполнение — одна или несколько стадий исполнения мопов, содержащая все ФУ (при поочерёдном исполнении сюда не включены AGU). Фактическая длина этой стадии определяется для каждого мопа числом стадий обрабатывающего его ФУ. EU (execution unit: исполнительный блок), FU (functional unit: функциональный блок), ФУ, функциональное устройство — блок тыла, исполняющий мопы и обрабатывающий данные и адреса. Имеет порт управления для приёма мопов из резервации, 2–3 порта приёма аргументов и порт выдачи результата. Чаще всего именуется по названию исполняемой в нём команды или группы похожих команд. Физически находится в исполнительном тракте. Для наиболее частых команд исполнительная стадия может содержать более одного ФУ нужного типа. Производительность ФУ определяется таймингами исполняемых команд. datapath («путь данных»), исполнительный тракт — физическая структура процессора, реализующая обработку данных определённого типа. Включает один или несколько РФ, несколько ФУ и шлюзов. Почти все эти блоки расположены в ряд и связаны несколькими шинами, по максимальному числу портов в подключенных РФ. Шины чтения передают аргументы из РФ в ФУ и шлюзы, а шины записи возвращают результаты в шлюзы и РФ. Таким образом тракт реализует три стадии конвейера (а также все промежуточные между ними): чтение РФ, исполнение мопов и запись в РФ.
bypass («обход»), шунт, шлюз — коммутаторы и связанные с ними шины передачи данных внутри исполнительного тракта (шунт) или между ним и другими блоками (шлюз). Каждый шунт связывает одну из шин записи со всеми шинами чтения, позволяя использовать в следующем такте результат только что исполненного мопа — в обход записи в и чтения из РФ.
AG (address generation: генерация адреса) — стадия арифметических действий с содержимым регистров и адресных смещений, необходимая для получения адреса аргумента в памяти. Выполняется в AGU. При внеочерёдном исполнении является частью стадии исполнения. DCA (data cache access: доступ к кэшу данных) — одна или несколько стадий чтения аргумента из кэша или записи в кэш по вычисленному адресу под управлением LSU. WB (write-back: обратная запись) — стадия записи результатов из ФУ и/или чтений из памяти — в РФ и/или в ФУ (через шлюзы). Не путать с одноимённой политикой работы кэша.
retire, отставка, commit («совершение») — последняя стадия конвейера и диспетчера, «легализующая» в программном порядке результаты команд, мопы которых находятся в ROB. Для этого диспетчер (в зависимости от типа планировщика) либо переносит результат мопа из ROB в архитектурный РФ, либо корректирует используемую для переименования регистров таблицу ссылок на физический РФ, чтобы записанный мопом архитектурный регистр указывал на верный физический. Т. к. во внеочерёдный диспетчер мопы возвращаются из планировщика не обязательно в программном порядке, в отставку заранее завершившийся моп может уйти, только если все предыдущие внесённые в ROB мопы уже отставлены или уходят в данном такте. Многомоповые команды могут отставиться только после отставки всех своих мопов. Отказ в отставке возможен в случае обнаружения:
В последних двух случаях диспетчер возвращает конвейер в предыдущее точно известное состояние («сброс конвейера»), теряя все упреждающие результаты; успешная отставка обновляет это состояние. Отставка перехода вне зависимости от успешности предсказания пополняет статистику предсказателя.
Физическая реализация
chip, чип, микросхема — интегральный полупроводниковый прибор, заменяющий тысячи и миллионы отдельных (дискретных) элементов. Состоит из корпуса и одного или нескольких размещённых внутри кристаллов. Чаще всего размещается на печатной плате — монтируется припаиванием или вставляется в разъём. Микросхемы являются главными и самыми сложными частями почти всех электронных приборов. Большинство микросхем — цифровые. socket, разъём — физический и электрический интерфейс для установки микросхемы на печатную плату с возможностью быстрой замены. Как правило, называется по типу подходящего для него корпуса и числа выводов. Часто имеет физическую защиту от неверной установки. При верной установке микросхемы особая деталь («ключ») в одном из её углов должна совпасть с ключом на разъёме. BGA (ball grid array: сеточный массив шаров) — корпус микросхемы с массивом выводов на нижней стороне в виде шариков припоя. Как правило, используется для припаивания на плату. LGA (land grid array: сеточный массив площадок) — корпус микросхемы с массивом выводов на нижней стороне в виде контактных площадок. Подходит только для установки в разъём. PGA (pin grid array: сеточный массив штырей) — корпус микросхемы с массивом выводов на нижней стороне в виде штырьков. Подходит для монтажа и установки в разъём. die («кубик»), кристалл — главная часть микросхемы, тонкий прямоугольный кремниевый кристалл, на поверхности которого расположено большое множество интегральных элементов (чаще всего транзисторов) и межсоединений. Расположен в корпусе, с которым соединён чаще всего по принципу FC—BGA-монтажа. Иногда применяется бескорпусный монтаж кристалла на печатную плату, стекло или гибкую подложку. Чем больше площадь кристалла (и их число — для MCM), тем дороже микросхема. При производстве кристаллы получаются после разрезания кремниевой пластины. wafer («вафля»), пластина — круглая кремниевая пластина диаметром до 300 мм, используемая на микроэлектронной фабрике для производства микросхем. На пластине формируется регулярный массив «клеток», которые после разрезки пластины образуют кристаллы, устанавливаемые в корпусы. MCM (multi-chip module: многочиповый модуль) — микросхема, в корпус которой установлено несколько кристаллов: как правило, друг на друге, реже (для сильногреющихся кристаллов) — на одном уровне. Кристаллы могут быть подключены не только к выводам, но и напрямую друг к другу. MCM чаще всего применяется для микросхем памяти и SoC, реже — для многоядерных ЦП. TSV (through silicon vias: «сквозькремниевые отверстия») — перспективный метод соединения нескольких кристаллов микросхемы, устанавливаемых друг на друга. Кристалл с TSV имеет дополнительные контакты на тыльной стороне для следующего кристалла. Без использования TSV кристаллы должны устанавливаться со сдвигом, чтобы не затенять контакты друг друга; при этом число самих контактов ограничено, т. к. они могут быть расположены лишь вдоль одной или двух сторон кристалла. FC (flip-chip: перевёрнутый кристалл) — метод установки кристалла в корпус транзисторами и контактами «вниз» (к плате). Применяется в большинстве современных микросхем, но без использования TSV не даёт возможность установить в MCM несколько кристаллов друг на друга. family, семейство — для x86-ЦП: совокупность моделей с общей микроархитектурой или несколькими похожими. В ответе на команду CPUID обозначается одной или двумя шестнадцатиричными цифрами. model, модель — для x86-ЦП: линейка процессоров с несколько отличающимися деталями микроархитектуры и разным числом ядер, размеров кэшей, техпроцессом и другими характеристиками, влияющими на площадь и устройство кристалла. В ответе на команду CPUID обозначается одной или двумя шестнадцатиричными цифрами. stepping, степпинг — для x86-ЦП: модификация модели, сделанная для улучшения второстепенных численных потребительских характеристик относительно предыдущего степпинга (например, увеличения частоты шины). В ответе на команду CPUID обозначается шестнадцатиричной цифрой. revision, ревизия — версия микросхемы, сделанная для улучшения производственных характеристик относительно предыдущей ревизии (например, снижения себестоимости кристалла и исправления ошибок). В ответе на команду CPUID обозначается латинской буквой и десятичной цифрой. Первая ревизия (A0), как правило, является инженерным образцом. Для ЦП AMD ревизия либо даётся как 4-символьная комбинация, либо не указывается и считается равной степпингу. ES (engineering sample), инженерный образец — «бета-версия» микросхемы, не предназначенная для массового производства. Изготавливается малыми партиями для отладки и тестирования. Иногда содержит недокументированные режимы или функции, недоступные в массовых моделях. MOS (metal-oxide-semiconductor: металл-оксид-полупроводник), МОП — слоистая структура, лежащая в основе интегральных полевых транзисторов для первых микросхем. В современных чипах управляющий затвор делается из поликремния (поликристаллического кремния), но в наиболее продвинутых снова применяется металлический затвор. Подзатворный диэлектрик также изготавливается не из диоксида кремния, а high-k-материалов. Часть кристалла, образующая канал с управляемой проводимостью между истоком и стоком, в современных микросхемах имеет механические напряжение. Идеальный МОП-транзистор имеет квадратичную зависимость потребления энергии от напряжения питания и линейную от частоты, причём максимум частоты линейно зависит от напряжения. process technology, техпроцесс — технологический процесс для массового производства микросхем. Характеризуется технормой, числом слоёв межсоединений, диаметром пластин, различными оптимизациями под скорость и/или энергоэффективность и пр. На передовых фабриках переход на новый техпроцесс происходит примерно каждые 2 года. CD (тут — critical dimension: критический размер), технорма — главная характеристика техпроцесса. Измеряется в нанометрах (nm, нм; ранее — в микронах). Номинально равна минимальному полушагу линейно-регулярной структуры на кристалле, с некоторыми допущениями — удвоенной минимальной длине затвора транзистора и минимальной ширине дорожки. Однако начиная с 45 нм эти пропорции не соблюдаются, поэтому технорма приобретает всё более рекламное значение. Длина и ширина всего транзистора в несколько раз превышает технорму. Из-за особенностей современных техпроцессов при переходе на следующий (технорма которого, как правило, в 1,4 раза меньше текущего) площадь транзистора и всего кристалла уменьшается не в 2 (1,4²), а в 1,6–1,8 раза. Перевод микросхемы на меньшую технорму увеличивает массовость её производства и максимальную частоту, а также уменьшает себестоимость и энергопотребление. Оборудование для производства с меньшей технормой значительно дороже. CMOS (complementary MOS: комплементарный МОП), КМОП — первоначально: вид логики для цифровых микросхем, использующей в логических вентилях пары p- и n-канальных МОП-транзисторов. По сравнению с другими схемами такой вентиль занимает больше места и имеет меньшую предельную частоту, но потребляет значительно меньше энергии. Применяется в особо энергоэффективных схемах и редко — в процессорах. Сегодня под КМОП понимается технология для изготовления микросхем, содержащих оба вида МОП-транзисторов, и используется для всех цифровых чипов. SRAM (static RAM: статическое ОЗУ), СОЗУ — энергозависимая полупроводниковая память, используемая в микросхемах в качестве кэшей, буферов и регистров. Среди остальных видов памяти является самой быстрой, энергопотребляющей и малоплотной. Элементарная ячейка СОЗУ, хранящая 1 бит, имеет 6 транзисторов для кэшей L2 и L3, 6 или 8 для L1 и 4 4W R для РФ с W портами записи и R портами чтения. МТр (миллионов транзисторов) — авторская мера количества транзисторов на кристалле или какой-либо его структуре. interconnect, межсоединения, дорожки — совокупность проводящих каналов (дорожек), соединяющих элементы микросхемы друг с другом, а также с её выводами. Расположены на 5–12 уровнях, причём самый нижний (на уровне транзисторов) изготовлен из поликремния, а остальные — из меди (в старых чипах — из алюминия). Верхний слой имеет контактные площадки для соединения кристалла с корпусом, следующий является силовым (поставляет питание), оставшиеся используются для синхронизации и переноса данных. Электрические контакты между слоями и до транзисторов образуются с помощью металлизированных отверстий (vias). Межслойный диэлектрик является high-k-соединением. k, диэлектрическая проницаемость — безразмерная физическая величина (часто называемая диэлектрической константой), характеризующая изолирующие свойства. По определению, k(вакуума)=1. До 2000 г. в микросхемах в качестве диэлектрика применялся диоксид кремния (SiO2) с k=3,9; материалы с большей k относятся к классу high-k, с меньшей — к low-k. В новых чипах используются оба вида. high-k (высокая «k») — о диэлектриках с показателем k больше, чем у SiO2. Диэлектрики на основе гафния (HfSiO или HfSiON с k≈25) применяются вместо SiO2 между затвором и каналом МОП-транзистора, уменьшая токи утечки, вызванные туннелированием электронов из-за малой толщины слоя — high-k-диэлектрик позволяет утолщить изолятор без замедления транзистора. low-k (низкая «k») — о диэлектриках с показателем k меньше, чем у SiO2. Легированный углеродом пористый SiO2 (с k≤3) применяется вместо обычного SiO2 как межслойный изолятор для межсоединений, уменьшая паразитную ёмкость. Это позволяет ускорить схему и уменьшить её потребление. strained silicon, напряжённый кремний — техника ускорения переключения МОП-транзисторов, применяемая к области канала: для p-канальных транзисторы применяется сжатие шага кристаллической решётки вдоль канала, для n-канальных — растяжение. SOI (silicon on insulator), кремний на изоляторе, КНИ — техника уменьшения токов утечки за счёт размещения под всеми транзисторами кристалла изолирующего слоя (как правило — диоксида кремния). metal gate, металлический затвор — использование в качестве затвора МОП-транзистора металлокремниевого соединения или сплава металлов вместо поликремния для ускорения и уменьшения потребления энергии. TDP (thermal design power: мощность по термопроекту) — максимальная продолжительная теплорассеивающая способность, которую должна обеспечить микросхеме система охлаждения (в т. ч. для микросхем, не требующих использование радиатора). Равна практическому максимуму рассеиваемой (выделяемой в виде тепла) мощности при стабильной работе микросхемы на штатных частотах и напряжениях и максимально допустимой собственной температуре. Берётся чуть ниже достижимого на специальных тестах теоретического максимума и при продолжительной загрузке превышается лишь на небольшие промежутки времени. Для цифровых микросхем используется как приблизительный показатель потребления энергии (почти 100% её рассеивается), однако TDP процессоров «округляется» вверх до одного из стандартных значений (не обязательно ближайшего — в т. ч. по маркетинговым соображениям). TDP микросхем, требующих наличие радиатора, как правило, указывается только для тепловыделения через верхнюю крышку, которой касается радиатор, т. е. без учёта тепла, уходящего через печатную плату. В итоге TDP процессора может быть выше или ниже максимального продолжительного потребления энергии. Современные ЦП имеют программируемое значение TDP для подстройки под используемую систему охлаждения. V-plane (voltage plane: слой напряжения) — силовая шина питания микросхемы. В простейшем случае имеется 1 слой питания для всего кристалла, но для сложных микросхем, включая процессоры, в целях улучшения энергоэффективности питание разных блоков может быть раздельным, чтобы была возможность независимой регулировки питающих напряжений. В большинстве ЦП есть 2–4 регулируемые шины и 1–3 фиксированные. Все они подключены к соответствующим каналам блока VRM. VRM (voltage regulator module: модуль-регулятор напряжения) — блок питания для микросхем, поставляющий напряжения для их силовых шин. Чаще всего располагается на материнской плате. Каждый канал VRM является вольтодобавочным преобразователем, понижающим напряжение от 5 или (чаще) 12 В (получаемых из блока питания) до 0,5–3 В, причём эта величина может быть фиксированной, настраиваемой при загрузке системы или задаваемой в реальном времени (в этом случае она может меняться десятки раз в секунду). Большинство современных микросхем требуют 0,6–1,5 В. Наиболее сложные из них (в частности, почти все процессоры) сообщают обо всех необходимых в данный момент напряжениях с точностью 2,5 или 5 мВ через специальную последовательную шину, к которой подключен контроллер VRM. Через неё же VRM может сообщать процессору о своих возможностях, ограничениях и текущем состоянии. power gate (силовой затвор, ключ) — коммутатор (ключ) питания. Внешний ключ, как правило, основан на одном мощном транзисторе, а интегрированный в микросхему — на множестве слаботочных. Интегрированный ключ управляет подачей питания с какой-либо силовой шины или «земли» («минус» питания) на отдельные блоки. Отключение простаивающих блоков уменьшает общее потребление. C-state [точная расшифровка неизвестна], энергосостояние — состояние микросхемы с точки зрения потребления энергии. Для каждой силовой шины описывается его напряжение, а для каждого блока — состояние ключа питания (если есть), подача тактирования и активность. Каждая допустимая комбинация этих параметров обозначается буквой C и цифрой, причём C0 означает «всё включено», а бо́льшие цифры означают более глубокий сон при простое и большее время для пробуждения. P-state (performance state: состояние производительности) — видимое для ОС состояние микросхемы с точки зрения баланса скорости и потребления энергии в энергосостоянии C0. Для каждой силовой шины описывает его напряжение, а каждого блока — частоту тактирования. Каждая такая комбинация обозначается отдельной цифрой, причём P0 обозначает максимальные скорость и потребление, а бо́льшие цифры означают их постепенное уменьшение. Для ЦП Intel P1 означает штатную частоту, а P0 — максимальную с учётом технологии Turbo Boost. Для ЦП AMD P0 означает максимальную возможную на данный момент частоту, меняющуюся при работе аналогичной технологии Turbo-Core. SpeedStep, Cool’n’Quiet, PowerNow! — название фирменных технологий энергосбережения для ЦП Intel, AMD и VIA. base frequency (базовая частота), штатная частота — максимальная частота продолжительной надёжной работы цифровой микросхемы при полной нагрузке и максимальной допустимой температуре кристалла. Является одной из основных характеристик цифровой микросхемы. Определяется во время пост-производственного теста вместе с необходимыми для её поддержания питающими напряжениями. В работе процессора частота может автоматически повышаться сверх штатной при наличии технологии авторазгона. Ручное повышение (обычный разгон), как правило, не рекомендуется, т. к. может привести к перегреву и выходу из строя чипа. frequency ceiling, частотный потолок — максимально достижимая на данный момент штатная частота микросхем данного типа при массовом производстве на данном оборудовании. Увеличивается при переходе на меньший техпроцесс, следующий степпинг и другую микроархитектуру с «простыми» (по метрике FO4) стадиями конвейера (для нового ЦП). FO4 (fan-out of 4: коэффициент разветвления 4) — относительная метрика времени срабатывания логической схемы, не зависящая от используемого техпроцесса (в отличие от абсолютной, измеряемой в долях секунды). Равна времени срабатывания логического вентиля, нагруженного на выходе четырьмя другими того же размера. В процессорах применяется для измерения логической сложности стадии конвейера. Типичное её значение для современных x86-ЦП — 21–23 единицы FO4. Конвейер, разделённый на большее число стадий меньшей сложности, сможет работать на большей частоте, исполняя ту же совокупную работу, т. к. каждой стадии потребуется меньшее время для срабатывания. Реальная работа в стадии меньше, т. к. при замере «полной FO4-эквивалентной» задержки учитывается дрожание частоты (джиттер) и нечёткие срезы сигнала тактирования (≈2 FO4), а также задержки межстадийных буферов данных (≈3 FO4).