计算机体系结构简析

计算机体系结构指计算机基本组成及工作原理,当前主要有冯诺依曼结构和哈弗结构两大阵营,冯诺依曼结构主要应用于计算机领域,哈弗体系结构主要应用于移动设备和嵌入式设备领域。理解计算机体系结构是掌握计算机工作原理的基础,本文主要对冯诺依曼结构和哈弗结构的特点及其区别作简要分析。

一、冯诺依曼结构

参考MOOC教学视频:https://www.icourse163.org/course/PKU-1205809805

1.结构特点

冯·诺依曼结构也称作普林斯顿结构,是一种将程序和数据存放在同一存储器不同地址的设计概念,其核心特点如下:

  • 计算机由运算器、控制器、存储器、输入和输出设备五个部分组成
  • 数据和程序均以二进制代码形式不加区分地存放在存储器中,具体位置由存储器地址决定
  • 顺序执行程序,即计算机工作时,先把要执行的程序和处理的数据存入存储器 (内存),然后自动并按顺序从存储器中取出指令逐一执行

冯诺依曼结构基本部件如下所示:
在这里插入图片描述
冯诺依曼结构中除了运算器、控制器、存储器、输入设备、输出设备五大部件以外,还有一类特殊的部件:外部记录介质R (Outside Recording Medium),这类部件可以静态存储计算机所需要的信息,这些部件共同构成了现代计算机的主体部分。这种设计概念一致沿用至今,现代计算机的组成框架也是遵循冯诺依曼体系结构组建的。

在计算机的发展过程中元件的晶体管数目按摩尔定律递增,集成程度和制作工艺不断提高,计算机主板大体结构也发生了一定变化,下图是早期计算机主板结构,其中CPU对应冯诺依曼结构中的运算器和控制器,内存 (主存) 对应存储器,键盘、显示器、显卡、鼠标等对应I/O设备,而硬盘、BIOS芯片则属于外部记录介质,为I/O设备提供信息以及提供信息记录的介质。
在这里插入图片描述
早期计算机主板上离CPU最近放置着北桥芯片,其内部集成了内存控制器、pcie控制器等,连接着内存、显卡、南桥芯片等核心组件,带宽要求高,用于处理高速信号,而远离CPU位置放置着南桥芯片,连接着键盘、鼠标、硬盘、音响等I/O设备,用于处理低速信号。

随着计算机的发展,CPU对访问内存、显卡的速度大幅提升,这样北桥中的PCIe控制器、内存控制器以及集成显卡全部集成在了CPU中,北桥不复存在,南桥芯片更名为PCH (Intel, Platform Controller Hub),如下图所示:
在这里插入图片描述
如果进一步的集成,将内存、显卡以及各类I/O模块接口全部集成在一个芯片中,这类设计概念称为SOC (System On a Chip),即在一个芯片中集成了计算机组成的几乎所有部件,SOC广泛应用在移动设备、手机、嵌入式芯片等领域。

2. 指令执行过程

CPU一个指令周期执行分为取指、译码、执行、回写等4个步骤,下面以冯诺依曼结构为基础,描述一个指令周期中CPU的工作,如下图所示:

  • 取指:控制器首先将PC中的地址数据传递给存储器地址寄存器MAR,MAR再将数据传递到外部地址总线,同时控制器通过控制总线向存储器发出读的指令,这样存储器就会将外部总线传递的数据保存到存储器中的MAR,然后根据MAR传递的地址数据取出相应的指令数据,暂存到存储器中的数据寄存器MDR,MDR将数据传递到外部数据总线上,同时控制逻辑返回Ready信号,收到Ready信号后控制器会将数据总线上准备好的数据保存到CPU的MDR,MDR再将数据传递给指令寄存器IR,最后PC加上取出指令的长度,指向下一个指令地址;
  • 译码:译码器从IR中取出指令并对指令进行解释,这里假设指令为ADD R0,[5]
  • 执行:R0中的值传递到X寄存器,然后把存储器地址为5中的数据取出传递到Y寄存器,取数据的过程和取指过程相同,ALU计算后将结果放置在Z寄存器中,同时将进位结果放置在FLAG寄存器;
  • 回写:控制器将Z寄存器中的数值通过总线传递给R0,一个指令周期执行完成。

请添加图片描述注意:上图中的MAR、MDR、IR、X、Y、Z等寄存器对程序员是透明的,程序员不能直接对其进行操作,这也是为什么我们在学习汇编语言时没有涉及到这类寄存器,但它们在CPU内核中实际存在,并担负着重要的作用。

3.优缺点分析

(1) 优点

由于数据和指令共用一块存储器,这样便于修改指令,程序升级方便;数据区和指令区的大小可以灵活变化,提高内存运行效率;只使用一套总线也节约了硬件成本,程序控制简单。基于此冯诺依曼结构十分适用于多任务多程序的计算机CPU。

(2) 缺点

冯诺依曼体系结构的瓶颈在于CPU和内存两者运算速度的差异,也就是说无论CPU速度有多快,也要等内存处理完指令后再执行下一条指令,因为它们共用一套外部系统总线,随着CPU和内存之间的性能差距越来越大,这种瓶颈约束也越为突出。目前主要的解决办法一种是并行执行,另一种是增加多级缓存。另外,由于数据和指令共用一块存储器,指令容易被数据覆盖篡改,这也带来一定安全隐患。

二、哈弗结构

1.结构特点

哈弗结构是一种将数据和指令存放在两个不同存储器的设计概念结构,其核心特点如下:

  • 使用两个独立的存储器模块,分别存储指令和数据,每个存储模块都不允许指令和数据并存
  • 使用独立的两套总线 (每套总线都有一个地址总线和一个数据总线,共四条),分别作为CPU与每个存储器之间的专用通信路径,而这两条总线之间毫无关联

在这里插入图片描述

2.优缺点分析

(1) 优点

采用两套完全独立的总线设计结构,使得指令可以流水线并发执行,提高了运行效率;程序和数据存储器独立分开,指令没有被非法输入数据覆盖的风险,更加安全。

(2) 缺点

由于数据和指令存放在两个不同存储器,不易于修改程序,软件不好升级;数据区和指令区大小固定,空间利用率不高;两套总线设计增加了硬件成本,指令控制也更加复杂。

三、改进型哈弗结构

1.结构特点

哈弗结构可以很好解决并行执行命令的问题,但是严重浪费总线资源,为平衡性能与成本、复杂度等因素,改进型的哈佛结构(Modified Harvard architecture) 应运而生,改进型哈弗结构在哈弗结构的基础上对总线进行了合并,即把两个存储器的地址总线合并了,数据总线也进行了合并,即原来的哈佛结构需要4条互不关联的总线,改进后只需要两条总线,地址总线和数据总线由程序存储器和数据存储器分时共用,特点如下:

  • 使用两个独立的存储器模块,分别存储指令和数据,每个存储模块都不允许指令和数据并存,以便实现并行处理
  • 具有一条独立的地址总线和一条独立的数据总线,利用公用地址总线访问两个存储模块(程序存储模块和数据存储模块),公用数据总线则被用来完成程序存储模块或数据存储模块与CPU之间的数据传输;
  • 两条总线由程序存储器和数据存储器分时共用

在这里插入图片描述

2.现代CPU结构

现代CPU依托CACHE的存在,已经很好的将冯诺依曼和哈弗结构的优势统一起来了,虽然外部总线上看是诺依曼结构的,但是由于内部CACHE的存在,因此实际上内部来看已经类似改进型哈佛结构的了。

具体地,CPU在其每个内核中设立了多级缓存,其中控制单元和运算单元直接访问的缓存为一级缓存 (Level 1 Cache),L1缓存又进一步分为L1指令缓存和L1数据缓存两部分,以Intel Core i9-9900K为例:CPU一共有8个核心,每个核心有32KB的一级数据缓存,32KB的一级指令缓存;每个核心有256KB的二级缓存,二级缓存存储器指令和数据空间就是共用的了,不再区分;每个核心还有一层16MB的三级缓存。这样CPU从一级缓存的角度看属于改进型哈弗结构,而一级缓存之上以及在CPU外部仍然是冯诺依曼结构。

  • 11
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值