Структура контроллера ПУ

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

В соответствии с информационной моделью обмена каждый контроллер ПУ может иметь:

буфер команд - для приема команд из внешнего интерфейса и временного их хранения;

буфер входных данных - для приема данных из внешнего интерфейса и временного их хранения;

буфер выходных данных – для приема прочитанных из ПУ данных и хранения их на все время до выдачи во внешний интерфейс;

буфер информации о состоянии ПУ – для хранения на все время до выдачи во внешний интерфейс.

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

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

логический канал для передачи команд в контроллер ПУ;

логический канал для передачи данных в контроллер ПУ;

логический канал для приема данных из контроллера ПУ;

логический канал для приема информации из контроллера ПУ.

Физически часть (или даже все) логические каналы могут реализовываться через один физический канал связи.

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

Размер буферов в контроллере интерфейса ПУ и организация взаимодействия с ними контроллера интерфейса и контроллера ПУ зависит от типа ПУ, а именно:

· от способа организации работы с ПУ. При использовании конвейерного принципа наличие буфера команд обязательно. Емкость буферов (количество, например, команд в нем) может быть различной.

· от скорости работы с ПУ;

· от размеров передаваемых порций данных за один сеанс обмена. Например, для контроллера НМД размеры буферов данных не могут быть меньше размера одного кластера.

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

Информационная структура контроллера ПУ представлена на рис.24.8.

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

Более простые контроллеры ПУ дают возмож­ность программе следить за деталями выполнения комплексных операций. В современных компьютерах, как правило, контроллеры ПУ выполняют все функции по управлению ПУ.

Каждый контроллер ПУ является специализированным компьютером.

 
 


Рис. 24.8. Информационная структура контроллера ПУ


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: