Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика (1 семестр).doc
Скачиваний:
143
Добавлен:
11.06.2015
Размер:
777.73 Кб
Скачать

6.7.Контроль оперативной памяти

Разберем один из способов, который носит название «контроль по нечету» (рисунок 7).  Традиционно считается, что байт содержит 8 разрядов, на самом деле их 9. Только девятый бит программно недоступен, с ним работает только контроллер оперативной памяти. Придется ввести операцию: суммирование по модулю 2. Операция определяется ТАБЛИЦЕЙ

или 0 ⊕ 0 = 0; 0 ⊕ 1 = 1; 1 ⊕ 0 = 1; 1 ⊕ 1 = 0. Здесь знаком ⊕ обозначается операция сложения по модулю 2. Предположим, что по общей шине на контроллер оперативной памяти поступил байт, который надо записать в оперативную память. Этот байт состоит пока из восьми разрядов. Контроллер оперативной памяти складывает биты по модулю 2, к результату прибавляет 1 и полученное двоичное число записывает в контрольный разряд. КР = Б0 ⊕ Б1 ⊕ Б2 ⊕ … ⊕ Б7 ⊕ 1. Можно сообразить, что количество единиц в девяти разрядах нечетно. Сумма по модулю 2 девяти разрядов сразу после записи равна единице. При чтении контроллер суммирует девять разрядов по модулю 2 и, если результат отличен от единицы, прерывает работу компьютера. Уважаемый читатель! Подскажите, какое событие при этом проверяется?

Внимательный читатель сразу скажет, что предложен плохой метод. Если изменены значения двух разрядов, ошибка не будет обнаружена. Более того, если изменить значения четного количества разрядов, ошибка не будет обнаружена. Специалисты по теории вероятностей, тем не менее, утверждают, что вероятность обнаружения ошибки достаточно велика. Однако искажение одного байта весьма редкое событие. Чаще искажается группа байтов. Трудно представить, что соседние байты искажаются одинаково. Поэтому вероятность обнаружения ошибки существенно возрастает. И метод, все-таки, великолепен. Если компьютер предназначен для управления технически опасными средствами, требования к надежности существенно растут. Можно добавить несколько контрольных разрядов, тогда расширенный байт можно закодировать по кодам Хемминга. Мы получим не только возможность обнаруживать ошибки с высокой вероятностью, но и иногда исправлять обнаруженную ошибку

6.9.Прерывание

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

Уже примитивное описание прерывания показывает, что его возникновение и обработка разнесены во времени и пространстве. Необходимы средства связи. В компьютере этим средством может быть общая шина. Для передачи прерывания могут быть выделены одна или несколько линий, называемых линиями прерывания. Прерывается всегда некоторый процесс, в данном случае прерывается выполняемая программа. Поэтому выполнять прерывание должен центральный процессор. Выделим основные события, определяющие прерывание. 1. Прерывание возникло. В одном из регистров внешнего устройства появилось целое двоичное число без знака. Возможно появление сигнала на линии внешней связи. 2. Прерывание передано. На линии прерывания появился сигнал.  3. Прерывание пришло. В регистре прерывания (регистр процессора) появилась единица. 4. Прерывание произошло. Центральный процессор сменил слово состояния.