Вопрос

Что делать 16-битные, 32-битные и 64-битные архитектуры в случае микропроцессоров и / или операционных систем?

В случае микропроцессоров, значит ли это максимальный размер General Purpose Registerили размер Integer или количество Address-lineS или номер Data Bus lineS или что?

Что мы имеем в виду, говоря: «DOS is a 16-bit OS", "Windows in a 32-bit OS", так далее...?

Это было полезно?

Решение

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

Другие советы

Мой оригинальный ответ ниже, если вы хотите понять комментарии.

Новый ответ

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

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

Когда процессор очень варьируется размером для разных регистров, он часто будет описан более подробно, например, Motorola 68K. описывается как 16/32-битный чип.

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


Оригинальный ответ

Разные люди могут означать разные вещи, потому что, как вы говорите, есть несколько мер. Так, например, кто-то говорит о адресации памяти, может означать, что что-то отличное от кого-то говорить о целочисленной арифметике. Однако я постараюсь определить, что я думаю, это общее понимание.

Мой взять - это то, что для процессора это означает «размер типичного регистра, используемого для стандартных операций» или «размер шины данных» (два обычно эквивалентны).

Я оправдываю это со следующей логикой. То Z80. Имеет 8-битный аккумулятор и 8-битные базы данных, при этом 16-битные реестры адресации памяти (IX, IY, SP, PC) и шина адреса 16-битной памяти. И Z80 называется 8-битный микропроцессор. Это означает, что люди обычно должны означать основные целочисленные арифметические размеры или размер баз данных, а не размер адресации памяти.

Это не размер инструкций, поскольку Z80 (опять же) имел 1,2 и 3 инструкции байта, хотя, конечно, многобайтовые были прочитаны в нескольких чтениях. В другом направлении, 8086 это 16-битный микропроцессор и может прочитать 8 или 16 бит. Поэтому мне пришлось бы не согласиться с ответами, которые говорят, что это размер инструкций.

Для операционных систем я бы определил его как «код скомпилирован для работы на процессоре этого размера», поэтому 32-битная ОС имеет код скомпилирован для запуска на 32-разрядном процессоре (согласно определению выше).

Сколько кусков CPU «is», означает то, что он это инструкция. На 32-разрядном процессоре длина слова такого обучения составляет 32 бит, что означает, что это ширина, что CPU может обрабатывать в качестве инструкции или данные, часто приводящие к линии шины с этой шириной. По аналогичной причине регистры имеют размер длины слова ЦП, но у вас часто есть более крупные регистры для различных целей.

Принять PDP-8. компьютер в качестве примера. Это был 12-битный компьютер. Каждая инструкция была длиной 12 бит. Чтобы обработать данные одинаковой ширины, аккумулятор был также 12 бит. Но что делает 12-битный компьютер 12-битной машиной, была ее длина слова обучения. У него были двенадцать коммутаторов на передней панели, с которой она может быть запрограммирована, инструкция по инструкции.

Это хороший пример, чтобы вырваться из битового фокуса 8/16/32.

Количество битов также обычно размер адресной шины. Поэтому обычно сообщает максимальную адресуемую память.

Там есть хорошее объяснение этого в Википедия:

В компьютерной архитектуре, 32-разрядных целых числах, адреса памяти или другие единицы данных - это те, которые являются большими 32 битами (4 октетами). Кроме того, 32-разрядные процессоры и архитектуры CPU и ALU являются теми, которые основаны на регистрах, адресных шинах или шинах данных этого размера. 32-битный также является термином, приведенным к генерации компьютеров, в которых 32-битные процессоры были нормой.

Теперь поговорим о ОС.

С OS-ES это намного менее связано с фактическими «BITTY-NES» процессора, оно обычно отражает, как собраны OPCODES (для которого слово длина процессора) и о том, как реестры (вы не можете загрузить 32-битное значение в 16-битном регистре) и как память артируется. Подумайте об этом как о завершенной, составленной программе. Он хранится как двоичные инструкции и, следовательно, вписывается в длину слов CPU. Task-Wise, он должен быть в состоянии решить всю память, в противном случае она не может сделать правильное управление памятью.

Но что придет к этому, состоит ли программа 32 или 64 бита (os, по сути, является программой здесь) ИТ, как хранятся ее двоичные инструкции и как адресованы регистры и память. В целом это относится ко всем видам программ, а не только ОС. Вот почему у вас есть программы, составленные для 32 бита или 64 бита.

Определения являются маркетинговыми Условиями больше, чем точные технические условия.

В нечетком техническом термине они более связаны с архитектурно видимой шириной, чем любой реальный регистр реализации или ширина шины. Например, 68008 был классифицирован как 32-разрядной процессор, но имел 16-битные регистры в кремнии и только 8-битную шину данных и 20-странные биты адреса.

http://en.wikipedia.org/wiki/64-bit_64-bit_data_models. Модели данных означают укус для языка.

Фраза «ОС - это X-BIT» обычно означает, что ОС была написана для режима X-BIT CPU, то есть 64-битная Windows использует длинный режим на X86-64, где регистры 64 бита и адресное пространство - 64 бита Большие и существуют другие различные различия от 32-битковых режимов, где обычно регистрируются 32-битные и адресные пространство - это 32 бита. На X86 большое значение между 32 и 64 модами бит - наличие сегментации в 32-битах для исторической совместимости.

Обычно ОС написана с учетом куты CPU, X86-64 - это заметной пример десятилетий обратной совместимости - вы можете иметь все от 16-битных программ реального режима через 32-битные программы защищенного режима до 64-битов Режим программы.

Кроме того, есть разные способы виртуализации, поэтому ваша программа может работать так, как будто в режиме 32-битса, но на самом деле она выполняется с помощью ядра не X86.

Когда мы говорим о 2-^ n битных архитектурах в области компьютерных наук, то мы в основном говорим о регистрах памяти, размерных шин или размером шин данных. Базовая концепция сроком 2 ^ n битной архитектуры состоит в том, чтобы обозначить, что здесь можно использовать 2 ^ n бит данных для адреса / транспортировки данных размера 2 ^ n по процессам.

Насколько я знаю, технически, это ширина целочисленных путей. Я слышал о 16-битных чипах, которые имеют 32-битную адресацию. Однако на самом деле это адресная ширина. SizeOf (void *) составляет 16бит на 16-битном чипе, 32бит на 32бит и 64бит на 64бит.

Это приводит к проблемам, поскольку C и C ++ разрешают преобразования между пустоты * и интегральными типами, и безопасно, если интегральный тип достаточно большой (такой же размер, как указатель). Это приводит к всем видам небезопасных материалов с точки зрения

void* p = something;
int i = (int)p;

Который будет ужасно схватить и сжигать на 64-битном кодексе (работает на 32 битах), потому что void * теперь вдвое больше, чем int.

На большинстве языков вы должны усердно работать, чтобы заботиться о ширине системы, над которой вы работаете.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top