2024.05.30:计算机组成原理学习笔记
第一章 计算机系统概述
1.1 冯诺依曼机
计算机系统==硬件+软件
硬件:具体物理装置的总称
软件:运行在硬件上的程序和数据以及相关的文档
程序:指挥计算机如何操作的一个指令序列
数据:指令操作的对象
1.1.1 冯诺依曼机特征
- 采用“存储程序”工作特征
基本思想:我们要先把想要做的这个程序编好,再将这个程序和原始数据一起送入计算机的主存中(软件和程序想要运行必须先进入主存中去,计算机才可以运行里面的指令),一旦程序被启动执行之后,就不再需要操作人员的干涉。
- 计算机由运算器、控制器、存储器、输入设备、输出设备5个基本部件组成
流程图:
- 计算机内部以二进制形式表示指令和数据,形式上,数据和指令没有区别,但是计算机是可以区分他们的
1.2 系统的硬件组成
1.2.1 CPU中央处理器
整个计算机的核心部件,主要用于指令的执行
CPU包含数据通路和控制器两种基本部件
- 数据通路:主要包含算数逻辑部件和通用寄存器等,其功能是用来执行算术和逻辑运算等操作
- 控制器:用来对指令进行译码,生成相应的控制信号,以控制数据通路进行正确的操作
1.2.2 存储器
- 内存(主存)
-
- 内存作为一个临时的存储程序,在计算机执行程序时存放程序和数据
-
- 从逻辑上来看,存储器就像一个线性数组,每个存储单元都有其唯一的地址,这些地址是从0开始的
- 外存(辅存)
-
- 用于存储系统暂时用不到的数据,当系统运行时可以和主存交换这些数据
-
- 目前最主要的两种外存就是SSD固态硬盘和HDD机械硬盘,也叫磁盘
1.2.3 外设(I/O设备)
输入输出设备通常情况下是由两部分组成的(机械部分、电子部分),这两部分一般来说是分开的。
- 机械部分:外设本身
- 电子部分:I/O控制器或I/O适配器(统称设备控制器)
1.2.4 总线
计算机系统中传输信息的介质,用于在部件之间传输信息
1.3 计算机系统抽象层
重点体会这段话:计算机系统它是一个层次的结构,通过向上层用户提供一个抽象的、简洁的接口,从而将较低层次的实现细节隐藏起来。而计算机去解决一个实际问题的过程就是不同的抽象层一直进行转换
软件层:应用问题、算法、编程语言、操作系统/虚拟机
ISA
硬件层:微体系结构、功能部件/RTL、电路、器件
1.3.1 语言与翻译程序
- 高级语言:程序员进行程序设计使用的语言就是高级编程语言和底层计算机结构关联不大,是机器无关语言,这种语言是无法被计算机直接识别的
- 低级语言:和运行程序的计算机的底层结构密切相关,因此也称为机器级语言
-
- 机器语言:计算机唯一可以直接识别和运行的语言
-
- 汇编语言:用英文单词或及其缩写代替二进制的指令代码更容易记忆和理解
高级语言向低级语言的转化是计算机通过软件自动完成,这个软件就叫做程序设计语言处理系统,考试的重点在于该系统所包含的一个程序叫做翻译程序。除此之外,这个系统里面还会有集成开发环境,也就是大家熟悉的IDE
翻译程序能够把一种编程语言表示的程序转换成另一种等价的,但是用另一种编程语言表达的程序。
翻译程序有3种:编译程序(编译器)、汇编程序(汇编器)、解释程序(解释器)
- 编译程序(编译器):将高级语言翻译成汇编语言或机器语言。
- 汇编程序(汇编器):将汇编语言翻译成机器语言
- 解释程序(解释器):将源程序的语句按其执行顺序逐条翻译成机器指令并立即执行
1.3.2 计算机系统的不同用户
- 最终用户
最终用户:使用应用程序完成特定任务的计算机用户
最终用户只能感知到系统提供的简单的人机交换页面和安装在计算机中的相关应用程序。
- 系统管理员
利用操作系统等软件提供的功能对系统进行配置、管理和维护
系统管理员能感知到的是系统中部分硬件层面、系统管理层面以及相关的实用程序和人机交互页面
- 应用程序员
使用高级编程语言编制应用程序的程序员
应用程序员可以感知到计算机硬件、操作系统提供的应用编程接口、人机交互页面、实用程序、程序语言处理程序
- 系统程序员
设计和开发系统软件的程序员
熟悉计算机底层的相关硬件和系统结构、指令系统等,有时还要直接实用汇编语言等低级语言编写程序代码
透明:一个存在的事物或概念从某个角度看似乎不存在,即对实际存在的事物或概念感觉不到,就称为透明。
1.4 从源文件到可执行文件(未完成)
这个知识点是在解决如何将一个高级语言写成的代码文件一步步变成计算机可以直接执行的文件
1.5 计算机系统的性能指标
- 吞吐率:单位时间内完成的工作量
- 响应时间:也叫做执行时间或等待时间,即作业从提交到完成所用的时间(用户感觉到的某个程序的时间并不是程序真正在执行代码的时间)
- 时钟周期:计算机执行一条指令的过程会被分成若干步骤来完成,每一步动作都要由相应的控制信号进行控制。这些信号何时发出,作用时间多长,都要由一个产生同步的时钟信号控制,这个信号就是CPU的主脉冲信号,其宽度称为时钟周期
- 时钟频率:CPU的主频就是CPU的主脉冲信号的时钟频率;CPU的主频就是CPU时钟周期的倒数
- CPI(clock cycles per instruction):执行一条指令所需的时钟周期数/执行一个程序需要的平均时钟周期数
时钟周期、时钟频率、CPI这些指标都是用时间去衡量计算机的性能,除此之外,我们还可以通过指令的执行速度去进行性能评估
- MPIS:平均每秒执行多少百万条指令