как мы можем определить, какой объем памяти поддерживает этот процессор?
-
21-09-2019 - |
Вопрос
Я только начал программировать на языке ассемблера, и на первой лекции наш преподаватель рассказал нам об intel 8080 и intel 8085 и сказал, что у этих процессоров 64 кб памяти.
Теперь я хочу знать, как мы находим этот объем памяти с конкретным процессором, например, у меня процессор 1,8 ГГц, теперь, как я могу узнать объем памяти, который может быть использован с этим процессором.
что я пытаюсь спросить, так это скажите мне метод, как мы можем определить этот объем памяти?
Решение
Это зависит от того, сколько битов (физической) адресации поддерживает процессор, количество битов адреса обычно <= количество битов в регистре адреса, например
8085/Z80 - 16 bit address registers - 16 bit addressing - 64 kB address space
68008 - 32 bit address registers - 20 bit addressing - 1 MB address space
68000 - 32 bit address registers - 24 bit addressing - 16 MB address space
68020 - 32 bit address registers - 32 bit addressing - 4 GB address space
Обратите внимание, что многие 64-разрядные процессоры обычно поддерживают только что-то вроде 40-разрядного адресного пространства, т. е.1 ТБ.
Другие советы
Обычно процессоры сконструированы таким образом, что в одном целочисленном регистре может храниться адрес любой ячейки памяти.Следовательно, "максимальный объем памяти" определяется количеством битов в регистре (или процессоре).32 бита равны 4 ГБ.64 бита равны 16 эксабайты из оперативной памяти.
Зависит от архитектуры, но процессор будет ограничен количеством адресных строк, которые у него есть.В старом 32-разрядном процессоре pentium pro поддерживалось 36 адресных строк, и поэтому процессор мог поддерживать до 64 ГБ.Более поздние процессоры, такие как i7-860, который является 64-разрядным процессором, также поддерживают только 36 физических адресов и, следовательно, также ограничены 64 ГБ.Объем физического адресного пространства можно определить с помощью кода инструкции CPUID, другие процессоры могут использовать другие методы или требовать чтения таблицы данных.Похоже, вы изучаете x86, так что в этом случае CPUID - это то, что вам нужно, если ваш процессор его поддерживает.
На что вы указываете, ссылаясь на виртуальную память "memory" или физическую?В случае виртуальной памяти это 4 ГБ для 32-разрядных процессоров, хотя вы можете использовать не все из них, поскольку ОС использует ее часть.Также обратите внимание на PAE (расширение физического адреса) для вашего процессора и работает ли в ОС ядро PAE.Это даст вам более 4 ГБ физической памяти для установки и использования, но виртуальное адресное пространство по-прежнему останется 4 ГБ.Пожалуйста, взгляните :
http://en.wikipedia.org/wiki/Physical_Address_Extension
http://msdn.microsoft.com/en-us/library/aa366796 (v= против 85).aspx
Ну, это зависит от определенных переменных.
Например, 8-разрядный процессор имеет значения до 255, которые были вычислены путем возведения 2 в восьмую степень и вычитания значения на единицу.Это число, 255, показывает, сколько байт может обработать центральный процессор, а объем оперативной памяти не может превышать этот объем.
Теперь давайте немного продвинемся вперед (без каламбуров).16-ит-процессор имеет значения до 65 535, и это снова было подсчитано путем возведения 2 в шестнадцатую степень, а затем вычитания на единицу (я уверен, теперь вы получили общую картину).Это означает, что у нас может быть 65 535 байт оперативной памяти, или 65,535 килобайта.Надеюсь, это начинает приобретать смысл.
32-разрядный процессор имеет значения до 4 294 967 295 (эти цифры становятся довольно большими).Это 4 294 967 295 байт, или 4.294967295 гигабайт оперативной памяти.Эта технология начала широко использоваться в 90-х годах, и сегодня она все еще остается полупопулярной.
Но, конечно, мы все знаем, как быстро и часто меняются технологии, так что да, существуют также 64-разрядные компьютеры, столь же хорошие, как и 32-разрядные технологии.На самом деле это самый распространенный тип процессора на сегодняшний день.Таким образом, они могут поддерживать значения 18,446,744,073,709,551,615.Да, и это также то, сколько байт он может вместить, что равно 18,446744073709551615 эксабайт.
И, хотя в настоящее время нет процессоров, способных вместить такое количество, существуют также 128-битные процессоры.Они могут содержать до 340,282,366,920,938,463,463,374,607,431,768,211,455 байт данных, что также равно 340,282366920938463463374607431768211455 ...гм...ну, некоторое измерение в байтах, которое оказывается больше, чем йоттабайты, и, насколько я знаю, за пределами этого нет никаких единиц измерения в байтах.Но, эй, это просто говорит вам о том, что 128-битный процессор может справиться со многим, и мы, возможно, увидим их в далеком будущем.Причина, по которой люди говорят 128-битный, 64-битный, 32-битный, 16-битный или 8-битный, заключается в том, что это намного проще, чем пытаться запомнить все те большие числа, которые каждое из них представляет.
Итак, я надеюсь, что это поможет.Я не уверен, что 8-разрядный вариант правильный, потому что я знаю, что NES имеет 2 килобайта оперативной памяти, что превышает 255 байт, но я знаю, что все остальное правильно.Если это неверно, вы могли бы провести некоторое исследование и от своего имени ;).