官术网_书友最值得收藏!

1.3 SoC

SoC(片上系統)是指將計算機或其他電子系統集成到單一芯片的集成電路。SoC的集成規模很大,一般達到幾百萬門到幾千萬門,相對比較靈活,它可以將ARM架構的處理器與一些專用的外圍芯片集成到一起,組成一個系統。

從狹義角度講,SoC是信息系統核心的芯片集成,是將系統的關鍵部件集成在一塊芯片上;從廣義角度講,SoC是一個微小型系統,如果說中央處理器(CPU)是大腦,那么SoC就是包括大腦、心臟、眼睛和手等的系統。

SoC集成了很多設備最關鍵的部件,如CPU、GPU、內存,也就是說,它由很多部件封裝組成。例如,通常我們所說的高通驍龍888、麒麟950、三星的Exynos 4412等都是系統部件封裝后的總稱,然而各企業封裝的內容不盡相同。

圖1-29所示是一個典型的基于ARM架構的經典SoC的架構。

圖1-29 基于ARM架構的經典SoC的架構

一個基于ARM架構的經典SoC架構通常包含以下主要部件。

(1) ARM處理器核。

(2) 時鐘和復位控制器。

(3) 中斷控制器。

(4) ARM外圍設備。

(5) GPIO:通用輸入輸出。

(6) DMA Port:直接存儲器訪問端口。

(7)外部內存接口。

(8)片上RAM。

(9) AHB、APB總線。

ARM處理器核只有兩種中斷輸入,分別為nIRQ、nFIQ,基于中斷的外設數以百計,由中斷控制器來管理這些中斷。在外設內部,各組件通過芯片上的互聯總線相互連接,對于大多數基于ARM架構的設備,這就是標準的 AMBA互聯。

AMBA(高級微控制器總線體系結構)指定了兩個總線,分別為AHB(高級高性能總線)和APB(高級外設總線)。APB通常用于連接所有外設,AHB則用于連接存儲器和其他并發高速設備。

現有的ARM處理器,如Hisi-3507、Exynos 4412等都是SoC,尤其是應用處理器,它集成了許多外設,為執行復雜的任務提供了強大的支持。

SoC無法單獨運行操作系統,還需要借助大量的外設最終才能形成一個完整的系統。圖1-30所示為三星公司生產的Exynos 4412處理器,大部分復雜的硬件模塊已經集成到了這個SoC中,它利用32nm HKMG(高K金屬柵極技術)制程,支持雙通道LPDDR,主頻由266MHz提升至400MHz,整體性能比同時期的雙核處理器提升了60%,圖像處理能力提升了50%。

圖1-30 Exynos 4412處理器

和三星公司相同,其他和ARM公司合作的企業通常會把CPU和各類外設的IP核集成到一起,然后按照圖紙去流片(像流水線一樣,通過一系列工藝制造芯片),生產出來的芯片不僅包含CPU,還包含其他控制器,形成了一個完整的SoC。

各大廠商得到ARM公司的授權,獲得ARM處理器的源程序,然后購買或設計一些外設,它們組成一個SoC,最后去流片。不同的SoC架構不同(即CPU如何和IP核聯系起來,有的以總線為核心,有的以DDR為核心)。可是,無論任何企業如何改進自己的SoC,都不會更改CPU,ARM處理器就好好地待在那里。

學習ARM就必須深刻了解SoC架構,當我們得到一個新的SoC的數據,首先要查看SoC的RAM、時鐘頻率、外設的控制器、各個外設控制器的操作原理、各個外設對GPIO引腳的復用情況、各個控制器的地址、中斷控制器如何管理眾多中斷源等信息。官方提供的用戶手冊是我們學習ARM、編寫驅動程序的基石,該手冊內容比較多,我們并不需要每一章都掌握,用到哪個部分,我們就去學習即可。

2012年初,三星公司正式推出了自家的首款四核移動處理器—Exynos 4412。下面我們以該處理器為例,來講解這幾個概念。

(1)三星公司的Exynos 4412是一款基于Cortex-A9處理器的SoC。

(2) Exynos 4412包含了4個Cortex-A9的處理器(核)。

(3) Cortex-A9是基于ARMv7-A架構(指令集)的。

基于Exynos 4412的FS4412開發板硬件結構如圖1-31所示,其包含如下部分。

(1) 4個Cortex-A9處理器。

(2) 1MB的 L2 Cache。

(3) GIC:通用中斷控制器。

(4) 中斷控制器。

(5) NEON:ARM處理器的擴展結構,用于加速音/視頻的編/解碼,優化用戶界面。

(6) RAM控制器、DRAM控制器、NAND Flash控制器、SROM控制器等各種存儲設備的控制器。

(7) USB、I2C、SPI等總線接口。

(8) RTC:實時時鐘。

(9)看門狗。

(10)聲音子系統。

(11) IIS:集成語音接口。

(12)電源管理部件。

(13)一些外設元器件(LED、按鍵、傳感器、內存條、網卡等)。

(14)外接顯示器、鼠標、鍵盤、攝像頭、音響等。

圖1-31 FS4412開發板硬件結構

主站蜘蛛池模板: 新野县| 肇东市| 读书| 松原市| 茶陵县| 天镇县| 万盛区| 闽侯县| 神木县| 西乌珠穆沁旗| 山阴县| 长宁区| 阳信县| 灵山县| 敖汉旗| 崇阳县| 吴川市| 久治县| 巍山| 漠河县| 阿拉善盟| 伊通| 永川市| 曲水县| 永兴县| 邵阳市| 星座| 建阳市| 平乡县| 乐至县| 北流市| 莎车县| 汉中市| 循化| 循化| 蒙自县| 察雅县| 邯郸县| 商都县| 化州市| 确山县|