Билет №3. 1) Что называют регистровой передачей. За сколько тактов выполняется регистровая передача. Чем определяется тип регистровой передачи(микрооперации), выполняемой в операционном автомате. Регистрами называют функциональные узлы, предназначенные для приёма, хранения, передачи и преобразования информации. В зависимости от способа записи информации (кода числа) различают параллельные, последовательные и параллельно-последовательные регистры. Параллельные регистры. В параллельных регистрах запись двоичного числа (слова) осуществляется параллельным кодом, т. е. во все разряды регистра одновременно. Их функция сводится только к приёму, хранению и передаче информации (двоичного числа). Считывание кода из регистра может производиться многократно без разрушения информации. Параллельный N-разрядный регистр состоит из N триггеров, каждый из которых имеет информационный вход, на которые и подаётся входная информация. Установка выходов регистра в состояния, соответствующие состояниям информационных входов, производится при воздействии импульса синхронизации (тактирующего) на соответствующий управляющий вход. Регистры могут иметь отдельный управляющий вход переустановки выходных состояний в нулевое значение ("R",переустановка, обнуление). При построении параллельных регистров наибольшее применение получили D-триггеры (триггер«защёлка»), позволяющие выполнять параллельные регистры на малом количестве элементов. Полупроводниковая элементная база, выпускаемая электронной промышленностью, имеет в своём составе многоразрядные параллельные регистры (рисунок 21.9, 21.10) или позволяет изготавливать их на интегральных схемах малой степени интеграции. На уровне регистровых передач выполняются операции над аппаратурой ВМ, которые представляют пересылку сигналов на КС ВМ. Таким образом, регистровая передача — это последовательность сигналов на триггера физического регистра, исходящая из некоторой логической операции (КС), которая устанавливает его значение. Иной вариант — регистровая передача — это микрокоманда, выполняющаяся за один такт. Команды процессора доступные программисту выполняются последовательностью 1 и более микрокоманд, потому могут выполняться более 1 такта. Таким образом, тип микрооперации выполняемый в операционном автомате определяется командой (точнее, алгоритмом её реализации), которую в данный момент исполняет данный автомат. Назначение пользовательского (кольцевого) буфера клавиатуры, где находится, какая информация содержится, откуда информация поступает и куда передается. Кольцевой буфер, или циклический буфер — это структура данных, использующая единственный буфер фиксированного размера, как будто бы после последнего элемента сразу же снова идет первый. Такая структура легко предоставляет возможность буферизации потоков данных. Кольцевой буфер (417h, 418h) Работой клавиатуры управляет специальный контроллер клавиатуры, обеспечивающий распознавание активной клавиши при нажатии и отпускании и формирование с учетом регистра клавиатуры скан-кода, который передается в порт 60h. Одновременно с передачей скан-кода в порт контроллер генерирует прерывание 09h. Базовый обработчик BIOS-прерывания клавиатуры анализирует значение скан-кода и, если это не код управляющей клавиши, транслирует его а двухбайтный код клавиши и помещает в буфер ввода клавиатуры (41 Eh). Кольцевой буфер клавиатуры обеспечивает синхронизацию ввода данных с клавиатуры и приема их активной программой и вмещает 15 слов. Для работы с буфером служат два указателя: головной (41Аh) и хвостовой (41Сh). Хвостовой указатель хранит полный адрес первой свободной ячейки буфера, головной - адрес самого старого принятого от клавиатуры, но еще не востребованного программой кода. Если оба указателя имеют один и тот же адрес, то буфер пуст. Если хвостовой указатель на единицу меньше головного, то буфер заполнен полностью. Буфер клавиатуры обслуживается по дисциплине FIFO. При трансляции скан-кодов базовый обработчик использует информацию о состоянии управляющих клавиш смены регистров и клавиш-переключателей клавиатуры, которая хранится в статусных байтах 417h и 418h. Поступающая с клавиатуры комбинация кодов, не имеющая Специального значения, игнорируется. При длительном нажатии какой-либо клавиши контроллер клавиатуры генерирует последовательность кодов этой клавиши. Системные средства ввода данных с клавиатуры Коды клавиш из буфера клавиатуры читаются соответствующей программой DOS или пользователя. Для этого используются системные средства BIOS или DOS. Если компьютер не выполняет никаких программ, то за вводом с клавиатуры фактически "следит" командный процессор СОМMAND.COM через DOS-прерывание 21h. Когда выполняется программа, ведущая диалог с пользователем, то ввод из кольцевого буфера производится либо через BIOS-прерывание 16h, либо через DOS-прерывание. BIOS-прерывание 16h реализует ряд функций), которые обеспечивают работу с буфером на самом низком уровне. Операционная система MS-DOS позволяет пользователю обращаться к клавиатуре, как к файлу, либо реализовывать посимвольный ввод с клавиатуры. Для этого используются соответствующие функции DOS-прерывания 21h В качестве примера построения обработчика пользователя и дополнения базового обработчика клавиатуры рассмотрим задачу создания процедуры пользователя по формированию клавиатурного макроса на заданный расширенный код ASCII (Alt+X, где Х-заданная буква верхнего регистра). В качестве макроса формируется определенный текст до 15 символов. Необходимо разработать алгоритм (процедуру) инициализации обработчика прерываний пользователя, ввода с клавиатуры заданной комбинации клавиш с выводом на экран монитора текста соответствующего клавиатурного макроса с последующим восстановлением состояния начальной загрузки процессора (выполнение основной программы пользователя должно производиться в интерактивном режиме)