Продолжаем рассматривать особенности, казалось бы, всем известной архитектуры процессоров x86. Предыдущие статьи тут:
Давайте перескочим сразу на конец 90-х годов прошлого века и кратко рассмотрим процессор Intel Pentium, в котором учитывалось последнее веяние времени. С некоторых пор пользователи домашних компьютеров начали активно потреблять мультимедийный контент. Посмотрите на скриншоты ниже и испытайте ностальгию.
На самом деле распаковка сжатой музыки (*.mp3), картинок (*.jpg) и применение фильтров к изображениям требуют большого количества вычислений и небывалая легкость, с которой это сейчас происходит связана прежде всего с возросшей производительностью новых членов семейства x86. Про сжатие изображений JPEG было в одной из ранних статей.
Intel Pentium MMX
Сразу хочется отметить возросший аппетит нового члена семейства. Данные и инструкции поступают в процессор из оперативной памяти уже не по 4, а по 8 байт (64 Bit Data Bus) за один раз и разделяются на свои выделенные блоки высокоскоростной кэш памяти (Code Cache, Data Cache) размером по 16 килобайт.
В этом процессоре применены параллельные вычислительные конвейеры (ALU U Pipeline, ALU V Pipeline). Это два одновременно работающих арифметико-логических устройства, имеющие собственные шины для доступа в кэш память данных.
Ускорение операций для работы с мультимедиа
Кроме модуля работы с числами в формате с плавающей точкой (Floating Point Unit) появляется модуль для работы с массивами аудио и видео данных (MMX Unit). Как мы уже видели в прошлых обзорах по основам обработки сигналов в этом деле очень важно уметь быстро и эффективно производить операции интегральной свертки. Теперь же сложения и умножения можно производить над группой чисел одновременно за одну операцию.
В каждый 64-разрядный регистр этого модуля можно было поместить восемь 8-битных целых чисел, четыре 16-битных, два 32-битных или воспользоваться всей длиной регистра целиком.
На настоящий период этот набор регистров и машинных инструкций для операций с этими регистрами является устаревшим, но остается в процессорах по сей день из-за все той же необходимости запускать давно написанные программы.
Что было дальше...
Эта самая программная совместимость между процессорами, увеличение разрядности процессоров до 64 бит и добавление все новых и новых регистров привела современные процессоры в крайне перекаченный вид. Существуют отдельные ядра, объединенные коммутаторами и кэшами нижних уровней, а в каждом ядре для обеспечения обратной совместимости со всем старым программным обеспечением существуют все те регистры, которые добавляются в архитектуру десятки лет.
Регистры XMM это 128-битные структуры для хранения данных мультимедийных потоков и является улучшенной версией ранее рассмотренных регистров.
Со временем для улучшения производительности векторных операций на массивами чисел в состав ядер процессоров вошли регистры с разрядностью 256 и даже 512 бит. Если старое приложение использует ранее введенные инструкции и регистры, то ничто не мешает их использовать в более новых моделях процессора.
Как можно предположить, система команд такого монстра не может быть простой и понятной. Инструкции могут быть самого различного размера и их формат явно невозможно заучить. Однако, в силу различных обстоятельств эти процессоры стали неотъемлемой частью нашей жизни.
Мне кажется, после этой серии статей у многих должно появиться обоснованное сомнение в том как хорошо они знают ту архитектуру процессора, без которой жить уже практически невозможно. Лайк, если узнали что-то новое.
Поддержите статью лайком если понравилось и подпишитесь чтобы ничего не пропускать.
Также не обойдите вниманием канал на YouTube. Подписки и лайки будут приятным ответом от аудитории.