3

I asked a general question on Law SE with one example (ARM) and for that example, I was directed to What exactly does ARM sell to vendors?. I've read that QA that ARM sells actual core designs.

I've read about RISC-V and ARM on Wikipedia and some other "blogs". "Experts" claim RISC-V is royalty-free architecture, but ARM is not. Can anybody "freely" build a chip to process e.g. ARM v9 instruction sets? If not, are instruction sets patented and/or maybe copyrighted too?

From one point of view, I see instruction sets descriptions as computer language (as Python) and Python use is royalty-free. However, in The never-ending story of X86 patents expiration:

Some of the old pieces of the x86 architecture patent already expired. Virtually every chip that’s been sold over the last decade or more will include SSE2 support as AMD made SSE2 a mandatory part of its 64-bit AMD64 extension. That’s a problem because the SSE family is also new enough—the various SSE extensions were introduced around 2001. Any patents covering SSE2 will still be in force. SSE3 is even more recent. Not to mention the fused multiply and add operation used on by all current OS which has an Intel patent valid until 2026.

"fused multiply and add operation used on by all current OS" - operations look to me as part instruction set, so looks as they can be patented.

Purple Lady
  • 134
  • 7
Martian2020
  • 217
  • 2
  • 7
  • 2
    I dare say you can copy the architecture but in order to make it compatible with ‘real’ ARM devices you might end up violating a patent or two. That is where the problem is. So at best, you can only make it ‘ARM like’. – Kartman Sep 16 '21 at 07:22
  • @Kartman, "compatible with ‘real’ ARM devices" - do you mean like put AMD processor in a PC that thas Intel and it won't fit the connectors on the motherboard though both x86? – Martian2020 Sep 16 '21 at 09:11
  • 1
    Compatible as in able to run the same code and operate identically. – Kartman Sep 16 '21 at 14:35
  • @Kartman, to run a code it needs to be loaded and then after run results need to be taken out to be useful (it is part of operation, right?). I guess no problems with running but problems with patents could arise on communication part? – Martian2020 Sep 17 '21 at 03:51
  • @Martian2020 the problem arises with software. Developers need to know the instruction set your processor supports to develop applications. So you can't use ARM ISA in your processor without the knowledge of ARM Ltd. ARM will sue you if you build a processor compliant with ARM ISA without a license from them. – Shashank V M Nov 05 '21 at 07:51

1 Answers1

2

Note that the scope of this question should be bounded for you to get an answer. We can't talk about all of ARM, x86, etc. in one answer. There are plenty of Instruction sets. So, my answer is limited to Power, ARM, RISC-V and x86. Just to make sure we are on the same page, I will also include a brief discussion of Instruction set in this answer.

What is an Instruction Set?

An Instruction set is a set of instructions that an ISA (Instruction Set Architecture) compliant processor should implement at the hardware level. Programming languages are hardware agnostic, with the exception of Assembly language. Assembly language is just a specification on how to translate assembly code to machine code.

A programming language exists to enable cross architecture software development, i.e. write once and compile for different ISAs. ISAs enable you to reduce development effort of a processor, because there will be a good ecosystem of software and compilers available for a supported ISA. A processor without software is useless. Compilers and software can also be optimized to take advantage of that processor's strength. With the ISA you do get a good starting point to build a CPU, and this shortens your time-to-market, which is a very important metric in the consumer electronics industry. You can think of the ISA as giving you an ecosystem of software and compilers for your processor.

It is also noteworthy that the Instruction set architecture is exactly what enables technologies like cross-platform compilation, x86 emulation on ARM and vice versa.

ARM

ARM sells Intellectual Property (processor cores and other hardware in a digital format) to customers; and they also license their architecture (instruction set) to customers for a fee.

Power

Developed by IBM, this was a proprietary ISA that was later open-sourced, and is maintained by The OpenPOWER Foundation.

RISC-V

RISC-V is open-sourced from the start. You can build and sell your own RISC-V processors without paying anything to RISC-V. You have to pay RISC-V if you want to use the RISC-V logo when marketing your processor.

x86

x86 was somewhat harder to analyze about its licensing aspects, so take it from Intel: https://newsroom.intel.com/editorials/x86-approaching-40-still-going-strong/

The Protecting x86 ISA Innovation section in the above article says it all.

Shashank V M
  • 2,279
  • 13
  • 47
  • 1
    "Some x86 and x86-64 ISA instructions are patented, so you can't use them without obtaining a license." (not aggressively) do you have a source for this? By "use" to you mean write a program which contains them, or instead to implement them in hardware? – Keeley Hoek Nov 05 '21 at 07:55
  • @KeeleyHoek I have edited it to clarify on what is meant by use. I don't have a different source about x86, I assumed the one in the question – Shashank V M Nov 05 '21 at 08:14
  • 1
    @KeeleyHoek I added a new section on x86, backed by a source from Intel's website. – Shashank V M Nov 05 '21 at 08:46
  • seems to me you set the scope, but have not answered the question. E.g. on Python I write i=a+b to add two variables. Say for ABC ISA command is 0001 01 02 03 where 0001 is add, 01, 02 and 03 are registers. Why Python is free to use but using 0001 01 02 03 is not? Free to use AFAIK one can write a program on Python, one can write a compiler / interpreter for Python. – Martian2020 Nov 06 '21 at 02:40
  • 1
    @Martian2020 0001 01 02 03 is perfectly free to use. What you can't do is make a new processor that implements that instruction set. – Hearth Nov 06 '21 at 05:06
  • @Martian2020 your original question was "Can anybody "freely" build a chip to process e.g. ARM v9 instruction sets?" and I have answered that. Python is an open-source language. This does not imply that all computer languages have to be open-source. MATLAB is one example of a programming language that is proprietary. While you (might) be able to write your own assembler without running into any legal issues, the same is not true for building a processor that implements a proprietary instruction set. – Shashank V M Nov 06 '21 at 05:09
  • I asked the question a while ago. Now I re-googled and answers are: it depends on the country. Part of the question is "If not, are instruction sets patented and/or maybe copyrighted too?". You hinted it is not, but have not provided info why so, even on the level whether it is patented or copyrighted. The question was not due to no understanding what ISA is. – Martian2020 Nov 06 '21 at 10:48