Лекция 7. Коды Хэмминга. Подсистема ввода

реклама
Архитектура компьютеров
Лекция 7. Коды Хэмминга.
Подсистема ввода-вывода
А. М. Пеленицын
[email protected]
Южный федеральный университет
Институт математики, механики и компьютерных наук им. И. И. Воровича
Кафедра информатики и вычислительного эксперимента
Весна 2016
А. М. Пеленицын (Мехмат ЮФУ)
Коды Хэмминга. Подсистема I/O
Весна 2016
1 / 20
Коды Хэмминга
Минимальное кодовое расстояние d,
(количество исправляемых ошибок t)
Код 3-кратного повторения:
k = 1, n = 3, d = 3
110
Код проверки чётности:
k = 2, n = 3, d = 2
110
111
010
111
010
011
011
101
101
100
100
000
А. М. Пеленицын (Мехмат ЮФУ)
001
000
Коды Хэмминга. Подсистема I/O
001
Весна 2016
3 / 20
Коды Хэмминга
Коды Хэмминга
I
I
Идея: добавить ряд битов проверки чётности, по корректности
которых после передачи установить позицию ошибки (if any).
(7, 4, 3)-код Хэмминга (n = 7, k = 4, d = 3):
p1
d1
d2
d4
p2
I
d3
p3
(2r − 1, 2r − r − 1)-код Хэмминга:
I
I
I
позиции кодового слова нумеруются с 1;
инфо-биты вписываются подряд в позиции кодового слова,
пропуская позиции 2i−1 , 1 6 i 6 r;
i-й бит проверки чётности (1 6 i 6 r) вписывается на 2i−1 -ю
позицию кодового слова и контролирует чётность инфо-битов в
позициях, номер которых содержит i-ый бит равный 1.
А. М. Пеленицын (Мехмат ЮФУ)
Коды Хэмминга. Подсистема I/O
Весна 2016
4 / 20
Коды Хэмминга
Формулы для (7, 4)-кода Хэмминга (часть 1)
Структура кодового слова c
Пусть исходное сообщение обозначается d = (d1 , d2 , d3 , d4 ), а биты
проверки чётности — pi , тогда:
c = (p1 , p2 , d1 , p3 , d2 , d3 , d4 ).
Формулы для pi через ci
1. p1 = c3 + c5 + c7 , потому что 3 = 11, 5 = 101, 7 = 111;
2. p2 = c3 + c6 + c7 , потому что 3 = 11, 6 = 110, 7 = 111;
3. p3 = c5 + c6 + c7 , потому что 5 = 101, 6 = 110, 7 = 111.
А. М. Пеленицын (Мехмат ЮФУ)
Коды Хэмминга. Подсистема I/O
Весна 2016
5 / 20
Коды Хэмминга
Формулы для (7, 4)-кода Хэмминга (часть 2)
Формулы для pi через di
В приведённых формулах для pi можно заменить ci на биты исходного
сообщения di , используя указанную выше структуру кодового слова c:
1. p1 = d1 + d2 + d4 ,
2. p2 = d1 + d3 + d4 ,
3. p3 = d2 + d3 + d4 .
Итоговая формула для кодового слова
c = (d1 + d2 + d4 , d1 + d3 + d4 , d1 , d2 + d3 + d4 , d2 , d3 , d4 ).
Замечание: вектор c получен из вектора d как результат линейного
преобразования.
А. М. Пеленицын (Мехмат ЮФУ)
Коды Хэмминга. Подсистема I/O
Весна 2016
6 / 20
Коды Хэмминга
Проверочная матрица (7, 4)-кода Хэмминга
Крестики превращаются в единички
Составим таблицу: какие биты проверки чётности отвечают за какие биты
кодового слова. На основе этой таблицы запишем проверочную матрицу H.
p1
p1
p2
p3
p2
d1
x
x
x
x
p3
d2
d3
d4
x
x
x
x
x
x
x
x

1
H := 0
0
0
1
0
1
1
0
0
0
1
1
0
1
0
1
1

1
1
1
Основное свойство проверочной матрицы
Пусть v — принятое по каналу слово, которое отличается от кодового слова c
(7, 4)-кода Хэмминга не более, чем в одной позиции, тогда вектор (он
называется синдромом)
s = Hv
даёт двоичную запись номера этой позиции. Если s = 0, то v = c.
А. М. Пеленицын (Мехмат ЮФУ)
Коды Хэмминга. Подсистема I/O
Весна 2016
7 / 20
Ввод-вывод
Логическая организация I/O
Роль контроллера
I
для устройства: тайминг, контроль;
I
для процессора: декодирование команд, пересылка данных, отчёт
о статусе, распознавание адреса, буферизация, контроль ошибок.
А. М. Пеленицын (Мехмат ЮФУ)
Коды Хэмминга. Подсистема I/O
Весна 2016
9 / 20
Ввод-вывод
Логическая структура контроллера
Interface to
system bus
Interface to
external device
Data
External
device
interface
logic
Data registers
Data
lines
Status/control registers
Status
Control
•
•
•
Address
lines
I/O
logic
Control
lines
А. М. Пеленицын (Мехмат ЮФУ)
Коды Хэмминга. Подсистема I/O
Data
External
device
interface
logic
Status
Control
Весна 2016
10 / 20
Ввод-вывод
Стили взаимодействия с I/O
C участием
процессора
Без прерываний
С прерываниями
Программируемый I/0
I/O на основе П.
Без участия
процессора
А. М. Пеленицын (Мехмат ЮФУ)
Прямой доступ в память
Коды Хэмминга. Подсистема I/O
Весна 2016
11 / 20
I/O с точки зрения процессора (чтение, 3 стиля)
Issue read
command to
I/O module
CPU
Read status
of I/O
module
I/O
Not
ready
Check
Status
Issue read
command to
I/O module
I/O
Read status
of I/O
module
CPU
Check
status
Error
condition
Ready
No
CPU
I/O
Do something
else
Interrupt
I/O
CPU
Error
condition
Ready
Read word
from I/O
module
I/O
Write word
into memory
CPU
Done?
Yes
Next instruction
(a) Programmed I/O
CPU
Memory
No
Read word
from I/O
module
I/O
Write word
into memory
CPU
Done?
Yes
Next instruction
(b) Interrupt-Driven I/O
CPU
Memory
CPU DMA
Issue read
block command
Do something
to I/O module
else
Read status
of DMA
module
Interrupt
DMA
Next instruction
(c) Direct Memory Access
CPU
Ввод-вывод
I/O с точки зрения программиста
I
Доступ через «порты» (Port-Mapped I/O)
Пример: инструкции IN/OUT в x86.
I
Через память (Memory Mapped I/O, MMIO)
Пример: «обычный» MOV.
I
Программные прерывания
Пример: INT в x86.
(Другие типы прерываний: аппаратные, исключения.)
А. М. Пеленицын (Мехмат ЮФУ)
Коды Хэмминга. Подсистема I/O
Весна 2016
13 / 20
Системные шины
Эволюция шин на ПК
I
ISA (Industry Standard Architecture) @ IBM PC, 1981;
I
EISA для 32-разрядных IBM-совместимых компьютеров, 1988;
I
PCI, 1992;
I
PCIe (Express), 2004.
А. М. Пеленицын (Мехмат ЮФУ)
Коды Хэмминга. Подсистема I/O
Весна 2016
15 / 20
Системные шины
Устройство типичного ПК 1990-х
А. М. Пеленицын (Мехмат ЮФУ)
Коды Хэмминга. Подсистема I/O
Весна 2016
16 / 20
Системные шины
Звёздная топология PCIe
CPU
Memory
Root complex
PCIe
endpoint
PCIe
endpoint
А. М. Пеленицын (Мехмат ЮФУ)
Switch
PCIe
bridge to
PCI/PCI-X
PCIe
endpoint
Legacy
endpoint
PCI/PCI-X
Коды Хэмминга. Подсистема I/O
Весна 2016
17 / 20
Системные шины
Дорожки (lane) PCIe
А. М. Пеленицын (Мехмат ЮФУ)
Коды Хэмминга. Подсистема I/O
Весна 2016
18 / 20
Системные шины
Слоты PCIe и PCI
• PCIe ×4,
• PCIe ×16,
А. М. Пеленицын (Мехмат ЮФУ)
• PCIe ×1,
• PCIe ×16,
Коды Хэмминга. Подсистема I/O
• PCI (32-bit)
Весна 2016
19 / 20
Системные шины
Intel motherboard architecture
4 Series (до 2008 г.)
А. М. Пеленицын (Мехмат ЮФУ)
5+ Series (после 2008 г.)
Коды Хэмминга. Подсистема I/O
Весна 2016
20 / 20
Скачать