Управление внешними устройствами в среде на базе эмулятора 8086... Вводная_Лекция_АКС_1. Лекция по дисциплине акс. С точки зрения многих заслуженных педагогов
Скачать 123.32 Kb.
|
Счетчик служит для подсчета числа сигналов (импульсов), поступающих на его вход, и фиксации этого числа в виде кода с последующим запоминанием. Дешифратором называется логическая схема, служащая для преобразования поступающего кода числа в управляющий сигнал, формируемый на одном из его выходов. Таким образом, например, производится выбор необходимых ячеек запоминающего устройства. В сумматоре происходит суммирование чисел путем поразрядного их сложения. Этим способом осуществляется также умножение, деление и вычитание. Связь между устройствами ЭВМ осуществляется с помощью, так называемого интерфейса. Интерфейс - совокупность линий, шин, сигналов, электронных схем и алгоритмов. Причем, среди интерфейсных каналов можно выделить как те, что работают между центральными устройствами, так и те, которые осуществляют связь между ними и устройствами периферии. Имеется также и система разделения каналов на быстрые и медленные (часто их именуют параллельными и последовательными каналами). Узловыми элементами, связывающими различные типы интерфейсов в компьютере, являются так называемые контроллеры. Фактически контроллеры имеются у каждого из устройств ЭВМ и предназначены для устранения проблем взаимодействия (информационного, аппаратного и др.) между отдельными устройствами. Исходя из представленных сведений о функциональных возможностях аппаратуры, составляющей типовую ЭВМ, можно сделать вывод о том, что реальные компьютеры могут отличаться от классической типовой схемы по разнообразию и назначению применяемых устройств. В силу этого в практическом применении ЭВМ имеется понятие «конфигурации» для каждого конкретного компьютера. Конфигурация (configuration) вычислительной системы - совокупность функциональных частей вычислительной системы и связей между ними, обусловленная основными техническими характеристиками этих функциональных частей, а также характеристиками решаемых задач обработки данных. Аппаратный состав компьютера Любой IBM PC-совместимый компьютер представляет собой реализацию так называемой фон-неймановской архитектуры вычислительных машин. Фон-неймановская архитектура — не единственный вариант построения ЭВМ, есть и другие, которые не соответствуют указанным принципам (например, потоковые машины). Однако подавляющее большинство современных компьютеров основаны именно на указанных принципах, включая и сложные многопроцессорные комплексы, которые можно рассматривать как объединение фон-неймановских машин. Конечно же, за более чем полувековую историю ЭВМ классическая архитектура прошла длинный путь развития. Тем не менее ПК можно «разложить по полочкам» следующим образом. Центральный процессор (АЛУ с блоком управления) реализуется микропроцессором семейства х86 — от 8086/88 до новейших процессоров Pentium, Athlon, Opteron и т.д. Набор арифметических, логических и прочих инструкций насчитывает несколько сотен, а для потоковой обработки придуман принцип SIMD (Single Instruction Multiple Data — множество комплектов данных, обрабатываемых одной инструкцией), по которому работают расширения ММХ, 3DNow, SSE. Процессор имеет набор регистров, часть которых доступна для хранения операндов, выполнения действий над ними и формирования адреса инструкций и операндов в памяти. Другая часть регистров используется процессором для служебных (системных) целей, доступ к ним может быть ограничен (есть даже программно-невидимые регистры). Все компоненты компьютера представляются для процессора в виде наборов ячеек памяти или/и портов ввода-вывода, в которые процессор может записывать и/или из которых может считывать содержимое. Оперативная память (ОЗУ) — самый большой массив ячеек памяти со смежными адресами — реализуется, как правило, на модулях (микросхемах) динамической памяти. Для повышения производительности обмена данными (включая и считывание команд) оперативная память кэшируется сверхоперативной памятью. Два уровня кэширования территориально располагаются в микропроцессоре. Оперативная память вместе с кэшем всех уровней (в настоящее время — до трех) представляет собой единый массив памяти, непосредственно доступный процессору для записи и чтения данных, а также считывания программного кода. Помимо оперативной память включает также постоянную (ПЗУ), из которой можно только считывать команды и данные, и некоторые виды специальной памяти (например, видеопамять графического адаптера). Вся эта память (вместе с оперативной) располагается в едином пространстве с линейной адресацией. В любом компьютере обязательно есть энергонезависимая память, в которой хранится программа начального запуска компьютера и минимально необходимый набор сервисов (ROM BIOS). Процессор (один или несколько), память и необходимые элементы, связывающие их между собой и с другими устройствами, называют центральной частью, или ядром, компьютера (или просто центром). То, что в фон-неймановском компьютере называлось устройствами ввода-вывода (УВВ), удобнее называть периферийными устройствами. Периферийные устройства (ПУ) — это все программно-доступные компоненты компьютера, не попавшие в его центральную часть. Их можно разделить по назначению на несколько классов: Устройства хранения данных (устройства внешней памяти) — дисковые (магнитные, оптические, магнитооптические), твердотельные (карты, модули и USB-устройства на флэш-памяти). Эти устройства используются для сохранения информации, находящейся в памяти, на энергонезависимых носителях и загрузки этой информации в оперативную память. Устройства ввода-вывода служат для преобразования информации из внутреннего представления компьютера (биты и байты) в форму, понятную окружающим, и обратно. Коммуникационные устройства служат для передачи информации между компьютерами и/или их частями. Сюда относят модемы (проводные, радио, оптические, инфракрасные...), адаптеры локальных и глобальных сетей. В данном случае преобразование формы представления информации требуется только для передачи ее на расстояние. Процессор, память и периферийные устройства взаимодействуют между собой с помощью шин и интерфейсов, аппаратных и программных; стандартизация интерфейсов делает архитектуру компьютеров открытой. Биты, байты, слова Компьютер работает в двоичной системе счисления — минимальным информационным элементом является бит, который может принимать значение 0 или 1. Этим значениям соответствуют различимые физические состояния ячейки, чаще всего — уровень напряжения (низкий или высокий). Биты организуются в более крупные образования — ячейки памяти и регистры. Каждая ячейка памяти (и каждый регистр) имеет свой адрес, однозначно ее идентифицирующий в определенной системе координат. Минимальной адресуемой (пересылаемой между компонентами компьютера) единицей информации является байт, состоящий из 8 бит. Два байта со смежными адресами образуют слово (word) разрядностью 16 бит, два смежных слова — двойное слово (double word) разрядностью 32 бита, два смежных двойных слова — учетверенное слово (quad word) разрядностью 64 бита. Байт (8 бит) делится на пару тетрад (nibble): старшую тетраду — биты [7:4] и младшую тетраду -биты [3:0]. В двухбайтном слове принят LH-порядок следования байтов: адрес слова указывает на младший байт L (Low), а старший байт Н (High) размещается по адресу, большему на единицу. В двойном слове порядок аналогичен — адрес указывает на самый младший байт, после которого размещены следующие по старшинству. В технической документации, электрических схемах и текстах программ могут применяться разные способы представления чисел: Двоичные (binary) числа — каждая цифра отражает значение одного бита (0 или 1), старший бит всегда пишется слева, после числа ставится буква «b». Для удобства восприятия тетрады могут быть разделены пробелами, например, 1010 0101b. Шестнадцатеричные (hexadecimal) числа — каждая тетрада представляется одним символом 0...9, А, В, C, D, E, F. Обозначаться такое представление может по-разному, в данной книге используется только символ «h» после последней шестнадцатеричной цифры, например, A5h. В текстах программ это же число может обозначаться и как 0хА5, и как 0A5h, в зависимости от синтаксиса языка программирования. Незначащий ноль (0) добавляется слева от старшей шестнадцатеричной цифры, изображаемой буквой, чтобы различать числа и символические имена. Десятичные (decimal) числа — каждый байт (слово, двойное слово) представляется обычным числом, а признак десятичного представления (букву «d») обычно опускают. Байт из предыдущих примеров имеет десятичное значение 165. В отличие от двоичной и шестнадцатеричной форм записи, по десятичной трудно в уме определить значение каждого бита, что иногда приходится делать. Восьмеричные (octal) числа — каждая тройка битов (разделение начинается с младшего) записывается в виде цифры из интервала 0-7, в конце ставится признак «о». То же самое число записывается как 245о. Восьмеричная система неудобна тем, что байт не разделить поровну, но зато все цифры — привычные. В табл. 1.1 приведены разные представления одной тетрады (4 бит). Чтобы перевести любое 8-битное число в десятичное, нужно десятичный эквивалент старшей тетрады умножить на 16 и сложить с эквивалентом младшей тетрады. Для нашего примера A5h = 10 · 16 + 5= 165. Обратный перевод тоже несложен: десятичное число делится на 16, целая часть даст значение старшей тетрады, остаток — младшей.
Обозначение и порядок битов и байтов шин адреса и данных, принятое в аппаратуре PC, пришло от процессоров Intel 8086/88 (и даже от 8080). Самый младший бит (Least Significant Bit, LSB) имеет номер 0, самый старший (Most Significant Bit, MSB) бит байта — 7, слова — 15, двойного слова — 31. На рисунках принято старший бит изображать слева, а младший — справа. Ячейки памяти, порты и регистры Поясним разницу между ячейками памяти, портами и регистрами. Ячейки памяти служат лишь для хранения информации — сначала ее записывают в ячейку, а потом могут прочитать, а также записать иную информацию. Порты ввода-вывода, как правило, служат для преобразования двоичной информации в какие-либо физические сигналы и обратно. Например, порт данных параллельного интерфейса формирует электрические сигналы на разъеме, к которому обычно подключают принтер. Электрические сигналы, поступающие от принтера, порт состояния того же интерфейса отображает в виде набора битов, который может быть считан процессором. Регистр — довольно широкое понятие, которое зачастую используется как синоним порта. Регистры могут служить для управления устройствами (и их контроллерами) и для чтения их состояния. Регистры (как и порты) могут образовывать каналы: Каналы ввода-вывода данных. Пример — регистр данных СОМ-порта: байты, записываемые друг за другом в этот регистр, в том же порядке будут передаваться по последовательному интерфейсу, то есть поступать в канал вывода. Если этот интерфейс подключить к СОМ-порту другого компьютера и выполнять программные чтения его регистра данных, мы получим байт за байтом переданные данные. Таким образом, здесь регистр играет роль канала ввода. Каналы управления. Если запись в регистр определенных данных (битовых комбинаций) изменяет состояние некоего устройства (сигнал светофора, положение какого-то механизма...), то регистр образует канал управления. Каналы состояния. Пример — регистр игрового порта (game-порт), к которому подключен джойстик. Чтение регистра дает информацию о состоянии кнопок джойстика (нажаты или нет). Канал отличается от ячейки памяти рядом свойств. Если в ячейку памяти записывать раз за разом информацию, то последующее считывание возвращает результат последней записи, а все предшествующие записи оказываются бесполезными. Если ячейку памяти считывать раз за разом, не выполняя запись в нее, то результат считывания каждый раз будет одним и тем же. «Лишнее» чтение ячейки памяти не приведет ни к каким побочным эффектам. Каждый байт (ячейка памяти, порт, регистр) имеет собственный уникальный физический адрес. Этот адрес устанавливается на системной шине процессором, когда он инициирует обращение к данным ячейке или порту. По этому же адресу к этой ячейке (порту, регистру) могут обращаться и другие активные компоненты системы — так называемые мастера шины. В семействе х86 и PC-совместимых компьютерах пространства адресов ячеек памяти и портов ввода-вывода разделены.. Нынешние 32-битные процессоры имеют разрядность физического адреса памяти 32 и даже 36 бит, что позволяет адресовать до 4 и 64 Гбайт соответственно. Пространство ввода-вывода использует только младшие 16 бит адреса, что позволяет адресовать до 65 384 однобайтных регистров. Регистры различных устройств могут быть приписаны как к пространству портов ввода-вывода, так и к пространству памяти. Под портом устройства, как правило, подразумевают регистр, связанный с этим устройством и приписанный к пространству портов ввода-вывода. Точность приведенной терминологии, конечно же, относительна. Так, к примеру, ячейки видеопамяти (тоже память!) служат в основном не для хранения информации, а для управления свечением элементов экрана. Понятие Memory Mapped I/O означает регистры периферийных устройств, отображенные на пространство памяти (то есть занимающие адреса именно в этом пространстве, а не в пространстве ввода-вывода). Разделение пространств памяти и ввода-вывода было вынужденной мерой в условиях дефицита адресуемого пространства 16-битных процессоров и сохранилось во всех процессорах х86. В процессорах ряда других семейств такого разделения нет, и для нужд ввода-вывода используется выделенная область единого адресного пространства. Тенденция изживания пространства ввода-вывода наблюдается в современных спецификациях устройств и интерфейсов для PC. |