в оперативной памяти, одна ячейка это один байт в этой ячейки есть адрес,
да, хотя на некоторых платформах адресовать байты, адреса которых не кратные 4 бывает сложно.
если модуль памяти на 4Гб это 4 миллиарда адресов и ячеек
да, чуть больше 4 миллиардов однобайтовых ячеек
то есть 32-битный процессор за один такт может сразу обратится по 4-м миллиардам адресов за данными в ячейках.
далеко не факт. нет гарантии, что за один такт он успеет. Плюс, есть такое дело как кеш - память внутри процессора. Процессор никогда не читает по одному байту, он обычно читает сразу по 16-32 байта. Но это все на современных Intel x86 процессорах. Плюс на 32битных архитектурах есть определенные ограничения и не вся память доступна, а около 3.5 гигабайт.
Кто дает адреса ячейкам оперативной памяти и где они хранятся ?
никто. Это как правая и левая рука. В процессоре может храниться адрес(а) ячейки, с которой в данный момент работает процессор. Но сами номера нигде не хранятся. Другой способ понять. Представьте, что на полке лежит 100 книг и Вам нужна 25. Это же не проблема найти? (только знать, с какой стороны считать номера и начальный). Но сами порядковые номера книг ведь нигде не хранятся и не записаны.
Но что бы глубже понимать, придется изучить схемотехнику, как передаются сигналы и кучу слов вида "триггер, строб, и/или логика, мультиплексор". Точно уверенны, что сможете?
64-х битный процессор имеет просто шину шире по которой может обращаться сразу к 16Эб оперативной памяти и специальные регистры которые вкурсе того что памяти может быть так *** и это все отличия ?
да, шина шире. И регистры "шире". 16Эб памяти он не сможет так просто адресовать. Только в мечатх, но 128 Gb точно. Там хитрее адресация.
Также там ещё и команды умеют работать с 64битными данными. И если сильно не углубляться, то да, это все отличия.
А вот с литературой... может на сайте интела почитать? Правда там все на английском.
Нет, конечно. Объём памяти за такт -- ширина шины (или меньше -- зависит от архитектуры).
Контроллер, схемотехнические решения и т.п.
– alexlz Sep 17 '13 at 13:29
– avp Sep 17 '13 at 15:40Процессор сам (со своей частотой) к памяти не обращается.
Между процессором и кэшем обычно находится еще устройство MMU, которое переводит виртуальные адреса (в процессоре) в физические.
Процессор работает (через MMU) с кэшем 1-го уровня (обычно делают кэш из 3-х уровней).
Время чтения (в тактах) зависит прежде всего от того, есть ли данные в кэше (и на каком уровне).
Там еще можно всего много навспоминать, но тут места мало...
Я, конечно, сейчас внимательно не изучал, но IMHO в статье Кэш процессора как раз то, что надо (только может быть не очень просто...).
--
Вот еще нашел ссылочку. Наверное надо начинать с "Процессор изнутри. Часть 0: Теория".
– avp Sep 17 '13 at 15:57