Как мы можем обнаружить, что этот процессор поддерживает сколько памяти? - PullRequest
4 голосов
/ 20 марта 2010

Я только начал программирование на ассемблере, и в первой лекции наш учитель рассказал нам о intel 8080 и intel 8085, и он сказал, что память с этим процессором составляет 64 КБ.

Теперь я хочу знать, как мы находим этот объем памяти с конкретным процессором, например, у меня есть процессор с частотой 1,8 ГГц, а теперь как я могу узнать объем памяти, который можно использовать с этим процессором.

что я пытаюсь спросить, так это скажите мне, как мы можем узнать этот объем памяти?

Ответы [ 5 ]

7 голосов
/ 20 марта 2010

Это зависит от того, сколько бит (физической) адресации поддерживает ЦП. Число битов адреса обычно <= количество бит в регистре адресов, например, </p>

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 ТБ.

1 голос
/ 05 мая 2011

На что вы указываете, ссылаясь на «память» виртуальной памяти или физической? В случае виртуальной памяти это 4 ГБ для 32-битных процессоров, хотя вы можете не использовать их все, так как ОС использует их часть. Также обратите внимание на PAE (расширение физического адреса) для вашего процессора и, если ОС работает с ядром PAE. Это даст вам более 4 ГБ физической памяти для установки и использования, но виртуальное адресное пространство по-прежнему остается 4 ГБ. Пожалуйста, посмотрите:

http://en.wikipedia.org/wiki/Physical_Address_Extension

http://msdn.microsoft.com/en-us/library/aa366796(v=vs.85).aspx

http://msdn.microsoft.com/en-us/windows/hardware/gg487503

1 голос
/ 21 марта 2010

Зависит от архитектуры, но процессор будет ограничен количеством адресных линий. В старом 32-разрядном процессоре Pentium Pro было поддержано 36 адресных линий, и поэтому процессор мог поддерживать до 64 ГБ. Более новый процессор, такой как i7-860, который является 64-разрядным процессором, также поддерживает только 36 физических адресов и поэтому ограничен 64 ГБ. Объем физического адресного пространства можно найти с помощью кода инструкции CPUID, другие процессоры могут использовать другие методы или требуют чтения таблицы данных. Похоже, вы изучаете x86, поэтому в этом случае CPUID - это то, что вам нужно, если ваш процессор поддерживает его.

1 голос
/ 20 марта 2010

Обычно процессоры спроектированы так, что один целочисленный регистр может хранить адрес любой ячейки памяти. Поэтому «максимальный объем памяти» определяется количеством битов в регистре (или процессоре). 32 бита равны 4 ГБ. 64 бита равны 16 экзабайт оперативной памяти.

0 голосов
/ 09 января 2014

Ну, это зависит от определенных переменных.

Например, 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 байт, но я знаю, что все остальное правильно. Если это не правильно, вы также можете провести некоторые исследования от вашего имени;).

...