※ 引述《zzss2003 (brotherD)》之銘言:
: 嗨,各位好,小弟近期在閱讀文章的時候發現自己的觀念並不是很完全,故想上來請教板
: 友。
: 依照這篇文章的說法:
: http://technews.tw/2015/09/08/the-risc-v-instruction-set-architecture/
: 在IOT市場,ISA是需要用授權金買的。
: 因小弟我本身是FW,依照我對ISA的了解,不就是"該架構的組語指令集"嗎? 像我現在在寫
: microchip的PIC device,spec裡面就有一個章節專門在詳細說明該架構的ISA
: 如圖:
: 裡面詳細說明了各個指令會對硬體做什麼事,理論上看完這個章節就能用組語寫出自己要
: 的功能了。
: 那既然這樣,是不是代表說x86與ARM不開放這些組語指令啊?如果要知道他們的組語指令還
: 要另外花錢買?
: 依照維基百科對ISA的定義: an ISA is an abstrcat model of a computer, it's also
: referred to as architecture or computer architecture. A realization of an ISA
: is called an implementation.
: 看完維基百科,怎麼覺得ISA是指device方塊圖啊?舉microchip的方塊圖為例子
: 圖:
: 然後組語指令集指的是implementation.
: 如果以上的假設(x86與ARM不開放組語指令集)正確,那為什麼IoT開發者不用C寫就好了?一
: 定要用組語寫嗎? C的本意不就是因為組語開發速度過慢而產生出來的產物嗎?
: x86與ARM的產商一定會提供compiler,再用該廠商的compiler把C轉成assembly code不就
: 好了嗎? 換句話說,就算x86與ARM不開放ISA,還是可以用他們的晶片寫程式阿~頂多花錢
: 買好一點的compiler(廠商一定會把compiler分成免費版跟付費版的,像Microchip就是個
: 例子)不就好了?
: 請各位版上大大開釋~感恩
ISA - instruction set architecture
主要的內容是指令集再加上 programmer's model
維基百科上的 implementation 指的是去實現指令集做出一個CPU
這樣的CPU在 維基百科有時叫做 micro architecture
舉例, Qualcomm 和 Apple 都付錢跟 Arm 買某版本的 ISA
市面上至少會有三種 implememtation(micro-architecture)- Qualcomm, Apple 和 Arm 自己的
這些CPU 都是基於同一份 ISA 做出來
所以在architecture level 是相容的
但是implementation 就各憑本事
license 價格 ISA>> IP(implementation)
Arm 大多數的指令集需要授權
你看到的是指令集的文件
文件只是要告訴你怎麼寫怎麼用