Основы. Искусство управления сложностью. Системы счисления (тема 1)

Содержание

Слайд 2

Искусство управления сложностью Системы счисления Двоичные числа Шестнадцатеричные числа Байты, биты,

Искусство управления сложностью
Системы счисления
Двоичные числа
Шестнадцатеричные числа
Байты, биты, нибблы
Сложение
Представление чисел со знаком
Расширение

чисел
Логические вентили
Логические уровни
КМОП транзисторы
Низкоуровневое представление вентилей
Энергопотребление

Тема 1 :: Разделы

Слайд 3

Тема 1: Основы Искусство управления сложностью

Тема 1: Основы

Искусство управления сложностью

Слайд 4

Как проектировать объекты, слишком сложные для того, чтобы один человек мог

Как проектировать объекты, слишком сложные для того, чтобы один человек мог

осмыслить их целиком?
Абстракция
Дисциплина
Три «-ности»:
Иерархичность
Модульность
Регулярность

Управление сложностью

Слайд 5

Сокрытие ненужных деталей Абстракция


Сокрытие ненужных деталей

Абстракция

Слайд 6

Сознательное ограничение множества вариантов дизайна Пример: цифровая дисциплина Дискретные уровни напряжения


Сознательное ограничение множества вариантов дизайна
Пример: цифровая дисциплина
Дискретные уровни напряжения вместо непрерывных
Дизайн

цифровых систем проще чем у аналоговых – можно разрабатывать более сложные системы
Цифровые системы замещают аналоговых предшественников

Дисциплина

Слайд 7

Иерархичность Система делится на подсистемы и далее Модульность Каждая подсистема имеет


Иерархичность
Система делится на подсистемы и далее
Модульность
Каждая подсистема имеет интерфейс
Регулярность
Общий подход к

разработке модулей (подсистем), так что их можно повторно использовать

Три «-ности»

Слайд 8

Большинство физических величин непрерывны Напряжение на участке цепи Частота колебаний Координаты

Большинство физических величин непрерывны
Напряжение на участке цепи
Частота колебаний
Координаты тела
Цифровая абстракция имеет

дело с дискретным подмножеством этих значений

Цифровая абстракция

Слайд 9

Два дискретных значения: 1 и 0 1, ИСТИНА, HIGH 0, ЛОЖЬ,

Два дискретных значения:
1 и 0
1, ИСТИНА, HIGH
0, ЛОЖЬ, LOW
1 и 0:

уровни напряжения или жидкости, положения шестеренок и т.д.
Цифровые схемы используют уровни напряжения:
0: низкое напряжение (земля, GND)
1: высокое напряжение (VDD)
Бит: двоичная цифра (Binary digit)

Цифровая дисциплина: биты

Слайд 10

Тема 1: Основы Системы счисления: двоичные числа

Тема 1: Основы

Системы счисления: двоичные числа

Слайд 11

Десятичная Двоичная Системы счисления


Десятичная
Двоичная

Системы счисления

Слайд 12

Двоичная Десятичная 0 0 1 1 10 2 11 3 4 5 … Двоичный счет


Двоичная Десятичная
0 0
1 1
10 2
11 3
4
5

Двоичный счет

Слайд 13

20 = 1 21 = 2 22 = 4 23 =

20 = 1
21 = 2
22 = 4
23 = 8
24 = 16
25

= 32
26 = 64
27 = 128

28 = 256
29 = 512
210 = 1024
211 = 2048
212 = 4096
213 = 8192
214 = 16384
215 = 32768

Степени двойки

Полезно запомнить

Слайд 14

Из двоичной в десятичную: Перевести 100112 в десятичную систему 16×1 +

Из двоичной в десятичную:
Перевести 100112 в десятичную систему
16×1 + 8×0 +

4×0 + 2×1 + 1×1 = 1910
Из десятичной в двоичную:
Перевести 4710 в двоичную систему
32×1 + 16×0 + 8×1 + 4×1 + 2×1 + 1×1 = 1011112

Перевод чисел

Слайд 15

Два способа: Способ 1: Найти подходящую старшую степень двойки, вычесть её

Два способа:
Способ 1: Найти подходящую старшую степень двойки, вычесть её и

повторить процедуру
Способ 2: Последовательно делить на 2, записывая остатки справа налево

Из десятичной в двоичную

Слайд 16

5310 Способ 1: Вычитать подходящую старшую степень двойки 5310 32×1 53-32

5310
Способ 1: Вычитать подходящую старшую степень двойки
5310 32×1
53-32 = 21

16×1
21-16 = 5 4×1
5-4 = 1 1×1 = 1101012
Способ 2: Последовательно делить на 2
5310 = 53/2 = 26 R1
26/2 = 13 R0
13/2 = 6 R1
6/2 = 3 R0
3/2 = 1 R1
1/2 = 0 R1 = 1101012

Из десятичной в двоичную

Слайд 17

Десятичное число из N цифр Сколько их? 10N Диапазон значений? [0,

Десятичное число из N цифр
Сколько их? 10N
Диапазон значений? [0, 10N -

1]
Пример: десятичное число из 3 цифр:
103 = 1000 возможных значений
Диапазон: [0, 999]
Двоичное число из N цифр
Сколько их? 2N
Диапазон значений: [0, 2N - 1]
Пример: двоичное число из 3 цифр:
23 = 8 возможных значений
Диапазон: [0, 7] = [от 0002 до 1112]

Двоичные числа

Слайд 18

Тема 1: Основы Системы счисления: шестнадцатеричные числа

Тема 1: Основы

Системы счисления: шестнадцатеричные числа

Слайд 19

Шестнадцатеричные числа


Шестнадцатеричные числа

Слайд 20

Основание системы счисления – 16 Удобны для сокращенной записи двоичных чисел Шестнадцатеричные числа


Основание системы счисления – 16
Удобны для сокращенной записи двоичных чисел

Шестнадцатеричные числа

Слайд 21

Из шестнадцатеричной в двоичную: Перевести 4AF16 (также 0x4AF) в двоичную 0100

Из шестнадцатеричной в двоичную:
Перевести 4AF16 (также 0x4AF) в двоичную
0100 1010 11112
Из

шестнадцатеричной в десятичную:
Перевести 4AF16 в десятичную
162×4 + 161×10 + 160×15 = 119910

Переводы

Слайд 22

Нижние индексы неудобны В некоторых ЯП используют префиксы: Шестнадцатеричный: 0x 0x23AB

Нижние индексы неудобны
В некоторых ЯП используют префиксы:
Шестнадцатеричный: 0x
0x23AB = 23AB16
Двоичный: 0b
0b1101

= 11012

Префиксы

Слайд 23

Тема 1: Основы Системы счисления: байты, нибблы и все такое

Тема 1: Основы

Системы счисления: байты, нибблы и все такое

Слайд 24

Байт: 8 бит Всего _____ значений [__, ___] Ниббл: 4 бита

Байт: 8 бит
Всего _____ значений
[__, ___]
Ниббл: 4 бита
Всего _____ значений
[__, ___]
Одна

двоичная цифра – это __ бит
Одна hex цифра – это ___ бит или ___ нибблов
Две hex цифры – это ___ байт
Старший – слева
Младший – справа

Биты, байты, нибблы

Слайд 25

Еще степени двойки 210 = 1 кило ≈ 103 (1024) 220


Еще степени двойки

210 = 1 кило ≈ 103 (1024)
220 = 1

мега ≈ 106 (1,048,576)
230 = 1 гига ≈ 109 (1,073,741,824)
240 = 1 тера ≈ 1012
250 = 1 пета ≈ 1015
260 = 1 экза ≈ 1018
Слайд 26

Чему равно 224? 24 × 220 ≈ 16 миллионов Насколько большое

Чему равно 224?
24 × 220 ≈ 16 миллионов
Насколько большое число

можно представить 32 битами?
22 × 230 ≈ 4 миллиарда

Оценки степеней двойки

Слайд 27

Тема 1: Основы Системы счисления: сложение

Тема 1: Основы

Системы счисления: сложение

Слайд 28

Десятичное Двоичное Сложение

Десятичное
Двоичное

Сложение

Слайд 29

Сложите два четырехбитовых числа Сложите два четырехбитовых числа Двоичное сложение

Сложите два четырехбитовых числа
Сложите два четырехбитовых числа

Двоичное сложение

Слайд 30

Цифровые систем оперируют с заданным количеством бит Переполнение: когда результат слишком


Цифровые систем оперируют с заданным количеством бит
Переполнение: когда результат слишком содержит

больше бит, чем возможно сохранить
Второй пример на предыдущем слайде

Переполнение

Слайд 31

Тема 1: Основы Системы счисления: числа со знаком

Тема 1: Основы

Системы счисления: числа со знаком

Слайд 32

Прямой код Дополнительный код Двоичные числа со знаком


Прямой код
Дополнительный код

Двоичные числа со знаком

Слайд 33

1 знаковый бит, N-1 бит самого числа Знаковый бит – старший


1 знаковый бит, N-1 бит самого числа
Знаковый бит – старший
Положительное: знак

= 0
Отрицательное: знак = 1
Пример, 4-битовое представление ± 6:
+6 = 0110
- 6 = 1110
Диапазон N-битового числа в прямом коде:
[-(2N-1-1), 2N-1-1]

Прямой код

Слайд 34

Проблемы: Не работает сложение, например -6 + 6: 1110 + 0110


Проблемы:
Не работает сложение, например -6 + 6:
1110
+ 0110

10100 (неправильно!)
Два представления нуля 0 (± 0):
1000
0000

Прямой код

Слайд 35

Проблемы прямого кода отсутствуют: Сложение работает Ноль имеет единственное представление Дополнительный код


Проблемы прямого кода отсутствуют:
Сложение работает
Ноль имеет единственное представление

Дополнительный код

Слайд 36

Старший бит имеет вес -2N-1 Самое большое число из 4 бит:


Старший бит имеет вес -2N-1
Самое большое число из 4 бит: 0111
Самое

маленькое число из 4 бит: 1000
Старший бит по-прежнему определяет знак (1 = отрицательный, 0 = положительный)
Диапазон N-битовых чисел в доп. коде:
[-(2N-1), 2N-1-1]

Дополнительный код

+

Слайд 37

Как поменять знак числа в дополнительном коде? Способ: Инвертировать все биты


Как поменять знак числа в дополнительном коде?
Способ:
Инвертировать все биты
Добавить 1
Пример: изменить

знак числа 310 = 00112
1100
+ 1
1101 = -310

Смена знака

Слайд 38

Изменить знак числа 610 = 01102 1001 + 1 10102 =


Изменить знак числа 610 = 01102
1001
+ 1
10102 = -610
Перевести 10012

из дополнительного кода в десятичную систему
0110
+ 1
01112 = 710, поэтому 10012 = -710

Примеры доп. кода

Слайд 39

Сложим 6 + (-6) в доп. коде Сложим -2 + 3

Сложим 6 + (-6) в доп. коде
Сложим -2 + 3 в

доп. коде

Сложение в доп. коде

Слайд 40

Вычитание сводится к замене знака и сложению Пример: 3 – 5 = 3 + (-5) Вычитание

Вычитание сводится к замене знака и сложению
Пример: 3 – 5 =

3 + (-5)

Вычитание

Слайд 41

Например, для четырех битов: Сравнение числовых систем


Например, для четырех битов:

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

Слайд 42

Тема 1: Основы Системы счисления: расширение

Тема 1: Основы

Системы счисления: расширение

Слайд 43

Расширение представления числа из N в M бит (M > N)


Расширение представления числа из N в M бит (M > N)

:
Знаковое расширение для чисел в дополнительном коде
Расширение нулями для беззнаковых чисел

Расширение чисел

Слайд 44

Бит знака копируется во все старшие разряды Величина числа остается прежней


Бит знака копируется во все старшие разряды
Величина числа остается прежней
Пример 1:
4-битовое

представление 3: 0011
8-битовое представление: 00000011
Пример 2:
4-битовое представление -5: 1011
8-битовое представление: 11111011

Знаковое расширение

Слайд 45

Во все старшие разряды копируется ноль Значение отрицательных чисел меняется Пример


Во все старшие разряды копируется ноль
Значение отрицательных чисел меняется
Пример 1:
4-битовое представление: 0011

= 310
8-битовое представление: 00000011 = 310
Пример 2:
4-битовое представление: 1011 = -510
8-битовое представление: 00001011 = 1110

Расширение нулями

Слайд 46

Тема 1: Основы Логические вентили

Тема 1: Основы

Логические вентили

Слайд 47

Выполняют логические операции: НЕ, И, ИЛИ, НЕ-И, НЕ-ИЛИ, … С одним

Выполняют логические операции:
НЕ, И, ИЛИ, НЕ-И, НЕ-ИЛИ, …
С одним входом:


Инвертор (НЕ), буфер
С двумя входами:
И, ИЛИ, НЕ-И, НЕ-ИЛИ, исключающее ИЛИ (XOR)
С несколькими входами

Логические вентили

Слайд 48

Вентили с одним входом


Вентили с одним входом

Слайд 49

Вентили с двумя входами


Вентили с двумя входами

Слайд 50

Вентили с двумя входами


Вентили с двумя входами

Слайд 51

Вентили с многими входами XOR с многими входами: проверка четности


Вентили с многими входами

XOR с многими входами: проверка четности

Слайд 52

Описание на SystemVerilog module gates(input logic a, b, c, output logic


Описание на SystemVerilog

module gates(input logic a, b, c,
output logic y1,

y2, y3, y4, y5);
not g1(y1, a);
and g2(y2, a, b);
or g3(y3, a, b, c);
nand g4(y4, b, c);
xor g5(y5, a, c);
endmodule
Слайд 53

Тема 1: Основы Логические уровни

Тема 1: Основы

Логические уровни

Слайд 54

Дискретные напряжения определяют 1 и 0 Например: 0 = земля (GND)

Дискретные напряжения определяют 1 и 0
Например:
0 = земля (GND) или

0 вольт
1 = VDD иди 5 вольт
Как насчет 4.99 вольт? Это 0 или 1?
А как насчет 3.2 вольт?

Логические уровни

Слайд 55

Диапазон напряжений для 1 и 0 Разные диапазоны для входных и

Диапазон напряжений для 1 и 0
Разные диапазоны для входных и выходных

уровней для учета влияния шума

Логические уровни

Слайд 56

То, что приводит к ухудшению сигнала Сопротивления, наводки, помехи… Пример: вентиль

То, что приводит к ухудшению сигнала
Сопротивления, наводки, помехи…
Пример: вентиль выдает 5

В, но сопротивление снижает это напряжение до 4.5 В

Что такое шум?

Слайд 57

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

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

значение на выходе
Нужно использовать ограниченные диапазоны напряжений для представления логических уровней

Статическая дисциплина

Слайд 58

Запасы помехоустойчивости


Запасы помехоустойчивости

Слайд 59

Верхний запас: NMH = VOH – VIH Нижний запас: NML = VIL – VOL Запасы помехоустойчивости


Верхний запас: NMH = VOH – VIH
Нижний запас: NML = VIL –

VOL

Запасы помехоустойчивости

Слайд 60

Идеальный буфер: Реальный буфер: NMH = NML = VDD/2 Передаточные характеристики NMH, NML


Идеальный буфер: Реальный буфер:

NMH = NML = VDD/2

Передаточные характеристики

NMH, NML <

VDD/2
Слайд 61

Передаточные характеристики


Передаточные характеристики

Слайд 62

В 1970-х и 1980-х, VDD = 5 В Уровень VDD снизился

В 1970-х и 1980-х, VDD = 5 В
Уровень VDD снизился
Транзисторы могут

сгореть
Нужно низкое энергопотребление
3.3 В, 2.5 В, 1.8 В, 1.5 В, 1.2 В, 1.0 В, …
Нужно быть аккуратным, соединяя схемы с разным уровнем напряжения питания

Уровень VDD

Слайд 63

Логические семейства


Логические семейства

Слайд 64

Тема 1: Основы КМОП транзисторы

Тема 1: Основы

КМОП транзисторы

Слайд 65

Вентили построены на транзисторах Транзистор – управляемый ключ 2 соединены в

Вентили построены на транзисторах
Транзистор – управляемый ключ
2 соединены в зависимости от

напряжения на третьем
d и s соединены (ON) если g = 1

Транзисторы

Слайд 66

Транзисторы сделаны из кремния Чистый кремний – плохой проводник Кремний с


Транзисторы сделаны из кремния
Чистый кремний – плохой проводник
Кремний с примесями –

хороший проводник
n-тип (свободные электроны, negative)
p-type (свободные дырки, positive)

Кремний

Слайд 67

Металл-оксид-полупроводник (МОП) транзисторы: Поликремниевый (в прошлом металлический) затвор Оксидный (диоксид Si) изолятор Легированный полупроводник МОП транзисторы


Металл-оксид-полупроводник (МОП) транзисторы:
Поликремниевый (в прошлом металлический) затвор
Оксидный (диоксид Si) изолятор
Легированный

полупроводник

МОП транзисторы

Слайд 68

Затвор = 0 OFF (сток и исток не связаны) Затвор =


Затвор = 0
OFF (сток и исток не связаны)

Затвор = 1


ON (сток и исток связаны)

Транзисторы: нМОП

Слайд 69

пМОП транзисторы противоположны нМОП ON когда Gate = 0 OFF когда Gate = 1 Транзисторы: пМОП

пМОП транзисторы противоположны нМОП
ON когда Gate = 0
OFF когда Gate =

1

Транзисторы: пМОП

Слайд 70

Транзисторы


Транзисторы

Слайд 71

нМОП: пропускают 0, подключать к GND пМОП: пропускают 1, подключать к VDD Транзисторы

нМОП: пропускают 0, подключать к GND
пМОП: пропускают 1, подключать к VDD

Транзисторы

Слайд 72

Тема 1: Основы Вентили и транзисторы

Тема 1: Основы

Вентили и транзисторы

Слайд 73

КМОП вентили: НЕ


КМОП вентили: НЕ

Слайд 74

КМОП вентили: НЕ-И


КМОП вентили: НЕ-И

Слайд 75

Структура КМОП вентиля


Структура КМОП вентиля

Слайд 76

Вентиль НЕ-И-3 Как построить вентиль НЕ-И-3?


Вентиль НЕ-И-3

Как построить вентиль НЕ-И-3?

Слайд 77

Вентиль И Как построить вентиль И?


Вентиль И

Как построить вентиль И?

Слайд 78

Закон Мура

Закон Мура

Слайд 79

Тема 1: Основы Энергопотребление

Тема 1: Основы

Энергопотребление

Слайд 80

Мощность = Энергия, потребляемая в единицу времени Динамическое энергопотребление Статическое энергопотребление Энергопотребление

Мощность = Энергия, потребляемая в единицу времени
Динамическое энергопотребление
Статическое энергопотребление

Энергопотребление

Слайд 81

Мощность для зарядки емкостей Энергия для зарядки емкости C до напряжения

Мощность для зарядки емкостей
Энергия для зарядки емкости C до напряжения VDD

равна CVDD2
Схема работает на частоте f
Емкость заряжается α раз за цикл (разрядка не тратит энергию)
Динамическое энергопотребление:
Pdynamic = αCVDD2f

Динамическое потребление

Слайд 82

α это доля цикла, потраченная на зарядку Сигнал часов α =

α это доля цикла, потраченная на зарядку
Сигнал часов α = 1
Изменение раз

в цикл α = 0.5
Случайный сигнал α = 0.25
Типичный сигнал α = 0.1

Коэффициент активности α

Слайд 83

Энергия, потребляемая, когда значения на вентилях не меняются Вызвано токами утечки

Энергия, потребляемая, когда значения на вентилях не меняются
Вызвано токами утечки IDD
Статическое

энергопотребление:
Pstatic = IDDVDD

Статическое потребление

Слайд 84

Схемы имеют маленькие емкости, низкие токи и высокие частоты. Единицы измерения

Схемы имеют маленькие емкости, низкие токи и высокие частоты.

Единицы измерения

Слайд 85

Оценить энергопотребление смартфона во время работы мобильной игры VDD = 0.8

Оценить энергопотребление смартфона во время работы мобильной игры
VDD = 0.8 В
C

= 5 нФ
f = 2 ГГц
α = 0.1
IDD = 100 мА
P = αCVDD2f + IDDVDD
= (0.1)(5 нФ)(0.8 В)2(2 ГГц) + (100 мА)(0.8 В)
= (0.64 + 0.08) Вт ≈ 0.72 Вт

Пример