ЗНАЕТЕ ЛИ ВЫ?

Установка оперативной памяти



В большинстве ПК с системными платами для процессора 386 или 486 используются 30-контактные разъемы SIMM, а раннее поколение системных плат для Pentium обладает уже 72-контактными SIMM. Модули DIMM имеют 168 контактов. Они применяются в последних системах PentuimII и Pentium III. Модули DIMM можно добавлять по одному, а 72-контактные модули SIMM нужно устанавливать обязательно парами (так называемыми банками), составленными из модулей равного объема. В некоторых системных платах необходимо заполнять разъемы особым образом – в первый банк вставляется пара модулей большего объема.

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

Первые модули SIMM и DIMM имели позолоченные контакты (разъемы для ОЗУ на системной плате были с тем же покрытием). Позднее стали применять менее дорогое олово, и контакты приобрели серебристый цвет. Не рекомендуется вставлять модули с позолоченными контактами в разъемы, покрытые оловом, и наоборот – примерно через год слой окисления может вырасти настолько, что приведет к сбоям в работе памяти.

Виртуальная память и организация защиты памяти

Концепция виртуальной памяти

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

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

Другой вопрос, тесно связанный с реализацией концепции виртуальной памяти, касается организации вычислений на компьютере задач очень большого объема. Если программа становилась слишком большой для физической памяти, часть ее необходимо было хранить во внешней памяти (на диске) и задача приспособить ее для решения на компьютере ложилась на программиста. Виртуальная память освободила программистов от этого бремени. Она автоматически управляет двумя уровнями иерархии памяти: основной памятью и внешней (дисковой) памятью.

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

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

Страничная организация памяти

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

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

Для увеличения эффективности такого типа схем в процессорах используется специальная полностью ассоциативная кэш-память, которая также называется буфером преобразования адресов (TLB traнсlation-lookaside buffer). Хотя наличие буфера не меняет принципа построения схемы страничной организации, с точки зрения защиты памяти, необходимо предусмотреть возможность очистки его при переключении с одной программы на другую.

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

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

Следствием такого использования является значительный рост таблиц страниц каждого пользователя. Одно из решений проблемы сокращения длины таблиц основано на введении многоуровневой организации таблиц. Частным случаем многоуровневой организации таблиц является сегментация при страничной организации памяти. Необходимость увеличения адресного пространства пользователя объясняется желанием избежать необходимости перемещения частей программ и данных в пределах адресного пространства, которые обычно приводят к проблемам переименования и серьезным затруднениям в разделении общей информации между многими задачами.

Сегментация памяти

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

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

Для реализации сегментации было предложено несколько схем, которые отличаются деталями реализации, но основаны на одних и тех же принципах.

В системах с сегментацией памяти каждое слово в адресном пространстве пользователя определяется виртуальным адресом, состоящим из двух частей: старшие разряды адреса рассматриваются как номер сегмента, а младшие – как номер слова внутри сегмента. Наряду с сегментацией может также использоваться страничная организация памяти. В этом случае виртуальный адрес слова состоит из трех частей: старшие разряды адреса определяют номер сегмента, средние – номер страницы внутри сегмента, а младшие – номер слова внутри страницы.

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

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

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

ОРГАНИЗАЦИЯ ВВОДА/ВЫВОДА

Системные и локальные шины

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

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

Максимальная скорость шины ограничивается ее длиной и количеством подсоединяемых устройств.

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

Некоторые компьютеры имеют единственную шину для памяти и устройств ввода/вывода. Такая шина часто называется системной. Персональные компьютеры, как правило, строятся на основе одной системной шины в стандартах ISA, EISA или MCA.

Локальной шиной называется шина, электрически выходящая непосредственно на контакты микропроцессора. Она обычно объединяет процессор, память, схемы буферизации для системной шины и ее контроллер, а также некоторые вспомогательные схемы. Типичными примерами локальных шин являются VL-Bus и PCI.

Рассмотрим типичную операцию (транзакцию) на шине. Шинная транзакция включает в себя две части: посылку адреса и прием (или посылку) данных. Шинные транзакции обычно определяются характером взаимодействия с памятью: транзакция типа «Чтение» передает данные из памяти (либо в процессор, либо в устройство ввода/вывода) (рис. 6.1), транзакция типа «Запись» записывает данные в память (рис. 6.2.).

В транзакции типа «Чтение» по шине сначала посылается в память адрес вместе с соответствующими сигналами управления, индицирующими чтение. Память отвечает, возвращая на шину данные с соответствующими сигналами управления. Транзакция типа «Запись» требует, чтобы процессор или устройство ввода/вывода послало в память адрес и данные, и не ожидает возврата данных. Обычно ЦП вынужден простаивать во время интервала между посылкой адреса и получением данных при выполнении чтения, но часто он не ожидает завершения операции при записи данных в память.

Рисунок 6.1.

Транзакция типа чтение

Рисунок 6.2.

Транзакция типа запись

Главное устройство шины – это устройство, которое может инициировать операции чтения или записи. Процессор, например, всегда является главным устройством шины. Шина имеет несколько главных устройств, если имеется несколько центральных процессоров или когда устройства ввода/вывода могут инициировать транзакции на шине. Приоритетность управляющих устройств основано на системе прерываний.

Существует два типа шин, отличающиеся способом коммутации: шины с коммутацией цепей и шины с коммутацией пакетов.

Шина с коммутацией пакетов при нескольких главных устройств шины обеспечивает значительно большую пропускную способность, по сравнению с шиной с коммутацией цепей, за счет разделения операций на две логические части: запроса шины и ответа. Операция чтения разбивается на запрос чтения и ответ памяти.

На шине с коммутацией цепей любая операция неделима. Главное устройство блокирует шину до окончания обслуживания запроса.

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

В асинхронной шине используется старт-стопный режим передачи. Шины ввода/вывода обычно асинхронные.

Стандарты шин

Рисунок 6.3.

Схема системной платы

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

Системная шина ISA (Industry Standard Architecture) впервые стала применяться в компьютерах IBM PC/AT на базе процессора i286. Эта системная шина отличалась наличием второго, 36-контактного разъема для соответствующих плат расширения и позволяла передавать параллельно 16 бит данных и обращаться к 16 Мбайт системной памяти. Количество линий аппаратных прерываний в этой шине было увеличено до 15, а каналов прямого доступа - до 7. Системная шина ISA полностью включала в себя возможности старой 8-разрядной шины. Шина ISA позволяет синхронизировать работу процессора и шины с разными тактовыми частотами. Она работает на частоте 8 МГц, что соответствует максимальной скорости передачи 16 Мбайт/с.

В процессорах i386, i486 и Pentium появилась шина EISA (Extended Industry Standard Architecture), которая обеспечивает адресное пространство в 4 Гбайта, 32-битовую передачу данных. Устройства шины ISA могут работать на шине EISA. Шина EISA имеет частоту 8 МГц и имеет максимальную скорость передачи 33 Мбайт/с.

Существует шина MCA (Micro Channel Architecture) также с 32-разрядной передачей данных, частотой 10 МГц и максимальной пропускной способностью 160 Mбит/сек. Она не совместима с шиной ISA. Шина MCA имеет единый дизайн, а для обмена данных с памятью и устройствами ввода-вывода применяется мультиплексирование, которое позволяет нескольким процессам совместно использовать шину. Мультиплексирование разделяет шину на несколько каналов, каждый из которых может работать с различными процессами.

Шина VL-bus (Local Bus, VESA), предложенная VESA (Video Electronics Standard Association), предназначалась для увеличения быстродействия видеоадаптеров и контроллеров дисковых накопителей ее частота 40 МГц. Шина VL-bus имеет 32 линии данных и позволяет подключать до трех периферийных устройств. Максимальная скорость передачи 130 Мбайт/с.

Шина PCI (Peripheral Component Interconnect) поддерживает 32-битовый канал передачи данных, частота 33 МГц и имеет скорость 120 Мбайт/с.

Шина VME (Virtual Machine Environment) – шина ввода/вывода в рабочих станциях и серверах на базе RISC-процессоров. Эта шина высоко стандартизована, имеется несколько версий этого стандарта. В частности, VME32 – 32-битовая шина с производительностью 30 Мбайт/с, а VME64 – 64-битовая шина с производительностью 160 Мбайт/с

Шина SCSI – Small Computer System Interface (Интерфейс малых вычислительных систем) На сегодняшний день приняты два стандарта (SCSI-1 и SCSI-2).

Главной особенностью подсистемы SCSI является размещение в периферийном оборудовании интеллектуального контроллера.

Устройства подключаются специальным 66-жильным кабелем.

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

Шина PCI Express (PCIe или PCI-E), также известная как 3GIO (for 3rd Generation I/O); – компьютерная шина, использующая программную модель шины PCI и высокопроизводительный физический протокол, основанный на последовательной передаче данных. Пропускная способность шины – 2,5 Гбит/сек. Используется в качестве локальной шины.

Устройства ввода/вывода

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





Последнее изменение этой страницы: 2016-06-06; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.219.31.204 (0.014 с.)