Слабое место самых популярных процессоров... Кто пустил стрелу?
Всем привет! Мы продолжаем более пристально рассматривать семейство процессоров x86, вычистившее с рынка всех своих конкурентов. Предыдущие статьи тут:
Только в последнее десятилетие ситуация начала меняться и можно с уверенностью сказать, что с учетом особенностей работы мобильных устройств (смартфонов и планшетных компьютеров) x86 все же имеет "ахиллесову пяту" и жизнь запустила в нее свою стрелу. В этой статье рассмотрим процессор 80386.
Через 2 года после появления предыдущей модели 80286, а именно уже 1987 году Intel выпускает уже 32-разрядный процессор 80386 и основной героизм инженеров в том, что невероятными усилиями была обеспечена совместимость программ.
Если говорить точнее, то все старые программы, написанные для первого члена семейства могли работать на 32-разрядном процессоре. Для этого аппаратно реализовывался, так называемый, реальный режим процессора. В нем вычисления адреса происходили точно так же через сегмент и смещение.
Для совместимости программ необходимо, чтобы новый процессор имел все те-же регистры, что и его ранняя версия и сделано это было путем поглощения 32-регистрами 16-разрядных. Внутри 32-разрядных регистров можно размещать 16-разрядные данные.
Конечно, реальный режим работы мог работать с памятью, объемом не более одного мегабайта (2^20 = 1 048 576 байт). Для использования полного набора преимуществ 32-разрядного процессора нужно было переключиться в защищенный режим. Обратное переключение было возможно только через перезагрузку компьютера. Именно из-за этой неприятности героизм инженеров носит весьма сомнительный характер.
Инженеры Intel, конечно, молодцы, но из-за самого первичного просчета и недальновидности вся эта совместимость приобрела весьма тоскливый вид. Играть в любимые игры было хорошо в реальном режиме и под управлением нетребовательной к ресурсам компьютера операционной системы DOS, однако, если дело доходило до красивой печати на принтере, то лучшим решением была загрузка операционной Windows. Сейчас это уже и звучит довольно дико.
Защищенный режим
32-разрядный процессор 80386 по меркам конца 80-х годов это довольно внушительный шаг вперед для Intel, в нем было использовано большое количество улучшений. Обращения в оперативную память осуществлялись сразу 32-битными словами (D0-D31). Поступающие оттуда машинные слова попадают в очередь инструкций (16-byte Code Queue) или в регистровый файл, если это данные.
Инструкции попадают на декодер сразу по 4 байта. Весьма хитро формируемый физический 32-битный адрес (30-битный адрес 4 байтного слова A2-A31) прежде чем будет выставлен на шину, проходит через проверку на допустимый диапазон, а также любое действие над данными в памяти проверяется на допустимость.
К сожалению, подробности формирования физического адреса в защищенном режиме коротко описать не получится. Однако, можете поверить, что аппаратно реализовать этот механизм в кристалле процессора это непростая задача, а уже тем более невероятно сложно было обеспечить исполнение старых программ на новом процессоре без всякой эмуляции.
К чему привел такой героизм? Во-первых, от Intel не отвернулась большая часть потребителей и это для них хорошая новость. Во-вторых, аппаратная реализация изначально сомнительного реального и защищенного режимов на одном чипе привела к разрастанию количества сложных модулей в процессоре. Это плохая новость, ибо впереди забрезжил рассвет компьютеров совсем другого класса. Это необъятный рынок носимых устройств.
Большое количество транзисторов требует повышенного энергопотребления, а это совсем не играет на руку тем устройствам, в которых время работы без подзарядки очень важно.
Итого:
Изначальная ставка на сегментную организацию памяти оказалась не выигрышной, ибо впоследствии нужно было обеспечивать совместимость с ранее написанными программами. Также, набором уже устоявшихся 16-разрядных сегментных регистров и регистров общего назначения необходимо было организовать защищенный многозадачный режим. В совокупности все это привело к разрастанию логики на чипе и повышению его энергопотребления. С каждой новой моделью архитектура x86 становилась все более монструозной, хотя и не сказать что неповоротливой. Продолжение следует...
Поддержите статью лайком если понравилось и подпишитесь чтобы ничего не пропускать.
Также не обойдите вниманием канал на YouTube. Подписки и лайки будут приятным ответом от аудитории.