Установка атрибутов/цветов символов.
Когда дисплей установлен в текстовый режим в любой из видео систем, то каждой позиции символа на экране отводится два байта памяти. Первый байт содержит номер кода АSСII кода символа, а второй – атрибуты символа. Цветной адаптер может выводить в цвете, как сам символ, так и всю область, отведенную данному символу (фоновый цвет). Монохромный адаптер ограничен только черным и белым цветом, но он может генерировать подчеркнутые символы. Все три системы могут выдавать мигающие символы и негативное изображение. Bce три системы могут также создавать символы с высокой интенсивностью, хотя для цветного адаптера повышенная интенсивность символа на самом деле приводит к другому цвету.
Атрибуты цвета:
Для указания цветов экрана одни и те же номера кодов используются в Бейсике и прерываниями операционной системы. Они такие:
0 – черный 8 – серый
1 – синий 9 – голубой
2 – зеленый 10 – светло-зеленый
3 – циан 11 – светлый циан
4 – красный 12 – светло-красный
5 – магента 13 – светлая магента
6 – коричневый 14 – желтый
7 – белый 15 – ярко-белый
Младшие четыре бита байта атрибутов устанавливают цвет самого символа (бит 3включает высокую интенсивность). Следующие три бита устанавливают фон символа. И при обычных обстоятельствах старший бит включает и выключает мигание. Таким образом:
когда бит 0 = 1, синий включается в основной цвет
1 = 1, зеленый включается в основной цвет
2 = 1, красный включается в основной цвет
3 = 1, символ выводится с высокой интенсивностью
4 = 1, синий включается в фоновый цвет
5 = 1, зеленый включается в фоновый цвет
6 = 1, красный включается в фоновый цвет
7 = 1, символы мигают
Биты 0-2 и 4-6 содержат одни и те же компоненты цветов для самих символов и фона. Эти трехбитные группы позволяют 8 возможных комбинаций. Когда включается бит высокой интенсивности, то добавляются еще 8 цветов. Шестнадцать возможных цветов получаются из этих установок битов следующим образом:
R/G/B | Низкая интенсивность | Высокая интенсивность |
0 0 0 | черный | серый |
0 0 1 | синий | светло-синий |
0 1 0 | зеленый | светло-зеленый |
0 1 1 | циан | светлый циан |
1 0 0 | красный | светло-красный |
1 0 1 | магента | светлая магента |
1 1 0 | коричневый | желтый |
1 1 1 | белый | ярко-белый |
Управление курсором.
Курсор служит двум целям. Во-первых, он служит указателем места на экране, в которое операторы программы посылают свой вывод. Во-вторых, он обеспечивает видимую точку отсчета на экране для пользователя программы. Только для второго применения курсор должен быть видимым. Когда курсор невидим (выключен), то он все равно указывает на позицию экрана. Это важно, поскольку любой вывод на экран, поддерживаемый операционной системой, начинается с текущей позиции курсора.
Курсор генерируется микросхемой контроллера дисплея 6845. Эта микросхема имеет регистры, устанавливающие размер и положение курсора. Микросхема 6845 делает только мерцающий курсор, хотя имеются программные способы создания немерцающего курсора. Частота мерцания курсора не может быть изменена.
B графических режимах курсор не выводится, хотя символы позиционируются на экране теми же самыми процедурами установки курсора, что и в текстовых режимах. Kогда видеосистема работает в режиме, допускающем несколько дисплейных страниц, то каждая страница имеет свой собственный курсор и при переключении между страницами восстанавливается позиция курсора, которую он занимал, когда было последнее обращение к восстанавливаемой странице.
Ввод/вывод. (Лекция 11)
Любая ЭВМ представляет собой сложную систему, включающую в себя большое количество различных устройств. Связь устройств ЭВМ между собой осуществляется с помощью сопряжений, называемых интерфейсами.
Интерфейс – это совокупность программных и аппаратных средств, предназначенных для передачи информации между компонентами ЭВМ и включающих в себя электронные схемы, линии, шины и сигналы адресов, данных и управления, алгоритмы передачи сигналов и правила интерпретации сигналов устройствами.
Интерфейсы характеризуются следующими параметрами:
· пропускная способность – количество информации, которая может быть передана через интерфейс в единицу времени;
· максимальная частота передачи информационных сигналов через интерфейс;
· максимально допустимое расстояние между соединяемыми устройствами;
· общее число проводов (линий) в интерфейсе;
· информационная ширина интерфейса – число бит или байт данных, передаваемых параллельно через интерфейс.
К динамическим параметрам интерфейса относится время передачи отдельного слова и блока данных с учетом продолжительности процедур подготовки и завершения передачи.
Разработка систем ввода-вывода требует решения целого ряда проблем, среди которых выделим следующие:
1. Необходимо обеспечить возможность реализации ЭВМ с переменным составом оборудования, в первую очередь, с различным набором устройств ввода-вывода, чтобы пользователь мог выбирать конфигурацию в соответствии с ее желаемым назначением, легко добавлять новые устройства и отключать те, в использовании которых он не нуждается.
2. Для эффективного и высокопроизводительного использования оборудования компьютера следует реализовать параллельную во времени работу процессора над вычислительной частью программы и выполнение периферийными устройствами процедур ввода-вывода.
3. Необходимо упростить для пользователя и стандартизовать программирование операций ввода-вывода, обеспечить независимость программирования ввода-вывода от особенностей того или иного периферийного устройства.
4. В ЭВМ должно быть обеспечено автоматическое распознавание и реакция процессора на многообразие ситуаций, возникающих в устройствах (готовность, отсутствие носителя, различные нарушения нормальной работы и др.).
Главным направлением решения указанных проблем является магистрально-модульный способ построения ЭВМ: все устройства, составляющие компьютер, включая и микропроцессор, организуются в виде модулей, которые соединяются между собой общей магистралью. Обмен информацией по магистрали удовлетворяет требованиям некоторого общего интерфейса, установленного для магистрали данного типа. Каждый модуль подключается к магистрали посредством специальных интерфейсных схем (Иi).
Рис. 12. Магистрально-модульный принцип построения ЭВМ
На интерфейсные схемы модулей возлагаются следующие задачи:
· обеспечение функциональной и электрической совместимости сигналов и протоколов обмена модуля и системной магистрали;
· преобразование внутреннего формата данных модуля в формат данных системной магистрали и обратно;
· обеспечение восприятия единых команд обмена информацией и преобразование их в последовательность внутренних управляющих сигналов.
Эти интерфейсные схемы могут быть достаточно сложными и по своим возможностям соответствовать универсальным микропроцессорам. Такие схемы принято называть контроллерами: они обладают высокой степенью автономности, что позволяет обеспечить параллельную во времени работу периферийных устройств и выполнение программы обработки данных микропроцессором.
Недостатком магистрально-модульного способа организации ЭВМ является невозможность одновременного взаимодействия более двух модулей, что ставит ограничение на производительность компьютера, вследствие чего этот способ, в основном, используется в ЭВМ, к характеристикам которых не предъявляется очень высоких требований, например, в персональных ЭВМ.
Особенности PIO и DMA
В современных компьютерах используются два основных способа организации передачи данных между памятью и периферийными устройствами: программно-управляемая передача (PIO, Programmed Input-Output) и прямой доступ к памяти (DMA, Direct Memory Access).
Программно-управляемая передача данных осуществляется при непосредственном участии и под управлением процессора. Например, при пересылке блока данных из периферийного устройства в оперативную память процессор должен выполнить следующую последовательность шагов:
1. сформировать начальный адрес области обмена в оперативной памяти;
2. занести длину передаваемого массива данных в один из внутренних регистров, который будет играть роль счетчика;
3. выдать команду чтения информации с устройства; при этом на шину адреса от процессора выдается адрес устройства, на шину управления – сигнал чтения данных, а считанные данные заносятся во внутренний регистр процессора;
4. выдать команду записи информации в оперативную память; при этом на шину адреса от процессора выдается адрес ячейки оперативной памяти, на шину управления – сигнал записи данных в память, а на шину данных выставляются данные из регистра процессора, в который они были помещены при чтении с устройства;
5. модифицировать регистр, содержащий адрес оперативной памяти;
6. уменьшить счетчик длины массива на длину переданных данных;
7. если переданы не все данные, то повторить шаги 3-6, в противном случае закончить обмен.
Как видно, программно-управляемый обмен ведет к нерациональному использованию мощности микропроцессора, который вынужден выполнять большое количество относительно простых операций, приостанавливая работу над основной программой. При этом действия, связанные с обращением к оперативной памяти и к периферийному устройству, обычно требуют удлиненного цикла работы микропроцессора из-за их более медленной по сравнению с микропроцессором работы, что приводит к еще более существенным потерям производительности.
Альтернативой программно-управляемому обмену служит прямой доступ к памяти – способ быстродействующего подключения внешнего устройства, при котором оно обращается к оперативной памяти, не прерывая работы процессора. Такой обмен происходит под управлением отдельного устройства – контроллера DMA (или КПДП).
Рис. 13. Обмен данными в режиме прямого доступа к памяти
Перед началом работы контроллер DMA необходимо инициализировать: занести начальный адрес области памяти, с которой производится обмен, и длину передаваемого массива данных. В дальнейшем по сигналу запроса прямого доступа контроллер фактически является посредником между устройством и памятью – выполняет все те действия, которые обеспечивал микропроцессор при программно-управляемой передаче.
Последовательность действий контроллера DMA при запросе на прямой доступ к памяти со стороны устройства ввода-вывода следующая:
1. Принять запрос на DMA (сигнал DRQ) от устройства.
2. Сформировать запрос к процессору на захват шин (сигнал HRQ).
3. Принять сигнал от процессора (HLDA), подтверждающий факт перевода микропроцессором своих шин в третье состояние.
4. Сформировать сигнал, сообщающий устройству ввода-вывода о начале выполнения циклов прямого доступа к памяти (DACK).
5. Сформировать на шине адреса компьютера адрес ячейки памяти, предназначенной для обмена.
6. Выработать сигналы, обеспечивающие управление обменом (IOR, MW для передачи данных из устройства в оперативную память и IOW, MR для передачи данных из оперативной памяти на устройство).
7. Уменьшить значение в счетчике данных на длину переданных данных.
8. Проверить условие окончания сеанса прямого доступа (обнуление счетчика данных, снятие сигнала запроса на DMA). Если условие окончания не выполнено, изменить адрес в регистре текущего адреса на длину переданных данных и повторить шаги 5-8.
Прямой доступ к памяти позволяет осуществлять параллельно во времени выполнение процессором программы и обмен данными между периферийным устройством и оперативной памятью.
Режим DMA для шины ISA.
DMA-контроллер шины ISA имеет 16 каналов DMA, из которых 7 могут использоваться процессором. Каждому каналу DMA присвоен 16-битный регистр адреса и 16-битный регистр счётчика. Для начала передачи данных на контроллере выставляются значения адреса в памяти и счётчика данных, а также действие (чтение/запись). Затем контроллер передает устройству сигнал начала процедуры передачи, по окончании которой посылает на процессор прерывание. Контроллер исполняет роль посредника при передаче.
Режим DMA для шины PCI.
В отличие от шины ISA, архитектура шины PCI не предусматривает отдельного контроллера DMA, и при этом любое устройство, подключённое к шине PCI, может послать запрос на получение статуса «мастера шины» (Bus Master) и возможности считывать/записывать значения в память напрямую.
Когда PCI-устройство запрашивает у контроллера шины данных полный доступ, контроллер (обычно это южный мост в системных платах) проверит возможность предоставления доступа (только одно устройство может иметь статус Bus Master). Когда устройство получает доступ, оно передает команды считывания/записи на шину PCI, а контроллер в свою очередь переводит поток данных на контроллер доступа к памяти.
PIO обычно используется в ЭВМ для операций ввода-вывода отдельных байт (слов), которые выполняются быстрее, чем при DMA, так как исключаются потери времени на инициализацию контроллера DMA, а в качестве основного способа осуществления операций ввода-вывода используют DMA. Например, в современных компьютерах обмен между накопителями на магнитных дисках и оперативной памятью происходит в режиме прямого доступа.
Организация ЭВМ на основе общей шины является сдерживающим фактором для повышения производительности компьютера. Следует отметить, что даже при использовании прямого доступа к памяти процессор полностью не освобождается от управления операциями ввода-вывода. Он обеспечивает инициализацию контроллера ПДП, а также взаимодействует с ним по некоторым управляющим линиям. Более того, во время операции передачи данных интерфейс оказывается занятым, а связь процессора с оперативной памятью – блокированной.
Это существенно сказывается на эффективности работы ЭВМ, особенно в тех случаях, когда в вычислительной системе используется большое количество высокоскоростных внешних устройств. Для решения этой проблемы в состав высокопроизводительных компьютеров иногда включают специализированные процессоры ввода-вывода, способные полностью разгрузить основной процессор от управления операциями обмена с внешними устройствами.