Talk:X86 architecture
From Wikipedia, the free encyclopedia
[edit] Navigation
Could there be a more obvious way to direct readers to X86 assembly language than the mention in the "See also" section? Maybe something in italics at the top a la disambiguation? —The preceding unsigned comment was added by Johnruble (talk • contribs) 10:35, November 2, 2006 (UTC)
[edit] Another Point...
I'm not sure if this has been mentioned already but Intel has also developed and released 64-bit Xeon and Pentium 4 and Pentium D (Dual-Core) processors. The technology is known as EM64T (extended memory sixty-four technology).
While the following external links were removed as part of a responsible-looking edit, the IP editor made no comment to indicate they harmed the article.
--Jerzy(t) 16:04, 2004 Mar 14 (UTC)
Why are IA-32 and x86 separate articles? --Damian Yerrick 14:27, 2 Apr 2004 (UTC)
- IA-32 is Intel's 32-bit instruction set, whereas x86 broadly refers to a range of Intel processors (and their instruction sets, some of which predate IA-32). The two terms do overlap to a degree, but they're not synonyms. A 80286 is an x86 processor that does not support IA-32.
-
- Perhaps better phrased as "a range of Intel, AMD, and other processors (and their instruction sets...)". Guy Harris 00:00, 13 January 2006 (UTC)
[edit] Revamping X86 and IA-32 articles
I plan on making some major changes to the contents of both the X86 and the IA-32 articles, to eliminate most of the overlap between them. I plan to make X86 the general overview of the architecture, with shorter technical descriptions, and more historical descriptives. For technical info, I will let the X86 link to the IA-32 (and also other articles) for more details. I will make IA-32 the more technical-oriented article, at least for the 32-bit side of this architecture. I will also let the X86 make links to the AMD64 article for the 64-bit technical details of this architecture.
--ykhan 05:29, 2004 May 3 (UTC)
The descriptions would benefit by being consistently in present-tense except where events are referred to. Where obsolete programming models are described, the description should still be in the present tense, with the context set in the opening paragraph. It's more tiring to read with the inconsistent style of description. For example,
Intel 8086 and 8088 had 14 16-bit registers. Four of them (AX, BX, CX, DX) were general purpose (although each had also an additional purpose; for example only CX can be used as a counter with the loop instruction). Each could be accessed as two separate bytes (thus BX's high byte can be accessed as BH and low byte as BL).
becomes
Intel 8086 and 8088 have 14 16-bit registers. Four of them (AX, BX, CX, DX) are general purpose (although each has an additional purpose; for example only CX can be used as a counter with the loop instruction). Each can be accessed as two separate bytes (thus BX's high byte can be accessed as BH and low byte as BL).
-- Shay
[edit] Title
{wrongtitle|title=x86}
Wikipedia:Naming conventions (technical restrictions) says "A workaround for this issue is to insert a unicode word joiner at the start of the name. This can be done by entering ⁠ in the move page box." Does anyone want to try this? Rd232 18:05, 29 July 2005 (UTC)
[edit] 80286 Real/Protected
The 80286 had a problem that once it was switched into Protected Mode, only a Reset could change it back to Real Mode. The IBM-AT architecture had some way where software could force a reset to flip it back (a reset is really just another interrupt), but it was time consuming. That's what OS-2 tried to do.
It really wasn't until the 80386 came out that it was possible to have an operating system that could have some "back-compatible" mode for older real-mode programs in a reasonable, efficient way.
Swirsky 06:40, 6 Jun 2005 (UTC)
Need to point out the data-bus is 16-bit, while the address bus is 20-bit.
[edit] Why remove FOLDOC?
While i feel the burden of explaining should lie on Stan Shebs, I'll avoid conflict before reverting again and explain:
According to the history section of this article, the original FOLDOC statement was introduced by Uriyan 23:07, 4 Jul 2002, and stated:
This article (or an earlier version of it) contains material from FOLDOC, used with permission.
It did not state what is currently the statement implied by {{FOLDOC}}:
This article was originally based on material from the Free On-line Dictionary of Computing and is used with permission under the GFDL.
Nor could it, because the original version is not equal nor very close to the very short
http://web.archive.org/web/20020906172641/http://foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi?x86
1999-2002 FOLDOC entry.
This article may very well have used some of the info found in the 17 words of the 1999-2002 version, or the 43 words found in the current version, but that does not merit a statement in the article space. Anyone curious about who has contributed to the article will find FOLDOC mentioned among all the other contributors in the article history (in the summaries) and now also here.
Even though this BBC article would inspire me to write an entry on Lord Bell, noting that he works for Mark Thatcher, I would not conclude the article with a statement like "This article has used information found in BBC news". Should you (Stan) still have the desire to revert my change, then please discuss it here first.--Dittaeva 16:24, 26 Aug 2004 (UTC)
- You have to attribute the source even if you only copied three words; the license doesn't say "only attribute if you feel it's merited". Not only is it dishonest to remove attribution, but Wikipedia could be sanctioned for violating the license. Another bad thing is that by introducing a fuzzy "does not merit" argument, you open it up to other people to say for other articles, "well, we're only using one sentence", or "I copyedited, lots of words are different now". The only way the FOLDOC cite could legally go away is if you rewrote from scratch, leaving out FOLDOC's sentences. This is different from using a source for facts, because facts aren't copyrightable, although of course it's expected of you that you Wikipedia:Cite sources anyway, and too few WP articles do that. Anyway, if you don't like my reasoning, try your argument out on the village pump; but be aware that there are some pretty hardnosed people when it comes to copyright, I'm laidback about it compared to them. Stan 17:20, 26 Aug 2004 (UTC)
- But which "FOLDOC's sentences" or "three words" do you mean? Have you actually looked at the links I supplied? If you compare the first WP version and the FOLDOC version, not even two words are connected the same way in the two versions, and the only mutually used words are: "a", "Intel", "AMD" and "of". Does that really constitute "originally based on material from the Free On-line Dictionary of Computing"? I do not mind FOLDOC being referenced with a link (and a reference header), but the license does not require us to put in a line of its own in the article-space for every source or contributor to the article.--Dittaeva 22:52, 26 Aug 2004 (UTC)
- OK, you're right; I had the impression that some of the wording had survived. It looks like former editor Uriyan added the notation in July 2002, perhaps because he cut-n-pasted the "80186, 80286, ..." list from the FOLDOC entry and was being scrupulous. But that bit has been altered completely, so there's no vestige of FOLDOC-ness left. On the plus side, article history shows I wasn't the only one to want the attribution back, so now we have this little discussion as a warning note for the future. :-) Sorry to suck up your time on this! Stan 23:34, 26 Aug 2004 (UTC)
- But which "FOLDOC's sentences" or "three words" do you mean? Have you actually looked at the links I supplied? If you compare the first WP version and the FOLDOC version, not even two words are connected the same way in the two versions, and the only mutually used words are: "a", "Intel", "AMD" and "of". Does that really constitute "originally based on material from the Free On-line Dictionary of Computing"? I do not mind FOLDOC being referenced with a link (and a reference header), but the license does not require us to put in a line of its own in the article-space for every source or contributor to the article.--Dittaeva 22:52, 26 Aug 2004 (UTC)
[edit] x86 licensing?
Anyone have info on if the x86 architecture is patented, and has to (or used to be) licenced by Intel or something? Googling around for a minute didn't turn up anything good for me to add to the article, perhaps I'll dig into it some other time if no one has info right at the top of their brain :) --Fxer 17:54, July 12, 2005 (UTC)
[edit] AMD 'clones'
I think that the phrase 'clones' is used incorrectly, as over the past few years AMD has created many propriety extensions to x86, to the point where AMD no longer 'clone' the chips. Also Intels version of AMD's 64-bit extensions is EMT64.
- I too think that the word 'clone' is wrong in most uses. AMD originally had a license to produce x86 CPUs from Intel. This dated back to the days when no system manufacturer would consider designing in a chip that didn't have a "second source". Intel reneged on the license, fought a long court battle, and settled, leaving AMD with a complicated set of rights, not including full rights to future Intel chip design. So AMD x86 chips up to and including the 386 were essentially the same designs as Intel's (even so, I would not call them clones). I don't remember what AMD had for the 486. Everything else was an independent design to the defacto standard x86 architecture.
- Harris Semiconductors also had licenses from Intel to produce 286 CPU chips (and maybe earlier x86 chips).
- NEC V20 and V30 chips implemented the 8080 and 8186 architecture. I have no idea about the legal arrangements.
- As far as I know, all other manufacturers' implementations of x86 architecture were independant designs. Again, I would not call them clones.
- Note that IBM x86 chips were designed by Cyrix (and Cyrix chips were manufactured by IBM mostly) so those two are essentially the same.
- The point of this is that the word 'clone' seems to reflect a POV.
- DHR 22:43, 14 January 2007 (UTC)
[edit] real mode addressing 'modes'
I don't think it's accurate to refer to near and far as addressing 'modes'. They are not modes. In fact every memory access uses both a segment and offset. The only difference is that sometimes the segment is not explicitly specified.
The terms near and far are used to describe pointers in software. Do you store only the offset (near) or both segment and offset (far)? The distinction has nothing to do with the CPU addressing hardware.
--ScottJ 17:50, August 10, 2005 (UTC)
[edit] Prospects for the x86
Okay,
I’m getting really, really tired of you reverting stuff which I removed under, what I believe are valid arguments. If you do so, you should provide solid sustainable counter arguments. Unfortunately, you don’t even try to do that. Three examples:
- Your C# addition to the continuations article: you add it back by arguing that I should quote the C# spec on saying that it’s not a continuation. This is complete non-sense: 99.99 percent of specs of programming languages don’t say what a certain construct is not. They don’t do this, as it bloats the spec and as implementers of the spec are not interested in what a certain construct doesn’t do.
- Your Microsoft addition to the Itanium and x86 page: You add it back under the cover of saying that Microsoft is big player. But, as I already mentioned Microsoft isn’t a big player on the high-end server market, which is the market the IA-64 architecture is aimed at. Moreover, it can also be argued that Microsoft is doing a very clever thing: They’re targeting their version of Windows for high-end servers at some the core application areas. Hence, it might just be the case that they want to gain experience in these areas before they start supporting other applications on these high-end servers.
- You added back the "Prospects for the x86" section to the x86 article, but up until now you haven't come up with any arguments on why this doesn't violate the wiki policy of not being a crystal ball. Moreover, you completely ignore any application areas for which the x86 architetcure is completely unsuitable (do I hear high-end server market?).
Anyway, I beg you to provide solid arguments before you add something back of which you might suspect that the person who removed it had very good reasons for doing so.
-- Koffieyahoo 07:55, 7 September 2005 (UTC)
I can appreciate your tiredness and frustration. The Wikipedia process is hard work!
- The net result of the process in the article on continuation was that (as you suggested) the example of delegates in C# was removed.
- Attempting to suppress information from the Wikipedia article Itanium based on Microsoft conspiracy theories is misguided.
- Attempting to suppress analysis in the Wikipedia article x86 on the false charge that it is "crystal ball" is similarly misguided.
--Carl Hewitt 16:25, 7 September 2005 (UTC)
In Wikipedia:What_Wikipedia_is_not#Wikipedia_is_not_a_crystal_ball, it states:
- The above prohibitions are not intended to suppress discussion of current trends and tendencies and how they may affect future events. In particular the Wikipedia allows discussion about the arguments for and against whether developments and proposals will be successful provided that they are well grounded and sourced.
However the above statement is new and so it may be controversial.--Carl Hewitt 21:30, 9 September 2005 (UTC)
In Wikipedia talk:What Wikipedia is not the above statement has been amended to:
- "It is appropriate to report discussion and arguments about the prospects for success of future proposals and projects or whether some development will occur, provided that discussion is properly referenced. It is not appropriate for an editor to insert their own opinions or analysis, because of Wikipedia's prohibition on original research."
--Carl Hewitt 03:44, 10 September 2005 (UTC)
In that case, please explain why your statements are not original research. That is, cite a relevant source (I don't believe one exists). -- Koffieyahoo 14:51, 12 September 2005 (UTC)
- The article cites sources. Which statements do you think need sourcing? Thanks.--Carl Hewitt 16:57, 12 September 2005 (UTC)
Okay, to name a few:
- "The displaced architectures include Lisp machines, Japanese Fifth Generation, Reduced Instruction Set, and supercomputers processors."
-
- PowerPCs and SPARCs have a RISC architecture, both are still sold on large quantities, this is even more justified by the Xbox 360
-
- Supercomputers are rediculously expensive, so not many of them are sold, but they 'are' still sold.
-
- Fith Generation computers were never sold in large quantities as far as I know, so I don't think you can claim that x86s replaced them. Please provide a source if you think I'm wrong.
- "Strong competition between Intel and AMD, coupled with the continuous progress predicted by Moore's law suggests that innovations will continue at a steady pace."
-
- Please provide a source that claims this, otherwise I must consider it original research
- "Considering the enormous (and increasing) research and capital costs incurred in the development and production of a modern processor"
-
- Please provide a source which shows such figures.
- "the x86 architecture is likely to continue replacing specialized processors in a number of markets."
-
- Given especially my remarks regarding other architectures I don't think this claim can be maintained. If you think it can be please provide sources. Moreover, what are specialized processors. I mean I don't see any x86 processors in phones, PDAs, etc.
- Itanium paragraph
-
- Except for the first sentence I think this belongs in one of the Itanium related articles, not here.
Koffieyahoo 12:43, 3 January 2006 (UTC)
[edit] Image
There is a request for an image here, is there a particular qualifier for this? Are we looking for a newer AMD K6-2 processor? An older 286? Or even older 8086? If we're just looking for any random processor, or a series of different ones, that can be easily arranged. Janizary 04:10, 2 March 2006 (UTC)
[edit] AMD64 vs. EM64T vs. x86-64 vs x64
I would like to say that to say that Intel and Microsoft refer to AMDs 64bit CPU's different would be false. The words are use interchangable on both the MS and Intel sites. Furthermore x64 is used over whelmingly by almost of all member of varius technical communities. Please do not destinguish who uses these words because it is extremly hard to proove. —This unsigned comment was added by 66.72.205.197 (talk • contribs) 13:56, 22 March 2006 (UTC).
- Intel presumably refers to AMD's 64-bit CPUs as "Athlon 64", "Opteron", etc.. That's not what "x64" refers to, however; it refers to the instruction set architecture. AMD calls that instruction set AMD64, Intel calls it EM64T, and Microsoft uses x64 in the names of its OSes for AMD64/EM64T. I see no sign that "x64 is used over whelmingly by almost of all member of varius technical communities". Guy Harris 21:57, 22 March 2006 (UTC)
[edit] 80186 cores and "extended mode"
I have read about an "extended mode" on 80186 cores being sold today, where the segments are expanded to handle 24-bit addressing by making segments 256 bytes in size instead of 16. Perhaps some research should be done on this new mode's specifics and the relevant information added to this page. I don't know enough about it to do so, however. Daivox 22:05 UTC 23-Mar-2006
[edit] List of 80x86 generations
- 8086, initial/first generation - first member is Intel 8086 (and derivates), later multiple clones appeared.
- 80186, first generation update - first member is Intel 80186 (and derivates), later multiple clones appeared.
- 80286, second generation - first member is Intel 80286, later multiple clones appeared.
- 80386, third generation - first member is Intel 80386 (and derivates), later multiple clones appeared.
- 80486, fourth generation - first member is Intel 80486 (and derivates), later multiple clones appeared
- 80586, fifth generation - first member is Pentium (and derivates), later appeared Nx586, 5x86, 5k86, WinChip, mP6
- 80686, sixth generation - first member is Pentium Pro (and derivates, incl. Pentium M and Core), later appeared 6x86, K6, C3, Crusoe
- 80786, seventh generation - first member is Athlon (and derivates), later appeared Pentium 4 (and derivates), C7, Efficeon
- 80886, eighth generation - first member is Opteron (and derivates, incl. Athlon 64), later appeared Core 2 (and derivates)
the 80..86 links are redirecting to the article of the first member of the generation in question. But maybe we should make some disambiguation-like "generation articles" (similar to the "Xth gen. competitors" section in current articles like Pentium, Pentium Pro, Athlon, Opteron) - this way we could list also 8086/186/286/286/386/486 clones there. Alinor 20:07, 10 September 2006 (UTC)
- What exactly defines a "generation"?
- Are we talking generations of the instruction set architecture (which is what this page is about), in which case there are both obvious major updates (80286, adding a full-blown MMU; 80386, adding the 32-bit architecture; AMD64, adding the 64-bit processor), major add-ons (MMX, 3DNow!, SSE, SSE2, etc.), and minor updates (80186?, Pentium, P6, probably others along the way)? If so, then the "Design" section of this page already covers that.
- Or are we talking about processor design updates, in which case there are sometimes instruction set updates associated with them and sometimes not, so it's not clear it belongs on this page, and it's not clear that AMD and Intel generations are obviously coupled, so perhaps there should be separate generation lists?
-
- Given that the 80186 was a different physical architecture (with microcoded intructions replaced by silicon), had a different package, extra instructions, and ran (at least) two times faster at the same clock speed than it's predecessor, it qualifies as a seperate generation if pentium/pentium pro qualifies. (And you can see from the name that Intel thought it was a seperate generation).
-
- Unless you are using the fact that IBM only ever made an 8088 generation PC and an 80286 Generation PC to define generations.
-
- On the other hand, if the only difference is processor mode (Real Mode, Protected Mode, and Virtual mode), then there has only ever been three generations: 8086, 80286, 80386.
-
-
- You forgot Poland^Wx86-64. :-)
-
-
-
- Architecturally, yes, there are four generations of instruction set architecture, as indicated (at least if you ignore minor updates and the MMX/3DNow!/SSE updates), and multiple generations of processor design updates, which would include the 186 as a separate generation. Guy Harris 08:06, 1 November 2006 (UTC)
-
-
-
-
- We should certainly separate instruction sets from particular implementations, it could probably make sense to define processor "generations" for instruction sets (like compilers do). However, it becomes rather silly, trying to do the same thing with implementations (unless employing a strictly chronological approach). Problems arises not only with Intel Core or Centaurs WinChip, which couldn't be put into any generation without severe logical contradictions, but with many other designs as well.
-
-
-
-
-
- The only fair thing to do is to discuss (and/or classify) the individual physical processors real technical aspects and properties, such as, whether or not they have address-calculation in hardware (80186,..), protected mode (80286,..), 32-bit registers (80386,..), are tighly pipelined (i486,WinChip), superscalar (Pentium,..), speculative with register renaming (6x86,..), micro-op translation (K5,Nx586,PPro,..), very deep pipeline (P4), etc etc. Of course, whether this article is the right spot for such technical elaborations is another question. /HenkeB 17:03, 23 March 2007 (UTC)
-
-
[edit] ...much criticized stopgap concept of segment registers...
Segment Registers were, and are, an architecture for separating out the code and the data. See Data Execution Prevention for the current implementation. Using a segmented architecture prevents buffer overrun exploits. (Actually, in the context of the times, buffer overrun system crashes were an equal problem). Segment Registers were later criticized by one particular important sub-group (unix/c programmers) but you can't call them a 'stopgap concept' - that's just wrong. 218.214.148.10 08:24, 1 November 2006 (UTC)
- Segmented architecture is, in general, what you describe, and in fact the x86 protected-mode segmented architecture can achieve separation and protection. However, the 20-bit real-mode x86 implementation (which is what the article is calling "much criticized stopgap") was not designed for such a thing. Not only is there no provision to mark certain segments as read-only or no-execute, but two different combinations of segment:offset addressing could point at the same byte in memory, subverting any attempt at separation and protection. The 20-bit segmentation was almost certainly introduced to increase the addressable memory, and not for any sort of protection. AcidPenguin9873 21:45, 1 November 2006 (UTC)
[edit] Generations
Hi, how were those x86-Generations established? Does anybody have a Source on this? They just seem strange to me... --Pentiumforever 21:00, 3 January 2007 (UTC)
[edit] NPOV edits by 80.92.248.145
It seems to me the edits by 80.92.248.145 on the 17th of december are more than a little laden with negative value (see diff). Please advise. —The preceding unsigned comment was added by 193.50.44.5 (talk • contribs) 13:00, January 10, 2007 (UTC)
- I would agree that those changes present a strong POV, and I can't see that they add anything much to the article. — Aluvus t/c 18:50, 10 January 2007 (UTC)
[edit] SI vs Binary??
I think that there should be more consistency in the use of SI or Binary prefix notation, one or the other should be used. I think that when they are both it causes confusion eg does that 64KB mean 64*2^10 or 64*10^3? I feel that if (K|M|G|...)B is used exclusively, it will likely be assumed that powers of 2 are being used, when both are used some confusion will occur about values in the "SI" format. Busfault 02:40, 4 February 2007 (UTC)
[edit] Real mode 4 bit shift?
In real mode, memory access is segmented. This is done by shifting the segment address left by 4 bits and adding an offset in order to receive a final 20-bit address. [...] In this scheme, two different segment/offset pairs can point at a single absolute location. Why did the designers decide to use this rather complicated approach of generating absolute addresses? I guess it can cause problems when accidentally accessing / writing to addresses that are already used by something else. --Abdull 09:45, 11 March 2007 (UTC)