Горнец Н.Н., Рощин А.Г. Организация ЭВМ и систем (2006) (1186251), страница 64
Текст из файла (страница 64)
Если этот «ошибочный» разряд содержал «О», то для исправления ошибки в него нужно записать «1», и наоборот, если в нем оказалась «1», то на ее место нужно записать «О». Именно такой способ выявления ошибок предложил Р.Хемминг. Он последовательно разбивал слово на два полуслова (рис.
12.1). В результате такого разбиения получилось!о8зп полуслов, причем в каждом полуслове встречается один разряд, принадлежащий исключительно этому полуслову. Этот разряд и принимается в качестве контрольного. Таким образом, контрольными будут 1, 2, 4 и 8-й разряды. При другом выборе полуслов получается другой корректирующий код с иными номерами контрольных разрядов. Однако это не имеет принципиального значения, так как дешифровка кода возлагается на аппаратуру. Не охваченным проверкой остался только один нулевой разряд.
Его значение может быть как ошибочным, так и верным, так как он не попал ни в одно из проверяемых полуслов. Обычно этот разряд не включают в состав проверяемого слова. Таким образом, при наличии 16 разрядов только 11 являются информационными, четыре служат для размещения контрольной информации, а последний игнорируется. 3-е полуслово 4-е полуслово Рис. 12.1.
Разбиение кодовой комбинации на полуслова 303 Если контрольные разряды записывать в специальный регистр, то появившееся в нем число определяет номер ошибочного разряда, и остается только произвести сложение по модулю 2 содержимого этого разряда с единицей, или инвертирование этого разряда. Код Хемминга и все ему подобные коды имеют Н м = 3.
Контроль арифметических операций. Для проверки правильности выполнения операции сложения, а следовательно, и операций вычитания, умножения, деления и других, которые в компьютере выполняются как многократное сложение, можно воспользоваться контролем по четности, если привлечь некоторые дополнительные сведения об операндах. Пусть нужно произвести сложение двух чисел А + В = 5 = з„, з„ ь ..., зь Значение четности ее кодового веса Р,=з„®з 1®...Юзь В результате сложения получим Р.= Ря ® Рв 8 Рс где Р„и Р, — контрольные цифры операндов А и В соответственно; Рс — контрольная цифра числа, образованного из значений переносов.
Значения Р, и Р,* при отсутствии ошибки должны совпадать, а при возникновении ошибки во время операции сложения Е = Р,'" 9 Р, = Е Проверка умножения, деления и других операций может выполняться на каждом шаге, когда производится операция сложения. Можно воспользоваться таким же приемом и для исправления ошибок при выполнении арифметических операций, если применить код Хемминга.
Однако аппаратура для этого довольно громоздкая и используется обычно только в специальных компьютерах, например бортовых. 12.3. Защита памяти. НА!0-массивы В компьютерной сети очень выгодно держать всю системную информацию не в виде отдельных копий, а централизованно на диске сервера, что позволяет существенно снизить затраты.
При необходимости воспользоваться той или иной частью информации компьютер обращается к серверу и перегружает нужные данные в свою память. Однако при таком подходе резко возрастает опасность полной потери информации при возможном выходе из строя дискового накопителя сервера. В настоящее время жесткие диски становятся все ббльшими по объему и более быстродействующими, но и они не застрахованы от отказов.
Чтобы избежать потерь информации при выходе диска из строя, его содержимое периодически копируется на второй диск или магнитную ленту. 304 Это позволяет исключить полную потерю данных, накопленных за долгое время работы, но не решает проблему полностью: приходится отключать сервер для замены вышедшего из строя диска, находить магнитную ленту с соответствующей копией потерянной информации, восстанавливать содержимое диска.
При этом восстановление будет неполным — восстанавливается лишь информация, сохраненная на ленте в момент ее копирования с диска, а более поздняя информация теряется. На время отключения сервера пользователи сети не имеют доступа к нужной им информации. Для защиты данных от возможных потерь из-за отказов диска сервера предложена архитектура КА1Р, призванная защитить данные в реальном времени. Ее идея состоит в том, чтобы вместо одного дорогого диска большого объема, где хранится вся информация сети, воспользоваться «избыточным массивом недорогих дисков»; именно так расшифровывается и переводится этот термин.
Нужно помнить, что любой КА1Р-массив всегда дороже одного диска большого объема и, как правило, имеет больший объем памяти. Он позволяет обеспечить более высокую производительность по сравнению с накопителем на большом диске и добиться высокой отказоустойчивости. Массив дисков, будучи подключенным к компьютеру, воспринимается им как единый диск большого объема. Все распределение информации по отдельным дискам такого массива осуществляется единым контроллером, а отказоустойчивость обеспечивается за счет избыточности хранимой информации и нужного распределения ее по отдельным дискам.
Кроме того, питание КА1Р- массива осуществляется от нескольких общих автономных источников питания, что также способствует повышению отказоустойчивости. Производительность КА1Р-массива повышается по сравнению с производительностью накопителя на большом диске, так как запись и чтение данных производятся одновременно на несколько поверхностей дисков, входящих в состав массива. Дисковое пространство распределяется между всеми дисками массива.
Отказоустойчивость достигается либо за счет создания дополнительной копии данных, сохраняемой на другой поверхности диска, либо за счет использования контрольных сумм для выявления и исправления ошибок при восстановлении данных. Контрольные суммы также записываются на другие поверхности дисков. Выход из строя одного или большего числа дисков не приводит к потере данных, а его содержимое может быть восстановлено. Существует несколько типов КА1Р-массивов. Они отличаются стоимостью, скоростью записи и чтения и надежностью сохранения информации.
КА1Р 0 — дисковый массив без дополнительной отказоустойчивости. Этот вариант архитектуры предусматривает простое чередо- 305 Рис. 12.2. Схема записи в КА1Р 0 вание данных при записи на несколько накопителей. Поток данных разбивается на блоки, которые записываются на диски нескольких накопителей (рис. 12. 2).
За счет распределения данных, а следовательно, и операций ввода-вывода между всеми дисками массива, обеспечивается высокая производительность. Ее повышению способствует также отсутствие вычисления контрольных сумм. Однако при такой организации не обеспечивается избыточность данных, а следовательно, отказоустойчивость. КАНЗ 1 — дисковый массив с «зеркалнрованием» данных. В таком массиве предусматривается дублирование данных на «зеркальных» дисках, т.е. запись каждого блока в двух экземплярах — каждого экземпляра на свой диск.
Для такой архитектуры используется один дисковый контроллер, который может выполнять одновременно две операции чтения (с двух разных дисков) и дуплексную операцию записи на зеркальные диски. Такой вариант наиболее подходит для небольших сетей, так как отличается простотой реализации, высокой скоростью записи и чтения, высокой скоростью восстановления данных из-за их 100%-ной избыточности (данные восстанавливаются путем простого копирования с исправного диска) и возможностью получить отказоустойчивую дисковую систему всего на двух дисковых накопителях.
Однако он может оказаться довольно дорогим, если требуется память большого объема. Поскольку для хранения данных используется два накопителя, то и цена такой памяти возрастает минимум в два раза. КАП) 2 — дисковый массив с использованием алгоритма Хемминга для проверки н восстановления данных. Архитектура дисковой подсистемы предусматривает запись данных на ряд дисков с добавлением кода Хемминга для обнаружения и исправления ошибок. Вся подлежащая записи информация разбивается на «слова» постоянной длины, причем длина «слова» соответствует числу дисков с данными. Здесь под «словом» понимается последова- 306 тельность бит постоянной длины, которые и записываются на диски с данными.
Для каждого слова данных вычисляется контрольный код Хемминга, т.е. ЕСС (код для проверки и коррекции ошибок), также записываемый на отдельные диски для хранения контрольной информации. Этот вариант ВА1Р отличается максимальной избыточностью, требует исключительно большого объема памяти и большого числа дисков и характеризуется максимальной стоимостью. Однако он позволяет сразу исправлять ошибки и обеспечивает высокую скорость передачи данных, увеличивающуюся с ростом числа дисков в массиве. Очень низкий коэффициент использования дискового пространства приводит к тому, что коммерческих вариантов реализации КА1Р 2 не существует.
КАПЭ 3 — дисковый массив с вычислением контрольной суммы параллельно е передачей данных. Архитектура дисковой системы предусматривает запись данных с чередованием по байтам (полосам). Для записываемых на различных накопителях байтов, или полос, вычисляется значение четности (контрольной суммы), которое размещается на дополнительном накопителе. Для реализации архитектуры ВА1Р 3 требуется минимум два диска для хранения данных (оптимальные результаты при четырех дисках) и один диск для хранений четности. Этот способ размещения данных обеспечивает высокую скорость чтения и записи, при выходе из строя одного из дисковых накопителей общая производительность падает незначительно и довольно хорошо используется дисковое пространство.
Способ применяется при передаче больших блоков данных, например файлов машинной графики. КАП) 4 — дисковый массив с независимыми дисками данных и общим диском хранения контрольной суммы. На один диск записывается весь блок данных, причем запись производится последовательно по дискам. Контрольная сумма для всех блоков одного ряда вычисляется во время операции записи данных и заносится на специальный диск для хранения контрольных сумм.