Произволен ли объем данных считывамый с жесткого диска?

Тема в разделе "WASM.ELECTRONICS", создана пользователем EvilsInterrupt, 25 дек 2006.

  1. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    Вот читаю курс на intuit.ru "Введение в реляционные базы данных".

    Вот что автор пишет:

    Смущает фраза: "Как отмечалось ранее, аппаратура магнитных дисков допускает выполнение обмена с дисками порциями данных произвольного размера"

    Это что, действительно если через порты ввода\вывода обращусь к жесткого диска то информацию могу получать всегда по разному?

    Я почему то всегда считал, что только 512 байт могу считывать за раз или я что-то не правильно понимаю?
     
  2. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    Сектор 512 байт это минимальный размер и дискрет чтения данных с диска, поэтому правильнее говорить не о "произвольном размере", а о размере кратном 512 байтам.
    По моим поверхностным представлениям (;), cовременные диски имеют буферы чтения\записи до 8-16 Мб и читают с диска не по одному сектору, а множество секторов, вплоть до всей дорожки целиком. Соответственно и запросы на чтение в режиме DMA идут не по одному сектору, а блоками - начальный сектор + число секторов, поэтому последовательное чтение в режиме DMA осуществляется значительно быстрее чем PIO
     
  3. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    leo
    Задают начальный сектор и число байт на читение. минимальный размер 2Байта. Аппаратура позволяет передовать произвольный размер блоками от 2 байт, до 64КБайт. Число блоков не ограниченно. Но стандартный жесткий диск имеет ограничение он может отсылать только по 512Байт, так что размер блока должен быть кратен 512 Байт.
     
  4. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    Pavia
    Ты пишешь, что аппаратура позволяет передавать произвольный, и в тоже время стандартный имеет ограничение по 512 Байт, это на уровне аппаратуры? Везде словао "аппаратура" и потому не доконца ясны твои слова! :)

    зы:
    Сорри, но с твоих слов я не фига не понял, но с 20:50 и по текущий момент 23:05 пытался усердно понять, даже читая ман(гугл дал) :)
     
  5. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    EvilsInterrupt
    Контролер дисков Sata, PATA позволяет передовать и принимать блоки 2Байт-64КБайт, число блоков не ограниченно. А вот сам диск позволяет передовать только блоками по 512Байт, что приводит к тому что мы должны задовать Блок при использовании DMA кратный 512Байт из диапозона 2Байт-64КБайт.
     
  6. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    Pavia
    Это потому что винт размечен низко-уровневым форматом? То есть там на несена спец.информация и эта информация условно делит на сектора.

    Я правильно полагаю?
     
  7. P_F

    P_F New Member

    Публикаций:
    0
    Регистрация:
    27 мар 2006
    Сообщения:
    116
    Адрес:
    Russia
    я практически в это не втыкаю, но что то мне подсказывает что на винте не нанесено
    никакой спец. инфы, и всё дело в контролле винтов который на маме (он позволяет,
    и видимо сама спека/и позволяют чтение любой информации) и контролера(не знаю мона ли его так обозвать) в самом винте который, как раз, физически так устроен что считывает по порции, которую назвали сектором :)
     
  8. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    P_F
    Нет, ты не прав. Перед тем как винчестер начинает использоваться в обычном режим, его подготавливают на спец. оборудовании. Это оборудование делает низкоуровневое форматирование, это точно по крайней мере на моем Seagete Barracude 40 GB.

    зы:
    Я даже знаю множество народу, которые свято верят, в программы Low-Level Format и что эти программы способны им восстановить, так называемые "бэды". :)

    Так вот каждый сектор разделен спец.маркером, маркеры делят дорожку на сектора. Каждый сектор это 512 байт. Вот и получается что аппаратура считывает до тех пор пока не встретиться маркер, а это 512 байт! Получается, что за 1 раз, считывается фиксированное кол-во байт!
    Между тем автор курса, читать выше, писал:
     
  9. _BC_

    _BC_ БЦ

    Публикаций:
    0
    Регистрация:
    20 янв 2005
    Сообщения:
    759
    Вообще-то в PIO тоже делаются многосекторные передачи -- регистр Sector Count никто не отменял. ;) DMA быстрее за счет другого -- обмен данными делается самим контроллером, без участия процессора (проц только настраивает PRD и регистры busmaster'a). Басмастер в PRD позволяет задавать фрагменты произвольного размера, т.к. предназначен не только для секторных передач.

    Heh, ну это ж всего лишь автор книжки/курса по БД. ;)
     
  10. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    Pavia, _BC_
    Спасибо за уточнения

    EvilsInterrupt
    В чем противоречие-то ? Сам диск читает сектора по 512 байт и кидает в буфер, а "аппаратура магнитных дисков", т.е. контроллер может извлекать из этого буфера данные "любого" размера - от 2 байт до 64К за раз согласно уточнению Pavia
    PS: процессор тоже читает из ОЗУ в кэш только целые линейки по 32, 64, 128 байт в завис-ти от проца, несмотря на то что ты у него присишь всего один байт или дворд - вот и с диском примерно такая же "петрушка" ;)
     
  11. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    Есть. И "паспорт" диска, и таблица бедов, и много чего ещё.
     
  12. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    Всем спасибо за ваше терпение. Думаю тему можно закрыть. Хотя и порадовался бы еще более глубоким знаниям.

    С наступающим вас!
     
  13. Otebebe

    Otebebe New Member

    Публикаций:
    0
    Регистрация:
    3 апр 2006
    Сообщения:
    91
    HDD может отдавать кол-во байт не кратное сектору.
    Например так отрабатывают некоторые команды на WDC-based WD