Цифровая схемотехника и архитектура компьютера. Цифровые функциональные узлы. (Глава 5)

Содержание

Слайд 2

Цифровая схемотехника и архитектура компьютера Эти слайды предназначены для преподавателей, которые

Цифровая схемотехника и архитектура компьютера

Эти слайды предназначены для преподавателей, которые читают

лекции на основе учебника «Цифровая схемотехника и архитектура компьютера» авторов Дэвида Харриса и Сары Харрис. Бесплатный русский перевод второго издания этого учебника можно загрузить с сайта компании Imagination Technologies:
https://community.imgtec.com/downloads/digital-design-and-computer-architecture-russian-edition-second-edition
Процедура регистрации на сайте компании Imagination Technologies описана на станице:
http://www.silicon-russia.com/2016/08/04/harris-and-harris-2/
Слайд 3

Благодарности Перевод данных слайдов на русский язык был выполнен командой сотрудников

Благодарности

Перевод данных слайдов на русский язык был выполнен командой сотрудников университетов

и компаний из России, Украины, США в составе:
Александр Барабанов - доцент кафедры компьютерной инженерии факультета радиофизики, электроники и компьютерных систем Киевского национального университета имени Тараса Шевченко, кандидат физ.-мат. наук, Киев, Украина;
Антон Брюзгин - начальник отдела АО «Вибро-прибор», Санкт-Петербург, Россия.
Евгений Короткий - доцент кафедры конструирования электронно-вычислительной аппаратуры факультета электроники Национального технического университета Украины «Киевский Политехнический Институт», руководитель открытой лаборатории электроники Lampa, кандидат технических наук, Киев, Украина;
Евгения Литвинова – заместитель декана факультета компьютерной инженерии и управления, доктор технических наук, профессор кафедры автоматизации проектирования вычислительной техники Харьковского национального университета радиоэлектроники, Харьков, Украина;
Юрий Панчул - старший инженер по разработке и верификации блоков микропроцессорного ядра в команде MIPS I6400, Imagination Technologies, отделение в Санта-Кларе, Калифорния, США;
Дмитрий Рожко - инженер-программист АО «Вибро-прибор», магистр Санкт-Петербургского государственного автономного университета аэрокосмического приборостроения (ГУАП), Санкт-Петербург, Россия;
Владимир Хаханов – декан факультета компьютерной инженерии и управления, проректор по научной работе, доктор технических наук, профессор кафедры автоматизации проектирования вычислительной техники Харьковского национального университета радиоэлектроники, Харьков, Украина;
Светлана Чумаченко – заведующая кафедрой автоматизации проектирования вычислительной техники Харьковского национального университета радиоэлектроники, доктор технических наук, профессор, Харьков, Украина.
Слайд 4

Глава 5 :: Темы Введение Арифметические схемы Представление чисел Последовательностные функциональные

Глава 5 :: Темы

Введение
Арифметические схемы
Представление чисел
Последовательностные функциональные блоки
Матрицы памяти
Матрицы логических

элементов
Слайд 5

Цифровые функциональные блоки: Логические элементы, мультиплексоры, декодеры, регистры, схемы арифметики, счетчики,

Цифровые функциональные блоки:
Логические элементы, мультиплексоры, декодеры, регистры, схемы арифметики, счетчики, матрицы

памяти и матрицы логических элементов
Функциональные блоки демонстрируют принципы иерархичности, модульности и регулярности проектируемых систем
Иерархия более простых компонентов
Строго определенные интерфейсы и функции
Регулярная структура легко масштабируется в системы различных размеров
Подобные функциональные блоки будут использованы в главе 7 для проектирования микропроцессора

Введение

Слайд 6

Одноразрядный сумматор. 1


Одноразрядный сумматор. 1

Слайд 7

Одноразрядный сумматор. 2


Одноразрядный сумматор. 2

Слайд 8

Одноразрядный сумматор. 3


Одноразрядный сумматор. 3

Слайд 9

Типы распространения переносов: Последовательный (медленный) Ускоренный групповой (быстрый) Префиксный (самый быстрый)


Типы распространения переносов:
Последовательный (медленный)
Ускоренный групповой (быстрый)
Префиксный (самый быстрый)
Два последних типа используются для многоразрядных сумматоров,

но их реализация требует дополнительных аппаратных затрат
Условное обозначение

Многоразрядные сумматоры

Слайд 10

Цепь одноразрядных сумматоров Перенос проходит через всю цепочку Недостаток: медленное суммирование Сумматор с последовательным переносом

Цепь одноразрядных сумматоров
Перенос проходит через всю цепочку
Недостаток: медленное суммирование

Сумматор с последовательным

переносом
Слайд 11

Задержка сумматора складывается из задержек разрядов в каждом звене: tripple =

Задержка сумматора складывается из задержек разрядов в каждом звене:
tripple = NtFA
где

tFA – задержка одного полного сумматора

Сумматор с последовательным переносом

Слайд 12

Определить значение переноса (Cout) в каждом блоке k-разрядного сумматора, используя сигналы

Определить значение переноса (Cout) в каждом блоке k-разрядного сумматора, используя сигналы

generate и propagate
Некоторые определения:
Разряд i формирует перенос либо путем его генерирования (generating) либо путем распространения (propagating) переноса со своего соответствующего входа на свой выход
Генерирование (Gi) и распространение (Pi) сигналов для каждого разряда:
Разряд i будет генерировать перенос, если Ai и Bi (оба) равны 1.
Gi = Ai Bi
Разряд i будет распространять перенос от соответствующего входа к соответствующему выходу, если Ai или Bi равен 1.
Pi = Ai + Bi
Перенос разряда i (Ci):
Ci = Ai Bi + (Ai + Bi )Ci-1 = Gi + Pi Ci-1

Сумматор с ускоренным групповым переносом (СУГП)

Слайд 13

Шаг1: Вычислить Gi и Pi для всех разрядов Шаг 2: Вычислить

Шаг1: Вычислить Gi и Pi для всех разрядов
Шаг 2: Вычислить G

и P для всех k-битовых блоков сумматора
Шаг 3: Перенос Cin распространяется через все k-битовые блоки генерации/распространения

Суммирование с ускоренным групповым переносом

Слайд 14

Пример: 4-разрядные блоки (G3:0 и P3:0) : G3:0 = G3 +

Пример: 4-разрядные блоки (G3:0 и P3:0) :
G3:0 = G3 +

P3 (G2 + P2 (G1 + P1G0 )
P3:0 = P3P2 P1P0
В общем случае,
Gi:j = Gi + Pi (Gi-1 + Pi-1 (Gi-2 + Pi-2Gj )
Pi:j = PiPi-1 Pi-2Pj
Ci = Gi:j + Pi:j Ci-1

Сумматор с ускоренным групповым переносом

Слайд 15

32-разрядный сумматор с ускоренным групповым переносом с 4-разрядными блоками

32-разрядный сумматор с ускоренным групповым переносом с 4-разрядными блоками

Слайд 16

Для N-разрядного сумматор с ускоренным групповым переносом с k-разрядными блоками: tCLA

Для N-разрядного сумматор с ускоренным групповым переносом с k-разрядными блоками:
tCLA

= tpg + tpg_block + (N/k – 1)tAND_OR + ktFA
tpg : задержка генерации всех Pi, Gi
tpg_block : задержка генерации всех Pi:j, Gi:j
tAND_OR : задержка тракта вход Cin - выход Cout из элементов И/ИЛИ в k-разрядном блоке сумматор с ускоренным групповым переносом
N-разрядный сумматор с ускоренным групповым переносом практически всегда более быстрый, чем сумматор с последовательным переносом для N > 16

Задержки сумматор с ускоренным групповым переносом

Слайд 17

Вычисляет перенос на входе (Ci-1) для каждого разряда, затем вычисляет сумму:


Вычисляет перенос на входе (Ci-1) для каждого разряда, затем вычисляет сумму:
Si

= (Ai ⊕ Bi) ⊕ Ci
Вычисляет G и P для 1-, 2-, 4-, 8-разрядов блоков, до тех пор, пока не станут известны все переносы Gi (входные переносы всех разрядов)
Количество каскадов log2N

Префиксный сумматор

Слайд 18

Перенос на входе либо генерируется для данного разряда либо распространяется от


Перенос на входе либо генерируется для данного разряда либо распространяется от

предыдущего.
Разряд -1 соответствует Cin, тогда
G-1 = Cin, P-1 = 0
Значение переноса на входе разряда i равно значению переноса на выходе разряда i-1:
Ci-1 = Gi-1:-1
Gi-1:-1: сигнал генерации блока разрядов от i-1 до -1
Выражение для суммы:
Si = (Ai ⊕ Bi) ⊕ Gi-1:-1
Цель: быстрое вычисление G0:-1, G1:-1, G2:-1, G3:-1, G4:-1, G5:-1, … (называемых префиксами)

Префиксный сумматор

Слайд 19

Сигналы генерации и распространения блока, охватывающего разряды i:j: Gi:j = Gi:k


Сигналы генерации и распространения блока, охватывающего разряды i:j:
Gi:j = Gi:k +

Pi:k Gk-1:j
Pi:j = Pi:kPk-1:j
Более детально:
Генерация: блок i:j генерирует перенос, если:
Старшие разряды (i:k) генерируют перенос или
Старшие разряды распространяют перенос, сгенерированный в младших разрядах (k-1:j)
Распространение: блок i:j распространяет перенос, если и старшие и младшие разряды распространяют перенос

Префиксный сумматор

Слайд 20

Схема префиксного сумматора


Схема префиксного сумматора

Слайд 21

tPA = tpg + log2N(tpg_prefix ) + tXOR tpg: задержка формирования

tPA = tpg + log2N(tpg_prefix ) + tXOR
tpg: задержка формирования

Pi Gi (элементы И или ИЛИ)
tpg_prefix: задержка черной префиксной ячейки (элементы И-ИЛИ)

Задержка префиксного сумматора

Слайд 22

Сравнить задержки: 32-разрядный сумматор с последовательным переносом, сумматор с ускоренным групповым

Сравнить задержки: 32-разрядный сумматор с последовательным переносом, сумматор с ускоренным групповым

переносом, и префиксного сумматора
сумматор с ускоренным групповым переносом содержит 4-разрядные блоки
Задержка 2-входового вентиля = 100 ps; задержка полного сумматора = 300 ps

Сравнение задержек сумматоров

Слайд 23

Сравнить задержки: 32-разрядный сумматор с последовательным переносом, сумматор с ускоренным групповым

Сравнить задержки: 32-разрядный сумматор с последовательным переносом, сумматор с ускоренным групповым

переносом и префиксный сумматор
сумматор с ускоренным групповым переносом содержит 4-разрядные блоки
Задержка 2-входового вентиля = 100 ps; задержка полного сумматора = 300 ps
tripple = NtFA = 32(300 ps)
= 9.6 ns
tCLA = tpg + tpg_block + (N/k – 1)tAND_OR + ktFA
= [100 + 600 + (7)200 + 4(300)] ps
= 3.3 ns
tPA = tpg + log2N(tpg_prefix ) + tXOR
= [100 + log232(200) + 100] ps
= 1.2 ns

Сравнение задержек сумматоров

Слайд 24

Устройство вычитания


Устройство вычитания

Слайд 25

Компаратор: Сравнение на равенство


Компаратор: Сравнение на равенство

Слайд 26

Copyright © 2007 Elsevier 5- Компаратор: Меньше, чем

Copyright © 2007 Elsevier

5-<>

Компаратор: Меньше, чем

Слайд 27

Copyright © 2007 Elsevier 5- Арифметико-логическое устройство (АЛУ)

Copyright © 2007 Elsevier

5-<>

Арифметико-логическое устройство (АЛУ)

Слайд 28

Copyright © 2007 Elsevier 5- Схема АЛУ

Copyright © 2007 Elsevier

5-<>

Схема АЛУ

Слайд 29

Copyright © 2007 Elsevier 5- Сравнение на «Меньше» (Set Less Than,

Copyright © 2007 Elsevier

5-<>

Сравнение на «Меньше» (Set Less Than, SLT)
Конфигурирование 32-разрядного

АЛУ для операции SLT:
A = 25 и B = 32

Сравнение «Меньше, чем». Пример

Слайд 30

Copyright © 2007 Elsevier 5- Конфигурирование 32-разрядного АЛУ для операции SLT:

Copyright © 2007 Elsevier

5-<>

Конфигурирование 32-разрядного АЛУ для операции SLT: A =

25 и B = 32
A < B, поэтому Y должен быть 32-разрядным представлением 1 (0x00000001)
F2:0 = 111
F2 = 1 (сумматор работает как вычитатель): 25 - 32 = -7
-7 имеет 1 в старшем разряде (S31 = 1)
F1:0 = 11 мультиплексор выбирает Y = S31 (дополнение нулями) = 0x00000001.

Сравнение «Меньше, чем». Пример

Слайд 31

Copyright © 2007 Elsevier 5- Логическое устройство сдвига: смещает сдвигаемое значение

Copyright © 2007 Elsevier

5-<>

Логическое устройство сдвига: смещает сдвигаемое значение влево или

вправо и заполняет пустые разряды нулями «0»
Пример: 11001 >> 2 =
Пример 11001 << 2 =
Арифметическое устройство сдвига: при сдвиге влево работает так же, как и логическое, а при сдвиге вправо заполняет пустые разряды значением старшего бита (most significant bit, msb).
Пример 11001 >>> 2 =
Пример : 11001 <<< 2 =
Циклический сдвиг: сдвигает биты по кругу, таким образом, что уходящий бит появляется на месте появившегося свободного разряда на другом конце числа
Пример : 11001 ROR 2 =
Пример : 11001 ROL 2 =

Устройство сдвига (Shifter)

Слайд 32

Логическое устройство сдвига: Ex: 11001 >> 2 = 00110 Ex: 11001

Логическое устройство сдвига:
Ex: 11001 >> 2 = 00110
Ex: 11001 << 2

= 00100
Арифметическое устройство сдвига:
Ex: 11001 >>> 2 = 11110
Ex: 11001 <<< 2 = 00100
Циклическое устройство сдвига:
Ex: 11001 ROR 2 = 01110
Ex: 11001 ROL 2 = 00111

Устройства сдвига

Слайд 33

Схема устройства сдвига


Схема устройства сдвига

Слайд 34

A Пример: 00001 Пример : 11101 A >>> N = A

A << N = A × 2N
Пример: 00001 << 2 =

00100 (1 × 22 = 4)
Пример : 11101 << 2 = 10100 (-3 × 22 = -12)
A >>> N = A ÷ 2N
Пример : 01000 >>> 2 = 00010 (8 ÷ 22 = 2)
Пример : 10000 >>> 2 = 11100 (-16 ÷ 22 = -4)

Устройство сдвига как умножитель и делитель

Слайд 35

Частичное произведение, формируемое путем умножения текущего разряда множителя на все разряды

Частичное произведение, формируемое путем умножения текущего разряда множителя на все разряды

множимого
Сдвинутые частичные произведения, суммированные для формирования результата

Устройство умножения

Слайд 36

Умножитель 4 x 4


Умножитель 4 x 4

Слайд 37

Делитель 4 x 4 A/B = Q + R/B Алгоритм: R’


Делитель 4 x 4

A/B = Q + R/B
Алгоритм:
R’ = 0
for i

= N-1 to 0
R = {R’ << 1. Ai}
D = R - B
if D < 0, Qi=0, R’=R
else Qi=1, R’=D
R’=R
Слайд 38

Числа можно представить с помощью двоичного представления Положительные числа Беззнаковое двоичное


Числа можно представить с помощью двоичного представления
Положительные числа
Беззнаковое двоичное
Отрицательные числа
Дополнительный код


Прямой код
А как же дробные числа?

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

Слайд 39

Две основных способа представления: Fixed-point: двоичное число с фиксированной точкой Floating-point:


Две основных способа представления:
Fixed-point: двоичное число с фиксированной точкой
Floating-point: двоичное число

с плавающей точкой – двоичная точка «плавает» между значащими цифрами

Дробные числа

Слайд 40

6.75 содержит 4 разряда целой части и 4 разряда дробной части


6.75 содержит 4 разряда целой части и 4 разряда дробной части

:
В определенном месте подразумевается наличие двоичной точки
Количество разрядов целой и дробной части должно быть определено заранее

Числа с фиксированной точкой

Слайд 41

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


Представить 7.510 используя 4 целых бита и 4 дробных.

Пример числа с

фиксированной точкой
Слайд 42

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


Представить 7.510 используя 4 целых бита и 4 дробных.
01111000

Пример числа с

фиксированной точкой
Слайд 43

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


Представление:
Прямой код (знак/величина)
Дополнительный код (дополнение до основания системы счисления)
Пример: Представить -7.510

используя 4 целых и 4 дробных бита
Прямой код:
Дополнительный код:

Знаковые числа с фиксированной точкой

Слайд 44

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


Представление:
Прямой код (знак/величина)
Дополнительный код (дополнение до основания системы счисления)
Пример: Представить -7.510

используя 4 целых и 4 дробных бита
Прямой код:
11111000
Дополнительный код:
1. +7.5: 01111000
2. Инвертировать значения разрядов: 10000111
3. Добавить 1 к младшему разряду: + 1
10001000

Знаковые числа с фиксированной точкой

Слайд 45

Двоичная точка «плавает» между значащими цифрами Подобно десятичному представлению в экспоненциальном


Двоичная точка «плавает» между значащими цифрами
Подобно десятичному представлению в экспоненциальном представлении
Например,

записать 27310 в экспоненциальном представлении :
273 = 2.73 × 102
В общем виде, число записывается в экспоненциальном представлении как:
± M × BE
M = мантисса
B = основание показательной функции
E = порядок (экспонента)
Например, M = 2.73, B = 10, and E = 2

Числа с плавающей точкой

Слайд 46

Пример: представить число 22810 используя 32-битное представление с плавающей точкой Рассмотрим


Пример: представить число 22810 используя 32-битное представление с плавающей точкой
Рассмотрим 3

версии – последняя версия называется IEEE 754 floating-point standard

Числа с плавающей точкой

Слайд 47

Преобразовать десятичное в двоичное (не меняйте местами шаги 1 & 2!):


Преобразовать десятичное в двоичное (не меняйте местами шаги 1 & 2!):
22810

= 111001002
Записать число в двоичной системе и экспоненциальном представлении:
111001002 = 1.110012 × 27
Заполнить каждое поле 32-битное числа с плавающей точкой:
Знак – положительный, знаковый бит – (0)
8 разрядов порядка представляют значение 7
Остальные 23 разряда – мантисса

Представление с плавающей точкой. 1

Слайд 48

Первый разряд мантиссы – всегда 1: 22810 = 111001002 = 1.11001


Первый разряд мантиссы – всегда 1:
22810 = 111001002 = 1.11001 ×

27
Следовательно, нет необходимости хранить его: неявная ведущая 1
Хранить только дробные разряды мантиссы в 23-разрядном поле

Представление с плавающей точкой. 2

Слайд 49

Смещенный порядок: смещение = 127 (011111112) Смещенный порядок = смещение +


Смещенный порядок: смещение = 127 (011111112)
Смещенный порядок = смещение +

порядок
Порядок 7 хранится как:
127 + 7 = 134 = 0x100001102
32-разрядное (IEEE 754) представление с плавающей точкой числа 22810
в 16-ричном коде: 0x43640000

Представление с плавающей точкой. 3

Слайд 50

Записать число -58.2510 с плавающей точкой (IEEE 754) Представление с плавающей точкой. Пример


Записать число -58.2510 с плавающей точкой (IEEE 754)

Представление с плавающей точкой.

Пример
Слайд 51

Записать число -58.2510 с плавающей точкой (IEEE 754) 58.2510 = 111010.012


Записать число -58.2510 с плавающей точкой (IEEE 754)
58.2510 = 111010.012
Записать в

двоичной системе и экспоненциальном представлении:
1.1101001 × 25
Заполнить поля:
Знаковый разряд: 1 (отрицательный)
8 разрядов порядка: (127 + 5) = 132 = 100001002
23 разряда мантиссы: 110 1001 0000 0000 0000 0000
в 16-ричном коде: 0xC2690000

Представление с плавающей точкой. Пример

Слайд 52

Плавающая точка: Особые случаи


Плавающая точка: Особые случаи

Слайд 53

Одинарная точность: 32-разрядное 1 знаковый разряд, 8 разрядов порядка, 23 разряда


Одинарная точность:
32-разрядное
1 знаковый разряд, 8 разрядов порядка, 23 разряда мантиссы
Смещение =

127
Двойная точность:
64- разрядное
1 знаковый разряд, 11 разрядов порядка, 52 разряда мантиссы
Смещение = 1023

Плавающая точка: точность

Слайд 54

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


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

представления
Режимы округления:
Вниз – к меньшему
Вверх – к большему
К нулю (к меньшему по модулю)
К ближайшему
Пример: округлить 1.100101 (1.578125) к числу с 3 дробными разрядами
Вниз: 1.100
Вверх: 1.101
К нулю: 1.100
К ближайшему: 1.101 (1.625 ближе к 1.578125, чем 1.5)

Плавающая точка: округление

Слайд 55

Выделить порядок числа и мантиссу Присоединить ведущую 1 к мантиссе Сравнить


Выделить порядок числа и мантиссу
Присоединить ведущую 1 к мантиссе
Сравнить порядки
Выполнить сдвиг

меньшей мантиссы при необходимости
Сложить мантиссы
Нормализовать мантиссы и подобрать порядки при необходимости
Округлить результат
Выполнить сборку порядка и мантиссы обратно в формат с плавающей точкой

Плавающая точка: Суммирование

Слайд 56

Сложить числа с плавающей точкой: 0x3FC00000 0x40500000 Суммирование с плавающей точкой. Пример


Сложить числа с плавающей точкой:
0x3FC00000
0x40500000

Суммирование с плавающей точкой. Пример

Слайд 57

1. Извлечь порядок и мантиссу Для первого числа (N1): S =


1. Извлечь порядок и мантиссу
Для первого числа (N1): S = 0, E

= 127, F = .1
Для второго числа (N2): S = 0, E = 128, F = .101
2. Присоединить ведущую 1 к мантиссе
N1: 1.1
N2: 1.101

Суммирование с плавающей точкой. Пример

Слайд 58

3. Сравнить порядки 127 – 128 = -1, поэтому сдвиг N1


3. Сравнить порядки
127 – 128 = -1, поэтому сдвиг N1 вправо на

1 разряд
4. Сдвиг меньшей мантиссы при необходимости
shift N1’s mantissa: 1.1 >> 1 = 0.11 (× 21)
5. Сложить мантиссы
0.11 × 21
+ 1.101 × 21
10.011 × 21

Суммирование с плавающей точкой. Пример

Слайд 59

6. Нормализовать мантиссы и подобрать порядки при необходимости 10.011 × 21


6. Нормализовать мантиссы и подобрать порядки при необходимости
10.011 × 21 = 1.0011

× 22
7. Округлить результат
нет необходимости (уложились в 23 разряда)
8. Выполнить сборку порядка и мантиссы обратно в формат с плавающей точкой
S = 0, E = 2 + 127 = 129 = 100000012, F = 001100..
in hexadecimal: 0x40980000

Суммирование с плавающей точкой. Пример

Слайд 60

Инкремент на каждом переднем фронте Используется в цикле для перебора всех


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

Например,
000, 001, 010, 011, 100, 101, 110, 111, 000, 001…
В примере использованы:
Отображение цифровых часов
Программный счетчик: отслеживает выполнение текущей команды

Счетчики

Слайд 61

Реализация Вдвигается новый бит по переднему фронту тактового сигнала Выдвигается бит


Реализация

Вдвигается новый бит по переднему фронту тактового сигнала
Выдвигается бит по переднему

фронту тактового сигнала
Последовательно-параллельный преобразователь: преобразует последовательный вход (Sin) в параллельный выход (Q0:N-1)

Сдвигающий регистр

Обозначение

Слайд 62

Когда Load = 1, работает как обычный N-разрядный регистр Когда Load


Когда Load = 1, работает как обычный N-разрядный регистр
Когда Load =

0, работает как регистр сдвига
Может работать как последовательно-параллельный преобразователь (Sin → Q0:N-1) или параллельно-последовательный преобразователь (D0:N-1 → Sout)

Сдвигающий регистр с параллельной загрузкой

Слайд 63

Эффективно хранят большие объемы данных 3 основных типа: Динамическое оперативное запоминающее


Эффективно хранят большие объемы данных
3 основных типа:
Динамическое оперативное запоминающее устройство (ОЗУ)

(DRAM)
Статическое оперативное запоминающее устройство (ОЗУ) (SRAM)
Постоянное запоминающее устройство (ПЗУ), память только для чтения (ROM)
M-разрядное значение данных считывается/записывается по уникальному N-разрядному адресу

Матрицы памяти

Слайд 64

2-мерная матрица битовых ячеек Каждая битовая ячейка хранит 1 бит N

2-мерная матрица битовых ячеек
Каждая битовая ячейка хранит 1 бит
N адресных битов

и M битов данных:
2N строк и M столбцов
Глубина (Depth): количество строк (количество слов)
Ширина (Width): число столбцов (размер, длина слова)
Размер матрица: depth × width = 2N × M

Матрицы памяти

Слайд 65

22 × 3-битовая матрица Количество слов: 4 Длина слова: 3 бита

22 × 3-битовая матрица
Количество слов: 4
Длина слова: 3 бита
Например, 3-битовое слово

100 хранится по адресу 10

Пример матрицы памяти

Слайд 66

Матрицы памяти


Матрицы памяти

Слайд 67

Z Запоминающие элементы матрицы памяти


Z

Запоминающие элементы матрицы памяти

Слайд 68

0 1 Z Z Запоминающие элементы матрицы памяти


0

1

Z

Z

Запоминающие элементы матрицы памяти

Слайд 69

Линия выборки слов (worldline): формирует сигнал разрешения для выбора строки в

Линия выборки слов (worldline):
формирует сигнал разрешения для выбора строки
в матрице

памяти только одна строка может читаться/записываться
соответствует уникальному адресу
только одна линия выборки слов может быть активна

Матрица памяти

Слайд 70

с произвольным доступом, оперативная память (RAM, ОЗУ): энергозависимая (volatile) Память только


с произвольным доступом, оперативная память (RAM, ОЗУ): энергозависимая (volatile)
Память только для

чтения (ROM, ПЗУ): энергонезависимая (nonvolatile)

Типы памяти

Слайд 71

Энергозависимая: содержимое памяти теряется при отключении электропитания Быстрые чтение и запись


Энергозависимая: содержимое памяти теряется при отключении электропитания
Быстрые чтение и запись


Основная память в компьютере – RAM (DRAM)
Исторически сложилось название «память с произвольным доступом», так как в ней доступ к любому слову данных для чтения или записи осуществляется всегда за одно и то же время (в отличие от памяти с последовательным доступом, такой, например, как магнитная лента)

RAM, ОЗУ: оперативная память

Слайд 72

Энергонезависимая: содержимое памяти сохраняется при отключении электропитания Чтение быстрое, но запись


Энергонезависимая: содержимое памяти сохраняется при отключении электропитания
Чтение быстрое, но запись

невозможна или медленная
Флэш память в видеокамерах, флэш-накопителях – ROM
Исторически сложилось название «память только для чтения,ROM», поскольку информация в нее могла быть записана только во время ее производства или путем пережигания плавких перемычек. После того, как память была сконфигурирована, она не могла быть записана снова. Теперь это уже не так.

ROM, ПЗУ: Память только для чтения

Слайд 73

DRAM (динамическое ОЗУ - Dynamic random access memory) SRAM (Статическое ОЗУ


DRAM (динамическое ОЗУ - Dynamic random access memory)
SRAM (Статическое ОЗУ -

Static random access memory)
Отличаются способом хранения данных:
DRAM использует конденсатор
SRAM использует инверторы с перекрёстными обратными связями

Типы RAM

Слайд 74

Изобрел DRAM в 1966, IBM Многие были настроены скептически к работоспособности


Изобрел DRAM в 1966, IBM
Многие были настроены скептически к работоспособности его

идеи
С середины 1970-х DRAM используется практически во всех компьютерах

Роберт Деннард, 1932 -

Слайд 75

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

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

(перезаписано) как периодически, так и после считывания:
Утечка заряда конденсатора разрушает значение
Чтение уничтожает сохраненное значение

DRAM

Слайд 76

DRAM


DRAM

Слайд 77

SRAM


SRAM

Слайд 78

DRAM bit cell: SRAM bit cell: Матрицы памяти. Обзор


DRAM bit cell:

SRAM bit cell:

Матрицы памяти. Обзор

Слайд 79

ПЗУ (ROM): Точечная нотация


ПЗУ (ROM): Точечная нотация

Слайд 80

Разрабатывал память и быстродействующие схемы для Toshiba, 1971-1994 Изобрел флэш-память в

Разрабатывал память и быстродействующие схемы для Toshiba, 1971-1994
Изобрел флэш-память в

процессе самостоятельной работы, проводимой по ночам и в выходные дни в конце 1970-х
Процесс стирания памяти напомнил ему о вспышке камеры
Toshiba медленно коммерциализировала идею; Intel была первой на рынке в 1988
Рынок флэш-памяти растет на $ 25 млрд в год

Фуджио Масуока, 1944 -

Слайд 81

Хранение данных в ПЗУ (ROM)


Хранение данных в ПЗУ (ROM)

Слайд 82

Data2 = A1 ⊕ A0 Data1 = A1 + A0 Data0


Data2 = A1 ⊕ A0
Data1 = A1 + A0
Data0 = A1A0

Логические

функции и ПЗУ (ROM)
Слайд 83

Реализовать следующие логические функции, используя ПЗУ 22 × 3-бит: X =


Реализовать следующие логические функции, используя ПЗУ 22 × 3-бит:
X = AB
Y

= A + B
Z = A B

Пример: Логика на основе ПЗУ

Слайд 84

Реализовать следующие логические функции, используя ПЗУ 22 × 3-бит: X =

Реализовать следующие логические функции, используя ПЗУ 22 × 3-бит:
X = AB
Y

= A + B
Z = A B

Пример: Логика на основе ROM

Слайд 85

Data2 = A1 ⊕ A0 Data1 = A1 + A0 Data0


Data2 = A1 ⊕ A0
Data1 = A1 + A0
Data0 = A1A0

Логика

на основе любой матрицы памяти
Слайд 86

Реализовать следующие логические функции, используя 22 × 3-битовую матрицу памяти: X

Реализовать следующие логические функции, используя 22 × 3-битовую матрицу памяти:
X =

AB
Y = A + B
Z = A B

Логика на основе матрицы памяти

Слайд 87

Реализовать следующие логические функции, используя 22 × 3-битовую матрицу памяти: X

Реализовать следующие логические функции, используя 22 × 3-битовую матрицу памяти:
X =

AB
Y = A + B
Z = A B

Логика на основе матрицы памяти

Слайд 88

Таблицы преобразования (lookup tables, LUTs), каждой входной комбинации соответствует некоторое состояние

Таблицы преобразования (lookup tables, LUTs), каждой входной комбинации соответствует некоторое состояние

выхода

Логика на основе матрицы памяти

Слайд 89

Порт: пара адрес/данные 3-портовая память 2 порта чтения (A1/RD1, A2/RD2) 1


Порт: пара адрес/данные
3-портовая память
2 порта чтения (A1/RD1, A2/RD2)
1 порт записи (A3/WD3,

WE3 разрешает запись)
Регистровый файл: малая многопортовая память

Многопортовая память

Слайд 90

// 256 x 3 модуль памяти с одним портом чтения/записи module

// 256 x 3 модуль памяти с одним портом чтения/записи
module dmem( input

logic clk, we,
input logic[7:0] a
input logic [2:0] wd,
output logic [2:0] rd);
logic [2:0] RAM[255:0];
assign rd = RAM[a];
always @(posedge clk)
if (we)
RAM[a] <= wd;
endmodule

SystemVerilog: матрицы памяти

Слайд 91

PLAs (ПЛМ, Programmable logic arrays) –программируемая логическая матрица AND матрица, затем


PLAs (ПЛМ, Programmable logic arrays) –программируемая логическая матрица
AND матрица, затем OR

матрица
Только комбинационная логика
Фиксированные внутренние соединения
FPGAs (Field programmable gate arrays) – Программируемая пользователем матрица логических элементов
Массив конфигурируемых логических блоков CLB
Комбинационная и последовательностная логика
Программируемые внутренние соединения

Матрицы логических элементов

Слайд 92

X = ABC + ABC Y = AB Программируемые логические матрицы

X = ABC + ABC
Y = AB

Программируемые логические матрицы

Слайд 93

PLA (ПЛМ): Точечная нотация


PLA (ПЛМ): Точечная нотация

Слайд 94

Состоит из: LE (логических элементов): реализуют логику IOE (Элементов ввода/вывода): интерфейс


Состоит из:
LE (логических элементов): реализуют логику
IOE (Элементов ввода/вывода): интерфейс с внешним

миром
Programmable interconnection: программируемые соединения связывают логические элементы с элементами ввода/вывода
Некоторые FPGAs включают и другие блоки, такие как умножители и память RAMs

FPGA: Программируемая пользователем матрица логических элементов

Слайд 95

Обобщенная структура FPGA


Обобщенная структура FPGA

Слайд 96

Состоят из: Таблиц преобразования (LUT): реализуют комбинационную логику Триггеров: реализуют последовательностную


Состоят из:
Таблиц преобразования (LUT): реализуют комбинационную логику
Триггеров: реализуют последовательностную логику
Мультиплексоров:

соединяют таблицы преобразования (LUT) и триггеры

LE: Логические элементы

Слайд 97

Altera Cyclone IV LE


Altera Cyclone IV LE

Слайд 98

Конфигурируемые логические блоки (CLB) Spartan имеют: 1 четырехвходовую LUT 1 регистровый


Конфигурируемые логические блоки (CLB) Spartan имеют:
1 четырехвходовую LUT
1 регистровый выход


1 комбинационный выход

Altera Cyclone IV LE

Слайд 99

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


Покажите, как сконфигурировать логические блоки Cyclone IV для выполнения следующих функций:
X

= ABC + ABC
Y = AB

Конфигурация ЛБ. Пример

Слайд 100

Покажите, как сконфигурировать ЛБ Cyclone IV для выполнения следующих функций: X


Покажите, как сконфигурировать ЛБ Cyclone IV для выполнения следующих функций:
X =

ABC + ABC
Y = AB

Конфигурация ЛБ. Пример