Реферат: Многофункциональный контроллер ВЗУ

--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--
еще рефераты
Еще работы по информатике