Твердотельные накопители




Сборка модулей памяти и их типы

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

В настоящее время распространен другой подход. Группа микросхем (обычно 8 или 16) монтируется на одну крошечную печатную плату и продается как один блок. Он называется SIMM (Single Inline Memory Module — модуль памяти с односторонним расположением выводов) или DIMM (Dual Inline Memory Module — модуль памяти с двухсторонним расположением выводов). На платах SIMM устанавливается один краевой разъем с 72 контактами; при этом скорость передачи данных за один тактовый цикл составляет 32 бит. Модули DIMM, как правило, снабжаются двумя краевыми разъемами (по одному на каждой стороне платы) с 120 контактами; таким образом, общее количество контактов достигает 240, а скорость передачи данных возрастает до 64 бит за цикл. В настоящее время наиболее распространенными являются DDR3 DIMM — третья версия двухскоростных модулей памяти. Типичный модуль DIMM изображен на рис. 2.14.

Рис. 2.14. 4-гигабайтный модуль DIMM с восемью 256-мегабайтными микросхемами

с каждой стороны. Другая сторона выглядит аналогично.

Обычно модули DIMM содержат 8 микросхем по 256 Мбайт каждая. Таким образом, весь модуль вмещает 2 Гбайт информации. Во многих компьютерах предусматривается возможность установки четырех модулей; следовательно, при использовании модулей по 2 Гбайт общий объем памяти достигает 8 Гбайт (и более при использовании модулей большей емкости).

В портативных компьютерах обычно используется модуль DIMM меньшего размера, который называется SO-DIMM (Small Outline DIMM). Модули SIMM и DIMM могут содержать бит четности или код исправления ошибок, однако, поскольку вероятность возникновения ошибок в модуле составляет примерно одну ошибку за 10 лет, в большинстве обычных компьютеров схемы обнаружения и исправления ошибок не применяются.


 

 

Магнитные диски

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

В современных моделях дисков для ПК устанавливается от 1 до 12 пластин, содержащих от 12 до 24 рабочих поверхностей. На одной пластине современных высокопроизводительных дисков может храниться до 1 Тбайт данных, и со временем это значение будет наверняка превышено.

Ясно, что считывание случайных секторов из разных частей диска неэффективно.

Немного сообразительности, и старая школьная формула для вычисления длины окружности c = 2π r откроет, что суммарная длина внешних дорожек больше, чем длина внутренних. Поскольку все магнитные диски вращаются с постоянной угловой скоростью независимо от того, где находятся головки, возникает очевидная проблема. Раньше при производстве дисков изготовители создавали максимально возможную плотность записи на внутренней дорожке, и при продвижении от центра диска плотность записи постепенно снижалась. Если дорожка содержит, например, 18 секторов, то каждый из них занимает дугу в 20°, и не важно, на каком цилиндре находится эта дорожка. В настоящее время используется другая стратегия. Цилиндры делятся на зоны (на диске их обычно от 10 до 30). При продвижении от центра диска число секторов на дорожке в каждой зоне возрастает. Это усложняет структуру информации на дорожке, но зато повышает емкость диска, что считается более важным. Все секторы имеют одинаковый размер. Схема диска с пятью зонами

изображена на рис. 2.18.

С диском связан так называемый контроллер — микросхема, которая управляет диском. Некоторые контроллеры содержат целый процессор. В задачи контроллера входит получение от программного обеспечения таких команд, как READ, WRITE и FORMAT (то есть запись всех преамбул), управление перемещением кронштейна, обнаружение и исправление ошибок, преобразование байтов, считываемых из памяти, в непрерывный поток битов, и наоборот. Некоторые контроллеры производят буферизацию и кэширование нескольких секторов на случай их дальнейшего использования, а также пропускают поврежденные секторы. Необходимость последней функции вызвана наличием секторов с поврежденным, то есть постоянно намагниченным, участком. Когда контроллер обнаруживает поврежденный сектор, он заменяет его одним из свободных секторов, которые выделяются специально для этой цели в каждом цилиндре или зоне.


 

IDE-диски

Прототипом дисков современных персональных компьютеров был диск машины IBM PC XT. Это был диск Seagate на 10 Мбайт, управляемый контроллером Xebec на встроенной карте. У этого диска было 4 головки, 306 цилиндров и по 17 секторов на дорожке. Контроллер мог управлять двумя дисками. Операционная система считывала с диска и записывала на диск информацию. Для этого она передавала параметры в регистры процессора и обращалась с вызовами к системе BIOS (Basic Input Output System — базовая система ввода-вывода), расположенной во встроенном ПЗУ. Система BIOS выдавала машинные команды для загрузки регистров контроллера, которые начинали передачу данных.

Сначала контроллер помещался на отдельной плате, а с выходом в середине 80-х годов устройств IDE (Integrated Drive Electronics — устройство со встроенным контроллером) стал встраиваться в материнскую плату1. Однако схема с вызовами системы BIOS не изменилась, поскольку необходимо было обеспечить совместимость с более старыми версиями. Обращение к секторам производилось по номерам головки, цилиндра и сектора, причем головки и цилиндры нумеровались с 0, а секторы — с 1. Вероятно, такая ситуация сложилась из-за ошибки одного из программистов BIOS, который писал свой шедевр на ассемблере 8088.

Имея 4 бит для номера головки, 6 бит для сектора и 10 бит для цилиндра, диск мог содержать максимум 16 головок, 63 сектора и 1024 цилиндра, то есть всего 1 032 192 сектора. Емкость такого диска составляла 504 Мбайт, и в те времена эта цифра считалась огромной (а вы бы стали сегодня осыпать упреками новую машину, неспособную манипулировать дисками объемом более 1000 Тбайт?).

Вскоре появились диски объемом более 504 Мбайт, но у них была другая геометрия (4 головки, 32 сектора, 2000 цилиндров). Операционная система не могла обращаться к ним из-за того, что схема вызовов BIOS оставалась неизменной (требование совместимости). В результате контроллеры начали выдавать фиктивную информацию — они «притворялись», что геометрия диска соответствует указанной в BIOS, тогда как в действительности виртуальная геометрия просто накладывалась на реальную. Хотя этот метод работал, он затруднял работу операционных систем, которые размещали данные на диске определенным образом для сокращения времени поиска.

В конце концов на смену IDE-дискам пришли устройства EIDE (Extended IDE — усовершенствованные устройства со встроенным контроллером), поддерживающие дополнительную схему адресации LBA (Logical Block Addressing - линейная адресация блоков). При линейной адресации секторы просто нумеруются от 0 до 228 — 1. Хотя контроллеру приходится преобразовывать LBA-адреса в адреса головки, сектора и цилиндра, зато объем диска может превышать 504 Мбайт. Однако, к сожалению, в результате родилось новое ограничение на уровне 228  29 байт (128 Гбайт). В 1994 году, когда принимался стандарт EIDE, никому и в голову не приходило, что через некоторое время появятся диски такой емкости. Вообще, комитеты по стандартизации, подобно политикам, зачастую предпочитают откладывать решение проблем, оставляя их своим преемникам. EIDE-диски и контроллеры имеют и другие усовершенствования. Например,

они способны контролировать 4 диска (за счет двух каналов, к каждому из которых можно подключить первичный и вторичный диски), у них более высокая скорость передачи данных (16,67 вместо 4 Мбайт/с), они могут управлять приводами CD-ROM и DVD. Стандарт EIDE совершенствовался вместе с развитием технологического прогресса, но тем не менее его преемника назвали ATA-3 (AT Attachment), что выглядело как намек на системы IBM PC/AT (сокращение AT, образованное от словосочетания Advanced Technology — «прогрессивная технология», в этом контексте относилось к прогрессивному на тот момент 16-разрядному процессору с тактовой частотой 8 МГц.) Следующая версия стандарта, названная ATAPI-4 (ATA Packet Interface — пакетный интерфейс ATA), отличалась скоростью 33 Мбит/с. В версии ATAPI-5 она достигла 66 Мбит/с. Поскольку ограничение в 128 Гбайт, установленное 28-разрядными линейными адресами, становилось все более болезненным, в стандарте ATAPI-6 размер LBA-адреса был увеличен до 48 бит. Лимит этого стандарта — 248  29 (128 Пбайт). Если емкость дисков будет ежегодно возрастать на 50 %, 48-разрядные LBA-адреса останутся актуальными приблизительно до 2035 года. Скорее всего, следующим шагом будет увеличение размера LBA- адреса до 64 бит. В стандарте ATAPI-6 скорость передачи данных удалось довести до 100 Мбит/с. Кроме того, впервые было уделено внимание проблеме шума.

Настоящий прорыв был совершен в стандарте ATAPI-7. Вместо расширения разъема диска (и, соответственно, скорости передачи данных) появилась спецификация последовательного интерфейса ATA (Serial ATA, SATA), позволившего передавать через 7-контактный разъем информацию на скоростях от 150 Мбит/с (со временем скорость увеличится до 1,5 Гбит/с). Замена 80-проводного плоского кабеля круглым кабелем диаметром в несколько миллиметров улучшила вентиляцию системного блока. Кроме того, при отправке сигналов через интерфейс SATA потребляется всего 0,5 В (в сравнении с 5 В по стандарту ATAPI-6), вследствие чего уменьшается общий уровень энергопотребления. Скорее всего, в течение нескольких лет на стандарт SATA будут переведены все компьютеры. В пользу этого варианта развития событий говорит тот факт, что проблема энергопотребления становится все более актуальной — как для информационных центров, которые оснащаются мощными дисковыми фермами, так и для ноутбуков с ограниченными по емкости источниками питания [Gurumurthi et al., 2003].


 

SCSI-диски

SCSI-диски с точки зрения расположения цилиндров, дорожек и секторов не отличаются от IDE-дисков, но они имеют другой интерфейс и более высокую скорость передачи данных. В 1979 году компания изобретателя дискеты Говарда Шугарта (Hovard Shugart) выпустила диск с интерфейсом SASI (Shugart Associates System Interface). В 1986 году институт ANCI после длительных обсуждений несколько преобразовал этот интерфейс и изменил его название на SCSI (Small Computer System Interface — интерфейс малых вычислительных систем). Аббревиатура SCSI произносится как «скази». Версии, работающие с более высокой скоростью, получили названия Fast SCSI (10 МГц), Ultra SCSI (20 МГц), Ultra2 SCSI (40 МГц), Ultra3 SCSI (80 МГц) и Ultra4 SCSI (160 МГц).

Каждая из этих разновидностей также имела 16-разрядную версию. Собственно, все последние разновидности существуют только в 16-разрядных версиях. Основные параметры всех этих версий сведены в табл. 2.3.

Поскольку у SCSI-дисков высокая скорость передачи данных, они используются во многих высокопроизводительных рабочих станциях и серверах, особенно в конфигурациях RAID (см. ниже). SCSI — это не просто интерфейс жесткого диска. Это шина, к которой могут подсоединяться SCSI-контроллер и до семи дополнительных устройств. Ими могут быть один или несколько жестких SCSI-дисков, дисководы CD-ROM, сканеры, накопители на магнитной ленте и другие периферийные устройства. Каждое устройство имеет свой идентификационный код от 0 до 7 (до 15 для 16-разрядных версий). У каждого устройства есть два разъема: один — входной, другой — выходной. Кабели соединяют выходной разъем одного устройства с входным разъемом следующего устройства. Это похоже на соединение лампочек в елочной гирлянде. Последнее устройство в цепи должно быть терминальным, чтобы отражения от концов шины не искажали данные в шине. Обычно контроллер помещается на встроенной карте и является первым звеном цепи, хотя это не обязательно.

Самый обычный кабель для 8-разрядного SCSI-устройства имеет 50 проводов, 25 из которых (заземление) спарены с 25 другими, за счет чего обеспечивается хорошая помехоустойчивость, которая необходима для высокой скорости ра- боты. Из 25 проводов 8 используются для данных, 1 — для контроля четности, 9 — для управления, а оставшиеся зарезервированы для будущего применения. 16- и 32-разрядным устройствам требуется еще один кабель для дополнительных сигналов. Кабели могут иметь несколько метров в длину, чтобы обеспечивать связь с внешними устройствами (сканерами и т. п.).

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

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


 

RAID-массивы

Производительность процессоров за последнее десятилетие значительно возросла, увеличиваясь почти вдвое каждые 1,5 года. Однако с производительностью дисков дело обстоит иначе. В 70-х годах среднее время поиска в мини-компьютерах составляло от 50 до 100 миллисекунд. Сейчас время поиска составляет около 10 миллисекунд. Во многих технических отраслях (например, в автомобильной или авиационной промышленности) повышение производительности в 5 или 10 раз за два десятилетия считалось бы грандиозным, но в компьютерной индустрии эти цифры вызывают недоумение. Таким образом, разрыв между производительностью процессоров и дисков все это время продолжал расти.

Как мы уже видели, для того чтобы увеличить быстродействие процессора, используются технологии параллельной обработки данных. Уже на протяжении многих лет разным людям приходит в голову мысль, что было бы неплохо сделать так, чтобы устройства ввода-вывода также могли работать параллельно. В 1988 году Паттерсон в своей статье предложил 6 разных вариантов организации дисковой памяти, которые могли использоваться для повышения производительности, надежности или того и другого [Patterson et al., 1988]. Эти идеи были сразу заимствованы производителями компьютеров, что привело к появлению нового класса устройств ввода-вывода под названием RAID. Изначально аббревиатура RAID расшифровывалась как Redundant Array of Inexpensive Disks (избыточный массив недорогих дисков), но позже буква I в аббревиатуре вместо изначального Inexpensive (недорогой) стала означать Independent (независимый) (может, чтобы производители могли делать диски неоправданно дорогими?) RAID-массиву противопоставлялся диск SLED (Single Large Expensive Disk —один большой дорогостоящий диск).

Основная идея RAID состоит в следующем. Рядом с компьютером (обычно большим сервером) устанавливается бокс с дисками, контроллер диска замещается RAID-контроллером, данные копируются в RAID-массив, а затем производятся обычные действия. Иными словами, операционная система воспринимает RAID как SLED, при этом у RAID-массива выше производительность и надежность. Поскольку SCSI-диски обладают высокой производительностью при довольно низкой цене и при этом один контроллер может управлять несколькими дисками (до 7 дисков на 8-разрядных моделях SCSI и до 15 на 16-разрядных), большинство RAID-устройств состоит из SCSI-контроллера, предназначенного для управления RAID-массивом, и бокса SCSI-дисков, которые операционная система воспринимает как один большой диск. Таким образом, чтобы использовать RAID-массив, не требуется никаких изменений в программном обеспечении, что очень выгодно для многих системных администраторов. RAID-системы имеют несколько достоинств.

Во-первых, как уже отмечалось, программное обеспечение воспринимает RAID-массив как один большой диск.

Во-вторых, данные на всех дисках RAID-массива распределены по дискам таким образом, чтобы можно было осуществлять параллельные операции. Несколько различных вариантов распределения данных, предложенных Паттерсоном, сейчас известны как RAID-массив уровня 0, RAID-массив уровня 1 и т. д., вплоть до RAID-массива уровня 5. Кроме того, существует еще несколько уровней, которые мы не будем обсуждать. Термин «уровень» выбран неудачно, поскольку здесь нет никакой иерархической структуры. Просто существуют 6 разных вариантов организации дисков с разными характеристиками надежности и производительности.

RAID-массив уровня 0 показан на рис. 2.19, а. Он представляет собой виртуальный диск, разделенный на полосы (strips) по k секторов каждая, при этом секторы с 0 по k — 1 занимают полосу 0, секторы с k по 2 k — 1 — полосу 1 и т. д. Для k = 1 каждая полоса — это сектор, для k = 2 каждая полоса — это два сектора и т. д. В RAID-массиве уровня 0 полосы последовательно записываются по кругу, как показано на рис. 2.19, а.

Это называется распределением данных (striping) по дискам. На рисунке изображен RAID-массив с четырьмя дисками. Например, если программное обеспечение выдает команду для считывания блока данных, состоящего из четырех последовательных полос и начинающегося на границе между полосами, то RAID-контроллер разбивает эту команду на 4 отдельные команды, каждую для одного из четырех дисков, и выполняет их параллельно.

Таким образом, мы получаем устройство параллельного ввода-вывода без изменения программного обеспечения. RAID-массив уровня 0 лучше всего работает с большими запросами — чем больше запрос, тем лучше. Если в запросе требуется задействовать полос больше, чем дисков в RAID-массиве, то некоторые диски получают по несколько запросов, и как только такой диск завершает выполнение первого запроса, он приступает к следующему. Задача контроллера состоит в том, чтобы разделить запрос должным образом, послать нужные команды соответствующим дискам в правильной последовательности, а затем правильно записать результаты в память.

Производительность при таком подходе очень высокая, и реализация достаточно проста. RAID-массив уровня 0 хуже всего работает с операционными системами, которые время от времени запрашивают небольшие порции данных (по одному сектору за обращение). В этом случае результаты окажутся, конечно, правильными, но не будет никакого параллелизма и, следовательно, никакого выигрыша в производительности. Другой недостаток такой структуры состоит в том, что надежность у нее потенциально ниже, чем у SLED-диска. Например, рассмотрим RAID-массив, состоящий из четырех дисков, на каждом из которых могут происходить сбои в среднем каждые 20 000 часов. То есть сбои в таком RAID-массиве будут случаться примерно через каждые 5000 часов, при этом все данные могут быть утеряны. У SLED-диска сбои происходят также в среднем каждые 20 000 часов, но так как это всего один диск, его надежность в 4 раза выше. Поскольку в описанной разработке нет никакой избыточности, это не «настоящий» RAID-массив.

Следующая разновидность — RAID-массив уровня 1. Он показан на рис. 2.19, б и, в отличие от RAID-массива уровня 0, является настоящим RAID- массивом. В этой структуре дублируют все диски, таким образом, получается 4 исходных диска и 4 резервные копии. При записи информации каждая полоса записывается дважды. При считывании может использоваться любая из двух копий, при этом одновременно может происходить загрузка информации с большего количества дисков, чем в RAID-массиве уровня 0. Следовательно, производительность при записи будет такая же, как у обычного диска, а при считывании — гораздо выше (максимум в два раза). Отказоустойчивость отличная: если происходит сбой на диске, вместо него используется копия. Восстановление состоит просто в установке нового диска и копировании всей информации с резервной копии на него.

В отличие от уровней 0 и 1, которые работают с полосами секторов, RAID- массив уровня 2 оперирует словами, а иногда даже байтами. Представим, что каждый байт виртуального диска разбивается на два фрагмента по 4 бита, затем к каждому из них добавляется код Хэмминга, и таким образом получается слово из 7 бит, у которого 1, 2 и 4 — биты четности. Затем представим, что 7 дисков, изображенные на рис. 2.19, в, синхронизированы по позиции кронштейна и позиции вращения. Тогда за одну операцию можно записать слово из 7 бит с кодом Хэмминга на 7 дисков, по 1 биту на диск.

 

Подобная схема использовалась в CM-2 фирмы Thinking Machines. К 32-разрядному слову с данными добавлялось 6 бит четности (код Хэмминга). В результате получалось 38-разрядное кодовое слово, к которому добавлялся дополнительный бит четности, и это слово записывалось на 39 дисков. Общая производительность была огромной, так как одновременно могло записываться 32 сектора данных. При утрате одного из дисков проблем также не возникало, поскольку потеря одного диска означала потерю одного бита в каждом 39-разрядном слове, а с этим код Хэмминга справлялся моментально. Однако подобная схема требует, чтобы все диски были синхронизированы по вращению. Кроме того, ее имеет смысл использовать, только если имеется достаточно большое количество дисков (даже при наличии 32 дисков для данных и 6 дисков для битов четности накладные расходы составляют 19 %). К тому же имеет место большая нагрузка на контроллер, поскольку он должен вычислять контрольную сумму кода Хэмминга при передаче каждого бита.

RAID-массив уровня 3 представляет собой упрощенную версию RAID-массива уровня 2. Он изображен на рис. 2.19, г. Здесь для каждого слова данных вычисляется один бит четности и записывается на диск четности. Как и в RAID-массиве уровня 2, диски должны быть точно синхронизированы, поскольку каждое слово данных распределено по нескольким дискам.

На первый взгляд может показаться, что один бит четности позволяет только обнаруживать, но не исправлять ошибки. Если речь идет о произвольных ошибках, это наблюдение верно. Однако если речь идет о сбое диска, бит четности обеспечивает исправление ошибки в одном бите, поскольку позиция неправильного бита известна. Если происходит сбой, контроллер выдает информацию, что все биты равны 0. Если в слове возникает ошибка четности, бит с диска, на котором произошел сбой, должен быть равен 1, и, следовательно, он исправляется. Хотя RAID-массивы уровней 2 и 3 обеспечивают очень высокую скорость передачи данных, число запросов от устройств ввода-вывода в секунду не больше, чем при наличии одного диска.

RAID-массивы уровней 4 и 5, как и RAID-массивы начальных уровней, работают с полосами, а не со словами, имеющими биты четности, и не требуют синхронизации дисков. RAID-массив уровня 4 (см. рис. 2.19, д) устроен так же, как RAID-массив уровня 0 с тем отличием, что у RAID-массива уровня 4 есть дополнительный диск, на который записываются полосы четности. Например, пусть каждая полоса состоит из k байт. Все полосы объединяются операцией ИСКЛЮЧАЮЩЕГО ИЛИ, и полоса четности для проверки этого отношения также состоит из k байт. Если происходит сбой на диске, утраченные байты могут быть вычислены заново при помощи информации с диска четности. Такое решение предохраняет от потерь на диске, но значительно снижает производительность в случае небольших исправлений. Если изменяется один сектор, необходимо считать информацию со всех дисков, чтобы опять вычислить биты четности и записать их заново. Вместо этого можно считать с диска прежние данные и прежние биты четности и из них вычислить новые биты четности. Но даже с такой оптимизацией процесса при наличии небольших исправлений требуется произвести два считывания и две записи.

Такие трудности при загрузке данных на диск четности могут быть препятствием для достижения высокой производительности. Эта проблема устраняется в RAID-массиве уровня 5, в котором биты четности распределяются равномерно по всем дискам и записываются по кругу, как показано на рис. 2.19, е. Однако в случае сбоя диска восстановить содержание утраченного диска достаточно сложно, хотя и возможно.


 

Твердотельные накопители

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

Так как SSD-диски по сути являются памятью, они обладают более высокой производительностью по сравнению с вращающимися магнитными дисками при нулевом времени поиска. Если типичный магнитный диск может обращаться к данным со скоростью 100 Мбит/с, то у SSD эта скорость в два-три раза выше. И поскольку устройство не имеет подвижных частей, оно особенно хорошо подходит для ноутбуков (колебания и перемещения не влияют на его способность обращаться к данным). Недостатком SSD-устройств по сравнению с магнитными дисками является их стоимость. Если память на магнитных дисках обходится в несколько центов за гигабайт, у типичного SSD-диска стоимость гигабайта составляет от одного до трех долларов. Соответственно технология хорошо подходит только для дисков небольшого объема или для ситуаций, в которых расходы не учитываются. Стоимость SSD падает, но эта технология еще не скоро сравняется с дешевыми магнитными дисками. Итак, хотя SSD сегодня заменяют магнитные диски во многих компьютерах, до окончательного вымирания последних еще далеко

Другой недостаток твердотельных дисков по сравнению с магнитными — их ресурс безотказной работы. Типичная флэш-ячейка перестает функционировать примерно через 100 000 операций перезаписи. Процесс инжекции электронов в плавающий затвор медленно повреждает его и окружающие изоляторы вплоть до окончательной потери работоспособности. Для повышения срока жизни SSD была разработана методика нивелирования износа, основанная на распределении записи по всем ячейкам на диске. Каждый раз, когда на устройство записывается новый блок, для записи выбирается блок, относительно давно не использовавшийся. Для этого во флэш-накопителе должна храниться карта блоков — одна из причин, по которой хранение данных на флэш-дисках сопряжено с относительно высокими внутренними затратами. Благодаря нивелированию износа флэш-диск сможет выдержать количество операций записи, равное максимальному количеству операций записи для одной ячейки, умноженному на количество блоков на диске.

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


 

Диски CD-ROM

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

В 1980 году корпорация Philips вместе с Sony разработала компакт-диски (Compact Disc, CD), которые быстро вытеснил виниловые диски, использовавшиеся для записи музыки. Описание технических деталей компакт-диска было опубликовано в официальном Международном стандарте (IS 10149), который часто называют Красной книгой (по цвету обложки). Международные стандар-ты издаются Международной организацией по стандартизации (International Organization for Standardization, ISO), которая представляет собой аналог таких национальных организаций стандартизации, как ANSI, DIN и т. п. У каждой такой организации есть свой номер IS (International Standard — международный стандарт). Международный стандарт технических характеристик диска был опубликован для того, чтобы компакт-диски от разных музыкальных издателей и проигрыватели от разных производителей стали совместимыми. Все компакт- диски должны быть 120 мм в диаметре и 1,2 мм в толщину, а диаметр отверстия в середине должен составлять 15 мм. Аудио компакт-диски были первым Средством хранения цифровой информации, вышедшим на массовый рынок.

Предполагается, что они будут использоваться на протяжении ста лет. Компакт-диск изготавливается с использованием очень мощного инфракрасного лазера, который выжигает отверстия диаметром 0,8 микрона в специальном стеклянном мастер-диске. По этому мастер-диску делается шаблон с выступами в тех местах, где лазер прожег отверстия. В шаблон вводится жидкая смола (поликарбонат), и, таким образом, получается компакт-диск с тем же набором отверстий, что и в стеклянном диске. На смолу наносится очень тонкий слой алюминия, который, в свою очередь, покрывается защитным лаком. После этого наклеивается этикетка. Углубления в нижнем слое смолы называются лунками (pits), а ровные пространства между лунками — площадками (lands).

Во время воспроизведения лазерный диод небольшой мощности светит инфракрасным светом с длиной волны 0,78 микрона на сменяющие друг друга лунки и площадки. Лазер находится на той стороне диска, на которую нанесен слой смолы, поэтому лунки для лазера превращаются в выступы на ровной поверхности. Так как лунки имеют высоту в четверть длины световой волны лазера, длина световой волны, отраженной от выступа, составляет половину длины световой волны, отраженной от окружающей выступ ровной поверхности. В результате, если свет отражается от выступа, фотодетектор проигрывателя получает меньше света, чем при отражении от площадки. Именно таким образом проигрыватель отличает лунку от площадки. Хотя, казалось бы, проще всего использовать лунку для записи нуля, а площадку для записи единицы, для единицы надежнее оказалось использовать переход лунка-площадка или площадка-лунка,

а отсутствие перехода — для нуля. Лунки и площадки записываются по спирали. Запись начинается на некотором расстоянии от отверстия в центре диска и продвигается к краю, занимая 32 мм диска. Спираль проходит 22 188 оборотов вокруг диска (примерно 600 на 1 мм). Если спираль распрямить, ее длина составит 5,6 км. Спираль изображена на рис. 2.21.

Чтобы музыка звучала нормально, лунки и площадки должны сменяться с постоянной линейной скоростью. Следовательно, скорость вращения компакт-диска должна постепенно снижаться по мере продвижения считывающей головки от центра диска к внешнему краю. Когда головка находится на внутренней стороне диска, то, чтобы достичь желаемой скорости 120 см/с, частота вращения должна составлять 530 оборотов в минуту. Когда головка находится на внешней стороне диска, частота вращения падает до 200 оборотов в минуту, что позволяет обеспечить такую же линейную скорость. Этим компакт-диск, вращающийся с постоянной линейной скоростью, отличается от магнитного диска, вращающегося с постоянной угловой скоростью независимо от того, где в этот момент находится головка. Кроме того, частота вращения компакт-диска (530 оборотов в минуту) сильно отличается от частоты вращения магнитных дисков, которая составляет от 3600 до 7200 оборотов в минуту.

 

В 1984 году Philips и Sony осознали потенциал использования компакт-дисков для хранения компьютерных данных. Они опубликовали Желтую книгу, в которой определили точный стандарт того, что они назвали CD-ROM (Compact Disc-Read Only Memory — постоянная память на компакт-диске). Чтобы выйти на развитый к тому времени рынок аудио компакт-дисков, компьютерные компакт-диски должны были быть такого же размера, как аудиодиски, механически и оптически совместимыми с ними и производиться по той же технологии. Вследствие такого решения потребовались низкоскоростные двигатели, работающие с переменной скоростью, но зато стоимость производства одного компакт-диска составляла менее одного доллара.

В Желтой книге определены форматы компьютерных данных. В ней также описаны усовершенствованные приемы исправления ошибок, что является существенным шагом, поскольку для компьютерщиков, в отличие от любителей музыки, ошибка в одном бите становится критичной. Разметка компакт-диска состоит в кодировании каждого байта 14-разрядным символом. Как уже отмечалось, 14 бит достаточно для того, чтобы закодировать кодом Хэмминга 8-разрядный байт, при этом останется два лишних бита. На самом деле используется более мощная система кодировки. Перевод из 14- в 8-разрядную систему для считывания информации производится аппаратно с помощью поисковых таблиц. На следующем уровне 42 последовательных символа формируют фрейм из 588 бит. Каждый фрейм содержит 192 бита данных (24 байта). Оставшиеся 396 бит используются для исправления ошибок и контроля. У аудио и компьютерных компакт-дисков эта система одинакова.

У компьютерных компакт-дисков каждые 98 фреймов группируются в сектор, как показано на рис. 2.22. Каждый сектор начинается с преамбулы из 16 байт, первые 12 из которых образуют значение 00FFFFFFFFFFFFFFFFFFFF00 (в шестнадцатеричной системе счисления), по которому проигрыватель распознает начало сектора. Следующие 3 байта содержат номер сектора. Номер необходим, поскольку поиск на компакт-диске, на котором данные записаны по спирали, гораздо сложнее, чем на магнитном диске, где данные записаны на концентрических дорожках. Чтобы найти определенный сектор, программное обеспечение подсчитывает, куда приблизительно нужно направляться; туда помещается считывающая головка, а затем начинается поиск преамбулы, чтобы установить, насколько верен был подсчет. Последний байт преамбулы определяет тип диска.

 

Желтая книга определяет два типа дисков. На рис. 2.22 показана схема расположения данных для типа 1, где преамбула составляет 16 байт, данные — 2048 байт, а код исправления ошибок — 228 байт (код Рида–Соломона). На дисках типа 2 данные и коды исправления ошибок объединяются в поле данных размером 2336 байт. Такая схема применяется для приложений, которые не нуждаются в исправлении ошибок (а вернее, не могут выделить время для этого), например аудио и видео. Отметим, что для обеспечения высокой степени надежности используются три схемы исправления ошибок: в пределах символа, в пределах фрейма и в пределах сектора. Одиночные ошибки в битах исправляются на самом нижнем уровне, пакеты ошибок — на уровне фреймов, а все остаточные ошибки — на уровне секторов. Для поддержания такой надежности необходимо 98 фреймов по 588 бит (7203 байта), чтобы по



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-11-23 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: