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."

11 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 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.

    2. 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.
    3. 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.
    4. 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. 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.

  4. 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.

  5. 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.)

  6. 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 :-)).