Chiriri's blog Chiriri's blog
首页
  • Java

    • JavaSE
    • JavaEE
    • 设计模式
  • Python

    • Python
    • Python模块
    • 机器学习
  • Golang

    • Golang
    • gRPC
  • 服务器

    • Linux
    • MySQL
    • NoSQL
    • Kubernetes
  • 项目

    • 传智健康
    • 畅购商城
  • Hadoop生态

    • Hadoop
    • Zookeeper
    • Hive
    • Flume
    • Kafka
    • Azkaban
    • Hbase
    • Scala
    • Spark
    • Flink
  • 大数据项目

    • 离线数仓
  • 青训营

    • 第四届青训营
  • HTML

    • HTML
    • JavaScript
  • Vue

    • Vue2
    • TypeScript
    • Vue3
    • Uni-APP
  • 数据结构与算法
  • C语言
  • 考研数据结构
  • 计算机组成原理
  • 计算机操作系统
  • Java基础

    • Java基础
    • Java集合
    • JUC
    • JVM
  • 框架

    • Spring
    • Dubbo
    • Spring Cloud
  • 数据库

    • MySQL
    • Redis
    • Elasticesearch
  • 消息队列

    • RabbitMQ
    • RocketMQ
  • 408

    • 计算机网络
    • 操作系统
    • 算法
  • 分类
  • 标签
  • 归档
  • 导航站
GitHub (opens new window)

Iekr

苦逼后端开发
首页
  • Java

    • JavaSE
    • JavaEE
    • 设计模式
  • Python

    • Python
    • Python模块
    • 机器学习
  • Golang

    • Golang
    • gRPC
  • 服务器

    • Linux
    • MySQL
    • NoSQL
    • Kubernetes
  • 项目

    • 传智健康
    • 畅购商城
  • Hadoop生态

    • Hadoop
    • Zookeeper
    • Hive
    • Flume
    • Kafka
    • Azkaban
    • Hbase
    • Scala
    • Spark
    • Flink
  • 大数据项目

    • 离线数仓
  • 青训营

    • 第四届青训营
  • HTML

    • HTML
    • JavaScript
  • Vue

    • Vue2
    • TypeScript
    • Vue3
    • Uni-APP
  • 数据结构与算法
  • C语言
  • 考研数据结构
  • 计算机组成原理
  • 计算机操作系统
  • Java基础

    • Java基础
    • Java集合
    • JUC
    • JVM
  • 框架

    • Spring
    • Dubbo
    • Spring Cloud
  • 数据库

    • MySQL
    • Redis
    • Elasticesearch
  • 消息队列

    • RabbitMQ
    • RocketMQ
  • 408

    • 计算机网络
    • 操作系统
    • 算法
  • 分类
  • 标签
  • 归档
  • 导航站
GitHub (opens new window)
  • 数据结构

  • 数据结构与算法

  • 计算机组成原理

    • 计算机系统概述
      • 计算机的发展历程
        • 计算机硬件能识别的数据
        • 什么是计算机系统
        • 硬件的发展
        • 微处理器的发展
        • 摩尔定律
        • 软件的发展
        • 目前的发展趋势
        • 总结
      • 计算机系统层次结构
        • 早期冯诺依曼机
        • 类加工厂
        • 现代计算机的结构
        • 总结
        • 各个硬件的工作原理
        • 主存储器的基本组成
        • 运算器的基本组成
        • 控制器的基本组成
        • 计算机的工作过程
        • 总结
        • 计算机软件
        • 系统软件和应用软件
        • 三种级别的语言
        • 软件和硬件的逻辑功能等价性
        • 总结
        • 计算机系统的多级层次结构
        • 计算机系统的层次结构
        • 计算机体系结构 vs 计算机组成原理
        • 总结
      • 计算机性能指标
        • 存储器的性能指标
        • CPU 的性能指标
        • 系统整体的性能指标
        • 动态测试
        • 超级计算机的浮点运算能力
        • 思考
        • 总结
    • 数据的表示和运算
  • 操作系统

  • 408
  • 计算机组成原理
Iekr
2023-06-28
目录

计算机系统概述

# 计算机系统概述

# 计算机的发展历程

# 计算机硬件能识别的数据

  • 用低 / 高电平分别表示 0/1
    • 低电平(表示二进制 0)
    • 高电平(表示二进制 1)
  • 计算机硬件唯一能识别的数据 —— 二进制 0/1

# 什么是计算机系统

本章所涉及的内容已从 408 考研大纲删除,简单了解本章内容即可,如是自命题仍需掌握

image-20230628160213943

计算机性能的好坏取决于 “软”、“硬” 件功能的总和

image-20230628160258520

# 硬件的发展

image-20230628160359484

image-20230628160419154

image-20230628160426693

image-20230628160436748

image-20230628160521118

image-20230628160533798

# 微处理器的发展

image-20230628161357835

机器字长:计算机一次整数运算所能处理的二进制位数

  • 1947 年,贝尔实验室,发明了 “晶体管” image-20230628161717641
  • 1955 年,肖克利在硅谷创建 肖克利实验室股份有限公司 image-20230628161737859
  • 1957 年,八叛徒 (traitorous eight) 创立 仙童半导体公司 image-20230628161751967
  • 1959 年,仙童半导体公司发明 “集成电路”
  • 1968 年,摩尔等人离开仙童,创立 Intel image-20230628161801648
  • 1969 年,仙童销售部负责人桑德斯离开仙童,创立 AMD

# 摩尔定律

  • 摩尔定律:揭示了信息技术进步的速度集成电路上可容纳的晶体管数目,约每隔 18 个月便会增加一倍,整体性能也将提升一倍

image-20230628161947770

半导体存储器的发展

image-20230628162055499

1970 年,仙童公司生产出第一个较大容量的半导体存储器 半导体存储器单芯片容量:1KB、4KB、16KB、64KB、256KB、1MB、4MB、16MB、64MB、256MB、1GB…

# 软件的发展

image-20230628162136786

# 目前的发展趋势

“两极” 分化

  • 一极是微型计算机向更微型化、网络化、高性能、多用途方向发展。 image-20230628162310090
  • 另一极是巨型机向更巨型化、超高速、并行处理、智能化方向发展。 image-20230628162320924

# 总结

image-20230628162345200

# 计算机系统层次结构

# 早期冯诺依曼机

image-20230628162633721

  • “存储程序” 的概念是指将指令以二进制代码的形式事先输入计算机的主存储器,然后按其在存储器中的首地址执行程序的第一条指令,以后就按该程序的规定顺序执行其他指令,直至程序执行结束。

image-20230628162733291

在计算机系统中,软件和硬件在逻辑上是等效的。

Eg:对于乘法运算,可以设计一个专门的硬件电路实现乘法运算,也可以用软件的方式,执行多次加法运算来实现

冯・诺依曼计算机的特点:

  1. 计算机由五大部件组成

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

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

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

  5. 存储程序

  6. 以运算器为中心(输入 / 输出设备与存储器之间的数据传送通过运算器完成)

# 类加工厂

早期冯诺依曼计算机类似于一个加工厂

image-20230628173030788

# 现代计算机的结构

现代计算机:以存储器为中心

image-20230628173105426

CPU = 运算器 + 控制器

image-20230628173344178

# 总结

image-20230628173501480

# 各个硬件的工作原理

# 主存储器的基本组成

image-20230628174022185

  • Memory Address Register(存储地址寄存器)
  • Memory Data Register(存储数据寄存器)

image-20230628174557731

  • 存储单元:每个存储单元存放一串二进制代码
  • 存储字 (word):存储单元中二进制代码的组合
  • 存储字长:存储单元中二进制代码的位数
  • 存储元:即存储二进制的电子元件,每个存储元可存 1bit

例:

  • MAR=4 位 → 总共有 24 个存储单元
  • MDR=16 位 → 每个存储单元可存放 16bit,1 个字 (word) = 16bit

易混淆:1 个字节(Byte)= 8bit,1B=1 个字节,1b=1 个 bit

# 运算器的基本组成

运算器:用于实现算术运算(如:加减乘除)、逻辑运算(如:与或非)

image-20230628175015974

  • ACC: 累加器,用于存放操作数,或运算结果。
  • MQ: 乘商寄存器,在乘、除运算时,用于存放操作数或运算结果。
  • X: 通用的操作数寄存器,用于存放操作数
  • ALU: 算术逻辑单元,通过内部复杂的电路实现算数运算、逻辑运算

image-20230628175047326

# 控制器的基本组成

image-20230628175810050

  • CU(Control Unit):控制单元,分析指令,给出控制信号
  • IR (Instruction Register):指令寄存器,存放当前执行的指令
  • PC (Program Counter):程序计数器,存放下一条指令地址,有自动加 1 功能

image-20230628175855136

# 计算机的工作过程

image-20230628175953625

实际工作过程

image-20230628180536066

上一条指令取指后 PC 自动 + 1,(PC)=1;执行后,(ACC)=2

image-20230628180623610

上一条指令取指后 (PC)=2,执行后,(ACC)=6

image-20230628181034443

上一条指令取指后 (PC)=3,执行后,(ACC)=7

image-20230628181054307

上一条指令取指后 (PC)=4

image-20230628181122786

CPU 区分指令和数据的依据:指令周期的不同阶段

image-20230628181253209

# 总结

image-20230628181430313

冯诺依曼机的特点

# 计算机软件

# 系统软件和应用软件

image-20230628182501093

  • 应用软件是为了解决某个应用领域的问题而编制的程序
  • 系统软件负责管理硬件资源,并向上层应用程序提供基础服务

# 三种级别的语言

image-20230628182817689

  • 机器语言:二进制代码
  • 汇编语言:助记符
  • 高级语言:C/C++、Java、Python

编译和解释的区别

  • 编译程序:将高级语言编写的源程序全部语句一次全部翻译成机器语言程序,而后再执行机器语言程序(只需翻译一次)
  • 解释程序:将源程序的一条语句翻译成对应于机器语言的语句,并立即执行。紧接着再翻译下一句(每次执行都要翻译)

# 软件和硬件的逻辑功能等价性

  • 软件和硬件的逻辑功能等价性:同一个功能,既可以用硬件实现(性能高成本高),也可以用软件实现(性能低成本也低)

image-20230628183156747

指令集体系结构 (ISA):软件和硬件之间的界面。设计计算机系统的 ISA,就是要定义一台计算机可以支持哪些指令,以及每条指令的作用是什么、每条指令的用法是什么。

# 总结

image-20230628183414352

# 计算机系统的多级层次结构

# 计算机系统的层次结构

image-20230628185755336

我们编写的程序难免会使用到系统调用

image-20230628191305225

  • M4:高级语言机器(执行高级语言)
  • M3:汇编语言机器(执行汇编语言)
  • M2:操作系统机器(向上提供广义指令)
  • MI:传统机器(执行机器语言指令)
  • M0:微程序机器(执行微指令)

# 计算机体系结构 vs 计算机组成原理

image-20230628191539825

  • 此处的 “透明”—— 看不见
  • 某事 “公开透明”—— 看得见

# 总结

image-20230628191319437

# 计算机性能指标

# 存储器的性能指标

image-20230628191741203

总容量 = 存储单元个数 × 存储字长 bit,1Byte = 8bit = 存储单元个数 × 存储字长 / 8 Byte

Eg:MAR 为 32 位,MDR 为 8 位 总容量 = 232∗8bit=4GB

n 个二进制位能表示出多少种不同的状态?

image-20230628192233544

# CPU 的性能指标

image-20230628192329179

  • CPU 主频:CPU 内数字脉冲信号振荡的频率。

image-20230628192436624

Eg:某 CPU 主频为 1000Hz,某程序包含 100 条指令,平均来看指令的 CPI=3。该程序在该 CPU 上执行需要多久?

100∗3∗11000=0.3s
  • CPU 执行时间(整个程序的耗时)= CPU 时钟周期数 / 主频 =(指令条数 * CPI)/ 主频

image-20230628192727568

# 系统整体的性能指标

  • 数据通路带宽 :数据总线一次所能并行传送信息的位数(各硬件部件通过数据总线传输数据) image-20230628193303016

  • 吞吐量 :指系统在单位时间内处理请求的数量。 它取决于信息能多快地输入内存,CPU 能多快地取指令,数据能多快地从内存取出或存入,以及所得结果能多快地从内存送给一台外部设备。这些步骤中的每一步都关系到主存,因此,系统吞吐量主要取决于主存的存取周期。

  • 响应时间 :指从用户向计算机发送一个请求,到系统对该请求做出响应并获得它所需要的结果的等待时间。 通常包括 CPU 时间(运行一个程序所花费的时间)与等待时间(用于磁盘访问、存储器访问、I/O 操作、操作系统开销等时间)。

# 动态测试

基准程序是用来测量计算机处理速度的一种实用程序,以便于被测量的计算机性能可以与运行相 同程序的其它计算机性能进行比较。

如我们的跑分软件

image-20230628193452201

# 超级计算机的浮点运算能力

image-20230628193826362

# 思考

Q:主频高的 CPU 一定比主频低的 CPU 快吗? A:不一定,如两个 CPU,A 的主频为 2GHz,平均 CPI=10;B 的主频 1GHz,平均 CPI=1…

Q:若 A、B 两个 CPU 的平均 CPI 相同,那么 A 一定更快吗?

A:也不一定,还要看指令系统,如 A 不支持乘法指令,只能用多次加法实现乘法;而 B 支持乘法指令。

Q:基准程序执行得越快说明机器性能越好吗? A:基准程序中的语句存在频度差异,运行结果也不能完全说明问题

# 总结

image-20230628193637129

编辑 (opens new window)
上次更新: 2023/12/06, 01:31:48
排序
数据的表示和运算

← 排序 数据的表示和运算→

最近更新
01
k8s
06-06
02
进程与线程
03-04
03
计算机操作系统概述
02-26
更多文章>
Theme by Vdoing | Copyright © 2022-2025 Iekr | Blog
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式