Учебное пособие -> Глава 6. Организация
компьютерных систем: вспомогательная память
Глава 6. Организация компьютерных систем:
вспомогательная память
Рисунок 1 - Пятиуровневая организация памяти
Дисковая память
Иерархическая структура памяти является традиционным
решением проблемы хранения больших объемов данных. На самом верху иерархии
находятся регистры процессора. Доступ к регистрам осуществляется быстрее всего.
Дальше идет кэш-память, объем которой составляет от 32 Кбайт до нескольких
мегабайтов. Далее следует основная память, которая в настоящее время может
вмещать до десятков и сотен гигабайтов. Затем идут магнитные диски. После
магнитных дисков следуют накопители на магнитной ленте и оптические диски,
которые используются для хранения архивов.
По мере продвижения сверху вниз по иерархиименяются три параметра:
-увеличивается время доступа;
-растет объем памяти;
- увеличивается количество байт устройства
памяти, приобретаемое за 1 условную денежную единицу.
Магнитный диск
Рисунок 2 - Фрагмент дорожки диска (два сектора)
Дорожкой называется круговая последовательность битов, записанных на диск
за его полный оборот. Каждая дорожка делится на секторы фиксированной длины.
Каждый сектор обычно содержит 512 байт данных. Перед данными располагается
преамбула (preamble), которая позволяет головке синхронизироваться перед чтением
или записью. После данных идет код исправления ошибок (Error-Correcting Code,
ECC), в качестве которого используется код Хэмминга или код Рида-Соломона,
позволяющий исправлять множественные ошибки, а не только одиночные. Между
соседними секторами находится межсекторный интервал. Многие производители
указывают размер неформатированного диска (как будто каждая дорожка содержит
только данные), хотя честнее указывать вместимость форматированного диска, на
котором не учитываются преамбулы, ЕСС-коды и межсекторные интервалы. Емкость
форматированного диска обычно на 15 % меньше емкости неформатированного.
У всех дисков есть кронштейны, они могут перемещаться туда и обратно по
радиусу на разные расстояния от шпинделя, вокруг которого вращается диск.
На разных расстояниях от оси записываются разные дорожки. Таким образом, дорожки
представляют собой ряд концентрических кругов, расположенных вокруг
шпинделя. Ширина дорожки зависит от величины головки и от точности ее
перемещения. На сегодняшний момент диски имеют от 5000 до 10 000 дорожек на см,
то есть ширина каждой дорожки составляет от 1 до 2 микрон). Следует отметить,
что дорожка — это не углубление на поверхности диска, а просто кольцо
намагниченного материала, которое отделяется от других дорожек небольшими
пограничными областями.
Производительность диска зависит от многих факторов. Чтобы считать или
записать сектор, головка должна переместиться на нужное расстояние от оси. Этот
процесс называется поиском. Среднее время поиска между дорожками, взятыми
наугад, составляет от 5 до 10 мс, а поиск между смежными дорожка- дорожками —
менее 1 мс. Когда головка помещается на нужное расстояние от центра, выжидается
некоторое время (время ожидания сектора), пока нужный сектор не окажется под
головкой.
Большинство дисков вращаются со скоростью 5400, 7200 или 10 800 оборотов в
минуту. Таким образом, среднее время ожидания сектора (половина оборота)
составляет от 3 до 6 мс. Время передачи информации зависит от плотности записи и
скорости вращения. При скорости передачи от 20 до 40 Мбайт в секунду время
передачи одного сектора 512 байт составляет от 13 до 26 мкс. Время поиска и
время ожидания сектора определяет время передачи информации.
Рисунок 3 - Диск с пятью зонами. Каждая зона содержит несколько дорожек
RAID массивы
Для повышения эффективности организации дисковых
накопителей, а также надежности и скорости доступа используются RAID массивы (RedundantArrayofIndependentDisks -
избыточный массив независимых дисков).
Основная идея RAID состоит в том, что массив обычных дисков
объединяется общим контроллером (RAID-контроллером), данные копируются в
RAID-массив, а затем производятся обычные действия.
Операционная система воспринимает RAID как один большой
диск, при этом у RAID-массива выше производительность и надежность.
Поскольку обычные диски обладают достаточной
производительностью при довольно низкой цене и при этом один контроллер может
управлять несколькими дисками (до семи дисков на 8-разрядных моделях
SCSI (SmallComputerSystemInterface) и
до 15 на 16-разрядных), большинство RAID-устройств состоит из контроллера,
предназначенного для управления RAID-массивом, и бокса дисков, которые
операционная система воспринимает как один большой диск. При этом не требуется
никаких изменений в программном обеспечении.
Возможность одновременной работы с несколькими дисками
можно реализовать двумя способами: с использованием параллельного доступа
(parallel-access array) и с использованием независимого доступа
(independent-access array).
Для организации параллельного доступа рабочее пространство
дисков размечается на зоны определенного размера (блоки) для размещения данных и
избыточной информации. Информация, подлежащая записи на диски (запрос на
обслуживание), разбивается на такие же по величине блоки, и каждый блок
записывается на отдельный диск. При поступлении запроса на чтение, необходимая
информация собирается из нескольких блоков. В этом случае скорость записи (и
скорость чтения) увеличивается пропорционально количеству дисков, объединенных в
RAID.
Для организации независимого доступа рабочее пространство
дисков также размечается на зоны определенного размера (блоки). Однако, в
отличие от случая параллельного доступа, каждый запрос на запись или чтение
обслуживается только одним диском. В этом случае скорость записи будет не выше,
чем при работе с одним диском. Однако массив с независимым доступом в каждый
момент времени может обслуживать одновременно несколько запросов, при этом
каждый диск обслуживает свой запрос.
Таким образом, оба архитектурных решения способствуют
повышению производительности, но механизм повышения производительности у этих
решений различен. Соответственно, свойства RAID существенно зависят от того,
какой из этих двух механизмов в нем используется. Именно поэтому при сравнении
RAID различного уровня в первую очередь необходимо сравнивать размер логических
блоков. Точнее говоря, не собственно размер, а соотношение размера блока и
величины запроса на обслуживание (объем информации, подлежащей записи или
считыванию).
Другим фактором, влияющим на производительность, является
способ размещения избыточной информации. Избыточная информация может храниться
на специально выделенном для этого диске и может распределяться по всем дискам.
В RAID различного уровня применяются различные способы вычисления избыточной
информации. Это также влияет на характеристики RAID. Основные способы: полное
дублирование информации, применение кодов с коррекцией ошибок (применяется код с
коррекцией одиночных ошибок и обнаружением двойных ошибокECC(ErrorCheckingandCorrection)код Хемминга) и вычисление четности (Parity).
Наиболее используемые уровни RAID в настоящее время:
-RAID0 - дисковый массив из двух или более жестких
дисков с отсутствием избыточности. Информация разбивается на блоки данных и
записывается на оба/несколько дисков одновременно. За счет этого существенно
повышается производительность (от количества дисков зависит кратность увеличения
производительности). Однако страдает надeжность
всего массива (при выходе из строя любого из входящих в RAID0 дисков полностью и
безвозвратно пропадает вся информация).
-RAID1 -
зеркальные диски. Зеркальные диски представляют традиционный способ повышения
надежности магнитных дисков. Все диски дублируются и при каждой записи
информация записывается также и на проверочный диск. Возможно независимое
параллельное считывание с основного и зеркального дисков.
-RAID 5 - четность вращения для
распараллеливания записей. RAID 5 получил широкое распространение, в первую
очередь, благодаря своей экономичности. Объем дискового массива рассчитывается
по формуле (n -1)DiskSize, где n - число дисков в массиве, а DiskSize - размер одного
диска. Контрольная информация распределяется между всеми дисками группы. На
запись информации на том RAID 5 тратятся дополнительные ресурсы, так как
требуются дополнительные вычисления, зато при чтении (по сравнению с отдельным
винчестером) имеется выигрыш, потому что потоки данных с нескольких накопителей
массива обрабатываются параллельно. RAID-массивы уровня 4, как и RAID-массивы
начальных уровней, работает с полосами, а не со словами, имеющими биты четности,
и не требует синхронизации дисков. RAID-массив уровня 4 устроен так же, как
RAID-массив уровня 0, с тем различием, что у RAID-массива уровня 4 есть
дополнительный диск, на который записываются полосы четности.
-RAID 6 (Advanced Data Guarding) - похож на RAID
5, но имеет более высокую степень надежности. Под контрольные суммы выделяется
емкость 2-х дисков, рассчитываются 2 суммы по разным алгоритмам. Требуется более
серьезный процессор контроллера, а значит более сложная и дорогая материнская
плата. Обеспечивается работоспособность после выхода из строя одновременно 2-х
дисков. Для организации массива требуется минимум 4 диска.
-Комбинированные уровни - помимо базовых уровней
существуют комбинированные уровни RAID 1+0, RAID 0+1, RAID 5+0, RAID 1+5 и т.д.
Различные производители по-своему интерпретируют каждый из комбинированных
уровней.