Традиционно "слово" в компьютерных архитектурах, как правило, было наименьшей адресуемой единицей памяти. И традиционно это совпадает с размером регистра общего назначения машины.
Однако с тех пор, как байт-адресация стала популярной, эта концепция стала размытой. (Вероятно, за это мы можем отдать должное 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 для "длинного слова", термин которого был распространен в VAX) составляет 32 бита. В архитектуре 64-разрядные целые числа называются "квадруполями", но обычно имеют более конкретные имена в C, например UINT64 (64-разрядное целое число, без знака).
Таким образом, это зависит от того, где вы находитесь в системе и на что вы смотрите. Мы обычно не думаем о "размере слова" во все эти дни, а о "размере GPR".