Формирование физического адреса в универсальном микропроцессоре при различных режимах работы. См. в номере на ту же тему

Вспомните, каким был ваш первый компьютер и сравните его со нынешним. Почему каждый следующий смартфон или компьютер получается более мощным и компактным, чем предыдущий? Ответ на этот вопрос вы найдёте в законе Мура, который гласит: «Количество транзисторов, размещаемых на кристалле интегральной схемы, удваивается каждые 24 месяца!». Готовы поспорить, что об этом законе многие слышат впервые и к тому же, совсем не понимают, о чём идёт речь. Между тем, он отметил свой 50-летний юбилей. И эти полстолетия электроника развивалась строго в соответствии с ним. Но будет ли так всегда?

Наблюдение, ставшее законом

Закон Мура известен любому, кто имеет отношение к производству микропроцессоров, разбирается в микроэлектронике и микросхемах или хорошо понимает, как устроен компьютер.Чтобы смысл закона Мура стала понятен и вам, мы сформулируем его по-другому, используя простые и понятные слова: Вычислительная мощность и производительность компьютера удваивается каждые 24 месяца.

Действительно, персональные , ноутбуки, смартфоны очень быстро устаревают. Вы, наверное, замечали: не успел купить новую модель, через некоторое время появляются более мощные, более быстрые, с большим объёмом памяти. При этом их цена остаётся прежней, а если повышается, то не на много. И все это благодаря развитию технологий.

Гордон Мур – один из тех, кто в 1968 году основал корпорацию Intel. В течение первых семи лет был исполнительным вице-президентом корпорации. Затем президентом и главным управляющим Intel. До 1997 года занимал пост председателя совета директоров. Ныне 87-летний Гордон Мур является почётным председателем совета директоров корпорации Intel и проживает на Гавайях.

Свой закон Гордон Мур вывел на основе наблюдений, а огласил его в 1965 году. Он заметил, что ежегодно стоимость одного транзистора уменьшается, а их количество на одном кристалле удваивается. Это объяснялось бурным развитием микроэлектроники и растущими потребностями в более мощных компьютерах. Но через десять лет Гордон Мур внёс в свой закон небольшие изменения: число транзисторов удваивается каждые два года.

Связано это было с тем, что разработка новинок стоит дополнительных денег и их необходимо окупить. Поэтому слишком частый выпуск новых продуктов не даёт компании достаточно времени заработать на них, а слишком редкий выпуск новых продуктов открывал бы дорогу конкурентам. Чтобы компания не осталась в убытках, нужна золотая середина, которую и нащупал Мур.

То, что изначально было интересным наблюдением, впоследствии стало правилом и законом для всей индустрии, которая жила и развивалась по ним все 50 лет. Однако теперь многие эксперты заявляют, что дни «закона Мура» сочтены. Чтобы разобраться, так ли это, нужно стать немножко специалистом. Попробуем?

Как работает транзистор

Итак, интегральная схема (синонимы: микросхема, чип) – это, как бы, мозг любого электронного устройства. Мы не зря использовали слово мозг, ведь у чипа тоже есть своя память и логика. Человеческий мозг получает информацию, перерабатывает, а потом передаёт её другим органам человека. Вернее, это делают нейроны головного мозга при помощи химических и электрических сигналов. Чип, как и мозг, также обрабатывает, хранит и передаёт информацию при помощи электрических сигналов. Но только роль нейронов играют транзисторы. Благодаря транзисторам, чип может выполнять наши команды. Например, банковские карты, удостоверения личности, SIM-карты имеют встроенные чипы, которые хранят разную информацию, обрабатывают её, а также выполняют разные операции.

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

Чтобы было понятно, приведём аналогию. При нажатии педали акселератора (педали газа) увеличивается скорость автомобиля. При этом на педаль нажимать приходится не очень сильно. Мощность нажатия на педаль ничтожна по сравнению с мощностью, которую развивает при этом двигатель. Чем больше угол нажатия на педаль, тем больше открываются специальные клапаны (заслонки в карбюраторе), которые регулируют количество подаваемой топливно-воздушной смеси в двигатель, где она и сгорает, увеличивая давление внутри двигателя. Как следствие, увеличивается частота вращения вала двигателя и скорость движения автомобиля.

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

В транзисторе всё происходит также. Только через него проходит не бензин, а электрический ток.

Физический предел

Как вы помните, закон Мура есть результат наблюдательности господина Мура, который при его формулировке не задумывался о законах математики и физики. Поэтому, чтобы он работал и далее, нужно, чтобы производители каждые два года умудрялись «впихивать» в чип в два раза больше транзисторов.

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

Но проблемы на этом не закончатся. Чем больше количество транзисторов в чипе, тем больше тепловыделение. Как вы знаете, высокие температуры сильно влияют на проводимость тока, что опять же может сделать транзистор непригодным.

На данный момент самый маленький размер транзисторов – 22 нанометра – в процессоре Intel Haswell (1 нанометр равен одной миллиардной части метра, т. е. 10−9метра). У корпорации Intel ещё имеется потенциал дальнейшего уменьшения размеров транзистора. Так, 10-нанометровые чипы должны появиться на рынке во второй половине 2017 года.

С каждым годом удвоение транзисторов на кристалле уже не делает их дешевле. Иначе говоря, следовать закону Мура уже невыгодно для производителей. Ведь с каждым новым шагом на преодоление физических барьеров начинает уходить больше средств: сложные материалы, суперсовременное оборудование, огромный штат научных сотрудников и при этом – большое количество отбракованных микросхем, ведь при создание супертонкой кристаллической кремниевой пластинки с встроенными в неё микроскопическими транзисторами будет очень чувствительна даже к небольшим, незаметным человеку изменениям, например колебаниям земной коры.

Итак, рано или поздно, законы природы положат конец господству закона Мура. Окончание эры стремительного развития кремниевых транзисторов предсказывают на 2020-2025 годы. Что же ждёт компьютеры дальше? Эксперты предрекают, что появятся 3D- и молекулярные транзисторы, а в более далёкой перспективе – квантовые.

Микропроцессор (МП) - это программно-управляемое устройство, которое предназначено для обработки цифровой информации и управления процессом этой обработки и выполнено в виде одной или нескольких больших интегральных схем (БИС).

Понятие большая интегральная схема в настоящее время четко не определено. Ранее считалось, что к этому классу следует относить микросхемы, содержащие более 1000 элементов на кристалле. И действительно, в эти параметры укладывались первые микропроцессоры. Например, 4-разрядная процессорная секция микропроцессорного комплекта К584, выпускавшегося в конце 1970-х годов, содержала около 1500 элементов. Сейчас, когда микропроцессоры содержат десятки миллионов транзисторов и их количество непрерывно увеличивается, под БИС будем понимать функционально сложную интегральную схему .

Микропроцессорная система (МПС) представляет собой функционально законченное изделие, состоящее из одного или нескольких устройств, основу которой составляет микропроцессор.

Микропроцессор характеризуется большим количеством параметров и свойств, так как он является, с одной стороны, функционально сложным вычислительным устройством, а с другой - электронным прибором, изделием электронной промышленности. Как средство вычислительной техники он характеризуется прежде всего своей архитектурой , то есть совокупностью программно-аппаратных свойств, предоставляемых пользователю. Сюда относятся система команд, типы и форматы обрабатываемых данных, режимы адресации, количество и распределение регистров, принципы взаимодействия с оперативной памятью и внешними устройствами (характеристики системы прерываний, прямой доступ к памяти и т. д.). По своей архитектуре микропроцессоры разделяются на несколько типов (рис. 1.1).

Универсальные микропроцессоры предназначены для решения задач цифровой обработки различного типа информации от инженерных расчетов до работы с базами данных, не связанных жесткими ограничениями на время выполнения задания. Этот класс микропроцессоров наиболее широко известен. К нему относятся такие известные микропроцессоры, как МП ряда Pentium фирмы Intel и МП семейства Athlon фирмы AMD .


Рис. 1.1.

Характеристики универсальных микропроцессоров :

  • разрядность: определяется максимальной разрядностью целочисленных данных, обрабатываемых за 1 такт, то есть фактически разрядностью арифметико-логического устройства ( АЛУ );
  • виды и форматы обрабатываемых данных;
  • система команд, режимы адресации операндов;
  • емкость прямоадресуемой оперативной памяти: определяется разрядностью шины адреса ;
  • частота внешней синхронизации. Для частоты синхронизации обычно указывается ее максимально возможное значение, при котором гарантируется работоспособность схемы. Для функционально сложных схем, к которым относятся и микропроцессоры, иногда указывают также минимально возможную частоту синхронизации. Уменьшение частоты ниже этого предела может привести к отказу схемы. В то же время в тех применениях МП, где не требуется высокое быстродействие, снижение частоты синхронизации - одно из направлений энергосбережения. В ряде современных микропроцессоров при уменьшении частоты он переходит в < спящий режим >, при котором сохраняет свое состояние. Частота синхронизации в рамках одной архитектуры позволяет сравнить производительность микропроцессоров. Но разные архитектурные решения влияют на производительность гораздо больше, чем частота;
  • производительность: определяется с помощью специальных тестов, при этом совокупность тестов подбирается таким образом, чтобы они по возможности покрывали различные характеристики микроархитектуры процессоров, влияющие на производительность.

Универсальные микропроцессоры принято разделять на CISC - и RISC-микропроцессоры . CISC-микропроцессоры (Completed Instruction Set Computing - вычисления с полной системой команд) имеют в своем составе весь классический набор команд с широко развитыми режимами адресации операндов. Именно к этому классу относятся, например, микро процессоры типа Pentium . В то же время RISC-микропроцессоры ( reduced instruction set computing - вычисления с сокращенной системой команд) используют, как следует из определения, уменьшенное количество команд и режимов адресации. Здесь прежде всего следует выделить такие микропроцессоры, как Alpha 21x64, Power PC. Количество команд в системе команд - наиболее очевидное, но на сегодняшний день не самое главное различие в этих направлениях развития универсальных микропроцессоров. Другие различия мы будем рассматривать по мере изучения особенностей их архитектуры.

Однокристальные микроконтроллеры (ОМК или просто МК) предназначены для использования в системах промышленной и бытовой автоматики. Они представляют собой большие интегральные схемы, которые включают в себя все устройства, необходимые для реализации цифровой системы управления минимальной конфигурации: процессор (как правило, целочисленный), ЗУ команд, ЗУ данных, генератор тактовых сигналов, программируемые устройства для связи с внешней средой ( контроллер прерывания , таймеры-счетчики, разнообразные порты ввода/вывода), иногда аналого-цифровые и цифро-аналоговые преобразователи и т. д. В некоторых источниках этот класс микропроцессоров называется однокристальными микро-ЭВМ (ОМЭВМ).

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

Отличительные особенности архитектуры однокристальных микроконтроллеров :

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

Основные характеристики микроконтроллеров (в качестве примера численные значения представлены для MK-51):

  1. Разрядность (8 бит).
  2. Емкость внутренней памяти команд и памяти данных, возможности и пределы их расширения:
    • внутренняя память команд - 4 Кбайт (в среднем команда имеет длину 2 байта, таким образом, во внутренней памяти может быть размещена программа длиной около 2000 команд); возможность наращивания за счет подключения внешней памяти до 64 Кбайт;
    • память данных на кристалле 128 байт (можно подключить внешнюю память общей емкостью до 64 Кбайт).
  3. Тактовая частота :
    • внешняя частота 12 МГц;
    • частота машинного цикла 1 МГц.
  4. Возможности взаимодействия с внешними устройствами: количество и назначение портов ввода-вывода , характеристики системы прерывания, программная поддержка взаимодействия с внешними устройствами.

Наличие и характеристики встроенных аналого-цифровых преобразователей ( АЦП ) и цифро-аналоговых преобразователей ( ЦАП ) для упрощения согласования с датчиками и исполнительными устройствами системы управления.

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

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

Одним из первых комплектов секционированных микропроцессоров были МП БИС семейства Intel 3000. В нашей стране они выпускались в составе серии К589 и 585. Процессорные элементы этой серии представляли собой двухразрядный микропроцессор. Наиболее распространенным комплектом секционированных микропроцессоров является Am2900, основу которого составляют 4-разрядные секции. В нашей стране аналог этого комплекта выпускался в составе серии К1804. В состав комплекта входили следующие БИС:

  • разрядное секционное АЛУ ;
  • блок ускоренного переноса;
  • разрядное секционное АЛУ с аппаратной поддержкой умножения;
  • тип схем микропрограммного управления;
  • контроллер состояния и сдвига;
  • контроллер приоритетных прерываний .

Основным недостатком микропроцессорных систем на базе секционированных микропроцессорных БИС явилась сложность проектирования, отладки и программирования систем на их основе. Использование специализированной системы команд приводило к несовместимости разрабатываемого ПО для различных микропроцессоров. Возможность создания оптимального по многим параметрам специализированного процессора требовала труда квалифицированных разработчиков на протяжении длительного времени. Однако бурное развитие электронных технологий привело к тому, что за время проектирования специализированного процессора разрабатывался универсальный микропроцессор, возможности которого перекрывали гипотетический выигрыш от проектирования специализированного устройства. Это привело к тому, что в настоящее время данный класс микропроцессорных БИС практически не используется.

Процессоры цифровой обработки сигналов , или цифровые сигнальные процессоры , представляют собой бурно развивающийся класс микропроцессоров, предназначенных для решения задач цифровой обработки сигналов - обработки звуковых сигналов, изображений, распознавания образов и т. д. Они включают в себя многие черты однокристальных микро-контроллеров: гарвардскую архитектуру, встроенную память команд и данных, развитые возможности работы с внешними устройствами. В то же время в них присутствуют черты и универсальных МП, особенно с RISC -архитектурой: конвейерная организация работы, программные и аппаратные средства для выполнения операций с плавающей запятой , аппаратная поддержка сложных специализированных вычислений, особенно умножения.

Как электронное изделие микропроцессор характеризуется рядом параметров, наиболее важными из которых являются следующие:

  1. Требования к синхронизации: максимальная частота, стабильность.
  2. Количество и номиналы источников питания, требования к их стабильности. В настоящее время существует тенденция к уменьшению напряжения питания, что сокращает тепловыделение схемы и ведет к повышению частоты ее работы. Если первые микропроцессоры работали при напряжении питания+-15В, то сейчас отдельные схемы используют источники менее 1 В.
  3. Мощность рассеяния - это мощность потерь в выходном каскаде схемы, превращающаяся в тепло и нагревающая выходные транзисторы. Иначе говоря, она характеризует показатель тепловыделения БИС, что во многом определяет требования к конструктивному оформлению микропроцессорной системы . Эта характеристика особенно важна для встраиваемых МПС.
  4. Уровни сигналов логического нуля и логической единицы, которые связаны с номиналами источников питания.
  5. Тип корпуса - позволяет оценить пригодность схемы для работы в тех или иных условиях, а также возможность использования новой БИС в качестве замены существующей на плате.
  6. Температура окружающей среды, при которой может работать схема. Здесь выделяют два диапазона:
    • коммерческий (0 0 С … +70 0 С);
    • расширенный (-40 0 С … +85 0 С).
  7. Помехоустойчивость - определяет способность схемы выполнять свои функции при наличии помех. Помехоустойчивость оценивается интенсивностью помех, при которых нарушение функций устройства еще не превышает допустимых пределов. Чем сильнее помеха, при которой устройство остается работоспособным, тем выше его помехоустойчивость.
  8. Нагрузочная способность , или коэффициент разветвления по выходу, определяется числом схем этой же серии, входы которых могут быть присоединены к выходу данной схемы без нарушения ее работоспособности. Чем выше нагрузочная способность, тем шире логические возможности схемы и тем меньше таких микросхем необходимо для построения сложного вычислительного устройства. Однако с увеличением этого коэффициента ухудшаются помехоустойчивость и быстродействие.
  9. Надежность - это способность схемы сохранять свой уровень качества функционирования при установленных условиях за установленный период времени. Обычно характеризуется интенсивностью отказов (час-1) или средним временем наработки на отказ (час). В настоящее время этот параметр для больших инте- гральных схем обычно не указывается изготовителем. О надежности МП БИС можно судить по косвенным показателям, например, по приводимой разработчиками средств вычислительной техники надежности изделия в целом.
  10. Характеристики технологического процесса . Основной показатель здесь - разрешающая способность процесса. В настоящее время она составляет 32 нм, то есть около 30 тыс. линий на 1 мм. Более совершенный технологический процесс позволяет создать микропроцессор, обладающий большими функциональными возможностями.


Рис. 1.2.

Затраты на изготовление устройств, использующих микропроцессорные БИС, представлены на рис. 1.2 . Здесь:

  1. затраты на изготовление БИС (чем больше степень интеграции элементов на кристалле, тем дороже обходится производство схемы);
  2. затраты на сборку и наладку микропроцессорной системы (с увеличением функциональных возможностей МП потребуется меньше схем для создания МПС);
  3. общая стоимость микропроцессорной системы , которая складывается из затрат (1) и (2). Она имеет некоторое оптимальное значение для данного уровня развития технологии;
  4. переход на новую технологию (оптимальным будет уже другое количество элементов на кристалле, а общая стоимость изделия снижается).

В 1965 году Гордон Мур сформулировал гипотезу, известную в настоящее время как <закон Мура>, согласно которой каждые 1,5-2 года число транзисторов в расчете на одну интегральную схему будет удваиваться. Это обеспечивается непрерывным совершенствованием технологических процессов производства микросхем.

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

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

На второй стадии исследователи Intel выбирают наиболее перспективные направления развития новых технологий. При этом обычно рассматривается 2-3 варианта решения.

Главная задача третьей стадии - полная черновая проработка новой технологии и демонстрация ее осуществимости.

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

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

Последняя, шестая стадия жизненного цикла технологии (перед отказом от ее применения) - зрелость. Зрелая технология, подвергаясь определенному совершенствованию с целью повышения производительности оборудования и снижения себестоимости продукции, обеспечивает основные объемы производства. По мере внедрения новых, более совершенных технологий <старые> производства ликвидируются.

Но не сразу: сначала они переводятся на выпуск микросхем с меньшим быстродействием или с меньшим числом транзисторов , например, периферийных БИС.

Многие энтузиасты компьютерных технологий со стажем помнят времена, когда частоты процессоров измерялись в мегагерцах, и производители (то есть Intel и AMD) старались опередить друг друга по этому показателю. Затем уровень энергопотребления и теплоотдача процессоров выросли настолько, что продолжать эту гонку стало невозможным. В последние годы начали наращивать количество процессорных ядер, но в результате был достигнут предел, когда этот рост стал невыгоден. Теперь получение наибольшей мощности на Ватт стало главным фактором производительности.

Все эти изменения произошли не потому, что разработчики столкнулись с физическими пределами дальнейшего развития существующих процессоров. Скорее, производительность оказалась ограничена тем фактом, что прогресс в некоторых областях — в первую очередь энергоэффективности — был медленнее прогресса в других сферах, вроде расширения функциональных возможностей и наборов команд. Однако может ли быть так, что теперь физический предел процессоров и их вычислительной мощности уже близок? Игорь Марков из Университета Мичигана рассмотрел этот вопрос в статье в журнале Nature.

Рассматриваем преграды

Марков отмечает, что, основываясь на чисто физических ограничениях, некоторые учёные подсчитали, что закона Мура хватит ещё на сотни лет. С другой стороны, группа International Technology Roadmap for Semiconductors (ITRS) даёт ему пару десятилетий жизни. Впрочем, прогнозы ITRS можно ставить под сомнение: раньше эта группа предсказывала процессоры с частотой 10 ГГц во времена чипов Core2. Причина этого расхождения состоит в том, что многие жёсткие физические ограничения так и не вступили в игру.

Например, крайний предел размера функционального блока — один атом, что представляет собой конечный физический предел. Но задолго до того, как получится достичь этого предела, физика ограничивает возможность точно контролировать поток электронов. Другими словами, схемы потенциально могут достичь толщины одного атома, но их поведение значительно раньше станет ненадёжным. Большая часть текущей работы Intel по переходу на более тонкие технологические процессы (меньшие транзисторы) состоит в выяснении того, как структурировать отдельные компоненты, чтобы они могли продолжают функционировать как положено.

Суть аргумента Маркова можно понять примерно так: хотя существуют жёсткие физические пределы, они часто не имеют отношения к проблемам, сдерживающим современный полупроводниковый прогресс. Вместо этого, мы сталкиваемся с более мягкими ограничениями, которые зачастую можно обойти. «Когда наступает момент определённого препятствующего прогрессу ограничения, понимание его природы является ключом к его преодолению», пишет он. «Некоторые ограничения можно просто проигнорировать, в то время как другие остаются гипотетическими и основаны только на эмпирических данных; их трудно установить с высокой степенью определённости».

В результате то, что кажется преградами развития, часто преодолевается сочетанием творческого мышления и усовершенствованной технологии. Пример Маркова — дифракционный предел. Первоначально он должен был удержать лазеры на основе аргона-фтора от травления любых структур тоньше 65 нанометров. Но с помощью субволновой дифракции мы в настоящее время работаем над 14 нм структурами, используя этот же лазер.

Где находятся современные пределы?

Марков уделяет внимание двум вопросам, которые считает крупнейшими пределами: энергетика и связь. Вопрос энергопотребления происходит из того, что количество энергии, используемой современными цепями, не сокращается пропорционально уменьшению их физических размеров. Основной результат этого: усилия, сделанные с целью блокировать части чипа в те моменты, когда они не задействованы. Но с нынешними темпами развития данного подхода в каждый конкретный момент времени неактивной является большая часть чипа — отсюда происходит термин «тёмный кремний».

Использование энергии пропорционально рабочему напряжению чипа, а транзисторы просто не могут работать ниже уровня 200 мВ. Сейчас их напряжение в 5 раз выше, так что тут есть простор для снижения. Но прогресс в уменьшении рабочего напряжения замедлился, так что мы снова может прийти к технологическим ограничениям раньше, чем к физическим.

Проблема использования энергии связана с вопросом коммуникации: большая часть физического объёма чипа и большая часть его энергопотребления расходуется на взаимодействие между разными его блоками или остальной частью компьютера. Здесь мы действительно добираемся до физических пределов. Даже если сигналы в чипе двигались бы со скоростью света, чип на частоте выше 5 ГГц не сможет передавать информацию с одной стороны чипа к другому. Лучшее, что мы можем сделать с учётом современных технологий, это попытаться разработать чипы, в которых часто обменивающиеся друг с другом данными блоки были бы физически близко расположены. Включение в уравнение третьего измерения (то есть трёхмерные цепи) могло бы помочь, но лишь незначительно.

Что дальше?

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

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

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

Другой физический предел по Маркову: стирание бита информации имеет термодинамическую стоимость, которую нельзя избежать — вычисления всегда расходуют энергию. Одна из идей для того, чтобы избежать этого предела — «обратимые вычисления», когда компоненты возвращаются в исходное состояние после расчёта. Этот способ может, по крайней мере в теории, позволить получить обратно часть использованной энергии.

Идея эта не является полностью теоретической. Марков цитирует работы с использованием сверхпроводящих цепей (которые он называет «весьма экзотическими»), обеспечивающих обратимое поведение и рассеивание энергии ниже термодинамического предела. Конечно, здесь применяется всего 4 микрокельвина, так что больше энергии тратиться на проверку работоспособности цепей, чем на саму их работу.

За пределами физики

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

Самая большая проблема, которую здесь видит Марков, это борьба за извлечение из кода большего параллелизма. Даже дешёвые смартфоны теперь работают на многоядерных процессорах, но до сих пор их использование не оптимально.

В целом складывается впечатление, что главным ограничением является человеческий разум. Хотя Марков не видит на подходе новых фантастических технологий, он оптимистично надеется на устранение текущих препятствий или их обход за счёт прогресса в других областях.

Каждый атом Вселенной, а не только различные макроскопические объекты, способен хранить информацию. Акты взаимодействия атомов можно описать как элементарные логические операции, в которых меняют свои значения квантовые биты – элементарные единицы квантовой информации. Парадоксальный, но многообещающий подход Сета Ллойда позволяет элегантно решить вопрос о постоянном усложнении Вселенной: ведь даже случайная и очень короткая программа в ходе своего исполнения на компьютере может дать крайне интересные результаты. Вселенная постоянно обрабатывает информацию – будучи квантовым компьютером огромного размера, она все время вычисляет собственное будущее. И даже такие фундаментальные события, как рождение жизни, половое размножение, появление разума, можно и должно рассматривать как последовательные революции в обработке информации.

Теорема Марголюса – Левитина гласит, что максимальная частота, с которой физическая система (электрон, например) может переходить из одного состояния в другое, пропорциональна энергии системы; чем больше доступной энергии, тем меньше времени нужно электрону, чтобы перейди отсюда туда. Эта теорема очень общая. Для нее несущественно, какая система хранит и обрабатывает информацию; важно только, сколько энергии есть в системе, чтобы обрабатывать эту информацию. Рассмотрим, например, атомы и электроны в моем компьютере. Их температура немного выше комнатной. Каждый атом и электрон раскачиваются, и количество энергии, связанной с типичными колебаниями, остается одним и тем же для атома и для электрона. Энергия на одно колебание просто пропорциональна температуре, независимо от того, говорим мы об атоме или об электроне. Следовательно, частота, с которой электрон в компьютере может перемещаться от одного состояния к другому, отсюда туда, или от 0 к 1, – такая же, что и скорость, с которой атом может переходить из одного состояния в другое. Электроны и атомы инвертируют свои биты с одной и той же частотой.

Теорема Марголюса – Левитина дает метод для вычисления максимальной частоты, с которой бит может менять свое состояние. Возьмем количество энергии, доступной для инвертирования бита, умножим ее на 4 и разделим на постоянную Планка. В результате мы получим число возможных инверсий бита за секунду. Применяя эту формулу к атомам и электронам в моем компьютере, мы выясним, что каждый колеблющийся атом и электрон изменяют свое состояние и свой бит примерно 30 трлн (30 х 1012) раз в секунду.

Скорость, с которой атомы и электроны инвертируют свои биты, обычно намного больше, чем скорость, с которой это делает обычный компьютер. Компьютер, на котором я печатаю текст, вкладывает в зарядку и разрядку конденсаторов, которые хранят его биты, в миллиард раз больше энергии, чем используют атомы и электроны на свои колебания и на инверсию своих битов. Но мой компьютер действует в 10 000 раз медленнее атомов. Медлительность моего компьютера не противоречит теореме Марголюса – Левитина. Эта теорема дает только верхний предел того, как быстро может менять свое состояние бит. Бит может делать это медленнее максимальной скорости, допускаемой теоремой. Квантовый компьютер, однако, всегда инвертирует свои биты с максимальной скоростью.

Теорема Марголюса – Левитина устанавливает предел количества элементарных операций (опов), которые может выполнять бит в секунду. Предположим, что мы оставим неизменным количество энергии, доступное для изменения состояния битов, но теперь разделим эту энергию между двумя битами. Каждый из этих двух битов получит половину энергии нашего первоначального бита и сможет работать вдвое медленнее. Но общее количество переходов в секунду останется тем же.

Если разделить количество доступной энергии между десятью битами, то каждый из них будет менять свое состояние в десять раз медленнее, но общее количество переходов в секунду останется тем же. Так же как она безразлична к размерам системы, эта теорема не «заботится» о том, откуда берется доступная энергия. Максимальное количество операций в секунду – это энергия E , умноженная на 4 и деленная на постоянную Планка.

Теорема Марголюса – Левитина позволяет легко вычислить мощность абсолютного ноутбука. Энергию абсолютного ноутбука, доступную для вычисления, можно вычислить с помощью известной формулы Эйнштейна E = mc? , где E – энергия, m – масса ноутбука, а c – скорость света. Введя в эту формулу массу нашего абсолютного компьютера (один килограмм) и скорость света (300 млн м в секунду), мы обнаружим, что у абсолютного ноутбука есть почти 100 миллионов миллиардов (1017) джоулей доступной энергии для выполнения вычислений. Если привести тот же результат в более знакомой форме энергии, у ноутбука есть около 20 млрд (2 х 1013) килокалорий доступной энергии, что эквивалентно 100 млрд шоколадных батончиков. Это очень много энергии.

Другой знакомый нам эквивалент – это количество энергии, высвобождаемой при ядерном взрыве. У абсолютного ноутбука есть двадцать мегатонн (20 млн т в тротиловом эквиваленте) энергии, доступной для вычисления. Это сопоставимо с количеством энергии, высвобождаемой при взрыве большой водородной бомбы. По существу, когда наш абсолютный ноутбук выполняет вычисления на максимальной скорости, используя для изменения состояния битов каждую доступную калорию, изнутри это выглядит как ядерный взрыв. Элементарные частицы, которые хранят и обрабатывают информацию в абсолютном ноутбуке, движутся при температуре в миллиард градусов. Абсолютный ноутбук похож на маленький кусочек Большого взрыва. (Технологии упаковки должны будут совершить серьезный прорыв, прежде чем кто-то захочет положить абсолютный ноутбук к себе на колени.) В итоге количество операций, которое может выполнить наш маленький, но мощный компьютер, составляет огромную величину: миллион миллиардов миллиардов миллиардов миллиардов миллиардов (1051) операций в секунду. Компании Intel есть, к чему стремиться.

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

Но сколько времени потребуется компьютерной индустрии, чтобы при существующей скорости технического прогресса создать абсолютный ноутбук? Мощность компьютеров удваивается каждые полтора года. За пятнадцать лет она удваивается десять раз, то есть увеличивается на три порядка. Иначе говоря, нынешние компьютеры в миллиард раз быстрее, чем были гигантские электромеханические машины всего пятьдесят лет назад. Нынешние компьютеры выполняют порядка триллиона логических операций в секунду (1012). Следовательно (если закон Мура продержится до тех пор), мы сможем купить абсолютный ноутбук в магазине примерно в 2205 г.

Количество энергии, доступной для вычислений, ограничивает скорость вычислений. Но скорость вычислений – не единственная характеристика, которая нас интересует, когда мы покупаем новый ноутбук. Не менее важен объем памяти. Какова емкость абсолютного жесткого диска?

Внутренности абсолютного ноутбука заполнены элементарными частицами, которые раскачиваются, как сумасшедшие, при миллиарде градусов. Те же методы, которые специалисты по космологии используют для измерения количества информации, присутствовавшего во время Большого взрыва, можно использовать для измерения числа битов, запечатленных абсолютным ноутбуком. Раскачивающиеся частицы абсолютного ноутбука запечатлевают около 10 000 миллиардов миллиардов миллиардов битов (1031). Это очень много битов – намного больше, чем информации, которая хранится на жестких дисках всех компьютеров в мире.

Сколько времени потребуется компьютерной индустрии, чтобы реализовать технические требования к памяти абсолютного ноутбука? Закон Мура для объема памяти сейчас действует быстрее, чем закон Мура для скорости вычислений: емкость жесткого диска удваивается почти каждый год. При таком темпе для того, чтобы создать абсолютный жесткий диск, потребуется всего семьдесят пять лет.

Конечно, закон Мура может действовать лишь до тех пор, пока человеческая изобретательность будет находить новые способы уменьшать размеры компьютеров. Трудно постоянно уменьшать размеры соединений, транзисторов и конденсаторов, и чем более миниатюрными становятся компоненты компьютеров, тем труднее ими управлять. Закон Мура уже много раз объявляли мертвым из-за той или иной хитроумной технической проблемы, которая на первый взгляд казалась неразрешимой. Но каждый раз хитроумные инженеры и ученые находили новый способ разрубить узел технологий. Кроме того, как мы уже сказали, у нас есть надежные экспериментальные данные о том, что компоненты компьютеров можно уменьшить до размера атомов. Существующие квантовые компьютеры уже хранят и обрабатывают информацию на уровне атомов. При нынешней скорости миниатюризации закон Мура не позволит достичь уровня атомов еще в течение сорока лет, так что определенные надежды в его отношении сохраняются.

Микропроцессор 80386 является полной 32-разрядной версией предыдущих 16-разрядных микропроцессоров 8086/80286 и символизирует значительное достижение в архитектуре процессоров - поворот от 16-разрядной к 32-разрядной архитектуре. Наряду с увеличением разрядности имеется также много усовершенствований и дополнительных функций. Микропроцессор 80386 обеспечивает: переключение задач, более совершенное управление памятью, управление виртуальной памятью со страничной трансляцией адресов (paging) или без нее, защиту программного обеспечения и возможность использования запоминающей системы большой емкости. Все программное обеспечение, написанное для прежних микропроцессоров 8086/8088 и 80286 совместимо снизу вверх и для микропроцессора 80386. Объем адресуемой памяти процессором увеличился с 1 Мбайта (для микропроцессора 8086/8088) или 16 Мбайт (для микропроцессора 80286) до 4 Гбайт, доступных процессору 80386 в защищенном режиме. Микропроцессор 80386 может переходить из защищенного режима работы в реальный режим без аппаратного сброса микропроцессора, который требует значительных затрат времени и был необходим в случае использования процессора 80286.

Микропроцессор 80486 является улучшенной версией микропроцессора 80386 и выполняет многие его команды за один период тактовых импульсов. Микропроцессор 80486 также имеет внутренний кэш первого уровня емкостью на 8 Кбайт и встроенный высокопроизводительный математический сопроцессор, программно совместимый с сопроцессором 80387. Следует отметить, что процессор 80486DX4 имеет кэш-память емкостью 16 Кбайт. Микропроцессор 80486, работая на такой же тактовой частоте, что и микропроцессор 80386, является на 50% более производительным.

Микропроцессор 80386

Наиболее распространены были две версии микропроцессора 80386: процессор 80386DX, и упрощенный процессор 80386SX с внешней 16-разрядной шиной данных, хотя внутри он использовал 32-разрядную шину.

Процессор 80386DX был помещен в 132-контактный корпус типа PGA (pin grid array), т. е. корпус с матричным расположением штырьковых вы­водов. Более новая версия микропроцессора 80386 - 80386ЕХ содержит в себе: блок управления шиной АТ, блок управления регенерацией динамического ОЗУ, программируемый блок выбора кристалла, контроллер прерываний, контроллер DMA, блок таймеров, блок последовательной передачи данных, 26 выводов шины адреса, 16 выводов шины данных.

Микропроцессор 80386DX, имея 32-разрядную шину данных и 32-разрядную шину адреса, способен адресовать 4 Гбайта физической памяти. Микропроцессор 80386SX, подобно микропроцессору 80286, адресует 16 Мбайт памяти и имеет в своем распоряжении только 24-разрядную шину адреса и 16-разрядную шину данных. Микропроцессор 80386SX был разработан после микропроцессора 80386DX для использования, не требующего полной версии 32-разрядной шины. Микропроцессор 80386SX применялся во многих персональных компьютерах, которые использовали ту же самую системную плату, что и для микропроцессора 80286. В то время, когда большинству приложений, включая Windows, требовалось менее 16 Мбайт памяти, процессор 80386SX был популярной и менее дорогостоящей версией микропроцессора 80386. В дальнейшем, несмотря на то, что процессор 80486 становился все более дешевым для построения новых вычислительных систем, все равно процессор 80386 долгое время оставался востребованным для многих приложений. Например, микропроцессор 80386ЕХ, хотя в персональных компьютерах и не исполь­зовался, но был очень популярен во встраиваемых системах.

Микропроцессору 80386, как и предыдущим версиям семейства микропроцессоров Intel, для работы требуется только один источник питания напряжением +5,0 В. Средний ток потребления процессором 80386 составляет: 550 мА для процессора, работающего на тактовой частоте 25 МГц, 500 мА для процессора с частотой 20 МГц и 450 мА для процессора, работающего на частоте 16 МГц. Кроме того, имелась версия процессора с тактовой частотой 33 МГц, который имел ток потребления, равный 600 мА. Ток потребления микропроцессора 80386ЕХ составляет 320 мА при работе на частоте 33 МГц.

Ток потребления процессора во время некоторых режимов его работы может возрастать до 1,0 А. Это означает, что источник питания и схема разводки питания должны быть рассчитаны на эти всплески тока. Процессор имеет многочисленные выводы V CC и V SS , которые для правильной работы микропроцес­сора должны быть все подключены к источнику постоянного тока с напряжением +5,0 В (V CC) и заземлены (V SS). Некоторые выводы процессора обозначены как N/C (no connection) и не должны быть куда-либо подключены. Помимо названных, были и несколько другие версии микропроцессоров 80386SX и 80386ЕХ, имеющие пониженное напряжение питания +3,3 В. Эти процессоры применялись в портативных блокнотных компьютерах (notebook) или портативных компьютерах (laptop).

Система памяти

Система физической памяти, к которой микропроцессор 80386DX может обращаться, имеет емкость 4 Гбайт. Кроме того, процессор имеет поддержку виртуальной памяти объемом до 64 Тбайт, отображаемой на физическую память с помощью блока управления памятью и дескрипторов. Следует заметить, что виртуальная адресация позволяет использовать программу более 4 Гбайт при наличии метода свопинга (swapping) и при большой емкости винчестера. На рис. 6.4 показана организация системы физической памяти микропроцессора 80386DX.

Память разделена на четыре 8-разрядных банка памяти, с емкостью до 1 Гбайт в каждом. Такая 32-разрядная организация памяти позволяет иметь доступ к байту, слову или двойному слову. Микропроцессор 80386DX способен передать 32-разрядные данные за один цикл памяти, тогда как для этого микропроцессору 8088 требовалось четыре цикла, а микропроцессорам 80286 и 80386SX необходимо два цикла. Большая разрядность данных очень важна, особенно для чисел с плавающей точкой одинарной точности, которые занимают 32 разряда. Достаточно развитое программное обеспечение использует числа с плавающей точкой для хранения данных, поэтому 32-разрядные ячейки памяти ускоряют выполнение программы, если она написана с учетом разрядности памяти.

Адрес каждого байта памяти представляется в шестнадцатеричной системе счисления, как и для прежних версий процессоров. Разница состоит в том, что микропроцессор 80386DX использует 32-разрядную шину адреса с памятью, адресуемой в диапазоне 00000000H-FFFFFFFFH.

Доступ к двум банкам памяти в системе, построенной на микропроцессорах 8086, 80286 и 80386SX, осуществляется посредством сигналов BLE (А0 - на 8086 и 80286) и ВНЕ. Доступ к банкам памяти микропроцессор 80386DX выполняет с помощью четырех сигналов ВЕ3 - BE0 . Такая организация памяти позволяет получить доступ к одному байту при активизации микропроцессором одного разрешающего сигнала.

При активизации двух разрешающих сигналов процессор адресуется к слову. В большинстве случаев при адресации к слову осуществляется обращение к банку 0 и 1 или к банку 2 и 3. Ячейка памяти 00000000Н находится в банке 0, ячейка 00000001Н - в банке 1, ячейка 00000002Н - в банке 2 и ячейка 00000003 - в банке 3. Микропроцессор 80386DX не имеет адресных выводов А0 и A1, поскольку они дешифрируются внутри процессора как сигналы разрешения байтов. Аналогично в 16-разрядном микропроцессоре 80386SX нет адресного вывода А0, поскольку он дешифрируется в сигналы BLE и ВНЕ. Микропроцессор 80386ЕХ адресуется к слову данных, размещаемому в двух банках 16-разрядной системы памяти, при пассивном сигнале BS8 (высоком логическом его уровне) или же к байту в 8-разрядной системе при активизации этого сигнала.

Управляющие регистры

В микропроцессоре 80386, дополнительно к регистру флагов EFLAGS и указателю инструкций EIP, имеются и другие управляющие регистры. Управляющий регистр CR0 (control register) идентичен регистру состояния машины MSW (machine status word) микропроцессора 80286, за исключением того, что он 32-разрядный, а не 16-разрядный регистр. Дополнительными управляющими регистрами являются CR1, CR2 и CR3.

На рис. 6.5. показана структура управляющих регистров микропроцессора 80386.

Управляющий регистр CR1 в микропроцессоре 80386 не используется, однако зарезервирован для будущих изделий. Управляющий регистр CR2 фиксирует линейный адрес, по которому был получен последний отказ страницы памяти. Наконец, управляющий регистр CR3 фиксирует базовый адрес таблицы страниц. Младшие 12 разрядов с 0 по 11 из 32-разрядного регистра содержат нули и объединяются с остальными разрядами регистра, чтобы определить начало таблицы страниц размером 4К.

Регистр CR0 имеет ряд специальных управляющих битов, которые в микропроцессоре 80386 определяются следующим образом:

Бит PG (paging enable) предназначен для выбора преобразования таблицы стра­ниц из линейных адресов в физические адреса при PG = 1. Страничная переадресация памяти позволяет присваивать линейному адресу любую физическую ячейку памяти.

ЕТ

Бит ЕТ (extension type) является индикатором поддержки инструкций математического сопроцессора. Если ЕТ - 0, то выбран сопроцессор 80287, а если ЕТ = 1, то сопроцессор 80387. Этот бит был добавлен, чтобы отражать то обстоятельство, что в данной системе имеется сопроцессор 80387.

Бит TS (task switch) указывает, что микропроцессор выполнил переключение задач (изменение содержимого регистра задачи TR в защищенном режиме устанавливает бит TS). Если бит TS установлен, то команда цифрового сопроцессора приводит к прерыванию типа 7 (сопроцессор недоступен).

ЕМ

Бит ЕМ (emulate coprocessor) устанавливается для вызова прерывания типа 7 при попытке выполнения каждой ESC-команды, т. е. команды, относящейся к сопроцессору. Это часто используется для программной эмуляции сопроцессора. Эмуляция снижает стоимость системы, но для выполнения эмулированных команд сопроцессора часто требуется больше времени, примерно где-то в 100 раз.

Бит MP (monitor coprocessor) устанавливается для вызова прерывания типа 7 при выполнении каждой команды wait, когда установлен бит TS.

РЕ

Бит РЕ (protection enable) устанавливается, чтобы перевести микропроцессор 80386 в защищенный режим. Он может также сбрасываться, чтобы начать довольно длинную последовательность инструкций переключения в реальный режим работы. В микропроцессоре 80286 этот бит может только устанавливаться. Микропроцессор 80286 не способен переходить обратно в реальный режим работы без выполнения аппаратного сброса, что исключает его использование в большинстве систем, использующих защищенный режим.

Дескрипторы и селекторы

Перед тем как перейти к обсуждению блока страничной трансляции адресов, рассмотрим дескрипторы и селекторы микропроцессора 80386. Микропроцессор 80386 использует дескрипторы во многом таким же образом, как и микропроцессор 80286. Дескриптор в обоих микропроцессорах - это последовательность из восьми байтов, которая содержит информацию о сегменте памяти и о его расположении. Селектор (содержимое сегментного регистра) используется для идентификации дескриптора, заданного в таблице дескрипторов. Основное отличие между микропроцессорами 80286 и 80386 состоит в том, что последний имеет два дополнительных селектора (FS и GS), и для микропроцессора 80386 определены два самых старших байта дескриптора. Другое отличие состоит в том, что дескрипторы микропроцессора 80386 используют 32-разрядный базовый адрес сегмента и 20-разрядное поле предела (limit) сегмента вместо 24-разрядного базового адреса и 16-разрядного поля предела сегмента, имеющихся в микропроцессоре 80286.

Микропроцессор 80286 адресуется к области памяти размером 16 Мбайт за счет своего 24-разрядного базового адреса и имеет протяженность сегмента в 64 Кбайт благодаря 16-разрядному полю предела. Микропроцессор 80386 за счет 32-разрядного базового адреса адресуется к области памяти в 4 Гбайт, а размер сегмента определяется благодаря 20-разрядному полю предела, который используется двумя разными способами. Бит гранулярности G (granularity) дескриптора или, иначе, бит дробности определяет единицу измерения для размера сегмента: при G = 0, размер задается в байтах, а если G = 1, то - в страницах по 4К. Таким образом, размер сегмента при 20-разрядном поле предела может составить соответственно 1 Мбайт или 4 Гбайт.

Бит гранулярности G появился в дескрипторе, начиная с микропроцессора 80386. Если бит G = 0, то сохраняемое в поле предела значение трактуется непосредственно, как предельный размер сегмента, позволяющий иметь доступ к любой области 00000Н-FFFFFG сегмента емкостью в 1 Мбайт. Если же бит G = 1, то сохраняемое в поле предела число интерпретируется как 00000XXXH-FFFFFXXXH, где XXX имеет любую величину между 000Н и FFFH. Таким образом обеспечивается доступ к размеру сегмента от 0 байт до 4 Гбайт участками по 4 Кбайт. Значение предела, равное 00001Н, указывает на то, что предельный размер сектора составляет 4 Кбайт, когда бит G = 1 или же 1 байт, когда бит G = 0. Примером может служить сегмент, начинающийся с физического адреса 10000000H. Для значения предела 00001Н и бита G = 0 данный сегмент начинается в 10000000H и заканчивается в 10000001Н. Если же бит G = 1 при этом же значении предела (00001Н), то сегмент начинается в ячейке 100000000Н и заканчивается в 10001FFFH.

На рис. 6.6 показано, как микропроцессор 80386 адресуется к сегменту памяти в защищенном режиме, используя селектор и дескриптор. Приведенная адресация идентична со способом адресации сегмента микропроцессором 80286. Разница состоит в размере доступного для микропроцессора 80386 сегмента. Старшие 13 разрядов (биты 15-3) селектора используются для выбора дескриптора из таблицы дескрипторов. Бит индикатора таблицы TI (table indicator) (бит 2 селектора) указывает на тип таблицы дескрипторов: локальную, если бит TI = 1, или глобальную, если бит TI = 0. Младшие два бита RPL (requested privilege level) (биты 1-0) селектора определяют запрашиваемый уровень привилегий для доступа к сектору.

Поскольку селектор использует 13-разрядный код для доступа к дескриптору, то каждая таблица (локальная или глобальная) содержит не более 8192 дескриптора. Поскольку возможный размер сегмента для микропроцессора 80386 достигает 4 Гбайт, то единовременно можно получить доступ к 16 384 сегментам, используя две таблицы дескрипторов. Все это позволяет микропроцессору 80386 иметь поддержку виртуальной памяти объемом до 64 Тбайт (1 Тбайт = 1024 Мбайт). Разумеется, что реально может существовать система памяти емкостью только до 4 Гбайт. Если же для программы в какой-то момент времени потребуется память более 4 Гбайт, то требуемые данные могут подкачиваться в систему памяти с дисковода или какого-либо другого накопителя большого объема.

Микропроцессор 80386 использует таблицы дескрипторов для глобальных (GDT ) и локальных (LDT) дескрипторов. Третья таблица дескрипторов используется дескрипторами прерываний (GОТ ) или вентилями (gates). Первые шесть байт дескриптора микропроцессора 80386 такие же, как в микропроцессоре 80286, что обеспечивает программную совместимость с ним снизу вверх. Два старших байта дескриптора микропроцессора 80286 были зарезервированы и содержали значение 00H. Дескрипторы для микропроцессоров 80286 и 80386 показаны на рис. 6.7.

Дескриптор микропроцессора 80386 содержит 32-разрядный базовый адрес, 20-разрядное поле предела сегмента и бит гранулярности G, определяющий множитель предела сегмента (1 или 4К раз) или, иначе, в каких единицах задан предел: в байтах (G = 0) или страницах по 4К (G = 1). Далее представлено назначение полей дескриптора микропроцессора 80386:

База (В31-В0)

Поле База (Base) определяет базовый (начальный) 32-разрядный адрес сегмента в физическом 4 Гбайтном адресном пространстве микропроцессора 80386.

Предел (L19-L0)

ПолеПредел (Limit) определяет предельный размер сегмента в байтах, если бит гранулярности G = 0, или в страницах по 4К, если G = 1. Это позволяет иметь любой размер сегмента от 1 байта до 1 Мбайт, если бит G = 0 или от 4 Кбайт до 1 Гбайт, если бит G = 1. Следует напомнить, что предел указывает на последний байт в сегменте.

Права доступа

Поле Права доступа (Access rights) определяет уровень привилегий и другую информацию относительно сегмента. Этот байт различен для разных типов дескрипторов и конкретизируется для каждого из них.

Бит гранулярности G (granularity) выбирает множитель 1 или 4К для поля предела сегмента. Если бит G = 0, то множитель равен 1, если бит G = 0, то множитель равен 4К.

Бит D (default size) определяет разрядность используемых операндов и регистров по умолчанию. Если D = 0, тогда 16 бит, как в микропроцессоре 80286; если D = 1, то 32 бит, как в микропроцессоре 80386. Этот бит определяет, требуются ли префиксы к 32-разрядным данным и индексным регистрам. Если D = 0, тогда требуется префикс для доступа к 32-разрядным регистрам и для использования 32-разрядных указателей. Если D = 1, тогда префикс требуется для доступа к 16-разрядным регистрам и для 16-разрядных указателей. Атрибуты use16 и use32, используемые с директивой segment в языке ассемблера, управляют установкой бита D. Реальный режим работы всегда предполагает, что регистры 16-разрядные, поэтому к любой команде, адресуемой 32-разрядным регистром или указателем, должен применяться префикс.

Бит AVL (available) доступен для операционной системы и может использоваться ею при необходимости. Он не применяется и не анализируется процессором и предназначен для использования прикладными программами.

Имеются две разновидности дескрипторов: дескриптор сегмента кода и данных, а также дескриптор системных сегментов. Первый дескриптор определяет данные, стек и сегменты кода. Дескриптор системных сегментов предназначен для хранения информации о таблицах системы, задачах и вентилях.