CO学习笔记——第1章 计算机系统概论

以下内容均为个人笔记,图片、内容来自:
计算机组成原理(哈工大刘宏伟)135讲(全)高清

课程讲义:
百度云:https://pan.baidu.com/s/1dqyr-PzSfjJKMSibyaUL3Q 提取码:vs1f

1. 计算机系统简介

  • 现代计算机的多态性

    • Sensors:传感器

    • info.appliances:个人数字助理 == PDA:掌上电脑

    • Laptop:笔记本

    • PC/Client:个人计算机

    • Server:服务器

    • Mainframe:一种大型商业服务器

    • HPC(High Performance Computing):高性能计算机

    • 物联网

      物联网:把感应器嵌入和装备到电网、铁路、桥梁、隧道、公路、建筑、供电系统、大坝、油气管道等各种物体中,并且被普遍连接,形成所谓“物联网”,然后将“物联网”与现有的互联网整合起来,实现人类社会与物理系统的整合,形成智慧地球。

1.1. 计算机的软硬件概念

  1. 计算机系统

    1. 硬件:计算机的实体,如主机、外设等

    2. 软件:由具有各类特殊功能的信息(程序)组成

      1. 系统软件:用来管理整个计算机系统

        1. 语言处理程序
        2. 操作系统
        3. 服务性程序。如数学库、MPI并行计算环境
        4. 数据库管理系统
        5. 网络软件
      2. 应用软件:按任务需要编织成的各种程序

1.2. 计算机系统的层次结构

  • 系统复杂性管理的办法
    • 抽象:(几种定义)
      • 对于一个过程或者一件制品的某些细节有目的的隐藏,以便把其他方面、细节或者结构表达得更加清楚。
      • 指更高级的模型,和低级的实体相对。
      • 隐藏系统中不重要的细节。
  1. 从物理构成的角度看,计算机系统的层次结构:

    Application Softwareprograms
    Operating Systemsdevice
    drivers
    Architecture
    (体系结构)
    instructions
    registers
    Micro-architecture
    (微体系结构)
    datapaths
    controllers
    Logic
    (逻辑)
    adders
    memories
    Digital Circuits
    (数字电路)
    and gate
    not gate
    Analog Circuits
    (模拟电路)
    amplifiers
    (放大器)
    filters
    (滤波器)
    Devices
    (电子元件)
    transistors
    (晶体管)
    diodes
    (二极管)
    Physicselectron
  2. 从程序员的视角,计算机系统的层次结构:

    我们先来了解几个概念:

    1. 汇编语言程序:就是用汇编语言编写的计算机程序。

    2. 机器语言程序:就是二进制程序,是机器无需经过翻译,能直接识别的程序语言或指令代码。

    3. 汇编程序:把汇编语言程序翻译为与之等价的的机器语言程序的翻译程序。

    4. 编译程序:把高级编程语言(如Java、C#)编写的程序转换为可执行的机器语言。其具体过程是:先转换为汇编指令,然后再转换为机器语言。

    下面介绍层次结构:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Jaz3NHjn-1656411843407)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220628163835006.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2GAu5d55-1656411843409)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220628163840131.png)]

虚线以上的功能由软件实现

虚线以下的功能由硬件实现

虚线则是软件、硬件接口。

1.3. 计算机体系结构和计算机组成

  1. 计算机体系结构:程序员所见到的计算机系统的属性、概念性结构与功能特性(这里的程序员指机器语言程序员)

    (比如:指令系统、数据类型、寻址技术、I/O机理)

    重点:有无乘法指令

  2. 计算机组成:实现计算机体系结构所体现的属性。

    (具体指令的实现)

    重点:如何实现乘法指令

2. 计算机的基本组成

2.1. 冯诺依曼计算机的特点

  1. 特点

    1. 计算机由五大部件组成:运算器、控制器、存储器、输入设备、输出设备

    2. 指令和数据以同等地位存于存储器,可按地址寻访

    3. 指令和数据以二进制表示

    4. 指令由操作码和地址码组成

    5. 存储程序(核心特征)

    6. 以运算器为中心

  2. 冯诺依曼计算机硬件框图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CE8qYmW0-1656411843410)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220628181157634.png)]

实线:数据通过实线进行流动

虚线:表示控制和反馈

五大组成部分的功能:

  1. 运算器:算术运算和逻辑运算

  2. 存储器:存放数据和程序

  3. 控制器:指挥程序运行

  4. 输入设备:将信息转换成机器能识别的形式

  5. 输出设备:将结果转换成人们熟悉的形式

这种结构存在的问题:由于以运算器为核心,数据的输入输出必须经过运算器,运算器的工作非常繁忙,这会成为计算机系统的瓶颈

2.2. 计算机硬件框图

  1. 对之前以运算器为中心的计算机硬件进行改进,得到以存储器为中心的计算机硬件框图:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-moEarTu9-1656411843410)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220628182219181.png)]

  2. 现代计算机硬件框图

    运算器 ALU
    CPU
    主机
    硬件
    控制器 CU
    存储器
    主存
    辅存
    输入设备
    I/O设备
    输出设备

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iQjdKiYe-1656487530520)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220629111906948.png)]

  • 系统复杂性管理的方法-2 (3’Y)
    • 层次化(Hierachy):将被设计的系统划分为多个模块或子模块
    • 模块化(Modularity):有明确定义(well-defined)的功能和接口
    • 规则性(regularity):模块更容易被重用

2.3. 计算机的工作步骤

2.3.1. 上机前的准备

以计算正弦交流电压为例说明:

  1. 建立数学模型
    u = U m S i n ω t u = U_mSin \omega t u=UmSinωt

  2. 确定计算方法
    s i n x = x − x 3 3 ! + x 5 5 ! − x 7 7 ! + x 9 9 ! − . . . sinx = x-\frac{x^3}{3!}+\frac{x^5}{5!}-\frac{x^7}{7!}+\frac{x^9}{9!}-... sinx=x3!x3+5!x57!x7+9!x9...

    y n + 1 = 1 2 ( y n + x y n ) ( n = 0 , 1 , 2 , . . . ) y_{n+1} = \frac{1}{2}(y_n+\frac{x}{y_n})(n = 0,1,2,...) yn+1=21(yn+ynx)(n=0,1,2,...)

  3. 编制解题程序

    • 程序——运算的全部步骤
    • 指令——每一个步骤

下面这是一个编程例子:

​计算 :
a x 2 + b x + c = ( a x + b ) x + c ax^2+bx+c = (ax+b)x+c ax2+bx+c=ax+b)x+c
下面是两种算法的指令,右边对左边进行了改进:

ax^2+bx+c(ax+b)x+c
取x至运算器中取x至运算器中
​乘以x在运算器中乘以a在运算器中
乘以a在运算器中加b在运算器中
​存 ax2至存储器中乘以x在运算器中
取b至运算器中加c在运算器中
​乘以x至运算器中
加 ax2在运算器中
加c在运算器中

指令格式举例:

指令的格式:

操作码地址码
指令操作
取数 α \alpha α
二进制指令:000001 0000001000
分别对应: 操作码 内存单元地址
[a]–>ACC
存数 β \beta β[ACC]–> β \beta β
γ \gamma γ[ACC]+[ γ \gamma γ]–>ACC
δ \delta δ[ACC] × \times ×[ δ \delta δ]–>ACC
打印 σ \sigma σ[ σ \sigma σ]–>打印机
停机

上表中,[]:指内存/寄存器中保存的内容

计算 a x 2 + b x + c ax^2+bx+c ax2+bx+c的程序清单:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FmViWyme-1656487530521)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220629122225603.png)]

  • 注意:指令和数据都是保存在存储器中的

2.3.2计算机的硬件和执行过程

2.3.2.1. 存储器的基本组成

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WkCFpAFK-1656490983647)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220629131619604.png)]

  1. 存储体
    1. 构成:
构成于
构成于
构成于
构成于
存储体
存储单元
存储元件
0/1
大楼
房间
床位
无人/有人

上图中

  • 第一行:存储体由存储单元构成,存储单元由存储元件构成

    • 第二行:举一个例子
    1. 相关的几个概念:
      存储单元:存放一串二进制代码
      存储字:存储单元中二进制代码的组合
      存储字长:存储单元中二进制代码的位数
      ​ 每一个存储单元赋予一个地址号
      ​ 存储单元按地址寻访
  1. MAR:存储器地址寄存器(Memory Address Register),反映存储单元的个数

  2. MDR:存储器数据寄存器(Memory Data Register),反映存储字长

    举个例子:设MAR=4位,MDR=8位

    那么存储单元个数为16,存储字长为8

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZH40Ptdq-1656490983648)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220629144124430.png)]

    解释:

    1. 存储单元个数为16:因为MAR是4位二进制数,4位二进制数的所有组合情况为24=16种,而存储单元指一串二进制代码,因此存储单元个数为16
    2. 存储字长为8:因为MDR反映存储字长,MDR有8位,因此存储字长为8
2.3.2.2. 运算器的基本组成及操作过程
ACCMQX
加法被加数 和加数
减法被减数 差减数
乘法乘积高位乘数 乘积低位被乘数
除法被除数 余数除数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-I14ugygR-1656490983649)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220629145234827.png)]

  1. 加法操作过程

    1. 指令为:

      M
    2. 初态为:

      ACC 被加数

    3. 指令为:

      [M]–>X

      [ACC]+[X]–>ACC

  2. 减法操作过程

    1. 指令为:

      M
    2. 初态为:

      ACC 被减数

    3. 具体指令:

      [M]–>X

      [ACC]-[X]–>ACC

  3. 乘法操作过程

    1. 指令为:

      M
    2. 初态为:

      ACC 被乘数

    3. 具体指令:

      [M]–>MQ

      [ACC]–>X

      0–>ACC

      [X] × \times ×[MQ]–>ACC//MQ

  4. 除法操作过程

    1. 指令为:

      M
    2. 初态为:

      ACC 被除数

    3. 具体指令:

      [M]–>X

      [ACC] ÷ \div ÷[X]–>MQ

      余数在ACC中

      可以观察到:MQ Register(乘商寄存器)只有在乘法和除法中使用了,MQ的意思就是乘商(Multiple-Quotient)。

2.3.2.3. 控制器的基本结构
  1. 控制器的功能:

    • 解释指令
    • 保证指令的按序进行
  2. 控制器的基本组成

    要用到
    要用到
    要用到
    完成一条指令
    取指令
    PC
    分析指令
    IR
    执行指令
    CU
    • 程序计数器PC(Program Counter Register):存放当前欲执行指令的地址,具有计数功能:(PC)+1–>PC 注:在不同的机器上,PC自增的值是不一样的,这里的+1只是举例

    • 指令寄存器IR(Instruction Register):存放当前欲执行的指令。控器可以从IR中把指令的操作码取出来分析

    • 控制单元CU(Control Unit):控制器的核心,发出各种控制信号

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3zy475Ut-1656585806662)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220630133530457.png)]

2.3.2.4. 主机完成一条指令的过程
  1. 以取数指令为例
    在这里插入图片描述
  2. 以存数指令为例
    在这里插入图片描述
  3. 以加法、乘法、打印指令为例,自己实现。
2.3.2.5 ax2+bx+c程序的执行过程
  1. 将程序通过输入设备送至计算机

  2. 程序首地址——>PC

  3. 启动程序运行

  4. 取数指令

    1. 取指令 PC——>MAR——>存储体——>MDR——>IR,(PC)+1——>PC
    2. 分析指令 OP(IR)——>CU ,其中OP是指令的操作码
    3. 执行指令 AD(IR)——>MAR——>存储体——>MDR——>ACC ,其中AD是指令的地址码
  5. 乘法指令,自己实现

    1. 取指令
    2. 分析指令
    3. 执行指令
  6. 打印结果,自己实现

    1. 取指令
    2. 分析指令
    3. 执行指令

3. 计算机硬件的主要技术指标

3.1. 机器字长

3.2. 运算速度

衡量计算机运算速度的方法:

在这里插入图片描述

注解:

  1. 在使用吉普森法时,两种计算 f i f_i fi的方法:

    (1)指令的静态使用频率:在程序清单中,直接计算每一条指令出现的频率

    (2)指令的动态使用频率**(更准确)**:让程序执行,计算程序执行过程中,每一条指令出现的频率

  2. CPI的使用方法:

    把程序当中所有指令的CPI计算出来,根据吉普森法计算出:指令的静态使用频率或动态使用频率,得到每一种指令所需要的时钟周期

3.3. 存储容量

存储容量:存放二进制信息的总位数
在这里插入图片描述
注解:

​ 主存?辅存?

  1. 主存 = 内存:指计算机中的内存条
  2. 外村 = 辅存:指硬盘、U盘、光盘、软盘等
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值