- Любовные романы
- Фантастика и фэнтези
- Ненаучная фантастика
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Юмор
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Работа с клиентами
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Зарубежная литература о культуре и искусстве
- Пословицы, поговорки
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
Основы AS/400 - Фрэнк Солтис
Шрифт:
Интервал:
Закладка:
Что же случилось? Во-первых, одна IPL в день — это неплохое допущение для ранних System/38, но после того как многие заказчики стали использовать свои компьютеры 24 часа в сутки, времени на перезагрузку не осталось. Кроме того, наши системы сильно увеличились в размерах, и время IPL стало слишком большим. С тех пор мы внесли существенные изменения в AS/400, что позволило сократить время IPL до нескольких минут. Но даже при этом одна IPL в день была неверным допущением. Второй ошибкой в вычислениях было предположение о 64-килобайтном сегменте. Используя представление адреса 24/24 оригинальный VMC всегда создавал 16-мегабайтные сегменты.
Ситуация усугублялась тем, что компонент управления основной памятью в оригинальном VMC разделял полное 48-разрядное виртуальное адресное пространство на квадранты. Старшие два разряда адреса задавали квадрант в зависимости от назначения последнего. Один квадрант был зарезервирован для адресов постоянных объектов, так что у всех постоянных адресов два старших разряда были одинаковы. Другой квадрант был выделен адресам для временных объектов, третий — для адресов временных объектов групп доступа[ 68 ]. Так как постоянные объекты не могут входить в группу доступа, то четвертый квадрант не использовался. Такое решение было принято в предположении, что 48-разрядное адресное пространство настолько велико, что на одну его четверть можно безболезненно «закрыть глаза». Из 256 ТБ (248 байтов) виртуальной памяти, которыми мы так любили похваляться, 64 ТБ никогда не использовались в System/38 и первых моделях AS/400.
Проблема, возникшая в некоторых больших системах AS/400, состояла в выходе за пределы диапазона временных адресов. Эта проблема получила название переполнения идентификатора сегмента, так как все идентификаторы сегментов, доступные в интервалах между перезагрузками, были использованы. При разделении адресного пространства на квадранты на каждую IPL приходилось лишь по 4 миллиона 16-мегабайтных временных сегментов. Вследствие этого, большие системы с приложениями, использовавшими много временных объектов, выходили за пределы диапазона временных идентификаторов сегментов, если не перегружались по несколько дней. С точки зрения пользователя, положение можно было исправить довольно просто — перезагрузить систему[ 69 ]. Но причин происшедшего это паллиативное решение не устраняло.
8первые версии ОС для AS/400 были внесены изменения, позволявшие уменьшить проблему переполнения адресов. Компоненты стали использовать 64-килобай-тные сегменты вместо 16-мегабайтных, везде, где было возможно. Был также задействован ранее выброшенный квадрант адресного пространства. Разумеется, эти изменения не решили проблему, но они позволили нам продержаться до появления новых RISC-процессоров.
Проблема касалась и постоянных адресов. Их максимальное число ограничено объемом дискового пространства на подключенных к системе устройствах, поскольку даже удаленные объекты продолжают занимать некоторое место на диске. Мы ограничили общий объем дискового пространства, которое могло быть подключено к AS/ 400, чтобы пользователь не мог исчерпать постоянные адреса. Ведь выход за пределы постоянных адресов нельзя исправить с помощью IPL, здесь потребуется полная переустановка системы, что, разумеется, совершенно неприемлемо.
Я потратил несколько разделов на описание структуры адресации System/38 и первых моделей AS/400, чтобы показать причины, заставившие IBM перейти на RISC-процессоры. Еще до выпуска первой AS/400 мы знали, что 48-разрядный адрес ограничивает будущий рост системы. По мере увеличения размеров и скорости работы, системы начинали использовать все больше временных адресов. Заказчики же хотели подключать все больший объем дисков.
Нам потребовалось некоторое время, чтобы убедить руководство в невозможности использовать 48-разрядный адрес в будущих системах. В Рочестере всегда была популярна старая поговорка: «Не надо чинить то, что не ломается». И вот, наконец, мы убедили менеджеров, что то, что сломалось, сломалось безвозвратно. Хорошо еще то, что поломка случилась внутри системы. Независимость AS/400 от технологии защитила наших заказчиков.
Если в вычислительной архитектуре изменяются адреса, то приходится менять и все остальное. Мы восприняли случившееся как шанс избавиться от IMPI и перейти на RISC. Наш первый RISC-процессор, который мы начали разрабатывать в 1990 году и назвали С-RISC («С» — обозначает коммерческий), имел 96-разрядный адрес. У нас появилось место для такого большого адреса в указателях, и мы не стали стесняться. Когда в 1991 году было принято решение использовать архитектуру PowerPC, размер адреса был сокращен до 64 разрядов.
Трансляция адреса
Перед обращением в память виртуальный адрес в любой вычислительной системе должен быть транслирован в реальный. Ранее мы говорили, что в архитектуре PowerPC есть еще один уровень адресов, которые называются эффективными и используются программами. Эффективный адрес должен быть сначала транслирован в виртуальный, и только после этого — в реальный. В этом разделе мы рассмотрим, как выполняются эти трансляции. Приготовьтесь, некоторые детали могут показаться Вам слишком «острыми».
Характеристики модели памяти
Мы уже познакомились с некоторыми характеристиками памяти AS/400. Приведем снова список этих характеристик вместе с другими, которые мы еще пока не рассматривали, но обязательно сделаем это.
Размер страницы — 212 байта (4
Диапазон эффективных адресов — 264 байта:
число эффективных сегментов — 240;
размер эффективного сегмента — 224 байта (16 MБ).
•Два специальных типа эффективных адресов, отменяющих трансляцию, для идентификации которых используются 12 старших разрядов (3 шестнадцатиричные цифры):
800h — эффективный=реальный (E=R) отображают всю реальную память, для них выделено 228 эффективных сегментов;
801h — эффективный=прямое-сохранение (E=DS) отображают пространство ввода-вывода, для них выделено 228 эффективных сегментов.
•Диапазон виртуальных адресов — 264 байта:
число виртуальных сегментов — 240 -229;
размер виртуального сегмента — 224 байта (16 MБ).
•Диапазон реальных адресов — 252 байта.
Все характеристики приведены для используемого в AS/400 режима активных тегов 64-разрядных процессоров.
Регистр состояния машины
Процесс трансляции адресов управляется режимом активных и неактивных тегов и состоянием процессора. Состояние процессора определяется специальным регистром, называемым регистром состояния машины MSR (Machine State Register). Разряды этого регистра управляют некоторыми операциями процессора, в том числе трансляцией адреса. В главе 9 мы рассмотрим этот регистр и способ изменения его разрядов. А пока, чтобы лучше понять трансляцию адреса, затронем лишь несколько разрядов MSR, а именно:
•Разряд 64-разрядного режима (MSRSF):
— процессор работает 32-разрядном режиме;
— процессор работает 64-разрядном режиме.
•Разряд перемещения команд (MSRIR):
— трансляция адреса команды отключена;
— трансляция адреса команды: включена.
•Разряд перемещения данных (MSRDR):
— трансляция адреса данных отключена;
— трансляция адреса данных включена.
•Разряд защиты C2 (MSRC2):
— защита C2 отключена;
— защита C2 включена.
•Проблемное состояние (MSRPR):
— процессор может исполнять любые команды;
— процессор может исполнять только непривилегированные команды.
•Пользовательское состояние (MSRUS):
— исполняется код ОС;
— исполняется пользовательский код.
Для определения размера адреса в процессе его трансляции используется разряд 64-разрядного режима (MSRSF). Например, в 32-разрядном режиме архитектура PowerPC определяет, что эффективный адрес имеет длину лишь 32 разряда. В режиме активных тегов процессоров AS/400 аппаратура поддерживает только 64-разрядный режим. Таким образом, SLIC, управляющий значениями разрядов MSR, будет устанавливать только 64-разрядный режим.
Разряды перемещения команд (MSRIR) и данных (MSRDR) позволяют процессору работать в режиме реальной адресации. Когда SLIC отключает перемещение, механизмы трансляции адреса не используются, и младшие 52 разряда эффективного адреса передаются как реальный адрес непосредственно подсистеме памяти. Подсистема памяти состоит из памятей кэша и основной. В архитектуре PowerPC для команд и данных — раздельные кэши, и соответственно отдельные разряды перемещения. Такая модель называется гарвардским кэшем[ 70 ].
Первоначально бит защиты С2 (MSRC2) предназначался для того, чтобы вынуждать механизм трансляции адреса использовать сегментные регистры для всех пользовательских обращений, если процессор работает в режиме активных тегов и защита С2 включена. Использование системных таблиц гарантировало, что при включенной защите С2 ОС может контролировать и регистрировать доступ пользователей к любым объектам. Хотя данный разряд по-прежнему присутствует в некоторых процессорах PowerPC, он не используется для аудита С2. Вместо этого на уровне защиты 50 (защита С2) мониторинг и регистрацию пользовательского доступа компонент защиты SLIC осуществляет непосредственно, без использования сегментных регистров.
