嗨,各位好,小弟近期在閱讀文章的時候發現自己的觀念並不是很完全,故想上來請教板
友。
依照這篇文章的說法:
http://technews.tw/2015/09/08/the-risc-v-instruction-set-architecture/
在IOT市場,ISA是需要用授權金買的。
因小弟我本身是FW,依照我對ISA的了解,不就是"該架構的組語指令集"嗎? 像我現在在寫
microchip的PIC device,spec裡面就有一個章節專門在詳細說明該架構的ISA
如圖: https://imgur.com/a/6X1gu
裡面詳細說明了各個指令會對硬體做什麼事,理論上看完這個章節就能用組語寫出自己要
的功能了。
那既然這樣,是不是代表說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的方塊圖為例子
圖: https://imgur.com/a/jzMpD
然後組語指令集指的是implementation.
如果以上的假設(x86與ARM不開放組語指令集)正確,那為什麼IoT開發者不用C寫就好了?一
定要用組語寫嗎? C的本意不就是因為組語開發速度過慢而產生出來的產物嗎?
x86與ARM的產商一定會提供compiler,再用該廠商的compiler把C轉成assembly code不就
好了嗎? 換句話說,就算x86與ARM不開放ISA,還是可以用他們的晶片寫程式阿~頂多花錢
買好一點的compiler(廠商一定會把compiler分成免費版跟付費版的,像Microchip就是個
例子)不就好了?
請各位版上大大開釋~感恩