Главная страница

1.1. Лекция. От нуля до единицы 1План игр 2Искусство управления сложностью


Скачать 2.34 Mb.
НазваниеОт нуля до единицы 1План игр 2Искусство управления сложностью
Дата13.10.2022
Размер2.34 Mb.
Формат файлаpdf
Имя файла1.1. Лекция.pdf
ТипКраткий обзор
#732237
страница2 из 5
1   2   3   4   5

Глава 1
От нуля до единицы
17
Рис. 1.2
Кремнёвый ружейный замок
(Рисунок из Euroarms Italia
www.euroarms.net
© 2006 г.)

Глава 1
От нуля до единицы
18
1.3
ЦИФРОВАЯ АБСТРАКЦИЯ
Чарльз Бэббидж, 1791–1871
Чарльз Бэббидж родился в 1791 году. Закончил Кембриджский университет и женился на Джорджиане Витмур. Он изобрел
Аналитическую Машину – первый в мире механический компьютер.
Чарльз Бэббидж также изобрел предохранительную решетку для локомотивов, спидометр и универсальный почтовый тариф. Ученый также очень интересовался отмычками для замков и почему-то ненавидел уличных музыкантов. (Портрет любезно предоставлен
Fourmilab Швейцария,
www.fourmilab.ch
).
Большинство физических величин изменяется непрерывно. Например, напряжение в электрическом проводе, частота колебаний или распределение массы – все это параметры, изменяющиеся непрерывно.
Цифровые системы, с другой стороны, представляют информацию

Глава 1
От нуля до единицы
19
в виде дискретно меняющихся переменных с конечным числом строго определённых значений.
Одной из наиболее ранних цифровых систем стала Аналитическая Машина
Чарльза
Бэббиджа, которая использовала переменные с десятью дискретными значениями. Начиная с
1834 года и до 1871 года
1
Бэббидж разрабатывал и пытался построить этот механический компьютер. Шестеренки
Аналитической
Машины могли находится в одном из десяти фиксированных положений, а каждое такое положение было промаркировано от 0 до 9 подобно механическому счетчику пробега автомобиля.
Рис. 1.3
показывает, как выглядел прототип
Аналитической Машины. Каждый ряд шестеренок такой машины обрабатывал одну цифру. В своем механическом
1
А большинству из нас кажется, что обучение в университете – это так долго!
Рис. 1.3
Аналитическая машина
Беббиджа в год его смерти (1871)
(Изображение любезно предоставлено Музеем Науки и общества)

Глава 1
От нуля до единицы
20
компьютере Бэббидж использовал 25 рядов шестеренок таким образом, чтобы машина обеспечивала вычисления с точностью до 25-го знака.
В отличие от машины Бэббиджа большинство электронных компьютеров использует двоичный (бинарный) код. В случае двоичного кода высокое напряжение – это единица, а низкое напряжение – нуль, поскольку гораздо легче оперировать двумя уровнями напряжения, чем десятью.
Объем информации D, передаваемый одной дискретной переменной, которая может находиться в N различных состояниях, измеряется в единицах, называемых битами, и вычисляется по следующей формуле:
D = log
2
N bits
(1.1)
Двоичная переменная передает log
2 2 = 1 – один бит информации.
Теперь вам, вероятно, понятно, почему единица информации называется битом. Bit (бит) – это сокращение от английского binary digit, что дословно переводится как двоичный разряд. Каждая шестеренка в машине Бэббиджа содержит log
2 10 = 3,322 бит информации, поскольку она может находиться в одном из 2 3,322
= 10 уникальных положений.
Теоретически непрерывный сигнал может передавать бесконечное количество информации, поскольку может принимать неограниченное

Глава 1
От нуля до единицы
21
число значений. На практике, однако, шум и ошибки измерения ограничивают информацию, передаваемую большинством непрерывных сигналов, диапазоном от 10 бит до 16 бит. Если же измерение уровня сигнала должно быть произведено очень быстро, то объём передаваемой информации будет еще ниже (в случае 10 бит, например, это будет только 8 бит).
Предмет этой книги – цифровые схемы, использующие двоичные переменные нуль и единицу. Джордж Буль разработал систему логики, использующую двоичные переменные, и эту систему сегодня называют его именем – Булева логика. Булевы переменные могут принимать значения ИСТИНА (TRUE) или ЛОЖЬ (FALSE). В электронных компьютерах положительное напряжение обычно представляет единицу, а нулевое напряжение представляет нуль. В этой книге мы будем использовать понятия единица (1), ИСТИНА (TRUE) и ВЫСОКОЕ
(HIGH) как синонимы. Аналогичным образом мы будем использовать нуль (0), ЛОЖЬ (FALSE), и НИЗКОЕ (LOW) как взаимозаменяемые термины.

Глава 1
От нуля до единицы
22
Джордж Буль,1815–1864
Джордж Буль родился в семье небогатого ремесленника. Родители
Джорджа не могли оплатить его формального образования, поэтому он осваивал математику самоучкой. Несмотря на это, Булю удалось стать преподавателем Королевского колледжа в Ирландии. В 1854 году
Джордж Буль написал свою работу Исследование законов мышления, которая впервые ввела в научный оборот двоичные переменные, а также три основных логических оператора И, ИЛИ, НЕ (AND, OR, NOT).
(Портрет любезно предоставлен
Американским
Физическим
Институтом).
Преимущества цифровой абстракции заключаются в том, что разработчик цифровой системы может сосредоточиться исключительно на единицах и нулях, полностью игнорируя, каким образом булевы

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

Глава 1
От нуля до единицы
24
1.4
СИСТЕМЫ СЧИСЛЕНИЯ
Мы все привыкли работать с десятичными числами. Однако, в цифровых системах, построенных на единицах и нулях, использование двоичных или шестнадцатеричных чисел зачастую более удобно. В данном разделе мы рассмотрим системы счисления, использованные в этой книге.
1.4.1
Десятичная система счисления
Еще в начальной школе нас всех научили считать и выполнять различные арифметические операции в десятичной (decimal) системе счисления. Такая система использует десять арабских цифр: 0, 1, 2, 3, 4,
5, 6, 7, 8, 9 – столько же, сколько у нас пальцев на руках. Числа больше 9 записываются в виде строки цифр. Причем, цифра, находящаяся в каждой последующей позиции такой строки, начиная с крайней правой цифры, имеет «вес», в десять раз превышающий «вес» цифры, находящейся в предыдущей позиции. Именно поэтому десятичную систему счисления называют системой по основанию
(base) 10. Справаналево «вес» каждой позиции увеличивается следующим образом: 1, 10, 100, 1000 и т.д. Позицию, которую цифра занимает в строке десятичного числа, называют разрядом или декадой.

Глава 1
От нуля до единицы
25
Чтобы избежать недоразумений при одновременной работе с более чем одной системой счисления, основание системы обычно указывается путем добавления цифры позади и чуть ниже основного числа: 9742 10
Рис. 1.4
показывает, для примера, как десятичное число
9742 10
может быть записано в виде суммы цифр, составляющих это число, умноженных на «вес» разряда, соответствующего каждой конкретной цифре.
N-разрядное десятичное число может представлять одну из 10
N
цифровых комбинаций: 0, 1, 2, 3, … 10
N
− 1. Это называется диапазоном N-разрядного числа. Десятичное число, состоящее из трех цифр (разрядов), например, представляет одну из 1000 возможных цифровых комбинаций в диапазоне от 0 до 999.
1.4.2
Двоичная система счисления
Одиночный бит может принимать одно из двух значений, 0 или 1.
Несколько битов, соединенных в одной строке, образуют двоичное
(binary) число. Каждая последующая позиция в двоичной строке имеет вдвое больший «вес», чем предыдущая позиция, так что двоичная система счисления – это система по основанию 2. В двоичном числе
«вес» каждой позиции увеличивается (так же, как и в десятичном – справа налево) следующим образом: 1, 2, 4, 8, 16, 32, 64, 128, 256, 512,
1024, 2048, 4096, 8192, 16384, 32768, 65536 и т.д. Работая с двоичными

Глава 1
От нуля до единицы
26
числами, очень полезно для сохранения времени запомнить значения степеней двойки до 2 16
Рис. 1.4
Представление десятичного числа
Произвольное N-разрядное двоичное число может представлять одну из 2
N
цифровых комбинаций: 0, 1, 2, 3, … 2
N
− 1. В
Табл. 1.1
собраны
1-битные, 2-битные, 3-битные, и 4-битные двоичные числа и их десятичные эквиваленты.
Пример 1.1
ПРЕОБРАЗОВАНИЕ ЧИСЕЛ ИЗ ДВОИЧНОЙ СИСТЕМЫ
СЧИСЛЕНИЯ В ДЕСЯТИЧНУЮ
Преобразовать двоичное число 10110 2
в десятичное.
Решение:
Нужные преобразования представлены на
Рис. 1.5

Глава 1
От нуля до единицы
27
Табл. 1.1
Таблица двоичных чисел и их десятичный эквивалент
1-битные
двоичные
числа
2-битные
двоичные
числа
3-битные
двоичные
числа
4-битные
двоичные
числа
Десятичные
эквиваленты
0 00 000 0000 0
1 01 001 0001 1
10 010 0010 2
11 011 0011 3
100 0100 4
101 0101 5
110 0110 6
111 0111 7
1000 8
1001 9
1010 10 1011 11 1100 12 1101 13 1110 14 1111 15

Глава 1
От нуля до единицы
28
Рис. 1.5
Преобразование двоичного числа в десятичное число
Пример 1.2
ПРЕОБРАЗОВАНИЕ ЧИСЕЛ ИЗ ДЕСЯТИЧНОЙ СИСТЕМЫ
СЧИСЛЕНИЯ В ДВОИЧНУЮ
Преобразовать десятичное число 84 10
в двоичное.
Решение:
Определите, что должно стоять в каждой позиции двоичного результата: 1 или 0. Вы можете делать это, начиная с левой или правой позиции.
Если начать слева, найдите наибольшую степень 2, меньше или равную заданному числу (в Примере такая степень – это 64). 84 > 64, поэтому ставим 1 в позиции, соответствующей 64. Остается 84–64 = 20, 20 < 32, так что в позиции 32 надо поставить 0, 20 > 16, поэтому в позиции 16 ставим 1. Остается 20–16 = 4.
4 < 8, поэтому 0 в позиции 8. 4 ≥ 4 – ставим 1 в позицию 4. 4–4 = 0, поэтому будут
0 в позициях 2 и 1. Собрав все вместе, получаем 84 10
= 1010100 2
Если начать справа, будем последовательно делить исходное число на 2.
Остаток идет в очередную позицию. 84/2 = 42, поэтому 0 в самой правой позиции.
42/2 = 21, 0 во вторую позицию. 21/2 = 10, остаток 1 идет в позицию, соответствующую 4. 10/2 = 5, поэтому 0 в позицию, соответствующую 8. 5/2 = 2,

Глава 1
От нуля до единицы
29
остаток 1 в позицию 16. 2/2 = 1, 0 в 32 позицию. Наконец, 1/2 = 0 с остатком 1, который идет в позицию 64. Снова, 84 10
= 1010100 2
1.4.3
Шестнадцатеричная система счисления
Использование длинных двоичных чисел для записи и выполнения математических расчетов на бумаге утомительно и чревато ошибками.
Однако длинное двоичное число можно разбить на группы по четыре бита, каждая из которых представляет одну из 2 4
= 16 цифровых комбинаций. Именно поэтому зачастую бывает удобнее использовать для работы систему счисления по основанию 16, называемую
шестнадцатеричной (hexadecimal). Для записи шестнадцатеричных чисел используются цифры от 0 до 9 и буквы от A до F, как показано в
Табл. 1.2
В шестнадцатеричном числе «вес» каждой позиции меняется следующим образом: 1, 16, 16 2
(или 256), 16 3
(или 4096) и т.д.
Интересно, что термин hexadecimal (шестнадцатеричный) введен в научный обиход корпорацией IBM в 1963 году и является комбинацией греческого слова hexi (шесть) и латинского decem (десять). Правильнее было бы использовать латинское же слово sexa (шесть), но термин sexadecimal воспринимался бы несколько неоднозначно.

Глава 1
От нуля до единицы
30
Табл. 1.2
Шестнадцатеричная система счисления
Шестнадцатеричная цифра Десятичный эквивалент
Двоичный эквивалент
0 0
0000 1
1 0001 2
2 0010 3
3 0011 4
4 0100 5
5 0101 6
6 0110 7
7 0111 8
8 1000 9
9 1001
A
10 1010
B
11 1011
C
12 1100
D
13 1101
E
14 1110
F
15 1111

Глава 1
От нуля до единицы
31
Пример 1.3
ПРЕОБРАЗОВАНИЕ ШЕСТНАДЦАТЕРИЧНОГО ЧИСЛА
В ДВОИЧНОЕ И ДЕСЯТИЧНОЕ
Преобразовать шестнадцатеричное число 2ЕD
16
в двоичное и десятичное.
Решение:
Преобразование шестнадцатеричного числа в двоичное и обратно – очень простое, так как каждая шестнадцатеричная цифра прямо соответствует
4-разрядному двоичному числу. 2 16
= 0010 2
, Е
16
= 1110 2
и D
16
= 1101 2
, так что
2ED
16
= 001011101101 2
Преобразование в десятичную систему счисления требует арифметики, показанной на
Рис. 1.6
Рис. 1.6
Преобразование шестнадцатеричного числа в десятичное число
Пример 1.4
ПРЕОБРАЗОВАНИЕ ДВОИЧНОГО ЧИСЛА
В ШЕСТНАДЦАТЕРИЧНОЕ
Преобразовать двоичное число 1111010 2
в шестнадцатеричное.
Решение.
Повторим еще раз, это просто. Начинаем справа. 4 наименее значимых бита 1010 2
= А
16
. Следующие биты 111 2
= 7 16
. Отсюда 1111010 2
= 7А
16

Глава 1
От нуля до единицы
32
Пример 1.5
ПРЕОБРАЗОВАНИЕ ДЕСЯТИЧНОГО ЧИСЛА
В ШЕСТАНДЦАТЕРИЧНОЕ И ДВОИЧНОЕ
Преобразовать десятичное число 333 10
в шестнадцатеричное и двоичное.
Решение.
Как и в случае преобразования десятичного числа в двоичное, можно начать как слева, так и справа.
Если начать слева, найдите наибольшую степень шестнадцати, меньшую или равную заданному числу (в нашем случае это 16 2
= 256). Число 256 содержится в числе 333 только один раз, поэтому в позицию с «весом» 256 мы записываем единицу. Остается число 333–256=77. Число 16 содержится в числе 77 четыре раза, поэтому в позицию с «весом» 16 записываем четверку.
Остается 77 – 16 × 4 = 13. 13 10
= D
16
, поэтому в позицию с «весом» 1 записываем цифру D. Итак, 333 10
= 14D
16
, это число легко преобразовать в двоичное, как мы показали в примере 1.3: 14D
16
= 101001101 2.
Если начинать справа, будем повторять деление на 16. Каждый раз остаток идет в очередную колонку. 333/16 = 20 с остатком 13 10
= D
16
, который идет в самую правую позицию. 20/16 = 1 с остатком 4, который идет в позицию с «весом» 16.
1/16 = 0 с остатком 1, который идет в позицию с «весом» 256. В результате опятьполучаем 14D
16

Глава 1
От нуля до единицы
33
1.4.4
Байт, полубайт и «весь этот джаз»
Группа из восьми битов называется байт (byte). Байт представляет
2 8
= 256 цифровых комбинаций. Размер модулей, сохраненных в памяти компьютера, обычно измеряется именно в байтах, а не битах.
Группа из четырех битов (половина байта) называется полубайт
(nibble). Полубайт представляет 2 4
= 16 цифровых комбинаций. Одна шестнадцатеричная цифра занимает один полубайт, а две шестнадцатеричные цифры – один байт. В настоящее время полубайты уже не находят широкого применения, однако этот термин все же стоит знать, да и звучит он забавно (в английском языке nibble означает откусывать что-либо маленькими кусочками).
Микропроцессор обрабатывает данные не целиком, а небольшими блоками, называемыми словами. Размер слова (word) не является величиной, установленной раз и навсегда, а определяется архитектурой каждого конкретного микропроцессора. На момент написания этой главы
(в 2012 году) абсолютное большинство компьютеров использовало
64-битные процессоры. Такие процессоры обрабатывают информацию блоками (словами) длиной 64 бита. А еще не так давно верхом совершенства считались компьютеры, обрабатывающие информацию словами длиной 32 бита. Интересно, что и сегодня наиболее простые микропроцессоры и особенно те, что управляют работой таких бытовых

Глава 1
От нуля до единицы
34
устройств, как, например, тостеры или микроволновые печи, используют слова длиной 16 бит или даже 8 бит.
В рамках одной группы битов конечный бит, находящийся на одном конце этой группы (обычно правом), называется наименее значимым
битом (least significant bit, lsb), или просто младшим битом, а бит на другом конце группы называется наиболее значимым битом (most
significant bit, msb), или старшим битом.
Рис. 1.7 (a)
демонстрирует наименее и наиболее значимые биты в случае 6-битного двоичного числа. Аналогичным образом, внутри одного слова можно выделить наименее значимый байт (least significant byte, LSB), или младший байт, и наиболее значимый байт (most significant byte, MSB), или старший байт.
Рис. 1.7 (b)
показывает, как это делается в случае 4-байтного числа, записанного восемью шестнадцатеричными цифрами.
Рис. 1.7
Наименее и наиболее значимые биты, и байты

Глава 1
От нуля до единицы
35
В силу удачного совпадения 2 10
= 1024 ≈ 10 3
. Этот факт позволяет нам использовать приставку кило (греческое название тысячи) для сокращенного обозначения 2 10
. Например, 2 10
байт – это один килобайт
(1 КБ). Подобным же образом, мега (греческое название миллиона) обозначает 2 20
≈ 10 6
, а Гига (греческое название миллиарда) указывает на 2 30
≈ 10 9
. Зная, что 2 10
≈ 1 тысяча, 2 20
≈ 1 миллион, 2 30
≈ 1 миллиард и помня значения степеней двойки до 2 9
включительно, будет легко приблизительно рассчитать в уме любую другую степень двух.
Если подходить абсолютно строго к терминологии, то микропроцессором называется такой процессор, все элементы которого размещается на одной микросхеме. До 70-х годов ХХ века полупроводниковая технология не позволяла разместить процессор целиком на одной микросхеме, поэтому процессоры мощных компьютеров представляли собой набор плат с довольно большим количеством различных микросхем на них. Компания Intel в 1971 году представила первый 4-битный микропроцессор, получивший в качестве названия номер 4004. В наши дни даже самые передовые суперкомпьютеры построены на микропроцессорах, поэтому в этой книге мы будем считать «микропроцессор» и «процессор» тождественными понятиями и использовать оба эти термина как синонимы.

Глава 1
От нуля до единицы
36
Пример 1.6
ОЦЕНКА СТЕПЕНЕЙ ДВОЙКИ
Найдите приблизительное значение 2 24
без использования калькулятора.
Решение.
Представьте экспоненту как число кратное десяти и остаток.
2 24
= 2 20
× 2 4
, 2 20
≈ 1 миллион. 2 4
= 16. Итак, 2 24
≈ 16 миллионов. На самом деле
2 24
= 16 777 216, но 16 миллионов – достаточно хорошее приближение для маркетинговых целей.
Так же как 1024 байта называют килобайтом (КБ), 1024 бита называют
килобитом (Кб или кбит). Аналогичным образом, МБ, Мб, ГБ и Гб используются для сокращенного обозначения миллиона и миллиарда байтов и битов. Размеры элементов памяти обычно измеряются в байтах. А вот скорость передачи данных измеряется в битах в секунду.
Максимальная скорость передачи данных телефонным модемом, например, составляет 56 килобит в секунду.
1.4.5
Сложение двоичных чисел
Сложение двоичных чисел производится так же, как и сложение десятичных, с той лишь разницей, что двоичное сложение выполнить гораздо проще (см.
Рис. 1.8
). Как и при сложении десятичных чисел, если сумма двух чисел превышает значение, помещающееся в один разряд, мы переносим 1 в следующий разряд. На
Рис. 1.8
для сравнения показано сложение десятичных и двоичных чисел. В крайней

Глава 1
От нуля до единицы
37
правой колонке на
Рис. 1.8 (a)
складываются числа 7 и 9. Сумма 7 + 9 =
16, что превышает 9, а значит, больше того, что может вместить один десятичный разряд. Поэтому мы записываем в первый разряд 6
(первая колонка), и переносим 10 в следующий разряд (вторая колонка) как 1. Аналогичным же образом при сложении двоичных чисел, если сумма двух чисел превышает 1, мы переносим 2 в следующий разряд как 1. В правой колонке на
Рис. 1.8 (b)
, например, сумма 1 + 1 = 2 10
=
10 2
, что не может уместиться в одном двоичном разряде. Поэтому мы записываем 0 в первом разряде (первая колонка) и 1 в следующем разряде (вторая колонка). Во второй колонке опять складываются 1 и 1 и еще добавляется 1, перенесенная сюда после сложения чисел в первой колонке. Сумма 1 + 1 + 1 = 3 10
= 11 2
. Мы записываем 1 в первый разряд (вторая колонка) и снова добавляем 1 в следующий разряд
(третья колонка). По очевидной причине бит, добавленный в соседний разряд (колонку), называется битом переноса (carry bit).
Рис. 1.8
Примеры сложения с переносом: (a) десятичное (b) двоичное

Глава 1
От нуля до единицы
38
Пример 1.7
ДВОИЧНОЕ СЛОЖЕНИЕ
Вычислить 0111 2
+ 0101 2
Решение.
На
Рис. 1.9
показано, что сумма равна 1100 2
Переносы выделены синим цветом. Мы можем проверить нашу работу, повторив вычисления в десятичной системе счисления. 0111 2
= 7 10
, 0101 2
= 5 10
. Сумма равна 12 10
=
1100 2
Цифровые системы обычно оперируют числами с заранее определенным и фиксированным количеством разрядов. Ситуацию, когда результат сложения превышает выделенное для него количество разрядов, называют переполнением (overflow). Четырехбитная ячейка памяти, например, может сохранять значения в диапазоне [0, 15]. Такая ячейка переполняется, если результат сложения превышает число 15.
В этом случае дополнительный пятый бит отбрасывается, а результат, оставшийся в четырех битах, будет ошибочным. Переполнение можно обнаружить, если следить за переносом бита из наиболее значимого разряда двоичного числа (см. на
Рис. 1.8
), из наиболее левой колонки.
Рис. 1.9
Пример
двоичного сложения

Глава 1
От нуля до единицы
39
Пример 1.8
СЛОЖЕНИЕ С ПЕРЕПОЛНЕНИЕМ
Вычислить 1101 2
+ 0101 2
. Будет ли переполнение?
Решение.
На
Рис. 1.10
показано, что сумма равна 10010 2
Результат выходит за границы четырехбитового двоичного числа. Если его нужно запомнить в 4-х битах, наиболее значимый бит пропадет, оставив некорректный результат 0010 2
. Если вычисления производятся с числами с пятью или более битами, результат 10010 2
будет корректным.
1.4.6
Знак двоичных чисел
До сих пор мы рассматривали двоичные числа без знака (unsigned) – то есть только положительные числа. Часто, однако, для вычислений требуются как положительные, так и отрицательные числа, а это значит, что для знака двоичного числа нам потребуется дополнительный разряд. Существует несколько способов представления двоичных чисел со знаком (signed). Наиболее широко применяются два: Прямой
Код (Sign/Magnitude) и Дополнительный Код (Two’s Complement).
Рис. 1.10
Пример
двоичного сложения
с переполнением

Глава 1
От нуля до единицы
40
Прямой код
Представление отрицательных двоичных с использованием прямого кода интуитивно покажется вам наиболее привлекательным, поскольку совпадает с привычным способом записи отрицательных чисел, когда сначала идет знак минус, а затем абсолютное значение числа.
Двоичное число, состоящее из N битов и записанное в прямом коде, использует наиболее значимый бит для знака, а остальные N−1 бита для записи абсолютного значения этого числа. Если наиболее значимый бит 0, то число положительное. Если наиболее значимый бит 1, то число отрицательное.
Пример 1.9
ПРЕДСТАВЛЕНИЕ ЧИСЕЛ В ПРЯМОМ КОДЕ
Запишите числа 5 и –5 как четырехбитовые числа в прямом коде
Решение:
Оба числа имеют абсолютную величину 5 10
= 101 2
. Таким образом,
5 10
= 0101 2
и –5 10
= 1101 2
К сожалению, стандартный способ сложения не работает в случае двоичных чисел со знаком, записанных в прямом коде. Например, складывая −5 10
+ 5 10
привычным способом, получаем 1101 2
+ 0101 2
=
10010 2
. Что, естественно, есть полный абсурд.
Двоичная переменная длиной N битов в прямом коде может представлять число в диапазоне [−2
N−1
+ 1, 2
N −1
− 1].

Глава 1
От нуля до единицы
41
Другой несколько странной особенностью прямого кода является наличие +0 и −0, причем оба этих числа соответствуют одному нулю.
Нетрудно предположить, что представление одной и той же величины двумя различными способами чревато ошибками.
Дополнительный код
Двоичные числа, записанные с использованием дополнительного кода, и двоичные числа без знака идентичны, за исключением того, что в случае дополнительного кода вес наиболее значимого бита −2
N−1
вместо 2
N−1
, как в случае двоичного числа без знака. Дополнительный код гарантирует однозначное представление нуля, допускает сложение чисел по привычной схеме, а значит, избавлен от недостатков прямого кода.
В случае дополнительного кода нулевое значение представлено нулями во всех разрядах двоичного числа: 00…000 2
. Максимальное положительное значение представлено нулем в наиболее значимом разряде и единицами во всех других разрядах двоичного числа:
01…111 2
= 2
N−1
− 1. Максимальное отрицательное значение имеет единицу в наиболее значимом разряде и нули во всех остальных разрядах: 10…000 2
= −2
N−1
. Отрицательная единица представлена единицами во всех разрядах двоичного числа: 11…111 2

Глава 1
От нуля до единицы
42
Ракета Ариан-5 ценой 7 миллиардов долларов, запущенная 4 июня
1996 года, отклонилась от курса и разрушилась через 40 секунд после запуска. Отказ был вызван тем, что в бортовом компьютере произошло переполнение 16-разрядных регистров, после которого компьютер вышел из строя.
Программное обеспечение Ариан-5 было тщательно протестировано, но на ракете Ариан-4. Однако новая ракета имела двигатели с более высокими скоростными параметрами, которые, будучи переданными бортовому компьютеру, и вызвали переполнение регистров.
(Фото: ESA/CNES/ARIANESPACE- Service Optique CS6)

Глава 1
От нуля до единицы
43
Обратите внимание на то, что наиболее значимый разряд у всех положительных чисел – это «0», в то время как у отрицательных чисел – это «1», то есть наиболее значимый бит дополнительного кода можно рассматривать как аналог знакового бита прямого кода. Однако на этом сходство кончается, поскольку остальные биты дополнительного кода интерпретируются не так, как биты прямого кода.
В случае дополнительного кода, знак отрицательного двоичного числа изменяется на противоположный путем выполнения специальной операции, называемой дополнением до двух (taking the two’s
complement). Суть этой операции заключается в том, что инвертируются все биты этого числа, а затем к значению наименее значимого бита прибавляется 1. Подобная операция позволяет найти двоичное представление отрицательного числа или определить его абсолютное значение.
Пример 1.10
ПРЕДСТАВЛЕНИЕ ОТРИЦАТЕЛЬНЫХ ЧИСЕЛ
В ДОПОЛНИТЕЛЬНОМ КОДЕ
Найти представление −2 10
как 4-битового числа в дополнительном коде.
Решение:
начните с +2 10
= 0010 2
. Для получения −2 10 инвертируйте биты и добавьте единицу. Инвертируя 0010 2
, получим 1101 2
. 1101 2
+ 1 = 1110 2
Итак, −2 10
равно 1110 2

Глава 1
От нуля до единицы
44
Пример 1.11
ЗНАЧЕНИЕ ОТРИЦАТЕЛЬНЫХ ЧИСЕЛ В ДОПОЛНИТЕЛЬНОМ
КОДЕ
Найти десятичное значение числа 1001 2
в дополнительном коде.
Решение:
Число 1001 2
имеет старшую 1, поэтому оно должно быть отрицательным. Чтобы найти его модуль, инвертируем все биты и добавляем 1.
Инвертируя 1001 2
, получим 0110 2
. 0110 2
+ 1 = 0111 2
= 7 10
. Отсюда, 1001 2
= −7 10.
Неоспоримым преимуществом дополнительного кода является то, что привычный способ сложения работает как в случае положительных, так и отрицательных чисел. Напомним, однако, что при сложении N-битных чисел N-ный бит (т.е. N + 1-й бит результата) не переносится.
Пример 1.12
СЛОЖЕНИЕ ЧИСЕЛ, ПРЕДСТАВЛЕННЫХ В ДОПОЛНИТЕЛЬНОМ
КОДЕ
Вычислить (a) −2 10
+ 1 10
и (b) −7 10
+ 7 10
с помощью чисел в дополнительном коде
Решение:
(a) −2 10
+ 1 10
= 1110 2
+ 0001 2
= 1111 2
= −1 10
. (b) −7 10
+ 7 10
= 1001 2
+
0111 2
= 10000 2
. Пятый бит отбрасывается, оставляя правильный 4-битовый результат 0000 2
Вычитание одного двоичного числа из другого осуществляется путем преобразования вычитаемого в дополнительный код и последующего его сложения с уменьшаемым.

Глава 1
От нуля до единицы
45
Пример 1.13
ВЫЧИТАНИЕ ЧИСЕЛ В ДОПОЛНИТЕЛЬНОМ КОДЕ
Вычислить (a) 510 − 310 и (b) 310 − 510, используя 4-разрядные числа в дополнительном коде.
Решение:
(a) 3 10
= 0011 2
. Вычисляя его дополнительный код, получим −3 10
= 1101 2
. Теперь сложим 5 10
+ (−3 10
) = 0101 2
+ 1101 2
= 0010 2
= 2 10
. Отметим, что перенос из наиболее значимой позиции сбрасывается, поскольку результат записывается в четырех битах. b) Вычисляя дополнительный код от 5 10
, получим −5 10
= 1011 2
Теперь сложим 3 10
+ (−5 10
) = 0011 2
+ 1011 2
= 1110 2
= −2 10
Дополнение нуля до двух также производится путем инвертирования всех битов (это дает 11…111 2
) и последующим прибавлением 1, что делает значения всех битов равным 0. При этом перенос наиболее значимого бита игнорируется. В результате, нулевое значение всегда представлено набором только нулевых битов. В отличие от прямого кода дополнительный код не имеет отрицательного нуля. Нуль всегда считается положительным числом, так как его знаковый бит всегда 0.
Так же, как и двоичное число без знака, произвольное N-битное число, записанное в дополнительном коде, может принимать одно из 2
N
возможных значений. Однако, весь этот диапазон разделен между

Глава 1
От нуля до единицы
46
положительным и отрицательным числами. Например, 4-битное двоичное число без знака может принимать 16 значений от 0 до 15.
В случае дополнительного кода, 4-битное число также принимает
16 значений, но уже от −8 до 7. В общем случае, диапазон N-битного числа, записанного в дополнительном коде, охватывает [−2
N−1
, 2
N−1
− 1].
Легко понять, почему в отрицательном диапазоне оказалось на одно значение больше, чем в положительном – в дополнительном коде отсутствует отрицательный нуль. Максимальное отрицательное число, которое можно записать, используя дополнительный код 10…000 2
=
−2
N−1
, иногда называют странным числом (weird number). Чтобы дополнить это число до двух, инвертируем все его биты (это даст нам
01…111 2
), прибавим 1 и получим в результате 10…000 2
– опять это же самое «странное» число. То есть, это единственное отрицательное число, которое не имеет положительной пары.
В случае дополнительного кода сложение двух положительных или отрицательных N-битовых чисел может привести к переполнению, если результат будет больше, чем 2
N−1
– 1, или меньше, чем −2
N−1
. Сложение положительного и отрицательного числа, напротив, никогда не приводит к переполнению. В отличие от двоичного числа без знака перенос наиболее значимого бита не является признаком переполнения. Вместо этого индикатором переполнения является

Глава 1
От нуля до единицы
47
ситуация, когда после сложения двух чисел с одинаковым знаком знаковый бит суммы не совпадает со знаковыми битами слагаемых.
Пример 1.14
СЛОЖЕНИЕ ЧИСЕЛ В ДОПОЛНИТЕЛЬНОМ КОДЕ
С ПЕРЕПОЛНЕНИЕМ
Вычислить 4 10
+ 5 10
, используя четырехбитные числа в дополнительном коде.
Произойдет ли переполнение?
Решение:
4 10
+ 5 10
= 0100 2
+ 0101 2
= 1001 2
= –7 10
. Результат не помещается в диапазон положительных четырехбитных чисел в дополнительном коде, оказываясь отрицательным. Если бы вычисление выполнялось с пятью или более битами, результат был бы такой 01001 2
= 9 10
, что правильно.
В случае необходимости увеличения количества битов произвольного числа, записанного в дополнительном коде, значение знакового бита должно быть скопировано в наиболее значимые разряды модифицированного числа. Эта операция называется знаковым расширением (sign extension). Например, числа 3 и −3 записываются в
4-битном дополнительном коде как 0011 и 1101 соответственно. Если мы увеличиваем число разрядов до семи битов, мы должны скопировать знаковый бит в три наиболее значимых бита модифицированного числа, что дает 0000011 и 1111101.

Глава 1
От нуля до единицы
48
Сравнение способов представления двоичных чисел
Три наиболее часто использующиеся на практике способа представления двоичных чисел – это двоичные числа без знака, прямой код и дополнительный код.
Табл. 1.3
сравнивает диапазон
N-битных чисел для каждого из этих трех способов. Преимущества дополнительного кода заключаются в том, что его можно использовать для представления как положительных, так и отрицательных целых чисел, а привычный способ сложения работает для всех чисел, представленных в дополнительном коде. Вычитание осуществляется путем преобразования вычитаемого в отрицательное число (т.е. путем дополнения этого числа до двух) и последующего сложения с уменьшаемым. В дальнейшем в этой книге, если не указано иное, предполагается, что все двоичные числа представлены в дополнительном коде.
Табл. 1.3
Диапазон N-битных чисел
Система
Диапазон
0, 2
N
– 1]
[–2
N–1
+ 1, 2
N–1
– 1]
Дополнительный код
[–2
N–1
, 2
N–1
– 1]

Глава 1
От нуля до единицы
49
Рис. 1.11
Числовая шкала и 4-битовое двоичное кодирование
На
Рис. 1.11
изображена десятичная числовая шкала с соответствующими десятичными и 4-битными двоичными числами, представленными тремя вышеперечисленными способами. Двоичные числа без знака находятся в диапазоне [0, 15] и располагаются в обычном порядке. 4-битные двоичные числа, представленные в дополнительном коде, занимают диапазон [−8, 7]. Причем, положительные числа [0, 7] используют точно такую же кодировку, как и двоичные числа без знака. Отрицательные же числа [–8, –1] кодируются таким образом, что наибольшее двоичное значение каждого такого числа без знака представляет число, наиболее близкое к 0. Обратите внимание на то, что «странное число» 1000 соответствует десятичному значению −8 и не имеет положительной пары. Числа, представленные в прямом коде, занимают диапазон [−7, 7]. При этом, наиболее значимый бит является знаковым. Положительные числа

Глава 1
От нуля до единицы
50
[0, 7] используют такую же кодировку, как и двоичные числа без знака.
Отрицательные числа симметричны положительным, с той лишь разницей, что их знаковый бит имеет значение 1. Нуль представлен двумя значениями 0000 и 1000. В результате того, что два числа соответствуют одному нулю, любое произвольное N-разрядное двоичное число в прямом коде может представлять только 2
N
– 1 целых числа.
1.5
ЛОГИЧЕСКИЕ ЭЛЕМЕНТЫ
Теперь, когда мы знаем, как использовать бинарные переменные для представления информации, рассмотрим цифровые системы, способные выполнять различные операции с этими переменными.
Логические вентили (logic gates) – это простейшие цифровые схемы, получающие один или более двоичных сигналов на входе и производящие новый двоичный сигнал на выходе. При графическом изображении логических вентилей для обозначения одного или нескольких входных сигналов и выходного сигнала используются специальные символы. Если смотреть на изображение логического элемента, то входные сигналы обычно размещаются слева (или сверху), а выходные сигналы – справа (или снизу). Разработчики цифровых систем обычно используют первые буквы латинского алфавита для обозначения входных сигналов и латинскую букву Y для обозначения

Глава 1
От нуля до единицы
51
выходного сигнала. Взаимосвязь между входными сигналами и выходным сигналом логического вентиля может быть описана с помощью таблицы истинности (truth table) или уравнением Булевой логики. Слева в таблице истинности представлены значения входных сигналов, а справа – значение соответствующего выходного сигнала.
Каждая строка в такой таблице соответствует одной из возможных комбинаций входных сигналов. Уравнение Булевой логики – это математическое выражение, описывающее логический элемент с помощью двоичных переменных.
1.5.1
Логический вентиль НЕ
Логический вентиль НЕ (NOT gate) имеет один вход A и один выход Y, как показано на
Рис. 1.12
Причем выходной сигнал Y – это сигнал, обратный входному сигналу A, или, как еще говорят, инвертированный A (inversed A). Если сигнал на входе A – это ЛОЖЬ, то сигнал на выходе Y будет ИСТИНА. Таблица истинности и уравнение Булевой логики на
Рис. 1.12
суммируют эту связь входного и выходного сигналов. В уравнении Булевой логики линия над обозначением сигнала читается как «не», то есть
Рис. 1.12
Вентиль НЕ

Глава 1
От нуля до единицы
52
математическое выражение Y = произносится как «Y равняется не A».
Именно поэтому логический вентиль НЕ также называют инвертором
(inverter).
Для обозначения логического вентиля НЕ используют и другие способы записи, включая: Y = A', Y = ¬A, Y = !A и Y =

A. В этой книге мы будем пользоваться исключительно записью Y = , однако не удивляйтесь, если в научной и технической литературе вы столкнетесь и с другими обозначениями.
1.5.2
Буфер
Другим примером логического вентиля с одним входом является буфер (buffer), показанный на
Рис. 1.13.
Буфер просто копирует входной сигнал на выход. Если рассматривать буфер как часть логической схемы, то такой элемент ничем не отличается от простого провода и может показаться бесполезным. Вместе с тем, на аналоговом уровне буфер может обеспечить характеристики, необходимые для нормального функционирования разрабатываемого устройства.
Рис. 1.13
Буфер

Глава 1
От нуля до единицы
53
Буфер, например, необходим для передачи большого тока электродвигателю или для быстрой передачи сигнала сразу нескольким логическим элементам. Это еще один пример, доказывающий необходимость рассмотрения любой системы с нескольких уровней абстракции, если мы хотим в полной мере понять эту систему.
Рассмотрение буфера только с позиции цифрового уровня абстракции не позволяет нам разглядеть его реальную функцию.
В логических схемах буфер обозначается треугольником. Кружок на выходе логического элемента, в англоязычной литературе часто называемый пузырем (bubble),указывает на инверсию сигнала, как, например, показано на
Рис. 1.12

Глава 1
От нуля до единицы
54
1.5.3
Логический вентиль И
Логические вентили с двумя входными сигналами гораздо интереснее, чем вентиль НЕ и буфер.
Логический вентиль И (AND gate), показанный на
Рис. 1.14
, выдает значение ИСТИНА на выход Y исключительно только если оба входных сигнала A и B имеют значение ИСТИНА. В противном случае выходной сигнал Y имеет значение ЛОЖЬ.
В используемом нами соглашении входные сигналы перечислены в порядке 00, 01, 10, 11, как в случае подсчета в двоичной системе счисления. Уравнение
Булевой логики для логического элемента И может быть записано несколькими способами: Y = AB, Y = AB, или Y = AB.
Символ ∩ читается как «пересечение» и больше других нравится специалистам в математической логике. Однако, в этой книге мы предпочитаем использовать выражение Y = AB, которое звучит как «Y равно A и B», просто потому, что мы достаточно ленивы, чтобы выбрать то, что короче.
По словам создателя языка программирования Perl Ларри Уолла, три основных достоинства программиста – это лень, нетерпение и самоуверенность.
Рис. 1.14
Вентиль И

Глава 1
От нуля до единицы
55
1.5.4
Логический вентиль ИЛИ
Логический вентиль ИЛИ (OR gate), показанный на
Рис. 1.15
, выдаёт значение ИСТИНА на выход
Y, если хотя бы один из двух входных сигналов A или B имеет значение ИСТИНА. Уравнение
Булевой логики для логического элемента ИЛИ записывается как Y = A + B или Y = AB.
Символ ∪ читается как «объединение» и опять же больше всего нравится математикам.
Разработчики цифровых систем обычно пользуются простым символом +.
Математическое выражение Y = A + B звучит
«Y равно A или B».
Рис. 1.15
Вентиль ИЛИ

Глава 1
От нуля до единицы
56
1.5.5
Другие логические элементы с двумя входными сигналами
Рис. 1.16
Логические вентили с более чем двумя входами
На
Рис. 1.16
показаны другие широко распространенные логические вентили с двумя входными сигналами. Добавление кружка на выходе любого логического вентиля превращает этот вентиль в ему противоположный – то есть инвертирует его. Таким образом, например, из вентиля И получается вентиль И-НЕ (NAND gate). Значение выходного сигнала Y вентиля И-НЕ будет ИСТИНА до тех пор, пока оба входных сигнала А и В не примут значение ИСТИНА. Точно так же из логического вентиля ИЛИ получается вентиль ИЛИ-НЕ (NOR gate).
Его выходной сигнал Y будет ИСТИНА в том случае, если ни один из входных сигналов, ни А ни B, не имеет значение ИСТИНА.
Исключающее ИЛИ с количеством входов равным N (N-input XOR gate)

Глава 1
От нуля до единицы
57
иногда еще называют элементом контроля по чётности (parity gate).
Такой вентиль выдает на выход сигнал ИСТИНА, если нечетное количество входных сигналов имеет значение ИСТИНА. Как и в случае элемента с двумя входными сигналами, комбинации сигналов для элемента с N входами перечислены в логической таблице в порядке подсчета в двоичной системе счисления.
Забавный способ запомнить, как обозначается элемент ИЛИ на логических схемах, заключается в том, что графический символ ИЛИ напоминает главный персонаж компьютерной игры Pacman. Причем, широко раскрытая пасть “голодного” ИЛИ находится со стороны входных сигналов и готова проглотить все сигналы ИСТИНА, которые только может найти!

Глава 1
От нуля до единицы
58
Пример 1.15
Вентиль исключающее ИЛИ-НЕ
На
Рис. 1.17
показаны обозначение и булевское уравнение для вентиля исключающее ИЛИ-НЕ (XNOR) с двумя входами, который выполняет инверсию исключающего ИЛИ. Заполните таблицу истинности.
Решение:
На
Рис. 1.18
представлена таблица истинности. Выход исключающего
ИЛИ-НЕ есть ИСТИНА, если оба входа имеют значение ЛОЖЬ или оба входа имеют значение ИСТИНА.
Вентиль исключающее ИЛИ-НЕ с двумя входами иногда называют вентилем равенства, так как его выход есть ИСТИНА, когда входы совпадают.
Рис. 1.17
Вентиль исключающее ИЛИ-НЕ
Рис. 1.18
Таблица истинности вентиля
исключающее ИЛИ-НЕ

Глава 1
От нуля до единицы
59
1.5.6
Логические элементы с количеством входов больше двух
Многие Булевы функции, а значит, и логические вентили, необходимые для их реализации, оперируют тремя и более входными сигналами.
Наиболее распространенные из таких вентилей – это И, ИЛИ,
Исключающее ИЛИ, И-НЕ, ИЛИ-НЕ и Исключающее ИЛИ-НЕ.
Логический вентиль И с количеством входов равным N выдает значение
ИСТИНА, когда значения на всех N входах этого логического вентиля
ИСТИНА. Логический вентиль ИЛИ с количеством входов равным N выдает ИСТИНА, когда значение хотя бы одного из его входов ИСТИНА.
Пример 1.16
ВЕНТИЛЬ ИЛИ-НЕ С ТРЕМЯ ВХОДАМИ
На
Рис. 1.19
показаны обозначение и булевское уравнение для вентиля ИЛИ-НЕ с тремя входами. Заполните таблицу истинности.
Решение:
На
Рис. 1.20
показана таблица истинности. Выход есть ИСТИНА только, если нет ни одного входа со значением ИСТИНА.

Глава 1
От нуля до единицы
60
Рис. 1.19
Вентиль ИЛИ-НЕ с тремя
входами
Рис. 1.20
Таблица истинности вентиля
ИЛИ-НЕ с тремя входами

Глава 1
От нуля до единицы
61
Пример 1.17
ВЕНТИЛЬ И С ЧЕТЫРЬМЯ ВХОДАМИ
На
Рис. 1.21
показаны обозначение и булевское уравнение для вентиля И с четырьмя входами. Заполните таблицу истинности.
Решение:
На
Рис. 1.22
показана таблица истинности. Выход есть ИСТИНА только если все входы имеют значение ИСТИНА.
Рис. 1.21
Вентиль И с четырьмя входами
Рис. 1.22
Таблица истинности вентиля И
с четырьмя входами

Глава 1
От нуля до единицы
62
1.6
ЗА ПРЕДЕЛАМИ ЦИФРОВОЙ АБСТРАКЦИИ
Цифровая система оперирует дискретными переменными. Однако для представления этих переменных используются непрерывные физические величины, такие как напряжение в электрической цепи, положение шестеренок в механической передаче или уровень жидкости в гидравлическом цилиндре. Задача разработчика цифровой системы – определить, каким образом непрерывно-меняющаяся величина соотносится с конкретным значением дискретной переменной.
Рассмотрим, например, задачу представления двоичного сигнала А напряжением в электрической цепи. Допустим, что напряжение 0 В соответствует значению А = 0, а напряжение 5 В соответствует А = 1.
Однако, реальная цифровая система должна быть устойчива к неизбежному в такой ситуации шуму, так что значение 4,97 В, вероятно, также следует толковать как A = 1. А что делать, если напряжение равно 4,3 В? Или 2,8 В? Или 2,500000 В?
1.6.1
Напряжение питания
Предположим, что минимальное напряжение в электронной цифровой системе, называемое также напряжением земли (ground voltage, или
просто ground, или GND), составляет 0 В. Самое высокое напряжение в системе поступает от блока питания и, как правило, обозначается V
DD

Глава 1
От нуля до единицы
63
Транзисторные технологии семидесятых и восьмидесятых годов прошлого века в основном использовали V
DD
равное 5 В. С переходом на транзисторы меньшего размера, V
DD
последовательно снижали до
3,3 В, 2,5 В, 1,8 В, 1,5 В, 1,2 В и даже ниже для экономии электроэнергии и во избежание перегрузки транзисторов.
1.6.2
Логические уровни
Отображение непрерывно-меняющейся переменной на различные значения дискретной двоичной переменной выполняется путем определения логических уровней, как показано на
Рис. 1.23
. Первый логический элемент в рассматриваемой схеме называется источник
(driver), а второй – приемник (receiver). Выходной сигнал источника подключается ко входу приемника. Источник выдает выходной сигнал низкого напряжения (0) в диапазоне от 0 В до V
OL
или выходной сигнал высокого напряжения (1) в диапазоне от V
OH
до V
DD
. Если приемник получает на вход сигнал в диапазоне от 0 до V
IL
, он рассматривает такой сигнал как нуль. Если приемник получает на вход сигнал в диапазоне от V
IH
до V
DD
, он рассматривает такой сигнал как единицу.
Если же по какой-либо причине, например, наличия шумов или неисправности одного из элементов схемы, напряжение сигнала на входе приемника падает настолько, что попадает в запретную зону
(forbidden zone) между V
IL
и V
IH
, то поведение этого логического

Глава 1
От нуля до единицы
64
элемента становится непредсказуемым. V
OH
и V
OL
называются соответственно высоким и низким логическими уровнями выхода
(output high and low logic levels), а V
IH
и V
IL
называются соответственно
высоким и низким логическими уровнями входа (input high and low logic
levels).
1.6.3
Допускаемые Уровни Шумов
Для того чтобы выходной сигнал источника был правильно интерпретирован на входе приемника, необходимо, чтобы V
O
< V
IL
и
V
OH
> V
IH
. В этом случае, даже если выходной сигнал источника будет загрязнен шумами, приемник по-прежнему сможет правильно определить логический уровень входного сигнала. Допускаемый
уровень шумов (noise margin) – это то максимальное количество шума, присутствие которого в выходном сигнале источника не мешает приемнику корректно интерпретировать значение полученного сигнала.
Как можно увидеть на
Рис. 1.23
, значения нижнего допускаемого
уровня шумов (low noise margin) и верхнего допускаемого уровня
шумов (high noise margin) определяются следующим образом:
NML = VIL – VOL
(1.2)
NMH = VO – VIH
(1.3)

Глава 1
От нуля до единицы
65
Рис. 1.23
Логические уровни и уровни шума
V
DD
обозначает напряжение стока в транзисторах, построенных на структуре металл-оксид-полупроводник (МОП). Такие транзисторы используются сегодня для создания самых современных микросхем.
Напряжение источника питания иногда также обозначают V
CC
, как напряжение коллектора (collector) в биполярных транзисторах более ранних микросхем. Напряжение земли (ground voltage или просто ground) иногда обозначают как V
SS
потому, что это напряжение на истоке (source) МОП-транзистора. Для более подробной информации о том, как функционирует транзистор, смотри
1   2   3   4   5


написать администратору сайта