четверг, 12 марта 2015 г.

Логические основы компьютера

Логические элементы - устройства, предназначенные для обработки информации в цифровой форме (последовательности сигналов высокого — «1» и низкого — «0» уровней в двоичной логике, последовательность «0», «1» и «2» в троичной логике, последовательности «0», «1», «2», «3», «4», «5», «6», «7», «8» и «9» в десятичной логике). Физически логические элементы могут быть выполнены механическими, электромеханическими (на электромагнитных реле), электронными (на диодах и транзисторах), пневматическими, гидравлическими, оптическими и др.
Также устройство выдает значение одной из функций алгебры логики (логической операции):
1. логическое умножение
2. логическое сложение 
3. логическое отрицание
Условные обозначения (схемы) логических элементов, реализующих

 логическое умножение, логическое сложение и отрицание:

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

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

Дешифратор. Логическая формула

Дешифратор является одним из базовых узлов компьютера. В ЭВМ
с помощью дешифраторов осуществляется выборка необходимых ячеек оперативной памяти, расшифровка кодов машинных операций, перевод двоичных чисел в десятичные.
Устройство, преобразующее входной двоичный код в сигнал на одном из выходов, называется дешифратором.
Говорят, что дешифратор имеет разрядность n, если он имеет n входов и 2n выходов. На вход дешифратору подается n двоичных сигналов-переменных, на одном выходе появляется логическая единица, на остальных – логические нули.














Зависимость количества выходов от количества входов объяснить достаточно просто: существует 2n различных двоичных чисел длины n (все незначащие нули выписываем, записывая соответствующее число ровно в n разрядах).
Построим таблицу истинности для дешифратора с n = 3 входами. Выходы дешифратора будем нумеровать от 0 до 7.
Если мы этот дешифратор будем использовать для перевода двоичных чисел в восьмеричные, то на наборе {0 0 0} только на выходе 0 (функция f0) мы должны получить 1, на всех остальных выходах – значение 0. Для набора {0 0 1} мы должны получить 1 на первом выходе (функция f1), а для всех остальных функций – 0. И, наконец, для набора {1 1 1} мы должны получить 1 только на седьмом выходе (функция f7).








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

Логическая схема дешифратора

Схема одноступенчатого дешифратора:

















Условно дешифратор обозначают следующим образом:









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

Сумматор двоичных чисел

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

Заметим, что при сложении цифр в i-ом разряде мы должны сложить цифру ai числа a, цифру bi числа b и цифру pi, которая является признаком переноса из (i – 1)-го разряда. В результате сложения должны получиться цифра результата si и цифра переноса в следующий разряд pi+1.
Основываясь на этих рассуждениях, построим таблицу истинности для функций, которые в зависимости от цифр aibi и pi получают цифры si = ai + bi и pi+1.
ВходыВыходы
aibipisipi+1
00000
00110
01010
01101
10010
10101
11001
11111

На основе приведенной таблицы истинности можно построить логическую формулу для функции si, получающей очередную цифру результата, и функции pi+1, формирующей признак переноса (0 или 1) в следующий разряд.
Эти функции можно записать в следующем виде:

Выразить si и pi+1 можно и другими формулами. Например, самая короткая формула для , что позволяет построить сумматор, используя другие логические элементы.
Если при суммировании не учитывается признак переноса, то соответствующая логическая схема называется полусумматором.
ВходыВыходы
aibisipi+1
0000
0110
1010
1101

Полусумматоры также используются при построении компьютера, например, из двух полусумматоров можно построить один сумматор.

Триггер

 Термин триггер происходит от английского слова trigger — защёлка, спусковой крючок. Для обозначения этой схемы в английском языке чаще употребляется термин flip-flop, что в переводе означает "хлопанье". Это звукоподражательное название электронной схемы указывает на её способность почти мгновенно переходить ("перебрасываться") из одного электрического состояния в другое и наоборот.
Самый распространённый тип триггера — так называемый RS-триггер (S и R, соответственно, от английских set — установка, и reset — сброс). Условное обозначение триггера — на рисунке ниже
Он имеет два симметричных входа S и R и два симметричных выхода Q и , причем выходной сигнал Q является логическим отрицанием сигнала .
На каждый из двух входов S и R могут подаваться входные сигналы в виде кратковременных импульсов ( ).
Наличие импульса на входе будем считать единицей, а его отсутствие — нулем.
На рисунке ниже показана реализация триггера с помощью вентилей ИЛИ—НЕ и соответствующая таблица истинности.
SRQ
00запрещено
0110
1001
11хранение бита
Проанализируем возможные комбинации значений входов R и S триггера, используя его схему и таблицу истинности схемы ИЛИ—НЕ (табл. 5.5).
  1. Если на входы триггера подать S="1", R="0", то (независимо от состояния) на выходе Q верхнего вентиля появится "0". После этого на входах нижнего вентиля окажется R="0", Q="0" и выход станет равным "1".
  2. Точно так же при подаче "0" на вход S и "1" на вход R на выходе появится "0", а на Q — "1".
  3. Если на входы R и S подана логическая "1", то состояние Q и не меняется.
  4. Подача на оба входа R и S логического "0" может привести к неоднозначному результату, поэтому эта комбинация входных сигналов запрещена.
Поскольку один триггер может запомнить только один разряд двоичного кода, то для запоминания байта нужно 8 триггеров, для запоминания килобайта, соответственно, 8 х 210= 8192 триггеров. Современные микросхемы памяти содержат миллионы триггеров.

Комментариев нет:

Отправить комментарий