- Linux設備驅(qū)動開發(fā)詳解:基于最新的Linux4.0內(nèi)核
- 宋寶華
- 1047字
- 2018-12-31 20:25:18
2.1 處理器
2.1.1 通用處理器
目前主流的通用處理器(GPP)多采用SoC(片上系統(tǒng))的芯片設計方法,集成了各種功能模塊,每一種功能都是由硬件描述語言設計程序,然后在SoC內(nèi)由電路實現(xiàn)的。在SoC中,每一個模塊不是一個已經(jīng)設計成熟的ASIC器件,而是利用芯片的一部分資源去實現(xiàn)某種傳統(tǒng)的功能,將各種組件采用類似搭積木的方法組合在一起。
ARM內(nèi)核的設計技術(shù)被授權(quán)給數(shù)百家半導體廠商,做成不同的SoC芯片。ARM的功耗很低,在當今最活躍的無線局域網(wǎng)、3G、手機終端、手持設備、有線網(wǎng)絡通信設備等中應用非常廣泛。至本書編寫時,市面上絕大多數(shù)智能手機、平板電腦都使用ARM SoC作為主控芯片。很多ARM主控芯片的集成度非常高,除了集成多核ARM以外,還可能集成圖形處理器、視頻編解碼器、浮點協(xié)處理器、GPS、WiFi、藍牙、基帶、Camera等一系列功能。比如,高通的Snapdragon 810就集成了如圖2.1所示的各種模塊。

圖2.1 ARM SoC范例:Snapdragon 810
主流的ARM移動處理芯片供應商包括高通(Qualcomm)、三星(Samsung)、英偉達(Nvidia)、美滿(Marvell)、聯(lián)發(fā)科(MTK)、海思(HiSilicon)、展訊(Spreadtrum)等。德州儀器(TI)、博通(Broadcom)則已淡出手機芯片業(yè)務。
中央處理器的體系結(jié)構(gòu)可以分為兩類,一類為馮·諾依曼結(jié)構(gòu),另一類為哈佛結(jié)構(gòu)。Intel公司的中央處理器、ARM的ARM7、MIPS公司的MIPS處理器采用了馮·諾依曼結(jié)構(gòu);而AVR、ARM9、ARM10、ARM11以及Cortex A系列等則采用了哈佛結(jié)構(gòu)。
馮·諾依曼結(jié)構(gòu)也稱普林斯頓結(jié)構(gòu),是一種將程序指令存儲器和數(shù)據(jù)存儲器合并在一起的存儲器結(jié)構(gòu)。程序指令存儲地址和數(shù)據(jù)存儲地址指向同一個存儲器的不同物理位置,因此程序指令和數(shù)據(jù)的寬度相同。而哈佛結(jié)構(gòu)將程序指令和數(shù)據(jù)分開存儲,指令和數(shù)據(jù)可以有不同的數(shù)據(jù)寬度。此外,哈佛結(jié)構(gòu)還采用了獨立的程序總線和數(shù)據(jù)總線,分別作為CPU與每個存儲器之間的專用通信路徑,具有較高的執(zhí)行效率。圖2.2描述了馮·諾依曼結(jié)構(gòu)和哈佛結(jié)構(gòu)的區(qū)別。

圖2.2 馮·諾依曼結(jié)構(gòu)與哈佛結(jié)構(gòu)
許多芯片采用的是如圖2.3所示的改進的哈佛架構(gòu),它具有獨立的地址總線和數(shù)據(jù)總線,兩條總線由程序存儲器和數(shù)據(jù)存儲器分時共用。因此,改進的哈佛結(jié)構(gòu)針對程序和數(shù)據(jù),其實沒有獨立的總線,而是使用公用數(shù)據(jù)總線來完成程序存儲模塊或數(shù)據(jù)存儲模塊與CPU之間的數(shù)據(jù)傳輸,公用的地址總線來尋址程序和數(shù)據(jù)。

圖2.3 改進的哈佛結(jié)構(gòu)
從指令集的角度來講,中央處理器也可以分為兩類,即RISC(精簡指令集計算機)和CISC(復雜指令集計算機)。CSIC強調(diào)增強指令的能力、減少目標代碼的數(shù)量,但是指令復雜,指令周期長;而RISC強調(diào)盡量減少指令集、指令單周期執(zhí)行,但是目標代碼會更大。ARM、MIPS、PowerPC等CPU內(nèi)核都采用了RISC指令集。目前,RISC和CSIC兩者的融合非常明顯。
- 構(gòu)建高可用Linux服務器(第4版)
- Extending Puppet
- 嵌入式Linux驅(qū)動程序和系統(tǒng)開發(fā)實例精講
- 巧學活用Windows 7
- 嵌入式系統(tǒng)及其應用(第三版)
- Dreamweaver CS5.5 Mobile and Web Development with HTML5,CSS3,and jQuery
- Kali Linux高級滲透測試
- Red Hat Enterprise Linux 6.4網(wǎng)絡操作系統(tǒng)詳解
- Hands-On GPU Programming with Python and CUDA
- 完美應用Ubuntu(第2版)
- VMware Horizon Mirage Essentials
- OpenStack Essentials(Second Edition)
- Less Web Development Essentials
- 15分鐘!畫出我的漫畫角色:賣萌篇
- Responsive Web Design with AngularJS