Если машинное слово выглядит так 10111001 то разрядность процессора равна

Обновлено: 06.07.2024

Машинное слово (word) — это количество данных, которые процессор может обработать за одну операцию. Здесь можно применить аналогию документа, состоящего из символов (character, 8 бит) и страниц (много слов). Слово— это некоторое количество битов, как правило 16, 32 или 64. Когда говорят о "n-битовой" машине, то чаще всего имеют в виду размер машинного слова. Например, когда говорят, что процессор Intel Pentium — это 32-разрядный процессор, то обычно имеют в виду размер машинного слова, равный 32 бит, или 4 байт.

Размер процессорных регистров общего назначения равен размеру машинного слова этого процессора. Обычно разрядность остальных компонентов этой же аппаратной платформы в точности равна размеру машинного слова. Кроме того, по крайней мере для аппаратных платформ, которые поддерживаются ОС Linux, размер адресного пространства соответствует размеру машинного слова[92]. Следовательно, размер указателя равен размеру машинного слова. В дополнение к этому, размер типа long языка С также равен размеру машинного слова. Например, для аппаратной платформы Alpha размер машинного слова равен 64 бит. Следовательно, регистры, указатели и тип long имеют размер 64 бит. Тип int для этой платформы имеет размер 32 бит. Машины платформы Alpha могут обработать 64 бит — одно слово с помощью одной операции.

Слова, двойные слова и путаница

Для некоторых операционных систем и процессоров стандартную порцию данных не называют машинным словом. Вместо этого, словом называется некоторая фиксированная порция данных, название которой выбрано случайным образом или имеет исторические корни. Например, в некоторых системах данные могут разбиваться на байты (byte — 8 бит), слова (word — 16 бит), двойные слова (double word — 32 бит) и четверные слова (quad word — 64 бит), несмотря на то что на самом деле система является 32-разрядной. В этой книге и вообще в контексте операционной системы Linux под машинным словом понимают стандартную порцию данных процессора, как обсуждалось ранее.

Для каждой аппаратной платформы, поддерживаемой операционной системой Linux, в файле <asm/types.h> определяется константа BITTS_PER_LONG, которая равна размеру типа long языка С и совпадает с размером машинного слова системы. Полный список всех поддерживаемых аппаратных платформ и их размеры машинного слова приведены в табл. 19.1.

Таблица 19.1. Поддерживаемые аппаратные платформы

Аппаратная платформа Описание Размер машинного слова alpha Digital Alpha 64 бит arm ARM и StrongARM 32 бит cris CRIS 32 бит h8300 H8/300 32 бит I386 Intel x86 32 бит ia64 IA-64 64 бит m68k Motorola 68k 32 бит m86knommu m68k без устройства MMU 32 бит mips MIPS 32 бит mips64 64-разрядная MIPS 64 бит parisc HP PA-RISC 32 бит, или 64 бит ppc PowerPC 32 бит ppc64 POWER 64 бит s390 IBM S/390 32 бит, или 64 бит sh Hitachi SH 32 бит sparс SPARC 32 бит sparc64 UltraSPARC 64 бит um Usermode Linux 32 бит, или 64 бит v850 v850 32 бит x86_64 X86-64 64 бит

Стандарт языка С явно указывает, что размер памяти, которую занимают переменные стандартных типов данных, зависит от аппаратной реализации[93], при этом также определяется минимально возможный размер типа. Неопределенность размеров стандартных типов языка С для различных аппаратных платформ имеет свои положительные и отрицательные стороны. К плюсам можно отнести то, что для стандартных типов языка С можно пользоваться преимуществами, связанными с размером машинного слова, а также отсутствие необходимости явного указания размера. Для ОС Linux размер типа long гарантированно равен размеру машинного слова. Это не совсем соответствует стандарту ANSI С, однако является стандартной практикой в ОС Linux. Как недостаток можно отметить, что при разработке кода нельзя рассчитывать на то, что данные определенного типа занимают в памяти определенный размер. Более того, нельзя гарантировать, что переменные типа int занимают столько же памяти, сколько и переменные типа long[94].

Ситуация еще более запутывается тем, что одни и те же типы данных в пространстве пользователя и в пространстве ядра не обязательно должны соответствовать друг другу. Аппаратная платформа sparc64 предоставляет 32-разрядное пространство пользователя, а поэтому указатели, типы int и long имеют размер 32 бит. Однако в пространстве ядра для аппаратной платформы размер типа int равен 32 бит, а размер указателей и типа long равен 64 бит. Тем не менее такая ситуация не является обычной.

Всегда необходимо помнить о следующем.

• Как и требует стандарт языка С, размер типа char всегда равен 8 бит (1 байт),

• Нет никакой гарантии, что размер типа int для всех поддерживаемых аппаратных платформ будет равен 32 бит, хотя сейчас для всех платформ он равен именно этому числу.

• То же касается и типа short, который для всех поддерживаемых аппаратных платформ сейчас равен 16 бит.

• Никогда нельзя надеяться, что тип long или указатель имеет некоторый заданный размер. Этот размер для поддерживаемых аппаратных платформ может быть равен 32, или 64 бит.

• Так как размер типа long разный для различных аппаратных платформ, никогда нельзя предполагать, что sizeof(int) == sizeof(long).

• Точно так же нельзя предполагать, что размер типа int и размер указателя совпадают.

Типы данных

Типы данных Приведенные в этой главе таблицы взяты непосредственно из оперативной справочной системы и представляют единую модель данных Windows (Windows Uniform Data Model). Определения типов можно найти в заголовочном файле BASETSD.H, входящем в состав интегрированной среды разработки

Типы данных

Типы данных В JScript поддерживаются шесть типов данных, главными из которых являются числа, строки, объекты и логические данные. Оставшиеся два типа — это null (пустой тип) и undefined (неопределенный

14.5.1 Типы данных

14.5.1 Типы данных Файл может содержать текст ASCII, EBCDIC или двоичный образ данных (существует еще тип, называемый локальным или логическим байтом и применяемый для компьютеров с размером байта в 11 бит). Текстовый файл может содержать обычный текст или текст, форматированный

20.10.3 Типы данных MIB

20.10.3 Типы данных MIB Причиной широкого распространения SNMP стало то, что проектировщики придерживались правила "Будь проще!"? Все данные MIB состоят из простых скалярных переменных, хотя отдельные части MIB могут быть логически организованы в таблицы.? Только небольшое число

Типы данных

Типы данных Несмотря на то, что типы данных подробно описаны в документации (см. [1, гл. 4]), необходимо рассмотреть ряд понятий, которые будут часто использоваться в последующих главах книги. Помимо изложения сведений общего характера будут рассмотрены также примеры

Типы данных

Типы данных Один из этапов проектирования базы данных заключается в объявлении типа каждого поля, что позволяет процессору базы данных эффективно сохранять и извлекать данные. В SQL Server предусмотрено использование 21 типа данных, которые перечислены в табл. 1.1.Таблица 1.1.

Глава 2 Ввод данных. Типы, или форматы, данных

Глава 2 Ввод данных. Типы, или форматы, данных Работа с документами Excel сопряжена с вводом и обработкой различных данных, то есть ин формации, которая может быть текстовой, числовой, финансовой, статистической и т. д. МУЛЬТИМЕДИЙНЫЙ КУРС Методы ввода и обработки данных

Ключевые слова, используемые для спецификации типа данных

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

Типы данных

Типы данных Многие языки программирования при объявлении переменной требуют указывать, какой тип данных будет ей присваиваться. Например, в языке Java кодint i = 15;объявит переменную целого типа int с именем i и присвоит ей значение 15. В этом случае тип данных ставится в

12.2. Типы баз данных

12.2. Типы баз данных Группу связанных между собой элементов данных называют обычно записью. Известны три основных типа организации данных и связей между ними: иерархический (в виде дерева), сетевой и реляционный.Иерархическая БДВ иерархической БД существует

5.2.4. Типы данных

5.2.4. Типы данных Мы можем вводить в ячейки следующие данные: текст, числа, даты, также приложение Numbers предоставляет возможность добавлять флажки, ползунки и другие элементы управления. Аналогично MS Excel для выравнивания чисел, дат и текстовых данных в Numbers существуют

Слова, слова, слова… Автор: Евгений Козловский.

Размер головного мозга и размер социального окружения

Размер головного мозга и размер социального окружения Дискуссии по поводу взаимосвязи между размером головного мозга какого-либо организма и размером группы, к которой этот организм принадлежит, ведутся нейробиологами уже давно. При этом взаимосвязь с социальной

Есть понятие "машинного слово", я читала об этом, но везде пишут по разному, на сколько я понимаю одно машинное слово равно 2 байта, а двойное машинное слово 4 байта, но откуда оно берётся, почему 2 байта а не один? То есть как я понимаю если процессор 32-битный он может за один такт принять и обработать с оперативной памяти 32 бита информации, а это 4 байта значит у него должно быть одно слово 4 байта ну а 64-х битный в 2 раза больше и его слово будет больше?

361 1 1 золотой знак 5 5 серебряных знаков 13 13 бронзовых знаков 157 1 1 золотой знак 3 3 серебряных знака 14 14 бронзовых знаков

Думаю, вся путаница возникла из-за того, что когда то разработчики Интела (я так думаю) назвали два байта - словом (word) - тогда 16 битные процессоры были прорывом. Соответственно, 4 байта - двойным словом. (DWORD, double word). Это сохранилось и в многих языках программирования (в том числе в с/с++). Почему два байта - слово? да видимо от того, что байт это как буква. А две буквы - это уже слово. (Хотя сейчас прибегут филологи и скажут, что это скорее всего слог, чем слово). В википедии есть хорошая фраза "* Для 32-битных процессоров x86: исторически машинным словом считается 16 бит, реально — 32 бита."

А вот словосочетание "двойное машинное слово" я никогда не слышал. Даже гугл мало находит статей с таким сочетанием. А вот "двойное слово" или "машинное слово" - это нормально.

То есть как я понимаю если процессор 32-битный он может за один такт принять и обработать с оперативной памяти 32 бита информации

не все так просто. Далеко не факт, что он может даже принять 32 бита. Современные процессоры сложные, имеют кеш. Имеют сложные комманды, которые за один раз (не так, а именно раз) могут обработать до 16 байт памяти (всякие mmx и sse).

Обычно, машинным словом называют "разрядность процессора", так как разрядность обычно показывает оптимальный размер данных внутри процессора (регистры 32битного процессора 32 битные и с 32битными данными в основном все команды и работают). В некоторых процессорах слово было 60 бит:)

В любом случае рекомендую всегда всматриваться в контекст. Если о "слове" говорит программист на С/С++ - это 16 бит, если программист на ассемблере под 32 битные ARM процессоры - то скорее всего слово - это 32 бита.

Элементарной единицей памяти всех современных компьютеров является байт, состоящий из восьми двоичных разрядов. Каждый байт имеет свой адрес . В наиболее распространенной 32-разрядной архитектуре адреса байтов изменяются от 0 до 2 32 - 1 с шагом 1 . Память , с логической точки зрения, можно рассматривать как массив байтов: можно прочесть или записать байт с заданным адресом. Содержимое байта трактуется либо как неотрицательное целое число в диапазоне от 0 до 255, либо как число со знаком в диапазоне от -128 до 127 . (На самом деле байт — это элемент кольца вычетов по модулю 256 )

Однако физически при работе с памятью по шине передаются не отдельные байты, а машинные слова. В 32-разрядной архитектуре машинное слово — это четыре подряд идущих байта, при этом адрес младшего байта кратен четырем. (В 64-разрядной архитектуре машинное слово состоит из восьми байтов.) Машинное слово — это наиболее естественный элемент данных для процессора. Машинное слово содержит целое число , которое можно рассматривать либо как беззнаковое в диапазоне от 0 до 2 32 - 1 , либо как знаковое в диапазоне от -2 31 до 2 31 - 1 . Адрес памяти также представляет собой машинное слово .

Принято нумеровать биты внутри машинного слова (как и внутри байта) справа налево, начиная с нуля и кончая 31. Младший бит имеет нулевой номер, старший, или знаковый, бит — номер 31 . Младшие биты числа находятся в младших битах машинного слова.

Существуют два способа нумеровать байты внутри машинного слова. В соответствии с этим все процессоры разделяются на два типа:

  • Big Endian - байты внутри машинного слова нумеруются слева направо. Таковы процессоры Motorola, Power PC. Байты в архитектуре Big Endian удобно представлять записанными слева направо. При этом старшие биты целого числа располагаются в байте с младшим адресом.
  • Little Endian - байты внутри машинного слова нумеруются справа налево. Таковы процессоры Intel 80x86 , Alpha, VAX и др. Байты в архитектуре Little Endian следует представлять записанными справа налево. При этом старшие биты целого числа располагаются в байте со старшим адресом.

Архитектура Big Endian была популярна в середине XX века. К концу 70-х годов программисты осознали, что Little Endian - архитектура гораздо удобнее. Например, один из аргументов в пользу Little Endian заключается в том, что целое число , занимающее машинное слово с адресом n , и байт с тем же адресом содержат одно и то же значение (конечно, если оно не превышает 255 ). В случае Big Endian это не так: например, если целое число с адресом n содержит число 17 , то байт с адресом n содержит 0 ; или если целое число содержит отрицательное значение -77 , то байт с адресом n содержит отрицательное значение -1 . При небрежном программировании это порождает массу ошибок. Поэтому большинство современных процессоров построены по архитектуре Little Endian .

Тем не менее многие компьютерные протоколы ориентируются на Big Endian , поскольку они были приняты достаточно давно. Например, все протоколы сети Internet передают данные в формате Big Endian , т.к. они были разработаны в 70-х годах XX века. На машинах с архитектурой Little Endian приходится переставлять байты внутри слова перед отправкой IP-пакета в сеть или при получении IP-пакета из сети.

Элементарной единицей памяти всех современных компьютеров является байт, состоящий из восьми двоичных разрядов. Каждый байт имеет свой адрес . В наиболее распространенной 32-разрядной архитектуре адреса байтов изменяются от 0 до 2 32 - 1 с шагом 1 . Память , с логической точки зрения, можно рассматривать как массив байтов: можно прочесть или записать байт с заданным адресом. Содержимое байта трактуется либо как неотрицательное целое число в диапазоне от 0 до 255, либо как число со знаком в диапазоне от -128 до 127 . (На самом деле байт — это элемент кольца вычетов по модулю 256 )

Однако физически при работе с памятью по шине передаются не отдельные байты, а машинные слова. В 32-разрядной архитектуре машинное слово — это четыре подряд идущих байта, при этом адрес младшего байта кратен четырем. (В 64-разрядной архитектуре машинное слово состоит из восьми байтов.) Машинное слово — это наиболее естественный элемент данных для процессора. Машинное слово содержит целое число , которое можно рассматривать либо как беззнаковое в диапазоне от 0 до 2 32 - 1 , либо как знаковое в диапазоне от -2 31 до 2 31 - 1 . Адрес памяти также представляет собой машинное слово .

Принято нумеровать биты внутри машинного слова (как и внутри байта) справа налево, начиная с нуля и кончая 31. Младший бит имеет нулевой номер, старший, или знаковый, бит — номер 31 . Младшие биты числа находятся в младших битах машинного слова.

Существуют два способа нумеровать байты внутри машинного слова. В соответствии с этим все процессоры разделяются на два типа:

  • Big Endian - байты внутри машинного слова нумеруются слева направо. Таковы процессоры Motorola, Power PC. Байты в архитектуре Big Endian удобно представлять записанными слева направо. При этом старшие биты целого числа располагаются в байте с младшим адресом.
  • Little Endian - байты внутри машинного слова нумеруются справа налево. Таковы процессоры Intel 80x86 , Alpha, VAX и др. Байты в архитектуре Little Endian следует представлять записанными справа налево. При этом старшие биты целого числа располагаются в байте со старшим адресом.

Архитектура Big Endian была популярна в середине XX века. К концу 70-х годов программисты осознали, что Little Endian - архитектура гораздо удобнее. Например, один из аргументов в пользу Little Endian заключается в том, что целое число , занимающее машинное слово с адресом n , и байт с тем же адресом содержат одно и то же значение (конечно, если оно не превышает 255 ). В случае Big Endian это не так: например, если целое число с адресом n содержит число 17 , то байт с адресом n содержит 0 ; или если целое число содержит отрицательное значение -77 , то байт с адресом n содержит отрицательное значение -1 . При небрежном программировании это порождает массу ошибок. Поэтому большинство современных процессоров построены по архитектуре Little Endian .

Тем не менее многие компьютерные протоколы ориентируются на Big Endian , поскольку они были приняты достаточно давно. Например, все протоколы сети Internet передают данные в формате Big Endian , т.к. они были разработаны в 70-х годах XX века. На машинах с архитектурой Little Endian приходится переставлять байты внутри слова перед отправкой IP-пакета в сеть или при получении IP-пакета из сети.

Читайте также: