1

Допустим, внутренние регистры процессора имеют ширину 32 бита. Но процессор имеет 64-битную системную шину, и два отдельных конвейера получают информацию одновременно, считается ли это 32-битным процессором или 64-битным процессором?

2 ответа2

3

Это 32-битный процессор - широко распространено мнение, что "битность" процессора - это ширина void * , которая в этом случае будет 32

3

Есть много вещей, связанных с процессором, который может быть Х-битами.

Старая Motorola 68000 выпускалась в 8-битном автобусном варианте, например, 68008. Однако это был 16-разрядный процессор, хотя аргумент можно было назвать 32-разрядным.

Даже регистры или внутренняя механика не рассказывают всю историю.

  • Z-80 обычно считается 8-битным процессором (ширина кодов операций составляла 8 бит), но многие из его инструкций объединяют регистровые части со всем 16-битным индексированным доступом к таким вещам, как 16-битный процессор.
  • Я не думаю, что широко использовался 8-битный ЦП, который на самом деле имел 8 адресных строк (позволяя получить доступ только к 256 байтам ОЗУ). Классические 8-разрядные процессоры обычно имели 16 адресных строк и могли адресовать 64 КБ ОЗУ / ПЗУ. (Не процессор в Atari 2600, хотя, он был ограничен 4K).
  • CP1610 (процессор в старой игровой системе Intellivision) предположительно использовал 10-битные коды операций (некоторые инструкции, требующие 16 битов для кодирования с разбросом по 20 битам - не уверен, был ли он выровнен по байтам или нет), но в противном случае считался 16-битным система (не позволяйте никому говорить, что Sega Genesis была первой 16-битной домашней игровой системой!)

Но программисты (которые проводят больше всего времени с внутренними процессорами ЦП) на самом деле не заботятся об аппаратном интерфейсе между ЦП и памятью, они заботятся об интерфейсе, представленном через набор инструкций ЦП, и этот вопрос становится наиболее важным : Какое количество битов и регистров обрабатываются одновременно.

Набор команд i386 предпочитает работать с 32-разрядными величинами. Если вам нужно выполнить математику для целочисленных величин, превышающих 32 бита, сначала нужно добавить младшие 32 бита, а затем перенести их во вторые 32 бита. Но i386 является гибким и позволяет добавлять 16 или 8-битные величины, а также разбивать регистры на 16-битные или 8-битные секции.

"Длинный" режим, то есть «64-битный» режим, то есть набор команд amd64 привязывает к этим регистрам еще 32 бита, но все старые инструкции, которые обращаются к 32, 16 или 8-битным частям регистров, все еще там.

Так как это связано с автобусом? Это не так. Пока шина передает данные из ЦП в ОЗУ, программисту все равно. Очевидно, что более узкая шина будет медленнее, но это не повлияет на то, как программист велит ЦПУ делать что-то (кроме, возможно, попыток заставить программу обращаться к памяти более эффективно).

Имеет смысл иметь как минимум столько же битов шины, сколько и битов ЦП, но это не обязательно так. Ширина шины не должна иметь ничего общего с набором команд ЦП или его регистрами.

Поэтому ответ @Eugen Rieck действительно правильный.

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