1

Хочу разобраться в адресации, а в книгах очень заумно написано, помогите если можите ...
Поправьте меня если я ошибаюсь: в оперативной памяти, одна ячейка это один байт в этой ячейки есть адрес, если модуль памяти на 4Гб это 4 миллиарда адресов и ячеек то есть 32-битный процессор за один такт может сразу обратится по 4-м миллиардам адресов за данными в ячейках.
Вопросы:

  1. Кто дает адреса ячейкам оперативной памяти и где они хранятся ?
  2. 64-х битный процессор имеет просто шину шире по которой может обращаться сразу к 16Эб оперативной памяти и специальные регистры которые вкурсе того что памяти может быть так дохренищя и это все отличия ?

Дайте хорошую литературу по ЭВМ ... Спасибо всем добрым людям :)

Deleted
  • 371

1 Answers1

3

в оперативной памяти, одна ячейка это один байт в этой ячейки есть адрес,

да, хотя на некоторых платформах адресовать байты, адреса которых не кратные 4 бывает сложно.

если модуль памяти на 4Гб это 4 миллиарда адресов и ячеек

да, чуть больше 4 миллиардов однобайтовых ячеек

то есть 32-битный процессор за один такт может сразу обратится по 4-м миллиардам адресов за данными в ячейках.

далеко не факт. нет гарантии, что за один такт он успеет. Плюс, есть такое дело как кеш - память внутри процессора. Процессор никогда не читает по одному байту, он обычно читает сразу по 16-32 байта. Но это все на современных Intel x86 процессорах. Плюс на 32битных архитектурах есть определенные ограничения и не вся память доступна, а около 3.5 гигабайт.

Кто дает адреса ячейкам оперативной памяти и где они хранятся ?

никто. Это как правая и левая рука. В процессоре может храниться адрес(а) ячейки, с которой в данный момент работает процессор. Но сами номера нигде не хранятся. Другой способ понять. Представьте, что на полке лежит 100 книг и Вам нужна 25. Это же не проблема найти? (только знать, с какой стороны считать номера и начальный). Но сами порядковые номера книг ведь нигде не хранятся и не записаны.

Но что бы глубже понимать, придется изучить схемотехнику, как передаются сигналы и кучу слов вида "триггер, строб, и/или логика, мультиплексор". Точно уверенны, что сможете?

64-х битный процессор имеет просто шину шире по которой может обращаться сразу к 16Эб оперативной памяти и специальные регистры которые вкурсе того что памяти может быть так *** и это все отличия ?

да, шина шире. И регистры "шире". 16Эб памяти он не сможет так просто адресовать. Только в мечатх, но 128 Gb точно. Там хитрее адресация. Также там ещё и команды умеют работать с 64битными данными. И если сильно не углубляться, то да, это все отличия.

А вот с литературой... может на сайте интела почитать? Правда там все на английском.

KoVadim
  • 112,121
  • 6
  • 94
  • 160
  • Хм
    то есть 32-битный процессор за один такт может сразу обратится по 4-м миллиардам адресов за данными в ячейках.
    
    

    Нет, конечно. Объём памяти за такт -- ширина шины (или меньше -- зависит от архитектуры).

    Кто дает адреса ячейкам оперативной памяти и где они хранятся ?
    
    

    Контроллер, схемотехнические решения и т.п.

    – alexlz Sep 17 '13 at 13:29
  • @Алина_Климова, к сожалению реальная работы процессора (даже оставаясь в рамках x-86 архитектуры) несколько сложнее, чем это описал @KoVadim.
    1. Процессор сам (со своей частотой) к памяти не обращается.

    2. Между процессором и кэшем обычно находится еще устройство MMU, которое переводит виртуальные адреса (в процессоре) в физические.

    3. Процессор работает (через MMU) с кэшем 1-го уровня (обычно делают кэш из 3-х уровней).

    4. Время чтения (в тактах) зависит прежде всего от того, есть ли данные в кэше (и на каком уровне).

    5. Там еще можно всего много навспоминать, но тут места мало...

    – avp Sep 17 '13 at 15:40
  • @avp Благодарю вас, если у вас будет время может дадите ссылку где можно об этом почитать, в википедии так всё разбросано и не понятно написано, буду рада любому материалу !!! – Алина_Климова Sep 17 '13 at 15:46
  • Почему в Википедии разбросано?

    Я, конечно, сейчас внимательно не изучал, но IMHO в статье Кэш процессора как раз то, что надо (только может быть не очень просто...).

    --

    Вот еще нашел ссылочку. Наверное надо начинать с "Процессор изнутри. Часть 0: Теория".

    – avp Sep 17 '13 at 15:57
  • Огромнейшее спасибо ! – Алина_Климова Sep 17 '13 at 17:26