计算机系统基础笔记——第一章 计算机系统概述

1.1 计算机基本工作原理

1.1.1冯·诺伊曼结构基本思想

1.“存储程序”方式的基本思想:
必须将实现编好的程序和原始数据送入主存后才能执行程序,一旦程序被启动执行,计算机能在不需操作人员干预下自动完成逐条指令取出和执行的任务。
2. 冯·诺伊曼结构基本思想:
①采用“存储程序”工作方式。
②计算机由运算器、控制器、存储器、输入设备和输出设备5个基本部件组成。
③存储器存放数据和指令并且指令和数据形式上没有区别;控制器能自动执行指令;运算器能进行算术运算和逻辑运算;操作人员通过输入/输出设备使用计算机。
④计算机内部使用二进制形式表示指令和数据;每条指令由操作码和地址码两部分组成,其中操作码指出操作类型地址码指出操作数的地址;一串指令组成程序。

1.1.2 冯·诺伊曼机基本结构

1. 模型机主要包括:
主存储器:用来存放指令和数据,简称主存或内存。主存中的每个存储单元的编号称作主存单元地址简称主存地址
算术逻辑部件 ALU :用来进行算术逻辑运算。
控制器 CU :自动逐条取出指令并进行译码的部件。
④输入输出设备:和用户进行交互。
2. 其他部件:
GPRs:通用寄存器组,,临时存放从主存取出的数据或运算的结果。其中ALU运算产生的标志信息(如零标志ZF、是否为负数的符号标志SF)记录在标志寄存器中;从主存取出的指令临时保存在指令寄存器 IR中。
PC:程序计数器,在执行当前指令过程中自动计算出下一条指令的地址并送到PC中保存,实现CPU自动按序读取主存中的指令。
CPU:中央处理器或处理器,控制部件、运算部件和各类寄存器互相连接成的电路的总称。

总线 :连接不同部件并进行信息传输的介质,包括地址线、数据线和控制线,分别传输地址信息、数据信息和控制信息。
MAR主存地址寄存器
CPU送到地址线的主存地址暂存地,保存存储体的地址(存储单元的编号),其中MAR的位数可以反映存储单元的个数(如地址有4位,那么存储单元的个数最多有2的4次方个)。
MDR主存数据寄存器
发送到数据线或从数据线取来的信息的暂存地。其中MDR的位数可以反映最大存储字长(比如MDR位数为20那么存储的字长最大为20)。

PS:
位、字节、字和字长:
位:bit,每一个逻辑0或者1便是一个位,是计算机中最基本的单位。
字节:Byte,1Byte=8bit,是计算机中处理数据的基本单位,用来单位存储和解释信息。
字:计算机进行数据处理时,一次存取加工与传送的数据长度。且一个字通常为字节的整数倍。
字长:一个字包含的位数。


位宽和带宽:
位宽:内存或显存一次能传输的数据量,比如小车的装载量,如128bit的位宽表示一次能装载128个0或1。
带宽:每秒钟可以通过的信息量,好比说在门口一秒钟可以让多少个数字经过。如果是小车的话,好比一秒钟过去10辆位宽为80的小车,那么带宽就是10×80=800。

1.1.3 程序和指令的执行过程

1. 指令:
用0和1表示的一串0/1序列,用来指示CPU完成一个特定的原子操作。MIPS指令格式有R型、I型和J型三种。
2.程序执行过程:
(1)程序执行前,需将程序包含的指令和数据先送入主存,并把程序的起始地址放入PC当中;
(2)程序执行:
①:根据PC取指令,将PC中的内容作为地址访问主存;
②:指令译码,同时计算下一条指令的地址并传回PC中;
③:取操作数执行指令;
④:传送结果
3.其他概念:
(1)微操作:指令执行各阶段包含若干个微操作,微操作需要相应的控制信号。
(2)时钟周期: 每条指令执行过程中,所包含的微操作具有先后顺序,需要定时信号进行定时。通常,CPU中所有微操作都由时钟信号进行定时,而适中信号的宽度为一个时钟周期。一条指令的执行时间包含一个或多个时钟周期。

1.2 程序的开发与运行

1.2.1 程序设计语言和翻译程序

(1)机器语言:使用特定计算机规定的格式而形成的0/1序列;
(2)机器代码:机器语言程序,计算机能理解和执行的程序;
(3)机器指令:机器代码中的指令,并且每条指令都是0/1组成的;
(4)汇编语言:用简短的英文符号和机器指令建立对应关系,以方便程序员编写和阅读程序的语言;
(5)汇编指令:汇编语言中机器指令对应的符号;
(6)机器级语言:汇编语言和机器语言的统称,属于低级语言,都与特定的机器结构有关
(7)高级编程语言:高级程序设计语言,面向算法设计、较接近日常英语书面语言的程序设计语言;
(8)翻译程序:被翻译的语言和程序称为源语言和源程序,翻译生成的称为目标语言和目标程序。
①汇编程序:汇编器,将汇编语言翻译为机器目标语言;
②解释程序:解释器,将源程序中的语句按其执行顺序逐条翻译成机器指令并立即执行;
③编译程序:编译器,将高级语言翻译成汇编语言或者机器语言目标程序。

1.2.2 从源程序到可执行文件

在这里插入图片描述

1. 文本文件:
通常把用ASCII码字符或汉字字符表示的文件称为文本文件,是可显示和可读的。并且源程序文件都是文本文件。
2. 源程序到可执行目标文件的转换过程:
预处理阶段: 预处理程序(app)对源程序中以#开头的命令进行处理(嵌入等),输出结果还是一个源程序文件,以.i为扩展名;
编译阶段: 编译程序(cc1)对预处理后的源程序进行编译,生成一个汇编语言源程序文件,以.s为扩展名(对同一台机器来说,不管何种高级语言,编译转换后的输出结果都是同一种机器语言对应的汇编语言源程序);
汇编阶段: 汇编程序(as)对汇编语言源程序进行汇编,生成一个可重定位目标文件,以.o为扩展名。可重定位目标文件是一种二进制文件,其中的代码是机器指令,信息由二进制表示,所以是不可读的;
链接阶段: 链接程序(ld)将多个可重定位目标文件和标准函数库中的可重定位目标文件合并成一个可执行目标文件,简称可执行文件(无扩展名)。

1.2.3 可执行文件的启动和执行

在这里插入图片描述

PS:
主机中主要功能模块是CPU、主存和各个I/O模块。
I/O模块中有数据缓冲寄存器、命令字寄存器和状态字寄存器,统称I/O端口。为了能访问这些端口,需要对其进行编址,所有I/O端口的地址组成的空间成为I/O空间。
I/O空间可以和主存空间统一编址也可以单独编址,前者成为存储器映射方式,后者成称为独立编址方式。

1.3 计算机系统的层次结构

1.3.1 计算机系统抽象层的转换

在这里插入图片描述
1. 语言处理系统:
提供程序编辑器和各类翻译转换软件的工具包的统称;具有人机交互功能的用户界面和底层系统调用服务例程由操作系统提供。
操作系统是对计算机底层结构和计算机硬件的一种抽象,这种抽象构成了一台可以让程序员使用的虚拟机。
2. ISA
指令集体系结构,简称体系结构或系统结构, 是硬件和软件之间接口的一个完整定义。
ISA定义了一台计算机可以执行的所有指令的集合,每条指令规定了计算机执行什么操作,以及所处理的操作数存放的地址空间和操作数类型。是对指令系统的一种规定或结构规范。
指令集体系结构是指软件能感知到的部分,也称软件可见部分。
3. 微体系结构:
ISA具体实现的组织称为微体系结构简称微架构。
ISA与微体系结构是两个不同层面上的概念,微体系结构是软件不可感知的部分。相同的ISA可能具有不同的微体系结构

1.3.2 计算机系统核心层之间的关联

1.前端:
中间代码生成及之前的步骤。主要完成对源程序的分析,把源程序切分为一些基本块,并生成中间语言表示。
2.后端:
在分析结果正确无误的基础上,把中间语言表示(中间代码)转化为目标机器支持的机器级语言程序。
3.
未定义行为和未确定行为。
4.ABI:
应用程序二进制接口,为运行在特定ISA及特定操作系统之上的应用程序规定的一种机器级目标代码层接口,包含了运行在特定ISA及特定操作系统之上的应用程序所对应的目标代码生成时必须遵循的约定。
在ABI相同或兼容的系统上,一个编译好的目标代码可以无需改动而直接运行。
在ISA层上,操作系统想应用程序提供的运行时环境需符合ABI规范。
5.API:
应用程序编程接口,定义了较高层次的源程序代码和库之间的接口,通常是与硬件无关的接口。

ABI,API和ISA
· 都用于沟通和交流,时计算机科学层状设计原则的体现。
· ABI是API在二进制层面的翻版。二者都是软件层面的协议,ISA是软件和硬件之间的协议。

1.3.3 计算机系统的不同用户

1. 基本定义:
硬件:物理装置的总称。
软件:运行在硬件上的程序和数据以及相关的文档。
程序:指挥计算机如何操作的一个指令序列。
数据:指令操作的对象。
系统软件:介于应用程序和计算机硬件之间,为了有效、安全地使用和管理计算机以及为开发和运行应用软件而提供的各种软件。如操作系统(OS)主要用来管理整个计算机系统的资源,提供人机交互界面以及对应用软件的支持。
2. 四类用户:
最终用户:使用应用软件完成特定任务的用户,也即大多数用户。
系统管理员:利用操作系统、数据库管理系统等软件提供的功能对系统进行配置、管理和维护,以建立高效合理的系统环境供计算机用户使用的操作人员。
应用程序员:使用高级编程语言编制应用软件的程序员。
系统程序员:设计和开发系统软件的程序员。
在这里插入图片描述

分析:
· 硬件所有功能都由ISA集中体现,软件部分直接在ISA上实现并通过ISA在计算机上执行。ISA是整个计算机系统中的核心部分。
· 系统程序员看到的机器的属性是属于ISA层面的内容,所看到的机器是配置了指令系统的机器,称为机器语言机器;
· 系统管理员工作在操作系统层,看到的是配置了操作系统的虚拟机器,称为操作系统虚拟机;
· 汇编语言程序员工作在提供汇编程序的虚拟机器级,所看到的机器是汇编语言虚拟机;
· 应用程序员大多工作在提供编译器或解释器的语言处理系统层,大多用高级语言编写程序,看到的虚拟机器称为高级语言虚拟机;
· 最终用户工作在最上面的应用程序层。

1.4 计算机系统性能评价

计算机有两种不同的性能:
①Time to do the task
-响应时间
-执行时间
-等待时间或时延
②Time per day,hour…
-吞吐率
-带宽

· 基本的性能评价标准是:
CPU的执行时间
三要素:时钟周期,时钟频率,CPI

1.4.1 计算机性能的定义

1. 吞吐率:
单位时间内所完成的工作量,类似于带宽(单位时间所传输的信息量)。
2. 响应时间:
从作业提交开始到作业完成的时间,类似有等待时间和执行时间。

吞吐率和响应时间是考量一个计算机系统性能的两个基本指标。

1.4.2 计算机性能的测试

1. 执行时间:包括CPU时间和其他时间
(1)CPU时间:CPU用于本程序执行的时间
①用户CPU时间:真正用于运行用户程序代码的时间(执行用户指令的时间)
②系统CPU时间:为了执行用户程序而需要CPU运行操作系统程序的时间(执行内核程序 所经历的时间)
(2)其他时间:等待I/O操作完成的时间或CPU用于执行其他用户程序的时间
2. 系统性能和CPU性能:
系统性能:系统的响应时间,和CPU外的其他部分也有关系;
CPU性能:用户CPU时间,只包含CPU运行用户程序代码的时间。
3. CPU时间计算指标:
①时钟周期:时钟周期是计算机中最基本的、最小的时间单位。在一个时钟周期内,CPU仅完成一个最基本的动作。时钟周期是一个时间的量。时钟周期表示了SDRAM所能运行的最高频率。更小的时钟周期就意味着更高的工作频率。
②时钟频率:时钟周期的倒数,CPU的主频就是CPU中的主脉冲信号的时钟频率。
③CPI:执行一条指令所需的时钟周期数。不同的指令,CPI不同。

计算:
用户CPU时间=程序总时钟周期数÷时钟频率=程序总时钟周期数×时钟周期
用户CPU时间 = CPI × 程序总指令条数 × 时钟周期(该CPI为综合CPI)

1.4.3 用指令执行速度进行性能评估

1. MIPS:
指令速度的计量单位,平均每秒执行多少百万条指令。反映了机器执行定点指令的速度。
2. 峰值MIPS:
选取一组指令组合,使得得到的平均CPI最小,由此得到的MIPS就是峰值MIPS。
3. 相对MIPS:
根据某个公认的参考机型来定义的相应MIPS值,是被测机型相对于参考机型MIPS的倍数。

但用MIPS数进行性能估计是不可靠的。

4. MFLOPS:
与MIPS相对应的表示浮点操作速度的指标。

1.4.4 用基准程序进行性能评估

1. 基准程序:
专门用来进行性能评价的一组程序。通过比较在不同机器上的运行时间评测性能。比如SPEC测试集应用最广泛。
2. 采用执行时间的算术平均值或几何平均值来综合评价机器的性能,也可以将执行时间进行归一化得到被测试机器相对于参考机器的性能——执行时间的归一化=参考机器上的执行时间÷被测机器执行时间

1.4.5 Amdahl定律

定义了增强或加速部分部件而获得的整体性能的改变程度。
表示为 :改进后的执行时间 = 改进部分执行时间 ÷ 改进部分的改进倍数 + 未改进部分执行时间
或 :整体改进倍数 = 1/(改进部分执行时间比例 ÷ 改进部分的改进倍数 + 未改进部分执行时间比例)

适用于对特定任务的一部分进行优化的所有情况。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值