1.4.2 龙芯1B处理器架构
现在,重新看图1.4。从图中,可以很直观地看到该处理器内集成了大量的外设。准确来讲,应该将外设称为外设控制器,这是因为这些外设控制器需要连接到具体的外部设备,以控制这些外部设备的工作状态。计算机中所说的外设通常是指外设控制器。而对于具体的外设来说,它需要通过外设控制器才能与CPU打交道,这一点要特别注意。因为外设控制器与CPU核集成在一个芯片中,因此将这些外设控制器简称为片内外设。
1.Arm AMBA简介
读者从图1.4给出的内部结构中可以看到AXI和APB这样的缩写,它们是Arm公司的高级微控制器总线结构(Advanced Microcontroller Bus Architecture,AMBA)规范的一部分。该规范定义了处理器(大脑)访问外设控制器和存储器系统的方式。
读者肯定要问,为什么采用Arm公司的AMBA作为1B处理器芯片内处理器核和外设,以及外部存储器系统的连接标准呢?这是因为在龙芯的1B处理器内会使用到别人已经设计好的模块,如外设控制器和存储器控制器,我们经常把这些模块称作知识产权(Intellectual Properity,IP)核,简称IP核。这些IP核通常由三大EDA工具厂商(包括Synopsys、Cadence和Mentor公司)来设计并提供(通常需要付费)。这里需要注意,不是随便拿一个设计好的电子模块就能称为IP核,它必须符合IEEE 1685-2014标准,该标准为IEEE IPXACT标准,规定了工具流程中封装、集成和重用IP的标准结构。这些EDA工具厂商的IP核采用了Arm公司的AMBA规范。AMBA中的高级外设总线(Advanced peripheral Bus,APB)规定了CPU核与存储器映射的低速外设之间通信的规范,AMBA中的高级高性能总线(Advanced High-performance Bus,AHB)规定了CPU核与存储器映射的高速外设之间的通信规范。AMBA中的高级可扩展接口(Advanced Extensible Interface,AXI)是一种基于开关架构的规范,用于处理器和外部设备(包括存储器系统)的更高级互联。
2.芯片内的分层结构
龙芯1B芯片内部互联分层架构的构成如下所示。
(1)第一级互联通过AXI XBAR实现。在该互联结构中,CPU核、显示控制器(Display Controller,DC)、DDR控制器,以及AXI-MUX连接到3×3的AXI XBAR上。需要注意,在该级互联结构中,以开关的方式连接这些功能部件。与传统的使用共享总线连接多个功能设备不一样的是,当以开关的方式连接这些功能部件时,不会降低系统的吞吐量,并且开关连接在其两个端口上的功能部件可以进行直接互相访问。
简单来说,第一级互联结构用于连接“大脑”和“存储器”系统,以及与外设进行数据交互的唯一通道AXI-MUX。也就是说,CPU核与龙芯1B芯片内所有的片上外设进行数据交换的唯一通道就是AXI-MUX。
(2)第二级互联结构的中心是中央AXI-MUX。两个千兆以太网控制器GMAC0和GMAC1、两个第二级AXI-MUX(AXI-MUX-1和AXI-MUX-2)、APB接口以及USB控制器连接到中央AXI-MUX。在该结构中,提供了除XBAR性能外的最高吞吐量。
需要注意,通过XBAR的从设备端口,以及中央AXI-MUX的主设备端口将XBAR和中央AXI-MUX连接在一起。
注:在这个结构中,需要搞清楚1B芯片中设备的主从关系。在该芯片中,CPU核和DMA是两个主设备,而其他单元都是从设备。
(3)第三级互联是通过与中央AXI-MUX连接的AXI-MUX-1和AXI-MUX-2,以及AXI-APB接口为中心的互联。
① 通过AXI-MUX-1,DMA开关连接到中央AXI-MUX。在DMA开关下,连接了3个DMA控制器,即DMA0、DMA1和DMA2。通过AXI-MUX的主设备端口与DMA开关的从设备端口,将AXI-MUX-1和DMA开关连接在一起。
② 通过AXI-MUX-2,CONF模块和两个SPI控制器SPI0与SPI1连接到中央AXIMUX。通过中央AXI-MUX从设备端口和AXI-MUX-2的从设备端口,将中央AXI-MUX和AXI-MUX-2连接在一起。
③ APB接口。通过中央AXI-MUX的主设备端口和APB的从设备端口,将APB连接到中央AXI-MUX。
通过APB接口,将低速片上外设控制器(包括6个UART、1个AC97控制器、2个CAN控制器、1个NAND Flash控制器、1个RTC控制器,以及3个IIC控制器)连接到处理器系统中。
思考与练习1-13:从图1.4可知,龙芯1B处理器芯片的处理器核与各种外设的连接采用的是Arm公司的________。
思考与练习1-14:简要说明Arm公司的AMBA规范中APB实现的功能、AHB实现的功能、AXI实现的功能。
思考与练习1-15:从图1.4可知,龙芯1B处理器芯片内部采用了________级互联结构。与传统采用共享总线的方式相比,第一级互联结构采用开关结构的优势。
思考与练习1-16:根据图1.4给出的内部结构,互联结构从上到下,吞吐量是逐渐________(降低/升高)。
注:本书中的所有内容就是围绕着这个互联结构展开的,包括CPU核的内部架构、指令集、存储器系统、总线规范,以及片上外设的原理。