Сайт о правильных сайтах







Принципы Неймана

В основу построения подавляющего большинства компьютеров положены следующие общие принципы, сформулированные в 1945 г. американским ученым Джоном фон Нейманом.

1. Принцип программного управления. Из него следует, что программа состоит из набора команд, которые выполняются процессором автоматически друг за другом в определенной последовательности.

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

2. Принцип однородности памяти. Программы и данные хранятся в одной и той же памяти. Поэтому компьютер не различает, что хранится в данной ячейке памяти – число, текст или команда. Над командами можно выполнять такие же действия, как и над данными.

Это открывает целый ряд возможностей. Например, программа в процессе своего выполнения также может подвергаться переработке, что позволяет задавать в самой программе правила получения некоторых ее частей (так в программе организуется выполнение циклов и подпрограмм). Более того, команды одной программы могут быть получены как результаты исполнения другой программы. На этом принципе основаны методы трансляции – перевода текста программы с языка программирования высокого уровня на язык конкретной машины.

3. Принцип адресности. Структурно основная память состоит из перенумерованных ячеек; процессору в произвольный момент времени доступна любая ячейка.

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

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

Общее устройство компьютеров

Основу компьютеров образует аппаратура (HardWare), построенная с использованием электронных и электромеханических элементов и устройств. Принцип действия компьютеров состоит в выполнении программ (SoftWare) – заранее заданных, четко определённых последовательностей арифметических, логических и других операций.

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

Команда – это описание элементарной операции, которую должен выполнить компьютер. В общем случае, команда содержит следующую информацию:


В зависимости от количества операндов, команды бывают:


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


Рассмотрим несколько возможных вариантов команды сложения (англ. add – сложение), при этом вместо цифровых кодов и адресов будем пользоваться условными обозначениями:


Как пpавило, процесс выполнения команды разбивается на следующие этапы:


все предыдущие этапы повторяются до достижения команды "стоп".

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

Разнообразие современных компьютеров очень велико. Но их структуры основаны на общих логических принципах, позволяющих выделить в любом компьютере следующие главные устройства:

Эти устройства соединены каналами связи, по которым передается информация. Основные устройства компьютера и связи между ними представлены на схеме, приведённой ниже. Жирными стрелками показаны пути и направления движения информации, а простыми стрелками – пути и направления передачи управляющих сигналов.

Взаимодействие основных устройств

Функции памяти:
a) приём информации из других устройств;
b) запоминание информации;
c) выдача информации по запросу в другие устройства машины.

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

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

В составе процессора имеется ряд специализированных дополнительных ячеек памяти, называемых регистрами. Регистр выполняет функцию кратковременного хранения числа или команды. Над содержимым некоторых регистров специальные электронные схемы могут выполнять некоторые манипуляции. Например, "вырезать" отдельные части команды для последующего их использования или выполнять определенные арифметические операции над числами. Основным элементом регистра является электронная схема, называемая триггером, которая способна хранить одну двоичную цифру (разряд).

Регистр представляет собой совокупность триггеров, связанных друг с другом определённым образом общей системой управления. Существует несколько типов регистров, отличающихся видом выполняемых операций. Некоторые важные регистры имеют свои названия, например:

Память компьютера построена из двоичных запоминающих элементов – битов, объединенных в группы по 8 битов, которые называются байтами. (Единицы измерения памяти совпадают с единицами измерения информации). Все байты пронумерованы. Номер байта называется его адресом.

Бит (BIT) есть не что иное, как аббревиатура от BInary digiT, придуманная в 1946 году выдающимся американским ученым-статистиком Джоном Тьюки. Он был советником пяти президентов Соединенных Штатов. Тьюки изобрал бит для обозначения одного двоичного разряда, способного принимать значение 0 или 1.

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

Как правило, в одном машинном слове может быть представлено либо одно целое число, либо одна команда. Однако, допускаются переменные форматы представления информации.


Разбиение памяти на слова для четырехбайтовых компьютеров
Байт 0 Байт 1 Байт 2 Байт 3 Байт 4 Байт 5 Байт 6 Байт 7
ПОЛУСЛОВО ПОЛУСЛОВО ПОЛУСЛОВО ПОЛУСЛОВО
СЛОВО СЛОВО
ДВОЙНОЕ СЛОВО

Широко используются и более крупные производные единицы объема памяти: Килобайт, Мегабайт, Гигабайт, а также, в последнее время, Терабайт и Петабайт.


Значения единиц измерения информации
Килобайт 210 1024 байт
Мегабайт 220 1024 килобайт
1 048 576 байт
Гигабайт 230 1024 мегабайт
1 073 741 824 байт
Терабайт 240 1024 гигабайт
1 099 511 627 776 байт
Петабайт 250 1024 терабайт
1 125 899 906 842 624 байт
Экзабайт 260 1024 петабайт
1 152 921 504 606 846 976 байт
Зеттабайт 270 1024 экзабайт
1 180 591 620 717 411 303 424 байт
Йоттабайт 280 1024 зетабайт
1 208 92 81 614 629 174 706 176 байт

Современные компьютеры имеют много разнообразных запоминающих устройств, которые сильно отличаются между собой по назначению, временным характеристикам, объёму хранимой информации и стоимости хранения одинакового объёма информации.

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

Компьютер может обрабатывать числовую, текстовую, графическую, звуковую и видео информацию. Возникает вопрос: "Как, каким образом компьютер обрабатывает столь различающиеся по восприятию человеком виды информации?"

Представление информации

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

Важно, что каждая цифра машинного двоичного кода несет информацию в 1 бит. Таким образом, две цифры несут информацию 2 бита, три разряда – 3 бита и т.д. Количество информации в битах равно количеству цифр двоичного машинного кода. Числа могут быть записаны в естественной или экспоненциальной форме. Естественной формой называется привычная нам, обычная запись чисел, например, 3,14, 2001 и т.д.

Экспоненциальная форма чисел обычно используется для записи либо очень больших, либо очень маленьких чисел, которые в обычной естественной форме содержат большое количество незначащих нулей (например, 1000000 = 1 • 106,  0,000001 = 0,1 • 10-5 ).

В языках программирования и в компьютерных приложениях при записи чисел в экспоненциальной форме вместо основания системы счисления 10 пишут букву Е, вместо запятой – точку и знак умножения не ставится (например, 1000000 = 1Е6,  0,000001 = 0.1Е-5

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

N = 2I = 28 = 256.

Такое количество символов вполне достаточно для представления текстовой информации, включая прописные и заглавные буквы русского и латинского алфавита, цифры, знаки, графические символы и т.д.

Кодирование заключается в том, что каждому символу ставится в соответствие уникальный десятичный код от 0 до 255 или соответствующий ему двоичный код от 00000000 до 11111111. Таким образом, человек различает символы по их начертанию, а компьютер – по их коду.

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

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

В позиционных системах счисления основание системы равно количеству цифр (знаков в ее алфавите) и определяет, во сколько раз различаются значения цифр соседних разрядов числа. В позиционных системах счисления количественное значение цифры зависит от ее позиции в числе.


Позиционные системы счисления
Система счисления Основание Алфавит цифр
Десятичная 10 0, 1,2,3,4,5,6,7,8,9
Двоичная 2 0, 1
Восьмеричная 8 0, 1,2,3,4,5,6,7
Шестнадцатеричная 16 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, А (10),В (11), C(12),D(13),E(14),F(15)

Позиция цифры в числе называется разрядом. Разряд числа возрастает справа налево, от младших разрядов к старшим. Ниже приведён пример записи десятичного числа: справа приведена краткая форма записи, а слева – полная:

555,5510 = 5•102 + 5•101 + 5•10°+ 5•10-1 + 5•10-2

Для двоичной системы:

101,012 =1•22 + 0•21 + 1•20 + 0•2-1 + 1•2-2

В восьмеричной системе основание равно восьми (q= 8), тогда записанное в краткой форме восьмеричное число А8= 673,28 в полной форме будет иметь вид:

А8 = 6•82 + 7•81 + 3•80 + 2•8-1.

В шестнадцатеричной системе основание равно шестнадцати (q = 16), тогда записанное в краткой форме шестнадцатеричное число А16 = 8A,F16 в полной форме будет иметь вид:
А16 = 8•161 + А•160 + F•16-1.

Если выразить шестнадцатеричные цифры через их десятичные значения (А = 10, F = 15), то запись числа примет вид:

А16 = 8•16 + 10•160 + 15•16-1.

Перевод чисел в десятичную систему счисления

Преобразование чисел, представленных в двоичной, восьмеричной и шестнадцатеричной системах счисления, в десятичную выполнить довольно легко. Для этого необходимо записать число в полной форме и вычислить его значение. Возьмем любое двоичное число, например 10,112. Запишем его в полной форме и произведем вычисления:

10,112 = 1•21 + 0•20 + 1•2-1 + 1•2-2 = 1•2 + 0•1 + 1•1/2 + 1•1/4 = 2,7510

Возьмем любое восьмеричное число, например, 67,58. Запишем его в полной форме и произведем вычисления:

67,58 = 6•81 + 7•80 + 5•8-1 = 6•8 + 7•1 + 5•1/8 = 55,62510

Возьмем любое шестнадцатеричное число, например, 19F16. Запишем его в полной форме (при этом необходимо помнить, что шестнадцатеричная цифра F соответствует десятичному числу 15) и произведем вычисления:

19F16 = 1•162 + 9•161 + F•160 = 1•256 + 9•16 + 15•1 = 41510

Перевод чисел из десятичной системы в двоичную, восьмеричную и шестнадцатиричную

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

Алгоритм перевода целого десятичного числа в двоичное будет следующим:
1. Последовательно выполнять деление исходного целого десятичного числа и получаемых целых частных на основание системы (на 2) до тех пор, пока не получим частное меньше делителя, т.е. меньше 2.
2. Получить искомое двоичное число, для чего записать полученные остатки в обратной последовательности. В качестве примера рассмотрим перевод десятичного числа 19 в двоичную систему, записывая результаты в таблицу:


Перевода целого десятичного числа в двоичное

В результате получаем двоичное число:

А2 = a4a3a2a1a0 = 100112.

Алгоритм перевода десятичной дроби в двоичную будет следующим:
1. Последовательно выполнять умножение исходной десятичной дроби и получаемых дробей на основание системы (на 2) до тех пор, пока не получим нулевую дробную часть или не будет достигнута требуемая точность вычислений.
2. Получить искомую двоичную дробь, записав полученные целые части произведения в прямой последовательности. В качестве примера рассмотрим перевод десятичной дроби 0,75 в двоичную систему, записывая результаты в таблицу:


Перевод десятичной дроби в двоичную

В результате получаем двоичную дробь:

А2 = 0,а-1a-2 = 0,112.

Рассмотрим алгоритм перевода целых чисел на примере перевода целого десятичного числа 424 в шестнадцатеричную систему, т.е. из системы счисления с основанием р = 10 в систему счисления с основанием q = 16. В процессе выполнения алгоритма необходимо обратить внимание, что все действия необходимо выполнять в исходной системе счисления (в данном случае десятичной), а полученные остатки записать цифрами новой системы счисления (в данном случае шестнадцатеричной).

Перевода целого десятичного числа в шестнадцатеричное

В результате получаем шестнадцатеричное число:

А16 = а2a1a0 = 1А816.

Рассмотрим теперь алгоритм перевода дробных чисел на примере перевода десятичной дроби 0,40625 в восьмеричную систему, т.е. из системы счисления с основанием р = 10 в систему счисления с основанием q= 8. В процессе выполнения алгоритма необходимо обратить внимание, что все действия необходимо выполнять в исходной системе счисления (в данном случае десятичной), а полученные остатки записать цифрами новой системы счисления (в данном случае восьмеричной).

Перевод десятичной дроби в восьмеричную

В результате получаем восьмеричную дробь:

А8 = а-1а-2 = 0,328

Перевод чисел, содержащих и целую и дробную часть, производится в два этапа. Отдельно переводится по соответствующему алгоритму целая часть и отдельно – дробная. В итоговой записи полученного числа целая часть от дробной отделяется запятой.

Перевод чисел из двоичной системы счисления в восьмеричную и шестнадцатиричную и обратно

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

Переведем таким способом двоичное число 1010012 в восьмеричное:

101 0012 => 1•22+0•21+1•200•22+0•21+1•20 => 518.

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

Двоичные триады000001010 011100101110111
Восьмиричные цифры012 34567

Для перевода дробной части числа из восьмеричной системы в двоичную, необходимо также выделить в дробной части триады, только слева направо от запятой. Если справа будет нулей до триады не хватать, то их надо дописать, а затем каждую триаду заменить восьмеричным эквивалентом.

Для перевода целого двоичного числа в шестнадцатеричное его нужно разбить на группы по четыре цифры (тетрады), начиная справа, и, если в последней левой группе окажется меньше разрядов, дополнить ее слева нулями. Для перевода дробного двоичного числа в шестнадцатеричное необходимо разбить его на тетрады слева направо и, если в последней правой группе окажется меньше, чем четыре разряда, то необходимо ее дополнить справа нулями. Процедура перевода такая же, как и для восьмеричной системы, только каждая шестнадцатеричная цифра представляется 4-мя двоичными, например: 1 – 0001; 3 – 0011; 9 – 1001; A – 1010; D – 1101; F – 1111

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

Арифметические операции в позиционных системах счисления

Арифметические операции во всех позиционных системах счисления выполняются по одним и тем же хорошо известным вам правилам.

Сложение

Рассмотрим сложение чисел в двоичной системе счисления. В его основе лежит таблица сложения одноразрядных двоичных чисел:


0 + 0 =   0
0 + 1 =   0
1 + 0 =   1
1 + 1 = 10

Важно обратить внимание на то, что при сложении двух единиц происходит переполнение разряда и производится перенос в старший разряд. Переполнение разряда наступает тогда, когда значение числа в нем становится равным или большим основания. Для двоичной системы счисления, это число равно двум. Сложение многоразрядных двоичных чисел происходит в соответствии с вышеприведенной таблицей сложения с учетом возможных переносов из младших разрядов в старшие. В качестве примера сложим в столбик двоичные числа 1102 и 112.

Сложение двоичных чисел

Проверим правильность вычислений сложением в десятичной системе счисления. Переведем двоичные числа в десятичную систему счисления и затем их сложим.
1102 = 122 + 121 + 020 = 610
112 = 121 + 120 = 310
610 + 310 = 910


Теперь переведем результат двоичного сложения в десятичное число.
10012 = 1•23 + 0•22 + 0•21 + 1•20 = 910


Сравним результаты, сложение выполнено правильно.

Вычитание

Рассмотрим вычитание двоичных чисел. В его основе лежит таблица вычитания одноразрядных двоичных чисел. При вычитании из меньшего числа (0) большего (1) производится заем из старшего разряда. В таблице заём обозначен 1 с чертой.

Вычитание двоичных чисел

Вычитание многоразрядных двоичных чисел происходит в соответствии с вышеприведенной таблицей вычитания с учетом возможных заемов в старших разрядах. В качестве примера произведем вычитание двоичных чисел 1102 и 112.

Вычитание двоичных чисел

Умножение

В основе умножения лежит таблица:

Умножение двоичных чисел

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

Пример умножения двоичных чисел

Деление

Операция деления выполняется по алгоритму, подобному алгоритму выполнения операции деления в десятичной системе счисления. В качестве примера произведем деление двоичного числа 1102 на 112.

Пример деления в двоичной системе

Арифметические операции в восьмеричной и шестнадцатеричной системах счисления

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

Арифметические операции в восьмеричной и шестнадцатеричной

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

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

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

Из этого следует два вывода:

Данные и команды в памяти компьютера и в регистрах процессора представляются в виде двоичных последовательностей различной структуры и длины.

Логический элемент компьютера – это часть электронной логичеcкой схемы, которая реализует элементарную логическую функцию.

Логическими элементами компьютеров являются электронные схемы И, ИЛИ, НЕ, И-НЕ, ИЛИ-НЕ и другие (называемые также вентилями), а также триггер.

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

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

Работу логических элементов описывают с помощью таблиц истинности. Таблица истинности это табличное представление логической схемы (операции), в котором перечислены все возможные сочетания значений истинности входных сигналов (операндов) вместе со значением истинности выходного сигнала (результата операции) для каждого из этих сочетаний.

С х е м а И

Схема И реализует конъюнкцию двух или более логических значений. Условное обозначение на структурных схемах схемы И с двумя входами и её таблица истинности представлены ниже.

Логическая схема И

x y xЧy
0 0 0
0 1 0
1 0 0
1 1 1

Единица на выходе схемы И будет тогда и только тогда, когда на всех входах будут единицы. Когда хотя бы на одном входе будет ноль, на выходе также будет ноль. Операция конъюнкции на функциональных схемах обозначается знаком "&" (читается как "амперсэнд"), являющимся сокращенной записью английского слова and.

С х е м а ИЛИ

Схема ИЛИ реализует дизъюнкцию двух или более логических значений. Условное обозначение на структурных схемах схемы ИЛИ с двумя входами и её таблица истинности представлены ниже.

Логическая схема ИЛИ

x y x v y
0 0 0
0 1 1
1 0 1
1 1 1

Значение дизъюнкции равно единице, если сумма значений операндов больше или равна 1. Когда хотя бы на одном входе схемы ИЛИ будет единица, на её выходе также будет единица. Связь между выходом z этой схемы и входами x и y описывается соотношением: z = x v y (читается как " x или y").

С х е м а НЕ

Схема НЕ (инвертор) реализует операцию отрицания. Условное обозначение схемы НЕ и её таблица истинности представлены ниже.

Логическая схема НЕ

x
0 1
1 0

Если на входе схемы 0, то на выходе 1. Когда на входе 1, на выходе 0.

С х е м а И – НЕ

Схема И-НЕ состоит из элемента И и инвертора и осуществляет отрицание результата схемы И. Условное обозначение схемы И-НЕ и её таблица истинности представлены ниже.

Логическая схема И-НЕ

x y
0 0 1
0 1 1
1 0 1
1 1 0

С х е м а ИЛИ – НЕ

Схема ИЛИ-НЕ состоит из элемента ИЛИ и инвертора и осуществляет отрицание результата схемы ИЛИ. Условное обозначение схемы ИЛИ-НЕ и её таблица истинности представлены ниже.

Логическая схема ИЛИ-НЕ

x y
0 0 1
0 1 0
1 0 0
1 1 0

Триггер

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

Термин триггер происходит от английского слова trigger – защёлка, спусковой крючок. Для обозначения этой схемы в английском языке чаще употребляется термин flip-flop, что в переводе означает "хлопанье". Это звукоподражательное название электронной схемы указывает на её способность почти мгновенно переходить ("перебрасываться") из одного электрического состояния в другое и наоборот.

Самый распространённый тип триггера – так называемый RS-триггер (S и R, соответственно, от английских set – установка, и reset – сброс). Условное обозначение триггера приводится ниже. Он имеет два симметричных входа S и R и два симметричных выхода. На каждый из двух входов S и R могут подаваться входные сигналы в виде кратковременных импульсов. Наличие импульса на входе будем считать единицей, а его отсутствие – нулем.

Обозначение триггера

Ниже показана реализация триггера с помощью вентилей ИЛИ-НЕ и соответствующая таблица истинности.

Триггер

S R Q
0 0 запрещено
0 1 1 0
1 0 0 1
1 1 хранение бита

Поскольку один триггер может запомнить только один разряд двоичного кода, то для запоминания байта нужно 8 триггеров, для запоминания килобайта, соответственно, 8 • 210 = 8192 триггеров. Современные микросхемы памяти содержат миллионы триггеров.

Сумматор

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

Многоразрядный двоичный сумматор, предназначенный для сложения многоразрядных двоичных чисел, представляет собой комбинацию одноразрядных сумматоров. Условное обозначение одноразрядного сумматора приводится ниже.

Обозначение одноразрядного сумматора

При сложении чисел A и B в одном i-ом разряде приходится иметь дело с тремя цифрами:

1. цифра ai первого слагаемого;
2. цифра bi второго слагаемого;
3. перенос pi-1 из младшего разряда.

В результате сложения получаются две цифры:

1. цифра ci для суммы;
2. перенос p iиз данного разряда в старший.

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


Входы Выходы
Первое слагаемое Второе слагаемое Перенос Сумма Перенос
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1

Если требуется складывать двоичные слова длиной два и более бит, то можно использовать последовательное соединение таких сумматоров, причём для двух соседних сумматоров выход переноса одного сумматора является входом для другого.

Например, схема вычисления суммы C = (с3 c2 c1 c0) двух двоичных трехразрядных чисел A = (a2 a1 a0) и B = (b2 b1 b0) может иметь вид:

Схема из 3-х одноразрядных сумматоров




Обновить страницу