什麼是指令集架構?
指令集架構(Instruction Set Architecture,縮寫為ISA),又稱指令集或指令集體系,是計算機體系結構中與程式設計有關的部分,包含了基本資料型別,指令集,暫存器,定址模式,儲存體系,中斷,異常處理以及外部I/O。指令集架構包含一系列的opcode即操作碼(機器語言),以及由特定處理器執行的基本命令。
常見的指令集架構:
複雜指令集運算(Complex Instruction Set Computing,CISC),比如x86架構精簡指令集運算(Reduced Instruction Set Computing,RISC),比如ARM架構x86架構和ARM架構x86架構學計算機組成原理的時候我們都學過,處理器由運算器、控制器、儲存器組成。其底層只是一些簡單的邏輯閘電路。我們先來了解一下intel 8086這款處理器。
Intel 8086處理器是由英特爾公司在1976年年初開始設計,1978年年中發表的Intel第一款16位微處理器。這款處理器所有的內部暫存器、內部及外部資料匯流排都是16位寬,因此是完全的16位微處理器。20位外部地址匯流排,因此物理定址空間為1MB (即2^20 = 1,048,576)。由於8086內部的地址暫存器是16位寬,因而最大線性定址空間為64KB,什麼是線性定址空間,我們將稍後給出解釋。使用超過64KB記憶體空間時,需要調整段暫存器(segment registers)。直到32位的80386出現之前,8086的這種段定址相當不便。這種分段定址模式,也就是我們後面要說的 真實模式。
x86架構即屬於上面說的複雜指令集,泛指一系列基於Intel 8086且向後相容的中央處理器指令集架構。指令集架構就相當於建造房屋的圖紙,指令集就是機器的語言。8086在三年後為IBM PC所選用,之後x86便成為了個人計算機的標準平臺,成為了歷來最成功的CPU架構。
後面我們也會看到Intel為了向前相容所做的努力,可能也正是這種努力才成就了英特爾,透過向前相容從而節省了龐大的人力和物力。如果不能保障向前相容,英特爾每釋出一款處理器,軟體開發人員早晚得累死在電腦前。同時,也正因為向前相容,阻礙了英特爾現在的發展, 某些方面才會被蘋果的M1吊打。
ARM架構ARM架構,稱作高階精簡指令集機器(Advanced RISC Machine),屬於上面說的精簡指令集架構,由安謀控股(ARM Holdings)開發,廣泛地使用在許多嵌入式系統設計中。ARM處理器非常適用於行動通訊領域,符合其主要設計目標為低成本、高效能、低耗電的特性。ARM處理器被廣泛使用在消費性電子產品。
ARM架構版本從ARMv3到ARMv7支援32位空間和32位算數運算,2011年釋出的ARMv8-A架構添加了對64位空間和64位算術運算的支援。ARM架構的蘋果M1晶片近期更是喧囂塵上,各種吊打Intel i9。
架構 |
處理器家族 |
ARMv1 |
ARM1 |
ARMv2 |
ARM2、ARM3 |
ARMv3 |
ARM6、ARM7 |
ARMv4 |
StrongARM、ARM7TDMI、ARM9TDMI |
ARMv5 |
ARM7EJ、ARM9E、ARM10E、XScale |
ARMv6 |
ARM11、ARM Cortex-M |
ARMv7 |
ARM Cortex-A、ARM Cortex-M、ARM Cortex-R |
ARMv8 |
Cortex-A35、Cortex-A50系列[14]、Cortex-A72、Cortex-A73 |
樹莓派就是一款基於ARM架構的微控制器電腦,樹莓派出生時即被寄予厚望:以低價硬體和自由軟體促進學校的基本計算機科學教育。你可以把它看作一塊移除了所有外設的主機板,區別是樹莓派提供了GPIO針腳,可以和各種感測器進行互動,具備操作硬體的能力。
基本硬體和佈局以樹莓派4B為例
樹莓派4b
CPU: 博通 Broadcom BCM2711,ARMv8架構 Cortex-A72核心 1.5GHz 四核心
記憶體: LPDDR4 1G/2G/4G/8G
GPIOGPIO(General-purpose input/output)通用型輸入輸出,透過此介面,樹莓派可以和豐富的硬體進行互動。
GPIO針腳佈局
樹莓派能做什麼如果樹莓派沒有GPIO介面,那它就只是一個普通的ARM架構的微型電腦。有了GPIO介面,那麼只有你想不到的,沒有它做不到的:最基本的作為伺服器、製作家庭影院、電視盒子等各種智慧裝置咱就不說了,接上各種各樣的感測器實現自動控制,DIY機器人、無人機、智慧小車等等。Golang和樹莓派究竟能碰撞出什麼火花,敬請持續關注。