Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4.b._Konspekt2.doc
Скачиваний:
115
Добавлен:
22.08.2013
Размер:
5.43 Mб
Скачать

3. Структура дисковой памяти

    1. Повышение производительности дисков

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

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

Одним из методов повышения скорости передачи является чередование секторов на диске.Секторы на диске можно нумеровать по-разному. Простейшим способом нумерации секторов является нумерация секторов естественным способом, например, 1, 2, 3, ,17 и т.д. Другой способ нумерации секторов предполагает чередование номеров, это даёт повышение скорости считывания данных. Рассмотрим следующий пример: пусть количество секторов на диске равно 17 (это типично дляMFM-кодирования данных). Если считываемый файл расположен в последовательных секторах (1, 2, 3 и т.д. ), то при подходе головки к 1-му сектору контроллер НМД считывает заголовок сектора, отрабатывает его, затем считывает коды циклического контроля, а затем 512 байт данных, после чего читаются коды ЕСС. Если контроллер НМД не очень быстрый, то вполне допустима ситуация, что готовность контроллера к считыванию следующего сектора наступит тогда, когда головка пройдёт какую-либо часть этого сектора. Таким образом, считывание 2-го сектора становится невозможным – приходится ждать целого оборота диска. Таким образом, один сектор читается за один оборот диска, что снижает скорость передачи данных. Такое же снижение характерно для записи информации на диск.

Выходом из этого положения является так называемое чередование секторов.Суть чередования заключается в следующем: файл, записываемый на диск размещается в секторах с номерами 1, 3. 5 7 9, 11, 13, 15, 17, а затем в секторах 2, 4, 6, 8, 10, 12, 14, 16. Это даёт возможность после считывания сектора 1, перескочить сектор 2 и начать считывание сектора 3, когда он подойдёт к головке. Коэффициент чередования при этом будет равен 2:1 (пропуск одного сектора). На практике используют также коэффициенты 3:1, 4:1, что зависит от скоростных характеристик контроллера.

При коэффициенте чередования 2:1 и в случае, когда файл размещён во всех 17 секторах дорожки, головка должна «пробежать» по дорожке минимум дважды.

При определении «идеального» коэффициента чередования для данного накопителя приходится учитывать несколько факторов:

  1. Быстродействие контроллера НМД;

  2. Частоту синхронизации материнской платы;

  3. Скорость работы шины ввода-вывода.

Таким образом определить правильный коэффициент чередования можно лишь на системном уровне.

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

Вторым методом повышения производительности диска является метод «перекоса головок». Здесь речь не идёт о перекосе головок, как о дефектном явлении в блоке головок дисковой памяти. Так называемый «перекос головок» организуется специально.

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

Tn = K·tд + L·tц,

где: Tnсуммарное время перехода на новую дорожку в другом

цилиндре;

t д – время перехода другую дорожку в пределах цилиндра;

tц – время перехода на соседний цилиндр;

К – коэффициент, равный количеству дорожек, через которые

головка должна «перескочить» (если соседние цилиндры заняты);

Lкоэффициент, увеличивающий время t ц, если дорожка в

цилиндре не первая.

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

Идея перекоса головок достаточно проста и иллюстрируется рисунком (см. рис. 18):

На рисунке для простоты рассмотрения использован коэффициент чередования 1:1 и количество секторов – 17.

В двухдисковом накопителе (4 рабочих дорожки в цилиндре на четырёх рабочих поверхностях пакета дисков) секторы пронумерованы так, как показано на рис.18 Если файл занимает все 4 дорожки одного цилиндра, то при считывании его сначала читаются секторы 1 – 17 нулевой головкой (Гол.0), а затем происходит переключение головок и считывание продолжает первая головка (Гол.1). Переключение на первую головку происходит за время прохода 17-го сектора под этой головкой, затем читаются секторы 1 – 17 и так далее по всем дорожкам цилиндра. В рассмотренном случае «перекос» первой головки относительно нулевой равен +1, второй относительно нулевой + 2 и так далее.

Номера секторов хранятся в их заголовках, поэтому значение чередования секторов и перекос головок определяется при записи информации в заголовки секторов. Первоначально программа подготовки дисков (форматтер низкого уровня) решает эту задачу, просто вызывая специальную функцию контроллера диска.

Соседние файлы в предмете Системы ввода и вывода данных