ver 0.2

前言
本文将介绍一下虚拟化的基础知识,硬件体系的架构。敲敲黑板复习一下虚拟化的核心思想: 将硬件资源在空间和时间两个维度进行分割变成易用的形式供上层软件使用。那么首先就要清楚的到底啥是硬件资源,这些硬件资源是怎么联系在一起的,这就是本文要说明的硬件体系的架构。下面章节会介绍典型的基于aarch64的soc的系统架构,然后围绕soc的架构逐步阐述总线、以及各个子系统的作用。
这部分的内容偏向底层,如果之前一点硬件的基础没有读起来可能会有些费劲,但是还是希望大家坚持住,冲出自己的舒适区才能真正的提高自己。
正文
1. AArch64体系架构
1.1 SOC
主板结构
先介绍一个基础的概念soc,全称叫做:System-on-a-Chip,中⽂的的意思就是“把系统都做在⼀个芯⽚上”。我们使用的智能手机的主板上就有soc,它集成了很多⼿机上最关键的部件,⽐如CPU、GPU、内存、也就说虽然它在主板上的存在是⼀个芯⽚,但是它⾥边可是由很多部件封装组成的。⽐如通常我们所说的⾼通888、麒麟950、三星的exynos 4412、A6等等都只是系统部件打包封装(SoC)后的总称。然而各家的打包封装的内容则不尽相同,原因也不尽相同。随着芯⽚的集成化程度提升,很多模块都做到芯⽚的内部,这样做成的⽚上系统(SoC),好处是整个系统功能更内聚,板级⾯积会减少,但是芯⽚的体积却越来越⼤。
先看一下主板的样子,如图1-1所示。这个板子基本上就是一个比较成熟的板子了,经过软硬件测试,外面扣上壳字,加上散热系统,连上摄像头,连上屏幕就可以工作了。那我们的soc在哪里,就是那个“Qualcomm”的小片子。

SOC架构
这个soc可不是通常意义上大家理解的CPU而是一个功能集合的单元,来看一段对8155的介绍。
SA8155是Qualcomm® Snapdragon™新一代为汽车娱乐系统打造的SoC芯片,SoC集成LTE模组。使用的是7nm的制程工艺工艺,超性能和低功能完成结合的车载芯片。SA8155包含如下主要的元器件: 485 CPU \ 640 GPU \ 696 DSP \ 图像处理引擎 \ VPU \ DPU \ NPU \ 定位套装 \ 低功耗LPDDR4X \ X24 LTE Modem.
基于 Arm Cortex 技术的 Qualcomm® Kryo™ 485 CPU
Qualcomm® Adreno™ 640 GPU 提供最高的图形性能和能效
Qualcomm® Hexagon™ 696 DSP,带有四路 Hexagon Vector eXtensions (HVX) 处理器
Qualcomm® Spectra™ 380 图像处理引擎
Adreno 554 VPU 用于高质量、超高清视频编码和解码
Adreno 895 DPU 支持超高清多显示器
Qualcomm® NPU130 神经处理单元,用于高性能机器学习用例
Qualcomm® 定位套件,支持 GPS、GLONASS、北斗、伽利略和 QZSS 系统
四个 16 位高速 LPDDR4X SDRAM,具有可选的低功耗特性
集成 Snapdragon X24 LTE 调制解调器,Cat20 下载速度高达 2.0 Gbps
除了CPU和内存外,上面提到的每一个设备(xPU & xDSP)都是硬件资源,都要被虚拟化。我们来看一下8155的内部的block图,如图1-2所示。可以看到Processors(PE or CPU)只是这个SOC上的一个sub芯片。

总线架构
那这个SOC上的设备是怎么关联到一起的,要通过一组线链接起来才能工作,而且根据不同的设备的特点连接的这每一组线要有功能的规范才能够协同工作,在SOC设计的领域总线也有成熟的架构,而ARM系列芯片采用的就是高级微控制器总线架构(Advanced Microcontroller Bus Architecture, AMBA),如图1-3所示就是一组典型的基于AAarch64的Soc的总线拓扑架构。

AMBA是用于ARM架构下系统芯片(SoC)设计中的一种总线架构,由安谋国际科技于1996年开发,它在超大规模集成电路设计中有着重要的作用,准确的说AMBA应该是一个协议族,具体如下:
AMBA (Advanced Microcontroller Bus Architecture) 高级处理器总线架构
AHB (Advanced High-performance Bus) 高级高性能总线
ASB (Advanced System Bus) 高级系统总线
APB (Advanced Peripheral Bus) 高级外围总线
AXI (Advanced eXtensible Interface) 高级可拓展接口
按照AMBA协议规范,SOC上的设备通过硬件总线连接到了一起(主要是连到了Soc中的大脑CPU上),上电后在OS的作用下SOC就可以工作了。下面引用一段ARM官方文档对于AMBA总线的介绍。
The Advanced Microcontroller Bus Architecture, or AMBA, is an open-standard, on-chip interconnect specification for the connection and management of functional blocks in system-on-a-chip (SoC) designs. Essentially, AMBA protocols define how functional blocks communicate with each other.
到这里,我们已经解决了各个设备物理链接的问题。注意,这只是从硬件视角看过去的拓扑,软件工程师是不会在这个总线拓扑上的各个节点的引脚上去发送高低点评信号。底层软件工程师会使用封装好的指令根据手册继续封装服务向上层提供功能。对于上层的软件工程师来说,这个总线架构是透明的,但是要让各个模块有序的配合工作又不能按照总线架构去做软件设计,肯定就有软件层面的架构去把各个设备绑到一起,这个模型就是内存模型,后面会讲到。
1.2 CPU架构
我们了解了SOC架构,总线架构之后,下面就要讲一下CPU的架构了,CPU是虚拟化技术要虚拟的核心组件,肯定要了解一下它的内部结构和工作的原理。
先看一个基于AArch64的SOC设计实例,如图1-4所示。“big and LITTLE processor cluste



被折叠的 条评论
为什么被折叠?



