Почему 32-битная память ограничена 4 ГБ ОЗУ, но может легко поддерживать жесткие диски емкостью 1 ТБ?
Как работает двоичная математика?
Почему 32-битная память ограничена 4 ГБ ОЗУ, но может легко поддерживать жесткие диски емкостью 1 ТБ?
Как работает двоичная математика?
Проблема заключается в адресации: адресация в ОЗУ осуществляется на байтовой основе, поэтому 2 ^ 32 позволяет сделать адресацию 4G байтов.
Адресация жесткого диска осуществляется по секторам. Каждый сектор имеет длину 512 байт. Таким образом, одно 32-битное значение позволяет адресовать сектор на диске 2 ТБ.
Чтобы разрешить доступ для дисков размером более 2 ТБ, операционная система использует 64-битные адреса секторов.
Это не имеет ничего общего с бинарной математикой. Это связано с размером адресного пространства, которое вы можете создать с ограниченным количеством битов. Биты являются экспоненциальными с точки зрения их индивидуальных возможностей адресации. Переход с 32 бит на 64 бит не дает вам вдвое больше адресного пространства, чем раньше, он дает вам гораздо больше. Например:
128 64 32 16 8 4 2 1
Вот как выглядит 8 бит или байт. Каждый бит упорядочен и имеет указанное значение. Таким образом, с 8 битами, вы можете создать число в диапазоне от 0 до 255. Попробуйте сами, сложите все вместе и посмотрите, что вы получите ...
1 + 2 + 4 + 8 ... and so on = 255
Проще говоря как ...
2^8 where 8 is the number of bits
Однако добавьте только один дополнительный бит, и вы сможете увеличить свое значение до 511: (255 + 256) = 511
256 128 64 32 16 8 4 2 1
Итак, представьте, что каждое адресное пространство является просто числом, поэтому с 8 битами вы можете адресовать 256 байтов памяти. Возможно значение 65536 или 64k выглядит знакомо? Это потому, что это число байтов памяти, которое может быть адресовано 16 битами. Таким образом, с 32 битами вы можете адресовать 4 ГБ памяти:
2^32 = 4294967296 or 4GB
Теперь ответим на ваш вопрос о жестких дисках. Жесткие диски не имеют статических физических проводов, которые требуют адресного пространства. Жесткие диски динамичны, в них есть движущиеся части. В любой момент времени ОС не обязательно адресует каждый байт на жестком диске. Он может адресовать часть этого в памяти, пока это требуется (следовательно, чтение с диска в память), а затем записывать обратно, когда это не требуется. Контроллер жесткого диска имеет драйвер, который позволяет ОС взаимодействовать с файловой системой. Файловые системы имеют индекс, который является адресуемым и использует его для загрузки расширенных индексов или для того, чтобы узнать, где искать на диске для получения данных. Вот почему жесткие диски медленнее по сравнению с памятью, потому что доступ к данным - это очень механический процесс.
Думайте о своем жестком диске как о книге. Вы можете начать читать каждую страницу, чтобы найти то, что вы ищете, но это может занять несколько недель. Вместо этого вы посмотрите на индекс в конце книги, чтобы получить номера страниц, которые содержат соответствующую информацию. Затем вы будете искать эти страницы и читать информацию в вашей краткосрочной памяти, где вы будете обрабатывать факты. В какой-то момент вам нужно будет запомнить что-то еще, после чего вы забудете о мелких деталях того, что вы только что прочитали. В следующий раз, когда вы захотите снова получить доступ к этой информации, вы переходите к индексу, снова ищите номер страницы и ищите страницу в книге, где вы снова читаете ее в кратковременную память.
Надеюсь это поможет.