2
  1. Мне было интересно, должны ли биты ОС, набора команд, регистров ЦП, шины данных от ЦП к памяти и адресной шины от ЦП к памяти быть в некотором смысле согласованными и как?
  2. Когда мы говорим об элементах архитектуры, на какой из них он ссылается?
  3. Когда мы говорим о битах процессора, на какой из перечисленных выше он ссылается?
  4. Почему в таблице в http://en.wikipedia.org/wiki/Comparison_of_CPU_architectures биты регистра иногда больше битов архитектуры, а иногда меньше? Разве они не должны быть больше?
  5. Когда мы говорим о битах ОС или приложения, что это значит? значит ли это? Должны ли они быть такими же, как биты набора команд?

Спасибо и всего наилучшего!

2 ответа2

5
  1. Ширина в битах любой конкретной ступени (регистры, шина данных, адресная шина или даже инструкции) не обязательно должна соответствовать ширине в битах любой другой ступени. Какая бы операционная система не работала на этом процессоре, нужно просто знать об ограничениях на каждом этапе и учитывать их.

  2. Обычно, когда мы говорим, 32- или 64-битные, мы имеем в виду количество адресных линий, доступных ЦПУ, и это обычно синонимично с битовой шириной регистра адресов, поскольку это является наиболее ограничивающим фактором. Данные могут передаваться с использованием небольшого числа строк данных с использованием нескольких передач, но этого нельзя сказать об адресах памяти. Каждый адрес должен быть физически выбираемым через адресные строки, и должно быть как минимум достаточно адресных строк, поскольку есть адресные биты.

  3. так же, как номер 2.

  4. Регистры (особенно специальные регистры данных, такие как SSE) могут работать с большим количеством данных, чем общая битовая ширина шины данных, и в то время как есть инструкции, которые утверждают, что "взять этот байт из ячейки памяти X и сохранить в регистре y", есть также инструкции которые могут указать «взять данные из ячеек памяти x и x + 1 и сохранить их в специальном регистре z», которые будут использовать две передачи памяти для захвата обеих частей данных, и инструкция вернется только после заполнения регистра z обеими частями данных.

    Таким образом, внутренняя ширина регистров данных не обязательно должна соответствовать ширине внешней шины данных, поскольку вы можете просто дольше ждать, пока данные будут загружены в процессор. Это относится только к данным, используемым в памяти.

  5. Опять же, мы обычно ссылаемся на количество доступных битов адреса и, следовательно, на объем используемой памяти.

Вы можете рассмотреть возможность программирования на простом процессоре, таком как Z80, так как это хорошо известный и относительно простой процессор, но он даст вам хорошее представление о том, как он и существующие процессоры ограничены и используются. В то время как современные процессоры являются на несколько порядков более сложными с большим количеством инструкций, Z80 даст вам хорошее представление об основных принципах работы универсального процессора.

2

32-разрядный или 64-разрядный относится к адресному пространству аппаратного обеспечения, в частности ЦП. Процессор использует одно 32-разрядное или 64-разрядное целое число для доступа к памяти.

Например, 32-разрядное целое число без знака может иметь доступ только к 4 миллиардам адресов, что означает 4 ГБ ОЗУ. Если ОС является только 32-разрядной, а ЦП - 64-разрядной, то ЦП будет использовать только 32-разрядное адресное пространство.

С другой стороны, наборы инструкций определяют коды, которые ОС отправляет в ЦПУ для выполнения работы. Это как перемещение, копирование и т.д. Это происходит между регистрами. Регистров ЦП никогда не будет достаточно для учета всего возможного адресного пространства ЦП. В любом случае, это действительно имеет значение, когда речь идет об оперативной памяти.

Регистры используются только для хранения значений в промежуточных вычислениях, например, для хранения часто используемых целых чисел. Если вы посмотрите на архитектуру MIMIX, она 64-битная, но имеет 256 регистров. Количество регистров является частью спецификации чипа, а не ограничением аппаратного обеспечения.

Количество и типы регистров являются оптимизацией конструкции микросхемы, которая зависит от предполагаемого использования ЦП. Более согласованный дизайн (например, x86 и x86-64) означает, что разработчики ОС могут обобщать больше, а более конкретные разрабатываются с учетом конкретной ОС.

Я не знаю слишком много о низкоуровневом дизайне чипов, но это столько, сколько я почерпнул из своих уроков EE, как из колледжа и из Википедии =).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .