ВНУТРИМАШИННЫЙ СИСТЕМНЫЙ ИНТЕРФЕЙС. ШИНЫ РАСШИРЕНИЯ.

Внутримашинный системный интерфейс - система связи и сопряжения узлов и блоков ЭВМ между собой - представляет собой совокупность электрических линий связи (проводов), схем сопряжения с компонентами компьютера, протоколов (алгоритмов) передачи и преобразования сигналов.

Существуют два варианта организации внутримашинного интерфейса.

1. Многосвязный интерфейс: каждый блок ПК связан с прочими блоками своими локальными проводами; многосвязный интерфейс применяется только в простейших бытовых ПК.

2. 2. Односвязный интерфейс: все блоки ПК связаны друг с другом через общую или системную шину.

В большинстве современных ПК в качестве системного интерфейса используется системная шина. Важнейшими функциональными характеристиками системной шины являются: количество обслуживаемых ею устройств и ее пропускная способность, т.е. максимально возможная скорость передачи информации. Пропускная способность шины зависит от ее разрядности (есть шины 8-, 16-, 32- и 64-разрядные) и тактовой частоты, на которой шхша работает. В качестве системной шины используются:

1. шины расширений - шины общего назначения, позволяющие подключать большое число самых разнообразных устройств;

2. локальные шины, специализирующиеся на обслуживании небольшого количества устройств определенного класса.

Системная шина. Это основная интерфейсная система компьютера, обеспечивающая сопряжение и связь всех его устройств между собой. Системная шина включает в себя:

1. кодовую шину данных (КШД), содержащую провода и схемы сопряжения для параллельной передачи всех разрядов числового кода (машинного слова) операнда;

2. кодовую шину адреса (КША), включающую провода и схемы сопряжения для параллельной передачи всех разрядов кода адреса ячейки основной памяти или порта ввода-вывода внешнего устройства;

3. кодовую шину инструкций (КШИ), содержащую провода и схемы сопряжения для передачи инструкций (управляющих сигналов, импульсов) во все блоки машины;

4. шину питания, имеющую провода и схемы сопряжения для подключения блоков ПК к системе энергопитания.

Шина PCI - соединение внешних устройств - позволяет подключать 10 устройств разной конфигурации с возможностью автоконфигурирования; разрядность PCI - 32 бита с возможностью расширения до 64 бит, теоретическая пропускная способность 132 Мбайт/с, а в 64-битовом варианте - 263 Мбайт/с.

Шина PCI-X - эта спецификация опиралась на существовавшую технологию PCI, но за счет ряда усовершенствований протокола она позволила значительно увеличить производительность шины: при частоте 133 МГц и ширине 64 разряда ее максимальная пропускная способность составляет свыше 1 Гб/с (точнее, 1066 Мб/с).

PCI Express - компьютерная шина, использующая программную модель шины PCI и высокопроизводительный физический протокол, основанный на последовательной передаче данных. Горячая замена карт; гарантированная полоса пропускания (QoS); управление энергопотреблением; контроль целостности передаваемых данных. Для подключения устройства PCI Express используется двунаправленное последовательное соединение типа точка-точка, называемое lane. Соединение между двумя устройствами PCI Express называется link, и состоит из одного (называемого 1х) или нескольких (2х, 4х, 8х, 12х, 16х и 32х) двунаправленных последовательных соединений lane (1х - 0,5 ГБ/с).

PCI Express External Cabling - внешний интерфейс PCI Express; максимальная длина кабеля может составлять 10 метров.

Шина AGP - специализированная 32-битная системная шина для видеокарты; работа на тактовой частоте 66 МГц; увеличенная пропускная способность; режим работы с памятью DMA (прямой доступ к памяти, в этом режиме основной памятью считается встроенная видеопамять на карте) и DME (в этом режиме основная и видеопамять находятся как бы в общем адресном пространстве); разделение запросов на операцию и передачу данных; в настоящее время, шина исчерпала свои возможности и полностью вытеснена шиной PCI Express.

Шина USB - универсальная последовательная шина, предназначенная для периферийных устройств; USB-кабель представляет собой две витые пары: по одной паре происходит передача данных в каждом направлении (дифференциальное включение), а другая пара используется для питания периферийного устройства (+5 В); к одному контроллеру шины US В можно подсоединить до 127 устройств через цепочку концентраторов (они используют топологию «звезда»),

USB OTG - дальнейшее расширение спецификации USB 2.0, предназначенное для лёгкого соединения периферийных USB-устройств друг с другом без необходимости подключения к ПК.

USB wireless - позволяет организовать беспроводную связь с высокой скоростью передачи информации (до 480 Мбит/с на расстоянии 3 метра и до 110 Мбит/с на расстоянии 10 метров).

Шина IEEE 1394 (FireWire, i-Lmk) - последовательная высокоскоростная шина, предназначенная для обмена цифровой информацией между компьютером и другими электронными устройствами. Скорость передачи данных - 100, 200 и 400 Мбит/с (IEEE 1394b) и 800, 1600 Мбит/с ( IEEE 1394b).

5. КОДИРОВАНИЕ ИНФОРМАЦИИ В КОМПЬЮТЕРЕ. АЛГОРИТМЫ ПОМЕХОУСТОЙЧИВОСТИ КОДИРОВАНИЯ.

Условимся называть алфавит, с помощью которого представляется информация до преобразования, первичным; алфавит конечного представления - вторичным.

Код - (1) правило, описывающее соответствие знаков или их сочетаний одного алфавита знакам или их сочетаниям другого алфавита.

Код - (2) знаки вторичного алфавита, используемые для представления знаков или их сочетаний первичного алфавита.

Кодирование - перевод информации, представленной посредством первичного алфавита, в последовательность кодов.

Декодирование - операция, обратная кодированию, т.е. восстановление информации в первичном алфавите по полученной последовательности кодов.

Операции кодирования и декодирования называются обратимыми, если их последовательное применение обеспечивает возврат к исходной информации без каких-либо ее потерь.

Приемное устройство фиксирует интенсивность и длительность сигналов. Элементарные сигналы (0 и 1) могут иметь одинаковые или разные длительности. Их количество в коде (длина кодовой цепочки), который ставится в соответствие знаку первичного алфавита, также может быть одинаковым (в этом случае код называется равномерным) или разным (неравномерный код). Наконец, коды могут строиться для каждого знака исходного алфавита (алфавитное кодирование) или для их комбинаций (кодирование блоков, слов). В случае использования неравномерного кодирования или сигналов разной длительности для отделения кода одного знака от другого между ними необходимо передавать специальный сигнал - временной разделитель (признак конца знака) или применять такие коды, которые оказываются уникальными. При

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

- 26x2=52 букв латинского алфавита (с учетом прописных и строчных);

- 33x2=66 букв русского алфавита;

- цифры 0... 9 - всего 10;

- знаки математических операций, знаки препинания, спецсимволы ~20.

Получаем, что общее число символов N ~ 148. Теперь можно оценить длину кодовой

цепочки:K(2) >log2 148 >7,21. Поскольку K(2) должно быть целым, очевидно К(2) = 8. Именно

такой способ кодирования принят в компьютерных системах: любому символу ставится в соответствие цепочка из 8 двоичных разрядов (8 бит). Такая цепочка получила название байт, а представление таким образом символов - байтовым кодированием.

Байт наряду с битом может использоваться как единица измерения количества информации в сообщении. Один байт соответствует количеству информации в одном символе алфавита при их равновероятном распределении. Этот способ измерения количества информации называется также объемным.

Именно байт принят в качестве единицы измерения количества информации в международной системе единиц СИ. 1 байт = 8 бит. Использование 8-битных цепочек позволяет

о

закодировать 2 = 256 символов, что превышает оцененное выше N.

Для совместимости технических устройств и обеспечения возможности обмена информацией между многими потребителями требуется согласование кодов. Подобное согласование осуществляется в форме стандартизации кодовых таблиц. В персональных компьютерах и телекоммуникационных системах применяется международный байтовый код ASCII (American Standard Code for Information Interchange - «американский стандартный код обмена информацией»). Он регламентирует коды первой половины кодовой таблицы (номера кодов от 0 до 127, т.е. первый бит всех кодов 0). В эту часть попадают коды прописных и строчных английских букв, цифры, знаки препинания и математических операций, а также некоторые управляющие коды (номера от 0 до 31). Ниже приведены некоторые ASCII-коды:

Знак, Код Код
клавиша двоичный десятичный
пробел
А (лат)
В (лат)
Z
[Esc]
[Enter]

 

Вторая часть кодовой таблицы - она считается расширением основной - охватывает коды в интервале от 128 до 255 (первый бит всех кодов 1). Она используется для представления символов национальных алфавитов (например, русского или греческого), а также символов псевдографики. Для этой части также имеются стандарты, например, для символов русского языка это КОИ-8, КО И-7 и др.

В настоящее время находит все более широкое применение еще один международный стандарт кодировки - Unicode. В нем использовано 16-битное кодирование, т.е. для представления каждого символа отводится 2 байта. Такая длина кода обеспечивает включения в первичный алфавит 65536 знаков. Это позволяет создать и использовать единую для всех распространенных алфавитов кодовую таблицу.

Алгоритмы помехоустойчивости кодирования:

1. Код защиты по четности:

В данном коде существует информационная часть и контрольный разряд:

1010101 0

информационная часть контрольный разряд

Контрольный разряд определяется по следующему правилу: суммируется по модулю 2 количество единиц в информационной части: 1 + 1=0, 1 +0=1. Если в информационной части количество единиц четно, то контрольный разряд равен 0. Если наоборот, то равен 1. Информационная часть выбирается так, чтобы количество единиц было четным. Если под действием помехи единица в одном го разрядов станет 0 или наоборот, то это будет обнаружено, т.е. однократная ошибка обнаруживается. Если два разряда меняются под действием помехи (двукратная ошибка), то она не обнаруживается. Ошибки нечетной кратности обнаруживаются. Ошибки четной кратности не обнаруживаются. Существуют кодовые комбинации разрешенные (четные) и запрещенные (нечетные). Защита от помехи заключается в распознавании запрещенной или разрешенной кодовой комбинации.

2. Коды с обнаружением и исправлением ошибок:

Ошибку необходимо обнаружить и автоматически исправить. При обнаружении происходит остановка приема и по обратному каналу связи от приемника к источнику происходит повторный запрос. При автоматическом исправлении ошибка исправляется автоматически и источник даже не знает, как и откуда возникла ошибка, и была ли она. Коды с обнаружением и исправлением ошибок требуют повышенной избыточности. Существует большое количество кодов с исправлением ошибок.

Коды Хемминга:

Идея кода Хемминга заключается в неоднократной проверке на четность (не менее трех раз). Простейший код Хемминга называется (7.4), где 7 - общее количество n; 4 - количество информационных разрядов nи. Количество контрольных разрядов: nk=n-nи.

Таблица формирования кода Хемминга:

8 7 6 5 4 3 2 1

к и и и к и к к

где к - контрольный разряд; и - информационный разряд.

Место контрольного разряда определяется как 2i, где i=0,1,2...

Правило определения места контрольного разряда: необходимо вычисление контрольных сумм (сколько контрольных разрядов, столько и контрольных сумм S): S1=x1 +ХЗ+Х5+Х7+Х9+... (суммируются нечетные разряды через один); S2:=x:2+x3+x6+x7+x10+x11+ ... (суммируются попарно через два); S3=x4+x5+x6+x7+x12+ ... (суммируются через четыре по четыре); S4=x8+x9+x10+x11+ ... +х20+ ... (суммируются по восемь через восемь).

Если ошибки нет, то эти контрольные суммы должны быть равны нулю (S1=0,S2=0,S3=0 ...). Отсюда вытекает правило выбора контрольных разрядов: Х1=ХЗ+Х5+Х7+ ... ; х2=хз + Хб + Х7 + ... ;

Х4=Х5 +Х6 +Х7 + ... .

Обнаружение и исправление ошибок основано на вычислении контрольных сумм. Если S1=0, то ошибки нет в нечетных разрядах. Если S2=0, то ошибки нет в попарных разрядах. Опознаватель ошибок S составляется из контрольных сумм и записывается со старшего разряда: S= S3S2S1

Если S =011, то ошибка в третьем разряде. Опознаватель ошибки дает номер ошибочного разряда. Для определения требуемого количества контрольных разрядов в коде Хемминга можно воспользоваться формулой:

n=2nk , где n=nи+nk

Если nk =3, то S=000-111 , т.е. выявляется 7 видов ошибок и защищается 7 разрядов.

Если nk =4, то S=0000-1 111 , т.е. выявляется 15 видов ошибок и защищается 15 разрядов.

Группы циклических кодов:

Название «циклический код» означает, что при циклическом сдвиге кодовой комбинации получается новая комбинация, которая также принадлежит к этим кодам. Эту особенность используют для проверки правильности циклического кода. Обнаружение и исправление ошибок в этом коде связано с операцией деления на специальную кодовую операцию, образующую полином Р(х).

Представление кодовой комбинации в виде полинома:

Р(х)=10112=1*х3+0*х2:+1*х1+1*х03'+х+1 - кодовая комбинация представленная в виде суммы степеней (в виде полинома). Здесь номер разряда - показатель степени. Если Xi=0, то в сумме его опускают. Если xi=l, то показатель степени опускают. Деление полиномов является основной операцией по выявлению и исправлению ошибок. Оно схоже с обычным алгебраическим делением: вычитание заменяется суммированием по модулю 2. Если при делегата полиномов получается остаток, то это признак ошибки, и кодовая комбинация не принадлежит к циклическому коду.

Формирование циклического кода

1) Выбирается образующий полином. Чем больше количество разрядов Р(х), тем больше корректирующая способность и большее количество разрядов можно защитить. Выбирается образующий Р(х) из кодовой комбинации аналогично простому арифметическому числу (11,13,17,19,23...). Степень образующего полинома k-это номер старшего разряда кодовой комбинации. 1110=10112= Р(х) к=3

2) Выбирается исходная кодовая комбинация Q(x), которую необходимо защитить от помех; например, безизбыточный код.

3) Сдвигаем эту кодовую комбинацию Q(x) влево на k разрядов.

4) Делим Q(x) *х k на образующий полином Р(х).

5) Делим пока не получим остаток R(x).

6) Сложим Q(x) *х k + R(x) по модулю 2.

7) Полученная кодовая комбинация будет циклическим кодом.

Формула формирования циклического кода: F(x)= Q(x) *х k + R(x).

Выбор степени образующего полинома выбирается также как и для кода Хемминга: n=2k-l или ni+k=2k-l , где n- полное количество разрядов. Если k=3, то п=23-1=7 разрядов; если k=5, то п=25-1=31 разряд. Выгода защищать большое количество разрядов.

Обратная операция - проверка циклического кода сводится к обнаружению и исправлению возможной ошибки. Если k=3, то искажение одинарной ошибки обнаруживается и исправляется. Если искажено 2 разряда, то ошибка только обнаруживается. Если искажено 3 разряда, то она может быть не обнаружена.