Основные понятия. Существует множество различных формулировок понятия ЭВМ от достаточно простых и понятных до чрезмерно вычурных, которые, однако, схожи по своей сути. По Э. Таненбауму


Структура и форматы машинных команд



страница2/20
Дата09.08.2018
Размер2.45 Mb.
#43700
ТипРешение
1   2   3   4   5   6   7   8   9   ...   20

Структура и форматы машинных команд.



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

  • поле кода операции (OpC);

  • адрес базового или индексного регистров (Base, Index);

  • смещение(Disp);

  • непосредственный операнд (IMM);

Длина машинной команды без учета возможных префиксных байтов составляет от 1 до 6 байт. Префиксные байты имеют специальный код, отличный от кода операции и оказывают то или иное влияние на выполнение только одной машинной команды, следующей за префиксом. Виды префиксов : Rep (повторения), Seg (замена сегмента), Lock ( блокировка шины).
В базовой модели Intel 8086 используется более 10 разнообразных форматов команд. Пример формата команды максимальной длины (двухоперандная команда с постбайтом адресации и непосредственным операндом)



адреса в ОП

A




A+1




A+2




A+3




A+4




A+5

OpC

S

W




mod

OpCE

r/m




DispL




DispH




IMML




IMMH

7 2

1

0




7 6

3

2 0




7 0




7 0




7 0




7 0

























смещение




непосредственный операнд


Специальные биты OpC - W(Word) и S(Sign Extended). Расширение Word определяет длину операндов (W=0 -> байт, W=1 -> слово). А S=1 - необходимость знакового расширения непосредственного операнда.

Знаковое расширение операнда имеет место только для комбинации S,W = 1,1, при этом в машинной команде задаётся только один младший байт (IMML) непосредственного операнда, т. к. операнд команды, задаваемый постбайтом адресации, является двухбайтным, то для приведения непосредственного операнда к тому же формату (слово) производится предварительное его расширение на старший байт. При этом операнды рассматриваются как целые знаковые числа, естественно, представленные в дополнительном коде. В связи с чем, старший байт IMMH заполняется нулями для положительного операнда или единицами для отрицательного. Фактически, все биты старшего байта становятся равными знаковому биту младшего байта, что и называется знаковым расширением операнда. При W=0, бит S становится неактуальным.

Постбайт адресации используется в команде для задания режимов адресации, в принципе, для обоих операндов. В приведенном примере формата, постбайт адресует только один операнд, поскольку второй из операндов задан непосредственно в команде.

Структура постбайта адресации для двухадресной команды имеет вид:


mod

reg

r/m

7 6

5 3

2 0


Т. к. поле reg в рассматриваемом формате не используется, то на его месте задается расширение кода операции. Назначение полей постбайта см. Эл. Консп.

Для операнда, находящегося в памяти, поле r/m (register/memory) задаёт компоненты эффективного адреса Base и/или Index неявным образом (см. таблицу кодирования). В базовой модели для базовой компоненты EA могут использоваться только регистры BX и BP. А для индексной компоненты только регистры SI и DI.

С помощью постбайта адресации могут быть реализованы следующие режимы адресации:

  • прямая регистровая;

  • прямая адресация памяти EA = Disp;

  • базовая EA = Bese + Disp;

  • индексная EA = Index + Disp;

  • базово – индексная без смещения EA = Base + Index;

  • базово – индексная со смещением EA = Base + Index + Disp;

  • косвенная регистровая EA = [РОН], где РОН = BX, SI, DI.


Прямая адресация памяти реализована, как исключительный случай при следующих значениях полей постбайта адресации: mod = 00, r/m = 110. В этом случае формат команды принимает вид


адреса в ОП

A




A+1




A+2




A+3

OpC

D

W




00

reg

110




DispL




DispH

7 2

1

0




7 6

3

2 0




7 0




7 0

























Effective Address



В старших моделях процессоров, точнее, начиная с модели i386, используется

32 – битная адресация и 32 – битные операнды. Для сохранения совместимости с 16 – битными моделями в старших моделях имеется возможность использования, как 16 – битной адресации, так и 16 – битных операндов.

Глобально, размер адресации и операндов задаётся специальным битом DDefault Size (размер по умолчанию), этот бит находится в Description Segment (описатель сегмента). Локальную установку разрядности адреса и/или операнда по сравнению с принятой по умолчанию (по значению бита D) можно осуществить с использованием соответствующих префиксов ASAddress Size, OSOperand Size.

Для 32 – битных моделей максимальный размер машинной команды составляет 12 байт (без учета возможных префиксов)

2байта – код операции

1байт – постбайт адресации

1байт – дополнительный байт адресации (SIBScale Index Base)

4 байта – операнд

Байт SIB используется для задания базово – индексной адресации с масштабированием

Scale

Index

Base

7 6

5 3

2 0

В отличие от 16 – битного адреса, где базовый и/или индексные регистры задаются неявно, в 32 – битной адресации поля Base и Index задают прямые адреса РОНов, в которых размещаются базовая и индексная компонента EA.

Еще одним существенным отличием является возможность использования практически любых РОНов в качестве базы и/или индексов.
Базовая система команд.
Система команд компьютера включает в себя перечень машинных команд, реализуемых непосредственно аппаратными средствами. Именно система команд определяет возможности компьютера в плане решения разнообразных задач обработки данных.

Основной характеристикой системы команд является её мощность. Обычно под этим термином понимается количество разнообразных мнемокодов, используемых для символического обозначения на ассемблере.

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

Например, с использованием первого подхода, мощность системы команд базовой модели Intel 8086 составляет 113 мнемокодов. С учетом же возможности использования разнообразных режимов адресации и форматов машинных команд при втором подходе, мощность системы команд составляет не менее 4000 машинных команд.

При переходе от младших моделей к старшим система команд процессора неуклонно расширяется. Основными причинами расширения для семейств Intel 90X86 Pentium являются:

1. Поддержка защищённого режима (i286).

2. Внедрение блока FPU (Float Pointer Unit) в один кристалл CPU. Система команд блока FPU, кроме арифметических команд обработки данных с плавающей точкой, включают в себя большой набор трансцендентных команд для вычислений значений большинства элементарных функций (, ln, exp,sin,cos,tg,arctg,arcos,arcsin).

3. Включение в Pentium блока MMX (Multimedia Extension), система команд, которая содержит порядка 60 команд для поддержки принципа векторной обработки на уровне целочисленных данных.
Отличие векторной обработки и, соответственно, векторных команд от скалярной обработки и, соответственно, скалярных команд, состоит в том, что операндами векторных команд являются вектора, последовательно расположенные в памяти.

Суммарная длина векторных данных составляет 64 бита, т. е. количество элементов вектора весьма ограничено. Блок MMX принято считать первым использованием принципов векторной обработки в микропроцессорах. Сами идеи векторной обработки появились еще в 60 – е годы и были реализованы уже в 70 – е годы в первых суперкомпьютерах ILLIACIV, CRAY – 1. В отличие от микропроцессорной реализации длина вектора в этих компьютерах составляла 64 элемента. MMX – векторная обработка, но для целочисленных данных.

  1. Внедрение в кристалл процессора блока SSE (SSE2)

SSE – Streaming SIMD Extension - потоковое SIMD расширение

SIMDSingle Instruction Multiple Data

Внедрение порядка 80 команд, поддерживающих векторную обработку в отношении данных с плавающей запятой.

С учетом разнообразных расширений, мощность степени команд последних моделей Pentium составляет более 400 мнемокодов.

По функциональному назначению команды базовой модели принято разделять на следующие группы:

  • арифметические команды(ADD,SUB,IMUL,MUL,DEC,INC,NEG,CMP..);

  • логические команды (побитовой обработки)(AND,OR,XOR,NOT,TEST);

  • команды сдвигов(SAR,SAL,SHL,SHR,ROL,ROR,RCL,RCR);

  • команды управления программами(JMP,J/cond,LOOP,CALL,RET).


CISC- и RISC – архитектура.
Непосредственно с мощностью использования системы команд связаны два основных направления в архитектуре компьютера:

CISCComplex Instruction Set Computer – компьютер с расширенной системой команд

RISCReduced Instruction Set Computer - компьютер с сокращенной системой команд.

Вся история развития компьютеров с CISC - архитектурой сопровождалась постоянным развитием и расширением их системы команд. Статистические исследования, широко проводимые в 70 –е годы в отношении частоты использования различных команд, позволили сформулировать достаточно актуальный в своё время принцип “80X20”.Суть которого в том, что на 20% машинных команд из общей системы команд процессор затрачивает порядка 80% своего бюджета, т. е. очень многие машинные команды оказываются практически невостребованными при разработке программных продуктов.

Сложность используемой системы команд в первую очередь сказывается на сложности устройства управления. При реализации CISC – процессора на одном кристалле в виде СБИС, на долю устройства управления приходится от 30% до 60% площади кристалла.

В соответствии с реализацией принципов микропрограммного управления, используемого во всех CISC - процессорах, в состав устройства управления включена достаточно большая микропрограммная память для хранения микрокодов по реализации различных машинных команд. Например, в ЭВМ VAX – 11 ёмкость микропрограммной памяти составляет 50 Кбайт.
Основные особенности RISC – архитектуры.

Термин RISC был впервые введён в 1980 г. Дэвидом Паттерсоном, профессором Калифорнийского Университета.


  1. Использование сравнительно небольшого множества машинных команд, наиболее часто используемых при решении задач обработки данных. Первые модели RISC – процессоров (середина и конец 80- ых г.г.) имели мощность системы команд менее 100, в современных моделях RISC – процессоров - примерно 150. Система команд современного RISC – процессоров включает в себя целочисленную арифметику, арифметику с плавающей точкой, мультимедийные расширения(векторные команды).

  2. Стремление к выполнению большинства машинных команд за 1 машинный такт (машинный цикл).

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

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

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


  1. (как следствие из 2)) В RISC – процессорах для реализации устройства управления используется принцип жесткой логики как альтернатива принципа микропрограммной логики. Это означает, что устройство управления реализуется как схемный автомат с использованием автоматной модели Мили Мура. В виду упрощения устройства управления площадь, занимаемая им на кристалле для RISC – процессоров составляет 5 – 10 %, а для CISC – процессоров – 30 -50%

Освобождённая площадь кристалла используется для:

    • Увеличения внутренней регистровой памяти. В современных моделях RISC – процессорах число внутренних регистров может быть несколько сотен (до 500).

    • Увеличение объёма внутренней Кэш – памяти. Типичный размер внутрикристальный Кэш первого уровня 64 – 128 Кбайт.

Замечание: в некоторых моделях используется внутрикристальная Кэш – память и второго уровня.

  • Внедрение в кристалл дополнительных блоков для реализации векторной обработки (мультимедийные расширители).

  1. Использование большого числа внутренних регистров создаёт дополнительную сложность при выходе на обработку прерывания, связанные с необходимостью сохранения контекста прерываемой программы. Для уменьшения времени издержек на переключение программ в RISC – процессорах зачастую используется механизм регистровых окон. Идея состоит в том, что каждой программе выделяется некоторое подмножество регистров, образующих окно.

  2. Ограниченное число форматов машинных команд и используемых режимов адресации. Используется 3 – 5 форматов машинных команд фиксированной длины и 2 - 3 основных режима адресации (косвенная адресация в RISC – процессорах не используется). Всё это делается для максимального упрощения процесса декодирования команды и формирования адресов операндов, что в свою очередь приводит на минимизацию затрат на блок управления.

  3. Все команды обработки данных реализуются только над регистровыми операндами (команды типа reg/reg). Для обмена с памятью используются специальные команды типа LOAD (memory -> reg) и STORE (reg -> memory).

  4. Широкое использование принципов суперскалярной и суперконвейерной обработки.

Основные модели RISC – процессоров:


Модель процессора

Полное название

Фирма изготовитель

Полное название

SPARC

Scaleable Processor ARChitecture

SUN Microsystems

SUN Microsystems

Micro SPARC

32 разрядные

Super SPARC

Hyper SPARC

Ultra SPARC

64 разрядный

ALPHA

ALPHA

DEC/HP

Digital Equipment Corporation/Hewlett Packard

Power PC

Performance Optimized With Enchanсed RISC

IBM/Motorola

International Business Machines/Motorola

PA RISC

Precision Architecture (64разрядный)

HP

Hewlett Packard


Режимы работы процессора. Привилегированные команды.
В целях разграничения доступа к системным ресурсам со стороны прикладных и системных программ, в современных моделях процессоров в том или ином виде существует два основных режима функционирования:
- прикладной

- системный.

В системном режиме допускается исполнение любых машинных команд. В прикладном режиме не допускается исполнение так называемых привилегированных команд. В простейшем случае режим работы процессора задаётся с помощью специального бита, находящегося в каком – либо системном регистре. Например, в процессоре IBM 370 бит режима находится в слове состояния программы PSW (Program Status Word).Два альтернативных состояния процессора называются Task/Supervisor.

Аналогичный бит режима System/User имеет место в моделях системы VAX(DEC), который находится в PS (Processor Status).

В процессорах семейства 80X86 Pentium используется более сложная интерпретация (способ) для задания режима работы процессора в плане разделения системного и пользовательского режимов. С помощью специального бита PE (Protect Enabled) в управляющем регистре СR0 задаётся или реальный режим (PE = 0) или защищённый режим (PE = 1).

При использовании защищённого режима вступают в действие различные средства защиты. Одним из средств защиты, поддерживающимся на аппаратном уровне, является защита по уровням привилегий (кольцам защиты).

Аппаратно поддерживаются 4 уровня привилегий для сегментов и 2 уровня привилегий для страниц. Идея защиты по уровням привилегий состоит в присвоении различным сегментным объектам, в частности сегментам кода, данных, стека, определённого уровня привилегий. Этот уровень отражается соответствующим двухбитным полем DPL(Descriptor Privilege Level), размещаемом в дескрипторе (описателе сегмента).

Уровень привилегий определяет степень важности и доступности сегмента. Наивысшим уровнем привилегий является PL = 0, и он присваивается программам ядра, наинизший уровень PL = 3, он присваивается прикладным программам.


PL = 0
PL = 1
PL = 2
PL =3

Общее правило защиты предполагает возможность обращений или доступа из внутренних колец. Во внешние. Попытки обращений из внешних колец во внутренние в общем случае пресекаются средствами защиты с выходом на прерывание специального типа Тип 13 (“Нарушение общей защиты”).



Пользовательский режим ассоциируется с уровнем привилегии PL = 3, системный режим с уровнем привилегий PL = 0.

Современные операционные системы, в частности Windows и Unix поддерживают только 2 уровня привилегий (User/Supervisor). Соответствующие биты для двух уровней используются на страничном уровне и размещаются в страничных дескрипторах. В процессорах семейства Intel к привилегированным командам относятся:


  1. Команды загрузки и сохранения системных регистров.

  2. Команды манипуляции флагом IF: CLI (0 - > IF), STI (1 - >IF).

  3. Команды ввода/вывода: IN/OUT, INS/OUTS.

  4. Команда останова процессора - HLT.

Попытка выполнения привилегированных команд в пользовательском режиме (PL = 3) приводит к выводу на прерывание 13. Почти все привилегированные команды, за исключением команд ввода/вывода и манипуляций флагом IF требует для своего выполнения наивысшего уровня привилегий PL = 0.
Упрощенная структура компьютера (ЭВМ).
er

Независимо от принадлежности компьютера некоторому классу или типу, его в первом приближении можно разделить на 2 части:

1. центральную;

2. периферийную.

Центральную часть принято называть ядром. В ядро входят два основных устройства компьютера: ЦП и ОП.

Периферийную часть можно условно представить устройствами трех типов:

  • внешние запоминающие устройства, которые образуют внешнюю память (к ним относятся накопители на магнитных дисках и на магнитных лентах);

  • устройства ввода;

  • устройства вывода.

Обмен информацией между ядром и периферией, а так же между устройствами ядра осуществляется на уровне аппаратных интерфейсов. Организация обмена между ядром и периферийной частью компьютера возлагается на систему ввода/вывода (I/OSInput/Output System). Система ввода/вывода представляет собой аппаратно - программный комплекс.

Аппаратная часть I/O S включает в себя:

  1. собственно периферийные устройства (разделённые на УВ/В и ВЗУ);

  2. контроллеры ПУ(устройства управления);

  3. контроллеры для организации обмена, в частности, контроллер DMADirect Memory Accses (ПДП-прямой доступ к памяти) PIC (Program Interrupt Controller – Программируемый Контроллер Прерываний);

  4. интерфейсы (шины);

  5. система прерываний.

Программная часть I/O S включает в себя:

1. супервизор (Supervisor) в/в;

2. драйверы ВУ.

Для современных программных средств I/O S типичным свойством является многоуровневая (иерархическая) организация, в частности, многоуровневые драйверы.

Программное обеспечение I/O S разделяется на устройство-зависимую часть и устройство независимую часть. Устройство-независимое ПО выполняет следующие функции:

  • буферизация;

  • защита (сообщения об ошибках);

  • блокирование (блочный характер передачи);

  • обеспечивание единообразного программного интерфейса для драйверов устройств.



Организация ввода/вывода.

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

1) Совокупность линий, шин, обеспечивающих обмен информацией между устройствами.

2) Алгоритм (протокол) обмена, определяющий последовательность организации передачи информации по линиям интерфейса.

3) Разделение интерфейса на ряд уровней представлений.

На обобщённой структуре двойными линиями обозначаются структуры, по которым осуществляются передача информации данных между компонентами компьютера, а одинарными – обозначаются связи по управлению. Тем самым подчёркивается, что центральный процессор выполняет в компьютере двойную функцию: как устройство обработки (выполняет заданные программы) и как устройство управления всеми компонентами компьютера.

От ЦП к остальным устройствам по линиям связи передаются управляющие сигналы (приказы, команды в/в); в обратную сторону передаются сигналы о состоянии устройств, в частности об их готовности к обмену, а также запросы прерываний (например, для идентификации момента завершения операции в/в).

Основными типами линий (шин), входящих в состав аппаратного интерфейса, являются:

  • шина адреса;

  • шина данных;

  • шина управления (для передачи сигналов, управляющих обменом);

  • линии синхронизации (по шинам передаются сигналы, синхронизирующие передачу информации по интерфейсу);

  • линии запросов прерываний (по ним передаются сигналы прерывания от устройств, подключаемых к интерфейсу);

  • линии питания;

  • линии заземления.


Основные характеристики интерфейса:

  1. Пропускная способность определяется максимальным количеством бит или байт данных, передаваемых по интерфейсу за одну секунду.

  2. Информационная ширина (количество бит или байт данных, передаваемых параллельно по шине данных, т.е. разрядность линии).

  3. Максимально возможное удаление устройств, подключаемых к интерфейсу.


Алгоритм (протокол) обмена обычно представляется с помощью временных диаграмм. Определяется порядок следования и допустимые параметры(амплитуда, длительность) для управляющих и информационных сигналов при работе интерфейсов в различных режимах.

Уровни представления интерфейсов:

  • Логический уровень определяет состав, наименование, назначение шин интерфейса, а также порядок передачи информации по этим линиям (протокол обмена).




  • Физический уровень определяется параметрами электрических, оптических сигналов, передаваемых по линиям интерфейса.




  • Конструктивный уровень определяет физическую реализацию шин интерфейса: скрученная (витая) пара, коаксиальный кабель; а также определяет виды разъемов и распределение линий интерфейсов по контактам разъема.


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


Название шины

Полное название

Перевод

Последовательная

/параллельная

Комментарий

FSB

Front – Side Bus

Шина переднего плана

параллельная

обеспечивает связь между ЦП и ОП

BSB

Back – Side Bus

Шина заднего плана

параллельная

обеспечивает связь между ЦП и внешнего КэшL2, отличается большой пропускной способностью

PCI

Intel - 1990

Peripheral Component Interconnect

Соединение периферийных компонент

параллельная

шина расширения

ISA

Industry Standard Architecture

Стандартная промышленная архитектура

параллельная

шина расширения;

ISA –16разрядн.

EISA-32разрядн. Для подключения принтера, модема, звуковой карты

SCSI

Small Computer System Interface

Интерфейс малых вычислительных систем

параллельная

для подключения периферийных интерфейсов

(в частности, магнитных дисков)

USB

Universal Serial Bus

Последовательная универсальная шина

последовательная

для подключения медленных устройств (например клавиатуры)


Основные аспекты организации ввода/вывода.
1.Структура компьютера в плане организации связей между ядром и периферийными устройствами:

а) структура с единым интерфейсом (с магистральным интерфейсом, с общей шиной);

б) многошинная структура, рис. 1.11 (Таненбаум);

в) структура с каналами (процессорами) ввода/вывода (Цилькер);

2. Адресация к ВУ или ПУ. Основным аспектом, связанным с адресацией ВУ, является объединение или разделение адресных пространств памяти и ввода/вывода.

3.Способ организации ввода/вывода:

а) программный (программно управляемый, программируемый) ввод/вывод;

б) ввод/вывод по прерыванию (управляемый прерываниями);

в) ввод/вывод с использованием прямого доступа к памяти;

г) канальный ввод/вывод.

Упрощенная структура компьютера с единым интерфейсом.
Ещё в конце прошлого века подобная структура являлась канонической и стандартной для большинства моделей мини ЭВМ, микро ЭВМ и ПК. Примером единого интерфейса может служить стандартный интерфейс Unibas, который использовался в компьютерах фирмы DEC(PDP – 11, VAX – 11, СМ ЭВМ).

Основными особенностями компьютеров с единым интерфейсом являются:

1) все устройства, как центральные, так и периферийные, для связи между собой используют одни и те же шины адреса, данных и управления;

2) в любой момент времени по единому интерфейсу может быть организована передача данных только между двумя устройствами;

3) в соответствие с п.2 при наличии большого числа устройств, единый интерфейс становится “узким местом” (bottle neck), в связи с чем подобная структура усовершенствовалась путём использования локальных дополнительных шин;

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

безымянный


Адресация ВУ.
Адресация собственно ВУ в современных компьютерах используется достаточно редко. Примером использования фактического адреса ВУ могут служить команды ввода/вывода IBM 370. В современных ПК адресация ВУ осуществляется на уровне программно доступных регистров контролеров ВУ, которые называются портами ввода/вывода.


Способы адресации портов ввода/вывода и их сравнительный анализ.
Различие способов адресации связанно с использованием раздельного или единого адресного пространства для памяти и портов ввода/вывода.
Раздельное адресное пространство.


FF..F


Порты ввода/вывода

FFFF


0000

Память

00..0


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

Так, например, в системе команд процессора Intel для адресации портов ввода/вывода может использоваться либо 1 байт (при прямой адресации порта), либо 2 байта (при косвенной адресации порта).

При косвенном задании адреса используется регистр DX (неявно адресуемый), в котором и находится адрес порта ввода/вывода.
Единое адресное пространство.
Использование единого адресного пространства существенно влияет как на систему команд процессора, так и на управление вводом/выводом на аппаратном уровне.



FF..F


Порты ввода/вывода


00..0

Память


Некоторая область адресного пространства в старших адресах используется не для адресации памяти, а для адресации портов ввода/вывода. Подобная идея была впервые реализована в мини ЭВМ PDP – 11(DEC). Подобный способ хорошо вписывается в рамки так называемого магистрального интерфейса.

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

Организация ввода/вывода с отображением на память обладает следующими достоинствами:

    1. Не требуются специальные команды ввода/вывода (упрощение системы команд).

    2. Возможность использования любых видов обработки (реализуется и/или логическими командами применительно к содержимому портов ввода/вывода).

Недостатками использование совмещенного адресного пространства являются:

  1. Усложнение управления кэшированием, связанное с необходимостью запрета кэширования адресного пространства, выделенного для портов ввода/вывода.

  2. Сложность реализации этого способа для многошинной архитектуры.

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

Возможные способы решения проблемы:

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

  • фильтрация адресов специальной микросхемой, отделяющей адреса памяти от адресов портов ввода/вывода; в частном случае подобную функцию может выполнять мост PCI, в состав которого входят специальные регистры диапазона; при этом все адреса, попадающие в мост и принадлежащие выделенному диапазону, передаются в дальнейшем не к памяти, а непосредственно в шину PCI, которая служит шиной ввода/вывода.


Способы организации ввода/вывода.
Программно управляемый ввод/вывод (ПУВВ). (гл.8 Цилькер)
Ввод/вывод осуществляется при непосредственном участии ЦП. Реализация ввода/вывода производится специальной программой (драйвером ВУ), в котором выполняются следующие действия:

  1. Пересылка порции данных между ОП и портом ввода/вывода (как правило, в качестве промежуточного звена используется какой – либо регистр ЦП).

  2. Проверка готовности ВУ к обмену (сводится к опросу регистра состояния контроллера ВУ).

  3. Ожидание готовности ВУ.

  4. Изменение (модификация) параметров пересылки, в частности текущего адреса области ОП для ввода/вывода и счетчика длины пересылаемого блока.

  5. Проверка завершения передачи путем сравнения счетчика с некоторым конечным значением (например, с нулем для декрементного счетчика).

Достоинства и недостатки ПУВВ PIO(Programming Input/Output):

Основным достоинством PIO принято считать относительную простоту его реализации, а основным недостатком – неэффективное использование ресурсов ЦП.
Ввод/вывод по прерыванию.
Использование этого способа организации ввода/вывода позволяет устранить основной недостаток предыдущего способа.

Основная идея: после осуществления элементарных действий по пересылке очередной порции данных, ПЦ вместо переключения в состояние активного ожидания с опросом готовности ВУ (как в первом способе) переходит к выполнению другой программы (планировщик заданий Операционной Системы запускает другой процесс); в свою очередь, устройство ввода/вывода о своей готовности продолжать операцию ввода/вывода с очередной порцией данных сообщает ПЦ с помощью сигнала прерывания; сигналы прерывания от ВУ в ПЦ Intel приходят на специальный вход INTR(Interrupt Request); при получении сигнала от ВУ ПЦ выполняет следующие действия:

  1. завершает выполнение текущей команды программы;

  2. cохраняет контекст прерываемой программы;

  3. идентифицирует источник прерывания и преобразует код источника в начальный адрес программы обработчика прерываний;

  4. загружает адрес обработчика в счетчик команд;

  5. переходит к выполнению программы обработчика прерываний.

Замечание: обработчики прерываний от устройств ввода/вывода связаны с драйверами соответствующих устройств.

Несмотря на очевидное преимущество этого способа по сравнению с предыдущим, его недостатком являются большие издержки времени, связанные с контекстным переключением из прерванной программы на обработчик прерываний и обратно. Для устройств с посимвольным обменом эти переключения имеют место после пересылки, если не каждого байта, то сравнительно небольшого их числа (4-8ба), определяемых шириной шины данных.
Прямой доступ к памяти – DMA (Direct Memory Access).
Основное отличие DMA от предыдущих способов в том, что участие ПЦ в организации ввода/вывода сводится к минимуму. ПЦ организует лишь так называемую инициализацию DMA, а также реакцию на завершение операции ввода/вывода.

Режим DMA используется для организации так называемых блочных пересылок. Типичным ВУ с блочным обменом являются накопители на магнитных дисках и магнитных лентах. Управление обменом в режиме DMA осуществляется специальным устройством (микросхемой), называемым контроллером DMADMAC. При этом контроллер DMA реализует обмен не на программном, а чисто на аппаратном уровне (DMAC – микропрограммный автомат).

DMAC содержит некоторое число программно доступных регистров, представленных для ПЦ адресуемыми портами ввода/вывода. (гл.8 Цилькер,Орлов) Инициализация DMA сводится к заданию режима работы и необходимых адресов путем пересылки требуемой информации из ЦП в регистры контроллера DMA. На этапе инициализации задаются следующие основные данные:

  • начальный адрес блока памяти (области памяти), используемого при обмене;

  • объем передаваемого блока памяти в байтах (типичный размер блока при обмене с жестким диском составляет 512 байт, длина или объем сектора);

  • код операции обмена (ввод или вывод);

  • адрес устройства прямого доступа (адрес ВУ задается в связи с тем, что стандартный контроллер DMA включает в себя 8 каналов прямого доступа).

DMA может быть реализован в одном из следующих основных режимов (по Цилькеру):


Название режима

Описание режима

Блочная пересылка

Захват шины на весь период пересылки блока; на весь период DMA ЦП не имеет доступа к шине памяти, в этот период процессор может продолжать работу по программе с обращением к КЭШ – памяти.



Пропуск цикла

После пересылки слова DMAC освобождает шину на один цикл, предоставляя ее ЦП.

Прозрачный режим

DMAC имеет доступ к шине только в тех циклах, в которых ЦП в ней не нуждается.




  1. Поддержка DMA на аппаратном уровне в процессоре фирмы Intel осуществляется на уровне входного сигнала HOLD(захват шины) и выходного сигнала HLDA(Hold Acknowledgment) – сигнал подтверждения захвата. Сигнал HOLD инициализирует DMAC при начале цикла обмена; ЦП, получив этот сигнал, отключается от шины и выставляет активный уровень сигнала подтверждения HLDA, получив этот сигнал, DMAC начинает цикл блочного обмена.

2) Стандартные контроллеры DMA позволяют реализацию следующих видов обмена:

Port -> Mem

Mem -> Port

Mem -> Mem (обмен с видеопамятью)

Port - > Port

  1. В современных моделях ПК для обмена с жесткими дисками наряду с DMA также используется и PIO.


Канальный ввод/вывод (КВВ).
Канальный ввод/вывод основан на использовании в архитектуре ЭВМ специализированных процессоров, ориентированных на организацию ввода/вывода. Эти процессоры обычно называются каналами ввода/вывода. Канальный ввод/вывод является программно управляемый, реализуется с помощью специальной программы, которая носит название канальной.

Канальные программы для организации обмена с различными типами ВУ хранятся в основной памяти. В связи с тем, что КВВ является процессором, правда специализированным, управление порядком выполнения команд канальной программы осуществляется с помощью своеобразного счетчика команд.

Команды канальной программы называются УСК (Управляющими Словами Канала). УСК содержат следующую основную информацию:

1.код команды (например:прочитать или записать, проверить состояние ВУ,т.п.);

2. начальный адрес области ОП, с которой осуществляется обмен;

3. длина передаваемого блока в байтах;

4. различные идентификаторы и признаки, влияющие на организацию обмена:



  • признак цепочки данных;

при его установке следующая команда канальной программы выполняет то же действие, что и данная, но с другой областью памяти; с помощью цепочки данных обеспечивается непрерывный обмен с несмежными областями ОП без привлечения ЦП;

  • признак цепочки команд;

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

  • признак программно управляемого прерывания;

установка этого признака в какой – либо команде сопровождается выдачей сигнала прерывания из КВВ в ЦП в момент выборки этой команды на исполнение; получив сигнал прерывания, ЦП может, например, приступить к обработке блока данных, передача которого завершилась при выполнении предыдущей части канальной программы.
Основные функции КВВ:

  1. Функции по установлению логической связи между ВУ и ОП.

а) прием и декодирование команд ввода/вывода от ЦП;

б) инициирование выполнения канальной программы при получении команды SIO (Start Input/Output) от ЦП;

в) проверка состояния ВУ, участвующего в обмене, и передача в ЦП информации о его готовности или неготовности к обмену;

2) Функции, связанные с непосредственной передачей данных между ВУ и ОП.

а) последовательная выборка команд канальной программы из ОП, их декодирование и выполнение;

б) обеспечение приема, передачи, контроля и промежуточного хранения данных при обмене между ОП и ВУ;

в) формирование текущих адресов ОП, по которым записываются или считываются передаваемые данные;

г) согласование форматов данных, передающихся по интерфейсу ввода/вывода, с форматом интерфейса ОП (как правило, ширина интерфейса ввода/вывода составляет 1, 2 или 4 байта, что меньше ширины интерфейса ОП: 4, 8, 16 байт);

д) подсчет числа передаваемых байт данных с целью определения момента завершения передачи блока данных;

е) выработка последовательности синхронизирующих и управляющих сигналов в соответствии со стандартом интерфейса ввода/вывода;

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

3) Функции, связанные с завершением обмена и разрушением логической связи между ВУ и ОП.

а) определение момента завершения в программе по организации обмена между ВУ и ОП;

б) передача в ЦП сигнала прерывания о завершении обмена.
Участие ЦП в организации КВВ сводится к выполнению следующих функций:


  • Инициирование операции ввода/вывода (реализуется командой SIO основной программы).

  • Проверка состояния канала ввода/вывода (реализуется командой TCHTest Channel).

  • Проверка состояния ВУ (реализуется командой TIOTest Input/Output).

  • Остановка операций ввода/вывода (реализуется командой HIOHalt Input/Output) возможно, для инициирования более приоритетной операции.

Команды ввода/вывода являются привилегированными, т.е. могут выполняться только программами операционной системы в режиме Supervisor (SVR).

Использование каналов ввода/вывода в архитектуре компьютеров, относительно к классу Main Frame и суперкомпьютеров, является мощной аппаратной поддержкой реализации мультипрограммного режима обработки. Архитектура компьютера с каналами ввода/вывода, даже при наличии одного ЦП, позволяет параллельно реализовать выполнение одной программы в ЦП и процессов ввода/вывода для нескольких других программ с использованием ресурсов КВВ.
Классификация КВВ.
По режиму функционирования, они разделяются на мультиплексные и селекторные. Мультиплексный канал обеспечивает параллельную работу многих ВУ. Селекторный канал работает в монопольном режиме, обеспечивая работу единственного ВУ.

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




Поделитесь с Вашими друзьями:
1   2   3   4   5   6   7   8   9   ...   20




База данных защищена авторским правом ©vossta.ru 2022
обратиться к администрации

    Главная страница