Традиційно "слово" в архітектурі комп'ютерів було, як правило, найменшою адресною одиницею пам'яті. І традиційно це було те саме, що розмір регістру загального призначення машини.
Однак з тих пір, як байт-адресація стала популярною, концепція стала розбавленою. (Для цього ми, мабуть, можемо зарахувати IBM System / 360 та PDP-11.)
Що стосується адреси пам'яті, визначеної архітектурою процесора - тобто програмісти бачать машину - поняття "слово" не існує на x86 / x64, якщо ви не вважаєте це синонімом байтів. Кожен байт пам'яті має власну адресу, а адреса байта - це також адреса будь-якої більшої області, яка починається з цього байта (поширюється на адреси з більшими числами). Звичайно, ми можемо переміщувати один, два, чотири або (на x64) вісім байтів одночасно між регістром та оперативною пам’яттю - або набагато більше, пам’яті до пам’яті, з інструкціями REP - але адреса, яку ми стверджуємо, все ще має адресу байт. Ми можемо робити арифметику на словах усіх цих розмірів. (Та інші.)
Якщо ви думаєте, що стосується регістрів, то «розмір слова» машини зазвичай вважається таким самим, як і регістри загального призначення. Це буде 32 біти на x86, 64 біт на x64. У більшості архітектур розмір GPR - це розмір найбільшого цілого числа, на якому ЦП може виконувати просту арифметику за допомогою однієї інструкції.
Тепер введемо ще більше плутанини ...!
Що стосується платформи (материнська плата, модулі оперативної пам’яті та мікросхеми тощо), на всіх машинах, що використовують «товарний» процесор та набори мікросхем Intel та AMD, оперативна пам’ять розміщена в 64-бітових фрагментах - я думаю, ви могли б назвати їх словами. Це можна було дуже чітко побачити на попередніх процесорах, які мали окремі штифти для адреси та даних: Найменш значимий адресний контакт називається A3, а не A0! Фізичні біти адреси A0, A1 і A2 ніколи не залишають процесор. Але програмісти ніколи не бачать таких адрес.
І нарешті, є поняття "кеш-лінія". Рядок кешу - це фізично суміжний фрагмент оперативної пам’яті, який займає один запис у кеші L1 / L2 / L3. Лінії кешу в світі Intel / AMD вже давно є 64 байтами. Отже, коли ви отримуєте доступ до адреси пам'яті, яка наразі не знаходиться у вашому кеші, процесор отримує вісім з цих 8-байтових фрагментів оперативної пам’яті. Інакше кажучи, адреси, які зберігаються в кеші, опускають шість біт низького порядку. То, може, слово в кешіце дійсно 64 байти або 512 біт! (Але доступ до пам'яті, який обходить кеш-пам'ять, все одно може читати або записувати лише 8 байт одночасно; у діапазонах фізичних адрес, які декодуються пристроями вводу / виводу, нанесені на пам'ять, окремі байти можуть бути адресовані; це залежить від шини. Звичайно, ми не можемо робити арифметичні для 512-бітних цілих чисел.)
У середовищі програмування Microsoft C "слово" становить 16 біт - це було дуже давно, перш ніж Microsoft, а ім'я та визначення типу даних перенесли в 32- і 64-бітні середовища для сумісності. "Подвійне слово" (або DWORD або LONG, для "longword", термін якого було поширеним у VAX), становить 32 біти. 64-бітні цілі числа в архітектурі називаються "чотирьох словами", але зазвичай мають більш конкретні імена на C, як UINT64 (64-бітове ціле число, не підписане).
Отже, це залежить від того, де ти перебуваєш у системі та від того, що ти дивишся. Ми зазвичай не думаємо про "розмір слова" у всі ці дні, а про "розмір GPR".