计算机体系架构

冯诺依曼架构

我们编写的程序存储在哪里呢?CPU内部的结构其实很简单,除了ALU、控制单元、寄存器和少量Cache,根本没有多余的空间存放我们编写的代码,我们需要额外的存储器来存放我们编写的程序(指令序列)。存储器按照存储类型可分为易失性存储器和非易失性存储器。易失性存储器如SRAM、DDR SDRAM等,一般用作计算机的内部存储器,所以又被称为内存。这类存储器支持随机访问,CPU可以随机到它的任意地址去读写数据,访问非常方便,但缺点是断电后数据会立即消失,无法永久保存。非易失性存储器一般用作计算机的外部存储器,也被称为外存,如磁盘、Flash等。这类存储器支持数据的永久保存,断电后数据也不会消失,但缺点是不支持随机访问,读写速度也不如内存。为了兼顾存储和效率,计算机系统一般会采用内存+外存的存储结构:程序指令保存在诸如磁盘、NAND Flash、SD卡等外部存储器中,当程序运行时,相应的程序会首先加载到内存,然后CPU从内存一条一条地取指令、翻译指令和运行指令。计算机主要用来处理数据。我们编写的程序,除了指令,还有各种各样的数据。指令和数据都需要保存在存储器中,根据保存方式的不同,计算机可分为两种不同的架构:冯·诺依曼架构和哈弗架构。

​ 冯诺依曼架构

冯·诺依曼架构,也称为普林斯顿架构。采用冯·诺依曼架构的计算机,其特点是程序中的指令和数据混合存储,存储在同一块存储器上,如图所示。在冯·诺依曼架构的计算机中,程序中的指令和数据同时存放在同一个存储器的不同物理地址上,一般我们会把指令和数据存放到外存储器中。当程序运行时,再把这些指令和数据从外存储器加载到内存储器(内存储器支持随机访问并且访问速度快),冯·诺依曼架构的特点是结构简单,工程上容易实现,所以很多现代处理器都采用这种架构,如X86、ARM7、MIPS等。

哈弗架构

​ 哈弗架构

哈弗架构的特点是:指令和数据被分开独立存储,它们分别被存放到程序存储器和数据存储器。每个存储器都独立编址,独立访问,而且指令和数据可以在一个时钟周期内并行访问。使用哈弗架构的处理器运行效率更高,但缺点是CPU实现会更加复杂。8051系列的单片机采用的就是哈弗架构。

混合架构

随着处理器不断地更新换代,现在的CPU工作频率越来越高,很容易和内存RAM之间产生带宽问题:CPU的频率可以达到GHz级别,而对应的内存RAM一般工作在几百兆赫兹(目前的DDR4 SDRAM也能工作在GHz级别了)。CPU和RAM之间传输数据,要经过找地址、取数据、配置、等待、输出数据等多个时钟周期,内存带宽瓶颈会拖慢CPU的工作节奏,进而影响计算机系统的整体运行效率。为了减少内存瓶颈带来的影响,CPU引入了Cache机制:指令Cache和数据Cache,用来缓存数据和指令,提升计算机的运行效率。现代的ARM SoC芯片架构一般如图所示,SoC芯片内部的Cache层采用哈弗架构,集成了指令Cache和数据Cache。当CPU到RAM中读数据时,内存RAM不是一次只传输要读取的指定字节,而是一次缓存一批数据到Cache中,等下次CPU再去取指令和数据时,可以先到这两个Cache中看看要读取的数据是不是已经缓存到这里了,如果没有缓存命中,再到内存中读取。当CPU写数据到内存RAM时,也可以先把数据暂时写到Cache里,然后等待时机将Cache中的数据刷新到内存中。Cache缓存机制大大提高了CPU的访问效率,而SoC芯片外部则采用冯·诺依曼架构,工程实现简单。现代的计算机集合了这两种架构的优点,因此我们很难界定一款芯片到底是冯·诺依曼架构还是哈弗架构,我们就姑且称之为混合架构吧。

​ 混合架构

相关推荐
小筱在线1 小时前
使用SpringCloud构建可伸缩的微服务架构
spring cloud·微服务·架构
zheeez1 小时前
微服务注册中⼼2
java·微服务·nacos·架构
灰色孤星A2 小时前
分布式事务学习笔记(二)Seata架构、TC服务器部署、微服务集成Seata
分布式·微服务·架构·seata·分布式事务·tc服务器·微服务集成seata
MinIO官方账号3 小时前
从 HDFS 迁移到 MinIO 企业对象存储
人工智能·分布式·postgresql·架构·开源
hai405874 小时前
Spring Boot中的响应与分层解耦架构
spring boot·后端·架构
伯牙碎琴6 小时前
十一、SOA(SOA的具体设计模式)
架构
Karoku06614 小时前
【网站架构部署与优化】web服务与http协议
linux·运维·服务器·数据库·http·架构
Lill_bin17 小时前
深入理解ElasticSearch集群:架构、高可用性与数据一致性
大数据·分布式·elasticsearch·搜索引擎·zookeeper·架构·全文检索
zyhJhon17 小时前
软考架构-面向服务的架构风格
架构
nbsaas-boot17 小时前
微服务之间的安全通信
安全·微服务·架构