Talk:Word (computer architecture)

From Wikipedia, the free encyclopedia
Jump to: navigation, search
WikiProject Computing (Rated Start-class, Mid-importance)
WikiProject icon This article is within the scope of WikiProject Computing, a collaborative effort to improve the coverage of computers, computing, and information technology on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
Start-Class article Start  This article has been rated as Start-Class on the project's quality scale.
 Mid  This article has been rated as Mid-importance on the project's importance scale.
WikiProject Computer science (Rated Start-class, Mid-importance)
WikiProject icon This article is within the scope of WikiProject Computer science, a collaborative effort to improve the coverage of Computer science related articles on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
Start-Class article Start  This article has been rated as Start-Class on the project's quality scale.
 Mid  This article has been rated as Mid-importance on the project's importance scale.

Article title[edit]

This article has many possible titles, including word, computer word, memory word, data word, instruction word, word size, word length, etc. I believe the general form should be used since none of the specific forms is well established. Of course "word" has to be qualified to disambiguate from non-computing uses. I'm not particularly happy with "(computer science)", though. Perhaps "Word (computing)" would be the best choice overall. -R. S. Shaw 05:00, 6 June 2006 (UTC)

Word is the best name, but I agree that (computing) is the better choice. "computer word", "memory word", and so on can redirect here. --Apantomimehorse 15:55, 30 August 2006 (UTC)
I've moved this from Word (computer science) to Word (computing); I'll fix up the double redirects now. -R. S. Shaw 01:07, 19 January 2007 (UTC)
I noticed that the 64-bit architecture page has a side panel which allows you to click on 16-bit data size link, which links directly to this page. I think that's anathema to the idea that a word-size is defined by the architecture. There should be a page that redirects from 16-bit data size to Word (computer science). This way, the link from 64-bit architecture does not lend the web surfer the wrong impression that 16-bit data size is always equal to word-size -- anonymous jan 18 2007 2:58 pm est —The preceding unsigned comment was added by (talk) 19:56, 18 January 2007 (UTC).
Preceeding comment copied to Template talk:N-bit since that template is the source of the table of links in question. -R. S. Shaw 05:29, 19 January 2007 (UTC)

Merge Articles[edit]

I can't see why not to do this. It would be silly to have a different article for every word length. Merge them all into the same article. I don't mind under what category you qualify word, seems like a bit of an arbitrary choice anyway. --FearedInLasVegas 22:39, 28 July 2006 (UTC)

Agreed for merge. Redirect "dword" et al. here. --Apantomimehorse 15:56, 30 August 2006 (UTC)

OK, I did the merge, but it's fairly unintegrated. Anyone feel free to smooth it out...Lisamh 15:46, 21 September 2006 (UTC)

Causality backwords?[edit]

It's my understanding that the concept of "word" size is a nebulous one and not very defined on some systems. Should the article make this more clear? The way the article makes it sound, computer designers pick a world size and then base other choices around it. While there are good reasons to use the same number of bits for registers as you do for bus-widths and so on, I just don't think this is the reality any more. The x86/x64 archictectures, for instance, are a mess of size choices. So what I'm proposing is a reversal of emphasis by saying: 'computers have certain bus-widths and register-sizes, etc., and the size of a "word" is the number of bits most common to them; this is not always a straight-forward determination". --Apantomimehorse 16:04, 30 August 2006 (UTC)

The article shouldn't imply (if it does) that a word size is chosen out the blue. It isn't. It's chosen exactly because it and its multiples are judged a good compromise for all the detailed design choices - memory bus width, numerical characteristics, addressing capability of instructions, etc., etc.
A word size is rarely undefined, but may be a somewhat arbitrary choice out of the several sizes that belong to an architecture's "size family". The article does discuss the concept of a family of sizes. A modern, complicated computer uses many different sizes, but most of them are members of the small family of tightly-related sizes. In the x86 case, it's clear that the word size was 16 bits originally, and that the extension to primarily-32-bit implementations extended the size family to include 32 as well as 16 and 8. As the article mentions, the choice of one of the members of the family as the single "word" size is somewhat arbitrary, and in the x86 case has been decided by historical precedent. The word size for x86 is straightforward: it is defined as 16 bits, even on a Opteron. On a new design, the definition would be chosen to be closer to what is thought to be the most important size, e.g. 64 bits (but the new design would also have much less use for other members of its size family). -R. S. Shaw 02:57, 31 August 2006 (UTC)
I'll take your word [<--pun!] for it that a word is still a meaningful concept and that selection thereof is important in design (I think learning x86 as your first processor rots your brains), but I still feel the article gives a strange impression about which defines which: does the word size define the size of the things which gel with the word size or vice versa? I see you changed 'influences' to 'reflected in', and that's a good start. I'm not happy, though, with the phrase 'natural size' as it's a bit mysterious to anyone who might wonder what in the world is natural about computers. By 'natural' is it meant 'best for performance'? Or 'convenient for programmers'? I understand this is addressed down in the article, but I think the opener needs something about the importance of word size other than just saying it's important. I'd address these issues myself, but I'm not qualified to do so.
(Heh, just realized I mispelled 'backwards' in the subject heading. Let's just pretend that was a pun.)--Apantomimehorse 22:33, 31 August 2006 (UTC)

"Word" and "Machine word"[edit]

"Word" seems quite ambiguous in modern usage, since people very often mean it as 16-bits rather than the actual word size of the processor (likely now to be 32 or 64 bits). There's Intel and Microsoft who, for reasons of backwards compatability, use "word" to mean a fixed size of 16-bits, just as "byte" is used to mean a fixed size of 8-bits. Although in formal contexts, "word" still means the basic native size of integers and pointers in the processor, a huge number of people believe that "word" just means "16-bits". Would it be useful to mention the phrase "machine word" as being a less ambiguous way to refer to that native size, and try to avoid the danger of the fixed 16-bit meaning? JohnBSmall 14:10, 8 October 2006 (UTC)

Word has always been ambiguous, as if it is not to be vague it requires knowledge of the context: the particular machine. A huge number of people only have knowledge of x86 machines, so until their horizons extend naturely think of a word as 16 bits. The "native size" of an undefined machine is intrinsically vague and/or ambiguous, and that is fine for many uses where a precise size isn't needed for the discussion to make sense. Modern computers use many different sizes, and designating one of those sizes the "word" size is rather arbitrary. Using "machine word" doesn't really clarify anything, since it is no more or less ambiguous than just "word"; you need to know the particular context to pin down the meaning. Additionally, if the context is the x86 series of machines, "machine word" is more ambiguous than "word", since the latter is known to be 16 bits by definition (a good convention, IMO), but the former leaves open questions as to what is meant. Even if you know the context is, say, a AMD64 machine, you would mislead many people if you used "machine word", since different people would take you to mean 16b, or 64b, or even 32b since most operands in use on such a machine are probably 32b. -R. S. Shaw 03:00, 9 October 2006 (UTC)
The meaning of "Word" is ambiguous, but that is not reflected in this article. The current article implies that the term "word" always refers to the register size of the processor. As JohnBSmall states it is very common for "word" to instead mean 16bits. You can see this usage in both the AMD and Intel application programmer manuals. — Preceding unsigned comment added by ‎ (talkcontribs) 14:49, 19 November 2014

I have to strongly disagree. To anyone with a mainframe background of any kind this is simply not true. A word might be 32, 36, or 60 bits. 16 bits is a halfword, to call it a word is a recentism. A word on 8086 systems was 16 bits, and Intel didn't want to bother to update their terminology when the 386 was introduced. Peter Flass (talk) 22:17, 19 November 2014 (UTC)

To call 16 bits a word would be a recentism on a 32-bit mainframe. To call it a word wouldn't be a recentism in the world of the IBM 1130, which was announced one year after the System/360 (see the 1130 System Summary, which speaks of 16-bit words)., nor in the world of the mid-1960's HP 2100, or the slightly later Data General Nova and PDP-11. The PDP-11's terminology was continued with the 32-bit VAX, so that was an earlier example than the 80386 of a 32-bit architecture calling 16-bit quantities "words" and 32-bit quantities "doublewords".
So the choice of a particular architecture's developers to use the term "word" for a particular operand size is arbitrary; the mainframe perspective and the minicomputer perspective (in which a word might be 12, 16, or 18 bits, for example) are equal here.
So there's:
  • "word" as the minimum directly-addressible unit of memory on many, mostly older, architectures;
  • "word" as the maximum integer/address operand size on most architectures;
  • "word" as a term for a particular operand size, often chosen for historical reasons (as is the case for VAX, IA-32, and x86-64, for example).
Of those three, the latter is of least interest, as it's arbitrary and, in many cases, historical. We should perhaps mention that some architectures have quantities called "words" that have nothing to do with the inherent characteristics of the architecture, and then talk about the other two types of "word", with the second one being the one of current interest for most architectures, as most of them are 8-bit-byte-addressible and have support for at least 16-bit operands and addresses. If the article ends up extending the horizons of x86 programmers as a result, that would be a Good Thing. Guy Harris (talk) 23:09, 19 November 2014 (UTC)
See also the "Size families" section of the article, which talks about the third use of "word". Guy Harris (talk) 10:06, 20 November 2014 (UTC)


There were a whole bunch of minicomputers before the VAX. I used Motorola, HP, and DEC. There were a few others in the building for "real time" computing and some pre-PC desktops.

I remember the CDC 6600 as having a 64-bit word and there were 128 characters available. The 128 characters does not match a 6-bit word, but rather a 7-bit word. You could run APL on it and it used a whole bunch of special characters. .

I only read that part of the manual once, and there were a few "hall talk" discussions about the size. So, there may be a wet memory error there.

Ralph —The preceding unsigned comment was added by (talk) 15:33, 6 January 2007 (UTC).


Is "tword" worth mentioning? It is used, at least, in nasm as a ten-byte field. I found a few other references to it (for example, GoAsm). I was looking because the nasm documentation didn't really say how big it is. --Ishi Gustaedr 17:56, 20 July 2007 (UTC)

I don't think it belongs here, as it's not a generally recognized term. It seems pretty much to be a convention internal to nasm and a few other tools. -R. S. Shaw 03:39, 21 July 2007 (UTC)

Variable word architectures requires fix and article needs to be improved[edit]

the Model II reduced this to 6 cycles, but reduced the fetch times to 4 cycles if one or 1 cycle if both address fields were not needed by the instruction


1. Article needs to differentiate between general word meaning and Intel's definition (more clearly). Generally word should mean maximum data, which could be stored in a register, transfered through the memory bus in one cycle, etc (width of them). Now Intel (or x86 programmers) have coined the new word definition, which is 16 bits. This is only one of the possible word sizes like byte can mean not only 8 bits. IA-32 (since 80386) natural word size is 32 bytes cause such amount of data is maximum register capacity and is the size with which the system operates. 16 bit part is only part of the register. As well, 16 bit word can also be divided into high and low parts and all these together make one 32 bit register. Same goes for x86-64, but not the latest IA-64. Furthermore, C language standards ANSI C and C99 define that int size is equal to the size of the word in particular system. On IA-32 it is 32 bits.


and is still said to be 16 bits, despite the fact that they may in actuality (and especially when the default operand size is 32-bit) operate more like a machine with a 32 bit word size. Similarly in the newer x86-64 architecture, a "word" is still 16 bits, although 64-bit ("quadruple word") operands may be more common.

Seems too much uncertainty (may, more like) —Preceding unsigned comment added by (talk) 13:49, 11 June 2008 (UTC)

1. As I see it, Intel didn't really coin any new definition of "word". They defined a word as 16 bits when they came out with the 8086. They continued with that convention with the upward-compatible 80186 and 80286 (even though the latter had many 32-bit operations). The '386 was also upward-compatible, and initially most programs were using 16-bit operands (indeed, could run on a 8086 or 8088), so of course they continued to have the term 'word' mean 16 bits. To do otherwise would have only created competely unnecessary confusion. This is not unusual; the term 'word' is vague except when applied to a particular machine, where it usually has a very particular value. This usually has to be done by definition for the machine, because any modern machine uses different sizes in different contexts; it is not a simple maximum register size. The x86-64, for instance, has some registers bigger than 64 bits, eg 128 bits. The "Size families" section of the article talks about this.
2. The prose seemed to reflect the situation, which is not really uncertain but complicated and conditional - a "32-bit" 386 can be running 8086 code and not operating like a native "32-bit word machine" in most respects. But I have made some revisions to it which may have improved things. -R. S. Shaw (talk) 19:40, 11 June 2008 (UTC)
Thanks. I usually try to contact the maintainer first. The main thing why I question this word issue is because the definition of word crosses with C's definition of int. Int is defined as a word on particular system. Because of this I came here to verify my assumption that int would be 64bit on x86-64. But according to this article int should be 16bit. And we know that int size on 32bit systems is 32bit. Btw, memory bus size is 32/64 bits and even if we operate with only ax, bx, cx, dx, si and di, data is sent from the eax, ebx, ... with leading 0 appended. Could this word term be defined in some IEEE released terminology standard? (talk) 03:47, 12 June 2008 (UTC)

Table of word sizes[edit]

What are the criteria for including an architecture in this table? I don't see the PDP-6/10, which was the dominant architecture on the ARPAnet and the major machine used in AI research in the 60's and 70's; I don't see the SDS/XDS 940, a pioneering early timesharing machine; I don't see the GE/Honeywell 6xx/6xxx series, on which Multics was implemented; I don't see the Manchester Atlas, which pioneered virtual memory. Of course, I could just add them, but perhaps there is actually some logic about the current choice I am missing? For that matter, I'm not sure that having an extensive list is all that valuable; maybe it could be condensed in some useful way? --Macrakis (talk) 20:16, 27 July 2010 (UTC)

When I put the original table in [1], I gave it a dozen entries I thought were representative of the historical range of sizes and featured major machines. I envisioned a small table of this kind as an easy overview of the evolution of word sizes. It was not long before others started adding entries, most notably User:RTC who added perhaps two thirds of the current entries I would guess, although none since March 2008. What criteria there were for new entries I couldn't say. I prefer the small table, but haven't actively resisted the expansion. -R. S. Shaw (talk) 05:48, 30 July 2010 (UTC)

x86-64 should be there. (talk) 14:18, 29 June 2011 (UTC)


Although I appreciate the idea that this article describes "Word" as a dynamically sized type depending on architecture...

When we're in the world of x86 there's simply a backward compatibility in effect that has fixed the size of the type "WORD" to 16 bits. The problem with this concept however is Compilers, that actually utilize fixed types, but use base types like "integer" and "long" that are sized dependent on the underlying cpu architecture.

When in C the type WORD is defined via "#define WORD int", it doesn't mean that the WORD is always the length of an integer, it means that the WORD is defined to a type that at the time that it was written - an int was 16 bits. When you compile the same definition on a compiler that supports 64 bits, it will be compiled to a 32 bits type, which will probably Break your software - especially when coupled to the Windows-API. Nowadays WORD will probably be defined as a short int, which is 16-bits in most C compilers.

As a result, or reason, who knows what happened first, both Intel and AMD have a clear definition of Words in their opcode manuals.

The following quote is from the "Intel® 64 and IA-32 Architectures, Software Developer’s Manual, Volume 2A: Instruction Set Reference, A-M":

cb, cw, cd, cp, co, ct — A 1-byte (cb), 2-byte (cw), 4-byte (cd), 6-byte (cp),
8-byte (co) or 10-byte (ct) value following the opcode. This value is used to
specify a code offset and possibly a new value for the code segment register.
ib, iw, id, io — A 1-byte (ib), 2-byte (iw), 4-byte (id) or 8-byte (io) immediate
operand to the instruction that follows the opcode, ModR/M bytes or scaleindexing
bytes. The opcode determines if the operand is a signed value. All
words, doublewords and quadwords are given with the low-order byte first.

The "legacy" opcodes LODSB, LODSW, LODSD for example are made to specifically load 1-byte, 2-byte, 4-byte into registers. Independent of whether the architecture is 32 or 64 bits.

So I personally think that the size of a WORD has been fixed into history to 16-bits and DWORD into 32-bits, simply because they're currently heavily used and really need to be binary compatible types. — Preceding unsigned comment added by Partouf (talkcontribs) 20:54, 15 January 2011 (UTC)


On the 68000, a word usually refers to 16 bits. The 68000 had a 16 bit data bus, and although it had 32 bit registers, performing 32 bit instructions were slower than 16 bit ones. -OOPSIE- (talk) 08:27, 2 February 2011 (UTC)

address width[edit]

A critical limit on any architecture is the width of an address. I admit that there are multiple versions of this: the width of the address bus and the width of the address as far as ordinary programs are concerned (and sometimes the width of the address for programs that are willing to work hard).

Many computer architectures ran out of address bits, grew warts to extend the physical address, and then died when these were not sufficient. Think: PDP-8 with 12-bit addresses, then bank switching to allow more memory (horrible for a program to deal with, OK for an OS). Or the i386 with 32 bit addresses and then PAE.

Reliable sources say that the main motivation for 64-bit architectures (SPARC, MIPS, AMD64, ARM8) has been to make wider addresses convenient.

I'd like a column added to the table to give the address width.DHR (talk) 20:07, 28 October 2013 (UTC)

Address width is indeed an important aspect of computer architecture, both at the Instruction Set Architecture and microarchitecture levels, and is also an important characteristic of particular processor models within a microarchitecture. The subject deserves exposition in Wikipedia. It isn't, however, very closely related to word size, and varies much more widely than word size does. It varies among chip models of an architecture, and often with microarchitectures. It is often responsible for forcing an extension to an ISA. Yet typically the word size remains constant across all those variations.
Because of the above, I'd be against adding discussion of it to the Word article and think it should not be in the word size table. (I'll add that the word table is overly complex now, and would suffer from any additional columns.) --R. S. Shaw (talk) 20:16, 2 November 2013 (UTC)
Virtual address width rarely varies among implementations of an architecture, and that's the address width that matters most to programmers. All IA-32 processors have 32-bit linear addresses, and all x86-64 processors have 64-bit addresses, for example, regardless of how wide the physical addresses are on particular processors. And when the ISA extends for larger addresses, larger general registers and load/store/arithmetic instructions handling larger values generally goes along with it, widening the word size.
Historically, virtual address width (or physical address width if you only had physical addresses) may not have been closely related to word size, but in most modern architectures they're pretty closely related. Guy Harris (talk) 20:07, 24 August 2014 (UTC)
I agree that the width (in bits) of the various kinds of addresses, and the various warts that historically were used when the original address width for some machine turned out to be insufficient, is encyclopedic enough for Wikipedia to cover it *somewhere*. However, I think memory address -- or perhaps pointer (computer programming) -- is a much better place to discuss address width. --DavidCary (talk) 15:02, 6 November 2014 (UTC)

Char and multibyte[edit]

Thanks for improving my language regarding "char" and Unicode (and Harvard, but while true shouldn't split-cache be mentioned?). While the history lesson is correct (I can always count on you), my point wasn't to list encodings. UTF-8 is up to 82.4% while Shift JIS is down to 1.2% on the web.[2]

My point was that "char" is still 8-bit (or not e.g. in Java but with all those newer languages we have, there is still an 8-bit type) while not "usable" when 8-bit for characters.. The multibyte encodings didn't influence computer architecture and word size as far as I know.. Still I just thought somehow it should be mentioned that "char" can be bigger (e.g. 32-bit in Julia (programming language), my current favorite) while not having anything to do with the least addressable unit. Then maybe it's ok to shorten the language, to be on topic, while only mentioning Unicode/UTF-8 (as the only important encoding going forward)? comp.arch (talk) 14:38, 19 January 2015 (UTC)

So what is the relevance of a particular C datatype in an article about word length? And if "the multibyte encodings didn't influence ... word size as far as I know", why bother mentioning any of them, including UTF-8 or UTF-16? The character size influenced the word size back in the days when variable-length encodings were rare (and when the C programming language didn't exist). Guy Harris (talk) 17:59, 19 January 2015 (UTC)
Hmm, you may be right and then it seems you wouldn't object if I removed the text you added.. The first thing I noticed and changed was this sentence: "Character size is one of the influences on a choice of word size." -> "Character size ("char") was one of the influences on a choice of word size." I felt "is one of" might be confusing to Unicode users and I needed to add something about Unicode since I changed is->was. Thinking about this more, actually the "char" datatype isn't variable size (it may be 16-bit from pre-Han unification as in Java or just 32-bit in other languages), only the encoding is variable (and of course the word size doesn't change as still a multiply of 16 or 32). Then at a low level you "need" a "byte" type for the encoding - unless.. If UCS-2 (note not UTF-16) had prevailed, and with indexed color dead, I wander if the Alpha would have gotten away with skipping byte addressing, having the "char"/int 16-bit.. Considered a mistake and they added later (I was also thinking if this article should mention that). What other major uses of bytes can you think of? Networking is strictly speaking in bits but network packet lengths are in bytes (not say multiples of 4 usually?). Not that if needs byte addressing (not in the Alpha, and I think not one of the reasons that added bytes).
I know chronological order is preferred in history sections in WP, the Word section is about the concepts and design choices, maybe start with what is relevant now and end with historical? Not sure if you oppose reversing order as the section has history in it, shile not strictly a historical section. comp.arch (talk) 08:54, 20 January 2015 (UTC)
I wouldn't object if we removed everything that spoke of "char". It would be unjustified to assume that I wouldn't object to other removals.
The right way to handle this would be to make it clear that, in the context of the computer history being discussed, "characters" come from a small set, possibly not even including lower-case letters, and therefore that anybody who thinks of "characters" as Unicode entities needs to significantly recalibrate their thought processes before reading that section - it'd be like somebody thinking a "phone" is a small portable hand-held device with a radio when reading an article about hand-cranked phones. :-)
And, no, the C/C++/Objective-C "char" datatype isn't variable-sized; it only needs to be "large enough to store any member of the basic execution character set", which means, in practice, that it's one 8-bit byte on 99 44/100% of the computer systems supporting C. "wchar_t" is what you want for larger character encodings, although I think that's 16 bits in Microsoft's C implementations, which isn't big enough for a Unicode character (Basic Multilingual Plane, yes, but not all of Unicode). C's "char" is best thought of as meaning "one-byte integer of unspecified signedness", with "signed char" and "unsigned char" meaning "one-byte {signed, unsigned} integer". Characters are encoded as sequences of 1 or more "char"s.
Given existing C code, the chances that a word-addressible Alpha would have succeeded were somewhere between slim and none. It'd have to be able to read and write files and network packets with a lot of byte-oriented stuff in it, etc.; that's why Alpha was byte-addressible, even if the first versions of the instruction set required multiple instructions to load or store 8-bit or 16-bit quantities. (No, the article shouldn't mention that; Alpha was not word-oriented in the sense that, say, the IBM 709x or the Univac 1100/2200 machines or the GE 600 machines and their successors or the PDP-10 was; all pointers were byte pointers, you just had to do multiple instructions to do 1-byte or 2-byte loads or stores. And the size of a word, in the sense of this article, was 64 bits, but Alpha could do 32-bit loads and stores with one instruction.)
The section talking about the influence of character size on word size is very much a historical section - the System/360 started the 8-bit-byte/word as power-of-2-multiple-of-bytes/byte-addressibility trend that became dominant in mainframes with the S/360, dominant in minicomputers with the PDP-11, and was pretty much always dominant in microprocessors. I see no good reasons to change the order of items in that section from what we have now. Guy Harris (talk) 10:50, 20 January 2015 (UTC)
The stuff about multi-byte encodings was originally introduced in this edit; you might want to ask the person who made that edit whether they would object if it were removed. :-) Guy Harris (talk) 10:53, 20 January 2015 (UTC)

Natural-size "word" vs. historical-terminology "word", yet again[edit]

Recent edits changed the entries for IA-32 and x86-64 to use "word" in the historical-terminology sense rather than the natural-size sense. This has been much discussed during the history of this page.

If, for architectures that evolved from earlier architectures with shorter natural-size words, we're going to consistently use "word" in the historical-terminology, then 1) we need to fix the entry for VAX as well (it was a 32-bit architecture, so "the natural unit of data used by a particular processor design", to quote the lede of the article, was 32 bits) and 2) we should update the lede, as it doesn't say "word is a term the developer of an instruction set uses for some size of data that might, or might not, be the natural unit of data used by a particular processor design".

Otherwise, we should stick to using "word" to mean what we say it means, even if that confuses those used to calling a data that's half the size, or a quarter of the size, of the registers in an instruction set a "word".

(We should also speak of instruction sets rather than processor designs in the lede, as there have been a number of designs for processors that implement an N-bit instruction set but have M-bit data paths internally, for M < N, but that's another matter.) Guy Harris (talk) 23:38, 20 February 2016 (UTC)

I changed it because several pages directed to this one for definitions of X86 word and double-word, and then this article used a technical definition that contradicted normal use. The table in general seems to be of doubtful use, and full of errors. For instance the use of d is inconsistent and random. Perhaps we should ask what this table is supposed to do? I just want this page somewhere to have a definition of the most common uses of Word. That it is 16-bit for integers on X86, 32-bit for floats on the same, and 32-bit on most other 32-bit (and 64-bit) architectures.Carewolf (talk) 11:36, 21 February 2016 (UTC)
"this article used a technical definition that contradicted normal use" This article is about the technical notion of "word", not about the x86 terminology. Perhaps the pages that go here when talking about the term Intel uses in their documentation should go somewhere else, e.g. a "Word (x86)" page. Guy Harris (talk) 17:13, 21 February 2016 (UTC)
This page is about "Word" in computer architecture. We can define that, but then note nomenclature in different architectures is different based on history. Think also about word-size compared to floating point - Is it really 16bit on a 16-bit x86 with x87, when the smallest size floating point it can operate on is 32bit and the internal registers were 80bits? The term is inherently ambigious, so this article needs to deal with that. 17:27, 21 February 2016 (UTC)
In the technical sense, "word" generally corresponds to maximum integer and (linear) address sizes (even with wider-than-word-size integer arithmetic done with multiple instructions), even if that might not correspond to floating-point value sizes. Neither the integer nor linear address size are 16 bits on an IA-32 or x86-64 processor.
And, yes, the last paragraph of the introduction, and the "Size families" section, should be rewritten to indicate that, for some architectures, the term "word" is used to refer to values narrower than the natural word size of the processor - i.e.:
  • the natural word size of IA-32 processors, and the natural word size of x86-64 processors, are not the same as the natural word size of 16-bit x86 processors, but the Intel documentation uses "word" to mean "16-bit quantity" for all flavors of x86
  • the natural word size for VAX processors, and the natural word size of Alpha processors, are not the same as the natural word size of PDP-11 processors, but the DEC documentation uses "word" to mean "16-bit quantity" for all three of those architectures;
  • the natural word size for z/Architecture processors is not the same as the natural word size of System/3x0 processors, but the IBM documentation uses "word" to mean "32-bit quantity" for both of those architectures. Guy Harris (talk) 18:07, 21 February 2016 (UTC)


Well I had to scroll about 11 or 12 bits down the this page of ever-so cleverness, but finally some sanity, thank you Partouf. Firstly, whoever was responsible for putting together this page, I love it. It's full of really interesting stuff, and I also get the impression you may have a similar coding ethos to myself. I like it. I like you. So I really would like to see this page be re-titled and linked to or included in a page on the way 'word' is used in computing, perhaps under the heading "origins of data size terminology" or something like that. It is all true. You are technically correct, however anybody looking for real world information can only be confused here. Perhaps a junior school student who is starting computer science and can't remember which one of those funny new terms is which. There's actually comments here from people not wanting readers to get the wrong impression and think a word is 16-bits... It is. Sorry. The real world built a bridge, got over it and moved on with their lives. That poor school kid just wants to know its 2 bytes, she has enough study to do already.

Perhaps should be noted somewhere early in the page not to confuse this with the "word size" that some sources still use to describe processor architecture, and directing the 1 in every 65536 visitors (including myself) who find that interesting, to a section further down the page. The fact that the word has been re-purposed really should rate about 1 sentence in the opening paragraph before it is clearly described that a word is 2 bytes, 16 bits and can hold values of zero thru 2^16-1. Maybe something like "In computing 'word' was once used to describe the size of the largest individual binary value that could be manipulated by a given system, but with the evolution of processor design and rapid growth of computer use worldwide, it now almost always refers to..." a WORD. This is what languages do, they evolve. If we want to wax philosophical about it, I could postulate that it is probably because computer terminology and indeed documentation began to solidify around the time that 16 bit architecture was the mainstream norm. A group of cetaceanologists may very correctly us the term 'cow' to describe 100 tons of migratory aquatic mammal, but WP quite rightly directs that inquiry straight to this page.

The obvious example that immediately sprang to mind, I see has already been canvassed here by Partouf, being the long ago standardisation of the term in assembly language programming and its ubiquitous and categorical definition as being 2 bytes. From volume 1 of the current Intel® 64 and IA-32 Architectures Software Developer Manuals:

4.1 FUNDAMENTAL DATA TYPES The fundamental data types are bytes, words, doublewords, quadwords, and double quadwords (see Figure 4-1). A byte is eight bits, a word is 2 bytes (16 bits), a doubleword is 4 bytes (32 bits), a quadword is 8 bytes (64 bits), and a double quadword is 16 bytes (128 bits).

Please believe me, this is a page full of really good, interesting stuff. Stuff that I mostly already know, but I still find the chronicled detail of a subject so close to my heart to be a thing of great beauty. But, I suspect like most people who feel that way, I don't need 'word' explained to me, this page should be for those who do. I got here when I searched for 'qword'. The term for the next size up next size up (dqword) momentarily slipped my mind, and I expected a page dealing with data sizes where I could get the information. What I found was more akin to a group of very proper gents all sipping tea and reassuring each other that the word 'gay' really does mean happy, regardless of what those other 5 billion people use it for. In fact, having just looked up the gay page, its a really good example:

Gay This article is about gay as an English-language term. For the sexual orientation, see Homosexuality. For other uses, see Gay (disambiguation).

Gay is a term that primarily refers to a homosexual person or the trait of being homosexual. The term was originally used to mean "carefree", "happy", or "bright and showy".

A bit further on there's a 'History' title and some of this, “The word gay arrived in English during the 12th century from Old French gai, most likely deriving…..”

Should anybody find this example to be in some way inappropriate they will have proved themselves well described by my simile. It is the perfect example.

The only sources I am aware of in which 'word' is still used to describe that native data size of a processor, are in some technical manuals from microcontroller manufacturers originating from regions where English is not the predominant language. Perhaps this page could be accurate titled “Word (microcontroller architecture)”, but not “Word (computing)”. As “Word(computer science)”, it is just plain wrong. I know it was right in 1970, but that's a moot point. I have spent some time programming non-PC processors, of various makes and (dare I say it) word-sizes, so I understand why 'word' it so appropriate in its traditional context, its almost poetic when you imagine the quantum with which a processor speaks.

However, in the real world mostly they don't. They 'talk' to almost anything else using 2 wire buses like SMBus or I²C. SPI with it's lavish 4 wires is being used less in favor of the more versatile and cheaper to implement I²C. With these I find myself not thinking in 8,16, 32 or 64 bits as I do with PCs, but in serial pulses. You can write the code in C these days, its mostly interfacing with peripherals that the challenge, and its mostly 2 or 4 wire, even modern smartphones. Typically the only high bandwidth 'bus' is for graphics, and having the GPU and CPU fused together, they are all but the same device... its no surprise our eyes are still attached directly to the front of our brains.

After I wrote the start of this, I thought I had made a mistake, and that this was a page specifically for processor architecture, that there was a word(unit of data) page also and it was a case of a bad link that needed to be redirected. I looked. I was wrong. I couldn't believe it. I'm sorry

“Recentism”…. Peter, that has to be trolling right? I'm not sure, but you say, “A word might be 32, 36, or 60 bits” immediately followed by “16 bits is a halfword, to call it a word is a recentism.” You then go on to explain that the brains trust at Intel were just being lazy when they decided that they wouldn't re-define the length of a cubit to match the new king's forearm. So I'm just going to give you a big thumbs-up for sense of humor, but I should touch on the subject that you have so rightly identified as being at the root of the situation. The only linked reference on this page without the word 'history' in the title was first printed in 1970. Reference number 4 is unlinked, but it shows a glimmer of promise with its title specifying “Concepts and Evolution”.

Guy, gave a couple of great examples going back to the mid 60's, however, the real question is what does the word mean? I know what it means to you, and I expect also to our host, but what does it mean to the vast majority of people who use it? Back in the mid 60's when mainframes and COBOL were all the rage, a tiny fraction of the world's population had access to any sort of computer. PC's arrived a few years later, but were simplistic and prohibitively expensive for most people, It really wasn't until the 80's that even a notable minority of the world had access to one. The ZX81 sold 1.5 million units. By the late 80's the entire range had sold about 7million. A quick look at my phone and original Angry Birds has over 100 million downloads just on android.

A frivolous example, but I think its fair to say that then number of people who have daily access to a computer today is comparable to the entire population of the world in 1965, without knowing the exact figures. I could be wrong, but it wouldn't be a ridiculous argument. I think guessing at there being 10million PC's in 1985 when Intel sanely decided to stick with the cubit they had been using for years would be generous. Even though it may only be a minority of users who think about data sizes beyond the bare minimum they are taught at school, I would suggest that in 2016 there must be tens, if not hundreds of millions of people who all know that a word is 2 bytes.

Possibly there's as many young people who know that gay can also mean 'happy' or 'bright', possibly not, but regardless of our personal feelings, are any of us old gents sipping our tea really going to tell that 6'6” Hell's Angel at the bar that he looks really gay tonight? Of course not, because like it or not we know what the word means. A word, any word, does not mean what the first person to speak it was thinking at the time, it means what people understand you to be communicating when you use it. The most absolutely stingy comparative estimate I could possible imagine of people who use 'word' in a computing sense who take it to mean “2 Bytes” vs. those who take it to mean “the size of the native unit for a given processing system” would be 1000:1, albeit that I've knocked off a couple of zeros I'm quite sure are there, the point remains valid.

This page describes the historical origins of the use of the term 'word' in computing, not the actual meaning attributed to its usage by almost all the people who use it. The section of the population who understand the word in the way you are presenting it, is a very small minority, but more importantly the section of the population who actually use the word in that context is so tiny that it is bordering on statistically irrelevant. You can, of course point to historical text that will suggest you are technically correct, but at the end of the day what will you have achieved? WP is a truly awesome entity that has already etched itself into the global consciousness. The term 'word' is one of the central concepts in computing, as I suspect you might possibly want to point out, were you not so committed to the second pillar.

One of the things that fellows like me who are not as young as many have to come to terms with, is that regardless of how certainly I know that my view on something is the best way to look at it, if an entire generation has decided otherwise, I am not going to sway them. I could stubbornly hold my ground continue to back my barrow up, the best I could hope for there, is that the world just ignores me until I become venerable and expire, or I could participate in society as it is presented to me, and endeavor to appropriately impart whatever meager wisdom I posses from within something that is far larger than myself.

In my ever-so-humble opinion, the first thing a page should do is give the reader the information they are looking for, and then if there is an even richer context to place around it, so much the better. I believe that if you create a page that is relevant and informative, but then beckons the reader as far into the larger context as suits their individual interests and capacity you will have made something that is truly greater than the sum of its parts that may well outlive the both of us. Perhaps by then people will have decided that gay means 'windy'. Please try to imagine how this page presents to somebody who searches 'qword' or links from here.

… and really, check this out for formatting, its quite well constructed.

       “I say old chap, its rather gay outdoors this afternoon” (talk) 22:54, 12 June 2016 (UTC)sanity