Недавно я начал с курса по компьютерной архитектуре на интернет-ресурсе. Я прочитал из одной из книг, которую взял, что процессоры x86 имеют 32 адресные строки и могут читать данные по шине данных по 4 байта за раз. Теперь я понимаю, что 32 адресные строки ограничивают адресуемую память 4 миллиардами уникальных адресов. Что мне трудно понять, так это тот факт, что если ЦП может читать 4 байта данных в каждом цикле с каждого из этих 4 миллиардов уникальных адресов, почему ОЗУ в системах x86 ограничено 4 ГБ. Разве вместо этого не должно быть 16 ГБ (4 раза по 4 ГБ)? Может ли кто-нибудь прояснить это для меня? Также, когда я говорю о 32-битных или 64-битных микропроцессорах, относится ли 32/64 к количеству адресных строк или количеству строк данных в ЦП? (В моем первом вопросе я, вероятно, должен упомянуть, что предполагаю систему без расширения физического адреса.)
Ограничение памяти для микропроцессоров x86
Ответы (1)
Микропроцессоры x86 - это широкая категория процессоров, которая за десятилетия эволюционировала от 8086 до сегодняшних 64-битных многоядерные процессоры. Одна из сильных сторон процессоров x86 заключается в том, что они обратно совместимы, что означает, что последние процессоры в члены семьи понимают инструкции 8086 (они должны работать в специальном режиме, называемом Real Mode
). 8086 имел 16-битные регистры и 16-битную шину для памяти и ввода-вывода, он был с байтовой адресацией означает, что программа использовала адрес отдельного байта. 8086 может загружать из памяти 1 или 2 байта (называемых словом). Со временем новые процессоры x86 добавили больше битов в адресные строки, добавили виртуальную память и увеличили words
. Итак, 32-битный элемент данных был назван double word
, а 64-битный элемент данных стал известен как quad word
, а затем появился SSE, и у нас был 128-битный octaword or double quadword
, вот таблица размеров данных. Новые процессоры x86 могут получать доступ к данным любого из этих размеров, на самом деле последние имеют инструкции AVX, которые иметь 256-битные векторные регистры. Адресация памяти с точки зрения программы по-прежнему осуществляется путем присвоения адреса байта по младшему адресу.
Подробнее о 64-битных вычислениях можно узнать здесь. Вот хорошее резюме:
Без дополнительных уточнений, 64-битная компьютерная архитектура обычно имеет целочисленные регистры и регистры адресации шириной 64 бита, что позволяет напрямую поддерживать 64-битные типы данных и адреса. Однако у ЦП могут быть внешние шины данных или адресные шины с размером, отличным от регистров, даже больше (например, у 32-битного Pentium была 64-битная шина данных).