指令集當然有專利了,要不然當年搞x64的時候,Intel也不用那麽偷偷摸摸去學AMD了,當年Intel為了這事賠了AMD12.5億美元(包括其它的交叉專利授權):
詳訊:英特爾支付12.5億美元與AMD達成和解Intel to pay AMD $1.25 billion in antitrust settlement
在x64 wiki詞條裏有這麽一句:
Intel licenses to AMD the right to use the original x86 architecture (upon which AMD's x86-64 is based). [80] [81] In 2009, AMD and Intel settled several lawsuits and cross-licensing disagreements, extending their cross-licensing agreements. [82] [83]指令集中有專利的部份包括:
1. 指令的名字,比如MOV/SYSENTER等,這些泛指指令集的某個大塊或者某個子集,單單抄一個MOV不算侵權(需要評估)。
2. 指令集的尋址方式等,比如MOV EAX, [ESI+imm],Intel手冊裏有講具體有多少種直接、間接尋址方式,單抄一個可能不算,大規模復制肯定算侵權。
3. 指令集的二進制編碼方式,比如寄存器如何編址、尋址方式如何編址等,但不包含單個op code的值。
4. 公開的控制寄存器(位)的使用方式。
不在專利範圍內的包括:
1. 具體某條指令的實作,比如SYSENTER指令背後的動作(註:AMD/Intel實作是不太一樣的)。
2. 未公開的寄存器(位)的使用。
3. 某個指令的op code的值。
以上只是指令集這一塊,你以為只實作了指令集,你的CPU就能相容Windows、Linux了?太天真了吧。ACPI怎麽實作?APIC怎麽實作?這些玩意都是專利保護的,沒有這些東西,只有一個CPU,作業系統根本跑不起來,連DOS都不行。
龍芯當年的規避策略是:
1. 不公開指令的名字,比如你叫LD,那我叫MOV好了。
2. 不公開寄存器編制方式,其實這是侵權的,但不公開就不好查。
好在龍芯是MIPS平台,中斷控制器這些東西不需要依賴x86的這套技術,跑個Linux自然沒問題,但在x86上根本行不通。
有x86授權的包括Intel、AMD、VIA三家。指令集跟效能無關。