Здравствуйте! Когда появится возможность сдать экзамен на сертификат? |
Современные процессоры
Основные характеристики процессора: тактовая частота, разрядность, машинный язык и система команд; многоядерные процессоры; краткий обзор современных семейств процессоров - Intel x86, ARM, MIPS, AVR; отечественные процессоры "Эльбрус" и "Байкал".
Как мы уже говорили выше, компьютер состоит из большого количества электронных, а также некоторого количества механических устройств. Большинство из них предназначены либо для хранения и передачи данных (оперативная память, жёсткий диск, сетевой адаптер), либо для выполнения служебных функций (электрическое питание, охлаждение). Главной задачей компьютера является исполнение программ, и её выполняет центральный процессор. Имеющиеся в современных компьютерах другие устройства, которые могут быть достаточно интеллектуальными, например, веб-камера или звуковой адаптер, также могут обладать собственными процессорами и самостоятельно преобразовывать данные, однако функциона
Центральный процессор (Central Processing Unit, CPU) является основным модулем компьютера и предназначается для выполнения программ.
Основными характеристиками процессора являются:
- тактовая частота,
- разрядность,
- iмашинный язык и система команд.
ТАКТОВАЯ ЧАСТОТА ПРОЦЕССОРА
Важно, чтобы процессор и другие узлы компьютера выполняли свои действия синхронно, поскольку иначе их деятельность окажется несогласованной. Так, например, различные узлы компьютера должны "знать", когда именно в регистрах процессора или на выходе логических схем будут готовы корректные данные. Если начать считывать эти данные раньше положенного сорока (например, считывать данные на выходе описанного в предыдущем разделе сумматора, не дождавшись полного прохождения переноса), то они окажутся некорректными, и в работе ЭВМ произойдёт сбой.
Обычных часов для измерений времени с этой целью недостаточно, поскольку требуется очень высокая точность, в частности, в связи с тем, что измерять приходится небольшие промежутки времени - доли наносекунд и даже меньше. Наконец, в данном случае не требуется абсолютное время, достаточно лишь относительного - то есть требуется отвечать на вопросы типа "сколько прошло времени с момента возникновения того или иного события?", "сколько времени нужно ждать?" и т.д.
Учет времени в компьютере осуществляется специальным способом - с помощью подсчета количества тактовых импульсов, которые были сгенерированы в период от одного события до другого. Тактовые импульсы генерируются через равные промежутки времени тактовым генератором - специальной электронной схемой, встроенной в центральный процессор компьютера или его материнскую плату. Таким образом поток тактовых импульсов образует поток времени внутри компьютера.
Количество тактовых импульсов в единицу времени, генерируемых тактовым генератором, называется тактовой частотой процессора. Тактовая частота измеряется в герцах (Hz).1 Hz (1 Гц) соответствует одному событию в секунду, таким образом 1 Hz =1 .
Тактовая частота является одна из важных характеристик процессора и компьютера в целом: чем она выше, тем больше операций процессор выполняет за единицу времени, тем выше его производительность. В силу важности этой характеристики часто говорят о тактовой частоте всего компьютера, имея в виду тактовую частоту его процессора.
Невозможно достичь значительного увеличения производительности компьютера путём простого увеличения тактовой частоты: для того, чтобы электронные схемы работали на высоких частотах, они должны быть соответствующим образом сконструированы. Однако до некоторой степени повысить тактовую частоту готового компьютера возможно - это называют "разгоном" ("overclocking") процессора. "Разгон" позволяет повысить производительность компьютера, но он требует специальных знаний и опыта для аккуратного подбора допускающих "разгон" компонент, подстройки параметров электропитания, организации дополнительного охлаждения и т.д. Подобная практика достаточно распространена, но производителями электроники она не рекомендуется, поскольку повышает риск выхода компьютера из строя.
Процессор является самым высопроизводительным модулем ЭВМ, поэтому тактовая частота, используемая для синхронизации различных блоков внутри процессора, является слишком высокой для других модулей компьютера. В частности, эта тактовая частота оказывается высокой для синхронизации взаимодействия процессора с другими модулями. Поэтому в современных ЭВМ, как правило, имеется две тактовых частоты - внутренняя и внешняя.
Внутренняя тактовая частота ЭВМ используется внутри процессора для синхронизации его блоков и составляет на сегодняшний день 1 GHz и больше.
Внешняя тактовая частота ЭВМ используется для синхронизации процессора и прочих устройств компьютера, с которыми он взаимодействует, и составляет на сегодняшний день сотни MHz.
Для ЭВМ первого поколения внутренняя тактовая частота была ограничена значением100 KHz, и это означает, что они могли совершать до 100 000 операций в секунду. Оперативная память этих компьютеров строилась на базе электромеханических реле и её быстродействие составляло всего несколько Hz, поэтому и внешняя тактовая частота ЭВМ первого поколения составляла те же самые несколько Hz. Для последующих ЭВМ, обладавших электронной оперативной памятью, внешняя и внутренняя тактовые частоты отличались уже не так значительно. Типичным было отличие в несколько раз, в отдельных случаях частоты могли совпадать. Для ЭВМ второго поколения верхняя граница внутренней тактовой частоты увеличилась до 1 MHz, что соответствовало миллиону операций в секунду. Для третьего поколения - 10 MHz и, соответственно, 10 миллионов операций в секунду. Тактовая частота современных процессоров, используемых в ЭВМ четвертого поколения, составляет до 5 GHz. Значения тактовой частоты для ряда известных процессоров приведены в таблице 8.1.
Название процессора | Год выпуска | Тактовая частота |
---|---|---|
Intel 4004 | 1971 | 740 KHz |
Motorola 6800 | 1974 | 2 MHz |
Intel 80186 | 1982 | 6 MHz |
Intel 80486 DX | 1989 | 20 MHz |
Intel 80486 DX4 | 1994 | 100 MHz |
Pentium 4 | 2000 | 1,6 GHz |
Intel Xeon Westmere | 2010 | 3,6 GHz |
IBM zEC12 | 2012 | 5,5 GHz |
Отметим, что произвольно поднять тактовую частоту не позволяет ограничение на передачу импульсов скоростью света и невозможностью сделать размеры транзисторов и прочих полупроводниковых элементов меньше, чем размер атома.
Помимо этих ограничений неограниченно увеличивать тактовую частоту не позволяют свойства используемых полупроводников. Кремниевые диоды и транзисторы управляют прохождением электрических сигналов, меняя свою электрическую проводимость. Они делают это очень быстро, но в масштабах современной электроники отнюдь не мгновенно: изменить своё состояние они могут "всего лишь" несколько миллиардов раз в секунду. В последние годы физиками ведутся исследования, посвященные возможности замены традиционных кремниевых транзисторов на транзисторы с применением графена, ожидаемая скорость "срабатывания" которых будет в сотни раз выше. Но пока можно говорить лишь об интересных перспективах ускорения электронных схем, до внедрения новых технологий в индустрию ещё далеко.
РАЗРЯДНОСТЬ ПРОЦЕССОРА
Другой важной характеристикой процессора является его разрядность, которая определяет следующие важнейшие характеристики компьютера.
- Количество бит, которые процессор может обработать за одну операцию над целыми числами. Это могут быть как арифметические операции (например, сложение, вычитание, умножение), так и побитовые логические (например, "и", "или", "не").
- Размер арифметических регистров процессора, то есть регистров, предназначенных для хранения целых чисел. Регистры процессора, как наиболее быстрый вид памяти, интенсивно используются для хранения аргументов целочисленных операций, примеры которых мы приводили выше, и их результатов.
- Количество бит в шине данных, и следовательно, количество бит, которое процессор может за одну операцию (за один такт) прочитать из оперативной памяти или записать в неё.
- У большинства современных процессоров разрядность определяет максимальный объём оперативной памяти, напрямую адресуемой процессором. Эта величина зависит от размера адресных регистров, предназначенных для хранения адресов данных (в том числе и машинного кода) в оперативной памяти.
- При программировании на языке C, как правило, разрядность задаёт размеры длинного целого числа (long int) и указателя (void *).
Процессор с разрядностью 64 бита и тактовой частотой 1 GHz может обработать за секунду столько же данных, сколько процессор с разрядностью 32 бита и тактовой частотой 2 GHz. Практически, все современные микропроцессоры, выпускаемые компаниями Intel и AMD, являются 64-разрядными, но для совместимости с предыдущими версиями поддерживают 32-битный режим. Совместимость процессоров означает возможность новым, 64-разпядным процессорам, исполнять старые программы, скомпилированные в 32-разрядном режиме для старых 32-разрядных процессоров.
Как и в случае с тактовой частотой, у процессора также есть внутренняя и внешняя разрядности. Внутренней разрядностью называют разрядность регистров процессора. Внешняя разрядность - это разрядность шин данных и адреса, к которым подключён процессор. У многих современных процессоров эти разрядности совпадают, но в общем случае это не всегда так. Так, например, у Intel 8086 и внутренняя, и внешняя разрядность - 16 бит, а у его более дешёвого аналога Intel 8088 внутренняя разрядность 16 бит, а внешняя - 8. Разделение внутренней и внешней разрядности позволяет конструкторам ЭВМ использовать процессор, совместимый с Intel 8086 (то есть Intel 8088 исполняет те же программы), но при этом удешевить шину данных и оперативную память, снизив их разрядность (ценой снижения пропускной способности). Ещё одним примером является процессор Intel Pentium I: внутренняя разрядность у него, как и у предыдущих процессоров семейства, составляет 32 бита, а внешняя - 64. С одной стороны, это позволило сохранить обратную совместимость с 32 битными программами, с другой - ускорить обмен данными между оперативной памятью и кэш-памятью (данные в современных процессорах загружаются не напрямую из оперативной памяти в регистры, а вначале попадают в кэш-память, о которой мы расскажем ниже).
МАШИННЫЙ ЯЗЫК И СИСТЕМА КОМАНД ПРОЦЕССОРА
Современные высокоуровневые языки программирования позволяют представлять и алгоритмы, и данные таким образом, что программист может, работая с программным кодом, продолжать мыслить в терминах исходных задач. Для процессора, который в итоге исполняет написанные программы, такой уровень абстракции недоступен. Процессор может исполнить лишь программу на машинном языке.
Машинный язык (Machine Language) процессора является способом представления программы в памяти компьютера при помощи двоичного машинного кода, который "понимается" центральным процессором, то есть может быть им выполнен. Машинный язык состоит из (i) системы команд (Instruction Set) - набора операций, которые может выполнять процессор; (ii) видов данных (различные числа, адреса и пр.), для которых определены эти операции; (iii) способа кодирования команд и данных в двоичном коде.
Система команд определяет операции, которые может выполнять процессор. Прежде всего, это часто используемые операции:
- сложение/умножение/деление в целочисленной арифметике,
- распространённые математические функций (экспонента, логарифм, тригонометрические функции и др.),
- загрузка/выгрузка данных в процессор,
- операции над массивами данных и т.д.
Операции ориентированы на определённые виды данных, с которыми процессор может работать. Например, это могут быть целые числа разной длины со знаком и без, вещественные числа разной точности, символьные данные, указатели. Наконец, кодирование определяет, каким образом эти операции и данные должны храниться в оперативной памяти, ведь там хранятся в итоге массивы байтов. Например, различные семейства процессоров могут по-разному упорядочивать в памяти байты у многобайтовых целых чисел - от младшего к старшему или от старшего к младшему.
Машинные языки разных семейств процессоров существенно отличаются подобно тому, как отличаются языки различных народов. Особенности естественных языков определяются средой обитания и историей их носителей, а машинных - назначением соответствующих компьютеров и преемственностью внутри семейств. Например, процессоры компьютеров семейства System/360, хоть и относятся к архитектуре фон Неймана, поддерживают, помимо двоичной, и десятичную арифметику, что важно для финансовых вычислений. Другой пример - постепенное (на протяжении более 40 лет) расширение поддержки вещественной арифметики и обработки массивов чисел в процессорах семейства Intel x86 по мере роста количества multimedia-приложений для персональных компьютеров.