Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Принципы обмена информацией с внешними устройствами

Поиск

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

Принципы обмена данными

 

 

СПОСОБЫ ОБМЕНА ДАННЫМИ

 

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

Прямой доступ к памяти

Прямой доступ к памяти (DMA - Direct Memory Access) является способом обмена данными между внешним устройством и памятью без участия процессора и предназначен в основном для устройств, обменивающихся большими блоками данных с оперативной памятью. Инициатором обмена всегда выступает внешнее устройство. Процессор инициализирует контроллер DMA, и далее обмен выполняется под управлением контроллера. Если выбранный режим обмена не занимает всей пропускной способности шины, во время операций DMA процессор может продолжать работу. Этот тип обмена далее не рассматривается, поскольку он не предполагается к использованию в вариантах заданий на разработку систем.

Программно-управляемый ввод-вывод

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

Процессоры х86 имеют раздельную адресацию памяти и портов ввода-вывода и соответственно ввод-вывод может быть отображен либо в пространство ввода-вывода, либо вы пространство оперативной памяти (memory-mapped I/O). В последнем случае адрес памяти декодируется во внешнем устройстве и для выполнения ввода-вывода могут быть использованы все команды обращения к памяти.

Каждое адресуемый элемент адресного пространства ввода-вывода именуется портом ввода, портом вывода или портом ввода-вывода. Для обращения к портам предназначены четыре основные команды процессора: In (ввод в порт), Out (вывод из порта), Ins (ввод из порта в элемент строки памяти) и Outs (вывод элемента из строки памяти). Последние две строковые команды ввода-вывода используются для быстрой пересылки блоков данных между портом и памятью в случае последовательно расположенных адресов портов в внешнем устройстве. Обмен данными с портами, при котором используются строковые команды ввода-вывода, получил название PIO (Programmed Input/Output) - программированный ввод-вывод.

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

МЕТОДЫ ИНИЦИАЛИЗАЦИИ ОБМЕНА

Собственно программно-управляемый обмен может инициироваться несколькими причинами:

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

- Запросом аппаратного прерывания. Аппаратные прерывания вызываются внешними устройствами и теми компонентами компьютера, которые требуют немедленной обработки своей информации и приходят асинхронно по отношению к исполняемой программе. Прерывание можно рассматривать как некоторое особое событие в системе, которое заставляет процессор приостановить выполнение своей программы для реализации некоторой затребованной деятельности. Программные обработчики аппаратных прерываний инициализируют блочный обмен или выполняют одиночную операцию пересылки по системной шине с внешним устройством. Практически это основной способ инициализации обмена. Прерывания существенно увеличивают эффективность вычислительной системы, поскольку они позволяют внешним устройствам "обращать на себя внимание" процессора только по мере надобности.

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

Процессор

Центра́льный проце́ссор — электронный блок либо микросхема — исполнитель машинных инструкций (кода программ), главная часть аппаратного обеспечения компьютера или программируемого логического контроллера. Иногда называют микропроцессором или просто процессором. Главными характеристиками ЦПУ являются: тактовая частота, производительность, энергопотребление и архитектура.

CISC-процессоры

Complex instruction set computer — вычисления со сложным набором команд. Процессорная архитектура, основанная на усложнённом наборе команд. Типичными представителями CISC являются микропроцессоры семейства x86

RISC-процессоры

Reduced instruction set computer — вычисления с упрощённым набором команд (в литературе слово reduced нередко ошибочно переводят как «сокращённый»). Архитектура процессоров, построенная на основе упрощённого набора команд, характеризуется наличием команд фиксированной длины, большого количества регистров, операций типа регистр-регистр, а также отсутствием косвенной адресации.

MISC-процессоры

Minimum instruction set computer — вычисления с минимальным набором команд. Дальнейшее развитие идей команды Чака Мура, который полагает, что принцип простоты, изначальный для RISC-процессоров, слишком быстро отошёл на задний план. В пылу борьбы за максимальное быстродействие, RISC догнал и перегнал многие CISC процессоры по сложности. Архитектура MISC строится на стековой вычислительной модели с ограниченным числом команд (примерно 20-30 команд).

VLIW-процессоры

Very long instruction word — сверхдлинное командное слово. Архитектура процессоров с явно выраженным параллелизмом вычислений, заложенным в систему команд процессора. Являются основой для архитектуры EPIC. Ключевым отличием от суперскалярных CISC-процессоров является то, что для них загрузкой исполнительных устройств занимается часть процессора (планировщик), на что отводится достаточно малое время, в то время как загрузкой вычислительных устройств для VLIW-процессора занимается компилятор, на что отводится существенно больше времени (качество загрузки и, соответственно, производительность теоретически должны быть выше). Примером VLIW-процессора является Intel Itanium.

(многоядерные бывают)

Сегменты процессора

Сегментом называется область, которая начинается на границе

параграфа, т.е. по любому адресу, который делится на 16 без остатка. Хотя

сегмент может располагаться в любом месте памяти и иметь размер до 64

Кбайт, он требует столько памяти, cколько необходимо для выполнения

программы. Имеется три главных сегмента:

 

1. С е г м е н т к о д о в. Сегмент кодов содержит машинные

команды, которые будут выполняться. Обычно первая выполняемая команда

находится в начале этого сегмента и операционная система передает

управление по адресу данного сегмента для выполнения программы.

Регистр сегмента кодов (CS) адресует данный сегмент.

2. С е г м е н т д а н н ы х. Сегмент данных содержит

определенные данные, константы и рабочие области, необходимые

программе. Регистр сегмента данных (DS) адресует данный сегмент.

3. С е г м е н т с т е к а. Стек содержит адреса возврата как

для программы для возврата в операционную систему, так и для вызовов

подпрограмм для возврата в главную программу. Регистр сегмента стека

(SS) адресует данный сегмент.

 

Еще один сегментный регистр, регистр дополнительного сегмента (ES),

предназначен для специального использования

Регистры процессора

Процессоры 8086/8088 имеют 14 регистров, используемых для yправления

выполняющейся программой, для адресации памяти и для обеспечения

арифметических вычислений. Каждый регистр имеет длину в одно слово (16

бит) и адресуется по имени. Биты регистра принято нумеровать слева

направо:

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

 

Процессоры 80286 и 80386 имеют ряд дополнительных регистров,

некоторые из них 16-битовые. Эти регистры здесь не рассматриваются.

 

 

Сегментные регистры CS, DS, SS и ES

-------------------------------------

Каждый сегментный регистр обеспечивает адресацию 64К памяти, которая

называется текущим сегментом. Как показано ранее, cегмент выравнен на

границу параграфа и его адрес в сегментном pегистре предполагает наличие

справа четырех нулевых битов.

 

1. Р е г и с т р CS. Регистр сегмента кода содержит начальный

адрес сегмента кода. Этот адрес плюс величина смещения в командном

указателе (IP) определяет адрес команды, которая должна быть выбрана

для выполнения. Для обычных программ нет необходимости делать ссылки

на регистр CS.

2. Р е г и с т р DS. Регистр сегмента данных содержит начальный

адрес сегмента данных. Этот адрес плюс величина смещения,

определенная в команде, указывают на конкретную ячейку в сегменте

данных.

3. Р е г и с т р SS. Регистр сегмента стека содержит начальный

адрес в сегменте стека.

4. Р е г и с т р ES. Некоторые операции над строками используют

дополнительный сегментный регистр для управления адресацией памяти. В

данном контексте регистр ES связан с индексным регистром DI. Если

необходимо использовать регистр ES, ассемблерная программа должна его

инициализировать.

 

 

Регистры общего назначения: AX, BX, CX и DX

---------------------------------------------

При программировании на ассемблере регистры общего назначения

являются "рабочими лошадками". Особенность этих регистров состоит в том,

что возможна адресация их как одного целого слова или как oднобайтовой

части. Левый байт является старшей частью (high), a правый - младшей

частью (low). Например, двухбайтовый регистр CX состоит из двух

однобайтовых: CH и CL, и ссылки на регистр возможны по любому из этих трех

имен. Следующие три ассемблерные команды засылают нули в регистры CX, CH и

CL, соответственно:

 

MOV CX,00

MOV CH,00

MOV CL,00

 

1. Р е г и с т р AX. Регистр AX является основным сумматором и

применяется для всех операций ввода-вывода, некоторых операций над

строками и некоторых арифметических операций. Например, команды

умножения, деления и сдвига предполагают использование регистра AX.

Некоторые команды генерируют более эффективный код, если они имеют

ссылки на регистр AX.

 

AX: | AH | AL |

 

2. Р е г и с т р BX. Регистр BX является базовым регистром. Это

единственный регистр общего назначения, который может использоваться

в качестве "индекса" для расширенной адресации. Другое общее

применение его - вычисления.

 

BX: | BH | BL |

 

3. Р е г и с т р CX. Регистр CX является счетчиком. Он необходим

для управления числом повторений циклов и для операций сдвига влево

или вправо. Регистр CX используется также для вычислений.

 

CX: | CH | CL |

 

4. Р е г и с т р DX. Регистр DX является регистром данных. Он

применяется для некоторых операций ввода/вывода и тех операций

умножения и деления над большими числами, которые используют

регистровую пару DX и AX.

 

DX: | DH | DL |

 

Любые регистры общего назначения могут использоваться для cложения и

вычитания как 8-ми, так и 16-ти битовых значений.

 

 

Регистровые указатели: SP и BP

--------------------------------

Регистровые указатели SP и BP обеспечивают системе доступ к данным в

сегменте стека. Реже они используются для операций сложения и вычитания.

 

1. Р е г и с т р SP. Указатель стека обеспечивает использование

стека в памяти, позволяет временно хранить адреса и иногда данные.

Этот регистр связан с регистром SS для адресации стека.

2. Р е г и с т р BP. Указатель базы облегчает доступ к

параметрам: данным и адресам переданным через стек.

 

 

Индексные регистры: SI и DI

-----------------------------

Оба индексных регистра возможны для расширенной адресации и для

использования в операциях сложения и вычитания.

 

1. Р е г и с т р SI. Этот регистр является индексом источника и

применяется для некоторых операций над строками. В данном контексте

регистр SI связан с регистром DS.

2. Р е г и с т р DI. Этот регистр является индексом назначения и

применяется также для строковых операций. В данном контексте регистр

DI связан с регистром ES.

 

 

Регистр командного указателя: IP

----------------------------------

Регистр IP содержит смещение на команду, которая должна быть

выполнена. Обычно этот регистр в программе не используется, но он может

изменять свое значение при использовании отладчика DOS DEBUG для

тестирования программы.

 

 

Флаговый регистр

------------------

Девять из 16 битов флагового регистра являются активными и определяют

текущее состояние машины и результатов выполнения. Многие арифметические

команды и команды сравнения изменяют состояние флагов.



Поделиться:


Последнее изменение этой страницы: 2016-08-15; просмотров: 1175; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.21.105.222 (0.012 с.)