0. 處理器
簡單分類:
cpu也叫mpu - 微處理器或者中央處理單元,是電腦控制的核心,是控制的核心,同時可作為運算的核心,當然也可有其他的運算核心幫忙.
mcu也叫soc - 微控制器也叫片上系統,功能涵蓋了cpu等功能,同時晶片上整合了匯流排、外設、DMA等控制核心,也有rom和ram等運行必須的組件,不像cpu,需要串連好外圍的核心才能工作,mcu需要很少的無源元器件即可工作.
cpu或者soc的開發方法,目前為止趨向於IP核的整合,比如CPU核+GPU核+DMA核等等在一起互聯,設計成處理器.
處理器太多了,同時大家基本上叫上名字的都是處理器的名字:
s3c2440,s3c2410,s3c6410,at91sam9261,at91sam9263....
廠家包括:三星,ATMEL,高通......
1. 處理器IP核
通常說的ARM7,ARM9,ARM11等,都是處理器的IP名字,每種市面上的CPU,比如S3C2440之類的,都會對應一個處理器的IP核,這些核都是ARM授權的。當然,ARM9之類的名字可能包括多種處理器核心,比如ARM920T,ARM926ejs等。具體的ARM處理器IP核包括:
arm2', `arm250', `arm3', `arm6', `arm60', `arm600', `arm610', `arm620', `arm7', `arm7m', `arm7d', `arm7dm', `arm7di', `arm7dmi', `arm70', `arm700', `arm700i', `arm710', `arm710c', `arm7100', `arm7500', `arm7500fe', `arm7tdmi', `arm7tdmi-s', `arm8', `strongarm', `strongarm110', `strongarm1100', `arm8', `arm810', `arm9', `arm9e', `arm920', `arm920t', `arm922t', `arm946e-s', `arm966e-s', `arm968e-s', `arm926ej-s', `arm940t', `arm9tdmi', `arm10tdmi', `arm1020t', `arm1026ej-s', `arm10e', `arm1020e', `arm1022e', `arm1136j-s', `arm1136jf-s', `mpcore', `mpcorenovfp', `arm1176jz-s', `arm1176jzf-s', `xscale', `iwmmxt', `ep9312','cortex-A5', 'cortex-A8', 'cortex-A15'
等等,這些都是IP核的名字.有的廠家,會拿去ARM的IP核,自己修改和加強出新的IP核.
2. 體系架構
ARM 體繫結構是構建每個 ARM 處理器的基礎。ARM 體繫結構隨著時間的推移不斷髮展,其中包含的體繫結構功能可滿足不斷增長的新功能、高效能需求以及新興市場的需要。
體繫結構是對處理器的架構描述,包括:
- 統一寄存器檔案載入/儲存體繫結構,其中的資料處理操作只針對寄存器內容,並不直接針對記憶體內容。
- 簡單定址模式,所有載入/儲存地址只通過寄存器內容和指令欄位確定。
等等,體繫結構相對穩定,可能會適時的推出新的特性,同時體繫結構是相容的.不同的處理器IP核,可能實現了不同的體繫結構.ARM的體系架構包括:
`armv2', `armv2a', `armv3', `armv3m', `armv4', `armv4t', `armv5', `armv5t', `armv5te', `armv6', `armv6j', `iwmmxt', `ep9312'. armv7-a等。
3. 指令集
指令集實際上和體繫結構是相互對應的,指令集和體繫結構一樣,是不斷擴充的,同時保證了相容性。相應的體繫結構特徵,需要對應的指令去實現。體繫結構和指令集,可以在一起成為指令集架構,每個處理器IP核會實現特定的一種指令集架構.
ARM的指令集包括:ARM指令集,Thumb指令集.
4. 總結
市面上的CPU或者SOC,都是基於某IP核,這個IP核心實際上實現了一種指令集架構(體繫結構特性+特定指令集) .指令集架構決定了功能範圍,IP核決定了處理器效能,具體的CPU或者SOC決定了處理器的功能範圍.
舉個例子: S3C2440是個Soc,使用了ARM920T的處理器IP核,ARM920T核實現了ARMv4架構,支援支援32位ARM指令集和16位Thumb指令集.