Что означает объем адресного пространства микропроцессора
Адресное пространство микропроцессорного устройства
При подключении различных устройств к системной шине возникает вопрос — как различать эти устройства между собой? C этой целью используют индивидуальный адрес для каждого устройства, подключенного к системной шине микропроцессора. Достаточно часто устройства занимают целый диапазон адресов. Так как обращение производится к каждой ячейке памяти устройства индивидуально, то возникает понятие адресного пространства, занимаемого каждым устройством и адресного пространства микропроцессорного устройства в целом.
Адресное пространствомикропроцессорного устройства изображается графически прямоугольником, одна из сторон которого соответствует разрядам адресуемой ячейки этого микропроцессора, а другая сторона — всему диапазону доступных адресов для этого же микропроцессора. Обычно в качестве минимально адресуемого элемента адресного пространства, доступного для микропроцессора, выбирается 8‑разрядная ячейка (байт).
Диапазон доступных адресов микропроцессораопределяется разрядностью шины адреса, которая обычно совпадает с разрядностью счетчика команд и разрядностью указателя данных. При этом минимальный номер ячейки памяти (адрес) будет равен нулю, а максимальный — определяется из формулы:
где N — это количество разрядов шины адреса микропроцессора.
Для 16-разрядной шины адреса — это будет число 65535 (64K). Адресное пространство микропроцессора с 16-разрядной шиной адреса приведено на рис. 19.4. Это наиболее распространенный размер адресного пространства современных микроконтроллеров. Рис. 19.4 соответствует адресному пространству памяти микропроцессора, входящего в состав системы, структурная схема которой приведена на рис. 19.3.
десятичный номер ячейки | двоичный номер ячейки |
64K | |
… | |
1К | |
… | |
номер бита в ячейке |
Рис. 19.4. Адресное пространство микропроцессора с 16-разрядной шиной адреса
На этом рисунке слева приведены адреса ячеек памяти в десятичном виде, справа — их двоичный эквивалент. Знание двоичного эквивалента адреса позволяет в ряде случаев упростить принципиальную схему микропроцессорного устройства. Для этой же цели в микропроцессорных системах часто пользуются числами, кратными степени числа 2. Например, широко используется число, ближайшее к числу 1000 — килобайт, равный 1024 байтам, которое является десятой степенью числа 2. Это число обозначается как 1К. Для микропроцессорных систем, более сложных по сравнению с системой, использованной нами в качестве примера микропроцессорной системы, применяются числа, близкие к миллиону — мегабайт, равный 1024 килобайтам, и к миллиарду — гигабайт, равный 1024 мегабайтам. Мегабайт обозначается как 1М, а гигабайт обозначается как 1Г.
Различные адреса для ячеек памяти нам потребовались для того, чтобы отличать различные устройства, подключенные к микропроцессору, поэтому при построении микропроцессорной системы кроме адресного пространства нам требуется знать конкретные адреса (или группы адресов) устройств подключенных к микропроцессору через системную шину микропроцессорной системы.
Распределением памяти микропроцессорной системыназывают разбиение адресного пространства микропроцессора на несколько областей, каждая из которых выделена для размещения ячеек какого-либо определенного элемента этой системы: ОЗУ, ПЗУ или внешних устройств. Часто его изображают в форме рисунка. Адресное пространство, соответствующее структурной схеме микропроцессорной системы, приведенной на рис. 19.3, изображено на рис. 19.5.
64K | Порт ввода-вывода |
Неиспользуемое | |
адресное пространство | Xxxxxxxxxxxxxxxx |
16K | |
ОЗУ | 001xxxxxxxxxxxxx |
8K | |
Неиспользуемое | |
адресное пространство | 000xxxxxxxxxxxxx |
2K | |
ПЗУ | 00000xxxxxxxxxxx |
Рис. 19.5. Распределение памяти микропроцессора с 16-разрядной шиной адреса
Обычно адресное пространствораспределяют одновременно с проектированием структурной схемы устройства и созданием дешифраторов адреса для каждого подключаемого к системной шине устройства. Это позволяет упростить его принципиальную схему. Начнем распределение адресного пространства микропроцессорной системы с выделения диапазона адресов для микросхемы ПЗУ.
Микропроцессоры после включения питания и выполнения процедуры сброса всегда начинают выполнение программы с определенного адреса, чаще всего нулевого. Однако есть и исключения. Например, процессоры, на основе которых строятся универсальные компьютеры IBM PC или Macintosh стартуют не с нулевого адреса. Исполняемая программа или ее загрузчик должны храниться в памяти микропроцессорной системы, которая не стирается при выключении питания, то есть в ПЗУ. Таким образом, адрес, записываемый в счетчик команд процессора после выполнения его сброса, обязательно должен попадать в диапазон адресов, выделенных для размещения ПЗУ.
Выберем для построения микропроцессорной системы микросхему ПЗУ объемом 2 Кбайт, как это показано на рис. 19.3. При построении операционного блока мы договорились, что микропроцессор после снятия сигнала сброса RESET начинает работу с нулевого адреса, поэтому для ПЗУ в адресном пространстве выделим номера ячеек, начиная с нулевого адреса. Для того чтобы нулевая ячейка ПЗУ оказалась расположенной по нулевому адресу адресного пространства микропроцессора, старшие разряды шины адреса (5 старших разрядов, начиная с разряда номер 11) должны быть равны 0.
Так как в микросхеме ПЗУ уже имеются одиннадцать адресных выводов, то при создании схемы необходимо дополнительно декодировать старшие пять разрядов адреса (определить, чтобы они были равны 0). Это выполняется при помощи внешнего дешифратора адреса, который в данном случае вырождается в 5-входовую схему «ИЛИ». При использовании дешифратора адреса, обращение микропроцессора за пределы нижней области 2 Кбайт не приведет к чтению ячеек ПЗУ, так как в этом случае на входе выбора кристалла CS уровень напряжения останется высоким (неактивным).
Теперь подключим к системной шине микропроцессорной системы оперативное запоминающее устройство. Для примера выберем микросхему объемом 8 Кбайт. Выбор любой из ячеек памяти этой микросхемы возможен при помощи 13‑разрядного адреса, поэтому необходимо дополнительно декодировать сигналы трех старших линий 16-разрядной шины адреса. Так как начальные ячейки памяти адресного пространства уже заняты ПЗУ, то их использовать нельзя. Им соответствует значение старших разрядов адресной шины 000. Выберем для адресации ОЗУ комбинацию сигналов 001 и используем уже известные нам принципы построения схемы по произвольной таблице истинности. Дешифратор адреса выродится в данном случае в 3-входовую схему «И‑НЕ» с двумя инверторами на входе. Схема дешифратора адреса ОЗУ приведена на рис. 19.3. Этот дешифратор адреса обеспечивает нулевой уровень сигнала на входе CS микросхемы ОЗУ только при комбинации старших битов адреса 001.
Обратите внимание: так как объем выбранной нами микросхемы ПЗУ меньше объема микросхемы ОЗУ, то между областями адресов микросхем ПЗУ и ОЗУ образовалось пустое пространство неиспользуемых адресов памяти микропроцессорной системы. Его можно было бы избежать при усложнении схемы дешифратора адреса ОЗУ или применения дополнительного двоичного сумматора, однако стоит ли это делать? Если микропроцессорная система не будет усложняться, то зачем усложнять схему дешифратора адреса, а если будет, то, скорее всего, будет увеличен объем постоянного запоминающего устройства и тогда этот резерв адресов будет просто полезен.
Так как все микропроцессоры предназначены для обработки данных, поступающих извне, то в любой микропроцессорной системе должны присутствовать порты ввода-вывода. Как устроены порты ввода-вывода, и как их применять при создании цифровых устройств, мы рассмотрим в последующих главах. Сейчас же для того, чтобы закончить построение адресного пространства (да и структурной схемы микропроцессорной системы), будем считать, что порт ввода-вывода отображается в адресное пространство микропроцессорного устройства как одиночная ячейка памяти, поэтому можно выбрать практически любой свободный адрес.
Проще всего построить дешифратор самого старшего адреса 65535. Он соответствует шестнадцатеричному представлению 0FFFFh. В этом случае он превращается в обычную 16‑входовую схему «16И-НЕ», поэтому и выберем данный адрес для размещения порта ввода-вывода. Именно такой дешифратор и изображен на структурной схеме, приведенной на рис. 19.3.
Итак, обратите внимание, что выбор распределения ячеек памяти в адресном пространстве микропроцессора существенно влияет на структурную (а значит, и принципиальную) схему микропроцессорной системы. Мы могли бы адреса ячеек ОЗУ расположить непосредственно после адресов ячеек постоянного запоминающего устройства, однако для этого пришлось бы преобразовывать адрес, формируемый микропроцессором в адрес ячейки ОЗУ при помощи сумматора. Это, кроме усложнения схемы устройства, приводит к снижению быстродействия микропроцессорной системы в целом.
То же самое можно сказать и по выбору адресов для размещения внешних устройств. Чем больший номер будет иметь этот адрес, тем большее количество единиц будет присутствовать в двоичном представлении этого числа, и тем проще будет реализовываться дешифратор адреса соответствующего устройства.
Ну а теперь рассмотрим подробнее особенности реализации цифровых устройств с использованием микропроцессоров.
Адресное пространство микропроцессорного устройства
Для шестнадцатиразрядной шины это будет число 65535 (64K). Адресное пространство этой шины и распределение памяти микропроцессорной системы, изображённой на рисунке 1, приведено на рисунке 2, а распределение памяти микропроцессорной системы, изображённой на рисунке 1, приведено на рисунке 3.
Рисунок 2. Адресное пространство шестнадцатиразрядной шины адреса.
Рисунок 3. Распределение памяти микропроцессора с шестнадцатиразрядной шиной адреса.
Микропроцессоры после включения питания и выполнения процедуры сброса всегда начинают выполнение программы с определённого адреса, чаще всего нулевого. Однако есть и исключения. Например процессоры, на основе которых строятся универсальные компьютеры IBM PC или Macintosh стартуют не с нулевого адреса. Программа должна храниться в памяти, которая не стирается при выключении питания, то есть в ПЗУ.
Выберем для построения микропроцессорной системы микросхему ПЗУ объёмом 2 килобайта, как это показано на рисунке 1. При рассмотрении построения блока обработки сигналов мы договорились, что процессор после сброса начинает работу с нулевого адреса, поэтому разместим ПЗУ в адресном пространстве начиная с нулевого адреса. Для того, чтобы нулевая ячейка ПЗУ оказались расположенной по нулевому адресу адресного пространства микропроцессора, старшие разряды шины адреса должны быть равны 0.
При построении схемы необходимо декодировать старшие пять разрядов адреса (определить, чтобы они были равны 0). Это выполняется при помощи дешифратора адреса, который в данном случае вырождается в пятивходовую схему «ИЛИ-НЕ» Это связано с тем, что внутри ПЗУ уже есть одиннадцативходовый дешифратор адреса. При использовании дешифратора адреса, обращение к ячейкам памяти выше двух килобайт не приведёт к чтению ячеек ПЗУ, так как на входе выбора кристалла CS уровень напряжения останется высоким.
Теперь подключим микросхему ОЗУ. Для примера выберем микросхему объёмом 8 Кбайт. Для выбора любой из ячеек этой микросхемы достаточно тринадцатибитового адреса, поэтому необходимо дополнительно декодировать три оставшихся разряда адреса. Так как начальные ячейки памяти адресного пространства уже заняты ПЗУ, то использовать нельзя. Выберем следующую комбинацию цифр 001 и используем известные нам принципы построения схемы по произвольной таблице истинности. Дешифратор адреса выродится в данном случае в трёхвходовую схему «И-НЕ» с двумя инверторами на входе. Схема этого дешифратора приведена на рисунке 1. Приведённый дешифратор адреса обеспечивает нулевой уровень сигнала на входе CS только при комбинации старших бит 000. Обратите внимание, что так как объём ПЗУ меньше объёма ОЗУ, то между областью адресов ПЗУ и областью адресов ОЗУ образовалось пустое пространство неиспользуемых адресов памяти.
И, наконец, так как все микропроцессоры предназначены для обработки данных, поступающих извне, то в любой микропроцессорной системе должны присутствовать порты ввода-вывода. Порт ввода-вывода отображается в адресное пространство микропроцессорного устройства как одиночная ячейка памяти, поэтому порт ввода вывода можно разместить по любому свободному адресу. Проще всего построить дешифратор числа FFFFh. В этом случае дешифратор превращается в обычную 16-ти входовую схему «И-НЕ», поэтому и выберем эту ячейку памяти в адресном пространстве микропроцессора для размещения порта ввода-вывода.
Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет
Адресное пространство процессора
Адресное пространство микропроцессора – общее количество адресов, выделяемых для обозначения внутренних регистров и устройств хранения данных, а также регистров внешних устройств, к которым относятся элементы памяти и ввода/вывода. Этот показатель рассчитывается на основании разрядности адресной шины, физически поддерживаемой микропроцессором. Например, модель КР580ВМ80А является обладателем пропускной способности в шестнадцать разрядов, что соответствует 216 ячейкам памяти.
Чтобы допустить одновременное размещение в памяти нескольких приложений без создания взаимных помех, нужно решить две проблемы, относящиеся к защите и перемещению. Примитивное решение первой из этих проблем мы уже рассматривали на примере IBM 360: участки памяти помечались защитным ключом, и ключ выполняемого процесса сличался с ключом каждого выбранного слова памяти. Но этот подход не решал второй проблемы, хотя она могла быть решена путем перемещения программ в процессе их загрузки, но это было слишком медленным и сложным решением.
Более подходящее решение — придумать для памяти новую абстракцию: адресное пространство. Так же как понятие процесса создает своеобразный абстрактный центральный процессор для запуска программ, понятие адресного пространства создает своеобразную абстрактную память, в которой существуют программы. Адресное пространство — это набор адресов, который может быть использован процессом для обращения к памяти. У каждого процесса имеется свое собственное адресное пространство, независимое от того адресного пространства, которое принадлежит другим процессам (за исключением тех особых обстоятельств, при которых процессам требуется совместное использование их адресных пространств).
Немного сложнее понять, как каждой программе можно выделить свое собственное адресное пространство, поскольку адрес 28 в одной программе означает иное физическое место, чем адрес 28 в другой программе. Далее мы рассмотрим простой способ, который ранее был распространен, но вышел из употребления с появлением возможностей размещения на современных центральных процессорах более сложных (и более совершенных) схем.
Разрядность процессора
Важным свойством микропроцессора является разрядность его шины данных и адреса. Выясним, почему это так.
Важнейшим параметром, определяющим скорость работы любого процессора, является тактовая частота. Она представляет собой импульсы прямоугольной формы, с которой синхронизируются все операции процессора. По другому тактовая частота называется частотой синхроимпульсов. Тактовой же частотой она называется потому, что любая операция в процессоре не может быть выполнена быстрее, чем за один такт (период) синхроимпульсов.
С объединением элементов процессора в один кристалл наиболее узким местом в производительности процессора стала не пересылка данных между элементами процессора, а скорость обмена данными между процессором и остальными устройствами по шине. Поскольку любая операция, в том числе и пересылка данных, не может происходить быстрее, чем за такт, логично предположить. что желательно передавать как можно больше информации за один такт. Так как единицей информации является один бит (двоичный разряд), то, чем больше передается разрядов за один такт (по шине данных), тем быстрее работает процессор.
С разрядностью шины адреса немного сложнее. Дело в том, что вся адресуемая память компьютера пронумерована побайтно. Поэтому для обращения процессора к памяти ему необходимо запросить адрес нужных данных по адресной шине. Разрядность шины адреса определяет максимальный номер байта, который может быть затребован процессором. Так, при 8-ми разрядной шине возможна адресация 256 байт, при 16-ти разрядной – 64 Кбайт, а при 32-х разрядной – 4 Гбайт.
Между шиной адреса и шиной данных есть эмпирическое соотношение: чем больше процессор должен адресовать памяти (т.е. чем больше разрядность шины адреса), тем быстрее они должны поступать в процессор. Следовательно, тем шире шина данных. Однако на разрядность шин накладывается технологическое ограничение: чем шире шина, тем сложнее сделать его компоненты (как со «стороны» процессора, так и периферии.) Поэтому в современных универсальных микропроцессорах ШАШ
Примечание: ШАШ – ширина адресной шины, ШШД – ширина шины данных)
Тактовая частота процессора
Тактовая частота процессора это количество синхронизирующих импульсов в секунду, эта характеристика определяет, сколько операций за единицу времени могут совершить блоки GPU. Чем частота выше, тем больше операций.
Все операции в микропроцессоре синхронизируются со специальными синхроимпульсами, вырабатываемой специальной микросхемой – таймером. Синхроимпульсы нужны для того, чтобы все схемы работали с одинаковой скоростью. Дело в том, что разные элементы схемы (триггеры, сумматоры, логические элементы, дешифраторы) по определению работают с разной скоростью. Это связано с технологическими (разная ширина базы у биполярных транзисторов, каналов у полевых транзисторов, разная протяженность элементов, их электрического сопротивления, подвижности электронов в разных направлениях кристалла), так и субъективными причинами (отклонения от технологии производства, условия эксплуатации, неравномерный нагрев микросхемы в приборе и т.п.) Поэтому в «логику» схемы вводят дополнительный элемент – синхросигнал, и все операции происходят только в момент смены сигнала синхроимпульса с 0 на 1. Конечно, это намного замедляет работу системы, однако появляется гарантия, что операция будет происходить с текущими данными на «текущем» шаге, а не прошлыми или даже позапрошлыми, поступившими с опозданием в преобразователь данных из-за разной скорости работы элементов схемы.
Из статей начала 90-х годов XX века автор узнал, что брак при производстве интегральных микросхем в США достигал 95%! Чтобы цены на микропроцессоры не были астрономическими при таком браке, использовалась и до сих пор используется многоуровневая система контроля. На первом этапе партия тестируется на соответствие заявленным параметрам (с выходом 5%). Если пробная микросхема не выдерживает тесты, партию «понижают в сорте», и пробную микросхему тестируют на соответствие более низким нормам (например, снижают тактовую частоту на 100 МГц.) Если она удовлетворяет этим нормам, на всю партию выдается сертификат с этой нормой. Если же микросхема опять не удовлетворяет этим нормам, происходит дальнейшее снижение требований к партии и т.д.
Таким образом удается снизить брак до 30%. Однако, поскольку бракуется вся партия, в ней могут находиться и микросхемы с более высокими характеристиками, чем это указывается в сертификате. На этом основан так называемый «разгон» процессоров – увеличение его тактовой частоты выше номинала. Часто такой прием срабатывает, и процессор нормально работает.
Как уже указывалось в п. B.2, минимальное время исполнения команды – один такт. Но некоторые операции выполняются медленнее, или включают в себя несколько более простых операций, Такие операции выполняются за несколько тактов. Поэтому самый лучший способ повышения скорости работы компьютера – уменьшение количества тактов для одной сложной операции. Именно по этому пути идут разработчики архитектуры микропроцессоров.
Дискретность памяти
Преобразование информации из одной формы представления в другую называется кодированием.
В компьютере для представления информации используется двоичное кодирование, так как удалось создать надежно работающие технические устройства, которые могут со стопроцентной надежностью сохранять и распознавать не более двух различных состояний (цифр). Все виды информации в компьютере кодируются на машинном языке, в виде логических последовательностей нулей и единиц. Количество информации в битах равно количеству цифр двоичного машинного кода.
Кодирование чисел и текста
Для записи информации о количестве объектов используются числа. Числа записываются с использованием особых знаковых систем, которые называются системами счисления. Алфавит систем счисления состоит из символов, которые называются цифрами. Например, в десятичной системе счисления числа записываются с помощью десяти всем хорошо известных цифр: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
Информационный объем текста складывается из информационных весов составляющих его символов.
где i- количество информации, которое несет в себе каждый символ алфавита, k-количество знаков в сообщении, I- количество информации в сообщении при алфавитном подходе.
Кеш память
Кэш или кеш (англ. cache, от фр. cacher — «прятать»; произносится [kæʃ] — «кэш») — промежуточный буфер с быстрым доступом, содержащий информацию, которая может быть запрошена с наибольшей вероятностью. Доступ к данным в кэше идёт быстрее, чем выборка исходных данных из оперативной (ОЗУ) и быстрее внешней (жёсткий диск или твердотельный накопитель) памяти, за счёт чего уменьшается среднее время доступа и увеличивается общая производительность компьютерной системы.
Кэш — это память с большей скоростью доступа, предназначенная для ускорения обращения к данным, содержащимся постоянно в памяти с меньшей скоростью доступа (далее «основная память»). Кэширование применяется ЦПУ, жёсткими дисками, браузерами, веб-серверами, службами DNS и WINS.
Кэш состоит из набора записей. Каждая запись ассоциирована с элементом данных или блоком данных (небольшой части данных), которая является копией элемента данных в основной памяти. Каждая запись имеет идентификатор, определяющий соответствие между элементами данных в кэше и их копиями в основной памяти.
Если кэш ограничен в объёме, то при промахе может быть принято решение отбросить некоторую запись для освобождения пространства. Для выбора отбрасываемой записи используются разные алгоритмы вытеснения.
При модификации элементов данных в кэше выполняется их обновление в основной памяти. Задержка во времени между модификацией данных в кэше и обновлением основной памяти управляется так называемой политикой записи.
В кэше с немедленной записью каждое изменение вызывает синхронное обновление данных в основной памяти.
В кэше с отложенной записью (или обратной записью) обновление происходит в случае вытеснения элемента данных, периодически или по запросу клиента. Для отслеживания модифицированных элементов данных записи кэша хранят признак модификации (изменённый или «грязный»). Промах в кэше с отложенной записью может потребовать два обращения к основной памяти: первое для записи заменяемых данных из кэша, второе для чтения необходимого элемента данных.
В случае, если данные в основной памяти могут быть изменены независимо от кэша, то запись кэша может стать неактуальной. Протоколы взаимодействия между кэшами, которые сохраняют согласованность данных, называют протоколами когерентности кэша.
Ячейки памяти
Яче́йка па́мяти — минимальный адресуемый элемент запоминающего устройства ЭВМ.
Ячейки памяти могут иметь разную ёмкость (число разрядов, длину). Современные запоминающие устройства обычно имеют размер ячейки памяти равным одной из степеней двойки: 8 бит, 16 бит, 32 бита, 64 бита. В ранних ЭВМ использовались и более экзотические размерности, например 39 (БЭСМ-1) или 48 (БЭСМ-6). В общем случае длина ячеек памяти может не совпадать с машинным словом, тогда данные записываются в две или четыре соседние ячейки памяти.
Ячейки памяти имеют адрес (порядковый номер, число) по которому к ним могут обращаться команды процессора. Существует несколько различных систем адресации памяти.
Ячейки памяти, построенные на полупроводниковых технологиях, могут быть статическими (SRAM), то есть не требующими регулярного обновления, и динамическими (DRAM), требующими периодической перезаписи для сохранения данных. Как правило, при помощи статических ячеек организуются кэши, при помощи динамических — ОЗУ.
Оп.Пам. Работу ячейки памяти можно представить таким образом. Конденсатор можно представить в виде ёмкости, в которую наливается вода. Транзистор в виде ключа или крана, который открывает или перекрывает трубу, по которой течёт вода в ёмкость, а устройство регенерации в виде источника воды. В нужный момент кран открывается и это служит признаком того, что необходимо пополнить ёмкость водой. Конечно, рассматривая работу ячейки памяти таким образом, можно представить, что ёмкость с водой немного дырявая. Это утверждение имеет под собой основание, так как конденсатор, в случае хранения «1» и до тех пор, пока она записана, должен постоянно подзаряжаться схемой регенерации.
Ячейка памяти хранит в себе один бит информации, для того чтобы динамическая память хранила бы в себе мегабайты, а сейчас уже и гигабайты данных, необходимо чтобы все эти элементарные по объёму ячейки памяти объединялись между собой в большие массивы, накопители или матрицы памяти.