Slashdot Mirror


Intel Potentially Reverse-Engineered AMD64

icypyr0 writes "Tom Halfhill, an analyst for In-Stat/MDR claims that due to similiarities in the instruction sets of AMD64 chips and the new 64-bit extensions for Intel Xeons, it is clear that Intel reverse-engineered the AMD64. However, due to the fact that the new Xeon is not an exact copy of the AMD64's microarchitecture, Intel has not broken the law. This very tactic has actually been used by firms such as AMD in the past to catch up to Intel."

28 of 324 comments (clear)

  1. AMD and Intel have a cross-licencing agreement. by norculf · · Score: 5, Informative

    So reverse engineering is not a problem in this case. In fact, it's not unlikely that AMD simply handed them the documentation.

    1. Re:AMD and Intel have a cross-licencing agreement. by Anonymous Coward · · Score: 3, Informative

      Or maybe, just maybe, Intel simply downloaded the tech docs off AMDs website..

      http://www.amd.com/us-en/Processors/TechnicalResou rces/0,,30_182_739,00.html

      Whoa..

    2. Re:AMD and Intel have a cross-licencing agreement. by Homology · · Score: 5, Informative
      So reverse engineering is not a problem in this case. In fact, it's not unlikely that AMD simply handed them the documentation.

      Security wise, it is bad that Intel decided not to copy the NX (No Excute on pages) part as well.The NX is not an AMD invention, of course, but it's very nice that they included it. And who uses this? OpenBSD developers was not very happy with the Intel decision : they actually recommend buying AMD before Intel.

    3. Re:AMD and Intel have a cross-licencing agreement. by John+Courtland · · Score: 4, Informative

      The x86-64 has 16 64-bit GP registers now. The instruction set isn't so bad if you get down to the microcode anyhow, most common instructions (MOV, ADD, INC, DEC) are executed in 1-2 clocks, and have since the 486. Yes there is a latency to decode the instructions but that's what pipelining is for.

      --
      Slashdot is proof that Sturgeon's Law applies to mankind.
    4. Re:AMD and Intel have a cross-licencing agreement. by nyteroot · · Score: 4, Informative
      Sorry, I'm afraid this time it's you that doesn't know what's going on.

      Since the Pentium Pro, Intel's IA32-based chips (and AMD's chips from a similar point in time I'm sure) have actually had to translate IA32 instructions into an even lower-level RISC-like instruction set before they were executed. At this point the IA32 instruction set no longer truly reflects the runtime architecture of an x86 CPU.

      --
      Ratio of replies to old sig content : replies to actual post content > 0.5. Sig changed.
    5. Re:AMD and Intel have a cross-licencing agreement. by YetAnotherGeekGuy · · Score: 3, Informative

      Itanium is hardly what I'd call RISC

      And neither would Intel. Its called EPIC, which is one step beyond VLIW (ok maybe only a half a step), which is one step beyond RISC, which is one step beyond CISC (x86).

      In fact the AMD/Intel cross-licensing may well be the most significant reason x86 has continued to be the dominant design for so long. The mutual co-opetition has served to make both offerings consistently better over time.

      What amazes me is that x86 has been so resilient (x86-64/EMT64 being the latest case in point). For 20+ years we've been hearing about the death of CISC, but all those predictions simply underestimated the ability of x86 to adapt to the new technologies. And the "religious" overselling of the philosophy of RISC and its "unique" benefits has also contributed. RISC, as implemented, was really more than just a reduced instruction set. The speed came as much from other architectural improvements. The superscallar, branch optimizations, register set expansion (through the huge x86 reorder buffer/retirement unit), and the march of computer architecture progress have all been co-opted by x86 which had the market share to afford to invest in the improvements.

      The other thing that the existence of the "AMD Intel cross license" comments above overlook is that that cross license does not extend to Itanium. So, while its OK for AMD and Intel to reverse engineer each other on the x86 (they essentially share an IP portfolio here), that does not apply to other architectures.

      --

      to the Engineer, the glass is neither half full nor half empty. Its just two times too big.
    6. Re:AMD and Intel have a cross-licencing agreement. by Lars+T. · · Score: 4, Informative
      Intel, AMD sign new licensing deal
      The two companies signed a 10-year patent-licensing deal, the fourth pact between the companies since 1976. The deal is retroactive to Jan. 1, when the previous agreement expired.
      Neither company needs a specific license to use one of the other's technologies (if it falls inside the limits of this deal of course), e.g. AMD doesn't need one to use (I)SSE (II(I)).
      --

      Lars T.

      To the guy who modded me down from perfect to terrible Karma - Apple haters still suck

  2. Cross-licensing by l33t-gu3lph1t3 · · Score: 4, Informative

    Intel has cross-licensed X86 do death. I believe the terms of the deal state that Anyone can use x86, but any improvements they do to it are free for Intel to incorporate.

    --
    ------- "From bored to fanboy in 3.8 asian girls" ----------
  3. Re:Something they left out... by sirsnork · · Score: 2, Informative

    This is correct, the NX bit is missing from the Intel implementation

    --

    Normal people worry me!
  4. Re:Really?! by vanillacoke · · Score: 2, Informative

    Give up on the MP3, go for AAC.

    --
    The secret to getting modded up is to allways say i've got karma to burn in your sig..
  5. Re:Something they left out... by Anonymous Coward · · Score: 2, Informative

    No, not really. The NX flag is dealt with by the memory controller, which is not incorporated into Intel's processor (but is in Opteron/Athlon64), so it's hard to say whether it will be supported by Intel. That is, until the specs for the north-bridge are out.

    But given how MS bragg it as a security measure, I can take bets :-)

    Stephane

  6. No way Intel is going to do something like this. by Theovon · · Score: 3, Informative

    Sure, Intel is known, like Microsoft, to do underhanded things, but these are all gray areas... marketing tactics, etc. But when it comes to a clear-cut IP thing like this, there's no way they're going to want to put themselves at risk like this.

    Besides: (1) Intel and AMD have all sorts of cross-licensing things in place, and (2) there are only so many ways to extend a 32-bit arch to 64-bit.

    Intel's "IA32e" is fundamentally an Intel design, with 64-bit extensions. I think IA32e is basically a Prescott (or later) core. Intel and AMD go about their CISC-front-end-to-RISC-core in quite different ways with quite different results in terms of efficiency, etc.

    So, the bottom line is that I'm sure, given that they do execute the same instruction set, that there will be MANY similarities, but they will be either accidental or necessary similarities.

  7. Re:How is it reverse engineering? by only_human · · Score: 2, Informative

    Also, the lack, or inclusion, of LAHF and SAHF being a "smoking gun" seems to be an overly strong conclusion. LAHF and SAHF were included in the 8086 to ease transition from 8080 code and as such, have been somewhat arcane. Although they have their uses, dropping them has been probably been frequently considered over the years.

  8. Not exactly a well informed article by Lface · · Score: 5, Informative

    Given that the instruction sets are compatible, you don't need to do much investigation to figure out that they have looked at AMD's x86-64.

    Apparently, there is still some confusion about whether the instructions sets are compatible or not, and people such as Linus has been critisizing Intel for trying to hide the fact that they are indeed compatible by giving the instruction set another name.

    When it comes to licensing of technology, AMD and Intel has had cross-licensing agreements since the seventies, and there has been roumors for a long time that these has included x86-64.

  9. Looks like... by Pollux · · Score: 5, Informative

    Intel pulled an AMD.

    So reverse engineering is not a problem in this case. In fact, it's not unlikely that AMD simply handed them the documentation.

    But reverse engineering isn't "Handing them the document," as you put it. They have the right to produce a chip which uses the same instruction set (x86-64) within their chip, but they have to find a way to build it themselves...unless they reverse engineer the design of the chip itself...happens all the time...Z80 ring a bell? AMD did the exact same thing with the Intel 286, 386, and 486...took Intel's chip and reversed the design...until they finally came out with their own design of the 5x86 architecture, the K5. The K5 still used the x86 instruction set, but executed it with their own engineered design. So, maybe this is a good sign of Intel now being the follower instead of the leader.

    1. Re:Looks like... by isdnip · · Score: 5, Informative

      Just to be more specific about the history...

      Intel licensed AMD to produce their designs, as a second source, up through the 80286. Intel masks and all. By the time the 386 came out, Intel didn't need AMD any more (they had multiple fabs and a good enough reputation, plus a lock on PC-compatible chips). So they told AMD that the agreement didn't apply any more. I don't remember if AMD won or lost on the 80386. But it certainly didn't last until the 486. So AMD did their own design, without any help from Intel. The court did note that a number could not be trademarked. It was thus never the "80486"; I think "i486" was a trademark, not that anybody cared, and that's why the next Intel chip was "Pentium".

      AMD's "586"-class chip, the K5, was a dog. They then bought NexGen and adapted its RISC-innard design to the K6, which rocked, and fit a Pentium socket. Intel put tighter patents on the PII socket so AMD built the Athlon on DEC's Alpha socket electrical design.

      Intel didn't have to change the ISA (drop the NX, for instance) in order to be legal. Either they goofed, or they sabotaged their own 64-bit x86 upgrade (as others here have suggested) in order to create a niche for the Itanic.

    2. Re:Looks like... by Hoser+McMoose · · Score: 2, Informative

      I don't remember if AMD won or lost on the 80386. But it certainly didn't last until the 486.

      What lasted until the 486 was the legal battle. AMD did end up losing but not until after they had reverse engineered Intel's 486. AMD later did their own version of the 486. The first version of AMD's 486 just changed the microcode, enough to make it a "legal copy" so to speak. Later they designed an entirely new chip called the 5x86 that offered decent performanced compared to Intel's early Pentiums but at a much lower price and with cheaper 486 motherboards.

      AMD's "586"-class chip, the K5, was a dog.

      The problem with the K5 wasn't so much that it was a dog-slow processor, it was more simply that it was over a year later. If the K5 had arrived in 1994 or even in early 1995 it would have been a decent competitor to the Pentiums at the time. However it didn't make it to market until 1996 and the clock speeds just weren't there.

      Intel put tighter patents on the PII socket so AMD built the Athlon on DEC's Alpha socket electrical design.

      The patents had nothing to do with the socket and everythign to do with the bus. One of the important outcomes of the legal battle you mentioned was that AMD was given the right to produce chips compatible with the Pentium bus but NOT the Pentium Pro bus. The PII (and PIII that followed) switched to use the PentiumPro bus rather than the old Pentium bus, so AMD needed to find another solution. The EV6 bus from the Alpha design team was a nice and easy solution offering pretty good performance at the time.

      Intel didn't have to change the ISA (drop the NX, for instance) in order to be legal.

      Intel didn't have to do much of anything to make the chip legal, as the original poster in the thread mentioned, Intel and AMD have cross-licensing agreements that cover them for this sort of thing.

      Either they goofed, or they sabotaged their own 64-bit x86 upgrade (as others here have suggested) in order to create a niche for the Itanic.

      My understanding of things is that this feature just wasn't implemented in time for this spin of the silicon. It's expected to show up in the next generation of Intel 64-bit x86 chips, probably ariving in early to mid 2005.

  10. Wrong by Wesley+Felter · · Score: 3, Informative

    No, not really. The NX flag is dealt with by the MMU, which is part of the processor.

  11. Re:AMD will have the last laugh here by No.+24601 · · Score: 3, Informative
    AMD will have the last laugh here. Turns out they embedded a Pink Floyd album in the code of AMD64 (a fair-use copy, as AMD had previously purchased the album).

    Yep, Intel sure suffered A Momentary Lapse of Reason.

  12. Re:Something they left out... by nester · · Score: 2, Informative
    The NX flag is dealt with by the memory controller

    no, it's handled by the mmu, which is on chip (and has been for many years on many different chips). the memory ctrler does nothing but access the ram chips.

  13. NX not left out... by Anonymous Coward · · Score: 1, Informative

    Bill Siu, head of DPG (Desktop Products Group):
    "Coming this year, more and more companies are employing hardware-based security. For example, the NX or the no execute feature will be available in our processors later this year."

  14. Article -1 Flaimbait by Anonymous Coward · · Score: 1, Informative

    This is ridiculous. AMD gave Intel the cross license agreement. Intel got x86-64, AMD got SSE3. This has been very well documented on numerous occasions.

    ExtremeTech hits a new low in yellow journalism.

  15. Re:Goodbye Intel... by ImpTech · · Score: 3, Informative

    Lots of good points there... AMD has been doing very well lately, though honestly I think they've been doing most of it by *not* trying to innovate, and just trying to do what makes the most sense. Example: Athlons from tbird through barton are all pretty much the same, just with die shrinks, cache increases, and bus/multiplier differences. In that period Intel's put out what, 3 significantly different P4 cores, and invalidated a couple of socket types. I think that lack of extra worthless effort is a big part of what keeps Athlons so inexpensive, and yet AMD has still provided good performance just doing the conventional things.

    However, where I disagree with your assessment is about the dropping of the P4 architecture, going with a Pentium M derivative. I think thats the best move Intel can make at this time, and that while it might be a bit confusing to consumers, they're going to develop some very good chips as a result. I've always felt that the P4 was a stupid design to begin with, that only stayed competitive through hacks and ingenuity on the part of Intel's engineers. Now that they're going back to a good architecture, we could very well see another dynasty like the P6 core presided over.

  16. More detail by Eric+Smith · · Score: 2, Informative
    A little digging reveals that AMD published the x86-64 architecture specification on August 10, 2000: AMD Releases x86-64(TM) Architectural Specification; Enables Market Driven Migration to 64-Bit Computing.

    Although there were rumors about an Intel Yamhill 64-bit x86 part for many years, they didn't announce an 64-bit x86 architecture extension until February 18, 2004, and it was announced sheepishly as a very minor point in a press release rather than amid great fanfare as AMD had done. Intel still has not released any product incorporating this extension. Thus they've had more than 3 1/2 years to develop their own 64-bit x86 based on the AMD specifications. No need whatsoever for reverse-engineering. In fact, reverse engineering would have taken much longer, because they would have had to wait to get their hands on working AMD silicon.

  17. Re:Neither can the compiler see these new register by Waffle+Iron · · Score: 4, Informative
    Maybe they do have more multi-purpose registers (I don't believe you 100%), but if you cannot access them via assembly code, then the compiler can't see them either.

    Well, the way CPU performance works today isn't really intuitive. A modern CPU can slice each opcode into several independent primitive operations and run each of those independently. In fact, it can reorder the suboperations from a variety of opcodes and do the work as it can be done, delaying for later the primitives that depend on long-latency things like data from cache. It can also execute many operations after a branch before it knows that the branch will be taken, and throw away all of those results if the branch gets mispredicted. The CPU may be simultaneosly working on dozens of opcodes at any given point in time.

    To support this craziness, the CPU uses "register renaming", which allots dynamic assignments for the user-visible registers from a bank of generic hardware registers. At any one time, you may have several versions of "EAX" simultaneously exist in the CPU; these represent the value of EAX at different logical points in the program code (some of the values may later be found to be useless because of speculative execution).

    So what the programmer thinks of as a bottleneck of loading and storing EAX a couple of times in succession may turn out not to be a bottleneck at all if the values are logically independent. The instructions may be reordered so that both loads of EAX exist at the same time, regardless of what one would assume from looking at the linear opcode sequence. In this case you get to simultaneously use more registers than what you can see.

    While its hard for assembly programmers to keep this straight, compiler writers can emit code that is aware of the CPUs behavior to take advantage of these features as much as possible. The X86 instruction set is a kind of bytecode abstraction; the compiler and CPU can mutually understand that there are ways to transcend the apparent limitations of that visible architecture.

    The bottom line is that register pressure is an issue, but register renaming in the X86 helps to mitigate it. Moreover, AMD's 64-bit extension adds lots of new programmer-visible registers, further reducing the problem. The real challenges going forward with current CPU designs today are improving branch prediction with ever-deepening pipelines, increasing cache size as the CPU speed continues to outstrip DRAM speed, and managing power consumption as gate leakage and transistor count increase. All CPU architectures need to deal with these issues, X86 and RISC included.

    (Itanium was meant to be a new approach to the branch-prediction issue, pushing the intelligence to the software compiler; it hasn't been a resounding success. It also really pushed the cache size by including monster caches, and this has been the main reason for its reputation as an expensive power guzzler. The CPU core really isn't that big or complex.)

  18. Some hints from an ex-Intel engineer by Anonymous Coward · · Score: 4, Informative

    sorry for posting as Anonymous.
    When AMD only started to loudly talk about x86-64, my friend - u-code designer - told me in a private conversation that "...the management is worried, I was asked to look into the possibility of implementing u-code extensions of those new instructions. I'll look at their public specs today. After all, there's not much else to be changed except the u-code".
    I guess he did - but we never spoke about that later.
    The point is:
    1. Intel was preparing an answer to x86-64 as early as AMD started to talk about it.
    2. Intel was quite understandingly taking a wait-and-see approach to that - no one would pull the plug on an already available product, no matter how well it's selling, in favour of competitor's hype. They only started taking real marketing steps when it was obvious that x86-64 is getting accepted and didn't want to lose this market completely.
    3. The implementation is 100% in-house using only AMDs public specs. The uArch was ready before Athlon64 launch, for just in case, and they started marketing it as early as it was clearly no-other-choice situation. C'mon, give Intel some credit - why steal from AMD if there's plenty of in-house talent available? They even made Merced work (after only 8 years :-)).

  19. AMD Cool'n'Quiet niftier by foxalopex · · Score: 3, Informative

    I'm not sure AMD-64's instruction set is all that useful at this point in time owning a new Athlon64 3200+ myself. I find the Cool'n'Quiet function more impressive. At idle I have a core cpu temperature of 31 Celcius! A tie to my motherboard chipset due to it CPU clocking down to 800mhz when idle. If you ask me that's a much nicer innovation at this point.

  20. LAHFing out loud by XNormal · · Score: 2, Informative

    Do you know what these two instructions are? They are for compatibility between the 8086 and the 8-bit 8085 processor. They load and store the flags into AH in the same bit positions as the 8085 so that SAHF+PUSH AX has the same format as pushing the Accumulator/Flags pair onto the stack on the 8085. Since the 8085 is an extension of the 8080 and 8008 architectures it makes these instructions compatible with the flags register format of the first 8 bit processor ever produced!

    There were actually tools to automatically convert 8085 code to 8086 that used these instructions.

    --
    Stop worrying about the risks of nuclear power and start worrying about the risks of not using nuclear power.