top | item 14523587

Intel fires warning shots at Microsoft, says x86 emulation is a patent minefield

327 points| Analemma_ | 8 years ago |arstechnica.com

229 comments

order
[+] rayiner|8 years ago|reply
This marks a distinct shift for Intel. Historically, Intel's IP approach has focused on trade secrets, because they had a huge advantage in manufacturing and implementation techniques that are not easily reverse-engineered. Patent-protecting x86 didn't make much sense during the long period where nobody could make a general-purpose CPU as fast as Intel running native code, much less while emulating x86. As Moore's law has run its course, Intel's lead on that front has been shrinking. Apple's A10 is shockingly close to matching Kaby Lake on performance within a similar power envelope. And Ryzen is within spitting distance of Broadwell at the high end. All on non-Intel foundry processes. That was unimaginable 10 years ago.
[+] _delirium|8 years ago|reply
That's the opposite of my impression of their history. Intel's approach to x86 historically has been asserting that it's basically impossible to implement a clone due to their patents, which they aggressively asserted to keep any competitors out of the market entirely if possible, and restricted to older ISA features if not possible. With the main exception of AMD, which was initially given patent licenses and tolerated in order to meet 2nd-source requirements. But even AMD they tried to strongarm out of the market later, leading to litigation where AMD eventually won a bunch of continued patent licenses only as part of the lawsuit settlement. Intel has also used patent lawsuits over the past 30 years to attempt to limit competition from Cyrix, Via, NVidia, and Transmeta, among others. Though they did lose or unfavorably settle a number of those lawsuits.
[+] dpark|8 years ago|reply
> All on non-Intel foundry processes. That was unimaginable 10 years ago.

Not really. 15 years ago, AMD was outperforming Intel at a lower price.

[+] runeks|8 years ago|reply
> Apple's A10 is shockingly close to matching Kaby Lake on performance within a similar power envelope.

Do you have a source for this claim? Not saying it's wrong, I'd just appreciate seeing a real benchmark/power usage test.

[+] amorphid|8 years ago|reply
Attorneys on both sides must be excited on some level about the potential number of billable hours it'd take to litigate a case like this. Reminds me of a something an entrepreneurship professor told me...

If there's one lawyer in town, they drive a Chevrolet. If there are two lawyers in town, they both drive Cadillacs.

[+] KevinIsMyName|8 years ago|reply
I assume lawyers on both sides have already hands full of work. I imagine these huge corporations spend lots of money on legal.
[+] blazespin|8 years ago|reply
To be fair Intel has done a lot of work to make the x86 as great as possible. Patent lawsuits are awful. I'm not sure just copying someone's technology and emulating it without paying a license fee is all that great either.

My guess is this is all just negotiation from Microsoft's point of view and they are just trying to get Intel to license the ability to emulate x86.

Another possibility is this is a way to get Intel to invest more resources ( even at a loss) into competing with ARM.

[+] Deinos|8 years ago|reply
The article mentions Cyrix as a "victim" of Intel patent defense; however, Cyrix not only won their lawsuits, but they also went after Intel for patent violations in the Pentium Pro and Pentium II processors.

https://en.wikipedia.org/wiki/Cyrix

http://law.justia.com/cases/federal/district-courts/FSupp/84...

[+] std_throwaway|8 years ago|reply
You can win a lawsuit and still lose so much time and money on the way that you are worse off afterwards.

Vice versa you can cause your opponents so much trouble with lawsuits that - even though you don't win them - you are better off than them afterwards.

[+] B1FF_PSUVM|8 years ago|reply
"If we are victorious in one more battle with the Romans, we shall be utterly ruined", as someone once remarked.
[+] amalcon|8 years ago|reply
Years ago, I spoke with an attorney with a CS background. He had once worked on a case like this. Sharp guy. He didn't tell me the parties involved, and I didn't ask, though I assume he wouldn't speak openly about it while it was ongoing. I therefore don't know how it turned out. It was many years ago, so I might be remembering wrong. I'm not a lawyer, this is not legal advice (neither mine nor his).

Basically, there are two approaches the plaintiff might take here. The simplest is to cite the doctrine of equivalents[1]. This is basically the notion that if you do the same thing in the same way for the same purpose, then it's the same process, even though you are using digital instructions instead of logic gates. The legal theory here is pretty well settled. The problem is that you'd need to justify that digital instructions are obviously equivalent to logic gates, and a skilled professional would have equated them at the time of the patent's filing.

The other approach is to argue that an emulator actually is a processor, and therefore fits the literal claims of the patent. The explanation for this is pretty well-established: it's literally the Church-Turing Thesis[2]. However, the viability of this argument depends on the language of the patent claims. Also, it's hard enough to explain the C-T Thesis to CS students. My undergrad had an entire 1-credit-equivalent course that basically just covered this and the decidability problem. Explaining it to a judge, who (while likely highly intelligent) probably has no CS background, over the course of litigation is likely to be really hard.

Now, Intel certainly has enough resources to do both of these things (and they may also have precedent to cite, that didn't exist back then or that wasn't relevant to that case). Don't take this as an opinion on any possible result, it's just information such as I remember it.

[1]- https://en.wikipedia.org/wiki/Doctrine_of_equivalents [2]- https://en.wikipedia.org/wiki/Church%E2%80%93Turing_thesis

[+] ouid|8 years ago|reply
if it's Church Turing you're arguing, then Intel surely doesn't hold the patent on the whole equivalence class...
[+] Asooka|8 years ago|reply
What if it doesn't emulate x86 on the fly, but reassembles the binary for the target architecture? This obviously won't work in many cases, but should be fine for run-of-the-mill business software, which is what Microsoft is mostly targeting.
[+] kakarot|8 years ago|reply
One has to wonder why this approach hasn't been successful in litigation against game console emulator developers.
[+] it__guy|8 years ago|reply
> Explaining it to a judge, who (while likely highly intelligent) probably has no CS background, over the course of litigation is likely to be really hard.

Unless the case is presided by Judge Alsup, who learnt to write Java programs during Oracle v. Google.

[+] natch|8 years ago|reply
Patents expire after 17 years and x86 is 39 years old, so any of the original patents must have expired twice over already.

They no doubt have been filing additional patents over the years. But I'm sure MS and Qualcomm have plenty of their own patents to bargain with.

Also their warning could backfire if it gives Microsoft one more reason to finally walk away from x86 compatibility... not that this is likely to happen anytime soon.

[+] dctoedt|8 years ago|reply
> Patents expire after 17 years

That's under the old law. Nowadays, for patents that issue from original applications filed on or after June 8, 1995, it's 20 years from the earliest filing date upon which priority is claimed (possibly extended to account for delays in the USPTO). [0]

AFAIK, most foreign countries follow the same rule — which is significant, because when one big company sues another for patent infringement, it will usually file parallel lawsuits in every country where (A) the plaintiff owns a patent and (B) the defendant sells the infringing product.

[0] https://en.wikipedia.org/wiki/Term_of_patent_in_the_United_S...

[+] aidenn0|8 years ago|reply
TFA specifically mentions SSE, AVX, TSX, and SGX. All of those have had new features added in the last year or two.
[+] markrages|8 years ago|reply
> their warning could backfire if it gives Microsoft one more reason to finally walk away from x86 compatibility

Emulation is an important part of walking away, no? Microsoft cares about backwards compatibility above anything else.

[+] wfunction|8 years ago|reply
Can someone explain this:

> AMD made SSE2 a mandatory part of its 64-bit AMD64 extension, which means that virtually every chip that's been sold over the last decade or more will include SSE2 support. [...] That's a problem, because the SSE family is also new enough—the various SSE extensions were introduced between 1999 and 2007—that any patents covering it will still be in force.

AMD64 requires SSE2 which was introduced in 2001, right? So isn't it just 1 year until Microsoft can put in what's required for the AMD64 architecture?

[+] mrpippy|8 years ago|reply
Worth noting that Microsoft's emulator is only emulating x86, not AMD64 (at least not yet)
[+] faragon|8 years ago|reply
Intel will not threat Microsoft, not even indirectly, in my opinion. Rationale: once Apple starts shipping desktops and laptops with ARM chips, the only safe port for the expensive x86 chips would be Microsoft (desktop and server market) and big iron on Linux/Unix/Hypervisors.
[+] AstralStorm|8 years ago|reply
So they will ban all virtual machines which sometimes have to go for emulation, e.g. to handle XSAVE?

Scorched earth policy will likely not be defensible under fair use law. Reverse engineering for compatibility has a few precedents.

[+] pgeorgi|8 years ago|reply
Patents may be selectively enforced, there's no forfeiture as there is with trademarks.

Intel had (and has) no issue with qemu or bochs emulating everything, as long as they were niche and/or promoting the Intel platform (and grudgingly accepting compatibles).

However a move to rid Microsoft's platform from Intel altogether without compromising compatibility is something worth fighting for. I heard that ARM is rather similar in that aspect: emulators for development are a-ok, but trying to run ARM emulation on a consumer product with no ARM components inside will drive up the legal fees until some licensing agreement is set up.

[+] yuhong|8 years ago|reply
We are talking about patents.
[+] nerpderp83|8 years ago|reply
Well, since x86 is a monopoly ... Intel oughta go easy on this one.
[+] wyldfire|8 years ago|reply
Intel would argue (semi-sanely) that there's no monopoly on CPUs. You can make your own mips, arm, it even Risc-V CPUs.

Also that they cross license x86 with competitors.

[+] CamperBob2|8 years ago|reply
The whole idea behind patents is that they are legal monopolies backed up with guns.
[+] blazespin|8 years ago|reply
Really? How many people do you know that own a Smartphone that runs Intel?
[+] killin_dan|8 years ago|reply
I was thinking the same thing.

Intel is gonna get its shit pushed in one way or the other on this, and I'm gonna watch it happen with a big smile on my face.

Patents will not stop the march of progress.

[+] ikeboy|8 years ago|reply
> And Intel's business health continues to have a strong dependence on Microsoft's business, which has to make the chip firm a little wary of taking the software company (or its customers) to court.

I mean, Apple and Samsung had a billion dollar lawsuit while Samsung chips were still in iPhones. It's certainly precedented to sue a corporation you're actively doing business with.

[+] pmarreck|8 years ago|reply
I would personally be pleased if the millstone of the x86 instruction set sank both Intel AND microsoft's hegemony.
[+] orionblastar|8 years ago|reply
I remember IBM having a contract with Intel to allow other chip companies to make x86 chips in case Intel could not keep up with demand.

QEMU emulates X86 chips as does other emulators. I wonder how those are effected?

[+] matt_wulfeck|8 years ago|reply
AFAIK white box emulation has been around forever. I'd be surprised if it isn't already worked out in the courts, since this has been happening since before computers were around.
[+] jonstokes|8 years ago|reply
Alright, I'll come out of retirement to hit this dead horse another lick.

"if WinARM can run Wintel software but still offer lower prices, better battery life, lower weight, or similar, Intel's dominance of the laptop space is no longer assured."

Peter. My man. I laughed. I cried.

For the millionth time, the ARM ISA does not magically confer any sort of performance or efficiency advantage, at least not that matters in the billion+ transistor SoC regime. (I will include some relevant links to ancient articles of mine about magical ARM performance elves later.) ARM processors are more power efficient because they do less work per unit time. Once they're as performant as x86, they'll be operating in roughly the same power envelope. (Spare the Geekbench scores... I can't even. I have ancient published rants about that, too).

Anyway, given that all of this is the case, it is preposterous to imagine that an ARM processor that's running emulated(!!!) x86 code will be at anything but a serious performance/watt disadvantage over a comparable x86 part.

This brings me to another point: Transmeta didn't die because of patents. Transmeta died because "let's run x86 in emulation" is not a long-term business plan, for anybody. It sucks. I have ancient published rants on this topic, too, but the nutshell is that when you run code in emulation, you have to take up a bunch of cache space and bus bandwidth with the translated code, and those two things are extremely important for performance. You just can't be translating code and then stashing it in valuable close-to-the-decoder memory and/or shuffling it around the memory hierarchy without taking a major hit.

So to recap, x86 emulation on ARM is not a threat to Intel's performance/watt proposition -- not even a little teensy bit in any universe where the present laws of physics apply. To think otherwise is to believe untrue and magical things about ISAs.

HOWEVER, x86-on-ARM via emulation could still be a threat to Intel in a world where, despite its disadvantages, it's still Good Enough to be worth doing for systems integrators who would love to stop propping up Intel's fat fat fat margins and jump over to the much cheaper (i.e. non-monopoly) ARM world. Microsoft, Apple, and pretty much anybody who's sick of paying Intel's markup on CPUs (by which I mean, they'd rather charge the same price and pocket that money themselves) would like to be able to say sayonara to x86.

The ARM smart device world looks mighty good, because there are a bunch of places where you can buy ARM parts, and prices (and ARM vendor margins) are low. It's paradise compared to x86 land, from a unit cost perspective.

Finally, I'll end on a political note. It has been an eternity since there was a real anti-trust action taken against a major industry. Look at the amount of consolidation across various industries that has gone totally uncontested in the past 20 years. In our present political environment, an anti-trust action over x86 lock-in just isn't a realistic possibility, no matter how egregious the situation gets.

So Intel is very much in a position to fight as dirty as they need to in order to prevent systems integrators from moving to ARM and using emulation as a bridge. I read this blog post of theirs in that light -- they're putting everyone on notice that the old days of antitrust fears are long gone (for airlines, pharma, telecom... everybody, really), so they're going to move to protect their business accordingly.

Edit: forgot the links. In previous comments on exactly this issue I've included multiple, but here's a good one and I'll leave it at that: https://arstechnica.com/business/2011/02/nvidia-30-and-the-r...

[+] int_19h|8 years ago|reply
You seem to be assuming that the scenario here is that the system will mostly run x86 code in emulation. But it's not the case - on mobile devices, most of the time it will run native ARM code, and most of the time that code will be the browser. Then, of course, most apps from Windows Store will also be native ARM. Emulation is there for that occasional desktop app that users need - and which made Windows RT non-viable - but which they don't actually use all the time. It's the 20% case, and if that 20% uses as much (or even more) power as a native Intel device, that's perfectly acceptable.
[+] dTal|8 years ago|reply
Nobody said anything about performance/watt. It doesn't have to be more efficient. It only has to draw less power, most of the time. And most of the time you're staring at a computer screen, you're not asking it to do anything - you're reading, or thinking about what to type next. So idle power is the most relevant predictor of battery life for a mobile chipset. And ARM definitely has the advantage there.

As well as weighing less and being cheaper. So there's no call for laughing and crying.

[+] ksec|8 years ago|reply
You missed the price point of ARM SOC which is many times cheaper then Intel's offering.
[+] dboreham|8 years ago|reply
Logically this implies that I can't execute some i386 binary that I possess without infringing Intel patents.

I think this theory of infringement has to run into various thought-experiment problems such as : can I auto-translate that binary into some other instruction set, then execute the translated binary, without infringing Intel patents? (yes, surely) Is the translator now infringing Intel patents because it has to understand their ISA? (no, surely).

Now, can I incorporate that translator into my OS such that it can now execute i386 binaries by translating them to my new instruction set which I can execute either directly or by emulation? If so then I am now not infringing. Or did infringement suddenly manifest because I combined two non-infringing things (translator + emulator for my own translated ISA)?

[+] payne92|8 years ago|reply
It will be interesting to see how this strategy fares in the US, given the Alice ruling which made it much harder to patent methods that were purely software.

Intel's strategy of going after other hardware companies may not translate neatly to emulators.

[+] make3|8 years ago|reply
How did I not already know Microsoft had a working x86 emulator.. this is a massive game changer for the laptop space if it's fast and reliable enough, as afaik ARM chips are so much more power efficient for similar perf
[+] zeta0134|8 years ago|reply
There are several existing and excellent x86 emulators floating around. In the open source space, QEMU is quite fantastic and well supported. I'm not surprised at all that Microsoft managed to either develop one in house, or acquire one.

x86 is an old and very well understood architecture at this point. The difficulty thus isn't in writing a working emulator, it's in figuring out which features you can support from a business perspective without treading on still active patents. Microsoft is one of the few companies that can probably absorb a patent fight here and come out on top, and if they succeed, it will counter-intuitively threaten the continued dominance of x86. Once they can release an ARM-based version of Windows that sports backwards compatibility (the primary missing feature that caused Windows RT to fail spectacularly) more mobile machines will be free to use ARM chips, and software developers will have incentives to natively support ARM targets for power efficiency reasons.

Since Intel banks on x86 continuing to be the dominant architecture in the desktop and laptop space, they must feel threatened by this move, so the suit doesn't surprise me. They'll now be fighting an uphill battle. On the one hand, Intel processors are still pretty much king in raw performance, but on the other hand, very few consumers actually need the kind of performance that you can only get on Intel chips anymore. A decent web browser runs on just about anything, so an architecture shift in the consumer space is quite plausible. Some could argue that it's already happened with tablets.

[+] sliken|8 years ago|reply
Keep in mind the most relevant instruction set is the X86-64 instruction set (32 bit code is not very relevant these days). The x86-64 ISA was created by AMD, not Intel. Intel was busy trying to milk the enterprise market with the Itanium, trying to reserve 64 bit as an enterprise feature.
[+] netheril96|8 years ago|reply
That is not true on Windows, where most software is either 32 bit only, or both 32 and 64 bit. In fact, for many software on Windows, the 64 bit port is considered beta versions.