Закон мура или есть ли предел мощности компьютера. Понятие о сегментированной модели памяти

Микропроцессор 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) доступен для операционной системы и может использоваться ею при необходимости. Он не применяется и не анализируется процессором и предназначен для использования прикладными программами.

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

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


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

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

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

1. Режимы работы микропроцессора

2. Организация памяти

 Модели использования оперативной памяти (сегментированная, страничная)

 Понятие о сегментированной модели памяти

 Понятие о страничной модели памяти

 Сегментно-страничный способ распределения памяти

3. Плоская модель памяти

Режимы работы микропроцессора

Реальный режим

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

Защищенный режим (protected mode )

Означает, что параллельные вычисления могут быть защищены программно-аппаратным путем.

Позволяет полностью использовать все возможности, предоставляемыемикропроцессором. Все современные многозадачные ОС работают в этом режиме.

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

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

Режим виртуального 8086

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

Организация памяти

Физическая память, к которой микропроцессов имеет доступ по шине адреса, называется оперативной памятью (или оперативным запоминающим устройством - ОЗУ).

ОП организована как последовательность байтов.

Каждому байту соответствует уникальный адрес (его номер), который называется физическим адресом .

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

Микропроцессор аппаратно поддерживает несколько моделей использования оперативной памяти:

сегментированную модель

страничную модель

Понятие о сегментированной модели памяти

Память для программы делится на непрерывные области памяти, называемые сегментами .

Сегменты - это логические элементы программы.

Сама программа может обращаться только к данным, которые находятся в этих сегментах.

Сегмент представляет собой независимый, поддерживаемый на аппаратном уровне блок памяти.

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

Замечание. Программист может либо самостоятельно разбивать программу на фрагменты (сегменты), либо автоматизировать этот процесс и возложить его на систему программирования.

Для микропроцессоров Intel принят особый подход к управлению памятью. Каждая программа в общем случае может состоять из любого количества сегментов, но непосредственный доступ она имеет только к 3 основным сегментам: кода, данных и стека и к дополнительным сегментам данных (всего 3).

Операционная система (! а не сама программа) размещает сегменты программы в ОП по определенным физическим адресам, а значения этих адресов записывает в определенные места, в зависимости от режима работы микропроцессора:

 в реальном режиме адреса помещаются непосредственно в сегментные регистры (cs, ds, ss, es, gs, fs);

 в защищенном режиме - в специальную системную дескрипторную таблицу (Элементом дескрипторной таблицы является дескриптор сегмента. Каждый сегмент имеет дескриптор сегмента -8 байт. Существует три дескрипторные таблицы. Адрес каждой таблицы записывается в специальный системный регистр).

Для доступа к данным внутри сегмента обращение производится относительно начала сегмента линейно, т.е. начиная с 0 и заканчивая адресом, равным размеру сегмента. Этот адрес называется смещением ( offset ).

Таким образом, для обращения к конкретному физическому адресу ОП необходимо определить адрес начала сегмента и смещение внутри сегмента.

Физический адрес принято записывать парой этих значений, разделенных двоеточием

Например, 0040:001Ch; 0000:041Ch; 0020:021Ch; 0041:000Ch.

Каждый сегмент описывается дескриптором сегмента.

ОС строит для каждого исполняемого процесса соответствующую таблицу дескрипторов сегментов и при размещении каждого из сегментов в ОП или внешней памяти в дескрипторе отмечает его текущее местоположение (бит присутствия).

Дескриптор содержит поле адреса, с которого сегмент начинается и поле длины сегмента. Благодаря этому можно осуществлять контроль

1) размещения сегментов без наложения друг на друга

2) обращается ли код исполняющейся задачи за пределы текущего сегмента.

В дескрипторе содержатся также данные о правах доступа к сегменту (запрет на модификацию, можно ли его предоставлять другой задаче)  защита.

Достоинства:

1) общий объем виртуальной памяти превосходит объем физической памяти

2) возможность размещать в памяти как можно больше задач (до определенного предела)  увеличивает загрузку системы и более эффективно используются ресурсы системы

Недостатки:

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

2) фрагментация;

3) потери памяти на размещение дескрипторных таблиц

4) потери процессорного времени на обработку дескрипторных таблиц.

Сегментированная модель памяти поддерживается и в реальном, и в защищенном режимах работы микропроцессора.

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

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

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

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

Суперкомпьютеры всегда представлялись особенным классом вычислительной техники. Поскольку строят такие машины для решения задач необычных, то и бюджеты имеют необычные, а это, в свою очередь, давало ощущение бесконечных возможностей: казалось, проблема всегда только в деньгах и, влей ещё десяток–другой миллионов, производительность можно наращивать бесконечно. Случившееся в последние месяцы и годы и выраженное свежим списком 500 самых мощных числогрызов планеты - известным вам TOP500.org - даёт, однако, повод утверждать, что «бесконечность» кончилась. Суперкомпьютеры первыми из современных компьютерных систем ткнулись в физический предел возможностей полупроводниковой электроники - и для них прежде всего необходимо теперь отыскать выход из тупика. Новую технологию компьютинга.

Формальной зацепкой для такого далекоидущего утверждения стала странная закономерность, подмеченная составителями вышеназванного списка. Топ-500 обновляется дважды в год, и в верхних позициях его последней версии, опубликованной на прошлой неделе, изменений почти не произошло (в десятку «лучших» добавился всего один новый участник, да суммарная производительность всех пяти сотен машин немного выросла, с 0,223 до 0,250 эксафлопс). Зато случилась качественная общая перемена: «центр тяжести» списка сместился в верхнюю его часть, или, говоря проще, основная вычислительная мощь теперь сконцентрирована в сравнительно небольшом (исторически - рекордно малом) количестве самых быстрых машин. Выглядит это так: половина кумулятивной мощи Топ-450 обеспечивается всего лишь 17 первыми компьютерами списка. Тренд этот обозначился не вчера, однако за последние шесть лет оформился настолько, что над ним необходимо задуматься.

Единого несомненного объяснения нет. Одно из самых убедительных - финансовое: за последние годы суперкомпьютеры стали сильно дороже (примерно вчетверо, в сравнении, скажем, с числогрызами середины “нулевых”), а потому доступны теперь лишь относительно немногим государственным агентствам и крупным компаниям. Вдобавок конструкторы и покупатели новых не слишком мощных машин не стремятся засветиться в рейтинге, чтобы не портить себе имидж. Так и получается, что чем дальше, тем ярче проявляется тренд: сильные становятся сильней, слабые нелинейно быстро отстают.

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

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

И тут очень кстати вспомнить про готовящуюся замену знаменитого теста Linpack , который с самого начала публикации Топ-500 (двадцать лет назад) служит главным мерилом производительности суперкомпьютерных систем. Заменить его предлагается на недавно разработанный тест HPCG (High Performance Conjugate Gradient). Причина: Linpack - написанный на «Фортране» аж в 1979 году - отражает истинную производительность измеряемых систем неудовлетворительно и расхождение растёт.

Вообще, внятно объяснить отличие Linpack от HPCG не может даже их общий соавтор Джек Донгарра. Но, сильно упрощая, разницу можно свести к следующему: Linpack оценивает главным образом способность суперкомпьютера к чистым вычислениям (что хорошо делают GPU-акселераторы), тогда как HPCG учитывает ещё и важную при решении практических научных и технических задач производительность внутренних коммуникаций (то есть частое нерегулярное обращение к памяти, например).

HPCG если и не заменит, то дополнит Linpack уже через несколько лет «обкатки» (кому интересно, исходники доступны под BSD-лицензией с сайта лабораторий Sandia). И это может привести к значительным перестановкам по всему списку Топ-500, возврату в него мелких участников, которые станут получать более высокие, более справедливые оценки, и даже внесению корректировок в архитектуру суперкомпьютеров, когда их перестанут оптимизировать под Linpack. Хоть на последнее, конечно, особенно надеяться не следует - ведь прорывной технологии компьютинга по-прежнему нет!

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

Что может обеспечить такой рывок? Западная пресса засматривается на нанотрубки, из которых ребятам в Стэнфорде удалось построить одномерные полярные транзисторы (CNFET), научиться делать микросхемы с гарантированной функциональностью (главная проблема: всё ещё трудно избежать большого числа неправильно уложенных нанотрубок) и даже построить MIPS-совместимый компьютер, продемонстрированный как раз на прошлой неделе, на суперкомпьютерной конференции ACM/IEEE SC13 («Компьютерра» писала об этом проекте: см. « »). В перспективе эта технология способна дать 13-кратное превосходство в производительности на единицу энергопотребления к полупроводниковым чипам. Интересно, занимается ли нанотрубками кто-то у нас?