Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Ячейки памяти, порты и регистры



Поясним разницу между ячейками памяти, портами и регистрами. Ячейки па­мяти служат лишь для хранения информации — сначала ее записывают в ячей­ку, а потом могут прочитать, а также записать иную информацию. Порты вво­да-вывода, как правило, служат для преобразования двоичной информации в какие-либо физические сигналы и обратно. Например, порт данных параллель­ного интерфейса формирует электрические сигналы на разъеме, к которому обычно подключают принтер. Электрические сигналы, поступающие от принте­ра, порт состояния того же интерфейса отображает в виде набора битов, кото­рый может быть считан процессором. Регистр — довольно широкое понятие, которое зачастую используется как синоним порта. Регистры могут служить для управления устройствами (и их контроллерами) и для чтения их состоя­ния. Регистры (как и порты) могут образовывать каналы:

Каналы ввода-вывода данных. Пример — регистр данных СОМ-порта: байты,
записываемые друг за другом в этот регистр, в том же порядке будут переда­
ваться по последовательному интерфейсу, то есть поступать в канал вывода.
Если этот интерфейс подключить к СОМ-порту другого компьютера и вы­
полнять программные чтения его регистра данных, мы получим байт за бай­
том переданные данные. Таким образом, здесь регистр играет роль канала
ввода.

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

Каналы состояния. Пример — регистр игрового порта (game-порт), к которо­
му подключен джойстик. Чтение регистра дает информацию о состоянии
кнопок джойстика (нажаты или нет).

Канал отличается от ячейки памяти рядом свойств. Если в ячейку памяти запи­сывать раз за разом информацию, то последующее считывание возвращает ре­зультат последней записи, а все предшествующие записи оказываются беспо­лезными. Если ячейку памяти считывать раз за разом, не выполняя запись в нее, то результат считывания каждый раз будет одним и тем же (при ис­правной памяти). «Лишнее» чтение ячейки памяти не приведет ни к каким по­бочным эффектам. На этих свойствах «настоящей» памяти основаны методы ускорения работы с ней: кэширование и спекулятивное чтение. С регистрами, образующими каналы, такие вольности недопустимы. Здесь все обращения при­водят к каким-либо изменениям. Кэширование и спекулятивное чтение недо­пустимы. Например, лишнее (спекулятивное) чтение регистра данных СОМ-порта «выдернет» байт из принимаемого потока. Операция чтения регистра состояния может быть неявным подтверждением сброса какого-либо признака (например, запроса прерывания), и она изменяет состояние устройства. Запи­си в канал данных (и управления) также нельзя опускать (для «ускорения»). Каждый байт (ячейка памяти, порт, регистр) имеет собственный уникальный физический адрес. Этот адрес устанавливается на системной шине процессором, когда он инициирует обращение к данным ячейке или порту. По этому же адре­су к этой ячейке (порту, регистру) могут обращаться и другие активные компо­ненты системы — так называемые мастера шины.

В семействе х86 и PC-совместимых компьютерах пространства адресов ячеек памяти и портов ввода-вывода разделены. Это предусмотрено с обеих сторон: процессоры позволяют, а компьютеры используют данное разделение. Нынеш­ние 32-битные процессоры имеют разрядность физического адреса памяти 32 и даже 36 бит, что позволяет адресовать до 4 и 64 Гбайт соответственно. Про­странство ввода-вывода использует только младшие 16 бит адреса, что позволя­ет адресовать до 65 384 однобайтных регистров. Адреса «исторических» систем­ных устройств PC не изменились с самого рождения — это дань совместимости, которая без разделения пространств вряд ли бы обеспечивалась столько лет. Пространства памяти и портов ввода-вывода неравнозначны не только по объе­му, но и по способам обращения. Способов адресации к ячейке памяти в х86 ве­ликое множество, в то время как для адресации ввода-вывода их существует только два. К памяти возможна (и широко используется) виртуальная адреса­ция (см. 7.3), при которой для программиста, программы и даже пользователя создается иллюзия оперативной памяти гигантского размера. К портам вво­да-вывода обращаются только по реальным адресам; правда, и здесь возможна виртуализация, но уже чисто программными средствами операционной систе­мы. И, наконец, самое существенное различие пространств памяти и портов ввода-вывода: процессор может считывать инструкции для исполнения только из пространства памяти. Конечно, через порт ввода можно считать фрагмент программного кода (что и происходит, например, при считывании данных с диска), но для того чтобы этот код исполнить, его необходимо записать в па­мять.

Регистры различных устройств могут быть приписаны как к пространству пор­тов ввода-вывода, так и к пространству памяти. Под портом устройства, как правило, подразумевают регистр, связанный с этим устройством и приписан­ный к пространству портов ввода-вывода. Точность приведенной терминоло­гии, конечно же, относительна. Так, к примеру, ячейки видеопамяти (тоже па­мять!) служат в основном не для хранения информации, а для управления свечением элементов экрана. Понятие Memory Mapped I/O означает регистры периферийных устройств, отображенные на пространство памяти (то есть зани­мающие адреса именно в этом пространстве, а не в пространстве ввода-вывода).

Разделение пространств памяти и ввода-вывода было вынужденной мерой в ус­ловиях дефицита адресуемого пространства 16-битных процессоров и сохрани­лось во всех процессорах х86. В процессорах ряда других семейств такого разделения нет, и для нужд ввода-вывода используется выделенная область единого адресного пространства. Тенденция изживания пространства ввода-вы­вода наблюдается в современных спецификациях устройств и интерфейсов для PC.




©2015 studopedya.ru Все права принадлежат авторам размещенных материалов.