计算机体系架构初步入门

🎬个人简介:一个全栈工程师的升级之路!

📋个人专栏:高性能(HPC)开发基础教程

🎀CSDN主页 发狂的小花

🌄人生秘诀:学习的本质就是极致重复!

目录

[1 计算机五大组成](#1 计算机五大组成)

[1.1 CPU](#1.1 CPU)

[1.1.1 CPU的核心](#1.1.1 CPU的核心)

[1.2 CPU工作原理](#1.2 CPU工作原理)

[2 计算机存储体系结构](#2 计算机存储体系结构)

[2.1 存储层次](#2.1 存储层次)

[2.2 CPU访问各个存储系统的访问时间](#2.2 CPU访问各个存储系统的访问时间)


1 计算机五大组成

控制器,是计算机的控制系统;

运算器,是计算机的运算系统,Alu;

存储器,是计算机存储系统,内存、硬盘;

输入设备,是向计算机输入数据和信息的设备,包括键盘、鼠标、摄像头、触摸屏等;

输出设备,包括显示器、音响、打印机等。

cpu=控制器+运算器

电子计算机三大核心部件就是CPU、内部存储器、输入/输出设备。中央处理器的功效主要为处理指令、执行操作、控制时间、处理数据。

1.1 CPU

中央处理器(Central Processing Unit,简称CPU)作为计算机系统运算和控制核心,是信息处理、程序运行的最终执行单元。CPU自产生以来,在逻辑结构运行效率以及功能外延上取得了巨大发展。

1.1.1 CPU的核心

运算器

运算器是指计算机中进行各种算术和逻辑运算操作的部件, 其中算术逻辑单元是中央处理核心的部分。

(1)算术逻辑单元(ALU)。算术逻辑单元是指能实现多组 算术运算与逻辑运算的组合逻辑电路,其是中央处理中的重要组成部分。算术逻辑单元的运算主要是进行二位元算术运算,如加法、减法、乘法。在运算过程中,算术逻辑单元主要是以计算机指令集中执行算术与逻辑操作,通常来说,ALU能够发挥直接读入读出的作用,具体体现在处理器控制器、内存及输入输出设备等方面,输入输出是建立在总线的基础上实施。输入指令包含一 个指令字,其中包括操作码、格式码等。 [2]

(2)中间寄存器IR)。其长度为 128 位,其通过操作数来决定实际长度。IR 在"进栈并取数"指令中发挥重要作用,在执行该指令过程中,将ACC的内容发送于IR,之后将操作数取到ACC,后将IR内容进栈。

(3)运算累加器ACC)。当前的寄存器一般都是单累加器,其长度为128位。对于ACC来说,可以将它看成可变长的累加器。在叙述指令过程中,ACC长度的表示一般都是将ACS的值作为依据,而ACS长度与 ACC 长度有着直接联系,ACS长度的加倍或减半也可以看作ACC长度加倍或减半。

(4)描述字寄存器(DR)。其主要应用于存放与修改描述字中。DR的长度为64位,为了简化数据结构处理,使用描述字发挥重要作用。

(5)B寄存器。其在指令的修改中发挥重要作用,B 寄存器长度为32位,在修改地址过程中能保存地址修改量,主存地址只能用描述字进行修改。指向数组中的第一个元素就是描述字, 因此,访问数组中的其它元素应当需要用修改量。对于数组成员来说,其是由大小一样的数据或者大小相同的元素组成的,且连续存储,常见的访问方式为向量描述字,因为向量描述字中的地址为字节地址,所以,在进行换算过程中,首先应当进行基本地址 的相加。对于换算工作来说,主要是由硬件自动实现,在这个过程中尤其要注意对齐,以免越出数组界限。

控制器

控制器是指按照预定顺序改变主电路或控制电路的接线和 改变电路中电阻值来控制电动机的启动、调速、制动与反向的主令装置。控制器由程序状态寄存器PSR,系统状态寄存器SSR, 程序计数器PC,指令寄存器等组成,其作为"决策机构",主要任务就是发布命令,发挥着整个计算机系统操作的协调与指挥作用。 控制的分类主要包括两种,分别为组合逻辑控制器、微程序控制器,两个部分都有各自的优点与不足。其中组合逻辑控制器结构相对较复杂,但优点是速度较快;微程序控制器设计的结构简单,但在修改一条机器指令功能中,需对微程序的全部重编。

1.2 CPU工作原理

冯诺依曼体系结构是现代计算机的基础。在该体系结构下,程序数据统一存储指令数据需要从同一存储空间存取,经由同一总线传输,无法重叠执行。根据冯诺依曼体系,CPU的工作分为以下 5 个阶段:取指令阶段、指令译码阶段、执行指令阶段、访存取数和结果写回。

取指令(IF,instruction fetch),即将一条指令从主存储器中取到指令寄存器的过程。程序计数器中的数值,用来指示当前指令在主存中的位置。当一条指令被取出后,程序计数器(PC)中的数值将根据指令字长度自动递增。

指令译码阶段(ID,instruction decode),取出指令后,指令译码器按照预定的指令格式,对取回的指令进行拆分和解释,识别区分出不同的指令类别以及各种获取操作数的方法。现代CISC处理器会将拆分已提高并行率和效率。

执行指令阶段(EX,execute),具体实现指令的功能。CPU的不同部分被连接起来,以执行所需的操作。

访存取数阶段(MEM,memory),根据指令需要访问主存、读取操作数,CPU得到操作数在主存中的地址,并从主存中读取该操作数用于运算。部分指令不需要访问主存,则可以跳过该阶段。

结果写回阶段(WB,write back),作为最后一个阶段,结果写回阶段把执行指令阶段的运行结果数据"写回"到某种存储形式。结果数据一般会被写到CPU的内部寄存器中,以便被后续的指令快速地存取;许多指令还会改变程序状态字寄存器中标志位的状态,这些标志位标识着不同的操作结果,可被用来影响程序的动作。

在指令执行完毕、结果数据写回之后,若无意外事件(如结果溢出等)发生,计算机就从程序计数器中取得下一条指令地址,开始新一轮的循环,下一个指令周期将顺序取出下一条指令。 许多复杂的CPU可以一次提取多个指令解码,并且同时执行。

2 计算机存储体系结构

2.1 存储层次

存储器是分层次的,离CPU越近的存储器,速度越快,每字节的成本越高,同时容量也因此越小。寄存器速度最快,离CPU最近,成本最高,所以个数容量有限,其次是高速缓存(缓存也是分级,有L1,L2等缓存),再次是主存(普通内存),再次是本地磁盘。

如下:CPU->L1 Cache(L1 D-cache,L1 I-Cache)->L2 Cache->L3 Cache

空间越来越大,价格越来越便宜,速度越越慢,如何提高Cache命中率是性能优化的重要指标

比如我的PC的L1 Cache:32k -> L2 Cache:256k -> L3 Cache:8192k

2.2 CPU访问各个存储系统的访问时间

🌈我的分享也就到此结束啦🌈

如果我的分享也能对你有帮助,那就太好了!

若有不足,还请大家多多指正,我们一起学习交流!

📢未来的富豪们:点赞👍→收藏⭐→关注🔍,如果能评论下就太惊喜了!

感谢大家的观看和支持!最后,☺祝愿大家每天有钱赚!!!欢迎关注、关注!

相关推荐
Ajiang28247353041 小时前
对于C++中stack和queue的认识以及priority_queue的模拟实现
开发语言·c++
网易独家音乐人Mike Zhou5 小时前
【卡尔曼滤波】数据预测Prediction观测器的理论推导及应用 C语言、Python实现(Kalman Filter)
c语言·python·单片机·物联网·算法·嵌入式·iot
工业甲酰苯胺5 小时前
Redis性能优化的18招
数据库·redis·性能优化
‘’林花谢了春红‘’6 小时前
C++ list (链表)容器
c++·链表·list
搬砖的小码农_Sky7 小时前
C语言:数组
c语言·数据结构
机器视觉知识推荐、就业指导7 小时前
C++设计模式:建造者模式(Builder) 房屋建造案例
c++
Yang.999 小时前
基于Windows系统用C++做一个点名工具
c++·windows·sql·visual studio code·sqlite3
熬夜学编程的小王9 小时前
【初阶数据结构篇】双向链表的实现(赋源码)
数据结构·c++·链表·双向链表
zz40_9 小时前
C++自己写类 和 运算符重载函数
c++