Страницы

Поиск по вопросам

суббота, 13 октября 2018 г.

Машинное слово, каков его размер?

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


Ответ

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

Комментариев нет:

Отправить комментарий