微处理器架构发展概述

宫新策 2018270101006

摘要

本文总结了现有的经典微处理器架构,包括冯诺依曼架构,哈佛架构等以及当前微处理器架构的不同应用,利用3A4000/3B4000系列处理器分析了现行常用微处理器架构,对未来的微处理器架构进行了展望,并对现有的几个发展方向进行了总结.

Abstract

This paper summarizes the existing classical microprocessor architecture, including von Neumann architecture, Harvard architecture and the different applications of the current microprocessor architecture, analyzes the current common microprocessor architecture by using the 3A4000/3B4000 series processors, looks forward to the future microprocessor architecture, and summarizes the existing development direction.

关键词: 微处理器架构;哈佛架构;FPGA;流水线处理

1.引言

微处理器(Microprocessor)是一种可编程的特殊集成电路,能够按照人为编写的程序来运行相应的任务.在一些地方也被称之为中央处理器(CPU).1微处理器本身有着其运行本身最为基础的结构,我们称之为微处理器的架构(Architecture),随着时代的发展,计算机的制造工艺经历了从电子管到晶体管再到集成电路的突破,但是微处理器本身的逻辑架构却没有太大的发展.本文对微处理器过去的架构发展进行总结,并展望未来可能的微处理器架构发展方向.
基于个人对微处理架构的理解,个人认为微处理器架构按照Pic1去进行构建

Pic1

Pic1暗示了不同的微架构如果使用了相同的指令集,那么他们应当是可以在一定程度上程序互用的.(好比C++编写的库对不同平台的兼容一般,只要有着相同的接口就可以进行兼容互换),而同样的微处理器架构(Architecture)可以用不同的微架构(MicroArchitecture)来实现

2.经典微处理器架构

2.1 冯诺依曼架构

2.1.1 冯诺依曼架构的组成

冯诺依曼架构被认为是目前最为广为流传的微处理器架构,他由冯诺依曼在1945年命名,大部分的PC都应用了这样的一款架构,本架构可以由Pic2表示其最为基本的架构组成2.

Pic2

这款架构最大的优势就是他结构较为简单,但是性能较差.
我们可以看到的是,冯诺依曼架构所采用的存储器的存储方式是指令存储和数据存储公用一个存储器,但是由于存储器本身与CPU的连接总线(BUS)只有一条,所以使得指令位宽和数据位宽必须一致.对于一个位宽为n比特(bit)时钟频率为fHz的总线来说,其理论最高总线速度Vbuss为:

对于冯诺依曼架构而言,由于我们的数据总线和指令总线公用,因此会造成这样的一个局面:如果需要节省资源,那么数据总线的宽度不够,速度不够;如果为数据总线开辟足够的宽度,那么对指令总线来说资源又过度的浪费.

2.1.2冯诺伊曼架构的时序

同时,冯诺依曼的时序设计使得冯诺依曼架构的处理器的每一个核心在进行指令和数据交换的时候是不能进行其他运算的,冯诺依曼的时序如Pic3所示.

Pic3

这种执行方式使得冯诺依曼架构的处理效率较低,后文我们会发现,现代的处理器已经在尝试使用冯诺依曼架构的外部存储器的优势和哈佛架构内部高效率的优势进行新处理器的设计.
这种方法在一定程度上优化了冯诺依曼架构在读取命令时无法进行数据处理的缺点,但是这种方式也使得在程序设计的时候变得更加的困难,程序的设计也会更加的复杂.需要严格的对时序进行约束,防止发生处理器请求还未获得到数据的情况.
值得一提的是,这种操作方式已经不能算作传统的冯诺依曼架构了,因为他其实是冯诺依曼架构和下文讲述的哈佛架构的一种组合优化.

2.2 哈佛架构

哈佛架构的运用相较于冯诺依曼架构来说并不是那么的广泛,他最大的优势是将处理器的数据存储和指令存储分离,这样我们就可以设定较大的数据总线宽度来获得高速的数据传输,同时可以设置较小的指令总线宽度来获得较高的硬件效率,当然也可以根据需要去对指令宽度和数据宽度进行不同程度上的定制.
需要注意的是,虽然本文介绍的时候将哈佛架构放在较靠后的位置进行介绍,但是实际上哈佛架构的出现是要早于冯诺依曼架构的,至少比这个词出现的要早.

2.2.1 哈佛架构的组成

与冯诺架构类似,哈佛架构也有基本的存储器,逻辑运算单元等组成,其基本的组成框图如Pic5所示3

Pic5

这种架构最大的特点就是指令存储器和数据存储器发生了分离,使得他可以有着较好的数据带宽,这种方式使得他能够在单指令时间内处理更多的数据,从而能够获得较强的处理能力.

2.2.2哈佛架构的时序

哈佛架构天生的性质使得他可以进行多线程的运算,可以通过流水线操作的方法来进行处理数据,一个典型的4流水的处理时序图如Pic4所示.

Pic4

2.2.2.1流水线操作可能遇到的问题

常见的流水线操作可能出现的问题有两种,分别是对寄存器的先读后写(RAW) 和对寄存器的 "写后写(WAW)"4,这两种操作都是不应当出现的操作.当然,流水线操作还会遇到包括结构冒险,控制冒险等问题,但这些不在本文的讨论范围之内.

2.3 改良哈佛架构

我们可以看到的是,原版的哈佛架构采用的是完全分离的数据总线和指令总线,这会使得我们在芯片设计时的成本提高.如果我们将数据总线和指令总线合二为一,那么可以减少我们的所需要的逻辑门的数目,进而减小我们所需要的晶圆面积.

2.3 现代处理器架构

我们以龙芯Loongson™的最新处理器3A4000/3B4000系列为例,3A4000/3B4000系列是基于GS464v微架构,兼容MIPS64指令集的一款处理器.需要说明的是,这款处理器并不是目前世界上性能最强大的处理器,也不是效能比最高的处理器,但是他的资料获取相对容易,同时其本身的结构并不是非常的落后5.
Alt text

Pic5

我们可以看到的是,最大的特点是核心数的增加,我们之前讨论的处理器架构仅仅正对单核心系统而言,多核心系统能够比较容易的提升性能.
同时我们可以看到的是,处理器中加入了Scache缓存,对于本处理器,采用的是4个共享缓存的方式,我们可以看到的是,缓存到核心的数据同类是一种非对称的数据通路,这种方式就可以起到优化数据总线和指令总线的效果,产生一种类似哈佛架构的高效性能.
我们在L2X的下面可以发现由MC0MC1,这是两个内存控制器,在这里我们所说的内存其实是板载的RAM,他就是一种整体架构呈现冯诺依曼架构的体现,使得内存有着更好的工业可实现的特性.
右侧的IO-RING就是一种与外部IO设备连接的通路了,在此不多解释.

2.4 现有微处理器架构总结

现有的微处理器架构看似百花齐放,实际上都脱不开冯诺依曼架构的特点,哈佛架构看起来像是一种全新的架构,倒不如说是冯诺依曼架构的高性能版,而冯诺依曼架构看似是一种低效的架构倒不如说是哈佛架构的廉价版.现代处理器比较愿意采用二者结合的形式,也就是对内层的高速缓存和处理核心来说,是高效的哈佛架构,但是封装起来之后我们看到的更像是一种冯诺依曼架构的体现.

2.4.1各架构的应用

冯诺依曼架构多用于个人PC领域,有着较好的兼容性和可替换性,而哈佛架构则多用于像DSP,单片机(例如Atmega®的AVR微架构)等任务专一的领域,有着较高的运行效率和指定任务下较强的性能.

3.未来处理器架构展望

3.1 可编程型外设

2010年著名的Xilinx®公司推出了Zynq-7000系列SoC,这款SoC配备了ARM®核心的处理器,并采用了Xilinx的7系FPGA作为可编程单元,二者通过片内的高速总线连接.而同样的,FPGA和处理器巨头Intel®也推出了与之类似的SoC.这种配备了可编程逻辑单元的SoC相较于原版的处理器,保留了同样较好的兼容性和可替换性,但是由可以通过对FPGA部分编程的定制化来极大的优化其对特定任务的处理能力.

3.2 数据流架构(Dataflow Architecture)

数据流架构是一种新型的处理器架构,目前尚且没有成熟的商用通用处理器基于这款架构.但是这款架构已经被用于包括神经网络加速等特性化的用途.
数据流架构不同于上文所提及的经典架构,他在概念上没有程序计数器,其运行的行为完全依赖于输入的程序和数据,其运行的行为是不可预测的6.
这种架构已经用于包括数字信号处理,神经网络加速等领域,并且都获得了较好的效果.

4.结束语

从最早期的ENIAC开始,研究者就一直想要提高微处理器的效率和速度.最开始提出的冯诺依曼架构是一个好用但不高效的架构,而哈佛架构是一种高效但比较难于开发的架构,后来研究者对这两种架构进行了组合,推出了现在常见的阵列架构,这种架构能够提高处理器性能和效率.对未来,微处理器的发展自然不是本文能完全总结发现的,但是我们相信的是,在某处不为人知的尚未探索之处,一定有着一个能够大幅提高微处理器效率和性能的架构存在.7

Reference

1.https://zh.wikipedia.org/wiki/%E5%BE%AE%E5%A4%84%E7%90%86%E5%99%A8
2.https://zh.wikipedia.org/wiki/%E5%86%AF%C2%B7%E8%AF%BA%E4%BC%8A%E6%9B%BC%E7%BB%93%E6%9E%84
3.https://zh.wikipedia.org/wiki/%E5%93%88%E4%BD%9B%E7%BB%93%E6%9E%84
4.https://zh.wikipedia.org/wiki/%E5%86%92%E9%99%A9_(%E8%AE%A1%E7%AE%97%E6%9C%BA%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84)
5.http://120.221.32.83:6510/www.loongson.cn/uploadfile/cpu/3A4000user.pdf
6.https://en.wikipedia.org/wiki/Dataflow_architecture
7.本文为个人数字电路课程作业

最后修改日期:2021年12月7日