Найти в Дзене
IT. Как это работает?

x86. Античная трагедия

Слабое место самых популярных процессоров... Кто пустил стрелу? Всем привет! Мы продолжаем более пристально рассматривать семейство процессоров x86, вычистившее с рынка всех своих конкурентов. Предыдущие статьи тут: Только в последнее десятилетие ситуация начала меняться и можно с уверенностью сказать, что с учетом особенностей работы мобильных устройств (смартфонов и планшетных компьютеров) x86 все же имеет "ахиллесову пяту" и жизнь запустила в нее свою стрелу. В этой статье рассмотрим процессор 80386. Через 2 года после появления предыдущей модели 80286, а именно уже 1987 году Intel выпускает уже 32-разрядный процессор 80386 и основной героизм инженеров в том, что невероятными усилиями была обеспечена совместимость программ. Если говорить точнее, то все старые программы, написанные для первого члена семейства могли работать на 32-разрядном процессоре. Для этого аппаратно реализовывался, так называемый, реальный режим процессора. В нем вычисления адреса происходили точно так же чере

Слабое место самых популярных процессоров... Кто пустил стрелу?

Всем привет! Мы продолжаем более пристально рассматривать семейство процессоров x86, вычистившее с рынка всех своих конкурентов. Предыдущие статьи тут:

Только в последнее десятилетие ситуация начала меняться и можно с уверенностью сказать, что с учетом особенностей работы мобильных устройств (смартфонов и планшетных компьютеров) x86 все же имеет "ахиллесову пяту" и жизнь запустила в нее свою стрелу. В этой статье рассмотрим процессор 80386.

Через 2 года после появления предыдущей модели 80286, а именно уже 1987 году Intel выпускает уже 32-разрядный процессор 80386 и основной героизм инженеров в том, что невероятными усилиями была обеспечена совместимость программ.

Архитектура процессора 80386
Архитектура процессора 80386

Если говорить точнее, то все старые программы, написанные для первого члена семейства могли работать на 32-разрядном процессоре. Для этого аппаратно реализовывался, так называемый, реальный режим процессора. В нем вычисления адреса происходили точно так же через сегмент и смещение.

Формирование полного физического 20-битного адреса при помощи 16-битного сегментного регистра и 16-разрядного регистра со смещением.
Формирование полного физического 20-битного адреса при помощи 16-битного сегментного регистра и 16-разрядного регистра со смещением.

Для совместимости программ необходимо, чтобы новый процессор имел все те-же регистры, что и его ранняя версия и сделано это было путем поглощения 32-регистрами 16-разрядных. Внутри 32-разрядных регистров можно размещать 16-разрядные данные.

Регистры процессора 80386. Синего цвета - 16-битные, красным цветом изображено их расширение до 32-бит.
Регистры процессора 80386. Синего цвета - 16-битные, красным цветом изображено их расширение до 32-бит.

Конечно, реальный режим работы мог работать с памятью, объемом не более одного мегабайта (2^20 = 1 048 576 байт). Для использования полного набора преимуществ 32-разрядного процессора нужно было переключиться в защищенный режим. Обратное переключение было возможно только через перезагрузку компьютера. Именно из-за этой неприятности героизм инженеров носит весьма сомнительный характер.

Инженеры Intel, конечно, молодцы, но из-за самого первичного просчета и недальновидности вся эта совместимость приобрела весьма тоскливый вид. Играть в любимые игры было хорошо в реальном режиме и под управлением нетребовательной к ресурсам компьютера операционной системы DOS, однако, если дело доходило до красивой печати на принтере, то лучшим решением была загрузка операционной Windows. Сейчас это уже и звучит довольно дико.

Защищенный режим

32-разрядный процессор 80386 по меркам конца 80-х годов это довольно внушительный шаг вперед для Intel, в нем было использовано большое количество улучшений. Обращения в оперативную память осуществлялись сразу 32-битными словами (D0-D31). Поступающие оттуда машинные слова попадают в очередь инструкций (16-byte Code Queue) или в регистровый файл, если это данные.

Физически данные и инструкции адресуются в оперативной словами по 4 байта (D0-D31)
Физически данные и инструкции адресуются в оперативной словами по 4 байта (D0-D31)

Инструкции попадают на декодер сразу по 4 байта. Весьма хитро формируемый физический 32-битный адрес (30-битный адрес 4 байтного слова A2-A31) прежде чем будет выставлен на шину, проходит через проверку на допустимый диапазон, а также любое действие над данными в памяти проверяется на допустимость.

Блоки, осуществляющие контроль корректности доступа процессора к участкам памяти необходимы для безопасной работы множества процессов
Блоки, осуществляющие контроль корректности доступа процессора к участкам памяти необходимы для безопасной работы множества процессов

К сожалению, подробности формирования физического адреса в защищенном режиме коротко описать не получится. Однако, можете поверить, что аппаратно реализовать этот механизм в кристалле процессора это непростая задача, а уже тем более невероятно сложно было обеспечить исполнение старых программ на новом процессоре без всякой эмуляции.

К чему привел такой героизм? Во-первых, от Intel не отвернулась большая часть потребителей и это для них хорошая новость. Во-вторых, аппаратная реализация изначально сомнительного реального и защищенного режимов на одном чипе привела к разрастанию количества сложных модулей в процессоре. Это плохая новость, ибо впереди забрезжил рассвет компьютеров совсем другого класса. Это необъятный рынок носимых устройств.

Размер чипа процессора ARM (слева) в сравнении с чипом 80386 (справа)
Размер чипа процессора ARM (слева) в сравнении с чипом 80386 (справа)

Большое количество транзисторов требует повышенного энергопотребления, а это совсем не играет на руку тем устройствам, в которых время работы без подзарядки очень важно.

Итого:

Изначальная ставка на сегментную организацию памяти оказалась не выигрышной, ибо впоследствии нужно было обеспечивать совместимость с ранее написанными программами. Также, набором уже устоявшихся 16-разрядных сегментных регистров и регистров общего назначения необходимо было организовать защищенный многозадачный режим. В совокупности все это привело к разрастанию логики на чипе и повышению его энергопотребления. С каждой новой моделью архитектура x86 становилась все более монструозной, хотя и не сказать что неповоротливой. Продолжение следует...

Поддержите статью лайком если понравилось и подпишитесь чтобы ничего не пропускать.

Также не обойдите вниманием канал на YouTube. Подписки и лайки будут приятным ответом от аудитории.