ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 13.01.2021

Просмотров: 110

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

6


Лекция 6


3. Цифровой логический уровень


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


3.1. Вентили, булева алгебра и схемы


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

Принципы работы вентилей относятся к уровню физических устройств, который выходит за рамки настоящего курса. Отметим лишь, что вентили строятся с помощью транзисторов. Современный транзистор может работать как очень быстрый бинарный переключатель. Если входное напряжение ниже определенного критического значения, транзистор выключается и действует как очень большое сопротивление. Это приводит к выходному сигналу с высоким напряжением (5 В). Если входное напряжение превышает критическое значение, транзистор включается и действует как провод, при этом выходной сигнал имеет напряжение близкое к 0. Такая схема является инвертором, превращающим логический 0 в 1 и наоборот. В вентилях используются также резисторы, ограничивающие количество тока в транзисторах. На переключение инвертора с одного состояния на другое требуется несколько наносекунд.

Инвертор представляет собой простейший вентиль типа НЕ, основанный на одном транзисторе. Еще два простейших вентиля получаются последовательным и параллельным соединением пары транзисторов - соответственно НЕ-И и НЕ-ИЛИ, которые вычисляют эти логические функции над двумя логическими аргументами. Если их выходные сигналы подавать в инвертор, получим вентили И и ИЛИ. Эти пять типов вентилей составляют основу цифрового логического уровня. На практике они могут выполняться по-другому, но в любом случае вентили НЕ-И и НЕ-ИЛИ имеют более простую структуру, чем И и ИЛИ. Поэтому во многих компьютерах используются лишь первые два. Вентили могут иметь также более 2-х входов для вычисления функции от n аргументов.

Как видно из сказанного, для описания работы вентилей может использоваться булева алгебра. Произвольная булева функция n переменных имеет всевозможных комбинаций значений переменных. Поэтому такую функцию можно задать таблицей с строками. В каждой строке дается значение функции при соответствующем наборе аргументов. Такая таблица называется таблицей истинности. Условимся располагать наборы значений аргументов в порядке их возрастания как двоичных чисел. Например, для двух переменных порядок будет таким: 00, 01, 10, 11. Тогда при фиксированном n данную булеву функцию можно описать двоичным числом длины , которое слева направо содержит соответствующие значения функции. Таким образом, имеем: НЕ-И ~ 1110, НЕ-ИЛИ ~ 1000, И ~ 0001, ИЛИ ~ 0111.


Из математической логики известно, что любая булева функция n переменных может быть выражена через свои аргументы в дизъюнктивной нормальной форме - это логическая сумма не более чем слагаемых, представляющих собой логические произведения n множителей. Например, . Этот факт можно использовать для аналитической записи булевых функций. Отсюда также следует, что каждая булева функция может быть реализована в виде электронной схемы с использованием сигналов, представляющих значения входных и выходных переменных, и набора вентилей (например, И, ИЛИ и НЕ). При разработке электронных схем возникает задача сокращения числа вентилей. Это нужно в целях снижения стоимости, уменьшения занимаемого места, сокращения потребляемой энергии и т. п. Чтобы упростить схему, нужно найти эквивалентную ей, вычисляющую ту же функцию с меньшими затратами. Для этого используются законы булевой алгебры (например, законы Де Моргана ).

С другой стороны, один и тот же вентиль может вычислять разные функции в зависимости от принятых соглашений. Таблицу истинности для данной функции можно составить со значениями напряжения в вольтах. Если теперь считать напряжение 0 В логическим нулем, а 3,3 В или 5 В - логической единицей, то получим позитивную логику. Если же использовать обратную - негативную логику, то интерпретация значений будет другой.


3.2. Виды цифровых логических схем


Наборы вентилей создаются в виде модулей, называемых интегральными схемами (ИС) или микросхемами. В зависимости от количества вентилей микросхемы можно (приближенно) разделить на несколько классов:

  • МИС (малая интегральная схема): до 10 вентилей;

  • СИС (средняя интегральная схема): до 100 вентилей;

  • БИС (большая интегральная схема): до 100000 вентилей;

  • СБИС (сверхбольшая интегральная схема): свыше 100000 вентилей (до сотен миллионов).

Многие применения цифровой логики требуют наличия схем с несколькими входами и одним или несколькими выходами, в которых выходные сигналы определяются значениями входных сигналов. Такая схема называется комбинационной. Существует несколько разновидностей комбинационных схем -мультиплексор, декодер, компаратор, программируемая логическая матрица и т. д. Важнейшим видом комбинационных схем являются арифметические схемы. Они лежат в основе построения арифметико-логического устройства (АЛУ). Сюда, в частности, относятся схемы сдвига и сумматоры, которые легко могут быть реализованы совокупностью применяемых поразрядно вентилей И и ИЛИ. Они построены так, что каждая поразрядная операция выдает сигнал переноса, используемый при операции над следующей парой разрядов (сумматор со сквозным переносом).

Существует еще один очень важный вид микросхем, не являющихся комбинационными, - запоминающие схемы. Их выходные сигналы не определяются текущим состоянием входных. Например, из двух вентилей можно составить так называемую SR-защелку. Она имеет 2 входа: S (setting - установка) и R (resetting - сброс), которые большую часть времени равны 0. Единовременная подача на S сигнала 1 устанавливает выходной сигнал защелки в 1, который не меняется до тех пор, пока сигнал 1 не будет подан на R. После этого выходной сигнал защелки устанавливается в 0. Таким образом, схема запоминает, какой сигнал был последним - S или R. Подобные схемы, каждая из которых может хранить 1 бит информации, может использоваться для организации компьютерной памяти.


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


3.3. Микросхемы процессоров


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

Таким образом, центральный процессор обменивается информацией с памятью и устройствами, подавая сигналы на выводы и принимая сигналы на входы. Поэтому количество адресных и информационных выводов - два ключевых параметра, определяющих производительность процессора. Микросхема, содержащая m адресных выводов, может обращаться к ячейкам памяти. Обычно m равно 16, 20, 32 или 64. Микросхема процессора, содержащая n информационных выводов, может считывать или записывать за одну операцию n-битное слово. Обычно n равно 8, 16, 32, 36 или 64.

Кроме адресных и информационных выводов, процессор содержит также выводы управления. Их можно разделить на несколько категорий:

  • управление шиной - используются в основном для передачи управляющих сигналов памяти и устройствам ввода-вывода;

  • прерывание - используются для передачи сигналов процессору от устройств ввода-вывода;

  • арбитраж шины - предназначены для разрешения конфликтов шины;

  • состояние - могут использоваться для передачи информации о состоянии процессора, приема сигналов о состоянии устройств;

  • разное - используются, например, для взаимодействия с сопроцессорами.


Помимо названных, каждый процессор содержит также выводы для питания (3.3 В или 5 В), “земли” и синхронизирующего сигнала.


3.4. Шины


Шины могут быть внутренними по отношению к процессору и служить для обмена данными с АЛУ или внешними и свя­зывать процессор с памятью или устройствами ввода-вывода. В этом разделе мы рассматриваем внешние шины.

Первые персональные компьютеры имели одну внешнюю шину, которая назы­валась системной шиной. Она состояла из нескольких медных проводов (от 50 до 100), которые встраивались в материнскую плату. Современные ПК обычно содер­жат специальную шину между центральным процессором и памятью и по крайней мере еще одну шину для устройств ввода-вывода.

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

Существует большое количество широко используемых в компьютерном мире шин. К ним относятся: Omnibus (PDP-8), Unibus (PDP-11), IBM PC (PC/XT), ISA (PC/AT), EISA (80386), MicroChannel (PC/2), PCI (различные персональные ком­пьютеры), SCSI (различные персональные компьютеры и рабочие станции), Nubus (Macintosh), Universal Serial Bus (современные персональные компьютеры), FireWire (бытовая электроника), VME (оборудование в кабинетах физики) и Cаmас (фи­зика высоких энергий). Вместо этого многообразия удобнее было бы иметь одну или две, но стандартизация в данной области вряд ли возможна, поскольку уже вложено слишком много средств в различные несовместимые варианты.

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

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


Принципиальными вопро­сами разработки являются ширина шины, синхронизация, арбитраж и принципы работы. Эти аспекты существенно влияют на скорость и пропускную способность шин.

Ширина шины - наиболее очевидный параметр при ее разработке. Чем больше адрес­ных линий содержит шина, тем к большему объему памяти может обращаться про­цессор. Однако для широких шин требуется больше прово­дов. Поэтому необходим компромисс между максимальным размером памяти и стоимостью системы.

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

Шины можно разделить на две категории в зависимости от их синхронизации. Синхронная шина содержит линию, которая запускается кварцевым генератором. Сигнал на этой линии представляет собой периодический импульс с частотой от 5 до 100 МГц. Любое действие шины занимает целое число так называемых циклов шины. Большинство современных шин являются синхронными: ISA (работает с частотой 8,33 МГц), PCI (с частотой 33 или 66 МГц). Синхронная работа удобна, но еще более замедляет и без того низкую скорость шин. Например, если процессор и память способны закончить передачу за 3,1 цикла, они вынуждены продлить ее до 4,0 циклов, поскольку неполные циклы запрещены. Если синхронная шина соединяет ряд устройств, одни из которых работают быстро, а другие медленно, шина подстраивается под самое медленное устройство, а более быстрые не могут использовать свой полный потенциал. Асинхронная шина не содержит задающего генератора. Циклы такой шины могут быть любой требуемой длины и необязательно одинаковы по отношению ко всем парам устройств. Одной из проблем здесь является сложность организации асинхронной работы.

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


Смотрите также файлы