2010-03-20 3 views
4

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

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

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

ответ

6

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

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

+0

И, конечно, даже если процессор поддерживает заданный объем памяти, это не значит, что другое оборудование или ОС могут его поддерживать. Например. Intel i7 - это 64-битный процессор, но материнские платы обычно ограничены 24 ГБ. – Richard

+1

Существует множество процессоров, которые имеют более 32 физических адресных битов, но только 32-разрядные адресные регистры. PAE от Intel разрешила до 64 Гбайт на старом 32-битном процессоре, таком как Pentium III и т. Д. – hirschhornsalz

1

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

1

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

1

На что вы ссылаетесь, ссылаясь на «память» виртуальной памяти или физическое? В случае с виртуальной памятью это 4 ГБ для 32-битных процессоров, хотя вы можете не использовать все их, поскольку ОС использует часть его. Также обратите внимание на PAE (расширение физического адреса) для вашего CPU и если ОС работает с ядром 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

0

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

Например, 8-разрядный процессор имеет значения до 255, которые были вычислены с использованием от 2 до восьмой мощности и вычитания значения на единицу. Это число 255, сколько байтов процессор может обрабатывать, и ОЗУ не может превышать эту сумму.

Теперь давайте немного поднимем это (не каламбур). 16-процессор имеет значения до 65535, и это было снова выяснено, взяв 2 до шестнадцатой мощности, а затем вычитается одним (я уверен, что теперь вы получите большую картину). Это означает, что мы можем иметь 65535 байт ОЗУ или 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 ... um ... ну, некоторые измерения байтов, которые, как оказалось, больше, чем yottabytes, и, насколько мне известно, нет никаких единиц от байтового измерения. Но, эй, это просто говорит вам, что 128-битный процессор может много работать, и мы можем видеть их в далеком будущем. Причина, по которой люди говорят, что 128-битная, 64-разрядная, 32-разрядная, 16-разрядная или 8-разрядная, объясняется тем, что это намного проще, чем пытаться запомнить все те, что те большие числа, которые каждый из них представляет.

Итак, я надеюсь, что это поможет. Я не уверен, что 8-битный правильный, потому что я знаю, что у NES есть 2 килобайта ОЗУ, что превышает 255 байт, но я знаю, что все остальное верно. Если это неверно, вы также можете провести некоторое исследование от вашего имени;).

+0

В то время как у NES было 2 КБ встроенной памяти, картриджи добавили до мегабайта дополнительной ОЗУ. Обычные 8-битные микропроцессоры могут адресовать до 64 Кбайт основной памяти без трюков, таких как переключение банков. «16-разрядный» 8086 может адресовать 1 МБ основной памяти, а 32-разрядные процессоры iA могут обрабатывать до 64 МБ с помощью трюков, таких как [PAE] (http://en.wikipedia.org/wiki/Physical_Address_Extension). –

+0

Действительно, со всем этим складывается очень плохой и вводящий в заблуждение ответ. –

+0

Честно говоря, я не думаю, что это вообще вводит в заблуждение. Конечно, поддержка ОЗУ процессора зависит от других аспектов, но это в основном, как работают общие вещи. –

Смежные вопросы