Любой исторический экскурс по сути своей является демонстрацией какого-нибудь эволюционного процесса. Глубокое понимание эволюционного процесса в свою очередь предполагает наличие неких специализированных знаний. К примеру, редкий Дроздов долетит до середины "Прогулок с динозаврами", не имея за плечами звание доктора биологических наук. То же и с компьютерами. Без приблизительного понимания основных составляющих микропроцессора его эволюция кажется процессом скучным, неинтересным и абсолютно не впечатляющим. Набором сложновыговариваемых терминов и сухих цифр. В то время как для человека подкованного и понимающего процессор, так сказать, "изнутри", исторический экскурс трансформируется в красочную
Блок-схема модуля декодирования процессора AMD-K6-2 панораму эпохальных событий и революционных инноваций. Собственно, об этом данная статья.
Кремний для фортепьяно с оркестром Процессор — это микросхема. Если хотите, "универсальный комбайн для чисел" — словосочетание, неплохо определяющее набор его функций. Он перемалывает тонны информации, которые ему доставляют по специальным каналам (шинам) другие компоненты компьютера. Процессор работает с целыми числами и с числами с плавающей запятой, осуществляет матричные и конвейерные операции (это когда одно и то же действие применяется сразу для большого массива данных), сравнение, управление памятью, обработку машинных команд и многое другое. Другими словами, на центральный процессор возложены миллионы важных и ответственных операций, о факте существования которых не знает большинство компьютерных пользователей. Здесь необходим небольшой экскурс в радиоэлектронику. Самая главная деталь процессора — транзистор (от англ. transfer — переносить и resistor — сопротивление; подробнее о
Блок-схема модуля декодирования процессора AMD-K6-2 транзисторах мы писали в апрельском номере "Игромании"). В цифровой технике используются биполярные транзисторы, работающие в качестве электронного ключа. Если есть сигнал на одной из ножек (называется база), то между двумя другими ножками (эмиттер и коллектор) идет ток. Если нет, то ток не идет. То есть всего имеется два состояния — состояние нуля и состояние единицы. Благодаря гению Аде Августе Лаврейс с давних времен цифровая техника оперирует двоичной системой исчисления. На практике процессор работает не с двумя (ноли и единичка), а с тремя состояниями: высокий логический уровень (единица, сигнал порядка 3-5 В), низкий логический уровень (ноль, порядка 0,5-1 В) и высокоимпедансное состояние (Z-состояние, попросту отсутствие тока). Комбинациями нулей и единиц кодируются все поступающие в процессор и выходящие из него данные. Для микросхемы текст, числа, графика, музыка и базы данных — суть абстрактные понятия, ибо все эти термины в конечном итоге сходятся к набору нулей и единичек. С человеческой точки зрения это слишком сложно и непонятно,
Процессор AMD-K6-2, вид сверху однако с компьютерной — в самый раз. Также, помимо двоичной системы, процессор умеет работать с двоично-десятичной. Это когда числа разбиваются на разряды в соответствии с правилами десятичной системы, а сами цифры числа записываются в двоичной форме. Данные внутри процессора передаются не последовательно по одной циферке, а порциями, кратными степени двойки, по "параллельным" (отметим, что это значительное упрощение, так как в действительности все намного сложнее) проводникам. Число одновременно передаваемых бит определяет разрядность процессора. Например, большинство современных процессоров — 32-разрядные, а значит, по их каналам одновременно передаются 32 бита, или 4 байта или 2 "слова" (термин, обозначающий 2 байта). Однако это не аксиома — какие-то внутренние каналы для передачи данных могут иметь и другую разрядность, лучше подходящую их ролям. К примеру, во многих ЦПУ (центральное процессорное устройство) одни каналы, или шины, передают только данные, другие — только адреса, ну а третьи — команды.
Блок-схема модуля Dispatch-Execute Unit процессора Pentium II
Две архитектуры Существует две основных архитектуры построения микропроцессоров — CISC и RISC. Отличия между ними принципиальны, и фактически по ним весь мир компьютерных технологий делится на два лагеря. Для справки: наши с вами x86 ЦПУ относятся к архитектуре CISC, а компания HP выпускает свою собственную серию ЦПУ, сделанных по архитектуре RISC. Процессоры архитектуры CISC (Complex Instruction Set Computer) имеют очень большой набор команд (несколько сотен) и очень малое число регистров. К слову, регистры — это быстрые (быстрее, чем в кэше) ячейки памяти, которые играют огромную роль в непосредственном выполнении команд.
Блок-схема модуля Fetch Decode Unit процессора Pentium II Большинство команд могут оперировать только данными из регистров. Процессоры архитектуры CISC дороже и сложнее, чем RISC-процессоры, но программы для них короче, ведь сложные действия можно описать одной командой. Именно на этой архитектуре основываются современные процессоры. Многие считают, что это неправильное решение и всего лишь исторический казус. Ведь раньше оперативная память стоила очень дорого, дороже даже, чем сами процессоры. В те времена можно было позволить себе экономию памяти за счет усложнения принципов работы. Поэтому процессоры долгое время развивались по пути CISC. Сегодня некоторые игроки на компьютерной арене пытаются повернуть прогресс в другое русло. Они считают архитектуру RISC более выгодной. Процессоры Transmeta тому лучший пример. Архитектура RISC (Reduced Instruction Set Computer) подразумевает малое количество команд, но очень большое количество регистров разного назначения. Взгляните на свой принтер, модем, жесткий диск, телевизор, стиральную машину (ровесники "Вятки" не в счет), микроволновую печь и даже тостер. Во всех этих полезных приборах с большой вероятностью имеются маленькие RISC-процессоры. На них основываются замечательные микросхемы — микроконтроллеры. В вашем системном блоке таких микроконтроллеров наверняка больше десятка. Типичный микроконтроллер содержит, кроме процессора, собственную оперативную память, системную шину,
Конструкция печатной платы процессора Intel Covington, обратная сторона какой-нибудь внешний интерфейс, таймеры и много чего еще. В одной недорогой микросхеме — целый компьютер, который быстро решает проблемы управления.
Высший разум или командный интерпретатор? Любая программа представляет собой набор команд на языке низкого уровня (машинных инструкций) и данных, с которыми эти команды-инструкции работают. Процессор последовательно считывает команды (часто используется термин "коды") и выполняет их. Для упрощения работы программистов трудно запоминаемые коды вида 0AB78FС3 формализуются на специальный язык — ассемблер. Все команды этого языка имеют однозначные соответствия в машинных кодах и представляют собой англоязычные сокращения, обозначающие целевое назначение команды. К примеру, команда пересылки операнда MOV означает глагол "move", что значит "двигать", "переносить". А вот так на ассемблере выглядит программа для сравнения двух беззнаковых чисел: MOV AX, ЧислоX ; поместить в регистр AX некое число MOV BX, ЧислоY ; поместить в регистр BX некое число CMP AX, BX ; выполнить команду сравнения
Вычислительные модули групп Register X и Register Y процессора AMD-K6-2 JAE label1 ; если первый операнд (число в AX) команды CMP больше или равен второму (число в BX), то далее команды начинают исполнятся со строки с меткой label1 .... ; программный код, который выполняется при условии ЧислоX<ЧислоY .... label1: .... ; и программный код, который выполняется при условии ЧислоX³ ЧислоY .... Тут же для справки хочу добавить, что ассемблер, по своей приближенной к железу природе, язык весьма "многословный". То есть даже самая по всем параметрам простенькая программка будет занимать у вас несколько сот строк исходного текста. Чтобы справиться с этой бедой, коллеги программисты с давних времен придумали абстрагироваться от ассемблера с помощью языков более высокого уровня — таких, например, как С и Pascal. Основная идея подобного рода языков — это попытка оторваться от
Блок-схема процессора Pentium II чуждого и чрезмерно сложного ассемблера и машинных кодов путем создания языка, максимально приближенного к естественному человеческому. В идеале мечтой любого фантаста был бы вариант, при котором "программист" (в этом месте матерые кодеры плюются) мягким тенорком выдавал бы в микрофон команды вида "а сравни-ка мне, дружочек, циферку раз с циферкой два, и ежели чего, то выполни мне такую-то процедурку". На данный момент в природе существуют определенного рода разработки, разумеется, без распознавания речи, однако реально позволяющие превратить некогда мистический процесс программирования в детский конструктор Лего. Всем известный InpriseDelphi тому неплохой пример. Также на память приходят серьезные RationalRose, ERWin и им подобные, так называемые CASE-продукты. Вполне может статься, что в недалеком будущем, когда сложность процессоров и программ возрастет в очередной десяток раз, — процесс программирования на машинных кодах окончательно отойдет в разряд легенд, и
Общий вид процессора Xeon какой-нибудь MS Visual Basic будет считаться языком самого что ни на есть низкого уровня.
Тайны кремниевого кузнеца Тот факт, что процессор размещается на кремниевой подложке, думаю, общеизвестен. Однако мало кто знает, что процессоры производят не штучным способом, а массово, когда на одной громадной пластине формируют десятки или даже сотни отдельных кристаллов. Давайте совершим виртуальную экскурсию по всем этапам создания процессоров. Сначала на кремниевой подложке под воздействием высокой температуры и кислорода формируется тонкий слой диоксида кремния (от редакции: отметим, что на данный момент существуют более продвинутые технологии, не использующие диоксид кремния и некоторые другие этапы/элементы, перечисляемые далее). Это первый слой будущего слоеного пирога. После этого подложка покрывается фотослоем, который может становиться растворимым под действием ультрафиолетового излучения. В процессе, который получил название фотолитографии, ультрафиолетовое излучение по маске засвечивает ненужные участки схемы, и растворитель убирает все лишнее. Открывшийся в просветах диоксид кремния вытравливают химическим способом. Химические препараты удаляют и ненужный теперь фотослой. Оставшиеся участки диоксида кремния волшебным образом оказываются цепями процессора. В процессоре несколько электронных слоев, поэтому процесс повторяется несколько раз. Слои разделяются между собой дополнительной прослойкой диоксида кремния. Второй слой образуется с участием поликристаллического кремния по той же самой технологии, что и первый.
А вот так выглядит под микроскопом один уже вырезанный из пластины процессор. Вот так вот выглядит 300 мм пластина со свежевыращенными Intel Pentium 4. Следующая стадия производства процессоров называется ионной имплантацией. Ее суть состоит в том, что области, обработанные ультрафиолетом, бомбардируются ионами нужных примесей. Именно эти ионы обеспечивают электрическую проводимость цепей процессора. "Пирог" дополняется новыми слоями, созданными по схожей технологии. В современном процессоре около 20 слоев укладываются в сложную трехмерную схему. В местах, где необходимо соединить проводники двух различных слоев между собой, оставляются своеобразные "окна", которые заполняются проводящими веществами. После этого процессоры прямо на коллективной пластине проходят тестирование, по итогам которого отсеиваются неработоспособные образцы, а оставшиеся группируются по оптимальным частотам. Процессоры вырезаются из пластины и попадают на стадию индивидуальной обработки. Они получают свой собственный корпус, повторно тестируются и докладывают руководителю цеха о своей полной боевой готовности. Последнее, к сожалению, пока не более чем шутка. На этом пока все. Наша краткая экскурсия по азам устройства черного ящика подошла к концу, и, надеюсь, была для вас полезной. В следующей части мы попробуем еще глубже проникнуть в тайны работы центрального процессора, посмотрим на новейшие разработки русских ученых и заглянем в недалекое будущее. Не желаете узнать, какими будут процессоры двадцать первого века?