М.Гук - Аппаратные средства IBM PC, энциклопедия, страница 5
Описание файла
DJVU-файл из архива "М.Гук - Аппаратные средства IBM PC, энциклопедия", который расположен в категории "". Всё это находится в предмете "вычислительные сети и системы" из 7 семестр, которые можно найти в файловом архиве МАИ. Не смотря на прямую связь этого архива с МАИ, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "вычислительные системы и микропроцессоры" в общих файлах.
Просмотр DJVU-файла онлайн
Распознанный текст из DJVU-файла, 5 - страница
Биты, байты, слова, параг а ы гз слово (ч~оп1) разрядностью 16 бит, два смежных слова — двойное слово (доцЪ|е ъ огб) разрядностью 32 бита, два смежных двойных слова — учетверенное слово (опав поги) разрядностью 64 бита. Байт (8 бит) делится на пару тирад (шЪЫе): старшую тетраду — биты 17:4) и младшую тетраду — биты [3:0]. В двухбайтном слове принят ЕН-порядок следования байтов: адрес слова указывает на младший байт 1.
(1лю), а старший байт Н (Н18Ь) размещается по адресу, большему на единицу. В двойном слове порядок аналогичен — адрес указывает на самый младший байт, после которого размещены следующие по старшинству. Этот порядок, называемый форматом Е(гг!е Епйап и естественный для процессоров 1псе1, применяется не во всех микропроцессорных семействах. В формате В(8 Епйаи адрес указывает на самый старший байт (двойного, учетверенного...) слова, остальные байты размещаются по нарастающим адресам.
С несовпадением форматов представления приходится сталкиваться, например, при передаче информации между различными подсистемами (формат В18 Епгйап используется в сетевых протоколах и шине Г)ген%ге). В технической документации, электрических схемах и текстах программ могут применяться разные способы представления чисел: + Двоичные (Ъ|пагу) числа — каждая цифра отражает значение одного бита (О или 1), старший бит всегда пишется слева, после числа ставится буква «Ъ». Для удобства восприятия тетрады могут быть разделены пробелами, например, 1010 0101Ь. е Шестнадцатеричные (Ьехадесппа1) числа — каждая тетрада представляется одним символом 0...9, А, В,..., Р. Обозначаться такое представление может по-разному, в данной книге используется только символ «Ь» после последней шестнадцатеричной цифры, например, А5Ь. В текстах программ это же число может обозначаться и как ОхА5, и как ОА5Ь, в зависимости от синтаксиса языка программирования.
Незначащий ноль (0) добавляется слева от старшей шестнадцатеричной цифры, изображаемой буквой, чтобы различать числа и символические имена. + Десятичные (дес(ша1) числа — каждый байт (слово, двойное слово) представляется обычным числом, а признак десятичного представления (букву «Й») обычно опускают. Байт из предыдущих примеров имеет десятичное значение 165. В отличие от двоичной и шестнадцатеричной форм записи, по десятичной трудно в уме определить значение каждого бита, что иногда приходится делать. + Восьмеричные (осга1) числа — каждая тройка битов (разделение начинается с младшего) записывается в виде цифры из интервала 0-7, в конце ставится признак «о».
То же самое число записывается как 245о. Восьмеричная система неудобна тем, что байт не разделить поровну, но зато все цифры — привычные. В «про-интеловских» системах это представление непопулярно (у него «ПЕС'овское» происхождение). В табл. 1.1 приведены разные представления одной тетрэды (4 бит). Чтобы перевести любое 8-битное число в десятичное, нужно десятичный эквивалент старшей тетрады умножить на 16 и сложить с эквивалентом младшей тетрады.
24 Глава 1. Основы компьюте ной техники Для нашего примера А5)с - 10 16 + 5 - 165. Обратный перевод тоже несложен: десятичное число делится на 16, целая часть даст значение старшей тетрады, ос- таток — младшей. Таблица 1.1. Представление двоичных чисел в разных системах счисления Двоичное Шестнадцатеричное(нех) Десятичное Вооьмеричное(осй (шл) (аес) В «наследство» от процессоров 8086/88 достался своеобразный способ задания адреса ячейки памяти в виде указателя «зей:ОЕЕзес», состоящего из двух слов: сегмента (зей — зейшепс) и смещения (оЕЕзес). Такая запись предполагает вычисление полного адреса по формуле а!Ыг- 16 зея+ оозег. Такое представление 20-битного адреса двумя 16-битными числами в процессорах 8086/88 поддерживается и в реальном режиме всех последующих процессоров х86 (подробнее об адресации памяти см.
в 7.3). Здесь сегмент указывает адрес параграфа — 16-байтной области памяти. Выравнивание адреса по границе параграфа означает, что он кратен 16 (4 младших бита нулевые). Нетрудно увидеть, что один и тот же адрес можно задавать разными сочетаниями этих двух компонентов. Так, например, адрес начала области данных В105 (ВЕО5 Раса Агеа) 00400)с представляют и как 0000:0400, и как 0040:0000 (шестнадцатеричное представление подразумевается). Возможны и другие варианты, но их не используют.
В данной книге в основном будем пользоваться первым способом, причем нулевое значение сегмента будем представлять кратко, то есть 0:0400. К счастью, в 32-разрядном (и 64-разрядном) режиме работы процессоров в современных ОС и приложениях сегментация не применяется, а адрес выражается одним (32- или 64-битным) числом. Обозначение и порядок битов и байтов шин адреса и данных, принятое в аппаратуре РС, пришло от процессоров 1пСе1 8086/88 (и даже от 8080). Самый младший бит (1.еазс 818п)Е!санс В!с, ВЯВ) имеет номер О, самый старший (Мозс 0000 0001 0010 0011 0100 010! 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 0 ! 2 3 4 5 6 7 8 9 А В С 0 Е р 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 1 2 3 4 5 6 7 1О 11 12 13 14 15 16 !7 25 1.3.
Ячейки памяти, по ты и регист ы 51яп)йсапг В1ц МВВ) бит байта — 7, слова — 15, двойного слова — 31. На рисун- ках принято старший бит изображать слева, а младший — справа. 1.3. Ячейки памяти, порты и регистры Поясним разницу между ячейками памяти, портами и регистрами. Ячейки памяти служат лишь для хранения информации — сначала ее записывают в ячейку, а потом могут прочитать, а также записать иную информацию.
Порты ввода-вывода, как правило, служат для преобразования двоичной информации в какие-либо физические сигналы и обратно. Например, порт данных параллельного интерфейса формирует электрические сигналы на разъеме, к которому обычно подключают принтер. Электрические сигналы, поступающие от принтера, порт состояния того же интерфейса отображает в виде набора битов, который может быть считан процессором.
Регистр — довольно широкое понятие, которое зачастую используется как синоним порта. Регистры могут служить для управления устройствами (и их контроллерами) и для чтения их состояния. Регистры (как и порты) могут образовывать каналы: + Каналы ввода-вывода данных. Пример — регистр данных СОМ-порта: байты, записываемые друг за другом в этот регистр, в том же порядке будут передаваться по последовательному интерфейсу, то есть поступать в канал вывода. Если этот интерфейс подключить к СОМ-порту другого компьютера и выполнять программные чтения его регистра данных, мы получим байт за байтом переданные данные.
Таким образом, здесь регистр играет роль канала ввода. + Каналы управления. Если запись в регистр определенных данных (битовых комбинаций) изменяет состояние некоего устройства (сигнал светофора, положение какого-то механизма...), то регистр образует канал управления. е Каналы состояния. Пример — регистр игрового порта (паше-порт), к которому подключен джойстик. Чтение регистра дает информацию о состоянии кнопок джойстика (нажаты или нет). Канал отличается от ячейки памяти рядом свойств.
Если в ячейку памяти записывать раз за разом информацию, то последующее считывание возвращает результат последней записи, а все предшествующие записи оказываются бесполезными. Если ячейку памяти считывать раз за разом, не выполняя запись в нее, то результат считывания каждый раз будет одним н тем же (при исправной памяти). «Лишнее» чтение ячейки памяти не приведет ни к каким побочным эффектам. На этих свойствах «настоящей» памяти основаны методы ускорения работы с ней: кэширование и спекулятивное чтение. С регистрами, образующими каналы, такие вольности недопустимы. Здесь все обращения приводят к каким-либо изменениям. Кэширование и спекулятивное чтение недопустимы.
Например, лишнее (спекулятивное) чтение регистра данных СОМ- порта «выдернет» байт из принимаемого потока. Операция чтения регистра состояния может быть неявным подтверждением сброса какого-либо признака (например, запроса прерывания), и она изменяет состояние устройства. Записи в канал данных (и управления) также нельзя опускать (для «ускорения»).
Глава 1. Основы компьютерной техники Каждый байт (ячейка памяти, порт, регистр) имеет собственный уникальный физичесюсй адрес. Этот адрес устанавливается на системной шине процессором, когда он инициирует обращение к данным ячейке или порту. По этому же адресу к этой ячейке (порту, регистру) могут обращаться и другие активные компоненты системы — так называемые мастлера шины. В семействе х86 и РС-совместимых компьютерах пространства адресов ячеек памяти и портов ввода-вывода разделены. Это предусмотрено с обеих сторон: процессоры позволяют, а компьютеры используют данное разделение. Нынешние 32-битные процессоры имеют разрядность физического адреса памяти 32 и даже 36 бит, что позволяет адресовать до 4 и 64 Гбайт соответственно.
Пространство ввода-вывода использует только младшие 16 бит адреса, что позволяет адресовать до 65 384 однобайтных регистров. Адреса «исторических» системных устройств РС не изменились с самого рождения — это дань совместимости, которая без разделения пространств вряд ли бы обеспечивалась столько лет. Пространства памяти и портов ввода-вывода неравнозначны не только по объему, но и по способам обращения. Способов адресации к ячейке памяти в х86 великое множество, в то время как для адресации ввода-вывода их существует только два.