Для устройств, которые не имеют прямой адресации, вам не нужно указывать им конкретный адрес, используя фиксированное количество строк, многие устройства позволяют отправлять несколько байтов, описывающих адрес, к которому вы хотите получить доступ. Устройства хранения обычно не имеют адресных линий, связанных с ними, и поэтому реализуют командную шину, которая позволяет отправлять набор байтов, подобный следующему:
- 1-й байт: «Я хочу что-то прочитать, следующие 6 байтов, которые вы получите, будут адресом для чтения»
- 2-й байт: адресный байт 1
- 3-й байт: адресный байт 2
- 4-й байт: адресный байт 3
- 5-й байт: адресный байт 4
- 6-й байт: адресный байт 5
- 7-й байт: адресный байт 6
Затем они уйдут и через некоторое время начнут процесс отправки вам байтов данных, найденных по этому адресу.
Вы также можете переопределить базовое количество «одного блока» данных, чтобы оно отличалось от одного байта (в зависимости от использования памяти). Таким образом, по адресу 0 находится 512-байтовый блок, по адресу 1 - следующий 512-байтовый блок и так далее.
Жесткие диски и так далее используют оба этих метода. То, что вам нужно исследовать, называется логической блочной адресацией.
Это по-прежнему сопряжено с проблемами, аналогичными тем, которые были у нас при переходе с 32-разрядных на 64-разрядные процессоры, старое оборудование пришлось заменить, поскольку оно не могло физически поддерживать новый интерфейс и схему адресации. Предыдущие поколения интерфейса жесткого диска поддерживали только до 137 ГБ хранилища с 28-битным адресом блока, а новые интерфейсы поддерживают 48-битную адресацию, что позволяет адресовать до 128 ПиБ.
Контроллер и подчиненное устройство должны иметь возможность общаться с использованием более нового стандарта, чтобы они могли поддерживать больший размер, если один из них просто не может отправить всю необходимую информацию, его необходимо каким-то образом заменить.