Дисковый буфер: почему он вообще существует во многих дисковых контроллерах?

Когда вы запрашиваете диск для данных, он обычно сначала передается в буфер диска в контроллере диска, а затем отправляется в ОЗУ (и, таким образом, сохраняется в памяти). Мне было просто интересно, каковы были преимущества наличия буфера (что, по сути, является дополнительным шагом) в первую очередь.

* edit-> также, кто-то может объяснить, что должен делать контроллер RAID?

1 ответ

Решение

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

Читает: контроллер должен был бы замкнуть связь с компьютером, когда данные должны были стать доступными. Если компьютер попытается отправить некоторые данные в контроллер по мере того, как данные, считываемые с диска, будут возвращены, контроллеру придется выбросить данные и ждать, пока они снова не появятся, и некуда будет их поместить. Если бы компьютер захотел прочитать блоки 1, 2, 3 и 4, а 5, 6, 7 и 8 появились бы первыми, контроллер просто проигнорировал бы их, и если компьютер попросил их долю секунды спустя, Контроллер должен будет ждать их прихода снова.

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

В итоге контроллер использует буфер:

Для чтения: для хранения данных, которые он "случайно" читает, в ожидании получения других данных. Чтобы позволить ему читать дорожку за один оборот, независимо от того, какая часть дорожки попадает под голову первой. Для хранения данных, которые могут понадобиться в ближайшее время, в то время как они идут на другие дела.

Для записи: разрешить компьютеру писать на полной скорости интерфейса (по крайней мере, в течение коротких периодов времени). Переупорядочить записи для более эффективного поиска. Чтобы можно было получать дорожку в порядке от компьютера и записывать в любом порядке, секторы попадают под голову. (Очевидно, что диск может нуждаться в записи 0-63, и сектор 14 может быть первым под заголовком. Если у него есть все данные, прежде чем он записывает любой из них, он может сразу записать 14-63, а затем 0-13 и закончите в одном вращении, вместо того, чтобы ждать 0, чтобы прийти в себя и нуждающихся в двух.)

Другие вопросы по тегам