Раньше, скажем, 386/486 дней, когда память была немного шире, 1 мегабит на 1 бит, но у вас будет 8 или несколько кратных чипов, по одному на каждую битовую дорожку на шине, и Вы могли читать только в ширину автобуса. сегодня память имеет ширину в байт, и вы можете читать только в единицах 32 или 64 или кратных из них. Даже когда вы читаете байт, большинство проектов заполняет весь байт. это добавляет излишне усложнение / стоимость, чтобы полностью изолировать шину от памяти, при чтении байтов большая часть системы выглядит как 32- или 64-битное чтение по мере приближения к краю процессора (иногда физические контакты, иногда край ядра внутри чипа) - это когда отдельная байтовая дорожка отделяется, а остальные биты отбрасываются. Имея кэш для изменения наименьшего делимого размера чтения из памяти, вы увидите пакет или блок чтения.
Можно спроектировать систему памяти шириной 8 бит и считывать 8 бит за раз, но зачем вам это? если это не 8-битный процессор, который вы, вероятно, не могли бы использовать в 8-битной памяти. Во всяком случае, драм работает довольно медленно, что-то вроде 133 МГц (даже если ваша память 1600 МГц - это только короткий пакет, когда вы читаете с медленных частей, память не стала быстрее за 10 лет).
Жесткие диски похожи, но различаются, я думаю, что сектора - это наименьшая делимая единица, которую нужно читать или записывать в этих единицах. Таким образом, при чтении у вас есть цикл памяти на процессоре, ничем не отличающийся от того, который идет в память, и в зависимости от контроллера, либо до того, как вы выполняете чтение, либо в результате, сектор считывается с диска в буфер, мало чем отличается чтение строки кэша, затем ваш цикл памяти в буфер в контроллере диска либо вызывает чтение ширины шины, и процессор разделяет ее, либо, если шина увеличивает сложность, чтобы изолировать байтовые дорожки, то вы изолируете байт, но никто не изолирует битовые дорожки. (Я говорю слово никто и кто-то вернется с исключением ...)
большая часть этого хорошо документирована, не трудно найти. Для ручных платформ ищите спецификации amba и / или axi, которые можно загрузить бесплатно. количество мостов, контроллеров pcie, документы контроллеров дисков - все это доступно для ПК и других платформ. он все еще сводится к шине адреса и данных или к одной шине, а одна - к шине данных и некоторым управляющим сигналам, указывающим тип доступа. некоторые шины имеют байтовый доступ, который обычно предназначен для записи, а не для чтения. Если я хочу записать только байт в драм в современной 64-битной системе, я ДОЛЖЕН рассказать всем драмам о том, что я хочу написать. Чтобы записать байт в модуль памяти, доступ к которому необходимо получить 64 бита за раз, как минимум 64-битное чтение происходит во временное место, либо в кэш, либо в контроллер памяти, а затем записываемый байт изменяет конкретный байт внутри 64-битное слово, затем эта 64-битная величина, в конце концов, записывается обратно в сам модуль памяти. Вы можете сделать это, используя комбинацию адресных битов и нескольких управляющих сигналов, или вы можете просто включить 8-байтовую активацию полосы, и младшие биты адреса можно игнорировать. Жесткий диск, то же самое дело, должен прочитать сектор, изменить один байт, а затем записать весь сектор за раз. с помощью flash и eeprom вы можете записывать только нули (с точки зрения программистов), стирать их в единицы (с точки зрения программистов - это фактически ноль в логике, есть инверсия), а запись должна быть сектором в время сектора может составлять 64 байта, 128 байтов, обычно 256 байтов.