Overclockers.ru   Конференция   Персональные страницы 
Среда, 6 августа 2008 // Сегодня сайт работает на сервере     

 
Intel CORE 2 DUO E8500 BOX

3.16 GHz LGA775 6Mb 1333MHz
цена 6'360 руб.
 
Asus P5K Premium WiFi

LGA775, Intel P35, 4хDDR2, SATA, 2xLAN
цена 4'360 руб.
 
корпус Cooler Master
Stacker 830 Evolution

RC-830-SSN3
цена 7'820 руб.

Новости CNews
  • Цена на Xbox обрушится до исторического минимума
  • Ученые сомневаются в возможности существования жизни на Марсе
  • В 'зеркалках' больше не будет зеркал
  • Создан плазмонный коллиматор для полупроводниковых лазеров
  • США: власти отбирают ноутбуки без объяснения причин
  • 'Доктор Веб' восстал против VirusBulletin



Для КПК


Новости в RSS




  Главная страница  Лаборатория  Развитие процессоров Intel: 1971-1993

Развитие процессоров Intel: 1971-1993
Рашид МУХАМЕДОВ / 10.11.2003 00:24 / ссылка на материал / версия для печати

Часть I - от 4004 до 8088

 
AMD SEMPRON 3000+ OEM

Socket 754 128Kb L2 800МГц
цена 26,32 у.е.
 
Palit Daytona 896Mb
GeForce GTX260

PCI-Express DualDVI TVO SLI Retail
цена 428,96 у.е.
 
HDD 750Gb Western Digital

Модель: 7500AYYS
7200rpm 16Mb SATA-II
цена 224 у.е.
 
Acer Aspire 5920G-833G25MI
Intel Core 2 Duo 2.4GHz/3072Mb/250Gb/
nVidia GeForce Go 9500M GS 512+768Mb/
DVD±RW(DL)/15.4"/Vista Home Premium
цена 33'500 руб.
 
Asus X80L
Intel Celeron M 2.0GHz/1024Mb/120Gb SATA/
Intel GMA X3100 128Mb/DVD±RW (DL)/
14.1"/Windows XP Home Edition RU
цена 17'500 руб.
 
Toshiba Satellite P300-133
Intel Core 2 Duo 2.4GHz/3072Mb/320Gb SATA/
ATI Mobility Radeon HD 3650 512+768Mb/
DVD±RW(DL)/17"/Windows Vista Home Premium
цена 39'700 руб.
Часть II - 186/286

Часть III - 386

Часть IV - 486

Часть V - Pentium

Часть I - от 4004 до 8088

Чем 386-й отличается от 486-го? А Pentium от Pentium Pro? Было время, когда я мог робко ответить: "Скоростью... Чем же еще?". Вспоминая это, не могу удержаться от улыбки - мои заблуждения и "полузнания" частенько бывали смешными. Например, году в 94-м узнав что "бэкашка" - 16-битный компьютер, я решил что, приходя к дяде, я играю на 486-битном (!) компьютере. И не удивительно - тогда в нашей школе словечки "триставосемьдесятшестой" и "четыреставосемьдесятшестой" были у всех на слуху и многие дети (я!) скороговоркой выпаливали их даже не понимая толком, что все это значит. Как бы то ни было, но мой период ошибок и "полузнаний" благодаря интересу к компьютерам постепенно прошел. Думаю, что я трансформировался из любознательного чайника в слегка утомленного профи. :)

С самого начала я завел общую тетрадку, в которой конспектировал все то, что узнавал интересного о процессорах, операционных системах, средствах мультимедиа... Читал все подряд и без разбору: от руководства по БЕЙСИКу к моей любимой "бэкашке" до "PC Magazine" с "Компьютеррой". Именно тогда я узнал, как расшифровывается EDO и PCI, как перезагрузить компьютер одной командой MS-DOS и многое другое. Впоследствии моими источниками стали Фидо и Интернет, а журналы приняли слегка "повторительный" оттенок. Сейчас во мне появилось желание консолидировать все то, что я разузнал о процессорах Intel, и выделить самое главное в рамках этой статьи.

НАЧАЛО – ВСЕГО ЛИШЬ 4 БИТА

Так с чего же началась история процессоров Intel? Познакомьтесь, пожалуйста, с ее первенцем - микропроцессором 4004! Он был представлен публике 15 ноября 1971 года и сразу же вызвал интерес у компьютерного мира. В то время реализация всех функций большой ЭВМ на одном маленьком чипе казалась просто чудом. Правда, его возможности были скромными даже для тех лет. Он мог обрабатывать данные порциями по 4 бита, длина машинной команды составляла 8 бит, что позволило иметь 46 инструкций. Память была раздельной для кодов и данных, менее 1 Кб для данных и 4 Кб для команд. Внутри у него было шестнадцать 4-битных регистров и 4-х уровневый стек.

Первый микропроцессор в мире!

Первый микропроцессор имел 4-битную архитектуру и состоял всего-навсего из 2300 транзисторов (в современных "пентиумах" их десятки миллионов). При этом стандартно он работал на частоте 108 КГц (отдельные экземпляры разгонялись до 740 КГц) - намного меньше мегагерца! Тогда голубой мечтой инженеров Intel было создание мегагерцового варианта, чтобы догнать по скорости IBM 1620 - дорогой, но весьма быстрый по тем временам "шкаф" эпохи 60-х. Техпроцесс по сегодняшним меркам был ужасно "толстым" - целых 10 мкм. Несмотря на то что в компьютерах этот процессор не нашел применения, он все же использовался в калькуляторах Busicom и в различных системах управления (например, уличными светофорами). Через год (1972) был выпущен 4040. Он представлял собой улучшенную версию 4004 - главным нововведением была поддержка прерываний. Кроме того, добавилось 14 новых инструкций и глубина стека была увеличена до 8 уровней, а память команд до 8 Кб.

8 БИТ – ПИОНЕРЫ 70-Х

8008 был разработан в апреле 1972 года и стал первым 8-битным микропроцессором. Он был очень похож на 4040: появившиеся 8-битные регистры и увеличенная до 16 Кб память команд - вот, пожалуй, единственные отличия. Стек по-прежнему находился внутри чипа и был ограничен 8 уровнями вложенности. Он все еще позиционировался как процессор для продвинутых калькуляторов и терминалов ввода-вывода. Однако спустя полтора года Intel создала гораздо более совершенную версию - 8080. Основные идеи архитектуры были взяты с его предшественника, 8008, - но внутренняя организация была улучшена настолько, что именно он стал стандартом де-факто для микропроцессоров того времени, а 8008 был вскоре забыт. Новый процессор имел очень развитую систему команд (78 базовых + более 200 их вариаций). Шина данных была 8-битной, а 16-разрядная адресная шина позволила ему прямо адресовать 64 Кб единой памяти, которая перестала физически разделяться на память команд и память данных. С чипом 8080 связано появление стека внешней памяти, то есть стек стал располагаться не внутри процессора, а в оперативной памяти и мог быть довольно большим. Это позволило использовать в программах алгоритмы рекурсии. "Восьмидесятка" обладала семью 8-битными регистрами (именовавшимися A - E, H и L, - причем пары BC, DE и HL могли быть скомбинированы в 16-битные регистры). Кроме того, был улучшен техпроцесс, он составил 6 мкм. Количество транзисторов: 6000. Тактовая частота достигла 2 МГц.

Помимо всего прочего 8080 послужил основой первому персональному компьютеру Альтаир-8800. Выпущенный в 1975 году фирмой MITS "Альтаир" стоил $439 ($621 в сборке). Клавиатура и монитор в стандартный комплект не входили, оперативная память составляла всего 256 байт (да-да, именно байт, а не килобайт), правда позже стали продаваться блоки расширенной памяти (от 1 до 4 Кб). Тогда же фирмой Digital Research была написана операционная система CP/M (Control Program for Microcomputers), ставшей на некоторое время стандартом, и прообразом MS-DOS. Между прочим, программисты "Альтаира" умудрялись писать даже игры, а Билл Гейтс и Пол Аллен - написали интерпретатор Бейсика. Стоит упомянуть о процессоре 8085, представленном в марте 1976 года, в котором Intel добавила две новые команды для управления прерываниями и усовершенствовала конструкцию корпуса. В этом процессоре появился сброс в начальное состояние (RESET) и использовался только один источник питания +5В (микропроцессору 8080 требовалось три источника: +12В, +5В и -5В). Одно из применений, которое нашел себе 8085 - электронные весы Toledo. Однако к середине 70-х рынок 8-битных чипов был уже переполнен. По этой причине Intel оставила попытки закрепиться на нем и сделала качественный шаг в сторону 16-битных процессоров...

ДЕБЮТ “ВОСЕМЬДЕСЯТ ШЕСТЫХ”

8086 (86-й) можно назвать прадедушкой всех современных "пентиумов". :) Первый 16-битный процессор, результат усиленных разработок 1976 года. Он содержал рекордное по тому времени количество транзисторов - 29 тысяч! Именно от него ведет свое начало известная на сегодня архитектура x86. Размер его регистров по сравнению с 8080 был увеличен вдвое, что в свою очередь увеличило производительность в 10 раз. Ведь раньше чтобы сложить два больших числа, не умещавшихся в 8-битном регистре, приходилось писать специальную программу на Ассемблере, а теперь это стало доступно на аппаратном уровне. Количество базовых команд процессора 8086 возросло до 92. Кроме того, размер информационной шины был увеличен до 16 разрядов, что дало возможность вдвое увеличить скорость передачи данных на процессор и с него. Размер его адресной шины тоже был существенно увеличен - до 20 бит. Это позволило 86-му иметь 1 Мб (220 байт) оперативной памяти! Ближайший его конкурент, популярный в то время процессор Z80 (1976) фирмы Zilog Corporation, мог адресовать только 64 Кб. Память 8086 была также доработана: весь мегабайт оперативной памяти не представлялся единым полем, а был разделен на 16 сегментов величиной по 64 Кб. Таким образом, память 8086 можно было представить как объединенную вместе память нескольких 8080. При этом впервые в истории микропроцессоров программа перестала работать непосредственно с одним физическим адресом ячейки памяти (как это было, например, в Z80). Вместо этого, для получения физического адреса (20 бит) процессор складывал номер сегмента (16 бит), умноженный на 16, со смещением (16 бит). В действительности 8086 вместо умножения на 16 использовал содержимое регистра так, как если бы оно имело четыре дополнительных нулевых бита (см. рисунок). Такой странный на первый взгляд метод адресации обусловлен тем, что команды и данные процессора 8086 должны были располагаться в разных частях памяти, т. е. в разных сегментах.

Рис. 1

У 86-го процессора было всего 14 регистров. Из них 4 регистра общего назначения (AX, BX, CX, DX), 2 индексных (SI, DI), 2 указательных (BP, SP), 4 сегментных (CS, SS, DS, ES), регистр следующей инструкции IP и регистр флагов (состояний процессора) FLAGS. Все они были 16-битными, причем регистры AX, BX, CX, DX состояли из пары 8-битных (AL - AH, ..., DL - DH соответственно). Несмотря на то, что они являлись частями целых 16-битных регистров, их можно было использовать как отдельные 8-битные. Благодаря этому, программы, разработанные под 8080, можно было с минимальной переделкой использовать и на 8086 процессоре.

Через год после презентации 8086, Intel объявила о разработке его более дешевого аналога - 8088. Он являлся близнецом 8086: 16-битные регистры, 20 адресных линий, тот же набор команд - все то же, за исключением одного, - шина данных была уменьшена до 8 бит. Заполнение 16-битных регистров извне теперь проходило в два раза медленнее. Как следствие - меньшая производительность. Его можно назвать своего рода "86SX" (тогда, правда, Intel не обозначала так свои процессоры). Однако стоимость самого чипа заметно не уменьшилась. Так для чего же Intel понадобилось делать этот шаг? Для того, чтобы угодить фирме IBM, решившей начать производство компьютеров на базе этого процессора. Желание IBM вполне объяснимо. Восьмибитная шина данных позволяла использовать имеющиеся на рынке 8-битные микросхемы памяти и сэкономить на развертывании производства 16-битных. При этом внутренняя структура процессора оставалась по-прежнему 16-битной, что давало важные преимущества по сравнению с другими микропроцессорами и задатком на будущее. На его основе в августе 1981 года фирма IBM начала массовое производство компьютеров IBM PC. Тактовая частота первых моделей была небольшой - 4.77 МГц. Однако позже были выпущены модели Turbo-XT с частотами 8, 10 и 12 МГц и встроенным жестким диском на 20 мегабайт.

Часть II - 186/286

В предыдущей части речь шла о ранних процессорах Intel: от 4-битного 4004 до основателя нынешней династии - процессора 8086. Они были важнейшими творениями в истории корпорации, и не будь их - думаю, не было бы сейчас "пентиумов" и "целеронов". В этой речь пойдет о процессорах 186 и 286 - последних полностью 16-битных процессорах Intel. Если бы каждый процессор содержал в себе столько новинок, сколько их пришлось на долю 286-го, то наверное сегодня шлем виртуальной реальности был бы такой же привычной "железкой" как мышь или клавиатура... :-) Но не буду забегать вперед, вот что последовало за 86-м чипом.

В СЕМЬЕ НЕ БЕЗ... СТО ВОСЕМЬДЕСЯТ ШЕСТОГО

Мало кто знает, что 186-й процессор вообще существовал, и еще меньше знают о нем что-нибудь подробное... Тем не менее, он был. Созданный в 1981 году и презентованный в первой половине 1982 года, он стал базовым для реализации турборежима. Почти сразу же был создан процессор 188 - преемник 8088. Эти процессоры сохранили базовую архитектуру процессоров 8086/8088, но содержали на кристалле контроллер прямого доступа к памяти (DMA), трехканальный таймер, генератор синхронизации и контроллер прерываний (а зря - "интегралки" народ не любит и по сей день). Кроме того, было добавлено около десятка новых команд и стартовая частота поднялась до 8 МГц. Затем вышли модели с частотами 10, 12.5, 16 и 20 МГц. Процессоры C186/C188 имели средства управления энергопотреблением, были и редкие модификации со встроенными последовательными портами. Кроме того, добавилась парочка новых команд, ускоряющих вызов функций - pusha (Push All) и popa (Pop All), - запись и чтение всех регистров процессора в стек, раньше приходилось возиться с каждым регистром отдельно.

У меня сложилось впечатление, что эти процессоры были созданы не столько для компьютеров, сколько для специальных устройств управления и микроконтроллеров. Но компьютеры на их основе все же были - у меня дома лежит журнал, привезенный в 1983 году мамой из Финляндии, с рекламой компьютеров Nokia на базе 186-го. :-) Правда широкого распространения эти компьютеры не получили. Видимо причины этого кроются в отсутствии качественных нововведений, относительной дороговизне чипа и в замаячившем на горизонте следующем процессоре Intel. Кроме того, встроенная периферия 186-го имела программный интерфейс несовместимый с IBM PC, т. е. для апгрейда писишки он не годился. Одним словом 186-й оказался тупиковой ветвью.

286-Й: ЕЩЕ НЕ СЕРВЕР, НО УЖЕ НЕ "БЭКАШКА"

В 1982 году фирма Intel сделала крупный шаг в разработке новых идей: ее следующий 16-битный чип стал первой попыткой создать процессор, который мог бы аппаратно реализовывать многозадачность. Для этого был придуман защищенный режим. Ведь основная проблема многозадачности была в том, что любые программы, работавшие под управлением прежних процессоров, имели полную свободу действий - могли по любому адресу памяти записать все что угодно. Операционная система и другие приложения при этом были не защищены: в любой момент глючная программа могла затереть эти места в памяти и компьютер, скорее всего бы просто повис, даже не выдав знакомой таблички о выполнении "недопустимой операции". Были попытки создать операционную систему, которая сама бы контролировала все действия программ. Но для этого пришлось отказаться от компиляции приложений в готовые машинные коды - они стали интерпретируемыми, а производительность упала раз в двадцать. Стало ясно, что без аппаратной акселерации контроля, т. е. без защищенного режима процессора не обойтись.

Суть работы защищенного режима была проста. Все свои команды процессор выполнял точно так же как и в реальном режиме, но программистам пришлось использовать понятие "логического адреса". Логический адрес состоял из 32 бит: селектора (16 бит) и смещения (16 бит). При этом в сегментных регистрах (CS, DS, SS, ES) теперь хранился не сегмент, а селектор. Селектор - это индекс в таблице дескрипторов (рис. 2). Запись в таблице дескрипторов содержала всю необходимую информацию о некотором блоке памяти: его базовый адрес, размер всего блока, его тип (код или данные) и сведения о приоритете программы-владельца. Таким образом, каждый дескриптор полностью описывал один сегмент программы. Размер этого дескриптора был одинаков как для 286-х, так и для 386-х машин - 64 бита или 8 байт, но у 286-го старшие 16 бит не использовались.

Рис. 2

Существовала одна глобальная и несколько локальных таблиц. Глобальная присутствовала всегда и хранила информацию о сегментах операционной системы. Локальные таблицы были для всех остальных программ. Управление памятью в защищенном режиме всегда было связано с конкретной операционной системой и ее версией. В OS/2 2.0 каждой программе были доступны глобальная и локальная (своя) таблицы дескрипторов. Всем приложениям в Windows 3.0 давалась одна общая локальная таблица. Система защиты 286-го процессора позволила разбить всю память и программы на 4 типа (кольца защиты - рис. 3). При этом программа работала только со своими блоками. Если программа обращалась к чужому сегменту памяти, то происходило прерывание с выдачей сообщения об ошибке. Ошибка также возникала, если программа пыталась считать или записать в свой собственный сегмент кода.

Рис. 3

Теперь о параметрах 286-го чипа. 134 000 транзисторов, техпроцесс 1.5 мкм, 68 контактных ножек, 16-битная шина данных, 24-битная адресная шина (до 16 Мб физической памяти), 19 "видимых" регистров (к 14 регистрам 86-го процессора добавилось еще 5, необходимых для реализации защищенного режима) и 6 "невидимых" (у программиста не было к ним никакого доступа, а нужны они были для эффективной работы самого процессора). Максимальный размер виртуальной памяти (файл подкачки) составил 1008 Мб (хотя на практике "двушка" никогда не имела таких больших дисков). Стартовая частота - 6 МГц, затем были созданы модели с частотами от 10 до 25 МГц. Помимо количественного повышения быстродействия было и качественное: некоторые операции 286-й научился выполнять за меньшое число тактов. Процессор 286 с тактовой частотой 12.5 МГц работал примерно в 6 раз быстрее, чем 8086 с частотой 4.77 МГц. Команда push научилась сохранять в стеке константы. Шины адреса и данных теперь стали раздельными, а не совмещенными на одном множестве ножек. Как и в 8086-м новый процессор имел 6-байтную очередь команд - что-то вроде прообраза будущих конвейеров. Команды в эту очередь загружались в последовательном порядке и параллельно с производимыми вычислениями.

Несмотря на то, что 286-й процессор был окончательно представлен уже в 1982 году, производство компьютеров на его основе началось только в 1984-м. Новые компьютеры стали называться IBM PC AT (Advanced Technology). Выпуск этой модели подхлестнул интерес и к прежней IBM PC, способствуя популяризации архитектуры x86 в целом. Появилось несколько журналов, посвященных исключительно писишкам, магазинов, торгующих программным обеспечением. Словосочетание "персональный компьютер" становилось обыденным и больше не резало слух. Для меня, поклонника группы "Queen", 1984-й год ассоциируется со словами "I Want To Break Free". :-) Что ж, пожалуй, для писишек этот год стал и впрямь "освободительным". От диктата больших машин и насмешек их приверженцев.

К сожалению, защищенный режим 286-го обладал и недостатками:

  • Несмотря на возможность адресовать 16 Мб памяти, максимальный размер сегмента остался по-прежнему равным 64 Кб, затрудняя программистам работу с большими массивами данных.
  • Режим работы с виртуальной памятью не был толком продуман - отсутствовал "прозрачный" для приложений способ перемещения данных операционной системой из памяти на жесткий диск - для реализации этого программам приходилось прибегать к разным ухищрениям вроде "запирания" и "отпирания" указателей на блок памяти.
  • В защищенном режиме отсутствовала совместимость с программами, написанными для реального режима MS-DOS.
  • Переход из реального режима в защищенный был односторонним, для обратного перехода требовалась перезагрузка компьютера.

Таким образом, первый многозадачный "блинчик" у Intel получился слегка "комом" и 286-е компьютеры обычно использовались только в качестве быстрых аналогов 86-го. Сумела ли Intel исправить эти ошибки и подарить миру персоналок истинную многозадачность? Да, в следующем процессоре.

Часть III - 386

17 октября 1985 года фирма Intel представила свой первый 32-битный процессор, обладавший уникальным преимуществом: в отличие от своих конкурентов, разработанных к тому времени компанией Motorola, он был аппаратно совместим с огромным парком 86-х и 286-х машин. Это был Intel 80386, сердце легендарной "трешки". Не сочтите меня стариком, но я люблю 386-е машины, люблю за все то, что они дали. Ведь именно на трешке я увидел Wolf3D и Warcraft. Познал миры легендарной Кирандии, заделался магнатом в Transport Tycoon и написал первые программки на Паскале... Даже Windows я впервые увидел на трешке (приняв ее за графический редактор со встроенным калькулятором :). 80386 - едва ли не самый революционный процессор, редко когда в чипах Intel появлялось столько новшеств сразу.

КРАТКИЙ ОБЗОР

Обладая полностью 32-битной архитектурой, 386-й процессор адресовал до 4 Гб (232 байт) физической оперативной памяти и до 64 Тб виртуальной. Он состоял из 275 000 транзисторов и изготавливался на основе технологии CHMOS III фирмы Intel, вобравшей в себя быстродействие технологии HMOS и низкое энергопотребление CMOS технологии. Толщина транзисторных элементов, как и у 286-го, составляла 1.5 мкм (в дальнейшем - 1 мкм), а число ножек увеличилось с 68 до 132.

Новый процессор стал мощнее своих предшественников. Умножение двух 16-битных чисел командой MUL R16 выполнялось, в зависимости от числа единичных разрядов, за 9-22 такта. Для сравнения: то же у 286-го срабатывало всегда за 21 такт, а у 86-го аж за 118-133 такта! Математический сопроцессор 80387 не остался в стороне и тоже был оптимизирован - если 287-й выполнял команду извлечение корня FSQRT за 180-186 тактов, то 387-й чип справлялся с этой задачей уже за 122-129 тактов. В среднем количество тактов, необходимых для выполнения команд, уменьшилось в полтора-два раза в сравнении с 286-м и в 3-8 раз в сравнении с оригинальным IBM PC. Просмотр всего содержимого энциклопедии Britannica с применением 386-го занимал 12,5 секунд (286-у нужно было 45). Кроме того, добавилось несколько продвинутых команд сопроцессора, например вычисление синуса, косинуса и логарифмов.

Первые процессоры стали работать с наивысшей частотой, достигнутой к тому времени для 286-го - 16 МГц, затем появилась 20 МГц модель (16 февраля 1987), а к середине 1988 года предел был отодвинут до 25 МГц (4 апреля 1988). В начале 90-х популярность приобрели 33 МГц модели (10 апреля 1989), кстати, все 386-е работали на частоте материнской платы, никаких коэффициентов умножения!

Набор регистров в процессоре был существенно изменен - почти все 16-битные регистры были заменены их 32-битными аналогами. Новые регистры именовались как и прежде, только с приставкой "E" (Extended) в начале слова. Так, вместо регистров общего назначения AX, BX, CX, DX появились регистры EAX, EBX, ECX, EDX, младшие части которых (левые 16 бит) использовались 86/286-инструкциями в качестве прежних регистров. Вместо 16-битных IP (указатель следующей инструкции) и FLAGS (флаги процессора) - соответственно 32-битные регистры EIP и EFLAGS. Вместо SI/DI (индексы источника/назначения) - ESI/EDI. Словом, почти все прежние регистры заменились новыми, младшая часть которых использовалась по-старому. В новом процессоре 16-битными остались только сегментные регистры (CS, SS, DS, ES) и регистр локальной таблицы дескрипторов (LDTR). Кстати, к сегментным регистрам добавилась парочка новых, поначалу редко используемых - GS и FS. Напомню, что регистр CS указывает на начало сегмента кодов (исполняемый код программы), регистр SS - на "дно" стека, а остальные 4 регистра (DS, ES, GS, FS) - на разные сегменты данных (там хранятся переменные, массивы, в общем, любые данные программы).

Между прочим Intel надолго осталась верна набору регистров 386-го, включая сопроцессор, и при создании следующих моделей (486, Pentium) ограничилась несущественным расширением (TR3-TR5 регистры, появившиеся в 486-м, управляющий регистр CR4, появившийся в Pentium). Все эти дополнительные регистры предназначались не столько для программ-приложений, сколько для операционных систем и средств отладки, т. е. выгоды от них в играх и Windows-приложениях не было никакой. Следующее увеличение числа регистров, полезных для самих приложений, произойдет, по сути дела, только в процессоре Pentium III (1999).

ГЛАВНЫЕ "ИЗЮМИНКИ"

Защищенный режим 386-го был существенно доработан. Именно тогда, 16 лет назад, Intel заложила фундамент успеха Windows 95. Модель 286-го в целом была сохранена, но добавилось три очень важных аспекта: сколь угодно большой размер сегмента, страничный режим адресации (Page Addressing) и режим виртуального 8086 (Virtual 8086 Mode). Все эти аспекты используются операционными системами Windows 95/NT и без них они работать не смогут. Кроме того, 386-й "научился" возвращаться обратно из защищенного режима в реальный без перезагрузки компьютера (в 286-м переход в защищенный режим был односторонним).

Снятие ограничения на размер сегмента (вообще-то он ограничен четырьмя гигабайтами, но по-моему для компьютерного ОЗУ это почти бесконечность) тесно связано со страничной организацией памяти. Без использования страниц ограничение на размер остается, правда уже не в 64 Кб как у 86/286, а в 1 Мб. Это объясняется тем, что для указания размера сегмента в таблице дескрипторов отведено 20 бит (у 286-го 16 бит). 220 дает нам 1 Мб комбинаций. Но в дескрипторе сегмента 386-й машины появился очень интересный бит - бит гранулярности. При его включении процессор начинает понимать размер сегмента не в байтах, а в страницах по 4 Кб (4096 байт). Минимальный размер сегмента в этом случае будет равен 4 Кб (1 * 4 Кб), а максимальный - 4 Гб (1 Мб * 4 Кб).

Ранее я говорил о принципах работы программ в защищенном режиме 286-го процессора. Не стоит заново все пересказывать, детали вы можете увидеть в предыдущей части, приведу только главные отличия. Вначале у трешки все почти так же - только смещение и базовый адрес в дескрипторе стали 32-битными, соответственно и результат их суммы - 32-битное число. Единственное что осталось 16-битным - селектор. Но вот дальше... Сумма базового адреса и смещения еще не физический адрес! Старшие 10 бит этой суммы, которая называется линейным адресом, задают индекс таблицы страниц в каталоге таблиц, следующие 10 бит - индекс страницы в найденной таблице страниц, оставшиеся 12 бит - смещение относительно начала этой страницы. И только когда процессор найдет в каталоге нужную таблицу, а в ней нужную страницу (потерпите, немного осталось :) и прибавит к полученному адресу смещение, он получит физический адрес ячейки памяти.

Рис. 4

Мудрено? Для чего такие сложности? Для реализации замечательной вещи: теперь процессор мог динамически менять расположение данных в памяти при постоянном логическом адресе! Программа, например WinWord, могла работать со своими документами и даже не подозревать, что секунду назад данные физически были в этих ячейках памяти, а сейчас процессор переместил их в другие (ему могла приказать операционная система - Windows частенько "перетасовывает" содержимое памяти). Логические адреса, с которыми оперирует WinWord, остаются постоянными! Операционная система может переместить часть данных в файл подкачки, сбросив при этом "бит присутствия" в дескрипторе сегмента. Если программа захочет обратиться к засвопленной странице, то процессор по нулевому значению бита присутствия обнаружит ее отсутствие в памяти и выработает соответствующее прерывание. Святая обязанность любой операционной системы на него среагировать и восстановить эти данные в какой-нибудь области памяти, после чего возобновить работу прерванной программы. При этом логические адреса не меняются, в этом вся соль!

С режимом виртуального 8086 все просто - он наконец-то позволил в защищенном режиме запускать программы, написанные для реального режима, т. е. для MS-DOS. При этом в многозадачной среде любое количество MS-DOS приложений могло работать одновременно на одном компьютере, причем каждая программка думала, что она работает в одиночку, т. е. процессор обслуживает только ее. При запуске любой MS-DOS программы Windows 95/98 создает для нее виртуальную машину MS-DOS (DOS Virtual Machine) - задачу, использующую режим виртуального 8086. Кстати этот режим не запрещает DOS-приложениям использовать новые 32-битные регистры 386-го, за исключением тех, что необходимы для корректной работы самой системы защиты процессора и операционной системы.

Модель защищенного режима трешки без изменений работает и по сей день. Современные Pentium 4 и Athlon не содержат в режимах адресации практически ничего нового. Появившиеся в Pentium странички памяти по 4 Мб и 36-битная адресация в Pentium Pro не в счет, ибо эти возможности в домашних персоналках не применяются. По крайней мере Windows 98/NT их не использует точно. Поскольку Windows ME/2000 могут (по крайней мере формально) работать и на обычном (первом) Pentium, где этих расширений просто нет, то полагаю они тоже их не используют. Работающие у вас дома "окошки" наверняка обходятся сводом правил, придуманным Intel еще в далеком 1985 году...

ЕЩЕ КОЕ-ЧТО...

Но и на солнце не без пятен: история 386-го была омрачена найденной в нем ошибкой. Процессор неправильно выполнял некоторые операции с 32-битными числами, в частности, умножение. Из-за отсутствия 32-битных операционных систем, и как следствие приложений, ошибку обнаружили только через полтора года, после того как появились соответствующие программы. Intel моментально устранила ошибку и микросхемы, изготовленные после апреля 1987 года ее не имели, а уже вышедшие чипы были промаркированы "только для 16-битных операций". При попытке установить на такой компьютер Windows 95, Setup выдает сообщение об ошибке "B1". Отличительный признак исправленных процессоров - все они маркируются двойным символом "сигма".

И напоследок кое-что о процессоре 386SX. Он был представлен 16 июня 1988 года как недорогая альтернатива полноценному 80386, который с этого момента стал называться 386DX. Программно 386SX на 100% совместим со старшим братом - без замера производительности разницу между ними не обнаружить. Отличий было всего два: сокращенная до 16 бит шина данных и до 24 бит адресная шина (в DX обе шины 32-битные). Заполнение 32-битных регистров данными из оперативной памяти в SX-версии происходило вдвое медленнее. Такая же потеря скорости наблюдалась и при записи содержимого 32-битного регистра в память. Но на скорость выполнения самих арифметических операций сокращение шины не влияло. Т. е. умножение или деление одного и того же числа, если оно уже находилось в регистре процессора, происходило в SX и DX моделях за одинаковое число тактов. В результате в 16-битных приложениях 386SX отставал от старшего брата всего на 10-20%, но в 32-битных разница была существеннее - 50-70%. Поэтому Windows 95 не имело большого смысла ставить на 386SX, в то время как на DX-версию, думаю, это было вполне оправдано (в случае 8 или более мегабайт памяти). Кроме того, в SX-версию нельзя было добавить свыше 16 Мб оперативной памяти - следствие урезанной до 24 бит адресной шины. Впрочем, это несущественно, кто из нас видел трешку с большей памятью? :-)

Часть IV - 486

10 апреля 1989 года Intel познакомила общественность со своим новым процессором i486. "Четверка" стала едва ли не самым важным процессором в истории ПК, наверное даже Pentium'у не выпадала такая честь. Догадываетесь о чем я? "Мультимедиа". Волшебное слово, как по мановению палочки обернувшее скучную машину в уникальный центр развлечения, досуга и творчества. А появление мультимедиа стало по-настоящему возможным только благодаря четверкам. Они привлекли внимание миллионов, унося их в миры Myst, Doom, Warcraft. Когда лет шесть назад я увидел на CD-ROM диске мультимедиа-энциклопедию динозавров с приятными на слух комментариями гида и видеороликами (!), я был пленен "персоналками" окончательно...

Что же послужило причиной такого прорыва, превратившего очередной, по сути, бизнес-процессор в предвестника эры мультимедиа? Я постараюсь ответить на это и рассказать о ключевых достоинствах четверки. Тех "изюминках", которые отличают ее от предшественника, 386-го процессора. Дело в том, что в поисках способа повышения производительности наиболее передового в те годы 386DX-33, инженеры Intel столкнулись с серьезными проблемами. Традиционный путь уже не годился. Существовавшая в конце 80-х технология производства чипов не позволяла плотнее размещать транзисторы на кристалле. Это создавало трудности с теплоотводом при повышении частоты. Еще труднее было повысить частоту материнской платы. Нужны были качественные (и очень дорогие) модули памяти, чтобы работа на частотах свыше 33 МГц была стабильной. К примеру, самые дешевые мегабайтные модули памяти (SIMM 30-pin 100-ns) стоили тогда порядка $400. С другой стороны, оставаясь в рамках традиционной CISC-архитектуры, было трудно уменьшать количество тактов, необходимых для выполнения той или иной операции.

Эти и другие проблемы не давали двигаться обычным путем, просто наращивая частоту процессора и материнской платы. Но решения были найдены. Коротко их можно описать шестью словами: кэш, конвейер, встроенный сопроцессор, коэффициент умножения. Эти термины на 95% описывают достоинства 486-го. Остальные 5% это пара-тройка мелких нововведений, о которых я упомяну позднее. Поехали?

КЭШ

Немного теории: кэш-память (cache, кэш) располагается "между" процессором и оперативной памятью, и, при обращении процессора к памяти, поиск нужных данных сначала производится в ней. Поскольку время доступа к кэшу гораздо меньше, чем к обычной памяти, а в большинстве случаев необходимые данные содержаться в кэше, среднее время доступа к памяти уменьшается. Если выключить в BIOS'е Pentium'а оба кэша, то по скорости получится... 386-й. Современные Pentium III или Athlon без обоих кэшей смогут обогнать разве что 486DX2-66. Наличие кэша оказывает огромное влияние на производительность, почти принципиальное.

В 486-м процессоре появился внутренний кэш объемом 8 Кб, единый для данных и инструкций. Кэш имел 4-канальную наборно-ассоциативную архитектуру и работал на уровне физических адресов памяти. Он содержал 128 наборов по 4 строки размером по 16 байт. Кэш умел работать только со строками, и если процессор требовал какой-нибудь байт, отсутствующий в кэше, то кэш-контроллер загружал из ОЗУ всю 16-байтную строку, содержащую необходимый байт. Выбор строки для замещения производился по алгоритму "псевдо-LRU", для этого каждому набору строк отводилось по 3 бита статистики использования. Алгоритм LRU (Least Recently Used) основан на поиске элемента, к которому дольше всего не было обращений. При каждом обращении к строке кэш-контроллер увеличивал на 1 соответствующий счетчик LRU. Приставка "псевдо" означает лишь несовершенство механизма работы, ведь под счетчик отводилось всего 3 бита, что дает нам 8 положений счетчика (23). После 8-го обращения к строке счетчик обнулится и соответствующая строка из самой "необходимой" станет самой "не необходимой" и будет прямым кандидатом на замещение. Кэш первых 486-х работал в режиме Write Through (сквозная запись). В этом случае при записи данных тратилось дополнительное время на их запись во внешнюю память (даже если они присутствовали в кэше). Эта политика напоминает работу дискового кэша SmartDrive с настройками по умолчанию, когда ускоряется только чтение данных, а запись не ускоряется. Последовавшие процессоры (некоторые 486DX2 и все 486DX4) позволяли переключаться на политику Write Back. В этом варианте запись данных, если их старая копия уже присутствовала в кэше, производилась только в кэш, а запись в ОЗУ откладывалась.

Процессор i486 мог использовать и внешний кэш (вне микросхемы процессора). Именно 486-у мы обязаны появлением 2-х уровнего кэширования: кэш, интегрированный в ядро процессора, стал называться кэшем первого уровня (L1), а кэш наружный, находящийся на материнской плате, - кэшем второго уровня (L2). Очевидно, что кэш первого уровня функционирует быстрее второго. Даже если они оба работают на частоте процессора, потому что при чтении данных из кэша L2 процессор все равно вынужден делать несколько пустых тактов, хотя и меньше, чем при чтении из ОЗУ. Объем кэша L2 в зависимости от материнской платы составлял от 256 до 512 Кб. В системных платах 386-х моделей наружный кэш обычно не превышал 128 Кб (типичный объем - 64 Кб). В марте 1994-го Intel, выпустив 486DX4, увеличила объем кэша L1 до 16 Кб (он по-прежнему оставался общим для данных и для команд).

Что отрицательного несло в себе появление внутреннего кэша? Резкое увеличение числа элементов (486-й стал первым микропроцессором, перешагнувшим некий рубеж, - он содержал более миллиона транзисторов, и около половины их приходилось на долю кэша) повлекло за собой сильный процент брака, и как следствие высокие цены. Не только у Intel, но и у конкурентов (AMD, Cyrix). И лишь появление Pentium'а привело к падению цен на 486-е. Вторым минусом было увеличение энергопотребления и повышение температуры процессора. Именно это вынудило Intel применить новый подход - впервые на процессоры стали устанавливать радиаторы с активным охлаждением.

КОНВЕЙЕР

Конвейер - это специальное устройство, входящее в состав процессора, и реализующее такой метод обработки команд, при котором их выполнение разбивается на несколько этапов. В чем преимущество? Представьте себе часовой завод, на котором работает только один мастер, зато на все руки. Он сможет за час из пружинок и винтиков собрать работающие часы. Это и будет одна машинная команда, выполненная в течение часа. А теперь представьте, что вместо одного мастера - 5 узких специалистов. Никто из них не в состоянии в одиночку собрать часы. Но первый умеет вытачивать корпус, второй - стрелки, третий - нанизывать детали на ось, и т. д. Главное, что они работают параллельно и без задержек: сделал детальку, передал другому, берись за следующую. К тому же выполнять простые операции легче, а значит быстрее, чем сложные. В итоге эти спецы за час совместной работы изготовят не 5, а 10 или даже более часов (в нашем случае - машинных команд). Этот принцип не нов и был открыт еще пару веков назад - вспомните мануфактуры, расцвет массового производства. Помимо ускорения вычислений конвейеризация дает еще одно преимущество: каждый мини-блок, выполняющий часть операции, представляет собой менее сложное устройство, чем один исполнительный супер-блок, а значит он менее чувствителен к повышению частоты. Разбиение сложного вычислительного модуля на мелкие позволяет эффективнее разгонять процессор (это особенно актуально в свете нынешнего Pentium 4 с его 20-ступенчатым конвейером).

Конвейер процессора i486 имел 5 ступеней (рис. 5). Не буду описывать назначение каждой ступени - на рисунке все показано. Справедливости ради стоит отметить, что Intel не изобретала конвейеры, по крайней мере, не была пионером в этой области: первые процессоры с полностью конвейеризированной архитектурой появились раньше. Например, процессор Z-80000 с 6-ступенчатым конвейером был анонсирован еще в начале 1986-го, но по некоторым причинам он не прижился в персональных компьютерах (впрочем, как и вся линейка процессоров Zilog).

Рис. 5

ВСТРОЕННЫЙ СОПРОЦЕССОР

Сопроцессор (FPU, Floating-Point Unit) помогает основному процессору выполнять математические операции над вещественными числами. Начиная с 8086-го чипа сопроцессор представлял собой отдельную микросхему, имеющую то же название, что и центральный процессор, только с семеркой на конце: 8087, 80287, 80387. Микросхема 486-го стала первой микросхемой Intel со встроенным FPU. В состав процессора был введен математический сопроцессор, программно совместимый с сопроцессором 387. Процессор 486SX, появившийся 22 апреля 1991 года, отличался тем, что не имел встроенного сопроцессора. Любопытно, но первые 486SX представляли собой отбраковку полноценных 486, с неисправным блоком FPU, который был специальным образом заблокирован для использования. Полные 486 стали называться 486DX (по аналогии с серией 386, только там разница между SX и DX версиями была в разрядностях шин данных и адреса). Интересно заметить, что существовал 487SX процессор - по сути, аналог 486DX (CPU + FPU), устанавливаемый в гнездо сопроцессора материнской платы 486SX, и отключающий "основной" SX-процессор.

КОЭФФИЦИЕНТ УМНОЖЕНИЯ

Все знают, что коэффициент умножения - это число на которое надо умножить тактовую частоту материнской платы, чтобы получить частоту работы самого процессора. Но к 486-м, появившимся в 1989 году, он не имел отношения. Эти процессоры работали на частоте системной платы, также как и 386-е. Первым процессором, функционирующим на удвоенной частоте материнской платы, стал i486DX2-50, объявленный 3 марта 1992 года. Коэффициент умножения - одно из важнейших улучшений и оно тесно переплетается с внутренним кэшем. Без кэша вводить коэффициент почти бессмысленно. Именно появление i486DX2-50 и материнских плат, поддерживающих разные частоты шины и коэффициенты умножения, заложило основу для практического "разгона" процессоров.

ЭТИ ВАЖНЫЕ МЕЛОЧИ...

В общем-то, их не так уж и мало. Во-первых, появилось 5 новых команд: XADD (обычный ADD, только шиворот-навыворот - результат суммы помещается во второй операнд, а не в первый), BSWAP (перестановка байт из порядка младший-старший в порядок старший-младший), INVD (очистка внутреннего кэша без выгрузки строк, опасно при политике Write Back), WBINVD (очистка внутреннего кэша с выгрузкой всех модифицированных строк, может потребовать значительное число тактов), CMPXCHG (сравнение и обмен). Во-вторых, была повышена производительности шины данных - введены пакетные циклы (burst), позволяющие передавать очередное слово в каждом такте шины (а не через такт, как в обычном режиме).

Кроме того, расширены средства тестирования - введены регистры TR3, TR4, TR5 для тестирования внутреннего кэша. Увеличена очередь команд до 16 байт. Добавлена защита страниц памяти на уровне супервизора. Введены: буферы отложенной записи, функции контроля выравнивания операндов, ZIF-сокеты (в более поздних моделях) и возможность аппаратного тестирования процессора извне по интерфейсу JTAG (тоже не у всех моделей). Вот, пожалуй, и все...

Часть V - Pentium

В завершающей части я расскажу о самом известном процессоре Intel - "Первом Пентиуме". Мне кажется, этот процессор для Intel стал тем же, что и "Bohemian Rhapsody" для Queen - волшебной ракетой, что вывела фирму на орбиту известности и миллиардных оборотов... Сегодня "Первый Пентиум" - уже история. Но согласитесь, его магическая аура присутствует по-прежнему. Благодаря чему же он так прославился? Что нового привнес в нашу жизнь? Отчего это слово в последние годы стало нарицательным, порой - даже синонимом слова "компьютер"? Знаю, об этом можно писать целую книгу, но моя цель чуточку проще: я попробую изложить в рамках статьи только самую суть...

РОЖДЕНИЕ

Когда в июне 1989 года Винод Дэм, инженер фирмы Intel, делал первые "наброски" Pentium'а, он и не подозревал, насколько сложной окажется предстоящая работа и что именно этот продукт станет одним из главных достижений Intel. Вскоре проект был разбит на несколько этапов. Для тестирования была придумана технология, позволившая имитировать функционирование еще не существовавшего процессора. Достигали это применением специальных устройств-блоков, объединенных на 14 платах с помощью кабелей. Когда первое тестирование было закончено, а основные ошибки - исправлены, макет начал работать. В разработке и тестирования Pentium'а принимали участие не только специалисты Intel, но и сторонние разработчики, что, наверное, немало способствовало общему успеху. В конце 1991 года макет процессора был завершен, и инженеры смогли запустить на нем программное обеспечение. Естественно, ни о какой скорости пока не было и речи: макет функционировал в полном объеме, но не быстрее калькулятора! Работа продолжалась, и когда все архитектурные тонкости уже определились, настала очередь проектировщиков: они принялись под микроскопом изучать топологию процессора и прохождение сигналов с целью ее оптимизации. Эта работа была завершена где-то к февралю 1992 года, после чего началось тестирование опытной партии. В апреле 1992 года наконец-то приняли решение о промышленном освоении. Индустриальной базой стала 5-я Орегонская фабрика, лучшая на тот момент. Примерно через год более 3 млн. транзисторов окончательно перенесли на шаблоны и запустили цикл производства. 4-х летняя история создания процессора Pentium завершилось его презентацией 22 марта 1993 года.

СУПЕРСКАЛЯРНОСТЬ

Давайте заглянем в недра - чего же там нового? Помимо традиционного повышения тактовой частоты и сокращения времени (числа тактов) выполнения инструкций, есть одно свойство, наиболее качественно отличающее его от предшественника. В главе об особенностях 486-го я красной нитью выделял появление конвейера - устройства, разбивающего процесс выполнения команды на несколько этапов. Напомню этапы конвейера 486-го: выборка команды, ее декодирование, вычисление адресов операндов, выполнение и, наконец, сохранение результата. Оказывается, конвейер Pentium содержит эти же этапы, но самих конвейеров прибавилось! Новая микросхема стала первым процессором Intel, способным выполнять за такт СРАЗУ ДВЕ инструкции. Архитектура, при которой процессор имеет несколько конвейеров, получила название "суперскалярной", в противовес старой, одноконвейерной, т.е. "скалярной" архитектуре.

Рис. 6

Pentium имеет 2 целочисленных конвейера - u и v (рис. 6). Правда, они не равноценны: главным считается u-конвейер, он поддерживает весь набор инструкций и работает на полную катушку. v-конвейер имеет некоторые ограничения и лишь помогает основному. Он умеет обрабатывать только "простые" инструкции - целочисленная арифметика, логические команды, команды перехода... Вдобавок, он не может работать, если его действия зависят от результата выполнения команды, идущей по u-конвейеру. Условий, по которым определяется возможность "спаривания" инструкций, около десяти (если интересно - пишите, я пришлю). В моменты, не удовлетворяющие этим правилами, v-конвейер не берет новых команд, лишь продвигая по этапам те, за выполнение которых он уже взялся. Затем он простаивает, ожидая благоприятной ситуации. В остальных случаях процессор одновременно выполняет сразу 2 инструкции, точнее, учитывая конвейерную архитектуру, правильней сказать: "на различных стадиях выполнения одновременно продвигаются 2 потока инструкций".

У конвейерной архитектуры одно слабое место: при выполнении команд, чтобы выбрать из памяти следующую, иногда нужно знать результат выполнения текущей. Дело в том, что некоторые команды (например, условного перехода) нарушают порядок выполнения инструкций, приказывая процессору "перепрыгнуть" не на следующую по порядку команду, а на какую-то другую. В любой мало-мальски сложной программе это встречается сплошь и рядом. В простейшем случае (как в 486-м) конвейер будет ждать выполнения команды, определяющей адрес следующей инструкции, и лишь затем приступит к выборке. В Pentium же появилось интересное новшество branch prediction - предсказание переходов. Процессор запоминает статистику последних 256 переходов и на ее основе выдает предположение о следующем. Если переход был предсказан верно, удается избежать простоя, если нет - конвейер полностью очищается и начинает заполняться снова (на что тратится время).

Суперскалярность - особенность №1 микропроцессоров 5-го поколения. Она присуща не только Pentium, но и AMD K5, Cyrix M1, словом, всем его современникам. Кстати, помимо этой архитектуры, у Pentium еще один плюс: ступени D2 обоих конвейеров обзавелись многоканальным сумматором. Задержки, возникавшие в 486-м при декодировании сложных многокомпонентных адресов (например, "EBX + ESI + смещение"), наконец-то ушли в прошлое.

FPU

2-е по значимости отличие Pentium от 486-го - быстрый сопроцессор (FPU). Именно Pentium вылечил у некоторых программистов фобию к числам с "плавучкой". Помнится, раньше в Фидо ходила куча советов, как рассчитать трехмерную сцену, обходясь только целыми числами - получались вещественные с "фиксированной точкой". Сказывалось на точности, но для графики 320x200 вполне хватало...

С появлением Pentium стало очевидным: нет смысла соревноваться с оптимизированным сопроцессором. В результате появился целый ряд игр (Quake, MDK), сотворивших революцию в игровом мире. Благодаря новому FPU, мощность Pentium'а оказалась достаточной для показа Video CD без приобретения MPEG-карт, стоящих сотни долларов. За это отдельное спасибо Xing MPEG Player'у - родоначальнику чисто "софтового" проигрывания видео. А разве плохо слушать mp3, занимаясь при этом чем-то другим - гуляя в Интернете или набирая текст? На быстрой "четверке" mp3-файлы тоже игрались, но при работе в Word или Explorer звук начинал заикаться.

Причина ускорения сопроцессора кроется в его новой конвейерной архитектуре. Инструкции FPU сначала проходят по u-конвейеру до ступени D2 включительно, после чего сворачивают на ступени X1, X2 и WF конвейера FPU (на схеме). Причем инструкции на целочисленном конвейере могут продвигаться во время просчета длительных инструкций FPU - именно с учетом этого был оптимизирован Quake. Почему конвейер сопроцессора сам не выбирает инструкции? В основном из-за вопросов совместимости, а отчасти - чтобы не заниматься проблемами адресации в защищенном режиме, эту сложную рутину делает основной процессор.

Другая причина ускорения, пусть и не столь важная, - увеличение шины данных до 64 бит. Внешняя шина данных - это магистраль, передающая информацию между процессором и памятью. Особо заметно увеличение шины проявилось в серьезных программах, наподобие AutoCAD или Corel Draw. Почему? Небольшое отступление: в играх и MPEG-плеерах, где главное - скорость, процессор, как правило, работает с числами одинарной точности (32 бит). Это разумный компромисс между скоростью и качеством. Winamp при декодировании mp3 обходится 32-битными числами, что дает, по сравнению с 64-битными, меньшее на 30-40% потребление процессора. А разницу в звучании с NAD'ом (mp3-плеер, применяет 64-битную арифметику) замечают только завзятые аудиофилы. Но то, что оптимально в играх и мультимедиа, может быть неприемлемо в конструкторском или дизайнерском деле. В этих программах обычно применяют вещественные числа двойной точности (64 бит), иногда - даже повышенной (80 бит). Из-за 32-битной шины 486-го их приходилось загружать из памяти за несколько тактов. Pentium же, благодаря новой шине, обычно справляется за один такт. В итоге, пропускная способность была заметно увеличена - 528 Мб/с для Pentium-66 по сравнению со 160 Мб/с для 486DX-50. Из отрицательных "бонусов" 64-битной шины назову только один - потребность в специальной организации памяти. Помните правило: "SIMM'ы вставлять только парами"? Вот-вот, это оттуда...

КЭШ

С кэшем ситуация неоднозначная. Разумеется, он стал быстрее (в основном, благодаря объему), но появились и минусы. Сначала о главном: кэш L1 в Pentium стал раздельным и увеличился с 8 до 16 Кб - по 8 Кб на кэш команд и кэш данных. Оба кэша поддерживают политику отложенной записи (Write Back), хотя в кэш команд запись обычно не производится.

По поводу разделения кэша не могу сказать, что это однозначно хорошо. Не случайно процессоры M1 фирмы Cyrix имели общий кэш L1 и в задачах, не требующих интенсивных FPU-вычислений, показывали отличную производительность. Я могу привести примеры, когда по скорости выигрывает тот или иной вариант кэша, если интересно, к тому же его разделение приводит к росту числа транзисторов. Скорее всего, это разделение в Pentium было мотивировано упрощением схем некоторых ступеней конвейеров (ступени PF и WB).

Еще один минус: строки кэша стали 32-байтными (в 486-м строки 16-байтные). С одной стороны, это снизило число "служебных" транзисторов, а с другой - привело к небольшому падению эффективности. Напомню: все данные в кэше хранятся в строках, и в одной строке могут находиться только смежные данные, т. е. имеющие близкостоящие друг от друга адреса. Каждая строка имеет свойство "достоверности". По нему кэш-контроллер определяет, можно использовать содержащиеся в ней данные или нет. Строка не может быть "частично достоверной", она либо верна целиком, либо неверна совсем. Строка заполняется данными из памяти полностью, даже если процессору не хватает в кэше всего одного байта.

И, НАКОНЕЦ...

В Pentium появилось несколько новых инструкций. Перечислю: распознавание семейства и модели процессора - CPUID, сравнение и обмен сразу 8 байтов - CMPXCHG8B, чтение/запись из/в регистр, специфичный для конкретной модели (Model Specific Register) - RDMSR и WRMSR. И еще одна, RDTSC - потрясная инструкция - возвращает в EDX:EAX текущее значение внутреннего счетчика, который увеличивается на единицу при каждом цикле процессора (т.е. эта команда дает количество тактов, сделанных процессором с момента включения). При 133 МГц этого счетчика хватает на 4400 лет...

Кое-что из несущественного для домашних персоналок: в процессоре была введена трассировка инструкций и мониторинг производительности, реализован интерфейс построения двухпроцессорных систем с симметричной архитектурой (начиная со 2-го поколения Pentium, 1-е поколение позволяло строить лишь функционально-избыточную систему). Введена возможность оперирования страницами размером в 4 Мб. Расширен режим виртуального 8086 - введена виртуализация флага прерываний. Вот и все...

ЗАКЛЮЧЕНИЕ

Не знаю как вам, а мне достижения и нововведения современных процессоров кажутся малозначимыми по сравнению с принципиальными нововведениями процессоров прошлых лет. Исключение составляет, пожалуй, только появление HyperThreading'а - интересное нововведение, заслуживающее отдельной статьи. :) В заключение остается только пожелать "процессоростроителям" не ударяться в слепую гонку гигагерц и нанометров, а почаще думать о реализации качественно новых эффективных методов вычислений.

Рашид МУХАМЕДОВ



Оцените материал


Архив / Главная страница

Лента колонки "Лаборатория":
  • Советы по переделке процессора Thorton в полноценный Barton
  • Кулер для оверклокинга
  • Системы контроля здоровья PC (Hardware monitor / PC Health)
  • Изучаем параметры "DRAM Idle Timer" и "DRAM Refresh Mode" чипсета Intel-865PE
  • Эволюция Pentium
  • Развитие процессоров Intel: 1971-1993
  • nForce2 – Решение проблемы "пляски частот"
  • Еще раз про nVidia nForce2
  • Формула пляшущих частот
  • EPoXидка (Материнская плата Epox EP-8KRA2I)
  • Охлаждения эффективность






 
 

главная / обзоры / разгон / FAQ / файлы / ссылки / реклама / для авторов / о нас / TSC! Russia / конференция

Copyright © 2001-2007 Overclockers.ru. Копирование материалов сайта запрещено.

Сообщить об ошибке на сайте




Предлагаем Вашему вниманию товары и услуги
Автосалон Авалюкс предлагает автомобили Actyon по ценам, которые Вам понравятся.

Полностью сертифицированные по российским стандартам грузовики Dongfeng в Москве.