Добавлен: 10.02.2019
Просмотров: 3440
Скачиваний: 44
Министерство образования Российской Федерации
Санкт-Петербургский государственный
политехнический университет
ПСКОВСКИЙ ПОЛИТЕХНИЧЕСКИЙ ИНСТИТУТ
С.Н. Лехин
СХЕМОТЕХНИКА ЭВМ
ТЕОРЕТИЧЕСКИЙ КУРС
часть 2
Учебное пособие
Санкт-Петербург
2004
УДК 681.3.06
Рекомендовано к изданию
Научно-методическим советом
Псковского политехнического института СПбГПУ
Рецензенты:
-Веселков ЕЛ., доцент кафедры ЭСА ППИ СПбГПУ
Ильин С.Н., зам. генерального директора АО «СКБ вычислительной техники»
Схемотехника ЭВМ: Теоретический курс (часть 2). Учебное пособие. Лехин С.Н.
-СПб/Псков, Изд. СПбГПУ, 2004 – 160 с.:ил.
Учебное пособие (часть 2) по дисциплине «Схемотехника ЭВМ» (СД. 03) предназначено для студентов Псковского политехнического института специальности 220100 «Электронно-вычислительные машины, комплексы, системы и сети» очной, очно-заочной и сокращенной форм обучения.
В пособии приведены основные положения логических основ цифровой техники, рассмотрены принципы функционирования цифровых узлов комбинационного типа, методы их синтеза, анализа, схемотехнической реализации, а также принципы построения формирователей и генераторов цифровых сигналов.
Учебное пособие может использоваться учащимися и студентами других специальностей и специализаций, интересующихся вопросами схемотехники узлов цифровых вычислительных машин.
© Псковский политехнический институт (филиал) Санкт-Петербургского
государственного политехнического
университета, 2004
© С.Н. Лехин
1. АРИФМЕТИЧЕСКИЕ И ЛОГИЧЕСКИЕ ОСНОВЫ ЦИФРОВОЙ ТЕХНИКИ
Для записей результатов количественных (числовых) измерений используются наборы символов, называемые цифрами. Способ, при котором числа отображаются комбинациями символов, называется системой счисления.
Одно и тоже число допускает различные варианты представления. Числовые данные отличаются от остальных тем, что с ними могут производиться арифметические операции (сложение, умножение и т. п.). От выбранного способа записи чисел, то есть от системы счисления, зависит как наглядность их представления, так и сложность выполнения процедур обработки.
Обычно количество символов (цифр) для записи чисел ограничено, поэтому для больших чисел цифры в его записи могут и будут повторяться. Если значение цифры не зависит от ее местоположения в записи, то данная система счисления называется непозиционной. Примером такой системы является римская, с помощью которой размечаются циферблаты часов.
Здесь используются так называемые римские цифры I, V, X, L и другие. Первая соответствует единице, вторая пятерке, третья десятке, а четвертая - сотне. То есть запись XXVII обозначает 10+10+5+1+1=27, запись XI соответствует одиннадцати и т. д. В принципе, применяя достаточное количество символов в этой системе можно записать любое число. Однако, в непозиционных системах счисления имеются определенные трудности при представлении больших чисел и, кроме того, существуют проблемы с выполнением арифметических операций.
Поэтому в цифровой технике используются позиционные системы счисления. Их особенность в том, что значение одной и той же цифры зависит от ее местоположения в записи числа, то есть от позиции, в которой она располагается. Например, запись 222 в десятичной системе счисления, где используются десять цифр от 0 до 9, означает, что данное число содержит две сотни, два десятка и две единицы. Позиция, которую занимает цифра, называют разрядом. Таким образом, в рассматриваемой записи имеются разряды сотен, десятков и единиц. Числовое значение разряда называется его весом.
То же число 222 можно представить и как 2·100+2·10+2·1, откуда следует, что веса разрядов отличаются в десять раз. Если отношение соседних весов одинаково и равно Р, то это число называется основанием системы счисления. Обычно в позиционных системах счисления значения весов определяются степенями ее основания и число 222 представляется как 2·10 2+2·10 1+2·10 0.
Номер разряда соответствует значению показателя степени, в которую требуется возвести основание системы счисления, чтобы получить величину его веса. Количество символов (цифр) для отображения чисел в позиционных системах счисления не может превышать величины основания, в противном случае возникает неоднозначность записи числа.
Веса системы счисления могут и не находиться в пропорциональных отношениях. В этом случае понятие основания не вводится, но запись произвольного числа xn-1 xn-2…x1x0 может быть представлена следующим образом
где xi – цифра i-того разряда, а Pi – его вес.
Если веса находятся в отношениях пропорциональных основанию Р, то аналогичное выражение будет выглядеть так
Аналогичным образом представляются и числа меньшие единицы, для чего используются отрицательные степени основания. К примеру, число 12,34 можно записать как
1·10 1+2·10 0+3·10 -1+4·10 -2.
Основание системы счисления может быть произвольным, но обычно оно выбирается из требований удобства выполнения действий над числовыми данными в конкретной ситуации. В частности, когда требуется обрабатывать данные в цифровых вычислительных машинах, целесообразным является использование двоичной системы счисления.
Это связано с тем, что в цифровой технике используются простейшие элементы, обладающие двумя устойчивыми состояниями, одному из которых можно приписать нулевое значение, а другому – единичное. В двоичной системе основание равно двум и для отображения чисел имеется лишь две цифры 0 и 1. Таким образом, цифровой логический элемент может представлять один разряд двоичного числа.
Любое целое число в такой системе может быть представлено в виде
Здесь веса разрядов равны соответствующим степеням двойки, то есть 1,2,4,8,16 и т.д.
При необходимости перевода числа из десятичной системы счисления в двоичную его требуется представить в виде суммы степеней основания, то есть двойки. Например: 21=16+4+1=24+22+20. Однако, с учетом того, что в записи числа должны присутствовать все разряды, полученное соотношение требуется дополнить недостающими степенями основания системы счисления. Чтобы результат в целом остался неизменным, эти разряды необходимо умножить на нуль, а остальные на единицу. В итоге запись числа 21 будет иметь вид 1·24+0·23+1·22+0·21+1·20, а само число в двоичной системе счисления запишется следующим образом 1 0 1 0 1.
21/2=10 ост.1 |
10/2=5 ост.0 |
5/2=2 ост.1 |
2/2=1 ост.0 |
1/2 ост.1 |
Осуществить преобразование двоичного кода в десятичный можно, воспользовавшись ранее приведенной формулой. Например, 100112=1·24+0·23+0·22+1·21+1·20 =16+2+1=1910.
Кроме двоичной и десятичной систем счисления достаточно часто используют восьмеричную и шестнадцатеричную. В первой для представления разрядов чисел применяют десятичные цифры от 0 до 7, а во второй требуется 16 символов для отображения цифр. В качестве первых десяти используют цифры 0,1,2···9, а остальные шесть обозначаются буквами A,B,C,D,E,F, которые соответствуют числам 10, 11, 12, 13, 14 и 15.
Правила перевода из одной системы счисления в другую аналогичны рассмотренным выше. Например:
1238=1·82+2·81+3·80=64+16+3=8310
AF516=10·162+15·161+5·160 =10·256+15·16+5=280510.
Так как основания восьмеричной и шестнадцатеричной систем счисления являются степенями двойки, то это существенно облегчает перевод чисел из этих систем в двоичную и обратно. Для перевода из восьмеричной системы в двоичную достаточно каждую цифру числа представить трехразрядным двоичным кодом (триадой) и полученные комбинации нулей и единиц выписать в ряд.
Например:1238=1 (12) 2 (0102) 3 (0112)=1 010 0112. При необходимости перевода из шестнадцатеричной системы в двоичную требуется проделать аналогичную процедуру, но преобразуя каждую цифру шестнадцатеричного кода в четырехразрядную комбинацию (тетраду) двоичного
AF516=A (10102) F (11112) 5 (01012) = 1010 1111 01012.
Также просто осуществляется и обратное преобразование, то есть трансформация из двоичного кода в восьмеричный и шестнадцатеричный. Для этого требуется двоичное число, начиная справа, разбить на триады либо тетрады и каждой из них поставить в соответствие значение цифры в соответствующем коде. Например:
101111001012 = 10 111 100 101= 27458
101111000102 = 101 1110 0010 = 5Е216
С преобразованием двоичного кода в десятичный и наоборот такой подход не может быть использован, так как отношение между основаниями этих систем счисления не кратно степени двойки.
Формализовать процедуру трансформации десятичного кода в код, аналогичный двоичному, можно преобразовывая каждую цифру десятичного числа в тетраду двоичного кода. Тогда трансформация, к примеру, числа 17510 будет выглядеть следующим образом 1→0001; 7→0111; 5→0101, а его запись примет вид 17510 = 0001 0111 0101.
Однако, это выражение будет существенно отличаться от представления числа 175 в двоичном коде, который выглядит следующим образом 17510 = 101011112 . Отличие возникает из-за того, что в предыдущем примере разряды в пределах каждой тетрады имеют двоичные веса, меняющиеся от единицы до восьми и, кроме того, каждая из них имеет и свой десятичный вес. – 1,10,100. При таком подходе образуется новая система счисления, которая в данном конкретном случае называется двоично-десятичной и относится к позиционным системам счисления с двойным взвешиванием.
В ряде случаев использование такой системы оказывается более удобным, чем двоичной из-за упрощения процедуры преобразования чисел. Однако, выполнение арифметических операций в такой и аналогичных системах счисления является более сложной процедурой, чем в обычных позиционных.
Как уже отмечалось, в позиционных системах счисления, веса разрядов в принципе могут быть произвольными. При этом одна и та же последовательность чисел от 0 до 9 в различных системах, имеющих только две цифры 0 и 1, будет кодироваться по-разному в зависимости от соотношения весов разрядов. В таблице приведены различные, используемые на практике способы кодирования десятичных цифр.
Дес. цифра |
Кодированное представление десятичной цифры |
|||||
Код 8-4-2-1 |
Код 2-4-2-1 |
Код 7-4-2-1 |
Код с избытком. 3 |
Код 2 из5 |
Код Грея |
|
0 |
0000 |
0000 |
0000 |
0011 |
11000 |
0000 |
1 |
0001 |
0001 |
0001 |
0100 |
01100 |
0001 |
2 |
0010 |
0010 |
0010 |
0101 |
00110 |
0011 |
3 |
0011 |
0011 |
0011 |
0110 |
00011 |
0010 |
4 |
0100 |
0100 |
0100 |
0111 |
10001 |
0110 |
5 |
0101 |
1011 |
0101 |
1000 |
10100 |
0111 |
6 |
0110 |
0110 |
0110 |
1001 |
01010 |
0101 |
7 |
0111 |
0111 |
1000 |
1010 |
00101 |
0100 |
8 |
1000 |
1110 |
1001 |
1011 |
10010 |
1100 |
9 |
1001 |
1111 |
1010 |
1100 |
01001 |
1101 |
В первом столбце представлены комбинации соответствующие коду 8-4-2-1. Название кода состоит из значений весовых коэффициентов соответствующих разрядов. Если веса имеют значения 2-4-2-1, то для ряда десятичных цифр кодовые комбинации будут выглядеть по иному. Код 7-4-2-1 интересен тем, что любая кодовая комбинация содержит не более двух единиц. Такое свойство кода полезно для выявления ошибок при передаче сигналов, так как, если в принятой тетраде окажется три единицы, это будет сигналом о возникновении ошибки вследствие того, что таких комбинаций в данном коде не существует.
Особенность кодов, представленных в трех последних столбцах таблицы в том, что они относятся к классу непозиционных или невзвешенных. В коде с избытком 3 сумма двоичных чисел в первой и последней строках, второй и предпоследней и т. д. всегда дает кодовую комбинацию 1 1 1 1. Сформировать этот код можно путем прибавления к соответствующей десятичной цифре тройки и преобразования полученного результата в двоичный код.
В коде 2 из 5 используются пятиразрядные комбинации нулей и единиц. Его особенность в том, что в любой кодовой комбинации содержится по две единицы.
Еще одна разновидность довольно часто применяемого кода – код Грея, который обладает тем свойством, что представления соседних чисел отличаются изменением состояния только одного из разрядов.
Все ранее рассмотренные способы кодирования основывались на предположении, что исходное число положительно. Однако, для удобства выполнения ряда арифметических операций в любой системе счисления можно ввести понятие отрицательных чисел, значения которых будут меньше нуля. В десятичной системе счисления для их записи используется знак - , а такое же по величине (по модулю) положительное число дополняется знаком + .
Если для представления чисел с целью обработки в цифровых вычислительных машинах используется двоичный код, то ввести аналогичные знаки не представляется возможным, так как любое число и символ должны быть выражены через комбинации нулей и единиц. Таким образом, и знак числа требуется отображать этими же символами.
При одном из подходов положительному знаку ставится в соответствие 0, а отрицательному 1 и знаковый разряд записывается левее самого старшего значащего. Таким образом, число +9 будет выглядеть как 0 1001, а -9 следующим образом 1 1001. Однако в этом случае требуется обязательно указывать, что старший разряд является знаковым, иначе первое число будет воспринято как 9, а второе как 25. В так называемом модифицированном коде под знак отводят два дополнительных разряда, положительный кодируется 00, а отрицательный 11.
Некоторые виды арифметических операций в цифровых вычислительных машинах удобнее производить, используя обратные и дополнительные двоичные коды чисел. Формально обратный код получается из двоичного (прямого) путем замены во всех разрядах нулей на единицы, а единиц на нули. Таким образом, если прямой двоичный код числа 9 выглядит как 1001, то обратный будет представлен комбинацией 0110.
Дополнительный код образуется путем арифметического прибавления единицы в младший разряд обратного кода числа. Отсюда следует, что дополнительный код 9 отобразится кодовой комбинацией 0111. Понятие дополнительного кода можно ввести для любой позиционной системы счисления. Он представляет собой число, дополняющее исходное до значения веса следующего по старшинству разряда системы счисления.
В рассмотренном примере для представления числа 9 используется четырехразрядная двоичная кодовая комбинация. Вес следующего, более старшего разряда в двоичной системе будет 24= 16. То есть дополнительным кодом девятки будет число 16-9=7, двоичный код которого имеет вид 0111. Если речь вести о десятичной системе счисления, то дополнительный код 9 должен определяться как 102 - 9=91.