Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответник на госы.docx
Скачиваний:
120
Добавлен:
08.02.2015
Размер:
1.89 Mб
Скачать

1.6. Конвейеризация. Устройства ввода-вывода. Организация ввода-вывода.

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

Для иллюстрации основных принципов построения процессоров мы будем использовать простейшую архитектуру, содержащую 32 целочисленных регистра общего назначения (R0, ... ,R31), 32 регистра плавающей точки (F0,...,F31) и счетчик команд PC. Будем  считать, что набор команд нашего процессора включает типичные арифметические  и логические операции, операции с плавающей точкой, операции пересылки данных, операции управления потоком команд и системные операции. В арифметических  командах используется трехадресный формат, типичный для RISC-процессоров, а для обращения к памяти используются операции загрузки и записи содержимого регистров в память.

Выполнение типичной команды можно разделить на следующие этапы:

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

  • декодирование команды / выборка операндов из регистров - ID;

  • выполнение операции / вычисление эффективного адреса памяти - EX;

  • обращение к памяти - MEM;

  • запоминание результата - WB.

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

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

  2. Конфликты по данным, возникающие в случае, когда выполнение одной команды зависит от результата выполнения предыдущей команды.

  3. Конфликты по управлению, которые возникают при конвейеризации команд переходов и других команд, которые изменяют значение счетчика команд.

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

Устройства ввода. К устройствам ввода информации относятся: клавиатура, мышь, трекбол, джойстик, графические планшеты, световое перо, сенсорные экраны, сканер, микрофон, цифровой фотоаппарат, видеокамера.

Клавиатура -- устройство ручного ввода информации в ЭВМ, состоящее из совокупности клавиш различного назначения и схемы сопряжения. Курсор -- символ (прямоугольник или жирная черта), указывающий позицию на экране дисплея, в которой будет отображаться очередной выведенный на экран символ. Драйвер клавиатуры -- специальная программа, обеспечивающая отображение на экране монитора символа, набранного на клавиатуре. Контроллер клавиатуры -- устройство сопряжения клавиатуры с ЭВМ. Он тестирует клавиатуру при включении ЭВМ; опрашивает состояния клавиш; запоминает до 20 отдельных скан-кодов клавиш; преобразует скан-коды нажатых клавиш в коды ASCII. При нажатии (отпускании) клавиши контроллер запоминает код нажатия (отпускания). Одновременно поступает запрос на соответствующее аппаратное прерывание. При выполнении прерывания скан-код преобразуется в код ASCII, и оба кода (скан-код и ASCII-код) пересылаются в соответствующее поле ОЗУ машины. Если клавиша нажата более 0,5 с, то генерируются повторные коды нажатия.

Манипуляторы (устройства указания): джойстик - рычаг, мышь, трекбол - шар в оправе, световое перо, геймпад и др.

Мышь -- устройство ввода, представляющий собой коробку с кнопками, перемещении которого по поверхности стола вызывает перемещение указателя на экране. Если разрешение мыши 900 dpi (dots per inch -- точек на дюйм), то при ее перемещении на 1 дюйм влево микроконтроллер выдет сигнал о смещении на 900 единиц влево. Драйвер мыши обеспечивает соответствующее смещение курсора.

На нижней стороне оптико-мехнической мыши имеется отверстие, в котором находится шарик диаметром 1,5-2 см. Шарик касается двух взаимно перпендикулярных валиков горизонтального и вертикального перемещения. Каждый валик связан с диском, имеющим растровые прорези. По обе стороны каждого диска напротив друг друга расположены по два светодиода и два фотодиода. При перемещении мыши по коврику шарик поворачивает соответствующий валик с диском, фотодиоды периодически освещаются и затемняются, на их выходах появляются импульсы напряжения. Они преобразуются микроконтроллером в совместимые с ЭВМ данные и передаются на материнскую плату. Существуют мыши, подключаемые к системной шине, оптические, инфракрасные мыши и радиомыши.

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

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

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

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

Сканер -- это устройство ввода в ЭВМ графической информации непосредственно с бумажного документа. Черно-белые сканеры могут считывать штриховые изображения и полутоновые. Цветные сканеры работают и с черно-белыми, и с цветными оригиналами. В цветных сканерах используется цветовая модель RGB (красный-зеленый-синий): сканируемое изображение освещается от последовательно зажигаемых трехцветных ламп; сигнал, соответствующий каждому основному цвету, обрабатывается отдельно. Число передаваемых цветов колеблется от 256 до 65536 (стандарт High Color) и даже до 16,7 млн. (стандарт True Color). Разрешающая способность сканеров составляет от 75 до 1600 dpi (точек на дюйм).

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

Программы распознавания образов распознает считанные сканером с документа битовые (мозаичные) контуры символов (букв и цифр) и кодирует их ASCII-кодами, переводя в удобный для текстовых редакторов векторный формат.

Цифровая фотокамера содержит ПЗС-матрицу (ПЗС -- прибор с зарядовой связью), состоящую из большого количества фотоэлементов (300-900 тыс.), на которую с помощью объектива фокусируют изображение. Цифровая фотокамера имеет ЗУ для хранения файлов-фотографий и жидко-кристаллический дисплей, который является видоискателем и позволяет просматривать содержимое памяти. Цифровая видекамера (видеокодак) получает последовательность фотографий с частотой 25-30 кадров/с и записывает их в видеофайл. Параллельно идет запись звука.

 Устройства вывода: мониторы, проекторы. К устройствам вывода информации относятся монитор, проектор, принтер. Видеосистема состоит из монитора и видеоконтроллера (видеоадаптера). Видеоконтроллер устанавливается на системную плату и содержит блок управления, видеопамять, ПЗУ (матрицы знаков), блок сопряжения с монитором, графический и 3D-ускоритель, выполняющие вычисления без центрального процессора ЭВМ.

Мониторы на ЭЛТ содержат электронно-лучевую трубку, генераторы строчной и кадровой разверток, формирующих растр -- набор горизонтальных линий, заполняющий экран, блок питания. Размер экрана монитора задается обычно величиной его диагонали в дюймах: от 10 до 21 дюйма (обычно 15-17 дюймов). Частота кадровой развертки -- 70-80 Гц; частота строчной развертки -- 40-50 кГц. Разрешающая способность монитора: 320 x 200, 640 x 480, 800 x 600, 1024 x 768. Качество изображения также зависит от размера зерен люминофора, которые образую ряд: 0,42 мм; 0,39 мм; 0,31 мм; 0,28 мм; 0,26 мм. Различают монохромные и цветные мониторы.

Плазменные мониторы состоят из трех пластин, на две из которых нанесены система вертикальных и горизонтальных прозрачных проводников (2-4 проводника на 1 мм), а в третьей пластине, расположенной между ними, -- отверстия, заполненные инертным газом. Вертикальные и горизонтальные проводники образуют координатную сетку, при подаче на них напряжения светятся элементы изображения - пикселы. Разрешающая способность 512 x 512, 1024 x 1024 пиксел.

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

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

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

В ЭВМ находят применение три способа организации ввода/вывода (В/ВЫВ):

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

2) ввод/вывод по прерываниям;

3) прямой доступ к памяти.

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

В этом способе ввод/вывод происходит под полным контролем центрального процессора и выполняется для ввода по следующему алгоритму, реализуемому программно:

Для каждого чи­таемого слова ЦП должен оставаться в цикле проверки, пока не определит, что слово находится в регистре данных МВВ, то есть доступно для считывания.

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

Достоинства:

1) простота МВВ, поскольку основные функции по управлению берет на себя процессор;

2) при одновременной работе с несколькими ВУ приоритет уст­ройств легко изменить программными средствами (последовательностью опроса);

3)подключение к СВВ новых внешних устройств или отключение ранееподключенных также реализуется без особых сложностей.

Ввод/вывод по прерываниям

Этот способ является альтернативой предыдущему. Здесь ЦП выдает команду В/ВЫВ, а затем продолжает делать другую полезную работу. Когда ВУ го­тово к обмену данными, оно через МВВ извещает об этом процессор с помощью запроса на прерывание. ЦП закончив выполнение текущей, считанной из памяти команды, определяет адрес ВУ, выставившего запрос на прерывание, гасит этот запрос сигналом подтверждения прерывания, сохраняет в стеке содержимое своих основных регистров, соответствующее текущему состоянию программы, и передает управление подпрограмме обработки прерывания данного ВУ. Эта подпрограмма выполняет обмен словом между ВУ и памятью и выдает МВВ команду на обмен следующим словом, если это требуется. По завершению подпрограммы ЦП восстанавливает контекст прерванной программы из стека и возобновляет ее выполнение.

Алгоритм основной программы и подпрограммы ввода слова из ВУ имеет вид:

 

При реализации данного способа необходимо решить два вопроса:

1) каким образом ЦП может выяснить, какой из МВБ и какое из подключенных к этому модулю внешних устройств выставили запрос;

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

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

Реализация второго вопроса основана на приоритетности линий запроса прерывания. Анализ одновременно поступивших запросов ЦП начинает с линии, имеющей наивысший приоритет.

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

Предыдущие способы страдают двумя недостатками:

1) скорость обмена ограничена скоростью, с которой ЦП в состоя­нии опросить и обслужить ВУ;

2)  обмен между ВУ и ОП идет через ЦП.

Когда пересылаются большие объемы данных и с большой скоростью, требуется более эффективный способ ввода/вывода — прямой доступ к памяти(ПДП). ПДП предполагает на­личие на системной шине дополнительного модуля —контроллера прямого дос­тупа к памяти (КПДП), способного брать на себя функции ЦП по управлению системной шиной и обеспечивать прямую пересылку информации между ОП и ВУ, без участия центрального процессора. В сущности, КПДП — это и есть модуль вво­да/вывода, реализующий режим прямого доступа к памяти. Режим ПДП выполняется по схеме

Если ЦП желает прочитать или записать блок данных, он прежде всего должен поместить в КПДП информацию, характеризующую предстоящее дей­ствие. Этот процесс называется инициализацией КПДП и включает в себя занесе­ние в контроллер следующих четырех параметров:

1) вид запроса (чтение или запись);

2) адрес устройства ввода/вывода;

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

4) количество слов, подлежащих чтению или записи.

За исходную точку обычно принимается память, поэтому под чтениемпонимают считывание данных из ОП и выдачу их на устройство вывода, а подзаписью — прием данных из устройства ввода и запись в ОП.

Вид запроса запоми­нается в схеме логики управления контроллера.

Адрес ВУ запоминается так же в логике управления.

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

Размер блока в словах заносится в счетчик данных (СД) контроллера. Послепередачи каждого слова содержимое СД автоматически уменьшается на единицу.Нулевое состояние СД свидетельствует о том, что пересылка блока данных завер­шена.

После инициализации КПДП выдает в ЦП сигнал «Запрос ПДП». В ответ ЦП освобождает шины адреса и данных, а также те линии шины управления, по которым передаются сигналы, управляющие операциями на шине адреса (ША) и шине данных (ШД). К таким, прежде всего, относятся линии ЧтЗУ, ЗпЗУ, Выв, Вв и линия выдачи адреса на ША. Далее ЦП отвечает контроллеру сиг-иалом «Подтверждение ПДП». Этот сигнал делеги­рует контроллеру права на управление системной шиной. Теперь можно приступать к пересылке данных.

Процесс пересылки каждого слова блока состоит из двух этапов.

При выполнении операции чтения (ОП —>ВУ) на первом этапе КПДП выстав­ляет на шину адреса содержимое РА (адрес текущей ячейки ОП) и формирует сигнал ЧтЗУ. Считанное из ячейки ОП слово помещается на шину данных. На вто­ром этапе КПДП выставляет сигнал Выв для выбранного при инициализации устройства вывода, обеспечивая передачу слова с шины данных в ВУ.

При записи (ВУ —> ОП) КПДП сначала выдает сигнал Вв для выбранного при инициализации ВУ, по которому введенные данные поступают на шину данных. На втором этапе КПДП помещает на ША ад­рес ячейки ОП, куда должны быть занесены данные, и выдает сигнал ЗпЗУ. Этим сигналом информация с ШД записывается в ячейку ОП.

Как при чтении, так и при записи происходит буферизация пересылаемого сло­ва в регистре данных (РД) контроллера. Это необходимо для компенсации разли­чий в скорости работы ОП и ВУ.

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

Когда пересылка завершена (СД=0), КПДП снимает сиг­нал «Запрос ПДП». ЦП снимает сигнал «Подтверждение ПДП» и вновь берет на себя управление системной шиной.