从零开始学ARM
上QQ阅读APP看书,第一时间看更新

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开发板硬件结构