【教程/笔记】计算机组成原理第一章

发布于:2025-04-07 ⋅ 阅读:(21) ⋅ 点赞:(0)

笔者在学习湖科大计算机组成原理时做的笔记:链接

尽可能的将up所讲的知识点补充到了这篇博客中,建议先学习操作系统,不过直接看也可以。

下面的黑色标题对应的是视频的每一p。

计算机的组成

计算机系统是由硬件系统和软件系统组成。

硬件是由构成计算机系统的各种物理装置的总称,如:cpu,显卡,内存,硬盘,显示器等等。

只有硬件的计算机没有什么价值,在硬件上运行软件才能让计算机发挥作用,硬件又分为主机和外设,软件划分为系统软件和应用软件。

系统软件是为管理整个计算机系统所编写的程序,应用软件是为了实现用户程序所编制的各种程序。比如qq微信,王者荣耀就是应用软件,操作系统内核里一些东西就是系统软件。

这门课主要是学习硬件,计算机的性能主要取决与硬件和软件功能的总和。

下面是一道练习题

选B。

计算机的发展

感觉没什么好写的。。感兴趣就看看视频吧,不影响后面学习。

计算机硬件

计算机硬件由运算器,控制器,存储器,输入输出设备构成。

冯诺依曼计算机:程序的指令和数据用二进制表示,放在存储器里面,按地址访问他们。指令一般是按顺序存放,顺序执行,指令由操作码和地址码组成。操作码表示执行什么操作(加减乘除等),地址码表示操作位于存储器哪个位置的数据。

上图的实线为数据线,虚线为控制线和反馈线。

控制器和其他四个都有虚线,因为其他的部件都是通过控制器来协调工作,控制器通过控制线发送控制信号,命令其他部件执行对应的任务,其他部件又通过反馈线将自身状态和任务的完成情况反馈给控制器。

冯诺依曼计算机是以运算器为中心的,看上面的图,每次输入输出操作都需要运算器的参与,很浪费时间。所有现代计算机一般以存储器为中心,可以让io设备直接与存储器交换数据

输入设备是将人们熟悉的信息形式转换为计算机能够识别的形式,比如键盘,鼠标,摄像头。

输出设备是将计算机的运算结果转换为人们熟悉的信息形式,比如显示屏,打印机。

存储器分为主存储器和辅助存储器。主存储器又叫内存,就是我们说的内存条,用来存放程序和数据。辅助存储器又叫外存,比如机械硬盘和固态硬盘。必须先将数据放在内存里才能被cpu执行。

运算器的核心是算术逻辑单元,ALU。主要进行算数和逻辑运算,比如加减乘除,与或非。

控制器的核心是控制单元,CEO。主要用于解释存储器中的指令,发出各种操作命令来执行指令。简单来说就是控制其他的设备。

运算器和控制器一般集成了同一个芯片上,运算器+控制器=中央处理器(cpu)

运算器和控制器里面还有一些叫做寄存器的东西,这些后面在说。

cpu+内存称为主机,输入输出设备称为io设备。io设备和外存又称为外部设备。这些硬件都由总线相连,之前说的数据线,控制线,反馈线都属于总线。

选c

选D

选D

选A

选B

计算机软件

这节没啥好说的

计算机系统的层次结构

计算机结构很复杂,所以我们对它进行分层。计算机系统的每一层都向上层提供一个接口,这一层的具体细节上层是不知道的,有点类似计算机网络。

从下到上一共六层。

1:逻辑电路层,这层是计算机硬件系统的底层,由逻辑门,寄存器等逻辑电路构成。

2:微程序层,他的基本思想是将一条机器指令编写成一段微程序,每个程序中又包含着一些指令,每一条指令又对应一个或者一些操作。有微程序的系统中,cpu内有一个控制存储器存放各种机器指令对应的微程序,当cpu执行机器指令的时候,会在控制存储器里寻找与该指令对应的微程序。找到后取出微程序中的指令来执行各种操作。

3:指令集体系结构也叫ISA,定义了一台具体的计算机,可以执行所有机器指令的集合,规定了每条机器指令应该做什么操作。计算机硬件执行机器语言程序的过程就是执行程序中所包含的机器指令的过程。

4:操作系统层,对软件和硬件资源进行管理

5:汇编语言层:每条汇编语言都对应一条机器指令。

6:高级语言层:编程人员无需掌握底层的技术细节,只用编写高级语言程序即可。

这门课主要学1-3层。

软件与硬件的等价性:在某些特定条件下,用软件实现的功能,硬件也能实现,反之亦然。

那么要实现某个功能用软件还是硬件呢?主要看场景看性价比,比如软件方面便于修改,硬件方面性能可能又更好,等等。

计算机的基本工作原理

这节是课程的概述,有点难,看不懂的先跳,后面都会讲的。

运算器里有ALU算数逻辑单元和3个寄存器,分别是累加器acc,乘商寄存器mq,操作数寄存器x

alu的功能是算数运算和逻辑运算,以加减乘除为例

加法:先将被加数送到acc里,再将加数送到x里,两者的和保存到acc里。(经过alu计算后)

减法:将被减数送到acc里,减数送到x里,两者的差保存到acc里。(经过alu计算后)

乘法:先将被乘数送到x里,将乘数送到mq里,alu计算后,乘积高位放到acc,低位放到mq。

除法:被除数放到acc,除数放到x,alu计算后,商放到mq,余数放到acc里。

主存储器:由存储体,存储器地址寄存器mar,存储器数据存储器mdr组成。

每个存储元件可以存0或1,所以每个存储单元就存储一串二进制信息。这个二进制信息称为存储字,信息的位数称为存储字长。

给每个存储单元编号,我们将这个编号称为存储单元的地址,通过地址我们可以访问存储单元的内容。比如我们从编号0到65535,一个65536个存储单元。如果用二进制来编号,一共需要16位,因为2^16=65536,同理也可以用16进制。

存储器地址寄存器mar用来存放存储单元的地址。cpu想访问某个存储单元时,先将这个存储单元的地址放到存储器地址寄存器mar中。

存储器数据寄存器mdr,用来存放从存储体的某个存储单元提取出的信息,或者准备往哪个存储单元存入的信息。

控制器中包括程序计数器pc,指令寄存器ir。

控制器工作的大致步骤:1,从主存中读取一条指令。2,分析指令,指出指令完成什么操作,找到操作数的地址。3,根据操作码和操作数的地址完成对应的操作。程序计数器pc存放当前想要执行的指令,pc和mar相通,pc会自动形成下一条要执行指令的地址。ir存当前的指令,ir的内容来自mdr

冯诺依曼计算机的思想算是指令和数据以二进制形式存放在存储器中,按地址访问。

计算机的性能指标

硬件对性能的影响,比如4090和5090。例如cpu的时钟频率决定cpu每秒可以执行的指令数量,内存带宽又影响数据读写的速率。

软件对性能的影响,比如操作系统的调度算法影响作业的效率等,比如火影忍者,王者荣耀,代码优化得不好就有人喷游戏很卡。

优化硬件强化计算和传输数据的能力,优化软件强化更好利用硬件资源的能力。

硬件的基本性能指标:机器字长,主存容量,吞吐量,响应时间。

硬件运算速度的性能指标:cpu时钟频率,时钟周期。

机器字长:cpu一次能处理的二进制数据的位数,越大精度越高。机器字长和alu的位数以及alu中通用寄存器的宽度相等。

主存容量:内存能够存多少信息,比如有m个存储单元,每个存储单元里有n个二进制位。用32g的电脑打游戏写代码体验往往比16g的好,因为内存条更大,访问磁盘的次数就减少了。访问内存的速度是比硬盘快的,一个游戏比如黑神话可能几十g,但电脑内存没那么大,为什么我们仍然可以玩游戏呢?因为借用了硬盘的力量,内存和磁盘不断的交换信息。

吞吐量:计算机系统在单位时间内能够处理的信息量cpu和内存条的强度对他有影响,不难看出。比如i9>i7的处理器

响应时间:从向计算机系统提交作业开始到系统完成作业为止所需的时间。又分为cpu执行时间和系统cpu执行时间,前者是执行用户程序花费的时间,后者是为了执行程序在操作系统层面上花费的时间。

gpt挺有意思的,可惜要钱。。草。。

cpu执行时间=指令数×每条指令的平均周期时间



网站公告

今日签到

点亮在社区的每一天
去签到