Адресное пространство процессора

Адресное пространство микропроцессора – общее количество адресов, выделяемых для обозначения внутренних регистров и устройств хранения данных, а также регистров внешних устройств, к которым относятся элементы памяти и ввода/вывода. Этот показатель рассчитывается на основании разрядности адресной шины, физически поддерживаемой микропроцессором. Например, модель КР580ВМ80А является обладателем пропускной способности в шестнадцать разрядов, что соответствует 216 ячейкам памяти.

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

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

Понятие адресного пространства имеет весьма универсальный характер и появляется во множестве контекстов. Возьмем телефонные номера. В США и многих других странах местный телефонный номер состоит обычно из семизначного номера. Поэтому адресное пространство телефонных номеров простирается от 0000000 до 9999999, хотя некоторые номера, к примеру, те, что начинаются с 000, не используются. С ростом количества сотовых телефонов, модемов и факсов это пространство стало слишком тесным, а в этом случае необходимо использовать больше цифр. Адресное пространство портов ввода-вывода процессора Pentium простирается от 0 до 16 383. Протокол IPv4 обращается к 32-разрядным номерам, поэтому его адресное пространство простирается от 0 до 232 - 1 (опять-таки с некоторым количеством зарезервированных номеров).

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

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

Разрядность процессора

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

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

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

С разрядностью шины адреса немного сложнее. Дело в том, что вся адресуемая память компьютера пронумерована побайтно. Поэтому для обращения процессора к памяти ему необходимо запросить адрес нужных данных по адресной шине. Разрядность шины адреса определяет максимальный номер байта, который может быть затребован процессором. Так, при 8-ми разрядной шине возможна адресация 256 байт, при 16-ти разрядной – 64 Кбайт, а при 32-х разрядной – 4 Гбайт.

Между шиной адреса и шиной данных есть эмпирическое соотношение: чем больше процессор должен адресовать памяти (т.е. чем больше разрядность шины адреса), тем быстрее они должны поступать в процессор. Следовательно, тем шире шина данных. Однако на разрядность шин накладывается технологическое ограничение: чем шире шина, тем сложнее сделать его компоненты (как со "стороны" процессора, так и периферии.) Поэтому в современных универсальных микропроцессорах ШАШ ~ 0.5 – 2.0 ШШД.

Примечание: ШАШ – ширина адресной шины, ШШД – ширина шины данных)

Тактовая частота процессора

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

Все операции в микропроцессоре синхронизируются со специальными синхроимпульсами, вырабатываемой специальной микросхемой – таймером. Синхроимпульсы нужны для того, чтобы все схемы работали с одинаковой скоростью. Дело в том, что разные элементы схемы (триггеры, сумматоры, логические элементы, дешифраторы) по определению работают с разной скоростью. Это связано с технологическими (разная ширина базы у биполярных транзисторов, каналов у полевых транзисторов, разная протяженность элементов, их электрического сопротивления, подвижности электронов в разных направлениях кристалла), так и субъективными причинами (отклонения от технологии производства, условия эксплуатации, неравномерный нагрев микросхемы в приборе и т.п.) Поэтому в "логику" схемы вводят дополнительный элемент – синхросигнал, и все операции происходят только в момент смены сигнала синхроимпульса с 0 на 1. Конечно, это намного замедляет работу системы, однако появляется гарантия, что операция будет происходить с текущими данными на "текущем" шаге, а не прошлыми или даже позапрошлыми, поступившими с опозданием в преобразователь данных из-за разной скорости работы элементов схемы.

Кажется очевидным, что чем выше тактовая частота, тем выше скорость работы процессора. Однако не все так просто. Чтобы сделать тактовую частоту выше, необходимо уменьшить элемент схемы (т.е. уменьшить расстояние, проходимое носителями заряда). Это, во-первых, сложно технологически. Во-вторых, увеличивается сопротивления каждого элемента. Это значит (закон Джоуля-Ленца), что процессор будет сильно нагреваться. А это, в свою очередь, приведет к еще большему изменению параметров микросхемы и скорости работы различных участков микросхемы. И мы опять пришли к исходному состоянию. В-третьих, усиливается т.н. "дробовой эффект" в приборе, что может совершенно изменить соотношение "сигнал - шум" в микросхеме и исказить сигнал. Короче, "за что боролись, на то и напоролись...".

Из статей начала 90-х годов XX века автор узнал, что брак при производстве интегральных микросхем в США достигал 95%! Чтобы цены на микропроцессоры не были астрономическими при таком браке, использовалась и до сих пор используется многоуровневая система контроля. На первом этапе партия тестируется на соответствие заявленным параметрам (с выходом 5%). Если пробная микросхема не выдерживает тесты, партию "понижают в сорте", и пробную микросхему тестируют на соответствие более низким нормам (например, снижают тактовую частоту на 100 МГц.) Если она удовлетворяет этим нормам, на всю партию выдается сертификат с этой нормой. Если же микросхема опять не удовлетворяет этим нормам, происходит дальнейшее снижение требований к партии и т.д.

Таким образом удается снизить брак до 30%. Однако, поскольку бракуется вся партия, в ней могут находиться и микросхемы с более высокими характеристиками, чем это указывается в сертификате. На этом основан так называемый "разгон" процессоров – увеличение его тактовой частоты выше номинала. Часто такой прием срабатывает, и процессор нормально работает.

Как уже указывалось в п. B.2, минимальное время исполнения команды – один такт. Но некоторые операции выполняются медленнее, или включают в себя несколько более простых операций, Такие операции выполняются за несколько тактов. Поэтому самый лучший способ повышения скорости работы компьютера – уменьшение количества тактов для одной сложной операции. Именно по этому пути идут разработчики архитектуры микропроцессоров.

Дискретность памяти

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

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

Кодирование чисел и текста

Для записи информации о количестве объектов используются числа. Числа записываются с использованием особых знаковых систем, которые называются системами счисления. Алфавит систем счисления состоит из символов, которые называются цифрами. Например, в десятичной системе счисления числа записываются с помощью десяти всем хорошо известных цифр: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.

Традиционно для кодирования одного символа используется количество информации, равное 1 байту, то есть I = 1 байт = 8 битов. Кодирование заключается в том, что каждому символу ставится в соответствие уникальный десятичный код от 0 до 255 или соответствующий ему двоичный код от 00000000 до 11111111. Таким образом, человек различает символы по их начертаниям, а компьютер - по их кодам.

Информационный объем текста складывается из информационных весов составляющих его символов.

I = i•k

где i- количество информации, которое несет в себе каждый символ алфавита, k-количество знаков в сообщении, I- количество информации в сообщении при алфавитном подходе.

Кеш память

Кэш или кеш (англ. cache, от фр. cacher — «прятать»; произносится [kæʃ] — «кэш») — промежуточный буфер с быстрым доступом, содержащий информацию, которая может быть запрошена с наибольшей вероятностью. Доступ к данным в кэше идёт быстрее, чем выборка исходных данных из оперативной (ОЗУ) и быстрее внешней (жёсткий диск или твердотельный накопитель) памяти, за счёт чего уменьшается среднее время доступа и увеличивается общая производительность компьютерной системы.

Кэш — это память с большей скоростью доступа, предназначенная для ускорения обращения к данным, содержащимся постоянно в памяти с меньшей скоростью доступа (далее «основная память»). Кэширование применяется ЦПУ, жёсткими дисками, браузерами, веб-серверами, службами DNS и WINS.

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

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

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

В кэше с немедленной записью каждое изменение вызывает синхронное обновление данных в основной памяти.

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

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

Ячейки памяти

Яче́йка па́мяти — минимальный адресуемый элемент запоминающего устройства ЭВМ.

Ячейки памяти могут иметь разную ёмкость (число разрядов, длину). Современные запоминающие устройства обычно имеют размер ячейки памяти равным одной из степеней двойки: 8 бит, 16 бит, 32 бита, 64 бита. В ранних ЭВМ использовались и более экзотические размерности, например 39 (БЭСМ-1) или 48 (БЭСМ-6). В общем случае длина ячеек памяти может не совпадать с машинным словом, тогда данные записываются в две или четыре соседние ячейки памяти.

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

Ячейки памяти, построенные на полупроводниковых технологиях, могут быть статическими (SRAM), то есть не требующими регулярного обновления, и динамическими (DRAM), требующими периодической перезаписи для сохранения данных. Как правило, при помощи статических ячеек организуются кэши, при помощи динамических — ОЗУ.

Оп.Пам. Работу ячейки памяти можно представить таким образом. Конденсатор можно представить в виде ёмкости, в которую наливается вода. Транзистор в виде ключа или крана, который открывает или перекрывает трубу, по которой течёт вода в ёмкость, а устройство регенерации в виде источника воды. В нужный момент кран открывается и это служит признаком того, что необходимо пополнить ёмкость водой. Конечно, рассматривая работу ячейки памяти таким образом, можно представить, что ёмкость с водой немного дырявая. Это утверждение имеет под собой основание, так как конденсатор, в случае хранения «1» и до тех пор, пока она записана, должен постоянно подзаряжаться схемой регенерации.

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

Наши рекомендации