Реферат: Многофункциональный контроллер ВЗУ
--PAGE_BREAK--Механизм общения контроллера с дискомКонтроллер жесткого диска
Использование контроллера DMA (Прямого доступа к памяти) в настоящее время не применяется для операций ввода-вывода с жестким диском. Контроллер в жесткого диска в АТ использует 512-байтный секторный буфер, к которому МП (i80286) обращается как к 16-разрядному устройству. Когда этот буфер полон или пуст, контроллер прерывает МП (с помощью INT 14), после чего данные передаются при помощи строковых команд ввода-вывода в память или из памяти со скоростью 2 Мбайта в секунду (у IBM XT, использовавшего подсистему DMA, скорость передачи в два раза ниже). Такая скорость достигается за счет использования трех тактов (включая одно состояние ожидания) для переноса данных (16 бит) в процессор и еще трех тактов (включая еще одно состояние ожидания) для переноса данных в память. Таким образом, для передачи двух байтов данных используется шесть тактов шины.
Таблица параметров жесткого диска
Она находится по адресу вектора прерывания INT 41h для первого жесткого диска и INT 46h для второго (если он есть):
Смещ.
Длина
Содержимое
+0
2
Максимальное число цилиндров
+2
1
Максимальное число головок
+3
2
Не используется в АТ
+5
2
Стартовый цилиндр предкомпенсации записи
+7
1
Не используется в АТ
+8
1
Управляющий байт
7: запрет повторного доступа
6: запрет повторения по ошибке ЕСС
3: более 8 головок
+9
1
Не используется в АТ
+0Ah
1
Не используется в АТ
+0Bh
1
Не используется в АТ
+0Ch
2
Зона парковки головок
+0Eh
1
Количество секторов на дорожку
+0Fh
1
Резерв
Методы контроля передачи информации при обмене ЭВМ и ВЗУ
Дефекты информации, хранимой на магнитном носителе можно подразделить на две основные группы:
1. Временные(обратимые) — это пыль, частицы отслоившегося лакового покрытия.
2. Постоянные(необратимые) — это различные царапины, трещины в покрытии, прилипшая грязь и т. п.
Для обнаружения и коррекции ошибок были разработаны системы кодирования информации с избыточностью (внедрение контрольных разрядов, образуемых с помощью выполнения определенных арифметических операций над всеми информационными разрядами).
Но следует учитывать при разработке и применении конкретной системы кодирования, что возможность обнаружения и коррекции ошибок возрастает с избыточностью кода, но одновременно усложняется алгоритм кодирования и декодирования и, как следствие, возрастает объем буферной памяти, и снижается скорость передачи информации, усложняется аппаратура кодирования и декодирования и, следовательно, система становится менее надежной.
Для двоичного кода М сообщений, каждое из которых имеет дину n, можно закодировать, если выполняется условие:2n >=M илиn>=log2 M.
Приведем примеры различных методов кодирования:
Пусть имеются четыре события:
А1, А2, А3, А4, причем вероятности их появления различны:
Р(А1)=0,5; Р(А2)=0,25; Р(А3)= Р(А1)=0,125.
Равномерное кодирование— без учета вероятности появления того или иного события.
Метод Фанно — А1=02; А2=102; А3=1102; А4=1112. Это пример неравномерного кодирования с учетом вероятности появления события. Система Фанно однозначно декодируема, поскольку ни одно А не является префиксом следующего. Такие системы кодирования называют префиксными.
Основные характеристики кодов:
1. Длина кода
n
Число символов, составляющих кодовое слово
2. Основание кода
m
Количество отличных друг от друга значений импульсных признаков, используемых в кодовом слове
3. Мощность кода
Мр
число разрешенных кодовых слов
Полное число кодовых
слов
М
все возможные кодовые слова
4. Число информационных символов
k
без комментариев
5. Число проверочных символов
r
без комментариев
6. Избыточность кода
R
R=r/n
7. Скорость передачи кодовых слов
R’
R’=k/n
8. Кодовое расстояние
d
Число несовпадающих позиций двух кодовых слов
Имея один избыточных символ, можно обнаружить только нечетное количество ошибок. Поэтому используют другой метод. Объясним на примере:
Пусть должно прийти 9-разрядное число. Расположим приходящие разряды следующим образом:
В1
В2
В3
С1
Пусть
В1ÅВ4ÅВ7 = С4
В4
В5
В6
С2
В4ÅВ5ÅВ6 = С2
В2ÅВ5ÅВ8 = С5
В7
В8
В9
С3
В7ÅВ8ÅВ9 = С3
В3ÅВ6ÅВ9 = С6
<img width=«131» height=«77» src=«ref-1_1948794077-607.coolpic» alt=«Выноска 3: Добавим проверочные символы» v:shapes="_x0000_s1101">С4
С5
С6
С7
С1ÅС2ÅС3ÅС4ÅС5ÅС6= С7
Пусть приходит число 011010001. Пусть произошла ошибка в 7-ом разряде
Передано
Принято
1
1
1
1
1
1
1
1
1
1
1
1
1
<img width=«12» height=«22» src=«ref-1_1948794684-95.coolpic» v:shapes="_x0000_s1106">При сравнении В7ÅВ8ÅВ9 = С3 в строке
<img width=«12» height=«12» src=«ref-1_1948794779-86.coolpic» v:shapes="_x0000_s1111"> В1ÅВ4ÅВ7 = С4 в столбце
Следовательно, ошибочный разряд локализован можно исправить.
Но это был случай единичной ошибки, а с двойной ошибкой этот метод не справляется, то есть определить может, но исправить — нет.
1
1
1
1
1
1
На рисунке видно, что, используя этот метод, нельзя понять, где произошла ошибка (В2, В3, В8, В9).
Для дальнейшего объяснения d(x,y) между двумя кодовыми словами х и у называется число несовпадающих позиций. Пример: х=01101, у=00111 d(x,y)=2. Это расстояние называется кодовым расстояние Хемминга.
Итак, код способен исправить любые комбинации из q или меньшего числа ошибок тогда и только тогда, когда его кодовое расстояние > 2q. В настоящее время только для кодов с dmin получено такое соотношение между числом проверочных символов r и длиной кода n:
r>= log2 (n+1).
продолжение
--PAGE_BREAK--Циклические коды
Циклическими кодами называются такие коды, которые с любым своим вектором содержит также его циклический сдвиг. Циклические коды основаны на представлении передаваемых данных в виде полинома (многочлена) и используются при последовательной передаче информации между Процессором и ВЗУ.
а(х)= а0+а1 х+а2 х2+...+ аn-1 хn-1 Для вектора а(а0, а1, ..., аn-1).
Циклический сдвиг а’(х)= аn-1 +а0x +а1 х2+...+ аn-2 хn-1 .
С помощью этих кодов можно обнаруживать:
· Ошибки в 1 бите, если порождающий многочлен содержит > 1 члена,
· Ошибки в 2 битах, если порождающий многочлен содержит 3 члена,
· Ошибки в нечетном количестве битов, если порождающий многочлен содержит множитель (х+1),
· Пакеты ошибок длиной менее к+1 бит, если порождающий многочлен содержит множитель (х+1), и один множитель с 3мя членами и более (к+1 — число бит порождающего многочлена).
Принцип построения циклических кодов
Каждая кодовая комбинация Q(x) умножается на одночлен xr, а затем делится на многочлен. Степень каждого одночлена, входящего в Q(x), повышается на r. При делении получается С(х) такой же степени, что и Q(x), и остаток Р(х) степени не более r-1, наибольшее число разрядов которого <=r.
Q(x) xr / g(x) = C(x)+ P(x)/g(x) ..............................(1)
В ЭВМ используется метод умножения кодовой комбинации Q(x) на одночлен xr и прибавлением к этому произведению остатка Р(х) на порождающий многочлен g(x).
Реально умножается на фиксированный многочлен типа x3Åx2Å1
<img width=«496» height=«109» src=«ref-1_1948794865-1723.coolpic» v:shapes="_x0000_i1025">
Схема умножения на многочлен.
Вначале все ячейки содержа 0. Пусть требуется умножить x4 Åx2Å1 на x3 Åx2Å1
1 такт
На вход поступает единичный коэффициент при старшей степени x4, запоминается в 1-й ячейке памяти и передается на выход.
2 такт
На вход поступает 0-й коэффициент при x3. Содержимое первой ячейки приходит во вторую, на выходе сумматора появляется 1, которая, суммируясь с выходом 3-й ячейки, появляется на выходе 2-го сумматора
3 такт
На вход поступает коэффициент при x2. Он запоминается в 1-й ячейке памяти и передается на выход.
4 такт
На вход поступает 0-й коэффициент при x1. Первый сумматор имеет на выходе 1, а второй — 0.
5 такт
На вход сумматора поступает 1 — коэффициент при x0.
6-8
такты
Учитывая, что после умножения многочленов старший коэффициент имеет 7-ю степень, необходимо сдвинуть на 3 разряда (убираются разряды, содержащие 0)
Такт
Вх. символ
Содержимое регистра после очередного сдвига
Вых. символ
0
--
000
--
1
1
100
1
2
0
010
1
3
1
101
1
4
0
010
0
5
1
101
1
6
0
010
0
7
0
001
0
8
0
000
1
<img width=«491» height=«85» src=«ref-1_1948796588-1539.coolpic» v:shapes="_x0000_i1026">
Схема деления на многочлен
На вход со старших степеней коэффициенты, а на выход — коэффициенты частного. По окончании деления в регистре сдвига слева направо оказываются записанными коэффициенты остатка, начиная с младших степеней.
Пример — разделить x5 Åx4 Åx3 Åx2Å1 на x3 Åx2Å1.
Такт
Вх. символ
Содержимое регистра после очередного сдвига
Вых. символ
0
--
000
--
1
1
100
0
2
1
110
0
3
1
111
1
4
0
110
0
5
1
111
1
6
1
010
--
Рассмотрим процесс обнаружения и исправления ошибок. Пусть n=7 и необходимо исправить q=1. Из формул n=2c-1 c кодовым расстоянием dmin>=2q+1 и r<=cqÞ c=3 и r=3. Так как 3 делится без остатка на 1 и 3, то сомножителями двучлена будут все неприводимые многочлены степени 1 и 3. Пусть имеется кодовое слово x3 Åx2Å1.
<img width=«535» height=«281» src=«ref-1_1948798127-4106.coolpic» v:shapes="_x0000_i1027">
Запись
Первые 4 такта Клапан 1 закрыт и информационные символы кодового слова поступают через комбинационную схему на выход и одновременно на схему, которая в соответствии с формулой 1 умножает кодовое слово на х3 и делит на g(x). В регистре получается остаток от деления. Далее клапан 1 открывается, производит 3 сдвига и остаток в виде контрольных символов выводится из регистра. В результате формируется кодовое слово с контрольными символами
х6+х4+х3+х2 -> 1011100
Чтение
После приема всей информации проверяется содержимое всех разрядов регистра, и если все нули, то ошибок нет.
продолжение
--PAGE_BREAK--
еще рефераты
Еще работы по информатике
Реферат по информатике
Системы цифрового видеонаблюдение при организации охранных структур на особо охраняемых объект
18 Июня 2015
Реферат по информатике
Расчет стоимости тура при работе с клиентом
3 Сентября 2013
Реферат по информатике
Анализ алгоритма вируса
3 Сентября 2013
Реферат по информатике
Роль информационных технологий в управлении предприятием
3 Сентября 2013