Читаем Основы AS/400 полностью

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

Простейшая форма обнаружения ошибок — добавление к слову памяти одного разряда четности. Его значение выбирается так, чтобы число разрядов 1 в слове памяти, включая разряд четности, всегда было четным. Если в памяти происходит ошибка, вызывающая изменение значения любого из битов с 1 на 0 или наоборот, то она будет обнаружена, когда при следующем считывании слова окажется, что число разрядов 1 нечетно. Четность позволяет определить одиночную ошибку, но не говорит, в каком разряде она произошла. С помощью такого механизма, обычно применяемого на ПК, можно определить нечетное число ошибок в слове памяти. Но если число ошибок четное, он не поможет.

Большинство компьютеров, используемых для коммерческих задач, в частности AS/400, как для обнаружения, так и для исправления ошибок применяют дополнительные разряды кодов коррекции. Эти дополнительные разряды могут определять все однократные и многократные ошибки, и даже указать, в каком именно разряде они произошли. Таким образом, аппаратура может исправить ошибку и продолжить работу. Значение коррекции ошибок очевидно для каждого, кому приходилось видеть на экране ПК сообщение «memory parity error». С таким сломанным ПК ничего нельзя сделать до тех пор, пока неисправный модуль памяти не заменен. По этой причине многие старшие модели современных ПК используют памяти ECC.

Оригинальная аппаратура System/38 имела 32-разрядное (4-байтовое) слово памяти. ECC требовал дополнительных 7 разрядов, то есть для каждого слова памяти было нужно 39 разрядов. Технология тогда позволяла увеличивать размер слова только приращениями по 8 разрядов, то есть, фактически, слово памяти имело размер 40 разрядов. Для каждого 4-байтового слова памяти предусматривался дополнительный разряд, который и должен был осуществлять функции защиты памяти. Мы назвали его разрядом тега.

Указатель занимает 16 байтов памяти. Мы решили всегда помещать указатели на 16-байтовые границы (все четыре младшие разряда адреса памяти равны 0). Такую конфигурацию обычно обозначают термином четверное слово (quadword), или, иначе говоря, 16-байтовое поле, выровненное на 16-байтовую границу. Есть и двойные слова, а кроме того, слова, выровненные на 8-ми и 4-байтовые границы. Обычно, под термином слово понимается 4 байта.

Указатель в оригинальной System/38 занимал четыре последовательных 4-байтовых слова памяти, каждое со своим разрядом тега. Мы решили, что для каждого слова памяти этот разряд будет равен 1, если слово содержит любую из четырех частей указателя; и 0 — если не содержит. Для самого указателя нужен только один разряд, так что если все четыре разряда в четырех последовательных словах памяти установлены в 1, то значение логического тега указателя равно 1. Если любой из четырех разрядов был равен 0, то и логический тег указателя равнялся 0.

Последующие версии AS/400 имеют 64-разрядное (8-байтовое) слово памяти. Такое слово требует 8 разрядов ЕСС; так что с учетом разряда тега, слова памяти AS/ 400 упакованы по 73 разряда. Мы по-прежнему размещаем указатели на 16-байтовых границах, и у каждого указателя есть один логический разряд тега. Если в AS/400 с 64-разрядным словом, два разряда тега в двух последовательных словах, содержащих указатель, оба равны 1, то и логический тег указателя равен 1. Если же любой из разрядов равен нулю, то и указатель имеет логический тег 0. Чтобы оставаться в рамках принятой терминологии, мы называем 64-разрядное слово памяти двойным словом.

Всякий раз, когда в AS/400 происходит запись в память, аппаратура управления памятью строит ЕСС и сохраняет его вместе со словом памяти. В процессе операции записи эта аппаратура также отключает разряд тега в слове памяти (устанавливает его в 0). Так что в результате выполнения любой стандартной команды записи в память, разряды тега записанных слов всегда будут сброшены в 0.

Режим активных тегов

В главе 2 мы говорили о расширениях архитектуры PowerPC. Одно из таких расширений — режим активных тегов. Когда процессор PowerPC работает в данном режиме, доступны дополнительные команды, которых нет в режиме неактивных тегов. Всего для AS/400 было добавлено 25 команд, доступных только в режиме активных тегов. Сюда входят команды множественной загрузки и сохранения четверных слов в регистрах, а также команды, обратные им. Есть также команды десятичной арифметики, системные функции вызова/возврата и команды выделения для проверки значений разрядов в управляющих регистрах. Шесть новых команд поддерживают теги.

Перейти на страницу:

Похожие книги

Архитектура операционной системы UNIX (ЛП)
Архитектура операционной системы UNIX (ЛП)

Настоящая книга посвящена описанию внутренних алгоритмов и структур, составляющих основу операционной системы (т. н. «ядро»), и объяснению их взаимосвязи с программным интерфейсом. Таким образом, она будет полезна для работающих в различных операционных средах. При работе с книгой было бы гораздо полезнее обращаться непосредственно к исходному тексту системных программ, но книгу можно читать и независимо от него.  Во-вторых, эта книга может служить в качестве справочного руководства для системных программистов, из которого последние могли бы лучше уяснить себе механизм работы ядра операционной системы и сравнить между собой алгоритмы, используемые в UNIX, и алгоритмы, используемые в других операционных системах. Наконец, программисты, работающие в среде UNIX, могут углубить свое понимание механизма взаимодействия программ с операционной системой и посредством этого прийти к написанию более эффективных и совершенных программ.

Морис Дж Бах , Морис Дж. Бах

ОС и Сети, интернет / ОС и Сети / Книги по IT
Как раскрутить и разрекламировать Web-сайт в сети Интернет
Как раскрутить и разрекламировать Web-сайт в сети Интернет

Настоящая книга заинтересует всех, кто столкнулся с вопросами подготовки, размещения в Сети и популяризации Internet ресурсов различного уровня: от домашней странички до корпоративного сайта. В ней вы найдете все, что необходимо для оптимизации Web сайтов под поисковые системы: приемы написания Web-страниц, описание множества самых популярных специализированных программ, предназначенных для подготовки сайта и его раскрутки, создания удачного HTML-кода страниц с правильными метаданными.Книга является практическим руководством для разработчиков Web сайтов и всех, занимающихся их продвижением. Автор приводит множество советов, касающихся создания и анонсирования Web страниц. Рассмотрены средства автоматизации для повышения эффективности разработки и маркетинга при создании и обслуживании сайта. Описание программных и сетевых средств, автоматизирующих процессы тестирования и отладки сайта, обеспечивающих проверку работоспособности и корректности гиперссылок, синтаксиса HTML кода и грамматики размещенного на странице текста, занимает центральное место в книге. Подробно излагаются возможности таких программ, как Linkbot Developer Edition, Domain NameChecker, Retrieve, CyberSpyder Link Test, HTML Link Validator, CSE HTML Validator, A Real Validator, MetaTag ToolKit, MetaMan, WebQA.Отдельная глава посвящена регистрации Web ресурсов в поисковых системах и каталогах. Описываются программы автоматической регистрации (WebPosition, Page Promoter, Web Регистратор), способы взаимодействия с индексирующими роботами поисковых машин, правила применения метаданных. Рассматриваются приемы и методы рекламы сайтов в Internet, указаны критерии ее эффективности.Издание рассчитано на широкий круг читателей и будет полезно как начинающим создателям Web сайтов, так и профессионалам, которые хотят научиться более качественно продвигать в Сети свой Web продукт.

Александр Петрович Загуменнов

ОС и Сети, интернет